/*
Theme Name: Bex Test
Author: Holidaymaker App Ltd
Author URI: https://holidaymakerapp.co.uk
Version: 2026.2.1
*/

:root {
	--color-bg: #f7f7f7;
	--color-surface: #ffffff;
	--color-text: #222222;
	--color-text-muted: #6e6e6e;
	--color-border: #e0e0e0;
	--color-border-2: #ffffff;
	--color-primary: #ff385c;
	--color-primary-hover: #e22c4f;
	--color-icon: var(--color-primary);
	--color-success: #00a699;
	--color-warning: #ffb400;
	--radius-sm: 8px;
	--radius-md: 12px;
	--radius-lg: 16px;
	--shadow-xs: 0 1px 3px rgba(0, 0, 0, 0.08);
	--shadow-sm: 0 4px 12px rgba(0, 0, 0, 0.08);
	--shadow-md: 0 6px 20px rgba(0, 0, 0, 0.12);
	--space-1: 4px;
	--space-2: 8px;
	--space-3: 12px;
	--space-4: 16px;
	--space-5: 20px;
	--space-6: 24px;
	--space-8: 32px;
	--space-10: 40px;
}

html,
body {
	height: 100%;
}

body {
	margin: 0;
	background: var(--color-bg);
	color: var(--color-text);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

@supports(corner-shape:squircle) {

	.btn,
	button,
	.organisation-logo {
		corner-shape: squircle;
		border-radius: 50px !important;
	}
}

#app_container {
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	padding: 0 !important;
	box-sizing: border-box;
}

.page-header {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 250px;
	width: 100%;
	background: grey;
	transition: height 0.4s ease-in-out;
}

.organisation-logo {
	width: 220px;
	max-height: 80px;
	background: #fff;
	padding: 15px;
	border-radius: var(--radius-md);
	margin-top: -50px;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out;
}

.organisation-logo img {
	max-width: 100%;
	max-height: 65px;
	height: auto;
	width: auto;
	object-fit: contain;
	display: block;
}

.page-header.minimised {
	height: 120px;
}

.page-header.minimised .organisation-logo {
	opacity: 0;
	transform: scale(0.8);
	pointer-events: none;
}

.expandable-sections {
	display: flex;
	flex-direction: column;
	flex: 1;
	overflow-y: auto;
	margin-top: -80px;
	padding: 10px;
}

.error-container {
	display: flex;
	flex-direction: column;
	flex: 1;
	overflow-y: auto;
}

.error-container section {
	padding: var(--space-10);
	text-align: center;
	font-size: 1.2rem;
}

section {
	background: var(--color-surface);
	background: linear-gradient(180deg, rgba(255, 255, 255, 1) 90%, #f4f4f4 100%);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
	padding: 0;
	margin-bottom: var(--space-1);
	display: flex;
	flex-direction: column;
	border: 1px solid var(--color-border-2);
}

section.skip {
	display: none;
}

section.collapsible-section.expanded {
	flex: 1;
	min-height: 0;
	overflow-y: auto;
	scrollbar-width: none;
	-ms-overflow-style: none;
}

section.collapsible-section.expanded::-webkit-scrollbar {
	display: none;
}

.section-header {
	padding: var(--space-3);
	padding-bottom: 1em;
	cursor: pointer;
	transition: background 0.2s ease;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.section-header::after {
	content: '';
	width: 20px;
	height: 20px;
	background-image: url('data:image/svg+xml,%3Csvg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M16 10L12 14L8 10" stroke="%236e6e6e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/%3E%3C/svg%3E');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	transition: opacity 0.3s ease;
	flex-shrink: 0;
}

.collapsible-section.expanded .section-header::after {
	opacity: 0;
	pointer-events: none;
}

.section-header:hover {
	background: rgba(0, 0, 0, 0.02);
}

.section-content,
.section-footer {
	padding: 0 var(--space-6) var(--space-6);
	overflow: hidden;
}

section>.section-footer {
	box-shadow: 0px -5px 25px rgba(0, 0, 0, 0.1);
	border-top: 1px solid white;
	padding: var(--space-1) var(--space-6) var(--space-1) var(--space-6);
}

.collapsible-section.expanded .section-content {
	flex: 1;
	display: flex;
	flex-direction: column;
	overflow-y: auto;
}

.collapsible-section:not(.expanded) .section-content {
	padding: 0 !important;
	pointer-events: none;
	visibility: hidden;
}

#rentable_categories.expanded {
	container-type: size;
	container-name: rentable-categories;
}

@container rentable-categories (max-height: 199px) {
	#rentable_categories_list {
		display: flex;
		flex-wrap: nowrap;
		overflow-x: auto;
		overflow-y: hidden;
	}
}

