* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	font-family: 'Inter', sans-serif;
}

:root {
	--bg: #ffffff;
	--panel: #ffffff;
	--muted: #6b7280;
	/* gray-500 */
	--primary: #0b74de;
	--accent: #4cc9f0;
	--shadow: 0 8px 30px rgba(11, 116, 222, 0.08);
	--radius: 10px;
	--max-width: 1200px;
}

/* Header / Nav (match site-wide styles from index.css) */
.container {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 20px;
}

/* Header */
/* Header (site header used across pages) */
.site-header {
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.02), rgba(255, 255, 255, 0));
	backdrop-filter: blur(4px);
	/* keep header visible at top when scrolling */
	position: sticky;
	top: 0;
	z-index: 9999;
	/* ensure it sits above other components */
	box-shadow: 0 6px 18px rgba(6, 30, 61, 0.06);
}

.site-header .nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 0;
}

.brand {
	display: flex;
	align-items: center;
	gap: 12px;
}

/* Make the brand text clickable while preserving layout */
.brand-link {
	text-decoration: none;
	color: inherit;
	display: inline-flex;
	align-items: center;
}

.brand-link:focus {
	outline: 3px solid rgba(11, 116, 222, 0.12);
	border-radius: 8px;
}

.logo {
	width: 44px;
	height: 44px;
	border-radius: 8px;
	background: linear-gradient(135deg, rgba(0, 108, 228, 0.95), rgba(0, 60, 128, 0.95));
	color: white;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 1.05rem;
	box-shadow: 0 6px 18px rgba(6, 55, 135, 0.12);
}

.logo svg {
	width: 44px;
	height: 44px
}

.brand-text .brand-title {
	font-weight: 700;
	color: #0b2546;
	font-size: 1rem;
}

.brand-text .brand-tagline {
	font-size: 0.78rem;
	color: #6b7280;
	margin-top: 2px;
}

nav {
	position: relative;
}

.nav-links {
	display: flex;
	align-items: center;
	gap: 18px;
}

.nav-links a {
	color: #0b2546;
	text-decoration: none;
	padding: 8px 10px;
	border-radius: 8px;
	font-weight: 600;
	font-size: 1rem;
}

.nav-links a.active {
	background: rgba(0, 108, 228, 0.10);
	color: rgba(0, 60, 128, 1);
}

.nav-cta {
	background: rgba(0, 108, 228, 0.95);
	color: #fff !important;
	padding: 8px 12px;
	border-radius: 8px;
}

/* Book now CTA — more prominent, gradient primary button */


.translator {
	display: inline-block;
	position: relative;
	margin-left: 12px;
}

.translator button {
	background: #fff;
	border: 1px solid rgba(11, 116, 222, 0.06);
	padding: 6px 10px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	font-weight: 700;
	border-radius: 10px;
	box-shadow: 0 6px 20px rgba(11, 116, 222, 0.06);
	transition: box-shadow .15s ease, transform .12s ease;
}

.translator button:hover {
	box-shadow: 0 10px 30px rgba(11, 116, 222, 0.08);
	transform: translateY(-1px);
}

.translator button:focus {
	outline: 3px solid rgba(11, 116, 222, 0.12);
	outline-offset: 2px;
}

.translator #translatorLabel {
	font-weight: 800;
	color: #07203a;
}

.translator .caret {
	color: rgba(7, 32, 58, 0.6);
	transition: transform .15s ease;
}

.translator.open .caret {
	transform: rotate(180deg);
}

.translator.open ul {
	display: block !important;
}

.translator ul {
	display: none;
	position: absolute;
	right: 0;
	top: calc(100% + 8px);
	list-style: none;
	margin: 0;
	padding: 8px 6px;
	background: #fff;
	border-radius: 10px;
	box-shadow: 0 18px 50px rgba(11, 116, 222, 0.12);
	min-width: 160px;
	z-index: 40;
	border: 1px solid rgba(11, 116, 222, 0.06);
}

.translator ul li {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 12px;
	cursor: pointer;
	border-radius: 8px;
	font-weight: 600;
}

.translator ul li:hover {
	background: rgba(11, 116, 222, 0.04);
}

.translator ul li::before {
	content: attr(data-lang);
	text-transform: uppercase;
	font-weight: 800;
	font-size: 0.75rem;
	background: #eef8ff;
	color: var(--primary);
	padding: 4px 6px;
	border-radius: 6px;
	margin-right: 6px;
}

