/* ── exakt Booking Frontend — colors controlled via Customizer > exakt Booking: Properties ── */

/* ── Shared base ─────────────────────────────────────────────────────────── */

.exakt-bk-fe-empty {
	color: var(--exakt-bk-card-text, #888);
	font-style: italic;
}

.exakt-bk-fe-back {
	display: inline-block;
	margin-bottom: 20px;
	color: var(--exakt-bk-back-color, #666);
	text-decoration: none;
	font-size: var(--exakt-bk-back-size, 14px);
}
.exakt-bk-fe-back:hover { color: var(--exakt-bk-back-hover, #0073aa); }

/* ── Property card grid — mirrors .woocommerce ul.products ───────────────── */

.exakt-bk-fe-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.exakt-bk-fe-card {
	background: var(--exakt-bk-card-bg, #fff);
	border: 1px solid var(--exakt-bk-card-border, #e0e0e0);
	border-radius: 6px;
	overflow: hidden;
	transition: box-shadow 0.2s ease, border-color 0.2s ease;
	display: flex;
	flex-direction: column;
}
.exakt-bk-fe-card:hover {
	box-shadow: 0 4px 12px rgba(0,0,0,.08);
	border-color: var(--exakt-bk-card-border-hover, #0073aa);
}

.exakt-bk-fe-card-link {
	display: flex;
	flex-direction: column;
	height: 100%;
	text-decoration: none;
	color: inherit;
}

.exakt-bk-fe-card-img {
	width: 100%;
	aspect-ratio: 4/3;
	overflow: hidden;
	background-color: var(--exakt-bk-amenity-bg, #f5f5f5);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}
.exakt-bk-fe-card-img-placeholder {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--exakt-bk-amenity-bg, #f0f0f0);
	color: var(--exakt-bk-card-border, #ccc);
}
.exakt-bk-fe-card-img-placeholder .dashicons {
	font-size: 48px;
	width: 48px;
	height: 48px;
}

.exakt-bk-fe-card-body {
	padding: 12px 15px 8px;
	flex: 1;
	text-align: center;
}

.exakt-bk-fe-card-title {
	margin: 0 0 6px;
	font-size: var(--exakt-font-size-product-title, 15px);
	font-family: var(--exakt-font-heading, inherit);
	font-weight: var(--exakt-font-weight-heading, 600);
	color: var(--exakt-bk-card-title, #333);
	line-height: 1.3;
}

.exakt-bk-fe-card-location {
	margin: 0 0 6px;
	font-size: calc(var(--exakt-font-size-body, 16px) - 3px);
	color: var(--exakt-bk-card-text, #888);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
}
.exakt-bk-fe-card-location .dashicons {
	font-size: 13px;
	width: 13px;
	height: 13px;
}

.exakt-bk-fe-card-desc {
	margin: 0 0 6px;
	font-size: calc(var(--exakt-font-size-body, 16px) - 2px);
	color: var(--exakt-bk-card-text, #666);
	line-height: 1.5;
}

.exakt-bk-fe-card-types {
	margin: 0;
	font-size: calc(var(--exakt-font-size-body, 16px) - 3px);
	color: var(--exakt-bk-card-text, #aaa);
}

/* CTA button at card bottom */
.exakt-bk-fe-card-footer {
	padding: 0 15px 15px;
}
.exakt-bk-fe-card-cta {
	display: block;
	width: 100%;
	padding: 10px 15px;
	background: var(--exakt-bk-card-btn-bg, #0073aa);
	color: var(--exakt-bk-card-btn-text, #fff) !important;
	border: none;
	border-radius: 4px;
	font-size: calc(var(--exakt-font-size-body, 16px) - 2px);
	font-weight: var(--exakt-font-weight-button, 600);
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}
.exakt-bk-fe-card-link:hover .exakt-bk-fe-card-cta {
	background: var(--exakt-bk-card-btn-hover-bg, #005a87);
	color: var(--exakt-bk-card-btn-hover-text, #fff) !important;
}

/* ── Single property detail ───────────────────────────────────────────────── */

/* Property page: 2-column header (info left, carousel right) */
.exakt-bk-fe-property-header {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
	align-items: start;
	background: var(--exakt-bk-type-bg, #fff);
	border: 1px solid var(--exakt-bk-type-border, #e0e0e0);
	border-radius: 8px;
	padding: 28px;
	margin-bottom: 32px;
}

.exakt-bk-fe-property-info { display: flex; flex-direction: column; gap: 0; }

.exakt-bk-fe-property-title {
	margin: 0 0 10px;
	font-size: var(--exakt-bk-prop-title-size, 32px);
	font-family: var(--exakt-font-heading, inherit);
	font-weight: var(--exakt-font-weight-heading, 700);
	color: var(--exakt-bk-prop-title-color, #333);
}

.exakt-bk-fe-property-location {
	margin: 0 0 8px;
	color: var(--exakt-bk-location-color, #888);
	font-size: var(--exakt-bk-location-size, 14px);
	display: flex;
	align-items: center;
	gap: 6px;
}
.exakt-bk-fe-property-location .dashicons { color: var(--exakt-bk-icon-color, #0073aa); }

.exakt-bk-fe-checktimes {
	margin: 0 0 16px;
	font-size: var(--exakt-bk-times-size, 13px);
	color: var(--exakt-bk-times-color, #888);
	display: flex;
	gap: 20px;
}

.exakt-bk-fe-property-desc {
	margin-top: 12px;
	font-size: var(--exakt-bk-desc-size, 15px);
	font-family: var(--exakt-font-body, inherit);
	line-height: 1.7;
	color: var(--exakt-bk-desc-color, #444);
}
.exakt-bk-fe-property-desc p:last-child { margin: 0; }

/* Property carousel (right column) */
.exakt-bk-fe-property-carousel {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.exakt-bk-fe-prop-carousel-main {
	position: relative;
	border-radius: 6px;
	overflow: hidden;
	background: var(--exakt-bk-amenity-bg, #f0f0f0);
	aspect-ratio: 4/3;
	display: flex;
	align-items: center;
	justify-content: center;
}

.exakt-bk-fe-prop-carousel-img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	display: block;
}

.exakt-bk-fe-prop-carousel-thumbs {
	display: flex;
	gap: 6px;
	overflow-x: auto;
	padding-bottom: 2px;
}

.exakt-bk-fe-prop-carousel-thumb {
	width: 72px;
	height: 54px;
	object-fit: cover;
	border-radius: 4px;
	cursor: pointer;
	opacity: .65;
	border: 2px solid transparent;
	transition: opacity .15s, border-color .15s;
	flex-shrink: 0;
}
.exakt-bk-fe-prop-carousel-thumb.active,
.exakt-bk-fe-prop-carousel-thumb:hover {
	opacity: 1;
	border-color: var(--exakt-bk-icon-color, #0073aa);
}

/* Shared carousel prev/next buttons */
.exakt-bk-fe-carousel-btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: rgba(0,0,0,.45);
	color: #fff;
	border: none;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	font-size: 26px;
	line-height: 1;
	cursor: pointer;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background .15s;
	padding: 0;
}
.exakt-bk-fe-carousel-btn:hover { background: rgba(0,0,0,.72); }
.exakt-bk-fe-carousel-prev { left: 10px; }
.exakt-bk-fe-carousel-next { right: 10px; }

.exakt-bk-fe-types-heading {
	margin: 0 0 20px;
	font-size: var(--exakt-bk-acc-heading-size, 24px);
	font-family: var(--exakt-font-heading, inherit);
	font-weight: var(--exakt-font-weight-heading, 600);
	color: var(--exakt-bk-acc-heading-color, #333);
	border-bottom: 2px solid var(--exakt-bk-type-border, #e0e0e0);
	padding-bottom: 10px;
}

/* ── Accommodation type cards — images left (2/3), content right (1/3) ───── */

.exakt-bk-fe-types {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.exakt-bk-fe-type {
	background: var(--exakt-bk-type-bg, #fff);
	border: 1px solid var(--exakt-bk-type-border, #e0e0e0);
	border-radius: 8px;
	overflow: hidden;
	display: grid;
	grid-template-columns: 2fr 1fr;
}

/* Left: gallery */
.exakt-bk-fe-type-gallery {
	display: flex;
	flex-direction: column;
	border-right: 1px solid var(--exakt-bk-type-border, #e0e0e0);
	min-height: 280px;
}

.exakt-bk-fe-type-no-img {
	background: var(--exakt-bk-amenity-bg, #f5f5f5);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--exakt-bk-card-border, #ccc);
}
.exakt-bk-fe-type-no-img .dashicons { font-size: 48px; width: 48px; height: 48px; }

.exakt-bk-fe-type-carousel-main {
	position: relative;
	overflow: hidden;
	background: var(--exakt-bk-amenity-bg, #f0f0f0);
	aspect-ratio: 5/3;
	width: 100%;
	align-self: flex-start;
	display: flex;
	align-items: center;
	justify-content: center;
}

.exakt-bk-fe-type-img-main {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	display: block;
}

.exakt-bk-fe-type-thumbs {
	display: flex;
	gap: 6px;
	padding: 8px;
	background: var(--exakt-bk-amenity-bg, #f8f8f8);
	border-top: 1px solid var(--exakt-bk-type-border, #e0e0e0);
	overflow-x: auto;
}
.exakt-bk-fe-type-thumb {
	width: 64px;
	height: 48px;
	object-fit: cover;
	border-radius: 3px;
	cursor: pointer;
	opacity: .65;
	transition: opacity .15s, border-color .15s;
	border: 2px solid transparent;
	flex-shrink: 0;
}
.exakt-bk-fe-type-thumb:hover,
.exakt-bk-fe-type-thumb.active {
	opacity: 1;
	border-color: var(--exakt-bk-icon-color, #0073aa);
}

/* Right: info + booking stacked */
.exakt-bk-fe-type-side {
	display: flex;
	flex-direction: column;
}

.exakt-bk-fe-type-info {
	padding: 24px;
	border-bottom: 1px solid var(--exakt-bk-type-border, #e0e0e0);
	flex: 1;
}

.exakt-bk-fe-type-name {
	margin: 0 0 12px;
	font-size: calc(var(--exakt-font-size-h1, 32px) * .70);
	font-family: var(--exakt-font-heading, inherit);
	font-weight: var(--exakt-font-weight-heading, 600);
	color: var(--exakt-bk-detail-heading, #333);
}

.exakt-bk-fe-type-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-bottom: 16px;
}
.exakt-bk-fe-type-meta span {
	display: flex;
	align-items: center;
	gap: 5px;
	font-size: calc(var(--exakt-font-size-body, 16px) - 1px);
	color: var(--exakt-bk-detail-text, #333);
}
.exakt-bk-fe-type-meta .dashicons {
	font-size: 16px;
	width: 16px;
	height: 16px;
	color: var(--exakt-bk-icon-color, #0073aa);
}

.exakt-bk-fe-type-desc {
	font-size: calc(var(--exakt-font-size-body, 16px) - 1px);
	font-family: var(--exakt-font-body, inherit);
	color: var(--exakt-bk-detail-text, #444);
	line-height: 1.6;
	margin-bottom: 16px;
}
.exakt-bk-fe-type-desc p:last-child { margin: 0; }

.exakt-bk-fe-type-amenities {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.exakt-bk-fe-amenity {
	background: var(--exakt-bk-amenity-bg, #f0f0f0);
	color: var(--exakt-bk-amenity-text, #444);
	border: 1px solid var(--exakt-bk-amenity-border, #e0e0e0);
	border-radius: 3px;
	padding: 3px 10px;
	font-size: calc(var(--exakt-font-size-body, 16px) - 3px);
}

/* ── Booking form (right column) ─────────────────────────────────────────── */

.exakt-bk-fe-type-booking {
	padding: 20px;
	background: var(--exakt-bk-form-bg, #f9f9f9);
}

.exakt-bk-fe-dates,
.exakt-bk-fe-guests {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	margin-bottom: 12px;
}

.exakt-bk-clear-dates {
	grid-column: 1 / -1;
	justify-self: end;
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	font-size: 12px;
	color: #888;
	line-height: 1;
	margin-top: -6px;
	margin-bottom: 2px;
	transition: color 0.15s;
}
.exakt-bk-clear-dates:hover {
	color: #c62828;
}

.exakt-bk-fe-field label {
	display: block;
	font-size: calc(var(--exakt-font-size-body, 16px) - 4px);
	font-weight: 600;
	color: var(--exakt-bk-form-label, #666);
	margin-bottom: 4px;
	text-transform: uppercase;
	letter-spacing: .4px;
}

.exakt-bk-fe-field input[type="date"],
.exakt-bk-fe-field input[type="text"].exakt-bk-datepicker,
.exakt-bk-fe-field input[type="text"].exakt-bk-datepicker-end,
.exakt-bk-fe-field select {
	width: 100%;
	border: 1px solid var(--exakt-bk-type-border, #ddd);
	border-radius: 4px;
	padding: 8px 10px;
	font-size: calc(var(--exakt-font-size-body, 16px) - 2px);
	font-family: var(--exakt-font-body, inherit);
	background: var(--exakt-bk-form-input-bg, #fff);
	color: var(--exakt-bk-form-input-text, #333);
	box-sizing: border-box;
	cursor: pointer;
}
.exakt-bk-fe-field input[type="date"]:focus,
.exakt-bk-fe-field input[type="text"].exakt-bk-datepicker:focus,
.exakt-bk-fe-field input[type="text"].exakt-bk-datepicker-end:focus,
.exakt-bk-fe-field select:focus {
	outline: none;
	border-color: var(--exakt-bk-form-focus, #0073aa);
	box-shadow: 0 0 0 2px rgba(0,115,170,.12);
}

/* Flatpickr calendar */
.flatpickr-calendar {
	z-index: 99999 !important;
	font-family: var(--exakt-font-body, inherit);
	box-shadow: 0 4px 24px rgba(0,0,0,.15) !important;
	border-radius: 8px !important;
}
.flatpickr-months .flatpickr-month {
	border-radius: 8px 8px 0 0;
}
.flatpickr-day.today:not(.selected):not(.inRange) {
	border-color: var(--exakt-bk-form-focus, #0073aa) !important;
}
.flatpickr-day.flatpickr-disabled {
	opacity: .35;
}

/* Price preview */
.exakt-bk-fe-price-preview {
	border: 1px solid var(--exakt-bk-type-border, #e0e0e0);
	border-radius: 4px;
	padding: 12px;
	margin-bottom: 12px;
	background: var(--exakt-bk-form-input-bg, #fff);
	font-size: calc(var(--exakt-font-size-body, 16px) - 2px);
	font-family: var(--exakt-font-body, inherit);
}
.exakt-bk-fe-price-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 3px 0;
	color: var(--exakt-bk-detail-text, #444);
}
.exakt-bk-fe-price-row + .exakt-bk-fe-price-row {
	border-top: 1px solid var(--exakt-bk-type-border, #f0f0f0);
}
.exakt-bk-fe-price-total {
	font-weight: 700;
	font-size: var(--exakt-font-size-body, 16px);
	color: var(--exakt-bk-detail-heading, #111);
	border-top: 2px solid var(--exakt-bk-type-border, #e0e0e0) !important;
	margin-top: 4px;
	padding-top: 8px !important;
}
.exakt-bk-fe-price-total-val {
	color: var(--exakt-bk-price-total, #0073aa);
}

/* Coupon row */
.exakt-bk-fe-coupon-row {
	margin-bottom: 10px;
}
.exakt-bk-fe-coupon-field {
	display: flex !important;
	flex-direction: row !important;
	align-items: center;
	gap: 6px;
}
.exakt-bk-fe-coupon-field input {
	flex: 1;
	min-width: 0;
}
.exakt-bk-fe-coupon-field .button {
	white-space: nowrap;
	flex-shrink: 0;
}
.exakt-bk-coupon-msg {
	font-size: 12px;
	margin-top: 3px;
}
.exakt-bk-coupon-remove {
	background: none;
	border: none;
	color: #c62828;
	font-size: 12px;
	cursor: pointer;
	padding: 2px 0;
	margin-top: 3px;
	display: block;
}
.exakt-bk-coupon-remove:hover {
	text-decoration: underline;
}

/* Unavailable notice */
.exakt-bk-fe-unavailable {
	background: #fff8f8;
	border: 1px solid #f5c6cb;
	border-radius: 4px;
	padding: 10px 12px;
	margin-bottom: 12px;
	font-size: calc(var(--exakt-font-size-body, 16px) - 2px);
	color: #842029;
}
.exakt-bk-fe-unavailable p { margin: 0; }

/* Book Now button */
.exakt-bk-fe-submit {
	display: block;
	width: 100%;
	padding: 14px 20px;
	background: var(--exakt-bk-submit-bg, #0073aa);
	color: var(--exakt-bk-submit-text, #fff) !important;
	border: none;
	border-radius: 4px;
	font-size: var(--exakt-font-size-button, 15px);
	font-weight: var(--exakt-font-weight-button, 600);
	font-family: var(--exakt-font-body, inherit);
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background .2s ease, color .2s ease;
	letter-spacing: .3px;
	box-sizing: border-box;
}
.exakt-bk-fe-submit:hover:not(:disabled) {
	background: var(--exakt-bk-submit-hover-bg, #005a87);
	color: var(--exakt-bk-submit-hover-text, #fff) !important;
}
.exakt-bk-fe-submit:disabled {
	opacity: .5;
	cursor: not-allowed;
}

/* Enquire fallback */
.exakt-bk-fe-enquire {
	text-align: center;
}
.exakt-bk-fe-enquire p {
	margin-bottom: 14px;
	color: var(--exakt-bk-card-text, #666);
	font-size: calc(var(--exakt-font-size-body, 16px) - 1px);
}

/* ── Overflow containment (prevents horizontal scroll on mobile) ─────────── */

/*
 * The booking widget must never cause the page to scroll horizontally.
 * width: 100% + overflow: hidden on the root div establishes a hard boundary.
 */
.exakt-bk-fe-property {
	width: 100%;
	max-width: 100%;
	overflow-x: hidden;
	box-sizing: border-box;
}

/*
 * CSS Grid/Flex children default to min-width: auto which lets them grow
 * beyond their track. min-width: 0 enforces the track size as the maximum.
 */
.exakt-bk-fe-property-info,
.exakt-bk-fe-property-carousel,
.exakt-bk-fe-type-gallery,
.exakt-bk-fe-type-side,
.exakt-bk-fe-type-info,
.exakt-bk-fe-type-booking {
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
}

/* Secondary containers: also clip overflow so no child escapes */
.exakt-bk-fe-property-header,
.exakt-bk-fe-types,
.exakt-bk-fe-type {
	max-width: 100%;
	overflow-x: hidden;
}

/* Checktimes must wrap on very narrow screens */
.exakt-bk-fe-checktimes {
	flex-wrap: wrap;
}

/* Long text (title, location) must not force the grid wider */
.exakt-bk-fe-property-title,
.exakt-bk-fe-property-location,
.exakt-bk-fe-type-name {
	word-break: break-word;
	overflow-wrap: break-word;
}

/* All images inside the booking widget stay within their column */
.exakt-bk-fe-property img,
.exakt-bk-fe-types img {
	max-width: 100%;
	height: auto;
}

/* ── Responsive ──────────────────────────────────────────────────────────── */

@media (max-width: 960px) {
	/* Property header: stack to single column */
	.exakt-bk-fe-property-header {
		grid-template-columns: 1fr;
	}
	/* Type cards: stack images above content */
	.exakt-bk-fe-type {
		grid-template-columns: 1fr;
	}
	.exakt-bk-fe-type-gallery {
		border-right: none;
		border-bottom: 1px solid var(--exakt-bk-type-border, #e0e0e0);
		min-height: 240px;
	}
}

@media (max-width: 640px) {
	.exakt-bk-fe-grid {
		grid-template-columns: 1fr;
	}
	.exakt-bk-fe-property-header {
		padding: 16px;
	}
	.exakt-bk-fe-property-title {
		font-size: calc(var(--exakt-font-size-h1, 32px) * .75);
	}
	.exakt-bk-fe-dates,
	.exakt-bk-fe-guests {
		grid-template-columns: 1fr;
	}
	/* Login/register buttons: stack vertically on small screens */
	.exakt-bk-fe-login-btn,
	.exakt-bk-fe-register-btn {
		display: block !important;
		width: 100% !important;
	}
}

/* ── WhatsApp booking button + guest fields ──────────────────────────────── */

.exakt-bk-fe-booking-actions {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-top: 12px;
}

.exakt-bk-wa-btn {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	background: #25D366 !important;
	color: #fff !important;
	border: none !important;
	border-radius: 4px !important;
	padding: 12px 20px !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	cursor: pointer;
	width: 100%;
	text-align: center;
	transition: background 0.2s ease;
}
.exakt-bk-wa-btn:hover:not(:disabled) { background: #1ebe5c !important; color: #fff !important; }
.exakt-bk-wa-btn:disabled { opacity: .5; cursor: not-allowed; }
.exakt-bk-wa-icon { flex-shrink: 0; }

.exakt-bk-fe-guest-fields {
	background: #f9f9f9;
	border: 1px solid #e0e0e0;
	border-radius: 4px;
	padding: 16px;
	margin-top: 14px;
}
.exakt-bk-fe-guest-title {
	font-size: 14px !important;
	font-weight: 700;
	margin: 0 0 12px !important;
	color: #333;
}
.exakt-bk-fe-guest-fields .exakt-bk-fe-field {
	margin-bottom: 10px;
}
.exakt-bk-fe-guest-fields .exakt-bk-fe-field input,
.exakt-bk-fe-guest-fields .exakt-bk-fe-field textarea {
	width: 100%;
	padding: 8px 10px;
	border: 1px solid #ccc;
	border-radius: 3px;
	font-size: 14px;
	box-sizing: border-box;
}

.exakt-bk-fe-wa-msg {
	padding: 8px 12px;
	border-radius: 3px;
	font-size: 13px;
	margin-top: 8px;
}
.exakt-bk-fe-wa-msg.success,
.exakt-bk-fe-wa-msg.exakt-bk-fe-wa-success { background: #e7f7ee; color: #155724; border: 1px solid #c3e6cb; }
.exakt-bk-fe-wa-msg.error,
.exakt-bk-fe-wa-msg.exakt-bk-fe-wa-error   { background: #fdf0f0; color: #721c24; border: 1px solid #f1b0b7; }

/* Login gate */
.exakt-bk-fe-login-gate {
	text-align: center;
	padding: 16px 0 4px;
}
.exakt-bk-fe-login-btn,
.exakt-bk-fe-register-btn {
	display: inline-block !important;
	width: calc(50% - 4px) !important;
	text-align: center !important;
	padding: 10px 12px !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	box-sizing: border-box;
	margin-top: 8px !important;
}
.exakt-bk-fe-login-note {
	text-align: center;
	font-size: 13px !important;
	color: #666;
	margin: 0 0 10px !important;
	font-weight: 600;
}
.exakt-bk-fe-login-note a { color: #0073aa; }

/* Actions row (WC + WhatsApp buttons) */
.exakt-bk-fe-actions {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-top: 8px;
}
.exakt-bk-fe-wa-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 6px !important;
	background: #25D366 !important;
	color: #fff !important;
	border-color: #1ebe5c !important;
	font-weight: 600 !important;
	width: 100% !important;
}
.exakt-bk-fe-wa-btn:hover:not(:disabled) { background: #1ebe5c !important; color: #fff !important; }
.exakt-bk-fe-wa-btn:disabled { opacity: .5 !important; cursor: not-allowed !important; }
.exakt-bk-fe-email-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 6px !important;
	width: 100% !important;
	font-weight: 600 !important;
}
.exakt-bk-fe-email-btn:disabled { opacity: .5 !important; cursor: not-allowed !important; }

/* Status badge for enquiry */
.exakt-bk-status-enquiry { background: #fff3cd; color: #856404; border: 1px solid #ffc107; }

.exakt-bk-enquiry-actions .button-primary {
	background: #25D366 !important;
	border-color: #1ebe5c !important;
	color: #fff !important;
}
.exakt-bk-enquiry-actions .button-primary:hover {
	background: #1ebe5c !important;
}

/* ── Enquiry Confirmation Page ───────────────────────────────────────────── */

.exakt-bk-enquiry-confirmation {
	max-width: 700px;
	margin: 0 auto;
	padding: 20px 16px;
}
.exakt-bk-enquiry-header {
	text-align: center;
	padding: 30px 20px;
	background: #f0faf4;
	border: 1px solid #c3e6cb;
	border-radius: 8px;
	margin-bottom: 20px;
}
.exakt-bk-enquiry-header .dashicons {
	font-size: 48px;
	width: 48px;
	height: 48px;
	color: #25D366;
	display: block;
	margin: 0 auto 12px;
}
.exakt-bk-enquiry-header h2 {
	margin: 0 0 8px;
	color: #155724;
}
.exakt-bk-enquiry-ref {
	font-size: 14px;
	color: #666;
	margin: 0;
}
.exakt-bk-enquiry-header-actions {
	display: flex;
	gap: 10px;
	justify-content: center;
	flex-wrap: wrap;
	margin-top: 14px;
}
.exakt-bk-enquiry-order-btn,
.exakt-bk-enquiry-all-bookings-btn {
	display: inline-block;
	font-size: 13px !important;
	padding: 6px 18px !important;
	border-radius: 20px !important;
	text-decoration: none !important;
}
.exakt-bk-enquiry-order-btn {
	background: #155724 !important;
	color: #fff !important;
	border-color: #155724 !important;
}
.exakt-bk-enquiry-order-btn:hover {
	background: #0d3d18 !important;
	border-color: #0d3d18 !important;
	color: #fff !important;
}
.exakt-bk-enquiry-all-bookings-btn {
	background: transparent !important;
	color: #155724 !important;
	border: 1px solid #155724 !important;
}
.exakt-bk-enquiry-all-bookings-btn:hover {
	background: #155724 !important;
	color: #fff !important;
}
.exakt-bk-enquiry-details,
.exakt-bk-enquiry-process {
	background: #fff;
	border: 1px solid #e5e5e5;
	border-radius: 6px;
	padding: 24px;
	margin-bottom: 20px;
}
.exakt-bk-enquiry-details h3,
.exakt-bk-enquiry-process h3 {
	margin: 0 0 16px;
	font-size: 18px;
	border-bottom: 2px solid #f0f0f0;
	padding-bottom: 10px;
}
.exakt-bk-enquiry-table {
	width: 100%;
	border-collapse: collapse;
}
.exakt-bk-enquiry-table th,
.exakt-bk-enquiry-table td {
	padding: 8px 12px;
	text-align: left;
	border-bottom: 1px solid #f5f5f5;
	font-size: 14px;
}
.exakt-bk-enquiry-table th {
	width: 35%;
	color: #666;
	font-weight: 600;
}
.exakt-bk-enquiry-process-body p,
.exakt-bk-enquiry-process-body li {
	margin: 0 0 10px;
	font-size: 15px;
	line-height: 1.7;
}
.exakt-bk-enquiry-process-body a {
	font-size: 15px !important;
	word-break: break-all;
}

/* ── Booking Progress Bar (frontend / read-only) ─────────────────────────── */

.exakt-bk-fe-progress {
	margin: 0 0 24px;
	padding: 24px 20px 20px;
	background: #fff;
	border: 1px solid #e5e5e5;
	border-radius: 8px;
}

.exakt-bk-fe-stepper { position: relative; }

.exakt-bk-fe-stepper-track {
	position: absolute;
	top: 19px;
	left: 12.5%;
	right: 12.5%;
	height: 4px;
	background: #e8e8e8;
	border-radius: 2px;
	z-index: 0;
}

.exakt-bk-fe-stepper-fill {
	height: 100%;
	background: #25a244;
	border-radius: 2px;
	transition: width 0.5s ease;
}

.exakt-bk-fe-stepper-steps {
	display: flex;
	position: relative;
	z-index: 1;
}

.exakt-bk-fe-step {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 0 6px;
}

.exakt-bk-fe-step-circle {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 3px solid #ddd;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 16px;
	position: relative;
	z-index: 1;
	transition: all 0.25s ease;
}

.exakt-bk-fe-step-done .exakt-bk-fe-step-circle {
	background: #25a244;
	border-color: #25a244;
	color: #fff;
	font-weight: 700;
}

.exakt-bk-fe-step-active .exakt-bk-fe-step-circle {
	background: var(--exakt-bk-form-focus, #0073aa);
	border-color: var(--exakt-bk-form-focus, #0073aa);
	color: #fff;
	box-shadow: 0 0 0 5px rgba(0,115,170,.12);
}

.exakt-bk-fe-step-num { font-size: 14px; font-weight: 700; color: #ccc; }

.exakt-bk-fe-step-label {
	margin-top: 10px;
	font-size: 12px;
	font-weight: 700;
	color: #333;
	line-height: 1.3;
}
.exakt-bk-fe-step-pending .exakt-bk-fe-step-label { color: #bbb; }

.exakt-bk-fe-step-sub {
	font-size: 11px;
	color: #888;
	margin-top: 3px;
	line-height: 1.3;
}
.exakt-bk-fe-step-active .exakt-bk-fe-step-sub { color: var(--exakt-bk-form-focus, #0073aa); font-weight: 600; }
.exakt-bk-fe-step-pending .exakt-bk-fe-step-sub { color: #ccc; }

.exakt-bk-fe-step-actions {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-top: 14px;
	align-items: center;
	padding-top: 14px;
	border-top: 1px solid #f0f0f0;
}

.exakt-bk-fe-step-btn {
	font-size: 12px !important;
	padding: 5px 14px !important;
	border-radius: 20px !important;
	white-space: nowrap;
}

.exakt-bk-fe-step-btn-pay {
	background: #25a244 !important;
	color: #fff !important;
	border-color: #25a244 !important;
}

.exakt-bk-fe-step-btn-pay:hover {
	background: #1e8236 !important;
	border-color: #1e8236 !important;
	color: #fff !important;
}

.exakt-bk-fe-step-btn-cancel {
	background: #fff !important;
	color: #c0392b !important;
	border-color: #e0b4b4 !important;
}

.exakt-bk-fe-step-btn-cancel:hover {
	background: #fdf2f2 !important;
	border-color: #c0392b !important;
}

/* Card header actions row */
.exakt-bk-myaccount-card-actions {
	display: flex;
	align-items: center;
	gap: 8px;
}

/* Buttons in card header */
.exakt-bk-order-view-btn,
.exakt-bk-booking-detail-btn {
	font-size: 12px !important;
	padding: 4px 12px !important;
	border-radius: 20px !important;
	text-decoration: none !important;
}
.exakt-bk-order-view-btn {
	background: #fff !important;
	color: #555 !important;
	border-color: #ccc !important;
}
.exakt-bk-booking-detail-btn {
	background: #f0faf4 !important;
	color: #155724 !important;
	border-color: #c3e6cb !important;
}
.exakt-bk-booking-detail-btn:hover {
	background: #155724 !important;
	color: #fff !important;
	border-color: #155724 !important;
}

/* v0.4.20 - Mobile: stack card header vertically, fix overflow */
@media (max-width: 480px) {
	/* Prevent cards from overflowing viewport */
	.exakt-bk-myaccount-cards {
		overflow: hidden;
	}
	.exakt-bk-myaccount-card {
		overflow: hidden;
		word-break: break-word;
		overflow-wrap: break-word;
	}

	/* Stack header: ref # on top, then actions row below */
	.exakt-bk-myaccount-card-header {
		flex-direction: column !important;
		align-items: flex-start !important;
		gap: 8px !important;
		padding: 12px 14px !important;
	}
	.exakt-bk-myaccount-ref {
		font-size: 12px !important;
	}
	.exakt-bk-myaccount-card-actions {
		flex-wrap: wrap !important;
		gap: 6px !important;
	}
	.exakt-bk-status-badge {
		font-size: 10px !important;
		padding: 2px 8px !important;
	}
	.exakt-bk-order-view-btn,
	.exakt-bk-booking-detail-btn {
		font-size: 11px !important;
		padding: 3px 10px !important;
	}

	/* Booking ref bar wraps cleanly */
	.exakt-bk-myaccount-booking-ref-bar {
		padding: 8px 14px !important;
		font-size: 12px !important;
	}
	.exakt-bk-myaccount-booking-ref-dates {
		font-size: 12px !important;
		width: 100%;
	}

	/* Card body padding */
	.exakt-bk-myaccount-card-title {
		padding: 10px 14px 0 !important;
		font-size: 14px !important;
	}
	.exakt-bk-myaccount-card-details {
		padding: 10px 14px 14px !important;
	}
	.exakt-bk-myaccount-card-progress {
		padding: 12px 14px !important;
	}
}

.exakt-bk-fe-progress-terminal {
	margin-top: 16px;
	padding: 10px 16px;
	border-radius: 6px;
	font-size: 13px;
	text-align: center;
}
.exakt-bk-fe-progress-cancelled { background: #fff0f0; color: #842029; border: 1px solid #f5c6cb; }
.exakt-bk-fe-progress-no_show   { background: #f5f5f5; color: #555; border: 1px solid #ddd; }
.exakt-bk-fe-progress-failed    { background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }

/* 3-step order stepper — dot centers at 1/6, 3/6, 5/6 */
.exakt-bk-fe-stepper-3 .exakt-bk-fe-stepper-track {
	left: 16.67%;
	right: 16.67%;
}

@media (max-width: 600px) {
	.exakt-bk-fe-stepper-track { display: none; }
	.exakt-bk-fe-stepper-steps { flex-direction: column; gap: 10px; }
	.exakt-bk-fe-step { flex-direction: row; text-align: left; gap: 12px; padding: 4px 0; align-items: center; }
	.exakt-bk-fe-step-circle { flex-shrink: 0; }
	.exakt-bk-fe-step-label { margin-top: 0; }
	.exakt-bk-fe-step-sub { margin-top: 1px; }
}

/* ── My Account Bookings — card layout ───────────────────────────────────── */

.exakt-bk-myaccount-bookings h2 {
	margin-bottom: 20px;
}

.exakt-bk-myaccount-cards {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.exakt-bk-myaccount-card {
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 2px 6px rgba(0,0,0,.05);
}

.exakt-bk-myaccount-card-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 18px;
	background: #f8f9fa;
	border-bottom: 1px solid #e8e8e8;
}

.exakt-bk-myaccount-ref {
	font-family: monospace;
	font-size: 14px;
	font-weight: 700;
	color: #333;
}

.exakt-bk-myaccount-booking-ref-bar {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
	padding: 8px 18px;
	background: #f0f7ff;
	border-bottom: 1px solid #dce8f5;
	font-size: 13px;
}

.exakt-bk-myaccount-booking-ref-label {
	font-weight: 700;
	color: #555;
	text-transform: uppercase;
	font-size: 11px;
	letter-spacing: 0.5px;
}

.exakt-bk-myaccount-booking-ref-val {
	font-weight: 700;
	color: #0073aa;
	font-size: 13px;
}
a.exakt-bk-booking-ref-link {
	text-decoration: underline;
}
a.exakt-bk-booking-ref-link:hover {
	color: #005177;
}
/* .exakt-bk-order-booking-ref-link color is output as real CSS values via output_inline_styles() */

.exakt-bk-myaccount-booking-ref-sep {
	color: #bbb;
}

.exakt-bk-myaccount-booking-ref-dates {
	color: #555;
	font-size: 13px;
}

.exakt-bk-myaccount-card-title {
	padding: 12px 18px 0;
	font-size: 15px;
	font-weight: 600;
	color: #222;
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
}
.exakt-bk-myaccount-sep { color: #bbb; }
.exakt-bk-myaccount-type { color: #666; font-weight: 400; }

.exakt-bk-myaccount-card-details {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
	padding: 12px 18px 16px;
	border-bottom: 1px solid #f0f0f0;
}

.exakt-bk-myaccount-detail {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.exakt-bk-myaccount-detail-label {
	font-size: 11px;
	font-weight: 600;
	color: #999;
	text-transform: uppercase;
	letter-spacing: .4px;
}

.exakt-bk-myaccount-detail-val {
	font-size: 14px;
	color: #333;
	font-weight: 500;
}

.exakt-bk-myaccount-total {
	font-weight: 700;
	color: #111;
}

.exakt-bk-myaccount-card-progress {
	padding: 16px 18px;
}
.exakt-bk-myaccount-card-progress .exakt-bk-fe-progress {
	margin: 0;
	border: none;
	padding: 0;
	box-shadow: none;
}

/* Status badges */
.exakt-bk-status-badge {
	display: inline-block;
	padding: 4px 12px;
	border-radius: 20px;
	font-size: 12px;
	font-weight: 600;
}
.exakt-bk-status-pending   { background: #e8f4fd; color: #0a6ebd; border: 1px solid #bee5fb; }
.exakt-bk-status-enquiry   { background: #fff3cd; color: #856404; border: 1px solid #ffc107; }
.exakt-bk-status-confirmed { background: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
.exakt-bk-status-paid      { background: #d1ecf1; color: #0c5460; border: 1px solid #bee5eb; }
.exakt-bk-status-completed { background: #cfe2ff; color: #084298; border: 1px solid #b6d4fe; }
.exakt-bk-status-cancelled { background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }
.exakt-bk-status-no-show   { background: #e2e3e5; color: #41464b; border: 1px solid #d3d6d8; }

@media (max-width: 600px) {
	.exakt-bk-myaccount-card-details {
		grid-template-columns: 1fr 1fr;
		gap: 12px;
	}
	/* Ensure cards don't overflow the page width */
	.exakt-bk-myaccount-cards,
	.exakt-bk-orders-cards {
		width: 100%;
		max-width: 100%;
		overflow: hidden;
	}
}

.exakt-bk-fe-property-location { font-size: 14px !important; line-height: 1.4 !important; margin: 4px 0 8px !important; }
.exakt-bk-fe-maps-link { text-decoration: none !important; color: inherit !important; display: inline-flex !important; align-items: center; gap: 6px; font-size: 14px !important; font-weight: normal !important; }
.exakt-bk-fe-maps-link:hover { text-decoration: underline !important; }
.exakt-bk-fe-maps-link .dashicons { font-size: 16px !important; width: 16px !important; height: 16px !important; flex-shrink: 0; }


/* ── Rental date range + price breakdown (returnable types) ─────────────── */
.exakt-bk-rental-breakdown { margin: 12px 0 16px !important; }
.exakt-bk-rental-table { width: 100% !important; border-collapse: collapse !important; font-size: 14px !important; }
.exakt-bk-rental-table th,
.exakt-bk-rental-table td { padding: 7px 10px !important; border: 1px solid #e0e0e0 !important; text-align: left !important; }
.exakt-bk-rental-table thead th { background: #f5f5f5 !important; font-weight: 600 !important; }
.exakt-bk-rental-table td:last-child,
.exakt-bk-rental-table th:last-child { text-align: right !important; }
.exakt-bk-rental-total-row td { border-top: 2px solid #ccc !important; font-weight: 600 !important; }
.exakt-bk-rental-grandtotal-row td { background: #f0f7ff !important; font-weight: 700 !important; }
.exakt-bk-rental-deposit-row td { color: #555 !important; font-style: italic !important; }
.exakt-bk-rental-remainder td { color: #b00 !important; font-size: 13px !important; font-style: italic !important; border-top: 2px solid #e0e0e0 !important; }
.exakt-bk-rental-no-rate { color: #b00 !important; font-size: 13px !important; margin: 4px 0 !important; }
.exakt-bk-rental-por { padding: 10px 14px !important; background: #f0f7ff !important; border: 1px solid #b3d4f5 !important; border-radius: 4px !important; font-size: 14px !important; color: #1a5276 !important; }

/* ── My Account — collection section ────────────────────────────────────── */
.exakt-bk-collection-section { padding: 12px 16px !important; border-top: 1px solid #eee !important; margin-top: 8px !important; }
.exakt-bk-collection-status { display: flex !important; align-items: center !important; gap: 6px !important; color: #2e7d32 !important; font-size: 13px !important; font-weight: 600 !important; }
.exakt-bk-collection-status .dashicons { font-size: 16px !important; width: 16px !important; height: 16px !important; }
.exakt-bk-request-collection-btn { background: #25d366 !important; color: #fff !important; border: none !important; border-radius: 4px !important; padding: 8px 14px !important; font-size: 13px !important; cursor: pointer !important; display: inline-flex !important; align-items: center !important; gap: 6px !important; }
.exakt-bk-request-collection-btn:hover { background: #1ebe5a !important; color: #fff !important; }
.exakt-bk-request-collection-btn .dashicons { font-size: 16px !important; width: 16px !important; height: 16px !important; }

/* ── Collection request modal ────────────────────────────────────────────── */
.exakt-bk-collection-modal-inner { background: #fff !important; border-radius: 8px !important; padding: 28px !important; max-width: 440px !important; width: 90% !important; box-shadow: 0 8px 32px rgba(0,0,0,.2) !important; }
.exakt-bk-collection-modal-inner h3 { margin: 0 0 10px !important; font-size: 18px !important; }
.exakt-bk-collection-modal-inner .exakt-bk-collection-modal-asset { color: #555 !important; font-size: 14px !important; margin-bottom: 16px !important; }
.exakt-bk-collection-modal-inner label { font-size: 14px !important; color: #333 !important; }
.exakt-bk-collection-modal-inner input[type=date],
.exakt-bk-collection-modal-inner textarea { width: 100% !important; padding: 8px 10px !important; border: 1px solid #ddd !important; border-radius: 4px !important; font-size: 14px !important; box-sizing: border-box !important; }

/* ── Availability grid shortcode ─────────────────────────────────────────── */
/* All colours use CSS variables from exakt-theme-commerce (set via Customizer) */

.exakt-bk-avail-wrap { margin: 0 0 30px; font-size: 14px; }

/* Navigation bar */
.exakt-bk-avail-nav {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 14px;
	flex-wrap: wrap;
}
.exakt-bk-avail-week-label {
	font-size: 15px;
	font-weight: 600;
	min-width: 150px;
	text-align: center;
	color: var(--exakt-heading, #333);
	flex: 1;
}

/* Nav buttons (prev/next week and month) */
.exakt-bk-avail-btn {
	background: var(--exakt-white, #fff);
	border: 1px solid var(--exakt-border, #ddd);
	color: var(--exakt-text, #333);
	border-radius: 4px;
	padding: 5px 10px;
	cursor: pointer;
	font-size: 13px;
	font-family: var(--exakt-font-body, sans-serif);
	transition: background .15s, color .15s, border-color .15s;
	white-space: nowrap;
}
.exakt-bk-avail-btn:hover {
	background: var(--exakt-primary, #0073aa);
	color: var(--exakt-white, #fff);
	border-color: var(--exakt-primary, #0073aa);
}
.exakt-bk-avail-prev-week,
.exakt-bk-avail-next-week { font-size: 16px; font-weight: 700; padding: 4px 12px; }
.exakt-bk-avail-today {
	background: var(--exakt-primary, #0073aa);
	color: var(--exakt-white, #fff);
	border-color: var(--exakt-primary, #0073aa);
	margin-left: 8px;
}
.exakt-bk-avail-today:hover {
	background: var(--exakt-primary-light, #005a87);
	border-color: var(--exakt-primary-light, #005a87);
}

/* Grid inner */
.exakt-bk-avail-grid-inner { min-height: 50px; }
.exakt-bk-avail-loading {
	text-align: center;
	padding: 24px;
	color: var(--exakt-text-light, #888);
	font-style: italic;
}
.exakt-bk-avail-error {
	color: var(--exakt-sale, #c62828);
	padding: 8px 0;
}

/* Table */
.exakt-bk-avail-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.exakt-bk-avail-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
}

/* Header */
.exakt-bk-avail-table thead th {
	background: var(--exakt-bg-light, #f6f7f7);
	border: 1px solid var(--exakt-border-strong, #aaa);
	padding: 6px 10px;
	text-align: center;
	font-weight: 600;
	line-height: 1.3;
	color: var(--exakt-text, #333);
}
.exakt-bk-avail-day-header { min-width: 80px; }
.exakt-bk-avail-dow      { display: block; font-size: 11px; font-weight: 400; color: var(--exakt-text-light, #888); }
.exakt-bk-avail-day-num  { display: block; font-size: 16px; font-weight: 700; line-height: 1; }
.exakt-bk-avail-mon-abbr { display: block; font-size: 11px; font-weight: 400; color: var(--exakt-text-light, #888); }
.exakt-bk-today-header   { background: color-mix(in srgb, var(--exakt-primary, #0073aa) 12%, var(--exakt-white, #fff)) !important; }

.exakt-bk-avail-info-th {
	text-align: left !important;
	min-width: 160px;
	padding-left: 10px !important;
}
.exakt-bk-avail-action-th { min-width: 90px; }

/* Body cells */
.exakt-bk-avail-table tbody td {
	border: 1px solid var(--exakt-border-strong, #bbb);
	padding: 0;
	height: 52px;
	vertical-align: middle;
}
.exakt-bk-avail-info-cell { padding: 8px 10px !important; }
.exakt-bk-avail-info-inner { display: flex; align-items: center; gap: 10px; }
.exakt-bk-avail-thumb {
	width: 44px;
	height: 44px;
	object-fit: cover;
	border-radius: 4px;
	flex-shrink: 0;
	border: 1px solid var(--exakt-border, #ddd);
	display: block;
}
.exakt-bk-avail-name {
	font-weight: 600;
	font-size: 13px;
	line-height: 1.3;
	color: var(--exakt-text, #333);
}
.exakt-bk-avail-action-cell { padding: 6px 8px !important; text-align: center; }

/* Day status cells — tinted with theme success/sale colors */
.exakt-bk-avail-day-free    { background: color-mix(in srgb, var(--exakt-success, #4caf50) 22%, var(--exakt-white, #fff)); }
.exakt-bk-avail-day-booked  { background: color-mix(in srgb, var(--exakt-sale,    #e53935) 22%, var(--exakt-white, #fff)); }
.exakt-bk-avail-day-blocked { background: var(--exakt-bg-light, #eee); }
.exakt-bk-avail-day-past    { background: var(--exakt-secondary, #fafafa); opacity: .6; }
.exakt-bk-avail-day-today   { outline: 2px solid var(--exakt-primary, #0073aa); outline-offset: -2px; }

/* Book button */
.exakt-bk-avail-book-btn {
	display: inline-block;
	padding: 6px 12px;
	background: var(--exakt-primary, #0073aa);
	color: var(--exakt-white, #fff) !important;
	border-radius: 4px;
	text-decoration: none;
	font-size: 12px;
	font-weight: var(--exakt-font-weight-button, 600);
	font-family: var(--exakt-font-body, sans-serif);
	white-space: nowrap;
	transition: background .15s;
}
.exakt-bk-avail-book-btn:hover {
	background: var(--exakt-primary-light, #005a87);
	color: var(--exakt-white, #fff) !important;
}

/* Legend */
.exakt-bk-avail-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 12px;
	font-size: 14px;
	color: var(--exakt-text, #555);
}
.exakt-bk-avail-legend-item { display: flex; align-items: center; gap: 6px; }
.exakt-bk-avail-legend-swatch {
	width: 16px;
	height: 16px;
	border-radius: 3px;
	flex-shrink: 0;
	display: inline-block;
	border: 1px solid var(--exakt-border, #ddd);
}
.exakt-bk-swatch-free    { background: color-mix(in srgb, var(--exakt-success, #4caf50) 22%, var(--exakt-white, #fff)); }
.exakt-bk-swatch-booked  { background: color-mix(in srgb, var(--exakt-sale,    #e53935) 22%, var(--exakt-white, #fff)); }
.exakt-bk-swatch-blocked { background: var(--exakt-bg-light, #eee); }
.exakt-bk-swatch-past    { background: var(--exakt-secondary, #fafafa); }

/* Pagination */
.exakt-bk-avail-pagination { display: flex; gap: 5px; margin-top: 14px; flex-wrap: wrap; }
.exakt-bk-avail-page-btn {
	padding: 4px 10px;
	border: 1px solid var(--exakt-border, #ddd);
	border-radius: 4px;
	background: var(--exakt-white, #fff);
	color: var(--exakt-text, #333);
	cursor: pointer;
	font-size: 13px;
	font-family: var(--exakt-font-body, sans-serif);
	transition: background .15s, color .15s;
}
.exakt-bk-avail-page-btn.active {
	background: var(--exakt-primary, #0073aa);
	color: var(--exakt-white, #fff);
	border-color: var(--exakt-primary, #0073aa);
}
.exakt-bk-avail-page-btn:hover:not(.active) {
	background: color-mix(in srgb, var(--exakt-primary, #0073aa) 10%, var(--exakt-white, #fff));
	border-color: var(--exakt-primary, #0073aa);
}