@container rentable-categories (min-height: 200px) {
	#rentable_categories_list {
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(84px, 1fr));
	}
}

section .section-title {
	font-size: 18px;
	font-weight: 700;
	transition: all 0.4s ease-in-out;
}

section#availability_results .section-title {
	text-align: center;
	width: 100%;
	margin-top: var(--space-2);
}

section#availability_results {
	height: 100%;
	overflow: hidden;
}

section .section-summary {
	font-size: 18px;
	font-weight: 700;
}

.collapsible-section.expanded .section-summary {
	display: none;
}

section .section-subtitle {
	font-size: 14px;
	color: var(--color-text-muted);
	margin-bottom: var(--space-4);
}

.grid {
	display: grid;
	gap: var(--space-4);
}

.grid.cols-2 {
	grid-template-columns: repeat(2, 1fr);
}

.grid.cols-3 {
	grid-template-columns: repeat(3, 1fr);
}

.grid.cols-4 {
	grid-template-columns: repeat(4, 1fr);
}

@media (max-width: 960px) {

	.grid.cols-3,
	.grid.cols-4 {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 640px) {

	.grid.cols-2,
	.grid.cols-3,
	.grid.cols-4 {
		grid-template-columns: 1fr;
	}

	.app-content {
		padding: var(--space-4);
	}

	.app-header .inner {
		padding: var(--space-3) var(--space-4);
	}
}

input[type="text"],
input[type="email"],
input[type="number"],
input[type="date"],
select,
textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	background: #fff;
	color: var(--color-text);
	outline: none;
	transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

input:focus,
select:focus,
textarea:focus {
	border-color: var(--color-text);
	box-shadow: 0 0 0 3px rgba(34, 34, 34, 0.1);
}

label {
	display: block;
	font-size: 13px;
	color: var(--color-text-muted);
	margin-bottom: var(--space-2);
}

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 12px 18px;
	border-radius: 12px;
	border: 1px solid transparent;
	font-weight: 600;
	cursor: pointer;
	transition: transform 0.02s ease, background 0.2s ease, box-shadow 0.2s ease;
	user-select: none;
	text-decoration: unset;
}

.btn:active {
	transform: scale(0.99);
}

.btn-primary {
	background: var(--color-primary);
	color: #fff;
}

.btn-primary:hover {
	background: var(--color-primary-hover);
}

.btn-primary:disabled,
.btn-primary.loading {
	background: #9e9e9e;
	cursor: not-allowed;
	opacity: 0.7;
	padding-right: 42px;
}

.btn-primary:disabled::after,
.btn-primary.loading::after {
	content: '';
	position: absolute;
	right: 18px;
	width: 16px;
	height: 16px;
	border: 2px solid #ffffff;
	border-top-color: transparent;
	border-radius: 50%;
	animation: spin 0.8s linear infinite;
}

.btn-secondary {
	background: #000;
	color: #fff;
}

.btn-secondary:disabled,
.btn-secondary.loading {
	background: #9e9e9e;
	cursor: not-allowed;
	opacity: 0.7;
	padding-right: 42px;
}

.btn-secondary:disabled::after,
.btn-secondary.loading::after {
	content: '';
	position: absolute;
	right: 18px;
	width: 16px;
	height: 16px;
	border: 2px solid #ffffff;
	border-top-color: transparent;
	border-radius: 50%;
	animation: spin 0.8s linear infinite;
}

@keyframes spin {
	0% {
		transform: rotate(0deg);
	}

	100% {
		transform: rotate(360deg);
	}
}