.hamburger {
	display: none;
	background: transparent;
	border: none;
	font-size: 1.1rem;
	color: rgba(11, 37, 70, 0.9);
}

@media (max-width:860px) {
	.hamburger {
		display: inline-flex;
		align-items: center;
		gap: 8px;
		background: transparent;
		border-radius: 8px;
		padding: 6px
	}
}

@media (max-width:860px) {
	.nav-links {
		display: none
	}

	.hamburger {
		display: inline-flex;
		align-items: center;
		gap: 8px
	}
}

@media (min-width:861px) {
	.nav-links {
		display: flex
	}
}

/* Hero */
.booking-hero {
	padding: 44px 0 28px
}

.booking-hero h1 {
	margin: 0;
	font-size: 28px
}

.booking-hero .muted {
	color: var(--muted);
	margin-top: 6px
}

/* Booking grid */
.booking {
	padding: 28px 0 80px
}

.booking-grid {
	display: grid;
	grid-template-columns: 1fr 360px;
	gap: 24px;
	align-items: start
}

/* If the booking page contains only the form (no sidebar), expand it slightly and center it */


/* When the form is the only child of the grid, center it and limit its width */
.booking .booking-grid > form.booking-form:only-child {
	grid-column: 1 / -1; /* span the full grid area */
	margin: 0 auto;      /* center horizontally */
	max-width: 920px;    /* slightly wider than default */
	width: 100%;
}

/* Back-compat: if the page has both form and summary, let grid place them as defined above */

/* Form card */
.booking-form {
	background: var(--panel);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	padding: 20px
}

/* Layout: display form fields two-per-row on wider screens */
.booking-form {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.booking-form fieldset {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	padding: 0;
}

.booking-form .field-row {
	/* each field takes ~50% minus gap */
	width: calc(50% - 6px);
}

.booking-form .field-row.small {
	width: calc(50% - 6px);
}

.booking-form .field-row.full {
	width: 100%;
}

@media (max-width: 900px) {
	.booking-form {
		gap: 10px;
	}

	.booking-form .field-row,
	.booking-form .field-row.small {
		width: 100%;
	}
}

.booking-form fieldset {
	border: 0;
	margin: 0;
	padding: 0 0 16px
}

.booking-form legend {
	font-weight: 700;
	margin-bottom: 12px
}

.field-row {
	display: flex;
	flex-direction: column;
	margin-bottom: 12px
}

.field-row.small {
	display: inline-block;
	width: 48%;
	margin-right: 4%
}

.field-row.small:last-child {
	margin-right: 0
}

.field-row label {
	font-size: 13px;
	margin-bottom: 6px
}

.field-row input,
.field-row select,
.field-row textarea {
	padding: 10px 12px;
	border: 1px solid #e6eef8;
	border-radius: 8px;
	font-size: 14px;
	background: white
}

.field-row input[type="date"],
.field-row input[type="month"] {
	padding: 8px
}

.field-row textarea {
	resize: vertical;
	min-height: 90px
}

.form-actions {
	display: flex;
	gap: 10px;
	margin-top: 10px
}

.btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--primary);
	color: #fff;
	border: 0;
	padding: 10px 14px;
	border-radius: 8px;
	cursor: pointer;
	font-weight: 600
}

.btn:active {
	transform: translateY(1px)
}

.btn[disabled] {
	opacity: 0.6;
	cursor: not-allowed
}

.btn.btn-ghost {
	background: transparent;
	color: var(--primary);
	border: 1px solid rgba(11, 116, 222, 0.08)
}

