/*
 * BookJa.me — Public site styles
 * Aesthetic: Warm Caribbean editorial. Not flag colors.
 * Deep ocean teal + coral sun + cream paper. Serif display, grotesque body.
 */

@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,400;12..96,500;12..96,600;12..96,700;12..96,800&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

:root {
	/* ============================================================
	 * v1.9.11 — Brand palette derived from BookJa logo
	 * Primary: deep Jamaican green (mountain green from logo)
	 * Accent: warm gold (matches the "Ja" in the logo)
	 * High-conversion CTAs keep coral (better contrast for white text)
	 * ============================================================ */
	--ink: #0c1f29;
	--ink-soft: #34495a;
	--ink-mute: #6b7c89;
	--paper: #fbf7f1;
	--paper-warm: #f4ede1;
	--white: #ffffff;
	/* Primary: deep Jamaican green — close to the logo's mountains */
	--ocean: #0d6b3a;
	--ocean-deep: #094d29;
	--ocean-soft: #d6ecdb;
	/* CTAs that need to convert: coral. White-on-coral is the strongest action */
	--coral: #e8634a;
	--coral-deep: #c34a32;
	/* Gold: brand highlight (matches "Ja" in the logo) */
	--gold: #f5b800;
	--gold-deep: #d6a253;
	/* Brand green for flag/Jamaica accents */
	--green: #4a7c4a;
	--line: #e6dccd;
	--shadow: 0 4px 16px rgba(12, 31, 41, 0.06);
	--shadow-lift: 0 10px 32px rgba(12, 31, 41, 0.10);
	--radius: 4px;
	--radius-lg: 8px;
	--font-display: 'Bricolage Grotesque', 'Fraunces', Georgia, serif;
	--font-body: 'Plus Jakarta Sans', 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	--container: 1180px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	font-family: var(--font-body);
	color: var(--ink);
	background: var(--paper);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--ocean); text-decoration: none; transition: color 0.15s ease; }
a:hover { color: var(--ocean-deep); }

h1, h2, h3, h4, h5 {
	font-family: var(--font-display);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.015em;
	color: var(--ink);
	margin: 0 0 0.6em;
}

h1 { font-size: clamp(2.2rem, 4.5vw, 3.6rem); font-weight: 700; }
h2 { font-size: clamp(1.6rem, 2.8vw, 2.2rem); font-variation-settings: 'opsz' 144; }
h3 { font-size: 1.25rem; font-variation-settings: 'opsz' 72; }
p  { margin: 0 0 1em; }

.container {
	width: 100%;
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 24px;
}

.section { padding: 44px 0; }
@media (max-width: 720px) {
	.section { padding: 24px 0 18px; }
}
@media (max-width: 720px) {
	/* Tighter spacing between consecutive sections on mobile */
	.section + .section { padding-top: 6px; }
	/* Carousel sections: bottom padding only needs room for the hint + a hair */
	.section:has(.tour-grid.is-carousel) { padding-bottom: 14px; }
}

/* ========== HEADER ========== */

.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(251, 247, 241, 0.94);
	backdrop-filter: saturate(140%) blur(8px);
	-webkit-backdrop-filter: saturate(140%) blur(8px);
	border-bottom: 1px solid var(--line);
}

.header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 72px;
	gap: 24px;
}

.brand {
	font-family: var(--font-display);
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--ink);
	letter-spacing: -0.02em;
}

.brand:hover { color: var(--ocean); }

.primary-nav { display: flex; gap: 28px; }
.primary-nav a {
	color: var(--ink-soft);
	font-weight: 500;
	font-size: 0.95rem;
	position: relative;
	padding: 4px 0;
}
.primary-nav a:hover { color: var(--ocean); }
.primary-nav a::after {
	content: '';
	position: absolute;
	bottom: -2px;
	left: 0;
	right: 0;
	height: 2px;
	background: var(--coral);
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 0.25s ease;
}
.primary-nav a:hover::after {
	transform: scaleX(1);
	transform-origin: left;
}

.nav-toggle {
	display: none;
	background: none;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 8px 12px;
	font-size: 1.1rem;
	cursor: pointer;
}

@media (max-width: 720px) {
	.primary-nav { display: none; }
	.primary-nav.open {
		display: flex;
		flex-direction: column;
		position: absolute;
		top: 72px;
		left: 0;
		right: 0;
		background: var(--paper);
		padding: 20px 24px;
		border-bottom: 1px solid var(--line);
		gap: 16px;
	}
	.nav-toggle { display: block; }
}

/* ========== BREADCRUMBS ========== */

.breadcrumbs {
	padding: 16px 24px 0;
	font-size: 0.85rem;
}
.breadcrumbs ol {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 4px 8px;
}
.breadcrumbs li { color: var(--ink-mute); }
.breadcrumbs li + li::before { content: '/'; margin-right: 8px; color: var(--ink-mute); opacity: 0.5; }
.breadcrumbs a { color: var(--ink-mute); }
.breadcrumbs a:hover { color: var(--ocean); text-decoration: underline; }

/* ========== HERO ========== */

.hero {
	position: relative;
	background: linear-gradient(135deg, #0d6b3a 0%, #094d29 60%, #063518 100%);
	color: var(--white);
	padding: 120px 24px 140px;
	overflow: hidden;
	text-align: center;
}

.hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image:
		radial-gradient(circle at 25% 20%, rgba(232, 99, 74, 0.18) 0%, transparent 45%),
		radial-gradient(circle at 80% 70%, rgba(214, 162, 83, 0.14) 0%, transparent 50%);
	pointer-events: none;
}

.hero::after {
	content: '';
	position: absolute;
	inset: 0;
	background-image:
		repeating-linear-gradient(0deg, transparent 0, transparent 40px, rgba(255,255,255,0.02) 40px, rgba(255,255,255,0.02) 41px);
	pointer-events: none;
}

.hero-inner {
	position: relative;
	max-width: 820px;
	margin: 0 auto;
}

.hero h1 {
	color: var(--white);
	font-size: clamp(2.4rem, 5.5vw, 4.4rem);
	margin-bottom: 16px;
	font-variation-settings: 'opsz' 144;
}

.hero-sub {
	font-size: 1.15rem;
	opacity: 0.9;
	max-width: 560px;
	margin: 0 auto 36px;
}

.hero-search {
	display: flex;
	gap: 8px;
	max-width: 540px;
	margin: 0 auto;
	background: var(--white);
	padding: 6px;
	border-radius: var(--radius-lg);
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18);
}

.hero-search input {
	flex: 1;
	border: none;
	padding: 14px 18px;
	font-size: 1rem;
	font-family: inherit;
	color: var(--ink);
	background: transparent;
	outline: none;
}

.hero-search button {
	background: linear-gradient(135deg, var(--coral) 0%, var(--coral-deep) 100%);
	color: var(--white);
	border: none;
	padding: 13px 26px;
	font-size: 0.95rem;
	font-weight: 700;
	font-family: inherit;
	letter-spacing: 0.02em;
	border-radius: 100px;
	cursor: pointer;
	transition: transform 0.15s ease, box-shadow 0.2s ease, filter 0.2s ease;
	box-shadow: 0 4px 12px rgba(232, 99, 74, 0.32);
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.hero-search button::before {
	content: "";
	width: 16px;
	height: 16px;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><path d='m20 20-3.5-3.5'/></svg>");
	background-repeat: no-repeat;
	background-position: center;
}
.hero-search button:hover {
	filter: brightness(1.08);
	transform: translateY(-1px);
	box-shadow: 0 8px 20px rgba(232, 99, 74, 0.42);
}

/* ========== PAGE HEADER ========== */

.page-header {
	background: var(--paper-warm);
	padding: 56px 24px 40px;
	border-bottom: 1px solid var(--line);
	position: relative;
}

.page-header::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image:
		radial-gradient(circle at 90% 10%, rgba(232, 99, 74, 0.06) 0%, transparent 50%);
	pointer-events: none;
}

.page-header h1 { margin-bottom: 8px; }
.page-sub { color: var(--ink-mute); font-size: 1rem; margin: 0; }

.operator-header .operator-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	font-size: 0.95rem;
	color: var(--ink-soft);
	margin-top: 12px;
}

.op-whatsapp {
	background: var(--green);
	color: var(--white);
	padding: 4px 12px;
	border-radius: 100px;
	font-weight: 500;
}
.op-whatsapp:hover { color: var(--white); opacity: 0.9; }

/* ========== TOUR GRID + CARD ========== */

.tour-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 28px;
}

.tour-card {
	background: var(--white);
	border-radius: var(--radius-lg);
	overflow: hidden;
	box-shadow: var(--shadow);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
	color: var(--ink);
	display: flex;
	flex-direction: column;
}

.tour-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--shadow-lift);
	color: var(--ink);
}

.tour-card-img {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--ocean-soft);
}

.tour-card-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}

.tour-card:hover .tour-card-img img { transform: scale(1.05); }

.card-badge {
	position: absolute;
	top: 12px;
	left: 12px;
	background: var(--coral);
	color: var(--white);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 4px 10px;
	border-radius: 100px;
}

.tour-card-body {
	padding: 18px 20px 20px;
	display: flex;
	flex-direction: column;
	flex: 1;
}

.card-cat {
	display: inline-block;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--ocean);
	margin-bottom: 6px;
}

.card-title {
	font-size: 1.1rem;
	font-weight: 600;
	margin: 0 0 10px;
	line-height: 1.3;
	font-variation-settings: 'opsz' 36;
	flex: 1;
}

.card-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	font-size: 0.85rem;
	color: var(--ink-mute);
	margin-bottom: 12px;
}

.card-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding-top: 12px;
	border-top: 1px solid var(--line);
}

.card-rating {
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--ink);
}
.card-rating small { color: var(--ink-mute); font-weight: 400; }

.card-price {
	font-size: 0.85rem;
	color: var(--ink-mute);
}
.card-price strong {
	font-family: var(--font-display);
	font-size: 1.25rem;
	font-weight: 600;
	color: var(--ink);
	margin-left: 4px;
}

/* ========== PARISH GRID ========== */

.parish-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 14px;
}

.parish-card {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 22px;
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	color: var(--ink);
	transition: border-color 0.2s ease, transform 0.2s ease;
}

.parish-card:hover {
	border-color: var(--ocean);
	transform: translateX(4px);
	color: var(--ink);
}

.parish-name {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 1.05rem;
}

.parish-count {
	font-size: 0.85rem;
	color: var(--ink-mute);
}

/* ========== CATEGORY PILLS ========== */

.category-list {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.category-pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 18px;
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: 100px;
	color: var(--ink);
	font-weight: 500;
	font-size: 0.95rem;
	transition: all 0.2s ease;
}

.category-pill:hover {
	border-color: var(--coral);
	background: var(--coral);
	color: var(--white);
}

.category-pill span {
	background: var(--paper-warm);
	color: var(--ink-mute);
	font-size: 0.75rem;
	padding: 2px 8px;
	border-radius: 100px;
	transition: all 0.2s ease;
}

.category-pill:hover span {
	background: rgba(255,255,255,0.2);
	color: var(--white);
}

.filter-row {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--line);
	margin-bottom: 28px;
}
.filter-row strong { font-size: 0.9rem; color: var(--ink-mute); margin-right: 8px; }

.filter-pill {
	padding: 6px 14px;
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: 100px;
	font-size: 0.85rem;
	color: var(--ink-soft);
}
.filter-pill:hover { border-color: var(--ocean); color: var(--ocean); }

/* ========== TOUR DETAIL ========== */

.tour-detail { padding-bottom: 60px; }

.tour-hero {
	margin-bottom: 32px;
}

.tour-hero-img {
	width: 100%;
	max-height: 520px;
	object-fit: cover;
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow);
}

.tour-layout {
	display: grid;
	grid-template-columns: 1fr 360px;
	gap: 48px;
	align-items: start;
}

@media (max-width: 960px) {
	.tour-layout { grid-template-columns: 1fr; }
}

.tour-header { margin-bottom: 32px; }

.tour-category {
	display: inline-block;
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--coral);
	background: rgba(232, 99, 74, 0.08);
	padding: 4px 12px;
	border-radius: 100px;
	margin-bottom: 12px;
}

.tour-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	font-size: 0.95rem;
	color: var(--ink-soft);
	margin-top: 12px;
}

.tour-meta .rating {
	font-weight: 600;
	color: var(--gold);
}
.tour-meta .rating-count { color: var(--ink-mute); }

.gallery {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 8px;
	margin-bottom: 32px;
}
.gallery img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--radius);
	cursor: pointer;
}

.tour-section {
	padding: 24px 0;
	border-top: 1px solid var(--line);
}
.tour-section:first-of-type { border-top: 0; padding-top: 0; }
.tour-section h2 { margin-bottom: 14px; }
.tour-section h3 { margin-bottom: 10px; font-size: 1.1rem; }

.tour-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
@media (max-width: 600px) { .tour-cols { grid-template-columns: 1fr; } }

.tour-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.tour-list li {
	padding: 6px 0;
	color: var(--ink-soft);
}
.tour-list.exclusions li { opacity: 0.65; }

.tour-description {
	color: var(--ink-soft);
	line-height: 1.7;
}
.tour-description p { margin: 0 0 1em; }

.operator-card {
	background: var(--paper-warm);
	border-radius: var(--radius-lg);
	padding: 20px 24px;
	margin-top: 20px;
}
.operator-card h3 { margin-bottom: 4px; }
.operator-card p { color: var(--ink-mute); margin: 0; font-size: 0.9rem; }

/* ========== BOOKING SIDEBAR ========== */

.tour-sidebar {
	position: sticky;
	top: 96px;
}

.booking-box {
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	padding: 28px;
	box-shadow: var(--shadow);
}

.price-block {
	padding-bottom: 18px;
	border-bottom: 1px solid var(--line);
	margin-bottom: 20px;
}
.price-from {
	font-size: 0.8rem;
	color: var(--ink-mute);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	display: block;
}
.price-amount {
	font-family: var(--font-display);
	font-size: 2.4rem;
	font-weight: 600;
	color: var(--ink);
	display: block;
	line-height: 1.1;
	margin: 4px 0;
	font-variation-settings: 'opsz' 144;
}
.price-unit {
	font-size: 0.85rem;
	color: var(--ink-mute);
	display: block;
}

.booking-form { display: flex; flex-direction: column; gap: 14px; }

.booking-form label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 0.85rem;
	font-weight: 500;
	color: var(--ink-soft);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.booking-form input {
	padding: 12px 14px;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	font-size: 1rem;
	font-family: inherit;
	background: var(--paper);
	color: var(--ink);
	text-transform: none;
	letter-spacing: 0;
	font-weight: 400;
}

.booking-form input:focus {
	outline: 2px solid var(--ocean);
	outline-offset: 1px;
	background: var(--white);
}

.pax-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

.btn-book {
	background: var(--coral);
	color: var(--white);
	border: none;
	padding: 16px 24px;
	font-size: 1rem;
	font-weight: 600;
	font-family: inherit;
	border-radius: var(--radius);
	cursor: pointer;
	transition: background 0.2s ease;
	margin-top: 4px;
}
.btn-book:hover { background: var(--coral-deep); }
.btn-book:disabled { opacity: 0.6; cursor: not-allowed; }

.btn-primary {
	display: inline-block;
	background: var(--coral);
	color: var(--white);
	padding: 12px 24px;
	border-radius: var(--radius);
	font-weight: 600;
	transition: background 0.2s ease;
}
.btn-primary:hover { background: var(--coral-deep); color: var(--white); }

.booking-fineprint {
	font-size: 0.78rem;
	color: var(--ink-mute);
	text-align: center;
	margin: 4px 0 0;
	line-height: 1.5;
}

.availability-status:not(:empty) {
	padding: 10px 14px;
	border-radius: var(--radius);
	font-size: 0.9rem;
	background: var(--paper-warm);
	color: var(--ink-soft);
}
.availability-status.available { background: rgba(74, 124, 74, 0.1); color: var(--green); }
.availability-status.unavailable { background: rgba(232, 99, 74, 0.1); color: var(--coral-deep); }

/* ========== TRUST BAND ========== */

.trust-band {
	background: linear-gradient(135deg, var(--ocean-deep) 0%, var(--ink) 100%);
	color: var(--paper);
	padding: 48px 0;
	margin-top: 0;
	position: relative;
	overflow: hidden;
}
.trust-band::before {
	content: "";
	position: absolute;
	top: -40px;
	right: -40px;
	width: 200px;
	height: 200px;
	background: radial-gradient(circle, rgba(245, 184, 0, 0.12) 0%, transparent 70%);
	pointer-events: none;
}
.trust-band::after {
	content: "";
	position: absolute;
	bottom: -60px;
	left: -60px;
	width: 240px;
	height: 240px;
	background: radial-gradient(circle, rgba(13, 107, 58, 0.18) 0%, transparent 70%);
	pointer-events: none;
}
.trust-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 8px;
	text-align: center;
	position: relative;
	z-index: 1;
}
@media (max-width: 720px) {
	.trust-grid { grid-template-columns: repeat(2, 1fr); gap: 24px 8px; }
}
.trust-item {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 0 12px;
	position: relative;
}
.trust-item:not(:last-child)::after {
	content: "";
	position: absolute;
	right: 0;
	top: 10%;
	bottom: 10%;
	width: 1px;
	background: linear-gradient(180deg, transparent 0%, rgba(255,255,255,0.18) 50%, transparent 100%);
}
@media (max-width: 720px) {
	.trust-item:not(:last-child)::after { display: none; }
}
.trust-item strong {
	font-family: var(--font-display);
	font-size: 2rem;
	font-weight: 700;
	color: var(--gold);
	letter-spacing: -0.02em;
	line-height: 1;
}
.trust-item span {
	font-size: 0.85rem;
	opacity: 0.85;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	font-weight: 500;
}

/* ========== FOOTER ========== */

.site-footer {
	background: var(--ink);
	color: var(--paper);
	padding: 56px 24px 24px;
	margin-top: 60px;
}

.footer-grid {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr 1fr;
	gap: 40px;
	padding-bottom: 32px;
	border-bottom: 1px solid rgba(251, 247, 241, 0.1);
}

@media (max-width: 720px) {
	.footer-grid { grid-template-columns: 1fr 1fr; }
}

.footer-col h4 {
	color: var(--paper);
	font-family: var(--font-display);
	font-size: 1.05rem;
	margin: 0 0 14px;
}

.footer-col p { color: rgba(251, 247, 241, 0.7); font-size: 0.9rem; }

.footer-col a {
	display: block;
	color: rgba(251, 247, 241, 0.75);
	font-size: 0.9rem;
	padding: 4px 0;
	text-decoration: none;
}
.footer-col a:hover { color: var(--gold); }

.footer-bottom {
	padding-top: 24px;
	color: rgba(251, 247, 241, 0.5);
	font-size: 0.8rem;
}

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

/* ========== MOTION ========== */

@media (prefers-reduced-motion: no-preference) {
	.tour-card,
	.parish-card,
	.category-pill {
		animation: fadeUp 0.5s ease backwards;
	}
	.tour-grid > *:nth-child(1) { animation-delay: 0.05s; }
	.tour-grid > *:nth-child(2) { animation-delay: 0.10s; }
	.tour-grid > *:nth-child(3) { animation-delay: 0.15s; }
	.tour-grid > *:nth-child(4) { animation-delay: 0.20s; }
	.tour-grid > *:nth-child(5) { animation-delay: 0.25s; }
	.tour-grid > *:nth-child(6) { animation-delay: 0.30s; }
}

@keyframes fadeUp {
	from { opacity: 0; transform: translateY(12px); }
	to { opacity: 1; transform: translateY(0); }
}

/* ========== v1.5: FAQ accordion (tour pages) ========== */
.tour-faq h2 {
	font-family: 'Fraunces', Georgia, serif;
	font-size: 1.5rem;
	margin: 0 0 16px;
	color: var(--ink);
}
.faq-list {
	max-width: 760px;
}
.faq-item {
	background: white;
	border: 1px solid var(--rule);
	border-radius: 8px;
	margin-bottom: 8px;
	transition: border-color 0.15s;
}
.faq-item[open] {
	border-color: var(--ocean);
}
.faq-item summary {
	padding: 14px 18px;
	cursor: pointer;
	font-weight: 600;
	color: var(--ink);
	list-style: none;
	font-size: 0.95rem;
	position: relative;
	padding-right: 36px;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
	content: '+';
	position: absolute;
	right: 18px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.2rem;
	color: var(--ocean);
	transition: transform 0.15s;
}
.faq-item[open] summary::after {
	transform: translateY(-50%) rotate(45deg);
}
.faq-item summary:hover { color: var(--ocean); }
.faq-answer {
	padding: 0 18px 14px;
	color: var(--ink-soft);
	line-height: 1.6;
}
.faq-answer p { margin: 0; }

/* ========== v1.5: Parish intro (above tour grid) ========== */
.parish-intro {
	max-width: 820px;
}
.parish-intro-body p {
	font-size: 1.05rem;
	line-height: 1.7;
	color: var(--ink-soft);
	margin: 0 0 14px;
}
.parish-intro-body p:last-child {
	margin-bottom: 0;
}
.parish-intro-body strong {
	color: var(--ink);
}

/* ========== v1.5: "More tours" link below related grid ========== */
.more-link {
	margin: 16px 0 0;
	font-size: 0.95rem;
}
.more-link a {
	color: var(--ocean);
	text-decoration: none;
	font-weight: 500;
}
.more-link a:hover {
	text-decoration: underline;
}

/* ========== v1.6.1 HOMEPAGE POLISH ========== */

/* Hero eyebrow + chips */
.hero-eyebrow {
	display: inline-block;
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	background: rgba(255, 255, 255, 0.14);
	padding: 6px 14px;
	border-radius: 100px;
	margin-bottom: 22px;
	color: rgba(255, 255, 255, 0.95);
}

.hero-quickchips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
	margin-top: 28px;
}

.hero-chip {
	background: rgba(255, 255, 255, 0.14);
	color: white;
	padding: 8px 16px;
	border-radius: 100px;
	font-size: 0.85rem;
	font-weight: 500;
	backdrop-filter: blur(4px);
	border: 1px solid rgba(255, 255, 255, 0.2);
	transition: background 0.2s ease, transform 0.2s ease;
}

.hero-chip:hover {
	background: rgba(255, 255, 255, 0.24);
	color: white;
	transform: translateY(-1px);
}

/* Hero with operator-image background — natural overlay, lets the video show */
.hero-with-image {
	background:
		linear-gradient(180deg, rgba(8, 25, 32, 0.15) 0%, rgba(8, 25, 32, 0.45) 50%, rgba(5, 41, 48, 0.72) 100%),
		var(--hero-bg, none);
	background-size: cover;
	background-position: center;
}