.btn.back {
	border-radius: 100%;
	background-image: url('../images/icons/back-svgrepo-com.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	padding: 12px 12px;
}

.btn.back.hide {
	visibility: hidden;
}

.btn-outline {
	background: #fff;
	color: var(--color-text);
	border-color: var(--color-border);
}

.btn-outline:hover {
	box-shadow: var(--shadow-xs);
}

.btn-ghost {
	background: transparent;
	color: var(--color-text);
}

.pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 12px;
	background: #fff;
	border: 1px solid var(--color-border);
	border-radius: 999px;
}

.mt-2 {
	margin-top: var(--space-2);
}

.mt-4 {
	margin-top: var(--space-4);
}

.mt-6 {
	margin-top: var(--space-6);
}

.mb-2 {
	margin-bottom: var(--space-2);
}

.mb-4 {
	margin-bottom: var(--space-4);
}

.mb-6 {
	margin-bottom: var(--space-6);
}

.p-4 {
	padding: var(--space-4);
}

.p-6 {
	padding: var(--space-6);
}

ul.clean,
ol.clean {
	list-style: none;
	padding: 0;
	margin: 0;
}

ul.inline {
	display: flex;
	gap: var(--space-3);
	padding: 0;
}

.chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 14px;
	border-radius: 999px;
	border: 1px solid var(--color-border);
	background: #fff;
	color: var(--color-text);
}

.chip.active {
	border: 2px solid var(--color-primary);
	box-shadow: 0 10px 10px -8px rgba(34, 34, 34, 0.48);
}

.h-scroll {
	display: flex;
	flex-wrap: nowrap;
	gap: var(--space-3);
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	padding: 4px 2px 8px;
	scroll-snap-type: x proximity;
	-ms-overflow-style: none;
	scrollbar-width: none;
}

.h-scroll>* {
	scroll-snap-align: start;
}

.h-scroll::-webkit-scrollbar {
	display: none;
}

.h-scroll::-webkit-scrollbar-thumb {
	background: #dcdcdc;
	border-radius: 999px;
}

.h-scroll::-webkit-scrollbar-track {
	background: transparent;
}

.chip-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(84px, 1fr));
	gap: var(--space-3);
	padding: 4px 2px 8px;
	max-height: 300px;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

.chip-icon {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0px;
	padding: var(--space-4);
	border-radius: 12px;
	border: 1px solid var(--color-border);
	background: #fff;
	min-width: 84px;
	min-height: 60px;
	text-align: center;
}

.chip-icon .icon {
	width: auto;
	height: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 30px;
	background: #fff;
	margin-bottom: 5px;
}

.chip-icon .icon img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	border-radius: 8px;
}

.chip-icon .icon .svg-mask {
	width: 50px;
	height: 100%;
	background-color: var(--color-icon);
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: center;
	-webkit-mask-size: contain;
	mask-repeat: no-repeat;
	mask-position: center;
	mask-size: contain;
}

.chip-icon .label {
	font-size: 14px;
	color: var(--color-text);
}

.image-card {
	position: relative;
	overflow: hidden;
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
}

.image-card img {
	display: block;
	width: 100%;
	height: auto;
}

.image-card .badge {
	position: absolute;
	top: 10px;
	left: 10px;
	background: rgba(0, 0, 0, 0.6);
	color: #fff;
	padding: 6px 10px;
	border-radius: 999px;
	font-size: 12px;
}

table.app-table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
}

table.app-table th,
table.app-table td {
	padding: 12px 16px;
	border-bottom: 1px solid var(--color-border);
}

table.app-table th {
	text-align: left;
	font-weight: 600;
	color: var(--color-text);
	background: #fafafa;
}

table.app-table tr:hover td {
	background: #fafafa;
}

.text-muted {
	color: var(--color-text-muted);
}

.text-center {
	text-align: center;
}

.flex {
	display: flex;
}

.items-center {
	align-items: center;
}

.justify-between {
	justify-content: space-between;
}

.gap-2 {
	gap: var(--space-2);
}