/* Summary card */
.booking-summary .summary-card {
	background: linear-gradient(180deg, #ffffff, #fbfdff);
	padding: 18px;
	border-radius: var(--radius);
	box-shadow: var(--shadow)
}

.summary-card h3 {
	margin: 0 0 8px
}

.summary-body {
	display: grid;
	gap: 12px
}

.summary-body>div {
	display: flex;
	justify-content: space-between;
	align-items: center
}

/* Payment modal styles */
.modal-overlay {
	display: none;
	position: fixed;
	inset: 0;
	background: rgba(2, 6, 23, 0.45);
	z-index: 12000;
	align-items: center;
	justify-content: center;
	padding: 20px
}

.modal-overlay.open {
	display: flex
}

.modal {
	background: #fff;
	border-radius: 12px;
	padding: 18px;
	max-width: 420px;
	width: 100%;
	box-shadow: 0 18px 50px rgba(2, 6, 23, 0.18)
}

.modal h3 {
	margin: 0 0 8px
}

.modal .muted {
	color: var(--muted);
	font-size: 14px
}

.modal .modal-result {
	padding: 12px;
	background: #f7faff;
	border-radius: 8px
}

.modal .spinner {
	width: 20px;
	height: 20px;
	border-radius: 50%;
	border: 3px solid #e6f0ff;
	border-top-color: var(--primary);
	animation: spin .9s linear infinite;
	display: inline-block;
	vertical-align: middle;
	margin-right: 8px
}

@keyframes spin {
	to {
		transform: rotate(360deg)
	}
}

.summary-price {
	margin-top: 6px
}

.summary-note {
	font-size: 13px
}

/* Footer */
footer {
	background: #0b1720;
	color: #cfeafc;
	padding: 48px 0;
	margin-top: 36px
}

.footer-grid {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr 250px;
	gap: 20px;
	max-width: var(--max-width);
	margin: 0 auto;
	padding: 0 16px
}

.footer-grid h4 {
	margin: 0 0 12px
}

.socials a {
	color: inherit;
	margin-right: 10px
}

.newsletter input {
	padding: 10px;
	border-radius: 8px;
	border: 0;
	margin-right: 8px
}

/* replacements for inline styles */
.section-title {
	margin-top: 0
}

.gap-2-flex {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 6px
}

.popular-title {
	font-size: 0.85rem
}

.popular-chips {
	display: flex;
	gap: 8px;
	margin-top: 6px;
	flex-wrap: wrap
}

.chip {
	padding: 8px 10px;
	border-radius: 999px;
	border: 1px solid #eef7fb;
	background: #fff;
	cursor: pointer
}

.footer-desc {
	color: rgba(207, 234, 252, 0.9);
	max-width: 36ch
}

.footer-list {
	list-style: none;
	padding: 0;
	margin: 0;
	color: rgba(207, 234, 252, 0.95)
}

.footer-link {
	color: inherit;
	text-decoration: none
}

.newsletter-row {
	display: flex;
	margin-top: 8px
}

.newsletter-input {
	flex: 1;
	border-radius: 8px;
	padding: 10px;
	border: 0
}

.subscribe-btn {
	margin-left: 8px
}

.socials-top {
	margin-top: 14px
}

.site-credits {
	text-align: center;
	color: rgba(207, 234, 252, 0.8);
	margin-top: 24px;
	font-size: 13px
}

/* Utilities */
.muted {
	color: var(--muted)
}

.visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0
}

/* footer helpers (match index page) */
.footer-desc {
	color: rgba(207, 234, 252, 0.9);
	max-width: 36ch
}

.footer-list {
	list-style: none;
	padding: 0;
	margin: 0;
	color: rgba(207, 234, 252, 0.95)
}

.footer-link {
	color: inherit;
	text-decoration: none
}

.newsletter-row {
	display: flex;
	margin-top: 8px
}

.newsletter-input {
	flex: 1;
	border-radius: 8px;
	padding: 10px;
	border: 0
}

.subscribe-btn {
	margin-left: 8px
}

.socials-top {
	margin-top: 14px
}

/* Responsive */
@media (max-width: 900px) {
	.booking-grid {
		grid-template-columns: 1fr;
	}

	.booking-summary {
		order: 2
	}

	.booking-form {
		order: 1
	}

	.nav-links {
		display: none
	}

	.hamburger {
		display: block
	}

	.field-row.small {
		width: 100%;
		margin-right: 0
	}
}

@media (max-width:480px) {
	.brand-title {
		font-size: 16px
	}

	.logo svg {
		width: 40px;
		height: 40px
	}

	.booking-hero h1 {
		font-size: 22px
	}
}

/* small accessibility focus states */
a:focus,
button:focus,
input:focus,
select:focus,
textarea:focus {
	outline: 3px solid rgba(11, 116, 222, 0.14);
	outline-offset: 2px
}

/* Confirmation page styles */
.booking-form.confirmation {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 32px;
	max-width: 720px;
	margin: 0 auto;
}

.booking-form.confirmation .confirmation-icon {
	width: 96px;
	height: 96px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--accent), var(--primary));
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 42px;
	font-weight: 800;
	box-shadow: 0 10px 30px rgba(11, 116, 222, 0.12);
	margin-bottom: 16px;
}

.booking-hero {
	background: linear-gradient(180deg, rgba(11,116,222,0.03), transparent);
	padding: 56px 0 32px;
}

.booking-hero h1 {
	font-size: 32px;
	color: #06203a;
}