/* Section heads */
.section-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 28px;
	flex-wrap: wrap;
	text-align: left;
}
.section-head > div { text-align: left; flex: 1; min-width: 0; }
.section-head h2 { margin: 0 0 4px; text-align: left; }
.section-head .section-cta { white-space: nowrap; align-self: flex-end; }
.section-sub {
	color: var(--ink-mute);
	font-size: 0.95rem;
	margin: 0;
}

/* Section variant — alternate cream background to break up the page */
.section-on-cream {
	background: var(--cream, #f5ecdb);
	max-width: none !important;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	padding-left: 24px;
	padding-right: 24px;
	padding-top: 56px;
	padding-bottom: 56px;
}
.section-on-cream > .section-head,
.section-on-cream > .tour-grid {
	max-width: 1240px;
	margin-left: auto;
	margin-right: auto;
}

/* Parish cards — image-led variant when hover-able with backgrounds */
.parish-card {
	position: relative;
	min-height: 96px;
	overflow: hidden;
	background: linear-gradient(135deg, var(--ocean-soft) 0%, white 100%);
	border: 1px solid var(--line);
}

.parish-card::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(14, 110, 122, 0.04) 0%, rgba(232, 99, 74, 0.03) 100%);
	pointer-events: none;
	transition: opacity 0.25s ease;
	opacity: 0;
}
.parish-card:hover::before { opacity: 1; }

.parish-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(14, 110, 122, 0.10);
	border-color: var(--ocean);
}

.parish-name {
	font-size: 1.15rem;
	color: var(--ocean-deep, var(--ocean));
}

/* Tighter card hover for tour cards */
.tour-card {
	border: 1px solid transparent;
}
.tour-card:hover {
	border-color: var(--ocean-soft);
}

/* Card price emphasis */
.card-price {
	font-size: 0.8rem;
}
.card-price strong {
	color: var(--ocean-deep, var(--ocean));
	font-size: 1.35rem;
}

/* Featured badge — coral with subtle shine */
.card-badge.featured {
	background: linear-gradient(135deg, var(--coral) 0%, #d04a2f 100%);
	box-shadow: 0 2px 8px rgba(232, 99, 74, 0.32);
}

/* Better mobile spacing */
@media (max-width: 720px) {
	.hero {
		padding: 70px 20px 80px;
	}
	.hero-quickchips {
		margin-top: 20px;
	}
	.section-head {
		margin-bottom: 18px;
	}
	.parish-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 10px;
	}
	.parish-card {
		padding: 14px 16px;
		min-height: 80px;
	}
	.parish-name {
		font-size: 1rem;
	}
	.tour-grid {
		gap: 18px;
	}
}

/* ============================================================
 * v1.8.0 — Gmax-style tour cards + booking modal
 * ============================================================ */

/* Override the old card layout — Gmax-style cards are non-link wrappers. */
.tour-card {
	background: var(--white);
	border-radius: var(--radius-lg);
	overflow: hidden;
	box-shadow: var(--shadow);
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.2s ease;
	color: var(--ink);
	display: flex;
	flex-direction: column;
	border: 1px solid transparent;
	cursor: default;
}

.tour-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--shadow-lift);
	border-color: var(--ocean-soft);
	color: var(--ink);
}

.tour-card-img {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--ocean-soft);
	cursor: pointer;
}

.tour-card-img > img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}

.tour-card:hover .tour-card-img > img { transform: scale(1.05); }

/* Image carousel inside cards. */
.tc-wrap { position: absolute; inset: 0; overflow: hidden; }
.tc-track { position: absolute; inset: 0; }
.tc-sl {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	transition: opacity 0.4s ease;
}
.tc-sl.tc-on { opacity: 1; }
.tour-card:hover .tc-sl.tc-on { transform: scale(1.05); transition: transform 0.5s ease, opacity 0.4s ease; }

.tc-p, .tc-nx {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.92);
	color: var(--ink);
	border: none;
	font-size: 18px;
	cursor: pointer;
	z-index: 4;
	opacity: 0;
	transition: opacity 0.2s ease, background 0.2s ease;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 600;
	line-height: 1;
}
.tc-p { left: 10px; }
.tc-nx { right: 10px; }
.tour-card:hover .tc-p,
.tour-card:hover .tc-nx { opacity: 1; }
.tc-p:hover, .tc-nx:hover { background: white; }

.tc-dots {
	position: absolute;
	bottom: 12px;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	gap: 5px;
	z-index: 3;
}
.tc-d {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.55);
	transition: background 0.2s ease, transform 0.2s ease;
}
.tc-d.tc-don {
	background: white;
	transform: scale(1.4);
}

/* Card tags */
.tour-card-tags {
	position: absolute;
	top: 12px;
	left: 12px;
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
	z-index: 2;
	pointer-events: none;
}
.tour-card-tags .tag {
	font-size: 0.7rem;
	font-weight: 700;
	padding: 4px 10px;
	border-radius: 100px;
	letter-spacing: 0.02em;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
}
.tour-card-tags .tag-accent {
	background: linear-gradient(135deg, var(--coral) 0%, #d04a2f 100%);
	color: white;
}
.tour-card-tags .tag-muted {
	background: rgba(255, 255, 255, 0.92);
	color: var(--ink);
	backdrop-filter: blur(4px);
}

/* Card body */
.tour-card-body {
	padding: 18px 20px 20px;
	display: flex;
	flex-direction: column;
	flex: 1;
}

.tour-card-rating {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--ink);
	margin-bottom: 8px;
}
.tour-card-rating .stars {
	color: #f5b800;
	letter-spacing: -1px;
	font-size: 0.95rem;
}
.tour-card-rating .reviews {
	color: var(--ink-mute);
	font-weight: 400;
	font-size: 0.78rem;
}

.tour-card-title {
	font-family: var(--font-display);
	font-size: 1.08rem;
	font-weight: 600;
	color: var(--ink);
	margin: 0 0 8px;
	line-height: 1.25;
	cursor: pointer;
	transition: color 0.2s ease;
}
.tour-card-title:hover { color: var(--ocean); }

.tour-card-desc {
	font-size: 0.82rem;
	color: var(--ink-mute);
	line-height: 1.5;
	margin: 0 0 12px;
}

.tour-card-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 14px;
}
.tour-meta-item {
	font-size: 0.78rem;
	color: var(--ink-mute);
	font-weight: 600;
}

.tour-card-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding-top: 14px;
	border-top: 1px solid var(--line);
	margin-top: auto;
}

.tour-price .from {
	font-size: 0.65rem;
	color: var(--ink-mute);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 700;
}
.tour-price .amount {
	font-family: var(--font-display);
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--ocean-deep, var(--ocean));
	line-height: 1.1;
}
.tour-price .per {
	font-size: 0.7rem;
	color: var(--ink-mute);
	margin-top: 1px;
}

.btn-availability {
	background: linear-gradient(135deg, var(--ocean) 0%, var(--ocean-deep, #094d29) 100%);
	color: white;
	border: none;
	padding: 10px 16px;
	border-radius: 8px;
	font-size: 0.78rem;
	font-weight: 700;
	cursor: pointer;
	white-space: nowrap;
	transition: transform 0.15s ease, box-shadow 0.2s ease;
}
.btn-availability:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 14px rgba(14, 110, 122, 0.3);
}
.btn-availability .btn-short { display: none; }
@media (max-width: 380px) {
	.btn-availability .btn-long { display: none; }
	.btn-availability .btn-short { display: inline; }
}

/* Section CTA */
.section-cta {
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--ocean);
	text-decoration: none;
	white-space: nowrap;
}
.section-cta:hover { color: var(--coral); }

/* Compact parish grid (used at bottom of homepage now). */
.parish-grid-compact {
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 10px;
}
.parish-grid-compact .parish-card {
	padding: 12px 16px;
	min-height: auto;
}
.parish-grid-compact .parish-name { font-size: 0.95rem; }
.parish-grid-compact .parish-count { font-size: 0.78rem; }

/* ============================================================
 * Booking modal — Gmax-style calendar + time picker
 * ============================================================ */

.bjm-modal {
	display: flex;
	position: fixed;
	inset: 0;
	z-index: 9999;
	background: rgba(12, 31, 41, 0.7);
	backdrop-filter: blur(4px);
	align-items: center;
	justify-content: center;
	padding: 14px;
	overflow-y: auto;
}

.bjm-modal-inner {
	background: white;
	border-radius: 18px;
	width: 100%;
	max-width: 480px;
	max-height: 92vh;
	overflow-y: auto;
	box-shadow: 0 32px 80px rgba(0, 0, 0, 0.4);
}

.bjm-modal-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	padding: 20px 22px;
	border-bottom: 1px solid var(--line);
}
.bjm-modal-head .eyebrow {
	font-size: 0.65rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--ink-mute);
}
.bjm-modal-head .title {
	font-family: var(--font-display);
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--ink);
	margin-top: 4px;
	line-height: 1.25;
}
.bjm-modal-close {
	background: var(--ocean-soft);
	border: none;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	font-size: 18px;
	cursor: pointer;
	color: var(--ink);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.bjm-modal-close:hover { background: var(--coral); color: white; }

.bjm-modal-body { padding: 18px 22px 4px; }

.bjm-cal-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 14px;
}
.bjm-cal-nav button {
	background: var(--ocean-soft);
	border: none;
	width: 32px;
	height: 32px;
	border-radius: 8px;
	cursor: pointer;
	font-size: 18px;
	font-weight: 700;
	color: var(--ink);
}
.bjm-cal-nav button:hover { background: var(--ocean); color: white; }
.bjm-cal-month {
	font-family: var(--font-display);
	font-size: 1.05rem;
	font-weight: 600;
	color: var(--ink);
}

.bjm-cal-dow {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 4px;
	margin-bottom: 6px;
	text-align: center;
	font-size: 0.7rem;
	font-weight: 700;
	color: var(--ink-mute);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.bjm-cal-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 4px;
	margin-bottom: 16px;
}

.bjm-cal-grid button {
	height: 38px;
	border: none;
	border-radius: 8px;
	font-size: 0.9rem;
	font-weight: 700;
	cursor: pointer;
	transition: transform 0.12s ease;
	font-family: inherit;
}
.bjm-cal-grid button:hover:not(:disabled) { transform: scale(1.08); }