.gap-4 {
	gap: var(--space-4);
}

.gap-6 {
	gap: var(--space-6);
}

footer {
	color: var(--color-text-muted);
	padding: var(--space-6);
	text-align: center;
}

.floating-action-buttons {
	position: sticky;
	bottom: 0;
	display: flex;
	gap: var(--space-3);
	align-items: center;
	padding: var(--space-4);
	background: var(--color-bg);
	margin-top: auto;
	z-index: 1000;
}

.floating-action-buttons .back-button {
	flex-shrink: 0;
}

.floating-action-buttons .btn-primary,
.floating-action-buttons .btn-secondary {
	flex: 1;
}

@media (max-height:770px) and (max-width:798px) {
	.expandable-sections {
		margin-top: -60px;
	}

	.organisation-logo {
		margin-top: -20px;
	}
}

@media (max-height:770px) and (max-width:798px) {
	.expandable-sections {
		margin-top: -120px;
	}

	section#availability_results.expandable-sections {
		margin-top: -100px;
	}

	.organisation-logo {
		margin-top: -100px;
	}
}

@media (max-height:734px) and (max-width:798px) {
	.page-header {
		display: none;
	}

	.expandable-sections {
		margin-top: 0;
	}

	#app_container {
		height: 100%;
	}

	.section-header {
		padding: var(--space-2);
	}

	section .section-title,
	section .section-summary {
		font-size: 15px;
	}
}

.guest-input-group {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: var(--space-2) 0;
	border-bottom: 1px solid var(--color-border);
}

.guest-input-group:last-child {
	border-bottom: none;
}

.guest-input-group label {
	font-size: 16px;
	font-weight: 500;
	color: var(--color-text);
	margin-bottom: 0;
}

.guest-input-group label small {
	display: block;
	font-size: 0.65em;
	color: rgba(0, 0, 0, 0.6);
}

.guest-controls {
	display: flex;
	align-items: center;
	gap: var(--space-3);
}

.guest-btn {
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: 50%;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	padding: 0;
	transition: all 0.2s ease;
}

.guest-btn.loading {
	background: #6c757d;
	cursor: not-allowed;
	opacity: 0.7;
}

.guest-btn:hover {
	border-color: var(--color-text);
	background: var(--color-bg);
}

.guest-btn:active {
	transform: scale(0.95);
}

.guest-btn.plus::before {
	content: '+';
	font-size: 20px;
	font-weight: bold;
	color: var(--color-text);
}

.guest-btn.minus::before {
	content: '−';
	font-size: 20px;
	font-weight: bold;
	color: var(--color-text);
}

.guest-btn.remove::before {
	content: '';
	display: inline-block;
	width: 20px;
	height: 20px;
	background-image: url('../images/icons/bin-svgrepo-com.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}

.guest-controls input[type="number"] {
	width: 50px;
	text-align: center;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	padding: var(--space-2);
	font-size: 16px;
	font-weight: 500;
	background: var(--color-surface);
	color: var(--color-text);
}

.guest-controls input[type="number"]:focus {
	outline: none;
	border-color: var(--color-primary);
}

.guest-controls input[type="number"]::-webkit-inner-spin-button,
.guest-controls input[type="number"]::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.guest-controls input[type="number"] {
	-moz-appearance: textfield;
	appearance: textfield;
}

.nights-selector {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 0;
	padding-top: var(--space-2);
	padding-bottom: var(--space-2);
}

.nights-selector label {
	font-size: 16px;
	font-weight: 500;
	color: var(--color-text);
	margin-bottom: 8px;
	text-align: center;
}

.nights-controls {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-3);
}

.nights-controls input[type="number"] {
	width: 50px;
	text-align: center;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	padding: var(--space-2);
	font-size: 16px;
	font-weight: 500;
	background: var(--color-surface);
	color: var(--color-text);
}

.nights-controls input[type="number"]:focus {
	outline: none;
	border-color: var(--color-primary);
}

.nights-controls input[type="number"]::-webkit-inner-spin-button,
.nights-controls input[type="number"]::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.nights-controls input[type="number"] {
	-moz-appearance: textfield;
	appearance: textfield;
}

.availability-item-container {
	padding: var(--space-4);
	flex: 1;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	align-content: start;
	align-items: start;
	grid-auto-rows: auto;
}

.availability-item {
	display: flex;
	flex-direction: column;
	max-width: 100%;
	width: 100%;
	padding: var(--space-4);
	border-radius: var(--radius-md);
	border: 1px solid var(--color-border);
	margin-bottom: 16px;
	background: var(--color-surface);
	box-shadow: var(--shadow-xs);
	box-sizing: border-box;
}

.availability-item.hide {
	display: none;
}

.availability-item .picture {
	width: 100%;
	height: 200px;
	object-fit: cover;
	border-radius: var(--radius-md);
	margin-bottom: var(--space-4);
	background-color: var(--color-bg);
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center center;
}

/* Picture carousel */
.availability-item .picture-carousel-wrapper {
	position: relative;
	width: 100%;
	height: 200px;
	margin-bottom: var(--space-4);
}

.availability-item .picture-carousel {
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;
	border-radius: var(--radius-md);
}

.availability-item .picture-carousel .picture {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	transition: opacity 0.4s ease;
	margin-bottom: 0;
}

.availability-item .picture-carousel .picture.active {
	opacity: 1;
	z-index: 1;
}

.availability-item .picture-carousel-nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	box-shadow: var(--shadow-sm);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	z-index: 10;
	transition: all 0.2s ease;
}

