/* ==========================================================================
   Sedunia Cruises — design tokens
   ========================================================================== */
:root {
	--navy: #102C3D;
	--green: #0E3B32;
	--gold: #C79A3B;
	--gold-dark: #B08A2E;
	--ivory: #F7F4ED;
	--white: #FFFFFF;
	--text: #1C1C1C;
	--muted: #5B6670;
	--border: #E7E1D3;

	--font-serif: 'Playfair Display', Georgia, serif;
	--font-sans: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;

	--container: 1320px;
	--radius: 8px;
	--shadow-card: 0 2px 12px rgba(16,44,61,0.08);
	--shadow-card-hover: 0 8px 24px rgba(16,44,61,0.14);
	--shadow-panel: 0 4px 16px rgba(0,0,0,0.12);
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
}

/* ==========================================================================
   Reset & base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: hidden; max-width: 100%; }
body {
	margin: 0;
	font-family: var(--font-sans);
	font-size: clamp(15px, 1.4vw, 17px);
	line-height: 1.6;
	color: var(--text);
	background: var(--ivory);
	overflow-x: hidden;
	max-width: 100%;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
ul { margin: 0; padding: 0; list-style: none; }
h1, h2, h3 { font-family: var(--font-serif); font-weight: 500; margin: 0; }
p { margin: 0; }
button { font-family: inherit; cursor: pointer; }

.screen-reader-text {
	position: absolute; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px,1px,1px,1px); white-space: nowrap;
}
.skip-link:focus {
	position: fixed; top: 8px; left: 8px; z-index: 9999; width: auto; height: auto;
	background: var(--navy); color: #fff; padding: 12px 20px; border-radius: 4px;
}
:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }

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

.dashicons { font-family: dashicons; -webkit-font-smoothing: antialiased; }

/* ==========================================================================
   Buttons
   ========================================================================== */
.btn {
	display: inline-flex; align-items: center; justify-content: center;
	height: 52px; padding: 0 32px; border-radius: 4px;
	font-family: var(--font-sans); font-size: 14px; font-weight: 600;
	text-transform: uppercase; letter-spacing: 0.06em;
	border: none; transition: all .2s ease; white-space: nowrap;
}
.btn--gold { background: var(--gold); color: var(--navy); }
.btn--gold:hover { background: var(--gold-dark); }
.btn--outline-light { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,0.6); }
.btn--outline-light:hover { background: rgba(255,255,255,0.1); }
.btn--outline-dark { background: transparent; color: var(--navy); border: 1px solid var(--navy); height: 48px; padding: 0 28px; }
.btn--outline-dark:hover { background: var(--navy); color: #fff; }
.btn--sm { height: 44px; padding: 0 22px; font-size: 13px; }

.link-arrow { color: var(--gold); font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; }
.link-arrow:hover { color: var(--gold-dark); }

/* ==========================================================================
   Header
   ========================================================================== */
.site-header {
	position: absolute; top: 0; left: 0; right: 0; z-index: 100;
	background: linear-gradient(to bottom, rgba(16,44,61,0.55), transparent);
}
.site-header.is-solid { position: fixed; background: var(--navy); box-shadow: var(--shadow-panel); }
.site-header__inner {
	max-width: 1600px; margin: 0 auto; padding: 0 3%;
	height: 96px; display: flex; align-items: center; gap: 24px;
}
.site-header__logo { flex-shrink: 0; display: flex; align-items: center; }
.site-header__logo-mark { height: 58px; width: auto; }
.site-nav { flex: 1; min-width: 0; }
.site-nav__list { display: flex; gap: 22px; }
.site-nav__item { position: relative; flex-shrink: 0; }
.site-nav__link {
	background: none; border: none; color: #fff; font-size: 14px; font-weight: 500;
	padding: 8px 0; display: inline-block; white-space: nowrap;
}
.site-nav__item.has-dropdown:hover .site-nav__dropdown,
.site-nav__item.has-dropdown:focus-within .site-nav__dropdown { display: block; }
/* Destinations is deliberately click-to-open only (see main.js) — everything
   else on the header still opens on hover. Both kinds share .is-open so a
   click closes every sibling panel instead of stacking on top of it. */
.site-nav__item.is-open .site-nav__dropdown { display: block; }
/* Whichever panel is actually open paints above its neighbours; without this
   the equal z-indexes left DOM order to decide, so Cruise Lines covered
   Destinations. */
.site-nav__item.is-open,
.site-nav__item.has-dropdown:hover,
.site-nav__item.has-dropdown:focus-within { z-index: 20; }
.site-nav__dropdown {
	display: none; position: absolute; top: 100%; left: 0; margin-top: 8px;
	background: #fff; border-radius: 4px; box-shadow: var(--shadow-panel);
	min-width: 220px; padding: 16px; z-index: 10;
}
/* Transparent bridge across the 8px margin above the panel. It's a descendant
   of the item, so the pointer crossing it still counts as hovering the item —
   otherwise reaching for a hover menu passed through dead space and the panel
   vanished mid-move. */
.site-nav__dropdown::before {
	content: ''; position: absolute; left: 0; right: 0; top: -8px; height: 8px;
}
.site-nav__dropdown ul { display: flex; flex-direction: column; gap: 4px; }
.site-nav__dropdown a { color: var(--text); font-size: 14px; padding: 6px 8px; border-radius: 4px; display: block; }
.site-nav__dropdown a:hover { background: var(--ivory); color: var(--gold-dark); }
.site-nav__dropdown-all { display: block; margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--border); font-size: 13px; color: var(--gold-dark); }

/* Destinations / Cruise Lines mega-menus: a wider multi-column grid with a
   flag or real brand logo per row, rather than a single long plain-text
   list — every entry is still real taxonomy data, just easier to scan. */