.bjm-cal-legend {
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
	font-size: 0.7rem;
	color: var(--ink-mute);
	margin-bottom: 14px;
	padding: 10px 0;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
}
.bjm-cal-legend span { display: inline-flex; align-items: center; gap: 5px; }
.bjm-cal-legend .dot {
	width: 10px;
	height: 10px;
	border-radius: 3px;
	display: inline-block;
}
.bjm-cal-legend .dot-open { background: #d1fae5; }
.bjm-cal-legend .dot-low { background: #fef3c7; }
.bjm-cal-legend .dot-full { background: #e5e7eb; }
.bjm-cal-legend .dot-unset { background: #dbeafe; }

.bjm-times {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 16px;
}
.bjm-times button {
	padding: 10px 14px;
	border-radius: 8px;
	border: 1.5px solid var(--line);
	background: white;
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--ink);
	cursor: pointer;
	transition: all 0.15s ease;
	font-family: inherit;
}
.bjm-times button:hover { border-color: var(--ocean); }
.bjm-times button.selected {
	border-color: var(--coral);
	background: #fef6f4;
	color: var(--coral);
}

.bjm-pax-row {
	display: flex;
	gap: 12px;
	margin-bottom: 16px;
}
.bjm-pax-row label {
	flex: 1;
	display: block;
	font-size: 0.72rem;
	font-weight: 700;
	color: var(--ink-mute);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin-bottom: 4px;
}
.bjm-pax-row input {
	width: 100%;
	padding: 10px 12px;
	border: 1.5px solid var(--line);
	border-radius: 8px;
	font-size: 1rem;
	font-weight: 600;
	color: var(--ink);
	font-family: inherit;
}

.bjm-summary {
	background: var(--ocean-soft);
	padding: 14px 16px;
	border-radius: 10px;
	margin-bottom: 16px;
}
.bjm-summary-row {
	display: flex;
	justify-content: space-between;
	font-size: 0.88rem;
	padding: 4px 0;
	color: var(--ink);
}
.bjm-summary-row.total {
	border-top: 1px solid rgba(14, 110, 122, 0.2);
	padding-top: 10px;
	margin-top: 6px;
	font-weight: 700;
	font-size: 1rem;
}
.bjm-summary-row .label { color: var(--ink-mute); }

.bjm-modal-footer {
	padding: 16px 22px 22px;
	border-top: 1px solid var(--line);
	background: #fbf7f1;
	border-radius: 0 0 18px 18px;
}

.bjm-confirm-btn {
	width: 100%;
	background: linear-gradient(135deg, var(--coral) 0%, #d04a2f 100%);
	color: white;
	border: none;
	padding: 14px;
	border-radius: 10px;
	font-size: 0.95rem;
	font-weight: 700;
	cursor: pointer;
	font-family: inherit;
	transition: transform 0.15s ease, box-shadow 0.2s ease;
}
.bjm-confirm-btn:hover:not(:disabled) {
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(232, 99, 74, 0.4);
}
.bjm-confirm-btn:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

.bjm-loading {
	text-align: center;
	padding: 40px;
	color: var(--ink-mute);
}

.bjm-fineprint {
	font-size: 0.72rem;
	color: var(--ink-mute);
	text-align: center;
	margin: 10px 0 0;
	line-height: 1.5;
}

/* Detail page sidebar — larger version of the availability button. */
.btn-availability-large {
	width: 100%;
	padding: 14px 18px;
	font-size: 0.95rem;
	margin-top: 16px;
	border-radius: 10px;
}

/* ============================================================
 * v1.8.1 — App-style quick tray (homepage service icons)
 * ============================================================ */

.quick-tray-wrap {
	background: white;
	border-bottom: 1px solid var(--line);
	position: relative;
	z-index: 2;
	margin-top: -32px;
	padding: 24px 0 22px;
}

.quick-tray-wrap .container {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}
.quick-tray-wrap .container::-webkit-scrollbar { display: none; }

.quick-tray {
	display: flex;
	gap: 8px;
	padding: 0 4px;
	min-width: max-content;
}

.quick-tile {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	gap: 8px;
	padding: 10px 6px;
	border-radius: 14px;
	color: var(--ink);
	text-decoration: none;
	min-width: 78px;
	transition: transform 0.15s ease, background 0.2s ease;
	flex: 1 0 auto;
}

.quick-tile:hover {
	background: var(--ocean-soft);
	transform: translateY(-2px);
	color: var(--ocean-deep, var(--ocean));
}

.quick-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 16px;
	background: linear-gradient(135deg, var(--ocean-soft) 0%, #e7f4f6 100%);
	color: var(--ocean-deep, var(--ocean));
	transition: background 0.2s ease, color 0.2s ease;
	box-shadow: 0 2px 6px rgba(14, 110, 122, 0.08);
}

.quick-tile:hover .quick-icon {
	background: linear-gradient(135deg, var(--ocean) 0%, var(--ocean-deep, #094d29) 100%);
	color: white;
	box-shadow: 0 4px 12px rgba(14, 110, 122, 0.25);
}

.quick-label {
	font-size: 0.74rem;
	font-weight: 600;
	color: var(--ink);
	text-align: center;
	line-height: 1.2;
	white-space: nowrap;
	letter-spacing: 0.01em;
}

@media (min-width: 720px) {
	.quick-tray {
		justify-content: center;
		gap: 14px;
		min-width: 0;
	}
	.quick-tile {
		min-width: 92px;
	}
	.quick-icon {
		width: 56px;
		height: 56px;
	}
	.quick-label {
		font-size: 0.8rem;
	}
}

@media (min-width: 1024px) {
	.quick-tray-wrap {
		margin-top: -40px;
	}
}

/* ============================================================
 * v1.8.2 — Hero v2 (video bg), 3-tile app tray, mobile fixes
 * ============================================================ */

/* Prevent horizontal page overflow (root cause of "text on right bleed"). */
html, body { overflow-x: hidden; }

/* Hero v2 — full-bleed video background. */
.hero-v2 {
	position: relative;
	overflow: hidden;
	min-height: 460px;
	padding: 84px 24px 96px;
	color: white;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, #0d6b3a 0%, #094d29 100%);
}

.hero-v2 .hero-media {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
}

.hero-video {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	min-width: 100%;
	min-height: 100%;
	width: auto;
	height: auto;
	max-width: none;
	object-fit: cover;
	pointer-events: none;
}

.hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(8, 25, 32, 0.12) 0%, rgba(8, 25, 32, 0.42) 55%, rgba(5, 41, 48, 0.78) 100%);
	z-index: 1;
}

/* Mobile: keep the video; users with slow connections will see the poster
 * while it loads. Format the video small (≤3MB) and the experience is fine. */
@media (max-width: 768px) {
	.hero-v2.hero-with-image {
		background-image: var(--hero-bg, none);
		background-size: cover;
		background-position: center;
	}
}

.hero-v2 .hero-inner {
	position: relative;
	z-index: 2;
	max-width: 760px;
	width: 100%;
	margin: 0 auto;
}

.hero-v2 .hero-eyebrow {
	display: inline-block;
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	background: rgba(255, 255, 255, 0.14);
	border: 1px solid rgba(255, 255, 255, 0.22);
	padding: 6px 14px;
	border-radius: 100px;
	margin-bottom: 22px;
	color: white;
	backdrop-filter: blur(4px);
}

.hero-v2 h1 {
	font-family: var(--font-display);
	font-size: clamp(2.2rem, 6vw, 4.2rem);
	line-height: 1.05;
	font-weight: 600;
	margin: 0 0 14px;
	color: white;
	letter-spacing: -0.01em;
}

.hero-v2 .hero-sub {
	font-size: clamp(1rem, 2.2vw, 1.2rem);
	color: rgba(255, 255, 255, 0.92);
	max-width: 600px;
	margin: 0 auto 32px;
	line-height: 1.55;
}

.hero-v2 .hero-search {
	max-width: 560px;
	margin: 0 auto;
	display: flex;
	gap: 4px;
	background: white;
	border-radius: 100px;
	padding: 5px;
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.22);
}

.hero-v2 .hero-search input {
	flex: 1 1 auto;
	min-width: 0;
	border: none;
	padding: 11px 6px 11px 20px;
	font-size: 0.95rem;
	background: transparent;
	color: var(--ink);
	outline: none;
	font-family: inherit;
	text-overflow: ellipsis; /* graceful truncation if placeholder overflows */
}
.hero-v2 .hero-search input::placeholder {
	color: var(--ink-mute);
	opacity: 0.85;
}

.hero-v2 .hero-search button {
	flex-shrink: 0;
	background: linear-gradient(135deg, var(--coral) 0%, var(--coral-deep) 100%);
	color: white;
	border: none;
	padding: 0 22px;
	height: 44px;
	border-radius: 100px;
	font-weight: 700;
	cursor: pointer;
	font-family: inherit;
	font-size: 0.92rem;
	letter-spacing: 0.01em;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	box-shadow: 0 4px 12px rgba(232, 99, 74, 0.32);
	transition: transform 0.15s ease, box-shadow 0.2s ease, filter 0.2s ease;
}
.hero-v2 .hero-search button::before {
	content: "";
	width: 15px;
	height: 15px;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><path d='m20 20-3.5-3.5'/></svg>");
	background-repeat: no-repeat;
	background-position: center;
	flex-shrink: 0;
}
.hero-v2 .hero-search button:hover {
	filter: brightness(1.08);
	transform: translateY(-1px);
	box-shadow: 0 8px 20px rgba(232, 99, 74, 0.42);
}

/* Phone screens — switch placeholder to a shorter version that fits */
@media (max-width: 480px) {
	.hero-v2 .hero-search {
		padding: 4px;
	}
	.hero-v2 .hero-search input {
		font-size: 0.88rem;
		padding: 10px 4px 10px 16px;
	}
	.hero-v2 .hero-search button {
		padding: 0 14px;
		height: 40px;
		font-size: 0.85rem;
	}
	/* Tiny screens: hide "Search" text, keep only the icon */
	.hero-v2 .hero-search button .btn-label { display: none; }
}

/* App-style tray with 3 large cards (replaces old pill tray). */
.quick-tray-wrap {
	background: transparent;
	border-bottom: none;
	padding: 0 0 14px;
	margin-top: -34px;
	position: relative;
	z-index: 3;
}

.quick-tray-cards {
	display: grid;
	grid-template-columns: 1fr;
	gap: 10px;
	min-width: 0;
}

@media (min-width: 720px) {
	.quick-tray-cards {
		grid-template-columns: repeat(3, 1fr);
		gap: 14px;
	}
	.quick-tray-wrap { margin-top: -42px; }
}

.quick-card {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 16px;
	background: white;
	border-radius: 16px;
	color: var(--ink);
	text-decoration: none;
	box-shadow: 0 8px 24px rgba(8, 65, 73, 0.10);
	border: 1px solid rgba(14, 110, 122, 0.08);
	transition: transform 0.15s ease, box-shadow 0.2s ease;
}

.quick-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 28px rgba(8, 65, 73, 0.18);
	color: var(--ink);
}

.quick-card .quick-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	min-width: 52px;
	border-radius: 14px;
	background: linear-gradient(135deg, var(--ocean-soft) 0%, #e7f4f6 100%);
	color: var(--ocean-deep, var(--ocean));
	transition: background 0.2s ease, color 0.2s ease;
}

.quick-card:hover .quick-icon {
	background: linear-gradient(135deg, var(--ocean) 0%, var(--ocean-deep, #094d29) 100%);
	color: white;
}

.quick-card .quick-meta {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.quick-card .quick-label {
	font-size: 1rem;
	font-weight: 700;
	color: var(--ink);
	line-height: 1.2;
}

.quick-card .quick-sub {
	font-size: 0.8rem;
	color: var(--ink-mute);
	line-height: 1.3;
	font-weight: 500;
}

.quick-card .quick-arrow {
	font-size: 1.4rem;
	color: var(--ocean);
	font-weight: 600;
	transition: transform 0.15s ease;
}
.quick-card:hover .quick-arrow {
	transform: translateX(3px);
	color: var(--coral);
}

/* Mobile: 2 tour cards per row. */
@media (max-width: 720px) {
	.tour-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 14px;
	}
	.tour-card-body {
		padding: 12px 12px 14px;
	}
	.tour-card-title {
		font-size: 0.94rem;
		line-height: 1.22;
	}
	.tour-card-desc {
		display: none;
	}
	.tour-card-meta {
		gap: 6px;
		margin-bottom: 10px;
	}
	.tour-meta-item {
		font-size: 0.7rem;
	}
	.tour-card-rating {
		font-size: 0.78rem;
		margin-bottom: 5px;
	}
	.tour-card-tags .tag {
		font-size: 0.62rem;
		padding: 3px 7px;
	}
	.tour-card-footer {
		flex-direction: column;
		align-items: stretch;
		gap: 8px;
	}
	.tour-price .amount {
		font-size: 1.15rem;
	}
	.btn-availability {
		font-size: 0.7rem;
		padding: 8px 10px;
	}
	.btn-availability .btn-long { display: none; }
	.btn-availability .btn-short { display: inline; }
}

/* Cleaner full-bleed cream section (avoid 100vw which causes scrollbar bleed). */
.section-on-cream {
	background: var(--cream, #f5ecdb);
	margin-left: 0;
	width: auto;
	padding: 56px 24px;
	max-width: 100% !important;
	box-sizing: border-box;
}
.section-on-cream > .section-head,
.section-on-cream > .tour-grid {
	max-width: 1240px;
	margin-left: auto;
	margin-right: auto;
}

/* ============================================================
 * v1.8.3 — Tour detail page redesign
 * ============================================================ */

.tour-detail { padding: 0 0 60px; }
.tour-detail .container { max-width: 1180px; }
/* Push body content down only when there's no hero image at the top */
.tour-detail > .container:first-child { padding-top: 28px; }

/* Photo gallery hero (Booking.com / Airbnb style) */
.tour-gallery-hero {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 6px;
	height: 480px;
	border-radius: 16px;
	overflow: hidden;
	position: relative;
	margin-bottom: 32px;
}

.tgh-cell {
	overflow: hidden;
	background: var(--ocean-soft);
	cursor: pointer;
	transition: opacity 0.2s ease;
}
.tgh-cell:hover { opacity: 0.92; }
.tgh-cell img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.tgh-cell-0 { grid-row: 1 / 3; grid-column: 1; }
.tgh-cell-1 { grid-row: 1; grid-column: 2; }
.tgh-cell-2 { grid-row: 1; grid-column: 3; }
.tgh-cell-3 { grid-row: 2; grid-column: 2; }
.tgh-cell-4 { grid-row: 2; grid-column: 3; }

.tgh-more {
	position: absolute;
	bottom: 18px;
	right: 18px;
	background: white;
	color: var(--ink);
	border: 1px solid var(--line);
	padding: 10px 18px;
	border-radius: 10px;
	font-weight: 700;
	cursor: pointer;
	font-size: 0.85rem;
	box-shadow: 0 4px 12px rgba(0,0,0,0.18);
	font-family: inherit;
}
.tgh-more:hover { background: var(--ink); color: white; border-color: var(--ink); }

/* Mobile gallery — horizontal scroll carousel */
@media (max-width: 720px) {
	.tour-gallery-hero {
		display: flex;
		grid-template-columns: none;
		grid-template-rows: none;
		height: 280px;
		gap: 6px;
		overflow-x: auto;
		overflow-y: hidden;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		padding: 0 24px;
		margin: 0 -24px;
		border-radius: 0;
	}
	.tour-gallery-hero::-webkit-scrollbar { display: none; }
	.tgh-cell {
		flex: 0 0 92%;
		grid-row: auto !important;
		grid-column: auto !important;
		scroll-snap-align: start;
		display: block !important;
		border-radius: 12px;
		overflow: hidden;
	}
	.tgh-more { bottom: 12px; right: 36px; padding: 8px 14px; font-size: 0.78rem; }
}

/* Layout */
.tour-layout {
	display: grid;
	grid-template-columns: 1fr 380px;
	gap: 56px;
	align-items: start;
}

@media (max-width: 980px) {
	.tour-layout {
		grid-template-columns: 1fr;
		gap: 32px;
	}
}

/* Tour header */
.tour-header { margin-bottom: 32px; }

.tour-tags {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 14px;
}
.tour-tags .tag {
	font-size: 0.72rem;
	font-weight: 700;
	padding: 5px 11px;
	border-radius: 100px;
	letter-spacing: 0.02em;
}
.tour-tags .tag-accent {
	background: linear-gradient(135deg, var(--coral) 0%, #d04a2f 100%);
	color: white;
}
.tour-tags .tag-link {
	background: var(--ocean-soft);
	color: var(--ocean-deep, var(--ocean));
	text-decoration: none;
}
.tour-tags .tag-link:hover { background: var(--ocean); color: white; }

.tour-header h1 {
	font-family: var(--font-display);
	font-size: clamp(1.7rem, 3.4vw, 2.4rem);
	font-weight: 600;
	line-height: 1.15;
	margin: 0 0 14px;
	color: var(--ink);
	letter-spacing: -0.005em;
}

.tour-meta-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 18px;
	font-size: 0.88rem;
	color: var(--ink-mute);
}

.tour-rating {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	color: var(--ink);
}
.tour-rating .stars { color: #f5b800; letter-spacing: -1px; font-size: 0.95rem; }
.tour-rating .reviews { color: var(--ink-mute); font-weight: 400; }

.tour-meta-row .meta-item {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-weight: 500;
}
.tour-meta-row .meta-item svg { color: var(--ocean); }
.tour-meta-row .meta-pos {
	color: #0d4a2c;
	font-weight: 700;
}
.tour-meta-row .meta-pos svg { color: #0d4a2c; }

/* Sections */
.tour-section {
	margin-bottom: 32px;
	padding-bottom: 28px;
	border-bottom: 1px solid var(--line);
}
.tour-section:last-child { border-bottom: none; }

.tour-section h2 {
	font-family: var(--font-display);
	font-size: 1.45rem;
	font-weight: 600;
	margin: 0 0 14px;
	color: var(--ink);
}
.tour-section h3 {
	font-size: 1.1rem;
	font-weight: 700;
	margin: 0 0 12px;
	color: var(--ink);
	display: flex;
	align-items: center;
	gap: 8px;
}

.tour-description { font-size: 1rem; line-height: 1.65; color: var(--ink); }
.tour-description p { margin: 0 0 14px; }

/* Lists with custom bullets */
.tour-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 8px;
}
.highlights-list {
	grid-template-columns: 1fr 1fr;
	gap: 10px 24px;
}
.highlights-list li {
	font-size: 0.95rem;
	line-height: 1.5;
	padding-left: 26px;
	position: relative;
}
.highlights-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 6px;
	width: 16px;
	height: 16px;
	background: var(--ocean-soft);
	border-radius: 50%;
}
.highlights-list li::after {
	content: "✓";
	position: absolute;
	left: 3px;
	top: 4px;
	font-size: 11px;
	font-weight: 800;
	color: var(--ocean);
}

@media (max-width: 720px) {
	.highlights-list { grid-template-columns: 1fr; }
}

.tour-cols {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
	margin-bottom: 32px;
	padding-bottom: 28px;
	border-bottom: 1px solid var(--line);
}
.tour-cols .tour-section {
	margin-bottom: 0;
	padding-bottom: 0;
	border-bottom: none;
}
@media (max-width: 720px) {
	.tour-cols { grid-template-columns: 1fr; gap: 24px; }
}

.ic-bullet {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: #d1fae5;
	color: #0d4a2c;
	flex-shrink: 0;
}
.ic-bullet.ic-excl {
	background: #fef6f4;
	color: var(--coral);
}

.tour-incex .tour-list li {
	font-size: 0.92rem;
	line-height: 1.5;
	padding-left: 0;
	color: var(--ink);
}
.inclusions li::before, .to-bring li::before {
	content: "✓ ";
	color: #0d4a2c;
	font-weight: 800;
	margin-right: 4px;
}
.exclusions li::before {
	content: "✕ ";
	color: var(--coral);
	font-weight: 800;
	margin-right: 4px;
}
.to-bring { display: flex; flex-wrap: wrap; gap: 8px; }
.to-bring li {
	background: var(--ocean-soft);
	padding: 6px 14px;
	border-radius: 100px;
	font-size: 0.85rem;
	font-weight: 600;
}
.to-bring li::before { display: none; }

/* Cancellation card highlight */
.tour-cancel-card {
	background: #f0f9fa;
	padding: 22px 26px;
	border-radius: 12px;
	border: 1px solid #cfe7eb;
	border-bottom: 1px solid #cfe7eb;
}
.tour-cancel-card h3 { color: var(--ocean-deep, var(--ocean)); }
.tour-cancel-card p { font-size: 0.92rem; color: var(--ink); margin: 0; line-height: 1.55; }

/* Operator card */
.tour-operator-card {
	display: flex;
	gap: 16px;
	padding: 22px 26px;
	background: white;
	border: 1px solid var(--line);
	border-radius: 16px;
	margin-bottom: 0;
	align-items: center;
}
.op-avatar {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--ocean) 0%, var(--ocean-deep, #094d29) 100%);
	color: white;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 1.1rem;
	letter-spacing: 0.05em;
	flex-shrink: 0;
}
.op-eyebrow {
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	color: var(--ink-mute);
	margin-bottom: 4px;
}
.op-name {
	font-family: var(--font-display);
	font-size: 1.15rem;
	font-weight: 600;
	color: var(--ink);
	text-decoration: none;
	display: block;
	margin-bottom: 4px;
}
.op-name:hover { color: var(--ocean); }
.op-trust {
	font-size: 0.8rem;
	color: var(--ink-mute);
	margin: 0;
	line-height: 1.45;
}

/* ============================================================
 * Sidebar booking box v2 (sticky)
 * ============================================================ */

.tour-sidebar {
	position: sticky;
	top: 24px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
@media (max-width: 980px) {
	.tour-sidebar { position: static; }
}

.booking-box-v2 {
	background: white;
	border: 1px solid var(--line);
	border-radius: 16px;
	padding: 24px 26px;
	box-shadow: 0 6px 24px rgba(8, 65, 73, 0.08);
}

.bb-price {
	display: flex;
	align-items: baseline;
	gap: 6px;
	margin-bottom: 2px;
}
.bb-from {
	font-size: 0.72rem;
	font-weight: 700;
	color: var(--ink-mute);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}
.bb-amount {
	font-family: var(--font-display);
	font-size: 2.1rem;
	font-weight: 700;
	color: var(--ocean-deep, var(--ocean));
	line-height: 1;
}
.bb-curr {
	font-size: 0.85rem;
	color: var(--ink-mute);
	font-weight: 600;
}
.bb-unit {
	font-size: 0.85rem;
	color: var(--ink-mute);
	margin-bottom: 18px;
}

.bb-cta {
	width: 100%;
	background: linear-gradient(135deg, var(--coral) 0%, #d04a2f 100%);
	color: white;
	border: none;
	padding: 15px 20px;
	border-radius: 12px;
	font-size: 1rem;
	font-weight: 700;
	cursor: pointer;
	font-family: inherit;
	letter-spacing: 0.005em;
	transition: transform 0.15s ease, box-shadow 0.2s ease;
	box-shadow: 0 4px 14px rgba(232, 99, 74, 0.32);
}
.bb-cta:hover {
	transform: translateY(-1px);
	box-shadow: 0 8px 22px rgba(232, 99, 74, 0.45);
}

.bb-trust {
	list-style: none;
	padding: 18px 0 0;
	margin: 18px 0 0;
	border-top: 1px solid var(--line);
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.bb-trust li {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 0.82rem;
	color: var(--ink);
	line-height: 1.4;
}
.bb-trust svg { color: #0d4a2c; flex-shrink: 0; }

.bb-help {
	background: var(--ocean-soft);
	border-radius: 12px;
	padding: 14px 18px;
	font-size: 0.85rem;
	border: 1px solid #cfe7eb;
}
.bb-help-title {
	font-weight: 700;
	color: var(--ocean-deep, var(--ocean));
	margin-bottom: 4px;
}
.bb-help-body {
	color: var(--ink);
	line-height: 1.5;
}

/* ============================================================
 * Booking checkout pages — polish to match
 * ============================================================ */

.ezym-checkout {
	max-width: 720px;
	margin: 0 auto;
	padding: 40px 24px 60px;
}
.ezym-checkout-head {
	margin-bottom: 28px;
	text-align: center;
}
.ezym-checkout-head h1 {
	font-family: var(--font-display);
	font-size: 1.8rem;
	font-weight: 600;
	margin: 0 0 6px;
	color: var(--ink);
}
.ezym-checkout-head p {
	color: var(--ink-mute);
	margin: 0;
}
.ezym-checkout-card {
	background: white;
	border: 1px solid var(--line);
	border-radius: 16px;
	padding: 28px 32px;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);
}

/* ============================================================
 * v1.8.4 — Better menu, footer, currency, top-rated, fonts
 * ============================================================ */

/* Force every block element to honor box-sizing and prevent bleed. */
*, *::before, *::after { box-sizing: border-box; }
html, body { overflow-x: clip; max-width: 100vw; }

/* Section containers all wrapped properly */
.container, .section, .section-on-cream, .quick-tray-wrap > .container {
	box-sizing: border-box;
}

/* Update body to use new font stack */
body {
	font-family: var(--font-body);
	font-feature-settings: 'cv02', 'cv03', 'cv04', 'cv11';
}

/* Bricolage Grotesque has natural variable optical sizing */
h1, h2, h3, .hero-v2 h1, .tour-card-title, .tour-header h1 {
	font-family: var(--font-display);
	font-weight: 600;
	letter-spacing: -0.015em;
}

/* ============================================================
 * Header — clean modern bar with currency switcher
 * ============================================================ */

.site-header {
	background: rgba(255, 255, 255, 0.96);
	backdrop-filter: saturate(150%) blur(8px);
	border-bottom: 1px solid rgba(14, 110, 122, 0.08);
	position: sticky;
	top: 0;
	z-index: 100;
}

.site-header .header-inner {
	display: flex;
	align-items: center;
	gap: 20px;
	padding-top: 14px;
	padding-bottom: 14px;
	min-height: 60px;
}

.site-header .brand {
	display: flex;
	align-items: center;
	gap: 8px;
	text-decoration: none;
	color: var(--ink);
	flex-shrink: 0;
}
.site-header .brand-logo {
	height: 44px;
	width: auto;
	max-width: 180px;
	display: block;
	object-fit: contain;
}
@media (max-width: 720px) {
	.site-header .brand-logo {
		height: 38px;
		max-width: 150px;
	}
}

.primary-nav {
	display: flex;
	gap: 4px;
	margin-left: auto;
	margin-right: 12px;
}
.primary-nav a {
	padding: 8px 14px;
	border-radius: 8px;
	color: var(--ink);
	text-decoration: none;
	font-size: 0.92rem;
	font-weight: 500;
	transition: background 0.15s ease, color 0.15s ease;
}
.primary-nav a:hover { background: var(--ocean-soft); color: var(--ocean-deep, var(--ocean)); }

.header-tools {
	display: flex;
	align-items: center;
	gap: 6px;
	flex-shrink: 0;
}

.currency-toggle {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 12px;
	border: 1px solid rgba(14, 110, 122, 0.15);
	border-radius: 100px;
	background: white;
	color: var(--ink);
	font-family: inherit;
	font-size: 0.84rem;
	font-weight: 700;
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease;
}
.currency-toggle:hover { border-color: var(--ocean); background: var(--ocean-soft); }
.currency-toggle .cur-flag {
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--ocean-soft);
	color: var(--ocean-deep, var(--ocean));
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 0.7rem;
	font-weight: 800;
}

.nav-toggle {
	display: none;
	background: white;
	border: 1px solid rgba(14, 110, 122, 0.15);
	border-radius: 9px;
	width: 38px;
	height: 38px;
	color: var(--ink);
	cursor: pointer;
	align-items: center;
	justify-content: center;
}
.nav-toggle:hover { background: var(--ocean-soft); }
.nav-toggle svg { pointer-events: none; }
.md-close svg { pointer-events: none; }

@media (max-width: 880px) {
	.primary-nav { display: none; }
	.nav-toggle { display: inline-flex; }
}

/* Mobile drawer */
.mobile-drawer {
	position: fixed;
	inset: 0;
	z-index: 200;
	display: none;
}
.mobile-drawer.open { display: block; }
.md-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(12, 31, 41, 0.5);
	backdrop-filter: blur(2px);
	animation: fade-in 0.2s ease;
}
.md-panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 320px;
	max-width: 90vw;
	background: white;
	display: flex;
	flex-direction: column;
	animation: slide-in-right 0.25s ease;
	box-shadow: -8px 0 32px rgba(0, 0, 0, 0.12);
}
.md-head-pinned { flex-shrink: 0; }
@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes slide-in-right { from { transform: translateX(100%); } to { transform: translateX(0); } }

.md-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 22px;
	border-bottom: 1px solid var(--line);
	flex-shrink: 0;
}
.md-close {
	background: var(--ocean-soft);
	border: none;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	cursor: pointer;
	color: var(--ink);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.md-close:hover { background: var(--coral); color: white; }

.md-nav {
	display: flex;
	flex-direction: column;
	padding: 12px 14px 24px;
	flex: 1 1 auto;
	min-height: 0; /* enables overflow scroll inside flex column */
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}
.md-nav a {
	padding: 13px 12px;
	border-radius: 10px;
	color: var(--ink);
	text-decoration: none;
	font-size: 0.98rem;
	font-weight: 500;
	display: flex;
	align-items: center;
	gap: 12px;
}
.md-nav a:hover { background: var(--ocean-soft); }

/* Primary nav rows — Tours, Cars, Transfers, Home */
.md-nav .md-link-primary {
	font-size: 1.05rem;
	font-weight: 600;
	padding: 14px 12px;
}
.md-link-icon {
	width: 32px;
	height: 32px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--ocean);
	flex-shrink: 0;
}
.md-link-icon svg { display: block; }

/* Smaller secondary text links — terms etc */
.md-nav .md-link-small {
	font-size: 0.86rem;
	font-weight: 500;
	color: var(--ink-mute);
	padding: 10px 12px;
}

.md-divider {
	height: 1px;
	background: var(--line);
	margin: 10px 0;
}

/* Currency block — inline, modest, sits between primary and secondary */
.md-cur-block {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 10px;
	padding: 12px 14px;
	margin: 12px 0;
	display: flex;
	align-items: center;
	gap: 12px;
}
.md-cur-label {
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--ink-mute);
	flex-shrink: 0;
}
.md-cur-row {
	display: flex;
	gap: 4px;
	flex: 1;
	justify-content: flex-end;
}
.md-cur-btn {
	background: white;
	border: 1.5px solid var(--line);
	padding: 7px 12px;
	border-radius: 100px;
	font-family: inherit;
	font-weight: 700;
	font-size: 0.78rem;
	cursor: pointer;
	color: var(--ink);
	transition: all 0.15s ease;
}
.md-cur-btn:hover {
	border-color: var(--ocean);
}
.md-cur-btn.active {
	background: var(--ocean);
	border-color: var(--ocean);
	color: white;
}

/* ============================================================
 * Top-rated stack — wide editorial cards, 1 per row
 * ============================================================ */

.top-rated-stack {
	display: flex;
	flex-direction: column;
	gap: 18px;
	max-width: 1080px;
	margin: 0 auto;
}

.tr-card {
	display: grid;
	grid-template-columns: 320px 1fr;
	background: white;
	border: 1px solid rgba(14, 110, 122, 0.1);
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 4px 14px rgba(8, 65, 73, 0.06);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.tr-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 28px rgba(8, 65, 73, 0.12);
}

.tr-img {
	position: relative;
	display: block;
	background: var(--ocean-soft);
	min-height: 220px;
	overflow: hidden;
}
.tr-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.5s ease;
}
.tr-card:hover .tr-img img { transform: scale(1.04); }

.tr-ribbon {
	position: absolute;
	top: 14px;
	left: 14px;
	background: linear-gradient(135deg, #f5b800 0%, #d6a253 100%);
	color: #3d2806;
	padding: 4px 10px;
	border-radius: 100px;
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	box-shadow: 0 2px 8px rgba(213, 162, 83, 0.4);
}

.tr-body {
	padding: 22px 26px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.tr-tags {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
}
.tr-tags .tag {
	font-size: 0.68rem;
	font-weight: 700;
	padding: 3px 9px;
	border-radius: 100px;
	letter-spacing: 0.02em;
}
.tr-tags .tag-accent {
	background: linear-gradient(135deg, var(--coral) 0%, #d04a2f 100%);
	color: white;
}
.tr-tags .tag-muted {
	background: var(--ocean-soft);
	color: var(--ocean-deep, var(--ocean));
}

.tr-title {
	font-family: var(--font-display);
	font-size: 1.4rem;
	font-weight: 600;
	line-height: 1.2;
	margin: 0;
}
.tr-title a {
	color: var(--ink);
	text-decoration: none;
}
.tr-title a:hover { color: var(--ocean); }

.tr-rating {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: 0.88rem;
	color: var(--ink);
}
.tr-stars { color: #f5b800; letter-spacing: -1px; font-size: 0.95rem; }
.tr-rating strong { font-weight: 700; }
.tr-reviews { color: var(--ink-mute); font-weight: 400; font-size: 0.82rem; }

.tr-desc {
	font-size: 0.92rem;
	color: var(--ink-mute);
	line-height: 1.55;
	margin: 0;
}

.tr-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	font-size: 0.82rem;
	color: var(--ink-mute);
	font-weight: 500;
}
.tr-meta span {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}
.tr-meta svg { color: var(--ocean); }

.tr-foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding-top: 14px;
	border-top: 1px solid var(--line);
	margin-top: auto;
}

.tr-price {
	display: flex;
	flex-direction: column;
	gap: 0;
}
.tr-price-from {
	font-size: 0.65rem;
	color: var(--ink-mute);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-weight: 700;
}
.tr-price-amt {
	font-family: var(--font-display);
	font-size: 1.6rem;
	font-weight: 700;
	color: var(--ocean-deep, var(--ocean));
	line-height: 1.1;
}
.tr-price-per {
	font-size: 0.7rem;
	color: var(--ink-mute);
}

@media (max-width: 720px) {
	.tr-card { grid-template-columns: 1fr; }
	.tr-img { min-height: 180px; aspect-ratio: 16 / 10; }
	.tr-body { padding: 18px 20px; }
	.tr-title { font-size: 1.2rem; }
	.tr-foot { flex-direction: column; align-items: stretch; }
	.tr-foot .btn-availability { width: 100%; }
}

/* Section eyebrow (used above top-rated h2) */
.section-eyebrow {
	display: inline-block;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--coral);
	margin: 0 0 6px;
}

/* Section head bleed fix — make sure h1/h2 always inside container */
.section-head {
	max-width: 100%;
	overflow-wrap: break-word;
	word-wrap: break-word;
}
.section-head h2 {
	max-width: 100%;
	font-size: clamp(1.5rem, 4vw, 2rem);
}

/* Page header pattern for All Tours, etc */
.page-header {
	background: linear-gradient(135deg, var(--ocean-soft) 0%, white 100%);
	padding: 56px 0 40px;
	border-bottom: 1px solid var(--line);
}
.page-header .container { max-width: 880px; }
.page-eyebrow {
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ocean);
	margin: 0 0 8px;
}
.page-header h1 {
	font-family: var(--font-display);
	font-size: clamp(1.8rem, 5vw, 2.6rem);
	font-weight: 600;
	margin: 0 0 12px;
	color: var(--ink);
	letter-spacing: -0.01em;
}
.page-lede {
	font-size: 1.08rem;
	color: var(--ink-mute);
	line-height: 1.55;
	margin: 0;
	max-width: 720px;
}

/* ============================================================
 * Static info pages
 * ============================================================ */

.static-page {
	padding: 56px 0 80px;
}
.static-page .container { max-width: 760px; }
.static-head { margin-bottom: 36px; }
.static-head h1 {
	font-family: var(--font-display);
	font-size: clamp(2rem, 5vw, 2.8rem);
	font-weight: 600;
	margin: 0 0 14px;
	color: var(--ink);
	letter-spacing: -0.015em;
}
.static-lede {
	font-size: 1.15rem;
	color: var(--ink-mute);
	line-height: 1.55;
	margin: 0;
}
.static-section {
	margin-bottom: 32px;
}
.static-section h2 {
	font-family: var(--font-display);
	font-size: 1.4rem;
	font-weight: 600;
	margin: 0 0 12px;
	color: var(--ink);
}
.static-section p, .static-section li {
	font-size: 1rem;
	line-height: 1.7;
	color: var(--ink);
}
.static-section ol, .static-section ul {
	padding-left: 20px;
	margin: 0 0 16px;
}
.static-section li { margin-bottom: 6px; }
.static-section a { color: var(--ocean); }
.static-section a:hover { color: var(--coral); }

/* ============================================================
 * Footer redesign
 * ============================================================ */

.site-footer {
	background: #0c1f29;
	color: rgba(255, 255, 255, 0.78);
	margin-top: 80px;
}

.footer-cta {
	padding: 44px 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.footer-cta-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
}
.footer-cta-eyebrow {
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--coral);
	margin: 0 0 6px;
}
.footer-cta-title {
	font-family: var(--font-display);
	font-size: clamp(1.4rem, 3vw, 1.8rem);
	font-weight: 600;
	color: white;
	margin: 0 0 6px;
	letter-spacing: -0.01em;
}
.footer-cta-sub {
	color: rgba(255, 255, 255, 0.7);
	margin: 0;
	max-width: 560px;
}
.footer-cta-btn {
	background: var(--coral);
	color: white;
	padding: 13px 22px;
	border-radius: 100px;
	text-decoration: none;
	font-weight: 700;
	font-size: 0.92rem;
	white-space: nowrap;
	transition: transform 0.15s ease, background 0.15s ease;
}
.footer-cta-btn:hover {
	background: var(--coral-deep, #d04a2f);
	transform: translateY(-1px);
	color: white;
}

.footer-grid {
	display: grid;
	grid-template-columns: 1.4fr repeat(4, 1fr);
	gap: 36px;
	padding: 56px 24px 40px;
	max-width: 1240px;
}
@media (max-width: 980px) {
	.footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
}
@media (max-width: 600px) {
	.footer-grid { grid-template-columns: 1fr; gap: 28px; padding-top: 40px; }
}

.footer-brand-col .brand {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 14px;
	color: white;
	text-decoration: none;
}
.footer-brand-col .brand-logo {
	height: 56px;
	width: auto;
	max-width: 200px;
	display: block;
	margin-bottom: 14px;
	/* Logo is on dark footer — slight white background plate so it pops */
	filter: drop-shadow(0 2px 8px rgba(0,0,0,0.2));
}
.footer-tagline {
	font-size: 0.92rem;
	color: rgba(255, 255, 255, 0.65);
	line-height: 1.6;
	margin: 0 0 18px;
	max-width: 320px;
}

.footer-social {
	display: flex;
	gap: 10px;
}
.footer-social a {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.08);
	color: white;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background 0.15s ease;
}
.footer-social a:hover { background: var(--coral); }

.footer-col h4 {
	color: white;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin: 0 0 14px;
}
.footer-col a {
	display: block;
	color: rgba(255, 255, 255, 0.7);
	text-decoration: none;
	font-size: 0.92rem;
	padding: 5px 0;
	transition: color 0.15s ease;
}
.footer-col a:hover { color: white; }

.footer-trust {
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	padding-top: 24px;
	padding-bottom: 24px;
}
.ft-strip {
	display: flex;
	justify-content: center;
	gap: 32px;
	flex-wrap: wrap;
}
.ft-item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.84rem;
	font-weight: 500;
}
.ft-item svg { color: var(--coral); }