.booking-form.confirmation {
	background: linear-gradient(180deg, #ffffff, #fbfdff);
	border: 1px solid rgba(11,116,222,0.06);
	padding: 36px;
	box-shadow: 0 18px 50px rgba(11,116,222,0.06);
	border-radius: 14px;
}

.confirmation-content {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	max-width: 640px;
}

.booking-form.confirmation .confirmation-icon svg {
	width: 48px;
	height: 48px;
	color: #fff;
}

.booking-form.confirmation .confirmation-icon {
	transform: translateY(-6px);
	animation: popIn .42s cubic-bezier(.2,.9,.3,1) forwards;
}

@keyframes popIn {
	from { transform: scale(.85) translateY(-6px); opacity: 0 }
	to   { transform: scale(1) translateY(0); opacity: 1 }
}

.booking-form.confirmation #result div {
	margin-bottom: 6px;
}

.booking-form.confirmation .muted {
	color: var(--muted);
}

.confirmation-actions {
	margin-top: 20px;
}

/* Checkout-specific styles */
.booking-form.checkout {
	background: linear-gradient(180deg,#ffffff,#fbfdff);
	border: 1px solid rgba(11,116,222,0.06);
	padding: 28px;
	border-radius: 12px;
	max-width: 820px;
	margin: 0 auto;
	box-shadow: 0 14px 40px rgba(11,116,222,0.04);
}

.booking-form.checkout .checkout-title {
	margin: 0 0 12px;
	font-size: 20px;
}

.checkout-summary {
	margin-bottom: 12px;
	color: #06203a;
	line-height: 1.45;
}

.checkout-summary div{ margin-bottom:6px }

.checkout-actions{
	display:flex;
	gap:12px;
	justify-content:flex-end;
	align-items:center;
}

.checkout-actions .btn{ min-width:140px }

.checkout-result{ margin-top:12px }

@media(max-width:700px){
	.booking-form.checkout{ padding:20px }
	.checkout-actions{ justify-content:center; flex-direction:column }
	.checkout-actions .btn{ width:100%; min-width:0 }
}

.booking-form.confirmation #result {
	font-size: 16px;
	line-height: 1.4;
}

.booking-form.confirmation .muted {
	color: var(--muted);
	margin-top: 8px;
}

.booking-form.confirmation .confirmation-actions .btn {
	min-width: 140px;
}

@media (max-width: 600px) {
	.booking-form.confirmation {
		padding: 20px;
	}
	.booking-form.confirmation .confirmation-icon {
		width: 80px;
		height: 80px;
		font-size: 36px;
	}
}

/* Confirmation action buttons: refined appearance */
.confirmation-actions .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 18px;
	font-size: 16px;
	border-radius: 10px;
	box-shadow: 0 8px 22px rgba(11, 116, 222, 0.08);
	transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
	text-decoration: none;
}

.confirmation-actions .btn:hover {
	transform: translateY(-3px);
	box-shadow: 0 18px 40px rgba(11, 116, 222, 0.12);
}

.confirmation-actions .btn:active {
	transform: translateY(-1px);
}

/* Primary action (default .btn) — stronger gradient */
.confirmation-actions .btn:not(.btn-ghost) {
	background: linear-gradient(90deg, var(--primary), var(--accent));
	color: #fff;
	border: 0;
}

/* Ghost / secondary action */
.confirmation-actions .btn.btn-ghost {
	background: transparent;
	color: var(--primary);
	border: 1px solid rgba(11, 116, 222, 0.12);
	box-shadow: none;
}

.confirmation-actions .btn.btn-ghost:hover {
	background: rgba(11, 116, 222, 0.04);
	box-shadow: 0 10px 26px rgba(11, 116, 222, 0.06);
}

/* Make actions stack on narrow screens */
@media (max-width: 520px) {
	.confirmation-actions {
		flex-direction: column;
		gap: 10px;
	}
	.confirmation-actions .btn {
		width: 100%;
		min-width: 0;
	}
}

/* Make confirmation actions layout controlled from CSS (no inline styles) */
.confirmation-actions {
	display: flex;
	gap: 12px;
	justify-content: center;
	align-items: center;
	margin-top: 14px;
}

.confirmation-actions .btn {
	min-width: 140px;
	max-width: 220px;
	padding: 10px 18px;
	white-space: nowrap;
}

/* Slightly different sizing for ghost so it doesn't look too large */
.confirmation-actions .btn.btn-ghost {
	min-width: 120px;
}