.availability-item .picture-carousel-nav:hover {
	background: var(--color-bg);
	box-shadow: var(--shadow-md);
}

.availability-item .picture-carousel-nav.left {
	left: 8px;
}

.availability-item .picture-carousel-nav.right {
	right: 8px;
}

.availability-item .picture-carousel-nav svg {
	width: 16px;
	height: 16px;
	fill: none;
	stroke: var(--color-text);
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.availability-item .picture-carousel-indicators {
	position: absolute;
	left: 50%;
	bottom: 10px;
	transform: translateX(-50%);
	display: flex;
	gap: 6px;
	z-index: 10;
}

.availability-item .picture-carousel-indicators .indicator {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.6);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
	cursor: pointer;
	transition: all 0.2s ease;
}

.availability-item .picture-carousel-indicators .indicator.active {
	background: rgba(255, 255, 255, 0.95);
	width: 20px;
	border-radius: 10px;
}

.availability-item .administration-name {
	font-size: 0.8em;
	color: var(--color-text-muted);
	margin-bottom: var(--space-2);
}

.availability-item .name {
	width: 100%;
	font-size: 18px;
	font-weight: 600;
	margin-bottom: var(--space-2);
}

.availability-item .location {
	width: 100%;
	font-size: 14px;
	color: var(--color-text-muted);
	margin-bottom: var(--space-2);
}

.availability-item .features {
	width: 100%;
	font-size: 13px;
	color: var(--color-text-muted);
	margin-bottom: var(--space-6);
}

.availability-item .features .feature-item {
	display: inline-block;
	padding-right: 5px;
	margin-right: 5px;
	border-right: 1px solid rgba(0, 0, 0, 0.05);
	font-weight: 600;
}

.availability-item .features .feature-item:last-child {
	border-right: none;
	margin-right: unset;
	padding-right: unset;
	border-right: unset;
}

.availability-item .features .people::before,
.availability-item .features .beds::before,
.availability-item .features .toilets::before,
.availability-item .features .pets::before {
	content: '';
	display: inline-block;
	width: 16px;
	height: 16px;
	margin-right: 4px;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	vertical-align: middle;
}

.availability-item .features .people::before {
	background-image: url('../images/icons/person-svgrepo-com.svg');
}

.availability-item .features .beds::before {
	background-image: url('../images/icons/bed-svgrepo-com.svg');
}

.availability-item .features .toilets::before {
	background-image: url('../images/icons/toilet-svgrepo-com.svg');
}

.availability-item .features .pets::before {
	background-image: url('../images/icons/paw-svgrepo-com.svg');
}