.footer-bottom {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 20px 24px 24px;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	text-align: center;
}
.footer-bottom small {
	color: rgba(255, 255, 255, 0.55);
	font-size: 0.82rem;
	line-height: 1.5;
	display: block;
}
.footer-mandeville {
	color: rgba(255, 255, 255, 0.7) !important;
	font-weight: 500;
}
.footer-copyright {
	font-size: 0.78rem !important;
	color: rgba(255, 255, 255, 0.55) !important;
	font-weight: 600;
	margin-bottom: 4px;
}
.footer-powered-by a {
	color: var(--gold);
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid rgba(245, 184, 0, 0.3);
	transition: border-color 0.15s, color 0.15s;
}
.footer-powered-by a:hover {
	color: #ffd24a;
	border-bottom-color: var(--gold);
}

@media (min-width: 720px) {
	.footer-bottom { gap: 4px; }
}

/* Mobile view — currency button visible everywhere */
@media (max-width: 480px) {
	.site-header .header-inner { padding-top: 10px; padding-bottom: 10px; gap: 10px; }
	.currency-toggle {
		padding: 6px 10px;
		font-size: 0.78rem;
	}
}

/* ============================================================
 * v1.8.5 — Header z-index fix, drawer cleanup, mobile carousels,
 *          reviews section, footer cleanup, blog
 * ============================================================ */

/* Decisively override the older .site-header sticky rule */
.site-header {
	position: sticky !important;
	top: 0;
	z-index: 100;
	background: rgba(255, 255, 255, 0.96);
}

/* When mobile drawer is open, tuck the header behind it cleanly */
body.drawer-open .site-header {
	z-index: 50;
}
body.drawer-open .header-tools .currency-toggle,
body.drawer-open .header-tools .nav-toggle {
	visibility: hidden;
}

/* Drawer above EVERYTHING */
.mobile-drawer {
	z-index: 9999;
}

/* On mobile, the drawer takes the full screen — cleaner, no peek-through */
@media (max-width: 480px) {
	.mobile-drawer .md-panel {
		width: 100vw;
		max-width: 100vw;
		box-shadow: none;
		animation: slide-in-right 0.25s ease;
	}
	.mobile-drawer .md-backdrop { display: none; }
}

/* ============================================================
 * Mobile carousels (Featured + Newly Added)
 * ============================================================ */

/* Default to grid on desktop (already styled) */
.tour-carousel { display: contents; }

@media (max-width: 720px) {
	/* Convert .tour-grid to a swipeable carousel on mobile */
	.tour-grid.is-carousel {
		display: flex;
		grid-template-columns: none;
		gap: 14px;
		overflow-x: auto;
		overflow-y: hidden;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		padding: 4px 24px 6px;
		margin: 0 -24px;
		scroll-padding-left: 24px;
	}
	.tour-grid.is-carousel::-webkit-scrollbar { display: none; }
	.tour-grid.is-carousel > .tour-card {
		flex: 0 0 86%;
		max-width: 86%;
		scroll-snap-align: start;
	}
	/* Restore card body — no longer trying to fit 2 per row */
	.tour-grid.is-carousel .tour-card-desc {
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
		font-size: 0.85rem;
	}
	.tour-grid.is-carousel .tour-card-title {
		font-size: 1.05rem;
	}
	.tour-grid.is-carousel .tour-card-footer {
		flex-direction: row;
		align-items: center;
		gap: 10px;
	}
	.tour-grid.is-carousel .btn-availability {
		font-size: 0.78rem;
		padding: 9px 14px;
	}
	.tour-grid.is-carousel .btn-availability .btn-long { display: inline; }
	.tour-grid.is-carousel .btn-availability .btn-short { display: none; }
}

.carousel-hint {
	display: none;
	margin-top: 4px;
	font-size: 0.7rem;
	color: var(--ink-mute);
	text-align: center;
	opacity: 0.7;
}
@media (max-width: 720px) {
	.carousel-hint {
		display: block;
	}
}
.carousel-hint::before {
	content: "← swipe →";
	letter-spacing: 0.06em;
}

/* ============================================================
 * Reviews section (homepage social proof)
 * ============================================================ */

.reviews-section {
	background: linear-gradient(180deg, #fbf7f1 0%, #f5ecdb 100%);
	padding: 44px 0 56px;
	margin: 8px 0 0;
}
@media (max-width: 720px) {
	.reviews-section { padding: 28px 0 36px; margin: 4px 0 0; }
}
.reviews-section .container { max-width: 1180px; }
.reviews-head {
	text-align: center;
	margin-bottom: 36px;
}
.reviews-head .section-eyebrow {
	color: var(--coral);
	margin-bottom: 8px;
}
.reviews-head h2 {
	font-family: var(--font-display);
	font-size: clamp(1.8rem, 4vw, 2.4rem);
	font-weight: 600;
	margin: 0 0 8px;
	color: var(--ink);
	letter-spacing: -0.01em;
}
.reviews-head .section-sub {
	color: var(--ink-mute);
	font-size: 1rem;
	margin: 0;
}

.reviews-aggregate {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	background: white;
	padding: 12px 22px;
	border-radius: 100px;
	box-shadow: 0 4px 14px rgba(8, 65, 73, 0.06);
	margin: 18px auto 0;
	white-space: nowrap;
	max-width: 100%;
}
.reviews-aggregate .agg-stars {
	color: #f5b800;
	font-size: 1.05rem;
	letter-spacing: -1px;
	flex-shrink: 0;
}
.reviews-aggregate .agg-score {
	font-weight: 700;
	color: var(--ink);
	font-size: 1rem;
	flex-shrink: 0;
}
.reviews-aggregate .agg-count {
	color: var(--ink-mute);
	font-size: 0.9rem;
	flex-shrink: 0;
}

/* On phones, shrink everything to fit on one line */
@media (max-width: 540px) {
	.reviews-aggregate {
		gap: 8px;
		padding: 10px 16px;
		font-size: 0.85rem;
	}
	.reviews-aggregate .agg-stars { font-size: 0.95rem; }
	.reviews-aggregate .agg-score { font-size: 0.9rem; }
	.reviews-aggregate .agg-count { font-size: 0.78rem; }
}
@media (max-width: 380px) {
	/* Drop the "from X+ traveler reviews" copy on tiny screens */
	.reviews-aggregate .agg-count {
		display: none;
	}
}

.reviews-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
}
@media (max-width: 880px) {
	.reviews-grid { grid-template-columns: 1fr; }
}

.review-card {
	background: white;
	border-radius: 14px;
	padding: 24px 26px;
	border: 1px solid rgba(14, 110, 122, 0.08);
	box-shadow: 0 2px 10px rgba(8, 65, 73, 0.04);
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.rc-stars {
	color: #f5b800;
	font-size: 0.95rem;
	letter-spacing: -1px;
}
.rc-quote {
	font-family: var(--font-display);
	font-size: 1.05rem;
	line-height: 1.5;
	color: var(--ink);
	margin: 0;
	font-weight: 500;
}
.rc-quote::before {
	content: "\201C";
	color: var(--ocean);
	font-size: 1.2em;
	margin-right: 2px;
	line-height: 0;
}
.rc-meta {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: auto;
	padding-top: 14px;
	border-top: 1px solid var(--line);
}
.rc-avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--ocean) 0%, var(--ocean-deep, #094d29) 100%);
	color: white;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 0.85rem;
	flex-shrink: 0;
}
.rc-author {
	font-weight: 700;
	color: var(--ink);
	font-size: 0.9rem;
	line-height: 1.2;
}
.rc-trip {
	color: var(--ink-mute);
	font-size: 0.78rem;
	line-height: 1.3;
	margin-top: 2px;
}

/* ============================================================
 * Footer cleanup — tighter, less crowded
 * ============================================================ */

.site-footer { margin-top: 60px; }

.footer-cta { padding: 36px 0; }
.footer-cta-inner {
	flex-wrap: wrap;
	gap: 18px;
}
.footer-cta-title { font-size: clamp(1.3rem, 2.6vw, 1.65rem); }

.footer-grid {
	grid-template-columns: 1.6fr repeat(3, 1fr);
	gap: 40px;
	padding: 48px 24px 32px;
}
@media (max-width: 980px) {
	.footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
}
@media (max-width: 600px) {
	.footer-grid { grid-template-columns: 1fr; gap: 22px; padding-top: 36px; padding-bottom: 24px; }
	.footer-brand-col { text-align: left; }
}

.footer-tagline { max-width: 360px; }

.footer-social a {
	width: 38px;
	height: 38px;
}

/* Move trust strip into the dark band, less competing */
.footer-trust { padding: 18px 24px; }
.ft-strip { gap: 24px; }
.ft-item {
	font-size: 0.8rem;
}

.footer-bottom { padding: 18px 24px 22px; }

/* Mobile: stack trust items */
@media (max-width: 600px) {
	.ft-strip { gap: 12px; flex-direction: column; align-items: center; }
	.footer-bottom { flex-direction: column; align-items: center; text-align: center; gap: 6px; }
}

/* ============================================================
 * Search page
 * ============================================================ */

.search-page { padding: 40px 0 80px; }
.search-page .container { max-width: 980px; }

.search-bar {
	display: flex;
	gap: 8px;
	background: white;
	padding: 10px;
	border-radius: 14px;
	border: 1px solid var(--line);
	box-shadow: 0 4px 14px rgba(8, 65, 73, 0.04);
	margin-bottom: 18px;
}
.search-bar input {
	flex: 1;
	border: none;
	padding: 10px 14px;
	font-size: 1rem;
	background: transparent;
	color: var(--ink);
	outline: none;
	font-family: inherit;
}

#search-stats {
	color: var(--ink-mute);
	font-size: 0.88rem;
	margin: 0 4px 18px;
}

#search-results {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 18px;
}

.search-empty {
	background: white;
	padding: 40px 24px;
	border-radius: 14px;
	text-align: center;
	color: var(--ink-mute);
	border: 1px solid var(--line);
}

/* ============================================================
 * Blog post layout (when we have real posts)
 * ============================================================ */

.blog-post {
	max-width: 720px;
	margin: 0 auto;
	padding: 56px 24px 80px;
}
.blog-post .post-meta {
	color: var(--ink-mute);
	font-size: 0.88rem;
	margin-bottom: 14px;
	display: flex;
	gap: 14px;
	align-items: center;
}
.blog-post h1 {
	font-family: var(--font-display);
	font-size: clamp(2rem, 5vw, 2.8rem);
	font-weight: 600;
	line-height: 1.1;
	margin: 0 0 18px;
	color: var(--ink);
	letter-spacing: -0.015em;
}
.blog-post .post-lede {
	font-size: 1.18rem;
	color: var(--ink-mute);
	line-height: 1.55;
	margin: 0 0 28px;
}
.blog-post .post-cover {
	border-radius: 16px;
	width: 100%;
	height: auto;
	margin-bottom: 32px;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}
.blog-post .post-content {
	font-size: 1.05rem;
	line-height: 1.75;
	color: var(--ink);
}
.blog-post .post-content p { margin: 0 0 18px; }
.blog-post .post-content h2 {
	font-family: var(--font-display);
	font-size: 1.5rem;
	font-weight: 600;
	margin: 36px 0 14px;
	color: var(--ink);
}
.blog-post .post-content h3 {
	font-size: 1.2rem;
	font-weight: 700;
	margin: 28px 0 10px;
	color: var(--ink);
}
.blog-post .post-content a { color: var(--ocean); }
.blog-post .post-content a:hover { color: var(--coral); }

.blog-index-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 24px;
	max-width: 1080px;
	margin: 32px auto 0;
}
.blog-card {
	background: white;
	border-radius: 14px;
	overflow: hidden;
	border: 1px solid var(--line);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.blog-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 28px rgba(8, 65, 73, 0.10);
}
.blog-card a { text-decoration: none; color: inherit; display: block; }
.blog-card-img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	display: block;
	background: var(--ocean-soft);
}
.blog-card-body { padding: 20px 22px 22px; }
.blog-card-meta {
	font-size: 0.74rem;
	color: var(--ink-mute);
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	margin-bottom: 6px;
}
.blog-card-title {
	font-family: var(--font-display);
	font-size: 1.2rem;
	font-weight: 600;
	line-height: 1.25;
	margin: 0 0 6px;
	color: var(--ink);
}
.blog-card-excerpt {
	font-size: 0.92rem;
	color: var(--ink-mute);
	line-height: 1.5;
	margin: 0;
}

/* ============================================================
 * v1.8.4 — Pay-now/pay-later option selector
 * ============================================================ */

.ezym-payopts {
	border: none;
	padding: 0;
	margin: 18px 0 22px;
}
.ezym-payopts legend {
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--ink);
	margin-bottom: 10px;
	padding: 0;
}

.ezym-payopt {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 14px 16px;
	border: 1.5px solid var(--line);
	border-radius: 12px;
	cursor: pointer;
	margin-bottom: 8px;
	transition: border-color 0.15s ease, background 0.15s ease;
	background: white;
}
.ezym-payopt:hover {
	border-color: var(--ocean);
	background: #f0f9fa;
}
.ezym-payopt input[type="radio"] {
	margin-top: 3px;
	flex-shrink: 0;
	accent-color: var(--ocean);
}
.ezym-payopt:has(input[type="radio"]:checked) {
	border-color: var(--ocean);
	background: #f0f9fa;
	box-shadow: 0 0 0 1px var(--ocean) inset;
}
.po-title {
	font-weight: 700;
	color: var(--ink);
	font-size: 1rem;
	margin-bottom: 2px;
}
.po-sub {
	font-size: 0.85rem;
	color: var(--ink-mute);
	line-height: 1.45;
}

.ezym-payopt-disabled {
	padding: 14px 16px;
	border: 1.5px dashed var(--line);
	border-radius: 12px;
	background: #fbf7f1;
	margin-bottom: 8px;
	opacity: 0.7;
}
.ezym-payopt-disabled .po-title { color: var(--ink-mute); }

/* ============================================================
 * Popups (welcome modal + exit-intent)
 * ============================================================ */

.bjm-popup {
	position: fixed;
	inset: 0;
	z-index: 9000;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 20px;
	background: rgba(12, 31, 41, 0.55);
	backdrop-filter: blur(4px);
	animation: fade-in 0.25s ease;
}
.bjm-popup.show { display: flex; }

.bjm-popup-card {
	background: white;
	border-radius: 18px;
	max-width: 460px;
	width: 100%;
	overflow: hidden;
	position: relative;
	animation: pop-up 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
	box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
}

@keyframes pop-up {
	from { opacity: 0; transform: translateY(20px) scale(0.96); }
	to { opacity: 1; transform: translateY(0) scale(1); }
}

.bjm-popup-close {
	position: absolute;
	top: 14px;
	right: 14px;
	width: 32px;
	height: 32px;
	background: rgba(255, 255, 255, 0.92);
	border: none;
	border-radius: 50%;
	cursor: pointer;
	font-size: 18px;
	line-height: 1;
	color: var(--ink);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 2;
}
.bjm-popup-close:hover { background: var(--coral); color: white; }

