/* KTS Hire PDP booking — presentation (not RnB .rnb-* architecture) */
.kth-hire-booking {
	--kth-hire-ink: #1a2332;
	--kth-hire-muted: #5a6575;
	--kth-hire-line: #d5dbe3;
	--kth-hire-accent: #0b6e4f;
	--kth-hire-accent-soft: #e6f4ef;
	--kth-hire-danger: #9b1c1c;
	--kth-hire-danger-soft: #fde8e8;
	--kth-hire-focus: #1a5fb4;
	max-width: 36rem;
	margin: 0 0 1.5rem;
	color: var(--kth-hire-ink);
}

.kth-hire-booking__heading {
	font-size: 1.125rem;
	font-weight: 600;
	margin: 0 0 0.75rem;
}

.kth-hire-booking__fields {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.75rem 1rem;
	margin-bottom: 0.75rem;
}

.kth-hire-booking__field {
	margin: 0;
}

.kth-hire-booking__field label {
	display: block;
	font-weight: 600;
	margin-bottom: 0.35rem;
}

.kth-hire-booking__input {
	width: 100%;
	min-height: 48px;
	padding: 0.5rem 0.75rem;
	font-size: 16px;
	border: 1px solid var(--kth-hire-line);
	border-radius: 4px;
	background: #fff;
	color: var(--kth-hire-ink);
}

.kth-hire-booking__input:focus {
	outline: 2px solid var(--kth-hire-focus);
	outline-offset: 2px;
	border-color: var(--kth-hire-focus);
}

.kth-hire-booking__status {
	margin: 0.5rem 0;
	color: var(--kth-hire-muted);
}

.kth-hire-booking__status.is-error {
	color: var(--kth-hire-danger);
	font-weight: 600;
}

.kth-hire-booking__totals {
	padding: 0.85rem 1rem;
	border: 1px solid var(--kth-hire-line);
	border-radius: 4px;
	background: linear-gradient(180deg, #f7f9fb 0%, #fff 100%);
	margin-bottom: 1rem;
}

.kth-hire-booking__period {
	margin: 0 0 0.5rem;
	color: var(--kth-hire-muted);
	font-size: 0.95rem;
}

.kth-hire-booking__total {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	margin: 0 0 0.5rem;
	font-size: 1.125rem;
}

.kth-hire-booking__bond {
	margin: 0;
	padding-top: 0.5rem;
	border-top: 1px solid var(--kth-hire-line);
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 0.25rem 1rem;
	font-size: 0.95rem;
}

.kth-hire-booking__bond-note {
	grid-column: 1 / -1;
	color: var(--kth-hire-muted);
	font-size: 0.85rem;
}

.kth-hire-booking__actions {
	margin-top: 0.75rem;
}

.kth-hire-booking__submit {
	min-height: 48px;
	padding: 0.65rem 1.5rem;
	font-size: 1rem;
}

.kth-hire-booking__submit:disabled {
	opacity: 0.55;
	cursor: not-allowed;
}

.kth-hire-booking__submit:focus-visible {
	outline: 2px solid var(--kth-hire-focus);
	outline-offset: 3px;
}

.kth-hire-booking__toggle-wrap {
	margin: 0.25rem 0 0.75rem;
}

.kth-hire-booking__toggle-cal {
	min-height: 44px;
}

/* Calendar */
.kth-hire-calendar {
	margin: 0 0 0.75rem;
	padding: 0.75rem;
	border: 1px solid var(--kth-hire-line);
	border-radius: 4px;
	background: #fff;
}

.kth-hire-calendar__toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	margin-bottom: 0.5rem;
}

.kth-hire-calendar__label {
	margin: 0;
	font-weight: 600;
	text-align: center;
	flex: 1;
}

.kth-hire-calendar__nav {
	min-width: 44px;
	min-height: 44px;
	border: 1px solid var(--kth-hire-line);
	background: #fff;
	border-radius: 4px;
	font-size: 1.25rem;
	cursor: pointer;
}

.kth-hire-calendar__nav:focus-visible {
	outline: 2px solid var(--kth-hire-focus);
	outline-offset: 2px;
}

.kth-hire-calendar__dow,
.kth-hire-calendar__days {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 0.25rem;
}