.availability-item .price-carousel {
	width: 100%;
	overflow-x: auto;
	overflow-y: hidden;
	display: flex;
	gap: 10px;
	height: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	-ms-overflow-style: none;
	position: relative;
}

.availability-item .price-carousel .price-item .price-label {
	font-size: 0.8em;
	color: var(--color-text-muted);
	margin-bottom: var(--space-2);
}

.availability-item .price-carousel .price-item .price-amount {
	color: var(--color-primary);
	font-weight: 600;
}

.availability-item .price-carousel::-webkit-scrollbar {
	display: none;
}

.availability-item .price-carousel-wrapper {
	position: relative;
	margin-top: auto;
}

.availability-item .price-carousel-nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	box-shadow: var(--shadow-sm);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	z-index: 10;
	transition: all 0.2s ease;
	opacity: 0;
	pointer-events: none;
}

.availability-item .price-carousel-nav.visible {
	opacity: 1;
	pointer-events: auto;
}

.availability-item .price-carousel-nav:hover {
	background: var(--color-bg);
	box-shadow: var(--shadow-md);
}

.availability-item .price-carousel-nav.left {
	left: -16px;
}

.availability-item .price-carousel-nav.right {
	right: -16px;
}

.availability-item .price-carousel-nav svg {
	width: 16px;
	height: 16px;
	fill: none;
	stroke: var(--color-text);
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.availability-item .price-carousel .price-item {
	flex: 0 0 calc((100% - 20px) / 3);
	scroll-snap-align: start;
	scroll-snap-stop: normal;
	min-width: calc((100% - 20px) / 3);
	padding: var(--space-3);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	background: #ffffff;
	background: linear-gradient(180deg, rgba(255, 255, 255, 1) 90%, rgb(229, 229, 229) 100%);
	box-sizing: border-box;
	cursor: pointer;
}

.availability-item .price-carousel .price-item.price-item-selected {
	border: 2px solid var(--color-primary);
}

.availability-item .price-carousel .price-item.price-item-default-selected {
	border-left-color: var(--color-primary);
	border-left-width: 5px;
}

.availability-item .price-carousel .price-item:disabled,
.availability-item .price-carousel .price-item.loading {
	background: #9e9e9e;
	cursor: not-allowed;
	opacity: 0.7;
	pointer-events: none;
}

.availability-item .price-carousel .price-item:disabled::after,
.availability-item .price-carousel .price-item.loading::after {
	content: '';
	display: block;
	width: 20px;
	height: 20px;
	border: 2px solid #ffffff;
	border-top-color: transparent;
	border-radius: 50%;
	animation: spin 0.8s linear infinite;
	margin: 8px auto 0;
}

@media (min-width: 768px) {
	.availability-item-container {
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(300px, 320px));
		grid-auto-rows: auto;
		gap: var(--space-6);
		justify-content: center;
		align-items: stretch;
	}

	.availability-item {
		max-width: 350px;
		margin-bottom: 0;
	}
}

.hidden {
	display: none;
}

.extras-list {
	margin-top: var(--space-2);
}

.extra-item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: var(--space-2) 0;
	border-bottom: 1px solid var(--color-border);
}

.extra-item:last-child {
	border-bottom: none;
}

.extra-info {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
}

.extra-details {
	flex: 1;
}

.extra-name {
	font-size: 16px;
	font-weight: 500;
	color: var(--color-text);
	margin-bottom: 0;
}

.extra-price {
	display: block;
	font-size: 12px;
	color: rgba(0, 0, 0, 0.6);
	font-weight: 400;
	margin-top: 2px;
}