.bjm-popup-hero {
	background: linear-gradient(135deg, var(--ocean) 0%, var(--ocean-deep, #094d29) 100%);
	color: white;
	padding: 42px 32px 22px;
	text-align: center;
	position: relative;
	overflow: hidden;
}
.bjm-popup-hero::before {
	content: "";
	position: absolute;
	top: -50%;
	right: -20%;
	width: 200px;
	height: 200px;
	background: radial-gradient(circle, rgba(232, 99, 74, 0.4) 0%, transparent 70%);
	z-index: 0;
}

.bjm-popup-emoji {
	font-size: 3rem;
	margin-bottom: 8px;
	position: relative;
	z-index: 1;
	display: block;
}
.bjm-popup-hero h2 {
	font-family: var(--font-display);
	font-size: 1.6rem;
	font-weight: 600;
	margin: 0 0 6px;
	color: white;
	letter-spacing: -0.01em;
	position: relative;
	z-index: 1;
}
.bjm-popup-hero p {
	color: rgba(255, 255, 255, 0.86);
	font-size: 0.92rem;
	margin: 0;
	position: relative;
	z-index: 1;
	line-height: 1.5;
}

.bjm-popup-body {
	padding: 24px 32px 28px;
}
.bjm-popup-body .bjm-features {
	list-style: none;
	padding: 0;
	margin: 0 0 20px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.bjm-popup-body .bjm-features li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 0.92rem;
	line-height: 1.45;
	color: var(--ink);
}
.bjm-popup-body .bjm-features li::before {
	content: "✓";
	color: #0d4a2c;
	font-weight: 800;
	flex-shrink: 0;
	background: #d1fae5;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 11px;
	margin-top: 1px;
}

.bjm-popup-form {
	display: flex;
	gap: 6px;
	margin-bottom: 8px;
}
.bjm-popup-form input {
	flex: 1;
	min-width: 0;
	padding: 12px 14px;
	border: 1.5px solid var(--line);
	border-radius: 10px;
	font-size: 0.95rem;
	font-family: inherit;
	color: var(--ink);
	outline: none;
}
.bjm-popup-form input:focus { border-color: var(--ocean); }
.bjm-popup-form button {
	background: var(--coral);
	color: white;
	border: none;
	padding: 0 18px;
	border-radius: 10px;
	font-weight: 700;
	font-family: inherit;
	font-size: 0.9rem;
	cursor: pointer;
	white-space: nowrap;
}
.bjm-popup-form button:hover { background: var(--coral-deep, #d04a2f); }

.bjm-popup-cta {
	display: block;
	width: 100%;
	background: var(--coral);
	color: white;
	border: none;
	padding: 14px;
	border-radius: 10px;
	font-weight: 700;
	font-family: inherit;
	font-size: 1rem;
	cursor: pointer;
	text-align: center;
	text-decoration: none;
	box-sizing: border-box;
}
.bjm-popup-cta:hover { background: var(--coral-deep, #d04a2f); color: white; }

.bjm-popup-fineprint {
	font-size: 0.74rem;
	color: var(--ink-mute);
	text-align: center;
	margin: 8px 0 0;
}

.bjm-popup-success {
	text-align: center;
	padding: 20px 0;
}
.bjm-popup-success .bjm-popup-emoji { color: #0d4a2c; }

/* ============================================================
 * v1.8.7 — App-launcher style tray (Tours / Cars / Transfers / Help)
 * ============================================================ */

.app-tray-wrap {
	background: linear-gradient(180deg, #fbf7f1 0%, #f5ecdb 100%);
	padding: 28px 0 32px;
	border-bottom: 1px solid var(--line);
}

.app-tray {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
	max-width: 720px;
	margin: 0 auto;
}

.app-tile {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 6px;
	padding: 18px 10px 16px;
	background: white;
	border-radius: 18px;
	border: 1px solid rgba(14, 110, 122, 0.06);
	text-decoration: none;
	color: var(--ink);
	transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
	box-shadow: 0 2px 8px rgba(8, 65, 73, 0.04);
}

.app-tile:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 24px rgba(8, 65, 73, 0.12);
}

.app-tile-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 16px;
	margin-bottom: 4px;
	background: var(--ocean-soft);
	color: var(--ocean);
	transition: transform 0.2s ease, background 0.2s ease;
}

.app-tile:hover .app-tile-icon {
	transform: scale(1.06);
}

.app-tile--tours .app-tile-icon { background: #d6ecdb; color: #0d6b3a; }
.app-tile--cars .app-tile-icon { background: #fef0e8; color: #c34a32; }
.app-tile--transfers .app-tile-icon { background: #fff5d4; color: #a8771a; }
.app-tile--help .app-tile-icon { background: #e8f5ee; color: #0d4a2c; }

.app-tile-label {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 0.98rem;
	color: var(--ink);
	letter-spacing: -0.005em;
}

.app-tile-sub {
	font-size: 0.74rem;
	color: var(--ink-mute);
	letter-spacing: 0.01em;
}

@media (max-width: 720px) {
	.app-tray-wrap { padding: 22px 0 26px; }
	.app-tray { gap: 10px; padding: 0 16px; }
	.app-tile { padding: 14px 6px 12px; border-radius: 14px; }
	.app-tile-icon { width: 48px; height: 48px; border-radius: 13px; }
	.app-tile-label { font-size: 0.86rem; }
	.app-tile-sub { font-size: 0.68rem; }
}

@media (max-width: 480px) {
	.app-tile-sub { display: none; }
	.app-tile { padding: 12px 6px 14px; gap: 8px; }
}

/* ============================================================
 * v1.8.6 — Mobile bottom navigation (sticky tab bar)
 * ============================================================ */

.bottom-nav {
	display: none;
}

@media (max-width: 720px) {
	.bottom-nav {
		display: flex;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		background: rgba(255, 255, 255, 0.96);
		backdrop-filter: saturate(140%) blur(12px);
		-webkit-backdrop-filter: saturate(140%) blur(12px);
		border-top: 1px solid var(--line);
		z-index: 80;
		padding: 6px 0 calc(6px + env(safe-area-inset-bottom, 0px));
		justify-content: space-around;
		align-items: stretch;
	}

	.bn-item {
		flex: 1;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 2px;
		padding: 6px 2px 4px;
		text-decoration: none;
		color: var(--ink-mute);
		font-size: 10px;
		font-weight: 600;
		letter-spacing: 0.02em;
		transition: color 0.15s ease, transform 0.15s ease;
		min-height: 48px;
	}

	.bn-item:active {
		transform: scale(0.94);
	}

	.bn-item span {
		line-height: 1;
		margin-top: 1px;
	}

	.bn-item svg {
		display: block;
	}

	.bn-item.active,
	.bn-item:hover {
		color: var(--ocean);
	}

	.bn-item.active::before {
		content: "";
		position: absolute;
		top: 0;
		width: 28px;
		height: 3px;
		background: var(--ocean);
		border-radius: 0 0 4px 4px;
	}

	/* When bottom nav is visible, push body content up so footer + last
	 * elements aren't hidden behind it. */
	body {
		padding-bottom: 64px;
	}

	/* Hide bottom nav when drawer is open — they'd compete for fixed positioning */
	body.drawer-open .bottom-nav {
		display: none;
	}
}

/* ============================================================
 * v1.8.9 — Browse by Parish: horizontal carousel on mobile
 * ============================================================ */

@media (max-width: 720px) {
	.parish-grid.parish-grid-carousel {
		display: flex;
		grid-template-columns: none;
		gap: 12px;
		overflow-x: auto;
		overflow-y: hidden;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		padding: 4px 24px 6px;
		margin: 0 -24px;
		scroll-padding-left: 24px;
	}
	.parish-grid.parish-grid-carousel::-webkit-scrollbar { display: none; }
	.parish-grid.parish-grid-carousel > .parish-card {
		flex: 0 0 44%;
		max-width: 44%;
		scroll-snap-align: start;
		min-height: 100px;
	}
}

/* ============================================================
 * v1.9.0 — Car detail page
 * ============================================================ */

.car-detail-hero {
	padding: 32px 0 80px;
	background: linear-gradient(180deg, var(--cream, #f5ecdb) 0%, white 220px);
}

.cd-grid {
	display: grid;
	grid-template-columns: 1fr 360px;
	grid-template-areas:
		"gallery booking"
		"meta booking";
	gap: 28px;
}
@media (max-width: 880px) {
	.cd-grid {
		grid-template-columns: 1fr;
		grid-template-areas: "gallery" "meta" "booking";
		gap: 22px;
	}
}

.cd-gallery { grid-area: gallery; }
.cd-meta    { grid-area: meta; }
.cd-booking-box { grid-area: booking; }

.cd-hero-img {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border-radius: 14px;
	display: block;
}

.cd-thumbs {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 8px;
	margin-top: 8px;
}
.cd-thumbs img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 8px;
	cursor: pointer;
	transition: opacity 0.15s ease;
}
.cd-thumbs img:hover { opacity: 0.85; }

.cd-name {
	font-family: var(--font-display);
	font-size: clamp(1.6rem, 4vw, 2.2rem);
	font-weight: 600;
	margin: 0 0 6px;
	color: var(--ink);
	letter-spacing: -0.01em;
}
.cd-operator {
	color: var(--ink-mute);
	margin: 0 0 18px;
	font-size: 0.95rem;
}
.cd-operator a { color: var(--ocean); text-decoration: none; }

.cd-specs {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 22px;
}
.cd-spec {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: white;
	border: 1px solid var(--line);
	padding: 8px 14px;
	border-radius: 99px;
	font-size: 0.86rem;
	color: var(--ink);
}
.cd-spec-icon { font-size: 1rem; }

.cd-description {
	color: var(--ink);
	line-height: 1.7;
	font-size: 0.98rem;
	margin: 0 0 22px;
}

.cd-section-title {
	font-family: var(--font-display);
	font-size: 1.2rem;
	font-weight: 600;
	margin: 24px 0 12px;
	color: var(--ink);
}

.cd-features {
	list-style: none;
	padding: 0;
	margin: 0 0 22px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 6px 18px;
	color: var(--ink);
	font-size: 0.92rem;
}
@media (max-width: 600px) {
	.cd-features { grid-template-columns: 1fr; }
}

.cd-tier-table {
	width: 100%;
	max-width: 380px;
	border-collapse: collapse;
	margin-bottom: 22px;
}
.cd-tier-table td {
	padding: 8px 12px;
	border-bottom: 1px solid var(--line);
	font-size: 0.9rem;
	color: var(--ink);
}
.cd-tier-table td:first-child { color: var(--ink-mute); }
.cd-tier-table td:last-child { text-align: right; }

.cd-locations {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	margin-bottom: 22px;
}
@media (max-width: 600px) {
	.cd-locations { grid-template-columns: 1fr; }
}
.cd-location {
	background: white;
	border: 1px solid var(--line);
	border-radius: 10px;
	padding: 12px 14px;
	font-size: 0.88rem;
	color: var(--ink);
}
.cd-loc-badge {
	display: inline-block;
	background: var(--ocean-soft);
	color: var(--ocean);
	font-size: 0.72rem;
	padding: 2px 8px;
	border-radius: 99px;
	margin-left: 4px;
}
.cd-loc-addr {
	color: var(--ink-mute);
	font-size: 0.78rem;
	margin-top: 4px;
}

.cd-deposit-note {
	background: #f0f9fa;
	border-left: 4px solid var(--ocean);
	padding: 12px 14px;
	border-radius: 6px;
	margin: 22px 0;
	font-size: 0.88rem;
	color: var(--ink);
}

/* Booking box (sticky on desktop) */
.cd-booking-box {
	background: white;
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 20px;
	box-shadow: 0 6px 20px rgba(8, 65, 73, 0.06);
	position: sticky;
	top: 88px;
	height: fit-content;
}
@media (max-width: 880px) {
	.cd-booking-box { position: static; }
}

.cd-price-row {
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin-bottom: 4px;
}
.cd-price-from { color: var(--ink-mute); font-size: 0.84rem; }
.cd-price-amt {
	font-family: var(--font-display);
	font-size: 1.8rem;
	font-weight: 600;
	color: var(--ink);
}
.cd-price-unit { color: var(--ink-mute); font-size: 0.92rem; }

.cd-tier-hint {
	font-size: 0.78rem;
	color: var(--ocean);
	margin: 0 0 14px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--line);
}

.cd-book-form .cd-row {
	display: flex;
	gap: 10px;
	margin-bottom: 12px;
}
.cd-book-form .cd-field {
	flex: 1;
	margin-bottom: 12px;
}
.cd-book-form label {
	display: block;
	font-size: 0.78rem;
	font-weight: 600;
	color: var(--ink-mute);
	margin-bottom: 4px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.cd-book-form input[type="date"],
.cd-book-form input[type="time"],
.cd-book-form select {
	width: 100%;
	padding: 10px 12px;
	border: 1.5px solid var(--line);
	border-radius: 8px;
	font-size: 0.92rem;
	font-family: inherit;
	background: white;
	color: var(--ink);
	box-sizing: border-box;
}
.cd-book-form input:focus,
.cd-book-form select:focus {
	outline: none;
	border-color: var(--ocean);
}

.cd-extras {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-top: 4px;
}
.cd-check {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 0.86rem;
	color: var(--ink);
	cursor: pointer;
	padding: 6px 8px;
	border-radius: 6px;
	transition: background 0.15s ease;
}
.cd-check:hover { background: #f0f9fa; }
.cd-check input { margin-top: 3px; flex-shrink: 0; accent-color: var(--ocean); }

.cd-book-btn {
	width: 100%;
	background: var(--coral);
	color: white;
	border: none;
	padding: 14px;
	border-radius: 10px;
	font-size: 1rem;
	font-weight: 700;
	font-family: inherit;
	cursor: pointer;
	margin-top: 8px;
	transition: background 0.15s ease;
}
.cd-book-btn:hover { background: var(--coral-deep, #d04a2f); }

.cd-fineprint {
	font-size: 0.74rem;
	color: var(--ink-mute);
	margin: 8px 0 0;
	text-align: center;
}

/* ============================================================
 * v1.9.1 — Detail-page review block (tour + car detail pages)
 * ============================================================ */

.detail-reviews {
	margin: 28px 0 12px;
}
.detail-reviews .cd-section-title,
.detail-reviews h2 {
	margin: 0 0 12px;
}
.dr-aggregate {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: white;
	padding: 10px 18px;
	border-radius: 100px;
	border: 1px solid var(--line);
	box-shadow: 0 2px 8px rgba(8, 65, 73, 0.04);
	font-size: 0.9rem;
	color: var(--ink);
}
.dr-stars { color: #f5b800; letter-spacing: -1px; }
.dr-count { color: var(--ink-mute); }

/* ============================================================
 * v1.9.3 — Pre-launch polish
 * ============================================================ */

/* ---------- Modern selects (car detail booking box) ---------- */

.cd-book-form select {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%230e6e7a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m3 5 3 3 3-3'/%3e%3c/svg%3e");
	background-repeat: no-repeat;
	background-position: right 14px center;
	padding-right: 36px;
	cursor: pointer;
	font-weight: 500;
}
.cd-book-form select:hover {
	border-color: var(--ocean);
}
.cd-book-form input[type="date"],
.cd-book-form input[type="time"] {
	cursor: pointer;
}

/* ---------- Hide breadcrumbs on detail pages ---------- */

.tour-page .breadcrumbs,
.car-detail-hero ~ * .breadcrumbs,
body.single-tour .breadcrumbs,
.cd-grid + .breadcrumbs,
.car-detail-hero .breadcrumbs {
	display: none;
}

/* Hide breadcrumb wherever it appears on detail-style pages */
.detail-no-breadcrumb .breadcrumbs,
.cars-detail-page .breadcrumbs,
.tour-detail-page .breadcrumbs {
	display: none !important;
}

/* ---------- Section variations: alternating backgrounds ---------- */

.section-bg-cream {
	background: var(--cream, #f5ecdb);
	max-width: none !important;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	padding: 56px 24px;
}
.section-bg-paper {
	background: var(--paper, #fbf7f1);
	max-width: none !important;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	padding: 56px 24px;
}
.section-bg-ocean-soft {
	background: linear-gradient(180deg, white 0%, var(--ocean-soft) 100%);
	max-width: none !important;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	padding: 56px 24px;
}
.section-bg-cream > .section-head,
.section-bg-cream > .tour-grid,
.section-bg-cream > .carousel-hint,
.section-bg-paper > .section-head,
.section-bg-paper > .tour-grid,
.section-bg-paper > .carousel-hint,
.section-bg-ocean-soft > .section-head,
.section-bg-ocean-soft > .tour-grid,
.section-bg-ocean-soft > .carousel-hint {
	max-width: 1240px;
	margin-left: auto;
	margin-right: auto;
}

/* ---------- Hero "Trips guests rave about" — wow treatment ---------- */

.wow-section {
	padding: 80px 0 90px;
	background: linear-gradient(135deg, #094d29 0%, #0d6b3a 100%);
	color: white;
	max-width: none !important;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	position: relative;
	overflow: hidden;
}
.wow-section::before {
	content: "";
	position: absolute;
	top: -50%;
	right: -10%;
	width: 600px;
	height: 600px;
	background: radial-gradient(circle, rgba(232, 99, 74, 0.18) 0%, transparent 65%);
	pointer-events: none;
}
.wow-section::after {
	content: "";
	position: absolute;
	bottom: -50%;
	left: -10%;
	width: 500px;
	height: 500px;
	background: radial-gradient(circle, rgba(245, 184, 0, 0.10) 0%, transparent 65%);
	pointer-events: none;
}
.wow-section .container {
	position: relative;
	z-index: 1;
	max-width: 1140px;
}
.wow-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: rgba(255, 255, 255, 0.12);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	padding: 8px 16px;
	border-radius: 100px;
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #f5b800;
	margin-bottom: 16px;
}
.wow-section h2 {
	font-family: var(--font-display);
	font-size: clamp(1.8rem, 5vw, 2.8rem);
	font-weight: 600;
	margin: 0 0 8px;
	color: white;
	letter-spacing: -0.015em;
	max-width: 720px;
}
.wow-section .wow-sub {
	color: rgba(255, 255, 255, 0.78);
	font-size: 1.05rem;
	margin: 0 0 36px;
	max-width: 560px;
}

.wow-tour-card {
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	background: white;
	border-radius: 22px;
	overflow: hidden;
	box-shadow: 0 30px 80px rgba(0, 0, 0, 0.35);
	max-width: 1080px;
	margin: 0 auto;
	color: var(--ink);
}
@media (max-width: 768px) {
	.wow-tour-card {
		grid-template-columns: 1fr;
	}
}

.wow-tour-img {
	position: relative;
	overflow: hidden;
	min-height: 300px;
}
.wow-tour-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	min-height: 300px;
}
.wow-tour-img::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(8, 65, 73, 0.0) 50%, rgba(8, 65, 73, 0.25) 100%);
}
.wow-tour-img-badge {
	position: absolute;
	top: 18px;
	left: 18px;
	background: var(--coral);
	color: white;
	padding: 6px 14px;
	border-radius: 100px;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	z-index: 2;
}

.wow-tour-body {
	padding: 36px 36px 32px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
@media (max-width: 768px) {
	.wow-tour-body {
		padding: 28px 24px 26px;
	}
}

.wow-rating {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 14px;
	color: var(--ink);
	font-size: 0.9rem;
}
.wow-rating .stars {
	color: #f5b800;
	font-size: 1.1rem;
	letter-spacing: -1px;
}
.wow-rating strong {
	font-weight: 700;
}
.wow-rating .reviews {
	color: var(--ink-mute);
}

.wow-tour-card h3 {
	font-family: var(--font-display);
	font-size: clamp(1.3rem, 3vw, 1.7rem);
	font-weight: 600;
	margin: 0 0 10px;
	color: var(--ink);
	line-height: 1.2;
	letter-spacing: -0.01em;
}
.wow-tour-card .wow-desc {
	color: var(--ink-mute);
	font-size: 0.95rem;
	line-height: 1.6;
	margin: 0 0 20px;
}
.wow-tour-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 24px;
	font-size: 0.85rem;
	color: var(--ink);
}
.wow-tour-meta .item {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.wow-tour-cta {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
}
.wow-price-block .from {
	font-size: 0.78rem;
	color: var(--ink-mute);
}
.wow-price-block .amount {
	font-family: var(--font-display);
	font-size: 1.7rem;
	font-weight: 600;
	color: var(--ink);
	letter-spacing: -0.01em;
}
.wow-cta-btn {
	background: var(--coral);
	color: white;
	border: none;
	padding: 14px 26px;
	border-radius: 100px;
	font-weight: 700;
	font-size: 0.95rem;
	font-family: inherit;
	cursor: pointer;
	text-decoration: none;
	display: inline-block;
	transition: transform 0.15s ease, background 0.15s ease;
}
.wow-cta-btn:hover {
	background: var(--coral-deep, #d04a2f);
	transform: translateY(-1px);
	color: white;
}

/* ---------- Sticky "Book now" bar on detail pages ---------- */

.sticky-book-bar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(255, 255, 255, 0.98);
	backdrop-filter: saturate(150%) blur(12px);
	-webkit-backdrop-filter: saturate(150%) blur(12px);
	border-top: 1px solid var(--line);
	box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.06);
	padding: 12px 18px calc(12px + env(safe-area-inset-bottom, 0px));
	z-index: 70;
	display: none;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
}
.sticky-book-bar .sb-price {
	display: flex;
	flex-direction: column;
	min-width: 0;
}
.sticky-book-bar .sb-price .from {
	font-size: 0.7rem;
	color: var(--ink-mute);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.sticky-book-bar .sb-price .amount {
	font-family: var(--font-display);
	font-size: 1.3rem;
	font-weight: 700;
	color: var(--ink);
	line-height: 1;
}
.sticky-book-bar .sb-price .unit {
	font-size: 0.8rem;
	color: var(--ink-mute);
}
.sticky-book-bar .sb-cta {
	background: var(--coral);
	color: white;
	border: none;
	padding: 14px 24px;
	border-radius: 100px;
	font-weight: 700;
	font-size: 0.95rem;
	font-family: inherit;
	cursor: pointer;
	text-decoration: none;
	white-space: nowrap;
	flex-shrink: 0;
}
.sticky-book-bar .sb-cta:hover {
	background: var(--coral-deep, #d04a2f);
	color: white;
}

/* Show sticky bar after the user has scrolled past the main booking widget.
 * Triggered by class on body via JS. */
body.sb-active .sticky-book-bar {
	display: flex;
}

/* If bottom-nav is also showing on mobile, lift sticky-book-bar above it */
@media (max-width: 720px) {
	body.sb-active .sticky-book-bar {
		bottom: 64px;
	}
	body.sb-active .bottom-nav {
		display: none; /* Sticky book takes over while on detail pages */
	}
}

/* Hide sticky bar at the very bottom when footer comes into view */
body.sb-near-bottom .sticky-book-bar {
	display: none;
}

/* ---------- Hide check-availability buttons (replaced by sticky bar + card click) ---------- */

.tour-card .btn-availability {
	display: none;
}
.tour-card .tour-card-footer {
	justify-content: flex-start;
}
.tour-card .tour-price {
	flex: 1;
}

/* ---------- Tour gallery: show multiple images like cars ---------- */

.tour-gallery-grid {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 6px;
	border-radius: 14px;
	overflow: hidden;
	max-height: 460px;
}
.tour-gallery-grid img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	cursor: pointer;
	transition: opacity 0.15s ease;
}
.tour-gallery-grid img:hover { opacity: 0.92; }
.tour-gallery-grid > .tg-main {
	grid-row: span 2;
}
@media (max-width: 720px) {
	.tour-gallery-grid {
		grid-template-columns: 1fr;
		grid-template-rows: auto;
		max-height: none;
	}
	.tour-gallery-grid > .tg-main { grid-row: auto; }
	.tour-gallery-grid > :not(.tg-main) { display: none; }
}

/* ---------- New homepage hero CTA strip (replaces app tray) ---------- */

.hero-cta-strip {
	background: white;
	border-radius: 18px;
	padding: 4px;
	display: flex;
	gap: 4px;
	max-width: 720px;
	margin: -32px auto 0;
	box-shadow: 0 12px 40px rgba(8, 65, 73, 0.10), 0 2px 8px rgba(8, 65, 73, 0.06);
	position: relative;
	z-index: 5;
}
@media (max-width: 600px) {
	.hero-cta-strip {
		flex-direction: column;
		max-width: 92%;
		padding: 8px;
		gap: 6px;
	}
}

.hero-cta-tile {
	flex: 1;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 16px 18px;
	border-radius: 14px;
	text-decoration: none;
	color: var(--ink);
	transition: background 0.15s ease, transform 0.15s ease;
	font-weight: 600;
	min-width: 0;
}
.hero-cta-tile:hover {
	background: var(--cream);
	transform: translateY(-1px);
}
.hero-cta-icon {
	width: 38px;
	height: 38px;
	border-radius: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	font-size: 1.2rem;
}
.hero-cta-tile--tours .hero-cta-icon { background: var(--ocean-soft); color: var(--ocean); }
.hero-cta-tile--cars .hero-cta-icon { background: #fef0e8; color: #c34a32; }
.hero-cta-tile--transfers .hero-cta-icon { background: #fff5d4; color: #a8771a; }
.hero-cta-text {
	display: flex;
	flex-direction: column;
	min-width: 0;
}
.hero-cta-text .label {
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--ink);
	line-height: 1.1;
}
.hero-cta-text .sub {
	font-size: 0.75rem;
	color: var(--ink-mute);
	font-weight: 500;
	margin-top: 2px;
}

/* ============================================================
 * v1.9.4 — Full-bleed tour gallery hero (autoplay carousel)
 * ============================================================ */

.tour-hero-carousel {
	position: relative;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-bottom: 32px;
	height: clamp(360px, 56vh, 580px);
	overflow: hidden;
	background: var(--ocean-deep);
	user-select: none;
}

.thc-track {
	display: flex;
	height: 100%;
	transition: transform 0.55s cubic-bezier(0.4, 0, 0.2, 1);
	will-change: transform;
}

.thc-slide {
	flex: 0 0 100%;
	height: 100%;
	min-width: 100%;
	position: relative;
}

.thc-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.thc-slide::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,0) 60%, rgba(8, 65, 73, 0.3) 100%);
	pointer-events: none;
}

/* Arrows */
.thc-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.92);
	border: none;
	color: var(--ink);
	font-size: 1.6rem;
	font-weight: 600;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 4px 12px rgba(0,0,0,0.18);
	z-index: 2;
	transition: background 0.15s ease, transform 0.15s ease;
}
.thc-arrow:hover {
	background: white;
	transform: translateY(-50%) scale(1.05);
}
.thc-prev { left: 24px; }
.thc-next { right: 24px; }

@media (max-width: 720px) {
	.thc-arrow { width: 38px; height: 38px; font-size: 1.3rem; }
	.thc-prev { left: 12px; }
	.thc-next { right: 12px; }
}

/* Dots */
.thc-dots {
	position: absolute;
	bottom: 22px;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	gap: 8px;
	z-index: 2;
}
.thc-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	border: none;
	background: rgba(255, 255, 255, 0.5);
	cursor: pointer;
	padding: 0;
	transition: background 0.15s ease, width 0.2s ease;
}
.thc-dot.active {
	background: white;
	width: 22px;
	border-radius: 100px;
}

/* Counter pill */
.thc-counter {
	position: absolute;
	bottom: 22px;
	right: 24px;
	background: rgba(0, 0, 0, 0.45);
	color: white;
	padding: 6px 12px;
	border-radius: 100px;
	font-size: 0.78rem;
	font-weight: 600;
	z-index: 2;
}

@media (max-width: 720px) {
	.thc-counter { bottom: 14px; right: 12px; font-size: 0.72rem; }
	.thc-dots { bottom: 14px; }
}

/* Padding fix between gallery and best-seller pills */
.tour-detail .tour-layout {
	padding-top: 12px;
}
.tour-detail .tour-tags {
	margin-top: 8px;
}

/* ============================================================
 * v1.9.4 — Background warmth refresh
 * Subtle sectional variation. Keep teal as accent.
 * ============================================================ */

body {
	background: linear-gradient(180deg, #fdfaf3 0%, var(--paper) 320px) fixed;
}

/* Soften section-on-cream so it doesn't look stark */
.section-on-cream {
	background: linear-gradient(180deg, var(--paper-warm) 0%, #f0e6d2 100%);
}

/* ============================================================
 * v1.9.4 — Urgency tags + trust badges + hero search
 * ============================================================ */

/* Urgency tag — coral, bold, attention-grabbing */
.tag.tag-urgency {
	background: var(--coral);
	color: white;
	font-weight: 700;
	border: none;
}
.tag.tag-urgency-soft {
	background: rgba(232, 99, 74, 0.15);
	color: var(--coral-deep);
	font-weight: 600;
	border: 1px solid rgba(232, 99, 74, 0.3);
}

/* Trust pills — small, muted, sit below title */
.tour-card-trust {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 6px 0 8px;
}
.trust-pill {
	font-size: 0.72rem;
	color: #4a7c4a;
	background: rgba(74, 124, 74, 0.08);
	padding: 3px 9px;
	border-radius: 100px;
	font-weight: 600;
	white-space: nowrap;
	letter-spacing: 0.01em;
}

@media (max-width: 720px) {
	.trust-pill { font-size: 0.7rem; padding: 2px 8px; }
}

/* Hero search bar */
.hero-search-wrap {
	max-width: 720px;
	margin: 18px auto 0;
	padding: 0 16px;
	position: relative;
	z-index: 4;
}
.hero-search {
	display: flex;
	background: white;
	border-radius: 100px;
	padding: 6px;
	box-shadow: 0 12px 36px rgba(8, 65, 73, 0.15), 0 2px 8px rgba(8, 65, 73, 0.08);
	align-items: center;
	gap: 4px;
}
.hero-search input {
	flex: 1;
	border: none;
	outline: none;
	background: transparent;
	padding: 12px 18px;
	font-family: inherit;
	font-size: 0.95rem;
	color: var(--ink);
	min-width: 0;
}
.hero-search input::placeholder { color: var(--ink-mute); }
.hero-search button {
	background: var(--coral);
	color: white;
	border: none;
	padding: 12px 22px;
	border-radius: 100px;
	font-family: inherit;
	font-size: 0.92rem;
	font-weight: 700;
	cursor: pointer;
	white-space: nowrap;
	flex-shrink: 0;
	transition: background 0.15s ease;
}
.hero-search button:hover { background: var(--coral-deep); }

@media (max-width: 480px) {
	.hero-search input { padding: 10px 14px; font-size: 0.9rem; }
	.hero-search button { padding: 10px 16px; font-size: 0.85rem; }
}

/* Autocomplete dropdown */
.hero-search-suggest {
	position: absolute;
	top: calc(100% + 8px);
	left: 16px;
	right: 16px;
	background: white;
	border-radius: 14px;
	box-shadow: 0 16px 48px rgba(8, 65, 73, 0.2);
	max-height: 360px;
	overflow-y: auto;
	display: none;
	z-index: 50;
	border: 1px solid var(--line);
}
.hero-search-suggest.show { display: block; }
.hss-item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 14px;
	cursor: pointer;
	border-bottom: 1px solid #f5ecdb;
	color: var(--ink);
	text-decoration: none;
	transition: background 0.1s ease;
}
.hss-item:last-child { border-bottom: none; }
.hss-item:hover, .hss-item.active { background: var(--paper-warm); }
.hss-thumb {
	width: 44px;
	height: 44px;
	border-radius: 8px;
	object-fit: cover;
	flex-shrink: 0;
	background: var(--paper-warm);
}
.hss-meta {
	flex: 1;
	min-width: 0;
}
.hss-title {
	font-size: 0.92rem;
	font-weight: 600;
	margin: 0 0 2px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.hss-sub {
	font-size: 0.78rem;
	color: var(--ink-mute);
}

/* ============================================================
 * v1.9.4 — /list-your-tours/ page styling
 * ============================================================ */

.lyt-steps {
	padding-left: 0;
	list-style: none;
	counter-reset: lyt-step;
	max-width: 720px;
}
.lyt-steps li {
	counter-increment: lyt-step;
	padding: 16px 16px 16px 64px;
	margin-bottom: 12px;
	background: white;
	border: 1px solid var(--line);
	border-radius: 12px;
	position: relative;
	line-height: 1.6;
	color: var(--ink);
}
.lyt-steps li::before {
	content: counter(lyt-step);
	position: absolute;
	left: 16px;
	top: 14px;
	width: 36px;
	height: 36px;
	background: var(--ocean);
	color: white;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 1rem;
}

.lyt-pricing {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 24px;
	margin: 14px 0;
}
@media (max-width: 720px) {
	.lyt-pricing { grid-template-columns: 1fr; }
}

.lyt-price-card {
	background: white;
	border: 2px solid var(--ocean-soft);
	border-radius: 14px;
	padding: 24px 26px;
}
.lyt-price-card h3 {
	font-family: var(--font-display);
	font-size: 1.3rem;
	font-weight: 600;
	margin: 0 0 16px;
	color: var(--ocean-deep);
}
.lyt-price-row {
	display: flex;
	justify-content: space-between;
	padding: 10px 0;
	border-bottom: 1px solid var(--line);
	font-size: 0.95rem;
}
.lyt-price-row:last-of-type { border-bottom: none; }
.lyt-price-row strong { color: var(--ink); font-weight: 700; }
.lyt-price-row.lyt-highlight {
	background: linear-gradient(90deg, var(--ocean-soft) 0%, transparent 100%);
	margin: 4px -26px 0;
	padding: 14px 26px;
	border: none;
	border-radius: 0 0 14px 14px;
}
.lyt-price-row.lyt-highlight strong { color: var(--ocean-deep); font-size: 1.15rem; }
.lyt-fineprint {
	font-size: 0.78rem;
	color: var(--ink-mute);
	margin: 14px 0 0;
	line-height: 1.5;
}

.lyt-callout {
	background: linear-gradient(135deg, #fff8eb 0%, #fef0e8 100%);
	border: 1px solid var(--gold);
	border-radius: 14px;
	padding: 24px 26px;
	align-self: start;
}
.lyt-callout h4 {
	font-family: var(--font-display);
	font-size: 1.05rem;
	font-weight: 600;
	margin: 0 0 10px;
	color: #a8771a;
}
.lyt-callout p {
	margin: 0;
	font-size: 0.92rem;
	color: var(--ink);
	line-height: 1.6;
}

.lyt-benefits {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	margin: 14px 0;
}
@media (max-width: 720px) {
	.lyt-benefits { grid-template-columns: 1fr; }
}
.lyt-benefit {
	background: white;
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 18px 20px;
	color: var(--ink);
	font-size: 0.92rem;
	line-height: 1.6;
}
.lyt-benefit strong {
	color: var(--ocean-deep);
	display: block;
	margin-bottom: 4px;
}

.lyt-faq {
	max-width: 760px;
}
.lyt-faq details {
	background: white;
	border: 1px solid var(--line);
	border-radius: 10px;
	margin-bottom: 8px;
	overflow: hidden;
}
.lyt-faq summary {
	padding: 14px 18px;
	cursor: pointer;
	font-weight: 600;
	color: var(--ink);
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.lyt-faq summary::after {
	content: "+";
	font-size: 1.4rem;
	font-weight: 300;
	color: var(--ocean);
	transition: transform 0.2s ease;
}
.lyt-faq details[open] summary::after { transform: rotate(45deg); }
.lyt-faq details > p {
	padding: 0 18px 16px;
	margin: 0;
	color: var(--ink-soft);
	line-height: 1.7;
	font-size: 0.92rem;
}

.lyt-cta-block {
	text-align: center;
	margin: 24px 0 12px;
}
.lyt-apply-btn {
	display: inline-block;
	background: var(--coral);
	color: white !important;
	padding: 14px 32px;
	border-radius: 100px;
	font-weight: 700;
	text-decoration: none;
	transition: background 0.15s ease, transform 0.15s ease;
	font-size: 1rem;
}
.lyt-apply-btn:hover {
	background: var(--coral-deep);
	transform: translateY(-1px);
}

/* ============================================================
 * v1.9.15 — Car detail polish ("make it sexier")
 * ============================================================ */

/* Hero image — rounded, lifted, with subtle gradient at bottom for depth */
.cd-hero-img {
	border-radius: 18px !important;
	box-shadow: 0 24px 60px -12px rgba(8, 65, 73, 0.25);
	transition: transform 0.4s ease;
}

/* Thumbnails — softer, more elegant */
.cd-thumbs {
	gap: 10px !important;
	margin-top: 12px !important;
}
.cd-thumbs img {
	border-radius: 12px !important;
	box-shadow: 0 4px 12px rgba(0,0,0,0.08);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.cd-thumbs img:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 18px rgba(0,0,0,0.12);
	opacity: 1 !important;
}

/* Car name — larger, more confident */
.cd-name {
	font-size: clamp(1.9rem, 4.5vw, 2.6rem) !important;
	font-weight: 700 !important;
	line-height: 1.05 !important;
	letter-spacing: -0.02em !important;
	margin-bottom: 10px !important;
}

/* Operator name with verified badge feel */
.cd-operator {
	font-size: 1rem !important;
	margin-bottom: 22px !important;
}
.cd-operator a {
	font-weight: 700 !important;
	border-bottom: 2px solid transparent;
	transition: border-color 0.15s ease;
}
.cd-operator a:hover {
	border-bottom-color: var(--ocean);
}

/* Trust pills row — sits right below operator, before specs */
.cd-trust-row {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 24px;
}
.cd-trust-pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: rgba(13, 107, 58, 0.08);
	color: #094d29;
	font-size: 0.84rem;
	font-weight: 600;
	padding: 6px 12px;
	border-radius: 100px;
	border: 1px solid rgba(13, 107, 58, 0.15);
}

/* Specs pills — softer, more spacing */
.cd-specs {
	gap: 8px !important;
	margin-bottom: 28px !important;
}
.cd-spec {
	background: white !important;
	border: 1px solid var(--line) !important;
	padding: 10px 14px !important;
	border-radius: 100px !important;
	font-size: 0.88rem !important;
	font-weight: 500 !important;
	box-shadow: 0 2px 4px rgba(0,0,0,0.02);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.cd-spec:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 10px rgba(0,0,0,0.06);
}

/* Description — better typography, real reading width */
.cd-description {
	font-size: 1rem !important;
	line-height: 1.75 !important;
	max-width: 64ch;
	margin-bottom: 32px !important;
}
.cd-description p:first-child::first-letter {
	font-size: 1.2em;
	font-weight: 600;
	color: var(--ink);
}

/* Section titles — more presence */
.cd-section-title {
	font-size: 1.35rem !important;
	font-weight: 700 !important;
	letter-spacing: -0.01em !important;
	margin: 32px 0 16px !important;
	position: relative;
	padding-left: 18px;
}
.cd-section-title::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 4px;
	height: 22px;
	background: var(--ocean);
	border-radius: 4px;
}

/* Features — more elegant grid */
.cd-features {
	gap: 10px 24px !important;
	font-size: 0.95rem !important;
}
.cd-features li {
	color: var(--ink-soft) !important;
	display: flex;
	align-items: center;
	gap: 8px;
}

/* Pricing tier table — cleaner, card-like */
.cd-tier-table {
	background: white;
	border: 1px solid var(--line);
	border-radius: 14px !important;
	overflow: hidden;
	box-shadow: 0 4px 12px rgba(0,0,0,0.04);
}
.cd-tier-table td {
	padding: 14px 18px !important;
	font-size: 0.95rem !important;
}
.cd-tier-table tr:last-child td {
	border-bottom: none !important;
}
.cd-tier-table tr:hover {
	background: var(--paper);
}

/* Pickup locations grid — card-style with subtle interactions */
.cd-locations {
	gap: 14px !important;
	margin-bottom: 28px !important;
}
.cd-location {
	background: white !important;
	border: 1px solid var(--line) !important;
	padding: 16px 18px !important;
	border-radius: 14px !important;
	box-shadow: 0 2px 8px rgba(0,0,0,0.03);
	transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}
.cd-location:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(0,0,0,0.08);
	border-color: var(--ocean-soft);
}
.cd-location strong {
	font-size: 1rem;
	display: block;
	margin-bottom: 4px;
	color: var(--ink);
}

/* Booking sidebar — more lift, more presence */
.cd-booking-box {
	border-radius: 18px !important;
	padding: 24px !important;
	box-shadow: 0 12px 32px rgba(8, 65, 73, 0.10), 0 2px 8px rgba(8, 65, 73, 0.05) !important;
	border: 1px solid rgba(13, 107, 58, 0.10) !important;
}
.cd-price-row {
	padding-bottom: 14px;
	margin-bottom: 16px !important;
	border-bottom: 1px solid var(--line);
}
.cd-price-amt {
	font-size: 2rem !important;
	font-weight: 700 !important;
	letter-spacing: -0.02em !important;
}
.cd-tier-hint {
	background: rgba(245, 184, 0, 0.10);
	color: #8a6a08;
	padding: 6px 10px !important;
	border-radius: 8px;
	border: 1px solid rgba(245, 184, 0, 0.25);
	border-bottom: 1px solid rgba(245, 184, 0, 0.25) !important;
	font-weight: 600;
	margin-bottom: 16px !important;
	padding-bottom: 6px !important;
}

/* Form labels — smaller and more pro */
.cd-book-form label {
	font-size: 0.7rem !important;
	letter-spacing: 0.06em !important;
}
.cd-book-form input[type="date"],
.cd-book-form input[type="time"],
.cd-book-form select {
	padding: 12px 14px !important;
	font-size: 0.95rem !important;
	border-radius: 10px !important;
	border-width: 1.5px !important;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.cd-book-form input:focus,
.cd-book-form select:focus {
	box-shadow: 0 0 0 3px rgba(13, 107, 58, 0.12);
}

/* Big CTA */
.cd-book-btn {
	padding: 16px !important;
	font-size: 1.05rem !important;
	border-radius: 12px !important;
	box-shadow: 0 6px 14px rgba(232, 99, 74, 0.25);
	transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
	letter-spacing: 0.01em;
}
.cd-book-btn:hover {
	transform: translateY(-1px);
	box-shadow: 0 10px 22px rgba(232, 99, 74, 0.35);
}

/* Deposit note — friendlier */
.cd-deposit-note {
	background: linear-gradient(135deg, rgba(13, 107, 58, 0.05) 0%, rgba(13, 107, 58, 0.02) 100%) !important;
	border-left-width: 4px !important;
	border-radius: 12px !important;
	padding: 16px 18px !important;
}

/* Mobile spacing tighter */
@media (max-width: 720px) {
	.car-detail-hero {
		padding: 16px 0 60px !important;
	}
	.cd-hero-img {
		border-radius: 14px !important;
	}
	.cd-name {
		font-size: 1.7rem !important;
	}
	.cd-section-title {
		font-size: 1.2rem !important;
		margin: 24px 0 12px !important;
	}
}

/* ============================================================
 * v1.10.0 — /list-your-tours/ subscription tier grid
 * ============================================================ */

.lyt-tier-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
	margin: 18px 0 12px;
}
@media (max-width: 880px) {
	.lyt-tier-grid { grid-template-columns: 1fr; }
}

.lyt-tier {
	position: relative;
	background: white;
	border: 1.5px solid var(--line);
	border-radius: 16px;
	padding: 28px 24px 26px;
	display: flex;
	flex-direction: column;
}

.lyt-tier-featured {
	border-color: var(--ocean);
	border-width: 2px;
	box-shadow: 0 12px 32px rgba(13, 107, 58, 0.12);
	transform: translateY(-4px);
}
@media (max-width: 880px) {
	.lyt-tier-featured { transform: none; }
}

.lyt-tier-badge {
	position: absolute;
	top: -12px;
	left: 50%;
	transform: translateX(-50%);
	background: var(--gold);
	color: #5c3d00;
	font-size: 0.78rem;
	font-weight: 700;
	padding: 5px 14px;
	border-radius: 100px;
	white-space: nowrap;
	box-shadow: 0 2px 6px rgba(0,0,0,0.12);
}

.lyt-tier-head h3 {
	font-family: var(--font-display);
	font-size: 1.4rem;
	font-weight: 700;
	margin: 0 0 4px;
	color: var(--ocean-deep);
}
.lyt-tier-tagline {
	font-size: 0.85rem;
	color: var(--ink-mute);
	margin: 0 0 18px;
	line-height: 1.4;
}

.lyt-tier-price {
	display: flex;
	align-items: baseline;
	gap: 6px;
	padding: 14px 0 10px;
	border-bottom: 1px solid var(--line);
	margin-bottom: 16px;
}
.lyt-tier-price .amt {
	font-family: var(--font-display);
	font-size: 2.4rem;
	font-weight: 700;
	color: var(--ink);
	letter-spacing: -0.03em;
}
.lyt-tier-price .cycle {
	font-size: 0.85rem;
	color: var(--ink-mute);
}

.lyt-tier-annual {
	font-size: 0.85rem;
	color: var(--ocean-deep);
	background: var(--ocean-soft);
	padding: 6px 12px;
	border-radius: 8px;
	margin: -10px 0 14px;
	display: inline-block;
}
.lyt-tier-annual strong { font-weight: 700; }

.lyt-tier-features {
	list-style: none;
	padding: 0;
	margin: 0;
	flex: 1;
}
.lyt-tier-features li {
	font-size: 0.92rem;
	color: var(--ink-soft);
	padding: 7px 0;
	line-height: 1.5;
}
.lyt-tier-features li strong { color: var(--ink); }

/* ============================================================
 * v1.10.4 — Home trust strip (replaces hero CTA tile strip)
 * Single-row value-prop bar that sits just below the hero.
 * ============================================================ */

.home-trust-strip {
	background: white;
	border-bottom: 1px solid var(--line);
	padding: 16px 0;
	position: relative;
	z-index: 4;
}
.home-trust-strip .container {
	max-width: var(--container);
}
.hts-row {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px 28px;
	align-items: center;
}
.hts-item {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 0.86rem;
	color: var(--ink-soft);
	line-height: 1.4;
}
.hts-item svg {
	color: var(--ocean);
	flex-shrink: 0;
}
.hts-item strong {
	color: var(--ink);
	font-weight: 600;
}

@media (max-width: 880px) {
	.hts-row { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
	.home-trust-strip { padding: 12px 0; }
	.hts-row { grid-template-columns: 1fr; gap: 8px; }
	.hts-item { font-size: 0.82rem; }
}

/* ============================================================
 * v1.10.7 — Iconic experiences grid (replaced Browse by Parish)
 * ============================================================ */

.iconic-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
}
@media (max-width: 880px) {
	.iconic-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
}
@media (max-width: 480px) {
	.iconic-grid { grid-template-columns: 1fr; }
}

.iconic-card {
	position: relative;
	display: block;
	aspect-ratio: 16 / 11;
	border-radius: 16px;
	overflow: hidden;
	text-decoration: none;
	color: white;
	cursor: pointer;
	box-shadow: 0 4px 12px rgba(0,0,0,0.08);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
@media (max-width: 480px) {
	.iconic-card { aspect-ratio: 21 / 10; }
}
.iconic-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 36px rgba(0,0,0,0.18);
}

/* Decorative SVG mark in the top-right of each card */
.iconic-card::before {
	content: "";
	position: absolute;
	top: 12px;
	right: 12px;
	width: 44px;
	height: 44px;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	opacity: 0.28;
	pointer-events: none;
}

/* Card-specific backgrounds — gradients with subtle pattern overlay */
.iconic-card--falls {
	background:
		radial-gradient(circle at 80% 20%, rgba(255,255,255,0.08) 0%, transparent 50%),
		linear-gradient(180deg, rgba(0,0,0,0) 20%, rgba(0,0,0,0.65) 100%),
		linear-gradient(135deg, #0d6b3a 0%, #094d29 100%);
}
.iconic-card--falls::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M6 3 v18 M10 3 v18 M14 3 v18 M18 3 v18'/><path d='M3 7 Q12 4 21 7'/><path d='M3 14 Q12 11 21 14'/></svg>");
}
.iconic-card--mountains {
	background:
		radial-gradient(circle at 80% 20%, rgba(255,255,255,0.06) 0%, transparent 50%),
		linear-gradient(180deg, rgba(0,0,0,0) 20%, rgba(0,0,0,0.7) 100%),
		linear-gradient(135deg, #2d4a3a 0%, #1a3024 100%);
}
.iconic-card--mountains::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M3 20 L9 8 L13 14 L17 6 L21 20 Z'/><circle cx='17' cy='5' r='2'/></svg>");
}
.iconic-card--river {
	background:
		radial-gradient(circle at 80% 20%, rgba(255,255,255,0.08) 0%, transparent 50%),
		linear-gradient(180deg, rgba(0,0,0,0) 20%, rgba(0,0,0,0.6) 100%),
		linear-gradient(135deg, #2a8a8f 0%, #146970 100%);
}
.iconic-card--river::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M3 8 Q7 5 12 8 T21 8'/><path d='M3 13 Q7 10 12 13 T21 13'/><path d='M3 18 Q7 15 12 18 T21 18'/></svg>");
}
.iconic-card--reggae {
	background:
		radial-gradient(circle at 80% 20%, rgba(255,255,255,0.08) 0%, transparent 50%),
		linear-gradient(180deg, rgba(0,0,0,0) 20%, rgba(0,0,0,0.7) 100%),
		linear-gradient(135deg, #b8401f 0%, #6b1e0a 100%);
}
.iconic-card--reggae::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><circle cx='6' cy='17' r='3'/><circle cx='18' cy='14' r='3'/><path d='M9 17 V5 L21 3 V14'/></svg>");
}
.iconic-card--beach {
	background:
		radial-gradient(circle at 80% 20%, rgba(255,255,255,0.12) 0%, transparent 50%),
		linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,0.55) 100%),
		linear-gradient(135deg, #f5b800 0%, #b8401f 100%);
}
.iconic-card--beach::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='4'/><path d='M12 2 v3 M12 19 v3 M22 12 h-3 M5 12 h-3 M19 5 l-2 2 M7 17 l-2 2 M19 19 l-2 -2 M7 7 l-2 -2'/></svg>");
}
.iconic-card--food {
	background:
		radial-gradient(circle at 80% 20%, rgba(255,255,255,0.06) 0%, transparent 50%),
		linear-gradient(180deg, rgba(0,0,0,0) 20%, rgba(0,0,0,0.7) 100%),
		linear-gradient(135deg, #6b3410 0%, #2d1606 100%);
}
.iconic-card--food::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M6 2 v10 a3 3 0 0 0 6 0 V2'/><path d='M9 2 v10 M16 2 v6 a2 2 0 0 0 4 0 V2'/><path d='M9 14 V22 M18 12 V22'/></svg>");
}

.iconic-card-inner {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 18px 20px;
	display: flex;
	flex-direction: column;
	gap: 3px;
}
.iconic-eyebrow {
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	opacity: 0.85;
}
.iconic-title {
	font-family: var(--font-display);
	font-size: 1.18rem;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.01em;
}
.iconic-cta {
	margin-top: 6px;
	font-size: 0.85rem;
	font-weight: 600;
	opacity: 0.92;
	transition: transform 0.2s ease;
}
.iconic-card:hover .iconic-cta {
	transform: translateX(4px);
}

/* Trust-strip "Ezy Web Pro" credit link */
.hts-link {
	color: var(--ocean);
	font-weight: 700;
	text-decoration: none;
	border-bottom: 1.5px solid transparent;
	transition: border-color 0.15s ease;
}
.hts-link:hover { border-bottom-color: var(--ocean); }

/* Footer powered-by line */
.footer-powered-by {
	opacity: 0.85;
}
.footer-powered-by a {
	color: var(--gold);
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: border-color 0.15s ease;
}
.footer-powered-by a:hover { border-bottom-color: var(--gold); }

/* ============================================================
 * v1.10.7 — Transfer request form (no system, mailto-based for v1)
 * ============================================================ */

.transfer-quote-form {
	background: white;
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 28px;
	max-width: 720px;
	box-shadow: 0 4px 16px rgba(0,0,0,0.04);
}
.transfer-quote-form .tqf-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	margin-bottom: 14px;
}
.transfer-quote-form .tqf-row:has(label:nth-child(3)) {
	grid-template-columns: 1fr 1fr 1fr;
}
@media (max-width: 540px) {
	.transfer-quote-form .tqf-row,
	.transfer-quote-form .tqf-row:has(label:nth-child(3)) {
		grid-template-columns: 1fr;
	}
}
.transfer-quote-form label {
	display: block;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--ink);
	margin-bottom: 14px;
}
.transfer-quote-form .req { color: var(--coral); }
.transfer-quote-form input,
.transfer-quote-form textarea {
	width: 100%;
	display: block;
	margin-top: 6px;
	padding: 10px 14px;
	font: inherit;
	font-size: 0.95rem;
	border: 1.5px solid var(--line);
	border-radius: 10px;
	background: var(--paper);
	transition: border-color 0.15s, box-shadow 0.15s;
}
.transfer-quote-form input:focus,
.transfer-quote-form textarea:focus {
	outline: none;
	border-color: var(--ocean);
	background: white;
	box-shadow: 0 0 0 3px rgba(13, 107, 58, 0.12);
}
.transfer-quote-form .tqf-submit {
	background: linear-gradient(135deg, var(--coral) 0%, var(--coral-deep) 100%);
	color: white;
	border: none;
	padding: 14px 32px;
	font: inherit;
	font-size: 1rem;
	font-weight: 700;
	border-radius: 100px;
	cursor: pointer;
	margin-top: 8px;
	box-shadow: 0 4px 12px rgba(232, 99, 74, 0.3);
	transition: transform 0.15s, box-shadow 0.15s;
}
.transfer-quote-form .tqf-submit:hover {
	transform: translateY(-1px);
	box-shadow: 0 8px 20px rgba(232, 99, 74, 0.42);
}
.transfer-quote-form .tqf-fineprint {
	font-size: 0.82rem;
	color: var(--ink-mute);
	margin: 12px 0 0;
}

.lyt-features-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 8px 24px;
	list-style: none;
	padding: 0;
	margin: 0;
}
.lyt-features-grid li {
	color: var(--ink-soft);
	padding: 4px 0;
	position: relative;
	padding-left: 20px;
}
.lyt-features-grid li::before {
	content: "✓";
	position: absolute;
	left: 0;
	color: var(--ocean);
	font-weight: 700;
}
@media (max-width: 540px) {
	.lyt-features-grid { grid-template-columns: 1fr; }
}

/* ============================================================
 * v1.10.8 — Exit popup polish (more exciting, less generic)
 * ============================================================ */

/* Jamaican flag stripe across top of hero */
.bjm-popup-flag-stripe {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	display: flex;
	z-index: 2;
}
.bjm-popup-flag-stripe span {
	flex: 1;
}
.bjm-popup-flag-stripe span:nth-child(1) { background: var(--ocean); }
.bjm-popup-flag-stripe span:nth-child(2) { background: var(--gold); }
.bjm-popup-flag-stripe span:nth-child(3) { background: var(--ink); }

/* Pill badge above the headline */
.bjm-popup-badge {
	display: inline-block;
	background: rgba(245, 184, 0, 0.18);
	color: var(--gold);
	border: 1px solid rgba(245, 184, 0, 0.4);
	padding: 5px 14px;
	border-radius: 100px;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	margin-bottom: 12px;
	position: relative;
	z-index: 1;
}

.bjm-popup-lede {
	color: rgba(255, 255, 255, 0.9) !important;
	font-size: 0.95rem !important;
}

/* Bullet list inside body */
.bjm-popup-bullets {
	list-style: none;
	padding: 0;
	margin: 0 0 18px;
}
.bjm-popup-bullets li {
	padding: 8px 0;
	font-size: 0.92rem;
	color: var(--ink-soft);
	border-bottom: 1px solid var(--line);
	position: relative;
	padding-left: 26px;
	line-height: 1.45;
}
.bjm-popup-bullets li:last-child {
	border-bottom: none;
}
.bjm-popup-bullets li::before {
	content: "✓";
	position: absolute;
	left: 0;
	top: 8px;
	width: 18px;
	height: 18px;
	background: var(--ocean-soft);
	color: var(--ocean-deep);
	border-radius: 50%;
	font-size: 0.7rem;
	font-weight: 800;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}
.bjm-popup-bullets li strong {
	color: var(--ink);
	font-weight: 700;
}

/* Hero h2 slightly stronger */
.bjm-popup-hero h2 {
	font-size: 1.45rem !important;
	line-height: 1.2;
	margin-bottom: 8px !important;
}
.bjm-popup-hero {
	padding: 28px 28px 24px !important;
}

/* Bigger "send me the guide" button */
.bjm-popup-form button {
	background: linear-gradient(135deg, var(--coral) 0%, var(--coral-deep) 100%) !important;
	box-shadow: 0 4px 12px rgba(232, 99, 74, 0.3);
	font-weight: 700 !important;
}

/* ============================================================
 * v1.10.9 — Operator profile page (rebuilt)
 * ============================================================ */

.operator-profile-hero {
	background: linear-gradient(135deg, var(--ocean-deep) 0%, var(--ink) 100%);
	color: white;
	padding: 36px 0;
	position: relative;
	overflow: hidden;
}
.operator-profile-hero::before {
	content: "";
	position: absolute;
	top: -50px;
	right: -50px;
	width: 280px;
	height: 280px;
	background: radial-gradient(circle, rgba(245, 184, 0, 0.12) 0%, transparent 70%);
	pointer-events: none;
}
.operator-profile-hero::after {
	content: "";
	position: absolute;
	bottom: -80px;
	left: -80px;
	width: 320px;
	height: 320px;
	background: radial-gradient(circle, rgba(13, 107, 58, 0.2) 0%, transparent 70%);
	pointer-events: none;
}

.op-hero-inner {
	display: flex;
	gap: 28px;
	align-items: flex-start;
	position: relative;
	z-index: 1;
}
@media (max-width: 720px) {
	.op-hero-inner { flex-direction: column; gap: 18px; align-items: flex-start; }
}

.op-hero-logo {
	flex-shrink: 0;
	width: 120px;
	height: 120px;
	border-radius: 18px;
	background: white;
	padding: 8px;
	box-shadow: 0 12px 32px rgba(0,0,0,0.2);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.op-hero-logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}
.op-hero-logo-placeholder {
	background: linear-gradient(135deg, var(--ocean) 0%, var(--ocean-deep) 100%);
	color: white;
}
.op-hero-logo-placeholder span {
	font-family: var(--font-display);
	font-size: 2.4rem;
	font-weight: 700;
	letter-spacing: -0.02em;
}

@media (max-width: 480px) {
	.op-hero-logo { width: 88px; height: 88px; border-radius: 14px; }
	.op-hero-logo-placeholder span { font-size: 1.7rem; }
}

.op-hero-body {
	flex: 1;
	min-width: 0;
}

.op-hero-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 12px;
}
.op-pill {
	display: inline-block;
	padding: 4px 12px;
	border-radius: 100px;
	font-size: 0.74rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	background: rgba(255, 255, 255, 0.12);
	color: rgba(255, 255, 255, 0.92);
	border: 1px solid rgba(255, 255, 255, 0.18);
}
.op-pill-verified {
	background: var(--gold);
	color: #5c3d00;
	border-color: var(--gold);
}
.op-pill-jtb {
	background: rgba(13, 107, 58, 0.35);
	color: #d6ecdb;
	border-color: rgba(214, 236, 219, 0.3);
}

.op-hero-name {
	font-family: var(--font-display);
	font-size: clamp(1.8rem, 4vw, 2.4rem);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.1;
	margin: 0 0 6px;
	color: white;
}

.op-hero-tagline {
	font-size: 1.05rem;
	color: rgba(255, 255, 255, 0.82);
	margin: 0 0 18px;
	line-height: 1.5;
	max-width: 580px;
}

.op-hero-stats {
	display: flex;
	gap: 28px;
	margin-bottom: 18px;
	flex-wrap: wrap;
}
.op-stat {
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.op-stat-num {
	font-family: var(--font-display);
	font-size: 1.3rem;
	font-weight: 700;
	color: var(--gold);
	line-height: 1;
}
.op-stat-label {
	font-size: 0.75rem;
	color: rgba(255, 255, 255, 0.7);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.op-hero-cta-row {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}
.op-cta-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 11px 18px;
	border-radius: 100px;
	font-size: 0.92rem;
	font-weight: 700;
	text-decoration: none;
	transition: transform 0.15s ease, filter 0.15s ease;
}
.op-cta-btn:hover {
	transform: translateY(-1px);
	filter: brightness(1.08);
}
.op-cta-whatsapp {
	background: #25d366;
	color: white;
}
.op-cta-secondary {
	background: rgba(255, 255, 255, 0.12);
	color: white;
	border: 1px solid rgba(255, 255, 255, 0.18);
}

/* Two-column body layout */
.op-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 36px;
	align-items: start;
}
@media (max-width: 880px) {
	.op-grid { grid-template-columns: 1fr; }
	.op-sidebar { order: -1; }
}

.op-main h2 {
	font-family: var(--font-display);
	font-size: 1.5rem;
	font-weight: 700;
	margin: 0 0 16px;
	letter-spacing: -0.015em;
}
.op-about-body {
	color: var(--ink-soft);
	line-height: 1.7;
	font-size: 1rem;
	max-width: 64ch;
}
.op-about-body p {
	margin: 0 0 14px;
}
.op-about + .op-tours-section,
.op-tours-section + .op-vehicles-section,
.op-about + .op-vehicles-section {
	margin-top: 36px;
}

/* Sidebar info cards */
.op-info-card {
	background: white;
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 20px 22px;
	margin-bottom: 14px;
	box-shadow: 0 2px 8px rgba(0,0,0,0.03);
}
.op-info-card h3 {
	font-family: var(--font-display);
	font-size: 1.05rem;
	font-weight: 700;
	margin: 0 0 12px;
	color: var(--ink);
}
.op-info-list {
	margin: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 10px;
}
.op-info-list dt {
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--ink-mute);
	margin-bottom: 2px;
}
.op-info-list dd {
	margin: 0;
	font-size: 0.92rem;
	color: var(--ink);
	font-weight: 500;
}
.op-certs,
.op-trust-list {
	list-style: none;
	padding: 0;
	margin: 0;
	font-size: 0.9rem;
}
.op-certs li,
.op-trust-list li {
	padding: 6px 0;
	color: var(--ink-soft);
	border-bottom: 1px solid var(--line);
}
.op-certs li:last-child,
.op-trust-list li:last-child {
	border-bottom: none;
}

.op-trust-card {
	background: linear-gradient(135deg, var(--ocean-soft) 0%, white 100%);
	border-color: var(--ocean-soft);
}
.op-trust-card h3 {
	color: var(--ocean-deep);
}

/* ============================================================
 * v1.10.10 — Transfers page (modern, opinionated, real operators)
 * ============================================================ */

/* === Hero === */
.tr-hero {
	background: linear-gradient(135deg, var(--ocean-deep) 0%, var(--ink) 100%);
	color: white;
	padding: 48px 0 60px;
	position: relative;
	overflow: hidden;
}
.tr-hero::before {
	content: "";
	position: absolute;
	top: -100px;
	right: -100px;
	width: 380px;
	height: 380px;
	background: radial-gradient(circle, rgba(245, 184, 0, 0.14) 0%, transparent 70%);
	pointer-events: none;
}
.tr-hero::after {
	content: "";
	position: absolute;
	bottom: -120px;
	left: -80px;
	width: 360px;
	height: 360px;
	background: radial-gradient(circle, rgba(13, 107, 58, 0.22) 0%, transparent 70%);
	pointer-events: none;
}
.tr-hero-inner {
	display: grid;
	grid-template-columns: 1fr 1.05fr;
	gap: 48px;
	align-items: start;
	position: relative;
	z-index: 1;
}
@media (max-width: 920px) {
	.tr-hero-inner { grid-template-columns: 1fr; gap: 28px; }
	.tr-hero { padding: 32px 0 44px; }
}

.tr-hero-badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 7px 16px;
	background: rgba(13, 107, 58, 0.32);
	color: #d6ecdb;
	border: 1px solid rgba(214, 236, 219, 0.3);
	border-radius: 100px;
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	margin-bottom: 18px;
}
.tr-pulse {
	width: 8px;
	height: 8px;
	background: #4ade80;
	border-radius: 50%;
	position: relative;
}
.tr-pulse::after {
	content: "";
	position: absolute;
	inset: -3px;
	border-radius: 50%;
	background: #4ade80;
	opacity: 0.4;
	animation: tr-pulse 1.6s ease-out infinite;
}
@keyframes tr-pulse {
	0% { transform: scale(0.8); opacity: 0.5; }
	100% { transform: scale(2.2); opacity: 0; }
}

.tr-hero h1 {
	font-family: var(--font-display);
	font-size: clamp(2rem, 4.5vw, 2.9rem);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.025em;
	margin: 0 0 14px;
	color: white;
}
.tr-accent {
	color: var(--gold);
	font-style: normal;
}
.tr-hero-sub {
	font-size: 1.02rem;
	color: rgba(255, 255, 255, 0.84);
	line-height: 1.6;
	margin: 0 0 22px;
	max-width: 540px;
}
.tr-hero-bullets {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.tr-hero-bullets li {
	display: flex;
	align-items: center;
	gap: 8px;
	color: rgba(255, 255, 255, 0.9);
	font-size: 0.94rem;
}
.tr-hero-bullets li svg {
	color: #4ade80;
	flex-shrink: 0;
}

/* === Form === */
.tr-form {
	background: white;
	border-radius: 18px;
	padding: 24px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.18);
	color: var(--ink);
}
@media (max-width: 480px) {
	.tr-form { padding: 18px; border-radius: 14px; }
}

.tr-form-head { margin-bottom: 18px; }
.tr-form-step {
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ocean);
}
.tr-form-title {
	font-family: var(--font-display);
	font-size: 1.35rem;
	font-weight: 700;
	margin: 4px 0 0;
	letter-spacing: -0.015em;
}

/* From → To with arrow */
.tr-route-block {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	gap: 8px;
	align-items: end;
	margin-bottom: 12px;
}
@media (max-width: 540px) {
	.tr-route-block { grid-template-columns: 1fr; }
	.tr-route-arrow { display: none; }
}
.tr-route-arrow {
	color: var(--ink-mute);
	padding-bottom: 12px;
}

.tr-input-wrap {
	display: flex;
	flex-direction: column;
	margin-bottom: 12px;
}
.tr-input-wrap label {
	font-size: 0.78rem;
	font-weight: 700;
	color: var(--ink-soft);
	margin-bottom: 6px;
	letter-spacing: 0.02em;
}
.tr-optional {
	font-weight: 500;
	color: var(--ink-mute);
}
.tr-input-wrap input,
.tr-input-wrap textarea {
	width: 100%;
	padding: 11px 14px;
	font: inherit;
	font-size: 0.95rem;
	border: 1.5px solid var(--line);
	border-radius: 10px;
	background: var(--paper);
	transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
	color: var(--ink);
}
.tr-input-wrap input:focus,
.tr-input-wrap textarea:focus {
	outline: none;
	border-color: var(--ocean);
	background: white;
	box-shadow: 0 0 0 3px rgba(13, 107, 58, 0.14);
}

/* Route chips */
.tr-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 4px 0 18px;
}
.tr-chip {
	background: var(--ocean-soft);
	color: var(--ocean-deep);
	border: 1px solid transparent;
	padding: 6px 12px;
	border-radius: 100px;
	font: inherit;
	font-size: 0.78rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.15s, border-color 0.15s, transform 0.1s;
}
.tr-chip:hover {
	background: white;
	border-color: var(--ocean);
}
.tr-chip.is-active {
	background: var(--ocean);
	color: white;
}

/* When + Who blocks: 3-col on desktop, stacking on phone */
.tr-when-block,
.tr-you-block {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10px;
	margin-bottom: 6px;
}
.tr-when-block .tr-input-wrap,
.tr-you-block .tr-input-wrap {
	margin-bottom: 6px;
}
@media (max-width: 540px) {
	.tr-when-block,
	.tr-you-block {
		grid-template-columns: 1fr 1fr;
	}
	.tr-when-block .tr-input-wrap:last-child,
	.tr-you-block .tr-input-wrap:last-child {
		grid-column: 1 / -1;
	}
}

/* Submit */
.tr-submit {
	width: 100%;
	background: linear-gradient(135deg, var(--coral) 0%, var(--coral-deep) 100%);
	color: white;
	border: none;
	padding: 16px 24px;
	font: inherit;
	font-size: 1.02rem;
	font-weight: 700;
	letter-spacing: 0.01em;
	border-radius: 100px;
	cursor: pointer;
	margin-top: 14px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	box-shadow: 0 6px 16px rgba(232, 99, 74, 0.32);
	transition: transform 0.15s, box-shadow 0.2s, filter 0.15s;
}
.tr-submit:hover {
	transform: translateY(-1px);
	box-shadow: 0 10px 22px rgba(232, 99, 74, 0.42);
	filter: brightness(1.08);
}
.tr-fineprint {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 12px 0 0;
	font-size: 0.78rem;
	color: var(--ink-mute);
	line-height: 1.4;
}
.tr-fineprint svg { color: var(--ocean); flex-shrink: 0; }

/* === How it works === */
.tr-how-section { padding-top: 32px; }
.tr-how-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}
@media (max-width: 720px) {
	.tr-how-grid { grid-template-columns: 1fr; }
}
.tr-how-step {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	background: white;
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 22px;
	position: relative;
	overflow: hidden;
}
.tr-how-step::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 4px;
	height: 100%;
	background: var(--ocean);
}
.tr-how-num {
	flex-shrink: 0;
	width: 36px;
	height: 36px;
	background: var(--ocean-soft);
	color: var(--ocean-deep);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-display);
	font-weight: 800;
	font-size: 1.15rem;
}
.tr-how-step h3 {
	font-family: var(--font-display);
	font-size: 1.05rem;
	font-weight: 700;
	margin: 0 0 4px;
}
.tr-how-step p {
	color: var(--ink-soft);
	font-size: 0.92rem;
	margin: 0 0 6px;
	line-height: 1.5;
}
.tr-how-time {
	display: inline-block;
	font-size: 0.72rem;
	font-weight: 700;
	color: var(--ocean);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

/* === Operators strip === */
.tr-ops-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
}
@media (max-width: 880px) {
	.tr-ops-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
	.tr-ops-grid { grid-template-columns: 1fr; }
}
.tr-op-card {
	display: flex;
	gap: 12px;
	align-items: center;
	background: white;
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 14px;
	text-decoration: none;
	color: inherit;
	transition: border-color 0.15s, transform 0.15s, box-shadow 0.15s;
}
.tr-op-card:hover {
	border-color: var(--ocean);
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.05);
}
.tr-op-logo {
	flex-shrink: 0;
	width: 56px;
	height: 56px;
	border-radius: 12px;
	overflow: hidden;
	background: var(--paper);
	display: flex;
	align-items: center;
	justify-content: center;
}
.tr-op-logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}
.tr-op-logo-mono {
	background: linear-gradient(135deg, var(--ocean) 0%, var(--ocean-deep) 100%);
	color: white;
}
.tr-op-logo-mono span {
	font-family: var(--font-display);
	font-weight: 700;
	font-size: 1.1rem;
	letter-spacing: -0.02em;
}
.tr-op-body { min-width: 0; }
.tr-op-name {
	font-weight: 700;
	font-size: 0.95rem;
	color: var(--ink);
	margin-bottom: 2px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.tr-op-meta {
	font-size: 0.78rem;
	color: var(--ink-mute);
	margin-bottom: 6px;
}
.tr-op-pills { display: flex; gap: 4px; flex-wrap: wrap; }
.tr-op-pill {
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	background: var(--ocean-soft);
	color: var(--ocean-deep);
	padding: 2px 8px;
	border-radius: 100px;
}
.tr-ops-fineprint {
	margin: 14px 0 0;
	font-size: 0.82rem;
	color: var(--ink-mute);
	text-align: center;
}

/* === FAQ band === */
.tr-faq-band {
	background: var(--cream);
	padding: 44px 0;
	margin-top: 24px;
}
.tr-faq-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px 32px;
}
@media (max-width: 640px) {
	.tr-faq-grid { grid-template-columns: 1fr; }
}
.tr-faq-item h3 {
	font-family: var(--font-display);
	font-size: 1.02rem;
	font-weight: 700;
	margin: 0 0 6px;
	color: var(--ink);
}
.tr-faq-item p {
	color: var(--ink-soft);
	font-size: 0.92rem;
	margin: 0;
	line-height: 1.55;
}