.kth-hire-calendar__dow-cell {
	text-align: center;
	font-size: 0.75rem;
	color: var(--kth-hire-muted);
	padding: 0.25rem 0;
}

.kth-hire-calendar__day {
	min-height: 44px;
	border: 1px solid transparent;
	background: var(--kth-hire-accent-soft);
	border-radius: 4px;
	cursor: pointer;
	font-size: 0.9rem;
	color: var(--kth-hire-ink);
}

.kth-hire-calendar__day.is-empty {
	visibility: hidden;
	pointer-events: none;
}

.kth-hire-calendar__day.is-blocked {
	background: var(--kth-hire-danger-soft);
	color: var(--kth-hire-danger);
	cursor: not-allowed;
	text-decoration: line-through;
	opacity: 0.85;
}

.kth-hire-calendar__day.is-in-range {
	background: #c8e6d9;
	border-color: var(--kth-hire-accent);
}

.kth-hire-calendar__day.is-start,
.kth-hire-calendar__day.is-end {
	background: var(--kth-hire-accent);
	color: #fff;
	font-weight: 700;
}

.kth-hire-calendar__day:not(:disabled):hover {
	border-color: var(--kth-hire-accent);
}

.kth-hire-calendar__day:focus-visible {
	outline: 2px solid var(--kth-hire-focus);
	outline-offset: 2px;
}

.kth-hire-calendar__legend {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem 0.75rem;
	margin: 0.75rem 0 0;
	font-size: 0.85rem;
	color: var(--kth-hire-muted);
}

.kth-hire-calendar__swatch {
	display: inline-block;
	width: 0.85rem;
	height: 0.85rem;
	border-radius: 2px;
	margin-right: 0.25rem;
	vertical-align: middle;
}

.kth-hire-calendar__swatch--ok {
	background: var(--kth-hire-accent-soft);
	border: 1px solid var(--kth-hire-accent);
}

.kth-hire-calendar__swatch--blocked {
	background: var(--kth-hire-danger-soft);
	border: 1px solid var(--kth-hire-danger);
}

@media (max-width: 600px) {
	.kth-hire-booking__fields {
		grid-template-columns: 1fr;
	}

	.kth-hire-booking__submit {
		width: 100%;
	}
}

/* Cart / checkout / account Hire identity */
.kth-hire-item-meta {
	margin: 0.25rem 0 0;
	padding: 0;
	list-style: none;
	font-size: 0.9rem;
	color: var(--kth-hire-muted, #5a6575);
}

.kth-checkout-hire .kth-hire-details-accordion {
	margin: 0.75rem 0;
	border: 1px solid #d5dbe3;
	border-radius: 4px;
	padding: 0.5rem 0.75rem;
	background: #fff;
}

.kth-hire-details-accordion summary {
	cursor: pointer;
	font-weight: 600;
	min-height: 44px;
	display: flex;
	align-items: center;
}

.kth-hire-details-accordion summary:focus-visible {
	outline: 2px solid #1a5fb4;
	outline-offset: 2px;
}

.kth-hire-details-accordion__body {
	padding: 0.5rem 0 0.75rem;
}

.kth-hire-share-contacts {
	margin: 0.5rem 0 1rem;
}

.kth-my-hires__filters {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 1rem;
}

.kth-my-hires__filters a {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	padding: 0.35rem 0.75rem;
	border: 1px solid #d5dbe3;
	border-radius: 4px;
	text-decoration: none;
}

.kth-my-hires__filters a.is-active {
	background: #1a2332;
	color: #fff;
	border-color: #1a2332;
}

.kth-my-hire-detail__status {
	display: inline-block;
	padding: 0.2rem 0.55rem;
	border-radius: 3px;
	background: #e6f4ef;
	font-weight: 600;
}

@media (max-width: 600px) {
	.kth-hires-table thead {
		display: none;
	}

	.kth-hires-table tr {
		display: block;
		margin-bottom: 1rem;
		border: 1px solid #d5dbe3;
		padding: 0.75rem;
	}

	.kth-hires-table td {
		display: block;
		text-align: left !important;
		border: 0 !important;
		padding: 0.25rem 0 !important;
	}

	.kth-hires-table td::before {
		content: attr(data-title) ': ';
		font-weight: 600;
	}
}