.add-extra-btn {
	padding: 6px 16px !important;
	background: var(--color-primary, #28a745) !important;
	color: white !important;
	border: none !important;
	border-radius: var(--radius-sm, 4px) !important;
	cursor: pointer !important;
	font-size: 14px !important;
	transition: all 0.2s ease !important;
	font-weight: 500 !important;
}

.add-extra-btn:hover {
	background: var(--color-primary-dark, #218838) !important;
	transform: translateY(-1px);
}

.add-extra-btn:active {
	transform: scale(0.95);
}

.subtotal {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: var(--space-3) 0;
	gap: var(--space-3);
}

.booking-summary {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.booking-dates {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	color: var(--color-text);
}

.booking-dates svg {
	flex-shrink: 0;
	color: var(--color-text-secondary, rgba(0, 0, 0, 0.6));
}

.booking-guests {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	color: var(--color-text-secondary, rgba(0, 0, 0, 0.6));
}

.booking-guests::before {
	content: '';
	display: inline-block;
	width: 16px;
	height: 16px;
	background-image: url('../images/icons/person-svgrepo-com.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	flex-shrink: 0;
	opacity: 0.6;
}

.booking-total {
	font-size: 1.6em;
	font-weight: 700;
	color: var(--color-text);
	white-space: nowrap;
}

.guest-details-form {
	width: 100%;
	padding-top: var(--space-4);
}

.form-row {
	margin-bottom: var(--space-3);
}

.form-row-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--space-3);
}

.form-field {
	position: relative;
	display: flex;
	flex-direction: column;
}

.form-field label {
	font-size: 11px;
	font-weight: 600;
	color: var(--color-text);
	margin-bottom: var(--space-1);
	letter-spacing: 0.02em;
}

.form-field input,
.form-field select {
	width: 100%;
	padding: 10px 12px;
	font-size: 16px;
	font-family: inherit;
	color: var(--color-text);
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	outline: none;
	transition: all 0.2s ease;
	box-sizing: border-box;
}

.form-field input:hover,
.form-field select:hover {
	border-color: #b0b0b0;
}

.form-field input:focus,
.form-field select:focus {
	border-color: var(--color-text);
	border-width: 2px;
	padding: 9px 11px;
	box-shadow: 0 0 0 1px var(--color-text);
}

.form-field input::placeholder {
	color: #b0b0b0;
}

.form-field select {
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L6 6L11 1' stroke='%23222222' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	padding-right: 36px;
	cursor: pointer;
}

.form-field input:required:invalid,
.form-field select:required:invalid {
	box-shadow: none;
}

.form-field input.field-valid,
.form-field select.field-valid {
	border-bottom: 2px solid var(--color-success);
}

.form-field input.field-valid:focus,
.form-field select.field-valid:focus {
	border-bottom: 2px solid var(--color-success);
	padding-bottom: 9px;
}

.form-field input.field-invalid,
.form-field select.field-invalid {
	border-bottom: 2px solid var(--color-warning);
}

.form-field input.field-invalid:focus,
.form-field select.field-invalid:focus {
	border-bottom: 2px solid var(--color-warning);
	padding-bottom: 9px;
}

.booking-review-summary {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
	padding: var(--space-4) 0;
}

.booking-review-section {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	padding-bottom: var(--space-4);
	border-bottom: 1px solid var(--color-border);
}

.booking-review-section:last-child {
	border-bottom: none;
}

.booking-review-section-header {
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--color-text-muted);
	margin-bottom: var(--space-1);
}

.booking-review-row {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: var(--space-3);
}

.booking-review-label {
	flex: 1;
	font-size: 16px;
	color: var(--color-text);
	line-height: 1.6em;
}

.booking-review-value {
	font-size: 16px;
	font-weight: 500;
	color: var(--color-text);
	text-align: right;
}

.booking-review-dates {
	font-size: 16px;
	color: var(--color-text);
}

.booking-review-guests {
	font-size: 16px;
	color: var(--color-text-muted);
}

.booking-review-guest-details {
	font-size: 16px;
	color: var(--color-text);
	line-height: 1.6;
}

.booking-review-extras ul {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
}

.booking-review-extras li {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--space-3);
	font-size: 16px;
	color: var(--color-text);
}

.booking-review-extras li span:first-child {
	flex: 1;
}

.booking-review-extras li span:last-child {
	font-weight: 500;
	text-align: right;
}

.booking-review-total {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding-top: var(--space-2);
	font-size: 20px;
	font-weight: 700;
	color: var(--color-text);
}

.modal {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 10000;
}

.modal-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.5);
	cursor: pointer;
}