/* ============================================================
 * v1.10.12 — Safety padding + cars hero + breadcrumb hide
 * ============================================================ */

/* Safety net: ensure no section heading or carousel section is ever flush
 * to the viewport edge. Sometimes a parent's container padding gets
 * collapsed by a child that uses negative margin. */
@media (max-width: 720px) {
	.section > .section-head,
	.cars-index-toolbar {
		padding-left: 4px;
		padding-right: 4px;
	}
}

/* === Cars index hero (replaces .page-header on /cars/) === */
.cars-hero {
	position: relative;
	min-height: 280px;
	background: linear-gradient(135deg, var(--ocean-deep) 0%, var(--ink) 100%);
	color: white;
	overflow: hidden;
	display: flex;
	align-items: center;
	border-bottom: 1px solid var(--line);
}
.cars-hero-media {
	position: absolute;
	inset: 0;
	z-index: 0;
}
.cars-hero-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.cars-hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(9, 77, 41, 0.78) 0%, rgba(12, 31, 41, 0.86) 100%);
}
.cars-hero-inner {
	position: relative;
	z-index: 1;
	padding-top: 36px;
	padding-bottom: 36px;
}
.cars-hero-eyebrow {
	font-size: 0.74rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--gold);
	margin: 0 0 8px;
}
.cars-hero h1 {
	font-family: var(--font-display);
	font-size: clamp(1.9rem, 4.5vw, 2.6rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.1;
	margin: 0 0 10px;
	color: white;
}
.cars-hero-sub {
	font-size: 1rem;
	color: rgba(255, 255, 255, 0.84);
	line-height: 1.55;
	max-width: 620px;
	margin: 0;
}

/* Vehicle-count toolbar */
.cars-index-toolbar {
	margin-bottom: 22px;
}
.cars-index-count {
	color: var(--ink-soft);
	font-size: 0.95rem;
	margin: 0;
}
.cars-index-count strong {
	color: var(--ink);
	font-weight: 700;
	font-size: 1.1rem;
	font-family: var(--font-display);
}

/* Empty state styled (used when no cars synced yet) */
.cars-empty-state {
	background: white;
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 56px 24px;
	text-align: center;
	max-width: 560px;
	margin: 0 auto;
}
.cars-empty-icon {
	font-size: 2.5rem;
	margin-bottom: 14px;
}
.cars-empty-state h2 {
	font-family: var(--font-display);
	font-size: 1.4rem;
	font-weight: 600;
	margin: 0 0 10px;
	color: var(--ink);
}
.cars-empty-state p {
	color: var(--ink-mute);
	font-size: 1rem;
	line-height: 1.6;
	margin: 0 0 20px;
}
.cars-empty-state a { color: var(--ocean); }
.cars-empty-state .ezym-btn {
	text-decoration: none;
	display: inline-block;
}

/* When an iconic card has data-img loaded, swap to photo background */
.iconic-card.has-img {
	background-image: var(--iconic-bg-img), linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,0.7) 100%) !important;
	background-size: cover, auto;
	background-position: center, center;
}
.iconic-card.has-img::before { opacity: 0.6; }