.site-nav__dropdown--mega {
	min-width: 560px; padding: 20px; left: 0;
	border-top: 3px solid var(--gold);
}
.site-nav__dropdown .site-nav__grid {
	display: grid; grid-template-columns: repeat(2, 1fr); gap: 2px 20px;
	max-height: 380px; overflow-y: auto;
}
.site-nav__grid a {
	display: flex !important; align-items: center; gap: 10px; padding: 8px 10px !important;
}
.site-nav__flag { font-size: 18px; line-height: 1; flex-shrink: 0; width: 22px; text-align: center; }
.site-nav__brand-logo {
	width: 36px; height: 26px; flex-shrink: 0; display: flex; align-items: center; justify-content: center;
	background: var(--ivory); border-radius: 4px; overflow: hidden; border: 1px solid var(--border);
}
.site-nav__brand-logo img { width: 100%; height: 100%; object-fit: contain; padding: 2px; }
.site-nav__brand-logo--placeholder {
	font-family: var(--font-serif); font-weight: 600; color: var(--gold-dark); font-size: 13px; background: #fff;
}
.site-nav__dropdown--mega .site-nav__dropdown-all { grid-column: 1 / -1; }

.site-header__actions { display: flex; align-items: center; gap: 20px; flex-shrink: 0; }
.site-header__search-toggle { background: none; border: none; color: #fff; padding: 4px; flex-shrink: 0; }
.site-header__phone { color: #fff; font-size: 14px; white-space: nowrap; }
.site-header__phone-icon { display: none; color: #fff; padding: 4px; }
.btn--gold { flex-shrink: 0; }
.site-header__burger { display: none; background: none; border: none; width: 32px; height: 24px; position: relative; }
.site-header__burger span { position: absolute; left: 0; right: 0; height: 2px; background: #fff; transition: all .2s; }
.site-header__burger span:nth-child(1) { top: 0; }
.site-header__burger span:nth-child(2) { top: 11px; }
.site-header__burger span:nth-child(3) { top: 22px; }

.site-search-panel { background: var(--navy); padding: 16px 5%; }
.site-search-panel__form { max-width: var(--container); margin: 0 auto; display: flex; gap: 12px; }
.site-search-panel__form input[type="search"] {
	flex: 1; height: 48px; border-radius: 4px; border: none; padding: 0 16px; font-size: 14px;
}

.mobile-nav { display: none; }

/* ==========================================================================
   Hero
   ========================================================================== */
.hero {
	position: relative; min-height: 760px; display: flex; align-items: center;
	background-size: cover; background-position: center;
	background-color: var(--navy);
}
.hero__overlay {
	position: absolute; inset: 0;
	background: linear-gradient(90deg, rgba(16,44,61,0.8) 0%, rgba(16,44,61,0.45) 55%, rgba(16,44,61,0.15) 100%);
}
.hero__row {
	position: relative; z-index: 2; max-width: var(--container); margin: 0 auto; padding: 0 5%;
	display: flex; align-items: center; justify-content: space-between; gap: 40px; height: 100%;
	padding-top: 120px;
}
.hero--split .hero__content { padding: 0; max-width: 540px; flex-shrink: 0; }
.hero__content { position: relative; z-index: 2; max-width: 560px; padding: 120px 0 0 5%; color: #fff; }
.hero__ai-panel {
	width: 440px; flex-shrink: 0; background: #fff; border-radius: var(--radius);
	box-shadow: var(--shadow-panel);
}
.hero__ai-panel .sedunia-ai-search { padding: 20px; }
.hero__ai-panel .ai-header h2 { font-family: var(--font-sans); font-size: 15px; color: var(--navy); margin-bottom: 4px; }
.hero__ai-panel .ai-header h2 span { color: var(--gold); }
.hero__ai-panel .ai-header p { font-size: 12px; color: var(--muted); margin-bottom: 12px; }
.hero__ai-panel .ai-chat-messages { max-height: 240px; overflow-y: auto; font-size: 13px; }
.hero__ai-panel .ai-chat-input { display: flex; gap: 8px; margin-top: 12px; }
.hero__ai-panel .ai-chat-input input { flex: 1; height: 40px; border: 1px solid var(--border); border-radius: 4px; padding: 0 10px; font-size: 13px; }
.hero__ai-panel .ai-chat-input button { height: 40px; width: 40px; border: none; background: var(--gold); border-radius: 50%; }
/* Search results render in their own visually self-contained card below the
   chat scroller (not crammed into the same small conversation window — see
   sedunia-ai-chat.js). Given its own explicit background/shadow/radius
   rather than relying on the parent panel's fill: that panel used
   `overflow:hidden` to keep rounded corners, but combined with its height
   changing via JS after results load, Chrome sometimes fails to repaint the
   newly-tall region — leaving the hero photo visible behind the cards
   instead of white. Removed overflow:hidden from the panel and made this
   its own opaque block so it's correct regardless of that repaint quirk. */
.hero__ai-panel #ai-search-results {
	margin: 14px 0 0 !important; max-height: 320px; overflow-y: auto;
	display: flex; flex-direction: column; gap: 10px;
	background: #fff; border-radius: var(--radius); box-shadow: var(--shadow-panel);
	padding: 10px;
}
.hero__ai-panel #ai-search-results:empty { display: none; }
/* Deliberately its own class, not .tour-card — that class already belongs to
   the theme's real Featured Voyages grid tiles (overflow:hidden, column
   layout, aspect-ratio media box). Reusing it here collided with those
   rules and squashed every row to ~29px tall, with images spilling into
   neighboring rows. */
.ai-tour-result {
	display: flex; flex-direction: row; align-items: center; gap: 12px;
	padding: 8px; text-decoration: none; color: inherit;
	border: 1px solid var(--border); border-radius: var(--radius);
}
.ai-tour-result img {
	width: 64px; height: 64px; object-fit: cover; border-radius: 6px; flex-shrink: 0;
}
.ai-tour-result h4 { font-size: 13px; line-height: 1.3; margin: 0; color: var(--navy); }
.ai-tour-result p { font-size: 11px; color: var(--muted); margin: 2px 0 0; }
.ai-tour-result .btn {
	display: none; /* the whole card is already a link — a second visible button is redundant clutter here */
}
.ai-suggestions { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 20px 20px; }
.ai-suggestion-chip {
	font-size: 12px; padding: 7px 14px; border-radius: 999px; border: 1px solid var(--border);
	background: var(--ivory); color: var(--text); white-space: nowrap;
}
.ai-suggestion-chip:hover { border-color: var(--gold); color: var(--gold-dark); background: #fff; }
.hero__ai-panel .sedunia-ai-search,
.hero__ai-panel .ai-header,
.hero__ai-panel .ai-chat-box { background: #fff !important; }
.hero__ai-panel .bot-msg { background: var(--ivory) !important; color: var(--text) !important; border-radius: 8px; padding: 10px 12px; }
.hero__heading { font-size: clamp(34px, 4.5vw, 56px); line-height: 1.1; color: #fff; }
.hero__heading-highlight { color: var(--gold); font-style: italic; font-weight: 500; }
.hero__sub { margin-top: 24px; max-width: 440px; font-size: 17px; line-height: 1.6; color: rgba(255,255,255,0.9); }
.hero__actions { margin-top: 32px; display: flex; gap: 16px; flex-wrap: wrap; }
.hero-stats { display: none; }

/* ==========================================================================
   Trust strip
   ========================================================================== */
.trust-strip { background: var(--green); }
.trust-strip__list {
	max-width: var(--container); margin: 0 auto; padding: 0 5%;
	display: grid; grid-template-columns: repeat(6, 1fr); min-height: 140px; align-items: center;
}
.trust-strip__list li {
	display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center;
	padding: 24px 12px; position: relative; color: #fff;
}
.trust-strip__list li:not(:last-child)::after {
	content: ""; position: absolute; right: 0; top: 20%; bottom: 20%; width: 1px; background: rgba(255,255,255,0.15);
}
.trust-strip__list .dashicons { font-size: 28px; width: 28px; height: 28px; color: var(--gold); }
.trust-strip__list span:last-child { font-size: 13px; max-width: 120px; }

/* ==========================================================================
   Sections (generic)
   ========================================================================== */
.section { padding: 96px 0; }
.section--why, .section--testimonials { color: #fff; }
.section--why { background: var(--green); }
.section__heading { font-size: clamp(26px, 3vw, 36px); }
.section__heading--center { text-align: center; margin-bottom: 48px; }
.section__heading--sm { font-size: clamp(22px, 2.6vw, 30px); display: flex; align-items: center; gap: 10px; }
.section__heading--sm .dashicons { color: var(--gold); font-size: 22px; }
.section__heading--light { color: #fff; }
.section__heading-row { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 48px; }
.section__heading-group { display: flex; flex-direction: column; gap: 8px; }
.section__eyebrow { color: var(--gold); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.14em; }

/* Matta Fair campaign section — the fair's own deep green, so the campaign
   block reads as distinct from the ivory offers row directly below it. */
.section--matta { background: var(--green); color: #fff; }
/* The section sets white text for its own heading; cards sit on white and
   must keep the normal body colour, or the card title (which inherits) turns
   white-on-white. */
.section--matta .tour-card { color: var(--text); }
.section--matta .section__heading-row { align-items: flex-end; }
.section--matta .link-arrow:hover { color: #fff; }
.section__cta { text-align: center; margin-top: 24px; }

/* ==========================================================================
   Collections
   ========================================================================== */
.collection-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; }
.collection-grid--4 { grid-template-columns: repeat(4, 1fr); }
.collection-card.collection-card--interest {
	display: flex; align-items: center; justify-content: center; text-align: center;
	background: var(--navy); border: 1px solid var(--navy);
}
.collection-card--interest__inner { padding: 32px 24px; color: #fff; }
.collection-card--interest .dashicons { font-size: 32px; width: 32px; height: 32px; color: var(--gold); margin-bottom: 12px; }
.collection-card--interest h3 { font-size: 20px; color: #fff; margin-bottom: 8px; }
.collection-card--interest p { font-size: 14px; color: rgba(255,255,255,0.75); margin-bottom: 16px; }
.collection-card.collection-card--interest:hover { border-color: var(--gold); }

/* Offers row is a horizontal slider (not a static grid) so 5 real offers can
   all live on one line without forcing an awkward 4+1 wrap. */
.promo-tile-grid {
	display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory;
	padding-bottom: 4px; -webkit-overflow-scrolling: touch; scrollbar-width: none;
}
.promo-tile-grid::-webkit-scrollbar { display: none; }
.promo-tile-grid > * { flex: 0 0 220px; scroll-snap-align: start; }
.carousel-dots { display: none; }

/* ==========================================================================
   Mobile bottom tab bar
   ========================================================================== */
.mobile-tabbar { display: none; }
.ai-fab { display: none; }
@media (max-width: 767px) {
	.mobile-tabbar {
		display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 150;
		background: var(--navy); border-top: 1px solid rgba(255,255,255,0.1);
		padding: 8px 4px calc(env(safe-area-inset-bottom, 0px) + 6px);
	}
	.mobile-tabbar__item {
		flex: 1; display: flex; flex-direction: column; align-items: center; gap: 3px;
		color: rgba(255,255,255,0.6); font-size: 10px; padding: 6px 2px;
	}
	.mobile-tabbar__item .dashicons { font-size: 20px; width: 20px; height: 20px; }
	.mobile-tabbar__item.is-active { color: var(--gold); }
	.mobile-tabbar__item--ai { margin-top: -22px; color: var(--navy); }
	.mobile-tabbar__ai-icon {
		width: 44px; height: 44px; border-radius: 50%; background: var(--gold);
		display: flex; align-items: center; justify-content: center; font-size: 20px !important;
		border: 4px solid var(--navy); margin-bottom: 2px;
	}
	.mobile-tabbar__item--ai span:last-child { color: rgba(255,255,255,0.8); }
	body { padding-bottom: 64px; }
	/* Existing WhatsApp widget (#qlwapp, bottom-left) would collide with our new tab bar.
	   Also shrunk from its 60px default — on long-scrolling pages (trip singles) its fixed
	   position otherwise parks on top of whatever body copy happens to scroll underneath it. */
	#qlwapp.qlwapp-bottom-left { bottom: 72px !important; left: 6px !important; }
	#qlwapp.qlwapp-bottom-left .qlwapp-toggle { width: 46px !important; height: 46px !important; }
	#qlwapp.qlwapp-bottom-left .qlwapp-icon { font-size: 18px !important; }

	.section--offers { background: #FBF3E7; }

	.ai-fab {
		display: flex; position: fixed; right: 16px; bottom: 84px; z-index: 140;
		width: 52px; height: 52px; border-radius: 50%; background: var(--green);
		color: var(--gold); align-items: center; justify-content: center;
		font-size: 22px !important; box-shadow: var(--shadow-panel);
	}
}
.promo-tile { position: relative; display: block; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-card); transition: box-shadow .2s, transform .2s; }
.promo-tile:hover { box-shadow: var(--shadow-card-hover); transform: translateY(-4px); }
.promo-tile__media { position: relative; aspect-ratio: 4/3.4; overflow: hidden; background: var(--navy); }
.promo-tile__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.promo-tile__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(16,44,61,0.75), transparent 55%); }
.promo-tile__arrow {
	position: absolute; bottom: 12px; right: 12px; z-index: 2; width: 32px; height: 32px; border-radius: 50%;
	background: var(--gold); color: var(--navy); display: flex; align-items: center; justify-content: center; font-size: 16px;
}
.promo-tile__body { position: absolute; bottom: 16px; left: 16px; right: 52px; z-index: 2; display: flex; flex-direction: column; gap: 4px; }
.promo-tile__eyebrow { font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--gold); font-weight: 700; }
.promo-tile__headline { font-size: 14px; color: #fff; font-weight: 600; line-height: 1.3; }
.promo-tile__media { position: relative; }
.collection-card { display: block; border-radius: var(--radius); overflow: hidden; background: #fff; box-shadow: var(--shadow-card); border: 1px solid var(--border); transition: box-shadow .2s, transform .2s; }
.collection-card:hover { box-shadow: var(--shadow-card-hover); transform: translateY(-4px); }
.collection-card__media { position: relative; aspect-ratio: 3/4; overflow: visible; background: var(--ivory); }
.collection-card__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; border-radius: var(--radius) var(--radius) 0 0; transition: transform .3s; }
.collection-card:hover .collection-card__media img { transform: scale(1.04); }
.collection-card__icon {
	position: absolute; bottom: -22px; left: 20px; width: 44px; height: 44px;
	border-radius: 50%; background: var(--green); color: var(--gold);
	display: flex; align-items: center; justify-content: center; font-size: 20px !important;
}
.collection-card__body { padding: 32px 20px 20px; }
.collection-card__body h3 { font-size: 22px; margin-bottom: 8px; color: var(--text); }
.collection-card__body p { font-size: 14px; color: var(--muted); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* ==========================================================================
   Partners
   ========================================================================== */
.partner-row { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 48px; }
.partner-row__item img { max-width: 120px; max-height: 48px; filter: grayscale(1); opacity: 0.7; transition: all .2s; }
.partner-row--plain .partner-row__item img { filter: none; opacity: 1; }

/* ==========================================================================
   About Us
   ========================================================================== */
.about-block__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.about-block__inner p { margin-top: 20px; font-size: 16px; line-height: 1.75; color: var(--muted); }
.about-block--tint { background: var(--ivory); }
.about-block__inner--split {
	max-width: var(--container); display: grid; grid-template-columns: 200px 1fr; gap: 48px;
	align-items: center; text-align: left;
}
.about-block__stat { text-align: center; }
.about-block__stat-value { display: block; font-family: var(--font-serif); font-size: 56px; color: var(--gold-dark); line-height: 1; }
.about-block__stat-label { display: block; font-size: 13px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); margin-top: 8px; }
.about-block__text p { margin-top: 16px; font-size: 16px; line-height: 1.75; color: var(--muted); }
.about-block__map { margin-top: 48px; }
.about-block__map iframe { width: 100%; height: 380px; border: 0; border-radius: var(--radius); display: block; }

@media (max-width: 767px) {
	.about-block__inner--split { grid-template-columns: 1fr; text-align: center; gap: 24px; }
}
.partner-row__item:hover img { filter: grayscale(0); opacity: 1; }
.partner-row__name { font-family: var(--font-serif); font-size: 18px; color: var(--muted); }

/* ==========================================================================
   Why Cruise
   ========================================================================== */
.why-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 64px; align-items: start; }
.why-grid--single { grid-template-columns: 1fr; max-width: 720px; margin: 0 auto; text-align: center; }
.why-grid--single .checklist { text-align: left; }
.checklist { margin-top: 24px; display: grid; grid-template-columns: 1fr 1fr; gap: 16px 24px; }
.checklist li { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; }
.checklist__icon { color: var(--gold); font-weight: 700; }
.why-grid__left .btn { margin-top: 40px; }

/* ==========================================================================
   Stats strip — single horizontal line, standalone section near page bottom
   ========================================================================== */
.section--stats-strip { background: #fff; padding: 48px 0; }
.stats-strip {
	display: flex; flex-wrap: nowrap; justify-content: center; align-items: flex-start; gap: 40px;
	overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding: 4px 0;
}
.stats-strip::-webkit-scrollbar { display: none; }
.stats-strip__item { flex: 0 0 auto; min-width: 130px; text-align: center; }
.stats-strip__value { display: block; font-family: var(--font-serif); font-size: 22px; color: var(--gold-dark); font-weight: 600; line-height: 1.2; }
.stats-strip__value--sm { font-size: 15px; font-family: var(--font-sans); font-weight: 700; }
.stats-strip__label { display: block; font-size: 12px; color: var(--muted); line-height: 1.3; margin-top: 4px; }

/* ==========================================================================
   Tour cards
   ========================================================================== */
.tour-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.tour-card { background: #fff; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-card); border: 1px solid var(--border); transition: box-shadow .2s, transform .2s; display: flex; flex-direction: column; }
.tour-card:hover { box-shadow: var(--shadow-card-hover); transform: translateY(-4px); }
.tour-card__media { position: relative; aspect-ratio: 4/3; overflow: hidden; background: var(--ivory); }
.tour-card__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.tour-card__brand {
	position: absolute; top: 12px; left: 12px; background: #fff; border-radius: 999px;
	padding: 4px 12px; font-size: 12px; font-weight: 600; color: var(--navy);
}
.tour-card__promo {
	position: absolute; top: 12px; right: 12px; background: var(--gold); color: var(--navy);
	border-radius: 999px; padding: 4px 12px; font-size: 11px; font-weight: 700; text-transform: uppercase;
}
.tour-card__body { padding: 20px; display: flex; flex-direction: column; flex: 1; }
.tour-card__title { font-size: 20px; line-height: 1.3; min-height: 52px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tour-card__meta { display: flex; gap: 12px; margin-top: 8px; font-size: 13px; color: var(--muted); }
.tour-card__desc { margin-top: 12px; font-size: 14px; color: var(--muted); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tour-card__footer { margin-top: auto; padding-top: 16px; border-top: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.tour-card__price { display: flex; flex-direction: column; line-height: 1.2; }
.tour-card__price-label { font-size: 11px; color: var(--muted); text-transform: uppercase; }
.tour-card__price-value { font-family: var(--font-serif); font-size: 20px; font-weight: 600; color: var(--navy); }

/* ==========================================================================
   Testimonials
   ========================================================================== */
.section--testimonials {
	background: linear-gradient(rgba(16,44,61,0.65), rgba(16,44,61,0.65)), url('../images/fallback-testimonial-bg.jpg');
	background-size: cover; background-position: center;
}
.review-platforms { display: flex; justify-content: center; gap: 24px; flex-wrap: wrap; margin-bottom: 32px; }
.review-platform-card {
	display: flex; flex-direction: column; align-items: center; gap: 4px;
	background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.2);
	border-radius: var(--radius); padding: 20px 32px; min-width: 220px; text-align: center;
	transition: background .2s, border-color .2s;
}
.review-platform-card:hover { background: rgba(255,255,255,0.14); border-color: var(--gold); }
.review-platform-card__name { font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; color: rgba(255,255,255,0.7); }
.review-platform-card__stat { font-family: var(--font-serif); font-size: 22px; color: var(--gold); font-weight: 600; }
.review-platform-card__sub { font-size: 12px; color: rgba(255,255,255,0.7); }
.testimonial-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.testimonial-card { background: #fff; border-radius: var(--radius); padding: 32px; color: var(--text); }
.testimonial-card__stars { color: var(--gold); margin-bottom: 12px; letter-spacing: 2px; }
.testimonial-card__quote { font-style: italic; font-size: 15px; line-height: 1.6; }
.testimonial-card__author { margin-top: 16px; font-size: 13px; font-weight: 600; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.testimonial-card__author span { font-weight: 400; color: var(--muted); }
.testimonial-card__avatar { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; }
.testimonial-card__source { display: block; width: 100%; font-size: 12px; color: var(--muted); }

/* ==========================================================================
   Contact
   ========================================================================== */
.contact-row { display: flex; justify-content: space-between; align-items: center; gap: 40px; flex-wrap: wrap; }
.contact-row__text p { margin-top: 8px; color: var(--muted); }
.contact-row__text .btn { margin-top: 24px; }
.contact-row__methods { display: flex; gap: 32px; flex-wrap: wrap; }
.contact-row__methods a { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 500; }
.contact-row__icon {
	width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--gold);
	color: var(--gold); display: flex; align-items: center; justify-content: center; font-size: 18px;
}

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer { background: var(--navy); color: #fff; }
.site-footer__main { max-width: var(--container); margin: 0 auto; padding: 64px 5%; display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr 1fr; gap: 32px; }
.site-footer__logo { opacity: 0.95; }
.site-footer__tagline { margin-top: 12px; font-size: 13px; color: rgba(255,255,255,0.7); }
.site-footer__col h3 { font-family: var(--font-sans); font-size: 13px; text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 16px; color: var(--gold); }
.site-footer__col ul { display: flex; flex-direction: column; gap: 10px; }
.site-footer__col a { font-size: 13px; color: rgba(255,255,255,0.8); }
.site-footer__col a:hover { color: var(--gold); }
.site-footer__social { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.site-footer__social a {
	width: 32px; height: 32px; border-radius: 50%; border: 1px solid rgba(255,255,255,0.3);
	display: flex; align-items: center; justify-content: center; color: #fff; transition: border-color .2s, background-color .2s;
}
.site-footer__social a svg { fill: currentColor; }
.site-footer__social a:hover { border-color: var(--gold); background: rgba(199,154,59,0.15); color: var(--gold); }
.site-footer__bottom {
	border-top: 1px solid rgba(255,255,255,0.15); padding: 24px 5%;
	max-width: var(--container); margin: 0 auto; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px;
	font-size: 13px; color: rgba(255,255,255,0.6);
}
.site-footer__bottom nav { display: flex; gap: 20px; }

/* ==========================================================================
   Collection template (Luxury Escapes, etc.)
   ========================================================================== */
.collection-hero {
	position: relative; min-height: 640px; display: flex; align-items: flex-end;
	background-size: cover; background-position: center; background-color: var(--navy);
	padding-bottom: 100px;
}
.collection-hero__content { position: relative; z-index: 2; max-width: 700px; padding: 0 5%; color: #fff; }
.breadcrumb { font-size: 13px; color: rgba(255,255,255,0.8); margin-bottom: 16px; }
.breadcrumb a { color: rgba(255,255,255,0.8); }
.breadcrumb a:hover { color: var(--gold); }
.collection-hero__label { color: var(--gold); font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.12em; margin-bottom: 12px; }
.collection-hero__heading { font-size: clamp(30px, 4vw, 46px); line-height: 1.2; color: #fff; }
.collection-hero__brand-logo { max-height: 72px; max-width: 260px; background: #fff; padding: 14px 20px; border-radius: 6px; }
/* Cruise-line pages use the logo as their h1; strip the heading box model so
   it renders exactly as the bare <img> did. */
.collection-hero__heading--logo { font-size: 0; line-height: 0; margin: 0; }
.collection-hero__intro { margin-top: 20px; max-width: 560px; font-size: 16px; color: rgba(255,255,255,0.9); }
.collection-hero__actions { margin-top: 28px; display: flex; gap: 16px; flex-wrap: wrap; }

.search-panel-wrap { margin-top: -60px; position: relative; z-index: 5; margin-bottom: 40px; }
.search-panel-wrap--home { margin-top: 48px; margin-bottom: 24px; }
.search-panel--home { background: #fff; border: 1px solid var(--border); box-shadow: var(--shadow-card); }
.search-panel__eyebrow { color: var(--gold); font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 16px; display: flex; align-items: center; gap: 8px; }
.search-panel__eyebrow .dashicons { font-size: 16px; }
.search-panel__tabs { display: flex; gap: 24px; margin-bottom: 20px; border-bottom: 1px solid rgba(255,255,255,0.15); }
.search-panel__tab {
	background: none; border: none; color: rgba(255,255,255,0.6); font-size: 13px; font-weight: 600;
	text-transform: uppercase; letter-spacing: 0.04em; padding: 0 0 12px; border-bottom: 2px solid transparent;
}
.search-panel__tab.is-active, .search-panel__tab:hover { color: #fff; border-bottom-color: var(--gold); }
.search-panel__form--home { grid-template-columns: repeat(6, 1fr); }
.search-panel__form--home .search-panel__submit { grid-column: 1 / -1; }
.search-panel--home .search-panel__field label { color: var(--muted); }
.search-panel--home .search-panel__field select { background: var(--ivory); border: 1px solid var(--border); color: var(--text); }
.search-panel--home .search-panel__field select option { color: var(--text); }
.search-panel__popular { margin-top: 20px; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.search-panel__popular-label { font-size: 12px; color: var(--muted); font-weight: 600; }
.search-panel__tag { font-size: 12px; padding: 6px 14px; border-radius: 999px; border: 1px solid var(--border); color: var(--muted); }
.search-panel__tag:hover { border-color: var(--gold); color: var(--gold-dark); }
.search-panel { background: rgba(16,44,61,0.97); border-radius: var(--radius); padding: 28px 32px; box-shadow: var(--shadow-panel); }
.search-panel__form { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr auto; gap: 16px; align-items: end; }
.search-panel__field { display: flex; flex-direction: column; gap: 6px; }
.search-panel__field label { font-size: 12px; color: rgba(255,255,255,0.7); text-transform: uppercase; letter-spacing: 0.04em; }
.search-panel__field select {
	height: 48px; border-radius: 4px; border: 1px solid rgba(255,255,255,0.2);
	background: rgba(255,255,255,0.08); color: #fff; padding: 0 12px; font-size: 14px;
}
.search-panel__field select option { color: #1c1c1c; }
.search-panel__submit { height: 48px; grid-column: span 1; }
.search-panel__advanced { display: block; text-align: center; margin-top: 16px; color: var(--gold); font-size: 13px; }

/* Collapsed-by-default home search panel: shows a single "Find Voyage" CTA
   first; the full tab/filter form only renders once the visitor asks for it
   (was previously always-expanded, pushing 6 stacked fields into the fold
   and colliding with the fixed WhatsApp/AI FABs on mobile). */
.search-panel__toggle { display: none; width: 100%; }
.search-panel.is-collapsed .search-panel__toggle { display: block; }
.search-panel.is-collapsed .search-panel__body { display: none; }

.section__label { text-align: center; color: var(--gold); font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 8px; }
.section__sub { color: var(--muted); font-size: 15px; margin-top: 8px; }
.section__sub--center { text-align: center; margin-bottom: 40px; }

.benefit-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px 32px; margin-top: 48px; }
.benefit-block { text-align: center; }
.benefit-block .dashicons { font-size: 40px; width: 40px; height: 40px; color: var(--gold); margin-bottom: 16px; }
.benefit-block h3 { font-size: 20px; margin-bottom: 8px; }
.benefit-block p { font-size: 14px; color: var(--muted); max-width: 280px; margin: 0 auto; }

.inspire-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; }
.inspire-card { position: relative; display: block; border-radius: var(--radius); overflow: hidden; aspect-ratio: 3/4; }
.inspire-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.inspire-card:hover img { transform: scale(1.05); }
.inspire-card__overlay {
	position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end;
	padding: 20px; background: linear-gradient(to top, rgba(16,44,61,0.85), transparent 60%); color: #fff;
}
.inspire-card__overlay h3 { font-size: 18px; text-transform: uppercase; letter-spacing: 0.04em; }
.inspire-card__overlay p { font-size: 13px; margin-top: 6px; color: rgba(255,255,255,0.85); }
.inspire-card__overlay .link-arrow { margin-top: 10px; display: inline-block; }

.empty-state { text-align: center; color: var(--muted); padding: 40px 0; font-size: 15px; }
#load-more-trips { margin: 32px auto 0; display: block; }

/* ==========================================================================
   Voyages by Interest
   ========================================================================== */
.voyages-hero {
	position: relative; min-height: 460px; display: flex; align-items: center;
	background-size: cover; background-position: center; background-color: var(--navy);
}
.voyages-hero__content { position: relative; z-index: 2; max-width: 640px; padding: 100px 5% 0; color: #fff; }
.voyages-hero__content h1 { font-size: clamp(32px, 4vw, 48px); line-height: 1.15; color: #fff; }
.voyages-hero__lead { margin-top: 10px; font-size: 19px; color: var(--gold); font-style: italic; }
.voyages-hero__intro { margin-top: 16px; max-width: 480px; font-size: 15px; line-height: 1.6; color: rgba(255,255,255,0.9); }
.voyages-hero__content .btn { margin-top: 28px; }

.voyages-value-strip { background: #fff; border-bottom: 1px solid var(--border); }
.voyages-value-strip ul {
	max-width: var(--container); margin: 0 auto; padding: 24px 5%;
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
}
.voyages-value-strip li { display: flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 600; color: var(--text); position: relative; padding-left: 24px; }
.voyages-value-strip li:not(:first-child) { border-left: 1px solid var(--border); padding-left: 24px; }
.voyages-value-strip .dashicons { position: absolute; left: 0; font-size: 18px; color: var(--gold); }
.voyages-value-strip li:not(:first-child) .dashicons { position: static; margin-right: 2px; }

.interest-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px 28px; }
.interest-card { display: block; border-radius: var(--radius); overflow: hidden; background: #fff; border: 1px solid var(--border); transition: box-shadow .2s, transform .2s; }
.interest-card:hover { box-shadow: var(--shadow-card-hover); transform: translateY(-4px); }
.interest-card__media { aspect-ratio: 4/3; overflow: hidden; background: var(--ivory); }
.interest-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.interest-card:hover .interest-card__media img { transform: scale(1.04); }
.interest-card__body { padding: 20px 22px 24px; }
.interest-card__body h3 { font-size: 19px; margin-bottom: 6px; color: var(--text); }
.interest-card__body p { font-size: 14px; color: var(--muted); margin-bottom: 12px; }

.voyages-cta-banner {
	position: relative; min-height: 200px; display: flex; align-items: center;
	background-size: cover; background-position: center; background-color: var(--navy);
}
.voyages-cta-banner__overlay { position: absolute; inset: 0; background: rgba(16,44,61,0.75); }
.voyages-cta-banner__row {
	position: relative; z-index: 2; max-width: var(--container); margin: 0 auto; padding: 32px 5%;
	display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; color: #fff;
}
.voyages-cta-banner__row p { font-size: 15px; line-height: 1.5; }
.voyages-cta-banner__row .dashicons { color: var(--gold); font-size: 16px; vertical-align: -2px; }
.voyages-cta-banner__row strong { display: inline; }

.pagination { display: flex; justify-content: center; gap: 8px; margin-top: 40px; }
.pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px;
	border-radius: 4px; border: 1px solid var(--border); color: var(--text); font-size: 14px; padding: 0 8px;
}
.pagination .page-numbers.current { background: var(--navy); color: #fff; border-color: var(--navy); }
.pagination .page-numbers:hover:not(.current) { border-color: var(--gold); color: var(--gold-dark); }
.collection-hero--compact { min-height: 320px; align-items: center; padding-bottom: 0; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1279px) {
	.collection-grid { grid-template-columns: repeat(3, 1fr); }
	.collection-grid--4 { grid-template-columns: repeat(2, 1fr); }
	.promo-tile-grid > * { flex: 0 0 200px; }
	.tour-grid { grid-template-columns: repeat(2, 1fr); }
	.site-nav__list { gap: 20px; }
	.inspire-grid { grid-template-columns: repeat(3, 1fr); }
	.benefit-grid { grid-template-columns: repeat(2, 1fr); }
	.search-panel__form--home { grid-template-columns: repeat(3, 1fr); }
	.search-panel__form--home .search-panel__submit { grid-column: span 3; }
	.interest-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 1023px) {
	.site-nav, .site-header__phone { display: none; }
	.site-header__burger { display: block; }
	.site-header__inner { height: 72px; }
	.why-grid { grid-template-columns: 1fr; }
	.trust-strip__list { grid-template-columns: repeat(3, 1fr); }
	.site-footer__main { grid-template-columns: 1fr 1fr 1fr; }
	.search-panel__form { grid-template-columns: 1fr 1fr; }
	.search-panel__submit { grid-column: span 2; }
	.hero__row { flex-direction: column; align-items: flex-start; gap: 32px; padding-top: 110px; }
	.hero--split .hero__content { max-width: 100%; }
	.hero__ai-panel { width: 100%; max-width: 420px; }
	.hero--split { min-height: auto; padding-bottom: 40px; }
}

@media (max-width: 767px) {
	body { overflow-x: hidden; }
	.site-header__inner {
		padding: 0 4%; display: grid; grid-template-columns: 32px 1fr 32px; align-items: center; gap: 0;
	}
	.site-header__burger { grid-column: 1; justify-self: start; }
	.site-header__logo { grid-column: 2; justify-self: center; }
	.site-header__actions { grid-column: 3; justify-self: end; gap: 0; }
	.site-header__actions .btn--gold, .site-header__search-toggle { display: none; }
	.site-header__phone-icon { display: inline-flex; }
	.hero { min-height: 560px; }
	.hero__content { padding: 100px 6% 24px; max-width: 100%; }
	/* Hidden on mobile so the AI search panel lands on the first screen, above the fold. */
	.hero__actions { display: none; }
	.section { padding: 56px 0; }
	.voyages-hero__content { padding: 100px 6% 0; }
	.voyages-value-strip ul { grid-template-columns: repeat(2, 1fr); gap: 16px 12px; padding: 20px 6%; }
	.voyages-value-strip li:nth-child(3) { border-left: none; padding-left: 24px; }
	.interest-grid { grid-template-columns: 1fr; }
	.voyages-cta-banner__row { flex-direction: column; align-items: flex-start; text-align: left; }
	.trust-strip { display: none; } /* hidden on mobile — the hero panel above keeps the fold to heading + AI search only */
	.partner-row {
		flex-wrap: nowrap; justify-content: flex-start; gap: 32px; overflow-x: auto;
		-webkit-overflow-scrolling: touch; scrollbar-width: none; padding-bottom: 4px;
	}
	.partner-row::-webkit-scrollbar { display: none; }
	.partner-row__item { flex-shrink: 0; }
	.collection-grid, .tour-grid, .testimonial-row, .inspire-grid, .benefit-grid { grid-template-columns: 1fr; }

	/* Horizontal swipeable carousels for collections/offers/recommended on mobile. */
	.collection-grid--4, .promo-tile-grid {
		display: flex; grid-template-columns: none; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory;
		padding-bottom: 4px; margin: 0 -6% ; padding-left: 6%; padding-right: 6%;
		-webkit-overflow-scrolling: touch; scrollbar-width: none;
	}
	.collection-grid--4::-webkit-scrollbar, .promo-tile-grid::-webkit-scrollbar { display: none; }
	.collection-grid--4 > *, .promo-tile-grid > * {
		flex: 0 0 78%; scroll-snap-align: start;
	}
	.carousel-dots { display: flex; justify-content: center; gap: 6px; margin-top: 16px; }
	.carousel-dots span { width: 6px; height: 6px; border-radius: 50%; background: var(--border); }
	.carousel-dots span.is-active { background: var(--gold); width: 16px; border-radius: 3px; }

	/* Collection cards: full-bleed photo with dark-overlay icon+label, consistent
	   with the "Voyages by Interest" gateway card, instead of the desktop's
	   separate white text panel below the image. */
	.collection-grid--4 .collection-card { position: relative; aspect-ratio: 3/4; border: none; }
	.collection-grid--4 .collection-card__media { position: absolute; inset: 0; aspect-ratio: auto; height: 100%; overflow: hidden; }
	.collection-grid--4 .collection-card__media::after {
		content: ""; position: absolute; inset: 0;
		background: linear-gradient(180deg, rgba(16,44,61,0.05) 40%, rgba(16,44,61,0.88) 100%);
	}
	.collection-grid--4 .collection-card__icon {
		position: absolute; top: auto; bottom: 74px; left: 20px; z-index: 2;
		width: auto; height: auto; background: none; border-radius: 0; color: var(--gold); font-size: 26px !important;
	}
	.collection-grid--4 .collection-card__body { position: absolute; inset: auto 0 0 0; z-index: 2; padding: 12px 20px 20px; background: none; }
	.collection-grid--4 .collection-card__body h3 { color: #fff; font-size: 18px; margin-bottom: 4px; }
	.collection-grid--4 .collection-card__body p { color: rgba(255,255,255,0.8); }
	.search-panel__form { grid-template-columns: 1fr; }
	.search-panel__submit { grid-column: span 1; }
	.collection-hero { min-height: 520px; padding-bottom: 60px; }
	.search-panel-wrap { margin-top: -30px; }
	.search-panel__form--home { grid-template-columns: 1fr; }
	.search-panel__form--home .search-panel__submit { grid-column: span 1; }
	/* Mobile: the AI panel becomes a proper full-width chat window rather than
	   a cramped teaser — taller conversation + results areas, closer to a
	   real chat-app experience than a small widget bolted onto the hero. */
	.hero__ai-panel { max-width: 100%; }
	.hero__ai-panel .ai-chat-messages { max-height: 45vh; }
	.hero__ai-panel #ai-search-results { max-height: 50vh; }
	.search-panel-wrap--home { margin-top: 24px; }
	.why-grid { gap: 32px; }
	.checklist { grid-template-columns: 1fr; }
	.stats-strip { justify-content: flex-start; padding: 4px 6% 8px; margin: 0 -6%; }
	.contact-row { flex-direction: column; align-items: flex-start; }
	.site-footer__main { grid-template-columns: 1fr; }
	.site-footer__bottom { flex-direction: column; }

	.mobile-nav {
		display: block; position: fixed; top: 0; right: 0; bottom: 0; width: 320px; max-width: 85vw;
		background: var(--navy); z-index: 200; padding: 96px 24px 24px; transform: translateX(100%);
		transition: transform .25s ease; overflow-y: auto;
	}
	.mobile-nav.is-open { transform: translateX(0); }
	.mobile-nav ul { display: flex; flex-direction: column; }
	.mobile-nav a { display: block; padding: 16px 0; color: #fff; font-size: 16px; border-bottom: 1px solid rgba(255,255,255,0.1); }
	.mobile-nav__cta { margin-top: 24px; width: 100%; }

	/* Destinations accordion — tap to expand, matches "click, not hover" on
	   desktop and gives mobile a real (not dead-link) Destinations menu. */
	.mobile-nav__sub-toggle {
		display: flex; align-items: center; justify-content: space-between; width: 100%;
		background: none; border: none; padding: 16px 0; color: #fff; font-size: 16px;
		border-bottom: 1px solid rgba(255,255,255,0.1); font-family: inherit; text-align: left;
	}
	.mobile-nav__chevron { transition: transform .2s ease; color: var(--gold); }
	.mobile-nav__sub-toggle[aria-expanded="true"] .mobile-nav__chevron { transform: rotate(180deg); }
	.mobile-nav__sublist { max-height: 60vh; overflow-y: auto; background: rgba(0,0,0,0.15); }
	.mobile-nav__sublist li { border-bottom: 1px solid rgba(255,255,255,0.06); }
	.mobile-nav__sublist a { padding: 12px 8px 12px 16px; font-size: 14px; border-bottom: none; display: flex !important; align-items: center; gap: 10px; }
	.mobile-nav__sublist-all { color: var(--gold) !important; font-weight: 600; }
}

/* ==========================================================================
   WP Travel Engine's own default taxonomy archive banner (trip_types terms
   with no dedicated collection page yet — e.g. expedition-cruise, river-cruise)
   renders far too short for its background photo, cropping it to a sliver.
   ========================================================================== */
.page-header {
	min-height: 320px !important; display: flex !important; align-items: center !important;
	background-size: cover !important; background-position: center !important;
}