.modal-content {
	position: relative;
	max-width: min(500px, 95%);
	margin: 80px auto;
	background: var(--color-surface);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-md);
	z-index: 10001;
	overflow: hidden;
}

.modal-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: var(--space-5);
	border-bottom: 1px solid var(--color-border);
}

.modal-header h3 {
	margin: 0;
	font-size: 20px;
	font-weight: 600;
	color: var(--color-text);
}

.modal-close {
	background: none;
	border: none;
	font-size: 32px;
	line-height: 1;
	color: var(--color-text-muted);
	cursor: pointer;
	padding: 0;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: color 0.2s;
}

.modal-close:hover {
	color: var(--color-text);
}

.modal-body {
	padding: var(--space-5);
	color: var(--color-text);
	line-height: 1.6;
}

.modal-body p {
	margin: 0 0 var(--space-3) 0;
}

.modal-body p:last-child {
	margin-bottom: 0;
}

.info-icon {
	vertical-align: middle;
	margin-left: var(--space-1);
	color: var(--color-primary);
	transition: opacity 0.2s;
}

.info-icon:hover {
	opacity: 0.7;
}

#calendar {
	max-width: 400px;
}

.availability-message,
.booking-review-message {
	display: block;
	margin-top: 20px;
	margin-bottom: 20px;
	padding: 15px;
	background-color: rgb(255, 243, 205);
	border: 1px solid rgb(255, 193, 7);
	border-radius: 10px;
	color: rgb(133, 100, 4);
}

.amenity-filters-section {
	width: 100%;
	box-sizing: border-box;
	padding: 0 var(--space-4);
	display: flex;
	align-items: center;
	gap: var(--space-3);
}

.amenity-filters-section h3 {
	font-size: 1.1em;
	font-weight: 600;
	margin: 0 0 var(--space-3) 0;
	color: var(--color-text);
}

.amenity-label {
	font-weight: 700;
	color: var(--color-text);
	flex-shrink: 0;
}

.amenity-carousel-wrapper {
	max-width: 100%;
	position: relative;
	flex: 1;
}

.amenity-carousel {
	width: 100%;
	overflow-x: auto;
	overflow-y: hidden;
	display: flex;
	justify-content: left;
	gap: 6px;
	padding: var(--space-2) 0;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	-ms-overflow-style: none;
}

.amenity-carousel::-webkit-scrollbar {
	display: none;
}

.amenity-item {
	flex: 0 0 auto;
	min-width: 120px;
	padding: var(--space-3);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	background: var(--color-surface);
	box-sizing: border-box;
	cursor: pointer;
	transition: all 0.2s ease;
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	gap: var(--space-2);
}

.amenity-item:active {
	transform: scale(0.98);
}

.amenity-item.amenity-label {
	cursor: default;
	border-color: transparent;
	background: transparent;
	min-width: auto;
	width: auto;
	font-weight: bold;
}

.amenity-item.amenity-label .amenity-name {
	font-weight: bold;
}

.amenity-item.selected {
	border: 1px solid var(--color-primary);
	transform: none;
	box-shadow: none;
	background-color: var(--color-primary);
}

.amenity-name {
	font-size: 0.9em;
	font-weight: 500;
	color: var(--color-text);
	line-height: 1.3;
}

.amenity-item.selected>.amenity-name {
	color: #fff;
}

.amenity-count {
	font-size: 1.2em;
	font-weight: 700;
	color: var(--color-primary);
	background: rgba(255, 56, 92, 0.1);
	padding: var(--space-1) var(--space-3);
	border-radius: var(--radius-sm);
	min-width: 32px;
}

.amenity-name.filters {
	width: 24px;
	height: 24px;
	background-image: url('../images/icons/filter-svgrepo-com.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	display: inline-block;
}

.amenity-name.filters.filtered {
	background-image: url('../images/icons/filter-slash-svgrepo-com.svg');
	cursor: pointer;
}

@media (max-width: 767px) {
	.amenity-item {
		min-width: 100px;
		padding: var(--space-2);
	}

	.amenity-name {
		font-size: 0.85em;
	}

	.amenity-count {
		font-size: 1em;
	}
}