/* ============================================================
 * v1.10.12 — Popup with image variant
 * ============================================================ */

.bjm-popup-card.has-image .bjm-popup-image {
	position: relative;
	height: 220px;
	background-size: cover;
	background-position: center;
	color: white;
	overflow: hidden;
}
.bjm-popup-image-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(9, 77, 41, 0.35) 0%, rgba(12, 31, 41, 0.85) 100%);
}
.bjm-popup-image-content {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 22px 28px 22px;
	z-index: 1;
}
.bjm-popup-image-content .bjm-popup-badge {
	margin-bottom: 10px;
}
.bjm-popup-image-content h2 {
	font-family: var(--font-display);
	font-size: 1.4rem;
	font-weight: 700;
	color: white;
	margin: 0;
	line-height: 1.18;
	letter-spacing: -0.015em;
}
.bjm-popup-lede-light {
	color: var(--ink-soft);
	font-size: 0.95rem;
	line-height: 1.55;
	margin: 0 0 14px;
}

@media (max-width: 480px) {
	.bjm-popup-card.has-image .bjm-popup-image {
		height: 180px;
	}
	.bjm-popup-image-content {
		padding: 18px 22px 18px;
	}
	.bjm-popup-image-content h2 {
		font-size: 1.2rem;
	}
}

/* ============================================================
 * v1.10.13 — Cars page: trust strip + sort
 * ============================================================ */

.cars-trust-strip {
	background: var(--ocean-soft);
	padding: 22px 0;
	border-bottom: 1px solid var(--line);
}
.cts-row {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px 24px;
}
@media (max-width: 880px) {
	.cts-row { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
	.cts-row { grid-template-columns: 1fr; gap: 12px; }
}
.cts-item {
	display: flex;
	align-items: flex-start;
	gap: 10px;
}
.cts-item svg {
	color: var(--ocean-deep);
	flex-shrink: 0;
	margin-top: 2px;
}
.cts-item div { display: flex; flex-direction: column; line-height: 1.35; }
.cts-item strong {
	color: var(--ink);
	font-weight: 700;
	font-size: 0.92rem;
}
.cts-item span {
	color: var(--ink-soft);
	font-size: 0.82rem;
	margin-top: 2px;
}

/* Sort toolbar */
.cars-index-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	margin-bottom: 22px;
}
.cars-sort-wrap {
	display: flex;
	align-items: center;
	gap: 8px;
}
.cars-sort-label {
	font-size: 0.78rem;
	font-weight: 700;
	color: var(--ink-mute);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}
.cars-sort-select {
	background: white;
	border: 1.5px solid var(--line);
	border-radius: 100px;
	padding: 8px 32px 8px 16px;
	font: inherit;
	font-size: 0.88rem;
	font-weight: 600;
	color: var(--ink);
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230c1f29' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
	background-repeat: no-repeat;
	background-position: right 10px center;
	background-size: 14px;
}
.cars-sort-select:hover { border-color: var(--ocean); }
.cars-sort-select:focus {
	outline: none;
	border-color: var(--ocean);
	box-shadow: 0 0 0 3px rgba(13, 107, 58, 0.12);
}

/* ============================================================
 * v1.10.14 — /apply/ page (self-service operator application)
 * Mirrors the transfers page hero pattern for consistency.
 * ============================================================ */

.apply-hero {
	background: linear-gradient(135deg, var(--ocean-deep) 0%, var(--ink) 100%);
	color: white;
	padding: 48px 0 60px;
	position: relative;
	overflow: hidden;
}
.apply-hero::before {
	content: "";
	position: absolute;
	top: -100px;
	right: -100px;
	width: 380px;
	height: 380px;
	background: radial-gradient(circle, rgba(245, 184, 0, 0.14) 0%, transparent 70%);
	pointer-events: none;
}
.apply-hero::after {
	content: "";
	position: absolute;
	bottom: -120px;
	left: -80px;
	width: 360px;
	height: 360px;
	background: radial-gradient(circle, rgba(13, 107, 58, 0.22) 0%, transparent 70%);
	pointer-events: none;
}
.apply-hero-inner {
	display: grid;
	grid-template-columns: 1fr 1.05fr;
	gap: 48px;
	align-items: start;
	position: relative;
	z-index: 1;
}
@media (max-width: 920px) {
	.apply-hero-inner { grid-template-columns: 1fr; gap: 28px; }
	.apply-hero { padding: 32px 0 44px; }
}

.apply-hero-badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 7px 16px;
	background: rgba(13, 107, 58, 0.32);
	color: #d6ecdb;
	border: 1px solid rgba(214, 236, 219, 0.3);
	border-radius: 100px;
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	margin-bottom: 18px;
}
.apply-pulse {
	width: 8px;
	height: 8px;
	background: #4ade80;
	border-radius: 50%;
	position: relative;
}
.apply-pulse::after {
	content: "";
	position: absolute;
	inset: -3px;
	border-radius: 50%;
	background: #4ade80;
	opacity: 0.4;
	animation: tr-pulse 1.6s ease-out infinite;
}

.apply-hero h1 {
	font-family: var(--font-display);
	font-size: clamp(1.9rem, 4.5vw, 2.8rem);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.025em;
	margin: 0 0 14px;
	color: white;
}
.apply-accent { color: var(--gold); }
.apply-hero-sub {
	font-size: 1rem;
	color: rgba(255, 255, 255, 0.84);
	line-height: 1.6;
	margin: 0 0 22px;
	max-width: 540px;
}
.apply-hero-bullets {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.apply-hero-bullets li {
	display: flex;
	align-items: center;
	gap: 8px;
	color: rgba(255, 255, 255, 0.9);
	font-size: 0.94rem;
}
.apply-hero-bullets li svg { color: #4ade80; flex-shrink: 0; }

.apply-form {
	background: white;
	border-radius: 18px;
	padding: 24px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.18);
	color: var(--ink);
}
@media (max-width: 480px) {
	.apply-form { padding: 18px; border-radius: 14px; }
}
.apply-form-head { margin-bottom: 18px; }
.apply-form-step {
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ocean);
}
.apply-form-title {
	font-family: var(--font-display);
	font-size: 1.35rem;
	font-weight: 700;
	margin: 4px 0 0;
	letter-spacing: -0.015em;
}

.apply-input-wrap {
	display: flex;
	flex-direction: column;
	margin-bottom: 12px;
}
.apply-input-wrap label {
	font-size: 0.78rem;
	font-weight: 700;
	color: var(--ink-soft);
	margin-bottom: 6px;
	letter-spacing: 0.02em;
}
.apply-req { color: var(--coral); }
.apply-optional { font-weight: 500; color: var(--ink-mute); }
.apply-help {
	font-size: 0.78rem;
	color: var(--ink-mute);
	margin: 6px 0 0;
}
.apply-input-wrap input,
.apply-input-wrap textarea,
.apply-input-wrap select {
	width: 100%;
	padding: 11px 14px;
	font: inherit;
	font-size: 0.95rem;
	border: 1.5px solid var(--line);
	border-radius: 10px;
	background: var(--paper);
	transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
	color: var(--ink);
}
.apply-input-wrap input:focus,
.apply-input-wrap textarea:focus,
.apply-input-wrap select:focus {
	outline: none;
	border-color: var(--ocean);
	background: white;
	box-shadow: 0 0 0 3px rgba(13, 107, 58, 0.14);
}

.apply-row-2 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}
@media (max-width: 540px) {
	.apply-row-2 { grid-template-columns: 1fr; }
}

.apply-submit {
	width: 100%;
	background: linear-gradient(135deg, var(--coral) 0%, var(--coral-deep) 100%);
	color: white;
	border: none;
	padding: 16px 24px;
	font: inherit;
	font-size: 1.02rem;
	font-weight: 700;
	letter-spacing: 0.01em;
	border-radius: 100px;
	cursor: pointer;
	margin-top: 14px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	box-shadow: 0 6px 16px rgba(232, 99, 74, 0.32);
	transition: transform 0.15s, box-shadow 0.2s, filter 0.15s;
}
.apply-submit:hover {
	transform: translateY(-1px);
	box-shadow: 0 10px 22px rgba(232, 99, 74, 0.42);
	filter: brightness(1.08);
}
.apply-submit:disabled {
	opacity: 0.6;
	cursor: wait;
}
.apply-fineprint {
	margin: 12px 0 0;
	font-size: 0.78rem;
	color: var(--ink-mute);
	text-align: center;
	line-height: 1.4;
}

.apply-success {
	text-align: center;
	padding: 32px 16px;
}
.apply-success h2 {
	font-family: var(--font-display);
	font-size: 1.5rem;
	font-weight: 700;
	margin: 16px 0 8px;
	color: var(--ocean-deep);
}
.apply-success p {
	color: var(--ink-soft);
	font-size: 1rem;
	margin: 0;
	line-height: 1.5;
}

/* === Pricing tiers === */
.apply-tiers-section { padding-top: 36px; }
.apply-tiers-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	margin-bottom: 18px;
}
@media (max-width: 880px) {
	.apply-tiers-grid { grid-template-columns: 1fr; }
}
.apply-tier {
	background: white;
	border: 1.5px solid var(--line);
	border-radius: 16px;
	padding: 24px 22px;
	position: relative;
	display: flex;
	flex-direction: column;
}
.apply-tier-highlight {
	border-color: var(--ocean);
	box-shadow: 0 12px 30px rgba(13, 107, 58, 0.12);
	transform: scale(1.02);
}
@media (max-width: 880px) {
	.apply-tier-highlight { transform: none; }
}
.apply-tier-tag {
	position: absolute;
	top: -10px;
	left: 50%;
	transform: translateX(-50%);
	background: var(--ocean);
	color: white;
	padding: 4px 14px;
	border-radius: 100px;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	white-space: nowrap;
}
.apply-tier-head {
	margin-bottom: 16px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--line);
}
.apply-tier-name {
	font-family: var(--font-display);
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--ink);
	letter-spacing: -0.01em;
	margin-bottom: 6px;
}
.apply-tier-price {
	display: flex;
	align-items: baseline;
	gap: 6px;
	flex-wrap: wrap;
}
.apply-tier-amount {
	font-family: var(--font-display);
	font-size: 2.1rem;
	font-weight: 700;
	color: var(--ocean-deep);
	letter-spacing: -0.02em;
}
.apply-tier-period {
	font-size: 0.92rem;
	color: var(--ink-mute);
}
.apply-tier-strike {
	display: block;
	width: 100%;
	font-size: 0.78rem;
	color: var(--gold);
	font-weight: 700;
	margin-top: 4px;
}
.apply-tier-no-fee {
	display: block;
	width: 100%;
	font-size: 0.78rem;
	color: var(--ocean);
	font-weight: 700;
	margin-top: 4px;
	letter-spacing: 0.01em;
}
.apply-tier-features {
	list-style: none;
	padding: 0;
	margin: 0 0 14px;
	flex: 1;
}
.apply-tier-features li {
	padding: 6px 0;
	font-size: 0.92rem;
	color: var(--ink-soft);
	line-height: 1.4;
}
.apply-tier-features li strong { color: var(--ink); }
.apply-tier-for {
	font-size: 0.82rem;
	color: var(--ink-mute);
	margin: 8px 0 0;
	padding-top: 12px;
	border-top: 1px solid var(--line);
	font-style: italic;
	line-height: 1.4;
}
.apply-tiers-note {
	text-align: center;
	color: var(--ink-mute);
	font-size: 0.88rem;
	margin: 14px 0 0;
}

/* === FAQ === */
.apply-faq-band {
	background: var(--cream);
	padding: 44px 0;
	margin-top: 24px;
}
.apply-faq-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px 32px;
}
@media (max-width: 640px) {
	.apply-faq-grid { grid-template-columns: 1fr; }
}
.apply-faq-item h3 {
	font-family: var(--font-display);
	font-size: 1.02rem;
	font-weight: 700;
	margin: 0 0 6px;
	color: var(--ink);
}
.apply-faq-item p {
	color: var(--ink-soft);
	font-size: 0.92rem;
	margin: 0;
	line-height: 1.55;
}
.apply-faq-item a {
	color: var(--ocean);
	font-weight: 600;
}

/* ============================================================
 * v1.10.15 — Hero text readability over natural overlay
 * ============================================================ */

.hero-v2 .hero-inner h1,
.hero-v2 .hero-eyebrow,
.hero-v2 .hero-sub {
	text-shadow: 0 2px 16px rgba(0, 0, 0, 0.45), 0 1px 3px rgba(0, 0, 0, 0.35);
}

/* ============================================================
 * v1.10.15 — "Why book on BookJa.me" — replaces trust-band
 * ============================================================ */

.why-bookja-band {
	background: linear-gradient(180deg, #fbf7f1 0%, var(--cream) 100%);
	padding: 56px 0 64px;
	border-top: 1px solid var(--line);
	margin-bottom: 0;
}
@media (max-width: 720px) {
	.why-bookja-band { padding: 36px 0 40px; }
}

.wbb-head { text-align: center; margin-bottom: 32px; }
.wbb-eyebrow {
	font-size: 0.74rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--coral);
	margin: 0 0 8px;
}
.wbb-head h2 {
	font-family: var(--font-display);
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.2;
	margin: 0;
	color: var(--ink);
}

.wbb-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
}
@media (max-width: 880px) {
	.wbb-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
	.wbb-grid { grid-template-columns: 1fr; gap: 12px; }
}

.wbb-card {
	background: white;
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 22px 20px;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.wbb-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.06);
}

.wbb-icon-wrap {
	width: 44px;
	height: 44px;
	border-radius: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 12px;
}
.wbb-icon-green { background: rgba(13, 107, 58, 0.12); color: var(--ocean); }
.wbb-icon-coral { background: rgba(232, 99, 74, 0.14); color: var(--coral); }
.wbb-icon-gold  { background: rgba(245, 184, 0, 0.18); color: #b88a00; }
.wbb-icon-deep  { background: rgba(9, 77, 41, 0.14);  color: var(--ocean-deep); }

.wbb-card h3 {
	font-family: var(--font-display);
	font-size: 1rem;
	font-weight: 700;
	margin: 0 0 6px;
	color: var(--ink);
	letter-spacing: -0.005em;
}
.wbb-card p {
	color: var(--ink-soft);
	font-size: 0.88rem;
	line-height: 1.5;
	margin: 0;
}

/* Kill the white gap between why-bookja-band and footer */
.site-footer { margin-top: 0; }
body > .why-bookja-band + .site-footer,
.why-bookja-band + .site-footer {
	margin-top: 0;
	padding-top: 36px;
}

/* Tours category filter chips */
.tours-cat-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 22px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--line);
	overflow-x: auto;
	scrollbar-width: none;
}
.tours-cat-chips::-webkit-scrollbar { display: none; }
.tours-cat-chip {
	background: white;
	color: var(--ink-soft);
	border: 1.5px solid var(--line);
	padding: 7px 14px;
	border-radius: 100px;
	font: inherit;
	font-size: 0.84rem;
	font-weight: 600;
	cursor: pointer;
	white-space: nowrap;
	transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.tours-cat-chip:hover {
	border-color: var(--ocean);
	color: var(--ocean);
}
.tours-cat-chip.is-active {
	background: var(--ocean);
	border-color: var(--ocean);
	color: white;
}

/* Tour grid items wrapper (added for filter/sort).
 * display:contents lets the inner article participate in the grid directly. */
.tour-grid-item { display: contents; }

/* Tours hero variant — slightly more warmth */
.tours-hero { background: linear-gradient(135deg, #094d29 0%, #4a1d0c 100%); }

/* ============================================================
 * v1.10.15 — Sticky bottom contextual CTA
 * ============================================================ */

.bjm-sticky-cta {
	position: fixed;
	bottom: 16px;
	left: 50%;
	transform: translate(-50%, 200%);
	width: calc(100% - 32px);
	max-width: 560px;
	background: white;
	border: 1px solid var(--line);
	border-radius: 16px;
	padding: 12px 14px 12px 18px;
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.18);
	z-index: 800;
	transition: transform 0.45s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.3s;
	opacity: 0;
}
.bjm-sticky-cta.is-visible {
	transform: translate(-50%, 0);
	opacity: 1;
}

/* Mobile: lift above the bottom nav bar */
@media (max-width: 720px) {
	.bjm-sticky-cta {
		bottom: 72px; /* clear bottom-nav */
		width: calc(100% - 16px);
		padding: 10px 12px 10px 14px;
		border-radius: 14px;
	}
}

.bjm-sticky-inner {
	display: flex;
	align-items: center;
	gap: 12px;
}

.bjm-sticky-icon {
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background: var(--ocean-soft);
	color: var(--ocean-deep);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.bjm-sticky-copy { flex: 1; min-width: 0; }
.bjm-sticky-title {
	font-weight: 700;
	font-size: 0.95rem;
	color: var(--ink);
	line-height: 1.2;
}
.bjm-sticky-sub {
	font-size: 0.8rem;
	color: var(--ink-mute);
	margin-top: 1px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.bjm-sticky-cta-btn {
	background: linear-gradient(135deg, var(--coral) 0%, var(--coral-deep) 100%);
	color: white;
	text-decoration: none;
	font-weight: 700;
	font-size: 0.85rem;
	padding: 9px 16px;
	border-radius: 100px;
	white-space: nowrap;
	flex-shrink: 0;
	box-shadow: 0 3px 8px rgba(232, 99, 74, 0.28);
	transition: transform 0.15s, filter 0.15s;
}
.bjm-sticky-cta-btn:hover {
	transform: translateY(-1px);
	filter: brightness(1.08);
}

.bjm-sticky-close {
	position: absolute;
	top: -6px;
	right: -6px;
	width: 24px;
	height: 24px;
	background: white;
	border: 1px solid var(--line);
	border-radius: 50%;
	font-size: 14px;
	line-height: 1;
	color: var(--ink-mute);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 2px 6px rgba(0,0,0,0.08);
}
.bjm-sticky-close:hover { color: var(--ink); }

@media (max-width: 480px) {
	.bjm-sticky-title { font-size: 0.88rem; }
	.bjm-sticky-sub { font-size: 0.74rem; }
	.bjm-sticky-cta-btn { font-size: 0.78rem; padding: 8px 12px; }
	.bjm-sticky-icon { width: 32px; height: 32px; }
}

/* ============================================================
 * v1.10.16 — list-your-tours tier additions (no-monthly-fee model)
 * ============================================================ */

.lyt-cost-intro {
	font-size: 0.95rem;
	color: var(--ink-soft);
	margin: 0 0 22px;
	line-height: 1.55;
	max-width: 700px;
}
.lyt-tier-unlock {
	margin: 12px 0 0;
	padding-top: 12px;
	border-top: 1px solid var(--line);
	font-size: 0.82rem;
	color: var(--ink-soft);
	line-height: 1.45;
}
.lyt-tier-unlock strong {
	color: var(--ocean);
	font-weight: 700;
}
.lyt-tier-unlock a {
	color: var(--ocean);
	font-weight: 600;
}
