@charset "UTF-8";
/* ============================================================
   THE VENTURESOMES - theme.css
   Maps brand-guide v2.0 + design-system.md §17 to live CSS.
   Editorial register stays warm + restrained; app-shell register
   gets the iOS-feeling polish (radius, frosted glass, springs).
   ============================================================ */

/* ---------- Custom font (the one face we self-host) ---------- */
@font-face {
	font-family: 'Venturesomes_bold';
	src: url('../fonts/Venturesomes_bold-Regular.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

/* ---------- Design tokens (mirror theme.json + §17) ---------- */
:root {
	/* Colors - brand-guide v2.0 with restraint pass */
	--c-paper: #FAF7F1;
	--c-paper-2: #F3EEE2;
	--c-ink: #0F1A1F;
	--c-ink-soft: #1B2A33;
	--c-muted: #6B6660;
	--c-sand: #E8DDC6;
	--c-sand-deep: #C9B79A;
	--c-turquoise: #4FB3A9;
	--c-turquoise-deep: #3A9890;
	--c-sun: #FFC857;
	--c-sun-deep: #E8AC3D;
	--c-amber: #ED9555;
	--c-amber-soft: #FCEEDC;
	--c-deep-ocean: #1F4E5F;
	--c-jungle: #1F3D2E;
	--c-jungle-soft: #3D6B4F;

	--c-focus-ring: var(--c-turquoise-deep);
	--c-scrim: rgba(15, 26, 31, 0.4);
	--c-frost: rgba(250, 247, 241, 0.72);
	--c-press-tint: rgba(15, 26, 31, 0.06);

	/* Shadows */
	--shadow-sm: 0 1px 2px rgba(15, 26, 31, 0.06);
	--shadow-md: 0 4px 16px rgba(15, 26, 31, 0.08);
	--shadow-lg: 0 12px 40px rgba(15, 26, 31, 0.12);
	--shadow-sun: 0 8px 24px rgba(255, 200, 87, 0.35);
	--shadow-amber: 0 8px 24px rgba(237, 149, 85, 0.35);

	/* Radius scale */
	--r-0: 0;
	--r-1: 8px;
	--r-2: 12px;
	--r-3: 16px;
	--r-4: 24px;
	--r-5: 32px;
	--r-pill: 999px;
	--r-blob: 60% 40% 55% 45% / 50% 60% 40% 50%;
	--r-blob-mobile: 58% 42% 65% 35% / 50% 55% 45% 50%;

	/* Spacing scale */
	--s-1: 4px;  --s-2: 8px;  --s-3: 12px; --s-4: 16px; --s-5: 24px;
	--s-6: 32px; --s-7: 48px; --s-8: 64px; --s-9: 96px; --s-10: 128px;

	/* Type sizes */
	--t-eyebrow: 12px;
	--t-caption: 13px;
	--t-micro: 14px;
	--t-body: 16px;
	--t-lede: 18px;
	--t-h3: 22px;
	--t-h2: clamp(26px, 4vw, 32px);
	--t-h1: clamp(36px, 6vw, 52px);
	--t-script: clamp(26px, 3vw, 36px);
	--t-display: clamp(48px, 10vw, 128px);

	/* Font families */
	--font-display: 'Venturesomes_bold', 'Permanent Marker', system-ui, sans-serif;
	--font-script: 'Caveat', cursive;
	--font-heading: 'Geist', -apple-system, BlinkMacSystemFont, 'SF Pro Display', system-ui, sans-serif;
	--font-body: 'Inter', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;

	/* Motion */
	--motion-fade: 400ms cubic-bezier(0.2, 0, 0, 1);
	--motion-color: 200ms cubic-bezier(0.2, 0, 0, 1);
	--motion-translate: 300ms cubic-bezier(0.2, 0, 0, 1);

	/* Layout */
	--bp-md: 768px;
	--bp-lg: 1080px;
	--bp-xl: 1280px;
	--content-max: 65ch;
}

/* ---------- Reset + base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	background: var(--c-paper);
	color: var(--c-ink-soft);
	font-family: var(--font-body);
	font-size: var(--t-body);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

img, svg, video { max-width: 100%; height: auto; display: block; }
button { font: inherit; }

a {
	color: var(--c-turquoise-deep);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	transition: color var(--motion-color);
}
a:hover { color: var(--c-ink); text-decoration-thickness: 2px; }
a:focus-visible { outline: 2px solid var(--c-focus-ring); outline-offset: 2px; }

h1, h2, h3, h4 {
	font-family: var(--font-heading);
	color: var(--c-ink);
	line-height: 1.1;
	letter-spacing: -0.03em;
	margin: 0;
}
h1 { font-size: var(--t-h1); font-weight: 800; line-height: 1.0; letter-spacing: -0.04em; }
h2 { font-size: var(--t-h2); font-weight: 700; }
h3 { font-size: var(--t-h3); font-weight: 700; letter-spacing: -0.02em; }

p { margin: 0 0 var(--s-4); max-width: var(--content-max); }

.eyebrow {
	font-family: var(--font-body);
	font-weight: 700;
	font-size: var(--t-eyebrow);
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--c-muted);
}
.script {
	font-family: var(--font-script);
	font-weight: 700;
	color: var(--c-turquoise-deep);
}
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ============================================================
   MASTHEAD (the user's key creative ask)
   Load state: horizontal logo + nav, inline with page.
   Scroll state: pill with glassmorphism, square logo, tightened.
   Drives via CSS scroll-driven animation when supported; falls
   back to [data-scrolled] attribute toggled by scroll-morph.js.

   WP block themes wrap parts in <header class="wp-block-template-part">.
   The PARENT (template-part) needs to be sticky so the whole header
   pins to viewport, not just the inner .masthead element.
   ============================================================ */

/* MASTHEAD - two-state with morph on scroll.
   Load: plain full-width inline header (no pill, no border, no bg, no shadow).
   Scroll: fixed floating island ~80% viewport width, frosted glass, no border.
   Logo crossfades horizontal→vertical during the morph. */

/* WP template-part wrapper is fixed at top, no layout height */
.wp-site-blocks > header.wp-block-template-part,
.wp-site-blocks > header[class*="wp-block-template-part"] {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	background: transparent;
	pointer-events: none;
}
.wp-site-blocks > header.wp-block-template-part > *,
.wp-site-blocks > header[class*="wp-block-template-part"] > * {
	pointer-events: auto;
}

/* Reserve top space so the fixed masthead doesn't cover the hero on load.
   Masthead height: padding (s-5×2=48px) + logo (clamp 40–56px) ≈ 88–104px. */
body {
	padding-top: clamp(96px, 9vw, 116px);
}

.masthead {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	max-width: none;
	z-index: 250;
	pointer-events: auto;
	background: rgba(250, 247, 241, 0.92);
	border-bottom: 1px solid color-mix(in srgb, var(--c-sand-deep) 35%, transparent);
	box-shadow: 0 1px 12px rgba(15,26,31,0.04);
	-webkit-backdrop-filter: blur(12px) saturate(150%);
	backdrop-filter: blur(12px) saturate(150%);
	transition:
		max-width 350ms ease,
		top 350ms ease,
		left 350ms ease,
		right 350ms ease,
		background 350ms ease,
		border-bottom-color 350ms ease,
		box-shadow 350ms ease,
		border-radius 350ms ease;
}

/* Load state inner - 3-col grid: logo (left) | nav (centered) | search (right).
   Grid keeps the nav perfectly centered between two auto-sized side columns. */
.masthead__inner {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: var(--s-4);
	padding: var(--s-5) var(--s-5);
	max-width: var(--bp-xl);
	margin: 0 auto;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
	transition:
		padding 350ms ease,
		border-radius 350ms ease,
		background 350ms ease,
		box-shadow 350ms ease,
		backdrop-filter 350ms ease,
		-webkit-backdrop-filter 350ms ease,
		margin-top 350ms ease;
}
.masthead__inner > .logo {
	justify-self: start;
}
.masthead__inner > .masthead__nav {
	justify-self: center;
}
.masthead__inner > .masthead__actions {
	justify-self: end;
	display: inline-flex;
	align-items: center;
	gap: 4px;
}

/* Scroll state - floating island lands. Outer bg/border fade out, inner becomes the pill. */
.masthead.is-scrolled {
	background: transparent;
	border-bottom-color: transparent;
	box-shadow: none;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
}
.masthead.is-scrolled .masthead__inner {
	padding: 10px 24px;
	max-width: min(94vw, var(--bp-xl));
	border-radius: var(--r-pill);
	background: rgba(250, 247, 241, 0.6);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06), 0 2px 8px rgba(0, 0, 0, 0.04);
	-webkit-backdrop-filter: blur(20px) saturate(180%);
	backdrop-filter: blur(20px) saturate(180%);
	margin-top: var(--s-4);
}

/* Logo container - relative anchor so vertical can stack absolutely over horizontal.
   Width follows horizontal at load; collapses to vertical's width when scrolled. */
.logo {
	position: relative;
	display: inline-flex;
	align-items: center;
	color: var(--c-ink);
	text-decoration: none;
	flex: 0 0 auto;
	line-height: 0;
	transition: width 350ms ease, height 350ms ease;
}
.masthead.is-scrolled .logo {
	width: 96px;       /* matches vertical PNG render width */
	height: 56px;
}
.logo:hover { color: var(--c-ink); text-decoration: none; }
.logo:focus-visible { outline: 2px solid var(--c-focus-ring); outline-offset: 4px; border-radius: 8px; }

/* Horizontal logo (visible at load) - <picture> wrapper + <img> inside */
.logo--horizontal {
	display: block;
	height: clamp(40px, 4vw, 56px);
	transition: opacity 250ms ease;
}
.logo--horizontal img {
	display: block;
	height: 100%;
	width: auto;
	max-width: 100%;
	object-fit: contain;
}

/* Vertical logo (hidden at load, fades in on scroll). Stacks on top of the horizontal. */
.logo--vertical {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%) scale(0.7);
	transform-origin: center;
	height: 56px;
	opacity: 0;
	pointer-events: none;
	transition: opacity 250ms ease, transform 350ms ease;
}
.logo--vertical img {
	display: block;
	height: 100%;
	width: auto;
	object-fit: contain;
}

.masthead.is-scrolled .logo--horizontal {
	opacity: 0;
	pointer-events: none;
}
.masthead.is-scrolled .logo--vertical {
	opacity: 1;
	transform: translate(-50%, -50%) scale(1);
	pointer-events: auto;
}

/* Navigation links */
.masthead__nav {
	display: flex;
	align-items: center;
	gap: 4px;
}
.masthead__nav-link {
	font-family: var(--font-body);
	font-weight: 500;
	font-size: 13px;
	color: var(--c-ink-soft);
	background: transparent;
	border: none;
	cursor: pointer;
	text-decoration: none;
	padding: 6px 12px;
	border-radius: var(--r-pill);
	transition: background var(--motion-color), color var(--motion-color);
	white-space: nowrap;
}
.masthead__nav-link:hover {
	background: rgba(0, 0, 0, 0.04);
	color: var(--c-ink);
	text-decoration: none;
}

.masthead__search {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: transparent;
	border: 1px solid transparent;
	border-radius: var(--r-pill);
	padding: 6px 10px;
	color: var(--c-ink-soft);
	cursor: pointer;
	transition: background var(--motion-color), border-color var(--motion-color), color var(--motion-color);
}
.masthead__search:hover { background: rgba(0, 0, 0, 0.04); color: var(--c-ink); }
.masthead__search-hint {
	font-family: var(--font-body);
	font-size: 10px;
	font-weight: 500;
	color: var(--c-muted);
	padding: 2px 6px;
	border: 1px solid var(--c-sand-deep);
	border-radius: 4px;
	letter-spacing: 0.02em;
}

/* Mobile burger (asymmetric blob, hidden by default - shown via media query) */
.masthead__burger {
	display: none;
	width: 56px;
	height: 52px;
	background: var(--c-paper);
	border: 1px solid var(--c-sand-deep);
	border-radius: var(--r-blob-mobile);
	padding: 0;
	cursor: pointer;
	place-items: center;
	transition: transform 350ms linear(0, 0.95 5%, 1.05 25%, 0.99 50%, 1.005 70%, 1 100%);
}
.masthead__burger:active { transform: scale(0.92); }
.masthead__burger img { width: 28px; height: 28px; object-fit: contain; }

/* Reduced motion - disable the background/border transitions */
@media (prefers-reduced-motion: reduce) {
	.masthead, .masthead *, .logo {
		animation: none !important;
		transition: none !important;
	}
}

/* ============================================================
   MOBILE BREAKPOINT - floating-island compresses: logo + burger only
   ============================================================ */
@media (max-width: 768px) {
	.masthead__nav { display: none; }
	.masthead__search { display: none; }
	.masthead__burger { display: inline-flex; align-items: center; justify-content: center; }
	.masthead__inner { gap: var(--s-3); padding: 8px 12px 8px 18px; }
	.logo__word { font-size: 20px; }
	.logo__icon { height: 22px; }
}
.masthead__burger {
	display: none;
	width: 36px;
	height: 32px;
	background: transparent;
	border: 1px solid transparent;
	border-radius: var(--r-pill);
	padding: 0;
	cursor: pointer;
	transition: background var(--motion-color);
}
.masthead__burger:hover { background: rgba(0, 0, 0, 0.04); }
.masthead__burger:active { transform: scale(0.92); }
.masthead__burger img { width: 22px; height: 22px; object-fit: contain; }

/* ============================================================
   PAGE LAYOUT + SHARED BLOCKS
   ============================================================ */
.wp-block-post-content > * { max-width: var(--content-max); margin-left: auto; margin-right: auto; }
.wp-block-post-content > .alignwide { max-width: var(--bp-lg); }
.wp-block-post-content > .alignfull { max-width: 100%; }

/* ============================================================
   HERO - animated blob (the one ambient motion exception)
   ============================================================ */
.blob {
	position: relative;
	aspect-ratio: 1 / 1;
	width: 100%;
	max-width: 480px;
	background: linear-gradient(135deg, var(--c-turquoise) 0%, var(--c-deep-ocean) 60%, var(--c-jungle) 100%);
	border-radius: var(--r-blob);
	overflow: hidden;
	animation: blob-morph 14s ease-in-out infinite;
}
.blob::after {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 30% 20%, rgba(255,255,255,0.15) 0%, transparent 40%),
	            radial-gradient(circle at 70% 80%, rgba(237,149,85,0.20) 0%, transparent 50%);
}
@keyframes blob-morph {
	0%, 100% { border-radius: 60% 40% 55% 45% / 50% 60% 40% 50%; }
	33%      { border-radius: 45% 55% 40% 60% / 60% 45% 55% 40%; }
	66%      { border-radius: 55% 45% 60% 40% / 40% 55% 45% 60%; }
}
@media (prefers-reduced-motion: reduce) {
	.blob { animation: none; }
}

/* ============================================================
   CARDS (universal surface - §17.8.1)
   ============================================================ */
.card {
	background: var(--c-paper);
	border: 1px solid color-mix(in srgb, var(--c-sand-deep) 30%, transparent);
	border-radius: var(--r-3);
	padding: var(--s-5);
	box-shadow: var(--shadow-sm);
	transition: transform var(--motion-translate), box-shadow var(--motion-translate), border-color var(--motion-color);
}
.card:hover {
	transform: translateY(-2px);
	box-shadow: var(--shadow-md);
	border-color: color-mix(in srgb, var(--c-ink-soft) 30%, transparent);
}

.blog-card {
	background: var(--c-paper);
	border: 1px solid color-mix(in srgb, var(--c-sand-deep) 25%, transparent);
	border-radius: var(--r-3);
	overflow: hidden;
	box-shadow: var(--shadow-sm);
	transition: transform var(--motion-translate), box-shadow var(--motion-translate);
	display: flex;
	flex-direction: column;
}
.blog-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.blog-card__image {
	aspect-ratio: 3/2;
	background: linear-gradient(135deg, var(--c-turquoise) 0%, var(--c-deep-ocean) 100%);
	position: relative;
}
.blog-card__body { padding: var(--s-5); }
.blog-card__eyebrow {
	font-family: var(--font-body);
	font-weight: 700;
	font-size: 11px;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--c-muted);
}
.blog-card__eyebrow a,
.blog-card__eyebrow .wp-block-post-terms a {
	color: var(--c-muted);
	text-decoration: none;
}
.blog-card__eyebrow a:hover { color: var(--c-ink); }
.blog-card__title {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: var(--t-h3);
	color: var(--c-ink);
	line-height: 1.15;
	letter-spacing: -0.02em;
	margin: var(--s-2) 0 var(--s-3);
}

/* ============================================================
   STICKER LABEL (§9.24)
   ============================================================ */
.sticker {
	display: inline-block;
	background: var(--c-paper);
	color: var(--c-ink);
	font-family: var(--font-body);
	font-weight: 700;
	font-size: 11px;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	padding: var(--s-2) var(--s-3);
	border-radius: var(--r-pill);
	box-shadow: var(--shadow-sm);
	transform: rotate(-1deg);
}
.sticker--featured { background: var(--c-amber); transform: rotate(-1deg); box-shadow: var(--shadow-amber); }
.sticker--field-notes { background: var(--c-amber); transform: rotate(-2deg); }
.sticker--new { background: var(--c-sun); }
.sticker--ink { background: var(--c-ink); color: var(--c-paper); }

/* On blog-card image */
.blog-card .sticker {
	position: absolute;
	top: var(--s-4);
	left: var(--s-4);
	transform: rotate(-2deg);
}

/* ============================================================
   BUTTONS (§17.8.3) - sun-yellow primary is the workhorse
   ============================================================ */
.btn {
	display: inline-flex;
	align-items: center;
	gap: var(--s-2);
	font-family: var(--font-body);
	font-weight: 600;
	font-size: 15px;
	padding: var(--s-3) var(--s-5);
	border-radius: var(--r-pill);
	border: none;
	cursor: pointer;
	text-decoration: none;
	transition: transform 350ms linear(0, 0.95 5%, 1.05 25%, 0.99 50%, 1.005 70%, 1 100%),
	            background var(--motion-color),
	            box-shadow var(--motion-color);
	min-height: 48px;
}
.btn:focus-visible { outline: 2px solid var(--c-focus-ring); outline-offset: 2px; }

.btn--primary, .btn--sun {
	background: var(--c-sun);
	color: var(--c-ink);
	box-shadow: var(--shadow-sun);
}
.btn--primary:hover, .btn--sun:hover {
	background: var(--c-sun-deep);
	transform: translateY(-2px);
	box-shadow: 0 12px 32px rgba(255, 200, 87, 0.45);
}
.btn--primary:active, .btn--sun:active { transform: scale(0.97); }

.btn--secondary, .btn--ink {
	background: var(--c-ink);
	color: var(--c-paper);
}
.btn--secondary:hover, .btn--ink:hover { background: var(--c-ink-soft); transform: translateY(-1px); box-shadow: var(--shadow-md); }

.btn--tertiary, .btn--outline {
	background: var(--c-paper);
	color: var(--c-ink);
	border: 1px solid var(--c-sand-deep);
}
.btn--tertiary:hover, .btn--outline:hover { background: var(--c-sand); }

.btn--ghost {
	background: transparent;
	color: var(--c-ink-soft);
	padding: var(--s-2) var(--s-4);
	min-height: auto;
}
.btn--ghost:hover { color: var(--c-ink); }

/* ============================================================
   NOTE / CALLOUT (§9.28) - sand-deep default, turquoise pro-tip
   ============================================================ */
.note {
	background: var(--c-paper-2);
	border-left: 3px solid var(--c-sand-deep);
	border-radius: var(--r-1);
	padding: var(--s-5);
	margin: var(--s-5) 0;
	font-size: var(--t-body);
	color: var(--c-ink-soft);
	max-width: 720px;
}
.note strong { color: var(--c-ink); font-weight: 600; }
.note--pro-tip { border-left-color: var(--c-turquoise-deep); }
.note--warning { border-left-color: var(--c-amber-soft); background: var(--c-amber-soft); }

/* ============================================================
   DICTIONARY CARD (§2.3) - the brand's signature lockup
   ============================================================ */
.dictionary-card {
	background: var(--c-paper-2);
	border-radius: var(--r-4);
	padding: var(--s-7);
	margin: var(--s-6) 0;
	position: relative;
	overflow: hidden;
	max-width: 600px;
}
.dictionary-card::before {
	content: "";
	position: absolute;
	top: -40px; right: -40px;
	width: 180px; height: 180px;
	background: var(--c-turquoise);
	border-radius: var(--r-blob);
	opacity: 0.1;
}
.dictionary-card__word {
	font-family: var(--font-heading);
	font-weight: 800;
	font-size: 36px;
	letter-spacing: -0.03em;
	color: var(--c-ink);
	position: relative;
}
.dictionary-card__pos {
	font-family: var(--font-script);
	font-weight: 700;
	font-size: 24px;
	color: var(--c-turquoise-deep);
	margin-left: var(--s-3);
}
.dictionary-card__def {
	font-size: var(--t-lede);
	color: var(--c-ink-soft);
	margin-top: var(--s-3);
	line-height: 1.5;
	position: relative;
}
.dictionary-card__pron {
	margin-top: var(--s-4);
	font-size: var(--t-micro);
	color: var(--c-muted);
	position: relative;
}
.dictionary-card__pron strong { color: var(--c-ink); font-weight: 600; }

/* ============================================================
   DESTINATION PILL ROW (§9.26)
   ============================================================ */
.dest-row {
	display: flex;
	gap: var(--s-3);
	overflow-x: auto;
	padding: var(--s-2) 0 var(--s-4);
	scrollbar-width: thin;
	margin: var(--s-5) 0;
}
.dest-row__prompt {
	font-family: var(--font-script);
	font-weight: 700;
	font-size: 22px;
	color: var(--c-ink);
	padding: 0 var(--s-3);
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
}
.dest-pill {
	display: inline-flex;
	align-items: center;
	gap: var(--s-3);
	padding: 6px 18px 6px 6px;
	background: var(--c-paper);
	border: 1px solid color-mix(in srgb, var(--c-sand-deep) 40%, transparent);
	border-radius: var(--r-pill);
	color: var(--c-ink);
	text-decoration: none;
	flex-shrink: 0;
	transition: border-color var(--motion-color), transform var(--motion-translate);
}
.dest-pill:hover { border-color: var(--c-ink-soft); transform: translateY(-2px); text-decoration: none; }
.dest-pill__photo {
	width: 36px; height: 36px;
	border-radius: 50%;
	flex-shrink: 0;
}
.dest-pill__name { font-weight: 600; font-size: 14px; color: var(--c-ink); }

/* ============================================================
   FEATURED ASYMMETRIC GRID (§9.27)
   ============================================================ */
.featured-grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: var(--s-5);
	margin: var(--s-6) 0;
}
@media (max-width: 768px) {
	.featured-grid { grid-template-columns: 1fr; }
}
.featured-big {
	border-radius: var(--r-4);
	overflow: hidden;
	position: relative;
	aspect-ratio: 4/5;
	box-shadow: var(--shadow-sm);
	cursor: pointer;
	transition: transform var(--motion-translate), box-shadow var(--motion-translate);
	background: linear-gradient(135deg, var(--c-turquoise) 0%, var(--c-deep-ocean) 100%);
	color: var(--c-paper);
	text-decoration: none;
	display: block;
}
.featured-big::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom, transparent 40%, rgba(15, 26, 31, 0.7) 100%);
}
.featured-big:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.featured-big__content {
	position: absolute;
	bottom: var(--s-6); left: var(--s-6); right: var(--s-6);
	z-index: 2;
	color: var(--c-paper);
}
.featured-big__title {
	font-family: var(--font-heading);
	font-weight: 800;
	font-size: 32px;
	line-height: 1.05;
	letter-spacing: -0.03em;
	color: var(--c-paper);
	margin: var(--s-3) 0 var(--s-2);
}
.featured-big__meta { font-size: var(--t-caption); color: rgba(250, 247, 241, 0.8); }

.featured-stack { display: flex; flex-direction: column; gap: var(--s-5); }
.featured-small {
	background: var(--c-paper);
	border: 1px solid color-mix(in srgb, var(--c-sand-deep) 30%, transparent);
	border-radius: var(--r-3);
	padding: var(--s-5);
	cursor: pointer;
	transition: all var(--motion-translate);
	display: flex;
	gap: var(--s-4);
	align-items: center;
	color: var(--c-ink);
	text-decoration: none;
}
.featured-small:hover {
	transform: translateY(-2px);
	box-shadow: var(--shadow-md);
	border-color: color-mix(in srgb, var(--c-ink-soft) 30%, transparent);
	text-decoration: none;
}
.featured-small__img {
	width: 80px; height: 80px;
	border-radius: var(--r-2);
	background: linear-gradient(135deg, var(--c-sand) 0%, var(--c-sand-deep) 100%);
	flex-shrink: 0;
}
.featured-small__eyebrow {
	font-size: 10px;
	font-weight: 700;
	color: var(--c-muted);
	letter-spacing: 0.15em;
	text-transform: uppercase;
	margin-bottom: var(--s-1);
}
.featured-small__title {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: var(--t-body);
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: var(--c-ink);
}

/* ============================================================
   FOOTER
   ============================================================ */
.footer {
	background: var(--c-paper-2);
	margin-top: var(--s-9);
	padding: var(--s-7) var(--s-5) var(--s-6);
	border-top: 1px solid var(--c-sand-deep);
	position: relative;
}
.footer__above {
	text-align: center;
	font-family: var(--font-body);
	font-weight: 700;
	font-size: var(--t-eyebrow);
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--c-muted);
	margin-bottom: var(--s-6);
}
.footer__above a, .footer__continent {
	color: var(--c-muted);
	text-decoration: none;
	transition: color var(--motion-color);
}
.footer__above a:hover { color: var(--c-ink); text-decoration: underline; }

.footer__columns {
	max-width: var(--bp-xl);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
	gap: var(--s-6);
	padding-bottom: var(--s-6);
	border-bottom: 1px solid var(--c-sand-deep);
}
@media (max-width: 768px) {
	.footer__columns { grid-template-columns: 1fr; }
}
.footer__column { display: flex; flex-direction: column; gap: var(--s-2); }
.footer__heading {
	font-family: var(--font-body);
	font-weight: 700;
	font-size: var(--t-eyebrow);
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--c-muted);
	margin-bottom: var(--s-3);
	margin-top: var(--s-3);
}
.footer__heading:first-child { margin-top: 0; }
.footer__column a {
	color: var(--c-ink-soft);
	text-decoration: none;
	padding: 2px 0;
}
.footer__column a:hover { color: var(--c-ink); text-decoration: underline; }
.footer__brand { display: flex; flex-direction: column; align-items: flex-start; gap: var(--s-2); }
.footer__logo { display: block; line-height: 0; }
.footer__logo img { display: block; width: 140px; height: auto; object-fit: contain; }
.footer__brand-tag { font-family: var(--font-script); color: var(--c-ink-soft); font-size: 18px; margin-top: var(--s-2); }
.footer__social { display: flex; gap: var(--s-4); margin-top: var(--s-3); }
.footer__social a { font-family: var(--font-body); font-size: 12px; font-weight: 700; color: var(--c-muted); letter-spacing: 0.1em; }
.footer__viewall { color: var(--c-turquoise-deep) !important; font-weight: 500; margin-top: var(--s-2); }
.footer__heading--legal { margin-top: var(--s-5); }
.footer__newsletter { display: flex; gap: var(--s-2); margin-top: var(--s-3); }
.footer__newsletter input {
	flex: 1;
	padding: var(--s-3) var(--s-4);
	border: 1px solid var(--c-sand-deep);
	border-radius: var(--r-pill);
	background: var(--c-paper);
	font-family: var(--font-body);
	font-size: var(--t-micro);
	color: var(--c-ink);
}
.footer__newsletter input:focus { outline: 2px solid var(--c-focus-ring); outline-offset: 2px; border-color: var(--c-turquoise-deep); }
.footer__newsletter button {
	background: var(--c-sun);
	color: var(--c-ink);
	font-weight: 600;
	font-size: 14px;
	border: none;
	padding: var(--s-3) var(--s-4);
	border-radius: var(--r-pill);
	cursor: pointer;
}
.footer__newsletter button:hover { background: var(--c-sun-deep); }
.footer__locales { display: flex; gap: var(--s-4); margin-top: var(--s-4); justify-content: flex-start; }
.footer__locales a { font-family: var(--font-body); font-size: var(--t-micro); padding: var(--s-2) var(--s-3); }
.footer__locales a strong { color: var(--c-ink); }

.footer__below {
	max-width: var(--bp-xl);
	margin: 0 auto;
	padding-top: var(--s-6);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--s-3);
	text-align: center;
}
.footer__byline { font-family: var(--font-script); font-style: italic; font-size: var(--t-micro); color: var(--c-ink-soft); }
.footer__wave { color: var(--c-turquoise); }
.footer__copyright {
	font-family: var(--font-body);
	font-size: var(--t-eyebrow);
	color: var(--c-muted);
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

/* ============================================================
   SEARCH PALETTE (§9.15)
   ============================================================ */
.search-palette[hidden] { display: none; }
.search-palette {
	position: fixed;
	inset: 0;
	background: var(--c-scrim);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	z-index: 200;
	display: grid;
	place-items: start center;
	padding-top: 15vh;
}
.search-palette__panel {
	width: 92vw;
	max-width: 640px;
	max-height: 70vh;
	background: var(--c-paper);
	border-radius: var(--r-4);
	border: 1px solid var(--c-sand-deep);
	box-shadow: var(--shadow-lg);
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.search-palette__field {
	display: flex;
	align-items: center;
	gap: var(--s-3);
	padding: var(--s-5);
	border-bottom: 1px solid var(--c-sand-deep);
}
.search-palette__field input {
	flex: 1;
	border: none;
	background: transparent;
	font-family: var(--font-body);
	font-size: var(--t-h3);
	color: var(--c-ink);
	outline: none;
}
.search-palette__field input::placeholder { color: var(--c-muted); }
.search-palette__esc {
	font-family: var(--font-body);
	font-size: 11px;
	color: var(--c-muted);
	padding: 4px 8px;
	border: 1px solid var(--c-sand-deep);
	border-radius: 4px;
}
.search-palette__results { overflow-y: auto; padding: var(--s-3); }
.search-palette__group-heading {
	font-family: var(--font-body);
	font-weight: 700;
	font-size: var(--t-eyebrow);
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--c-muted);
	padding: var(--s-4) var(--s-4) var(--s-2);
}
.search-palette__row {
	display: flex;
	align-items: flex-start;
	gap: var(--s-4);
	padding: var(--s-4);
	border-radius: var(--r-2);
	cursor: pointer;
	color: var(--c-ink);
	text-decoration: none;
}
.search-palette__row:hover, .search-palette__row[aria-selected="true"] { background: var(--c-press-tint); }
.search-palette__row-title { font-family: var(--font-heading); font-weight: 700; font-size: var(--t-h3); line-height: 1.2; color: var(--c-ink); }
.search-palette__row-context { font-size: var(--t-eyebrow); color: var(--c-muted); letter-spacing: 0.15em; text-transform: uppercase; margin-top: var(--s-1); }

/* ============================================================
   HOME PAGE LAYOUT (matches pages/EN/home.md sections)
   ============================================================ */
.home-hero {
	max-width: var(--bp-xl);
	margin: 0 auto;
	padding: var(--s-7) var(--s-5) var(--s-6);
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	gap: var(--s-7);
	align-items: center;
}
@media (max-width: 900px) {
	.home-hero { grid-template-columns: 1fr; }
}
.home-hero__text { position: relative; z-index: 2; }
.home-hero__eyebrow {
	font-family: var(--font-body);
	font-weight: 700;
	font-size: var(--t-eyebrow);
	color: var(--c-turquoise-deep);
	letter-spacing: 0.15em;
	text-transform: uppercase;
	margin-bottom: var(--s-4);
	display: inline-flex;
	align-items: center;
	gap: var(--s-2);
}
.home-hero__eyebrow::before {
	content: "";
	display: inline-block;
	width: 8px; height: 8px;
	background: var(--c-turquoise-deep);
	border-radius: 50%;
}
.home-hero__title {
	font-family: var(--font-display);
	font-size: var(--t-display);
	line-height: 0.95;
	color: var(--c-ink);
	letter-spacing: 0.01em;
	margin: 0 0 var(--s-3);
}
.home-hero__title .accent { color: var(--c-turquoise-deep); display: inline-block; transform: rotate(-2deg); }
.home-hero__tagline {
	font-family: var(--font-script);
	font-weight: 700;
	font-size: var(--t-script);
	color: var(--c-turquoise-deep);
	margin-top: var(--s-5);
	max-width: 600px;
	line-height: 1.2;
}
.home-hero__sub { font-family: var(--font-body); font-size: var(--t-body); color: var(--c-muted); margin-top: var(--s-4); max-width: 500px; }
.home-hero__cta { margin-top: var(--s-6); display: flex; gap: var(--s-3); flex-wrap: wrap; }
.home-hero__blob-wrap { position: relative; aspect-ratio: 1/1; max-width: 480px; margin-left: auto; }
.home-hero__blob-sticker {
	position: absolute;
	background: var(--c-paper);
	padding: var(--s-3) var(--s-4);
	border-radius: var(--r-pill);
	box-shadow: var(--shadow-lg);
	font-family: var(--font-body);
	font-size: 13px;
	font-weight: 600;
	color: var(--c-ink);
	display: inline-flex;
	align-items: center;
	gap: var(--s-2);
	z-index: 3;
}
.home-hero__blob-sticker--top { top: 10%; left: -30px; transform: rotate(-6deg); }
.home-hero__blob-sticker--bottom { bottom: 12%; right: -20px; transform: rotate(4deg); }
.home-hero__blob-sticker .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--c-turquoise-deep); }
.home-hero__blob-sticker--bottom .dot { background: var(--c-sun-deep); }

.home-section {
	max-width: var(--bp-xl);
	margin: 0 auto;
	padding: var(--s-9) var(--s-5);
}
.home-section__eyebrow { font-family: var(--font-body); font-weight: 700; font-size: var(--t-eyebrow); color: var(--c-muted); letter-spacing: 0.2em; text-transform: uppercase; margin-bottom: var(--s-3); }
.home-section__title { font-family: var(--font-heading); font-weight: 800; font-size: var(--t-h1); color: var(--c-ink); letter-spacing: -0.04em; margin: 0 0 var(--s-4); }
.home-section__lede { font-size: var(--t-lede); color: var(--c-ink-soft); max-width: 720px; margin-bottom: var(--s-6); }

/* ============================================================
   404
   ============================================================ */
.page-404 {
	max-width: 580px;
	margin: var(--s-9) auto;
	padding: 0 var(--s-5);
	text-align: center;
}
.page-404__number {
	font-family: var(--font-heading);
	font-weight: 800;
	font-size: var(--t-display);
	color: var(--c-ink);
	line-height: 1;
	margin: 0 0 var(--s-5);
	letter-spacing: -0.04em;
}

/* ============================================================
   UTILITIES
   ============================================================ */
.container { max-width: var(--bp-xl); margin: 0 auto; padding: 0 var(--s-5); }
.text-center { text-align: center; }
.flex { display: flex; }
.gap-3 { gap: var(--s-3); }
.gap-5 { gap: var(--s-5); }
.mt-5 { margin-top: var(--s-5); }
.mt-6 { margin-top: var(--s-6); }
.mt-7 { margin-top: var(--s-7); }

/* ============================================================
   LIGHTBOX + COOKIE BANNER + CHAPTER NAV (final components)
   ============================================================ */

.lightbox[hidden] { display: none; }
.lightbox {
	position: fixed;
	inset: 0;
	background: var(--c-scrim);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	z-index: 300;
	display: grid;
	place-items: center;
	padding: var(--s-5);
}
.lightbox__image { max-width: 90vw; max-height: 80vh; object-fit: contain; border-radius: var(--r-2); box-shadow: var(--shadow-lg); }
.lightbox__caption { margin-top: var(--s-3); color: var(--c-paper); text-align: center; max-width: 600px; font-size: var(--t-body); }
.lightbox__close, .lightbox__prev, .lightbox__next {
	position: absolute;
	background: var(--c-paper);
	border: 1px solid var(--c-sand-deep);
	border-radius: var(--r-pill);
	width: 44px; height: 44px;
	display: grid;
	place-items: center;
	font-size: 20px;
	color: var(--c-ink);
	cursor: pointer;
	box-shadow: var(--shadow-md);
}
.lightbox__close { top: var(--s-5); right: var(--s-5); }
.lightbox__prev { left: var(--s-5); top: 50%; transform: translateY(-50%); }
.lightbox__next { right: var(--s-5); top: 50%; transform: translateY(-50%); }
@media (max-width: 768px) {
	.lightbox__prev, .lightbox__next { display: none; }
}

.cookie-banner {
	position: fixed;
	bottom: var(--s-5);
	right: var(--s-5);
	z-index: 250;
	max-width: 380px;
}
@media (max-width: 768px) {
	.cookie-banner { left: var(--s-4); right: var(--s-4); max-width: none; }
}
.cookie-banner__panel {
	background: var(--c-paper);
	border: 1px solid var(--c-sand-deep);
	border-radius: var(--r-3);
	padding: var(--s-5);
	box-shadow: var(--shadow-lg);
}
.cookie-banner__title { font-family: var(--font-heading); font-weight: 700; font-size: var(--t-h3); color: var(--c-ink); margin-bottom: var(--s-3); }
.cookie-banner__body { font-size: var(--t-micro); color: var(--c-ink-soft); margin-bottom: var(--s-4); }
.cookie-banner__actions { display: flex; gap: var(--s-3); }
.cookie-banner__actions .btn { min-height: 40px; padding: var(--s-2) var(--s-4); }

.chapter-nav {
	display: flex;
	gap: var(--s-3);
	overflow-x: auto;
	padding: var(--s-3) var(--s-5);
	margin: var(--s-5) 0;
	scrollbar-width: thin;
	scroll-snap-type: x mandatory;
}
.chapter-nav .chip {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--s-2);
	min-width: 88px;
	min-height: 88px;
	padding: var(--s-3) var(--s-4);
	background: var(--c-paper);
	border: 1px solid var(--c-sand-deep);
	border-radius: var(--r-2);
	color: var(--c-ink);
	text-decoration: none;
	transition: border-color var(--motion-color), background var(--motion-color);
	scroll-snap-align: start;
	flex-shrink: 0;
}
.chapter-nav .chip:hover {
	border-color: color-mix(in srgb, var(--c-ink-soft) 30%, transparent);
	text-decoration: none;
}
.chapter-nav .chip[aria-current="true"] {
	border-color: var(--c-turquoise-deep);
	background: var(--c-paper-2);
}
.chapter-nav .chip img { width: 28px; height: 28px; }
.chapter-nav .chip span {
	font-family: var(--font-body);
	font-weight: 500;
	font-size: 13px;
	color: var(--c-ink);
	text-align: center;
	line-height: 1.2;
}

/* ============================================================
   HERO V2 - image (in a blob) left, about text right
   ============================================================ */
body.home { padding-top: 0 !important; padding-left: 0 !important; padding-right: 0 !important; }
body.home .wp-site-blocks > main { margin-top: 0 !important; }
body.home .entry-content > *,
body.home .wp-block-post-content > *,
body.home main.home > .entry-content > *,
body.home main.home > .wp-block-post-content > * {
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}
.hero-v2 {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 0;
	align-items: stretch;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	max-width: none;
	padding: 0;
	height: 85vh;
	min-height: 540px;
}
.hero-v2__media {
	width: 100%;
	height: 100%;
	display: block;
	position: relative;
	overflow: visible;
	padding: 0;
}
.hero-v2__blob {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 0 50% 50% 0 / 0 40% 40% 0;
	overflow: hidden;
	background: var(--c-sand);
	animation: blob-morph-edge 26s ease-in-out infinite;
	box-shadow: 0 30px 60px rgba(15,26,31,0.10);
}
@keyframes blob-morph-edge {
	0%, 100% { border-radius: 0 50% 50% 0 / 0 40% 40% 0; }
	33%      { border-radius: 0 55% 45% 0 / 0 50% 50% 0; }
	66%      { border-radius: 0 45% 55% 0 / 0 60% 35% 0; }
}
.hero-v2__blob img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.hero-v2__text {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(120px, 13vh, 150px) clamp(32px, 5vw, 80px) clamp(40px, 6vh, 80px);
	max-width: 640px;
}
.hero-v2__title {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: clamp(40px, 5.5vw, 72px);
	line-height: 1.05;
	color: var(--c-ink);
	margin: 0 0 var(--s-4);
}
.hero-v2__title em {
	font-style: italic;
	color: inherit;
}
.hero-v2__lede {
	font-family: var(--font-body);
	font-size: 18px;
	line-height: 1.6;
	color: var(--c-ink-soft);
	margin: 0 0 var(--s-4);
	max-width: 540px;
}
.hero-v2__cta-line {
	font-family: var(--font-body);
	font-size: 18px;
	line-height: 1.6;
	color: var(--c-ink-soft);
	margin: 0;
}
.destinations-pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: var(--c-ink);
	color: var(--c-paper);
	font-family: var(--font-body);
	font-weight: 600;
	font-size: 15px;
	border: none;
	border-radius: var(--r-pill);
	padding: 6px 14px;
	cursor: pointer;
	transition: background var(--motion-color), transform var(--motion-color);
	vertical-align: middle;
}
.destinations-pill:hover {
	background: var(--c-ink-soft);
	transform: translateY(-1px);
}

@media (max-width: 768px) {
	.hero-v2 { grid-template-columns: 1fr; gap: 0; min-height: auto; }
	.hero-v2__media { order: -1; height: 60vh; }
	.hero-v2__text { padding: var(--s-6) var(--s-5); }
}

/* ============================================================
   DESTINATIONS MODAL - opens from the hero pill
   ============================================================ */
.dest-modal {
	position: fixed;
	inset: 0;
	z-index: 200;
	display: none;
	align-items: flex-start;
	justify-content: center;
	padding: clamp(108px, 13vh, 140px) var(--s-5) var(--s-5);
	background: rgba(26, 26, 26, 0.22);
}
.dest-modal[data-open="true"] {
	display: flex;
}
html[data-modal-open] { overflow: hidden; }
html[data-modal-open] .wp-site-blocks > *:not(header) {
	filter: blur(6px);
	transition: filter 200ms ease;
	pointer-events: none;
}
.dest-modal__panel {
	background: var(--c-paper);
	border-radius: 24px;
	padding: var(--s-6) var(--s-6);
	max-width: 1100px;
	width: 100%;
	max-height: calc(100vh - 120px);
	overflow-y: auto;
	box-shadow: 0 20px 60px rgba(0,0,0,0.18);
}
.dest-modal__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--s-6) var(--s-5);
}
.dest-modal__continent-name {
	font-family: var(--font-body);
	font-weight: 700;
	font-size: 11px;
	letter-spacing: 0.2em;
	color: var(--c-muted);
	margin-bottom: var(--s-3);
}
.dest-modal__continent ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.dest-modal__continent a {
	display: block;
	padding: 6px 10px;
	border-radius: 8px;
	font-family: var(--font-body);
	font-size: 15px;
	color: var(--c-ink);
	text-decoration: none;
	transition: background var(--motion-color);
}
.dest-modal__continent a:hover { background: var(--c-sand); }
.dest-modal__soon {
	font-family: var(--font-script);
	font-size: 17px;
	color: var(--c-muted);
	margin: 0;
}
@media (max-width: 768px) {
	.dest-modal__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
	.dest-modal__grid { grid-template-columns: 1fr; }
}

/* ============================================================
   WHERE TO NEXT - title left, scrollable pills right with edge gradients
   ============================================================ */
.where-next {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-top: var(--s-7);
	max-width: none;
	padding: var(--s-7) 0 var(--s-7);
	overflow: hidden;
	background: var(--c-paper);
}
.where-next__rail {
	position: relative;
	display: flex;
	align-items: center;
	gap: var(--s-6);
	padding: 0 clamp(24px, 5vw, 80px);
}
.where-next__title {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: clamp(36px, 5vw, 64px);
	line-height: 1;
	margin: 0;
	flex: 0 0 auto;
	color: var(--c-ink);
	white-space: pre-line;
}
.where-next__scroller {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-wrap: nowrap;
	gap: 6px;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-behavior: smooth;
	scrollbar-width: none;
	-ms-overflow-style: none;
	padding: var(--s-3) 0;
	/* fade pills at left/right edges */
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 60px, #000 calc(100% - 120px), transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 60px, #000 calc(100% - 120px), transparent 100%);
}
.where-next__scroller::-webkit-scrollbar { display: none; }

.where-next .dest-pill {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 18px;
	background: var(--c-paper);
	border: 1px solid var(--c-sand-deep);
	border-radius: var(--r-pill);
	font-family: var(--font-body);
	font-size: 15px;
	font-weight: 500;
	color: var(--c-ink);
	text-decoration: none;
	white-space: nowrap;
	transition: background var(--motion-color), border-color var(--motion-color), transform var(--motion-color);
}
.where-next .dest-pill:hover {
	background: var(--c-sand);
	border-color: var(--c-ink-soft);
	transform: translateY(-1px);
}
.where-next .dest-pill__flag { font-size: 18px; line-height: 1; }
.where-next .dest-pill__name { color: var(--c-ink); }

@media (max-width: 768px) {
	.where-next__rail { flex-direction: column; align-items: flex-start; gap: var(--s-4); padding: 0 var(--s-4); }
	.where-next__scroller { width: 100%; }
}

/* ============================================================
   PINNED POSTS GRID (3 cards above the fold)
   ============================================================ */
.home-pinned {
	max-width: var(--bp-xl);
	margin: 0 auto;
	padding: var(--s-5);
}
.home-pinned .wp-block-post-template {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--s-5);
	list-style: none;
	padding: 0;
	margin: 0;
}
.pinned-card { display: flex; flex-direction: column; gap: var(--s-3); }
.pinned-card__image img {
	width: 100%;
	aspect-ratio: 3/4;
	object-fit: cover;
	border-radius: var(--r-lg);
}
.pinned-card__eyebrow {
	font-family: var(--font-body);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--c-turquoise-deep);
}
.pinned-card__title a {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: 22px;
	color: var(--c-ink);
	line-height: 1.2;
	text-decoration: none;
}
.pinned-card__title a:hover { color: var(--c-turquoise-deep); }
@media (max-width: 768px) {
	.home-pinned .wp-block-post-template { grid-template-columns: 1fr; }
}

/* ============================================================
   NAV MENU MODALS - mega-modal style matching Destinations
   ============================================================ */
.nav-modal {
	position: fixed;
	inset: 0;
	z-index: 200;
	display: none;
	align-items: flex-start;
	justify-content: center;
	padding: clamp(108px, 13vh, 140px) var(--s-5) var(--s-5);
	background: rgba(26, 26, 26, 0.22);
}
.nav-modal[data-open="true"] { display: flex; }
.nav-modal__panel {
	background: var(--c-paper);
	border-radius: 24px;
	padding: var(--s-6);
	max-width: 1100px;
	width: 100%;
	max-height: calc(100vh - 160px);
	overflow-y: auto;
	box-shadow: 0 20px 60px rgba(0,0,0,0.18);
}
.nav-modal__cols {
	display: grid;
	grid-template-columns: minmax(0, 360px) minmax(0, 1fr);
	gap: var(--s-6) var(--s-7);
}
@media (max-width: 880px) {
	.nav-modal__cols { grid-template-columns: 1fr; }
}
.nav-modal__col-head {
	font-family: var(--font-body);
	font-weight: 700;
	font-size: 13px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-muted);
	margin-bottom: var(--s-3);
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.nav-modal__col-head--mt { margin-top: var(--s-5); }
.nav-modal__icon-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.nav-modal__icon-list a {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 10px 12px;
	border-radius: 14px;
	text-decoration: none;
	color: var(--c-ink);
	transition: background 180ms ease;
}
.nav-modal__icon-list a:hover { background: var(--c-paper-2); }
.nav-modal__icon-list img {
	width: 40px;
	height: 40px;
	object-fit: contain;
	flex-shrink: 0;
	background: var(--c-paper-2);
	border-radius: 50%;
	padding: 6px;
}
.nav-modal__item-title {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 14px;
	letter-spacing: -0.01em;
	color: var(--c-ink);
	line-height: 1.2;
}
.nav-modal__item-sub {
	font-family: var(--font-body);
	font-size: 12px;
	color: var(--c-muted);
	margin-top: 2px;
}
.nav-modal__cards {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
}
.nav-modal__cards--big { grid-template-columns: repeat(2, 1fr); }
.nav-card {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 14px;
	background: var(--c-paper-2);
	border-radius: 14px;
	text-decoration: none;
	color: var(--c-ink);
	transition: background 180ms ease, transform 180ms ease;
}
.nav-card:hover {
	background: var(--c-sand);
	transform: translateY(-1px);
	text-decoration: none;
}
.nav-card__icon {
	width: 44px;
	height: 44px;
	flex-shrink: 0;
	border-radius: 12px;
	background: var(--c-paper);
	display: flex;
	align-items: center;
	justify-content: center;
}
.nav-card__icon img { width: 28px; height: 28px; object-fit: contain; }
.nav-card__title {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 14px;
	line-height: 1.25;
	color: var(--c-ink);
}
.nav-card--big { padding: 16px; }
.nav-card--big .nav-card__icon { width: 56px; height: 56px; }
.nav-card--big .nav-card__icon img { width: 36px; height: 36px; }
.nav-card--big .nav-card__title { font-size: 16px; }
.nav-modal__footer-cta {
	margin-top: var(--s-5);
	padding-top: var(--s-4);
	border-top: 1px solid color-mix(in srgb, var(--c-sand-deep) 35%, transparent);
	text-align: center;
}
.nav-modal__footer-cta a {
	font-family: var(--font-body);
	font-weight: 600;
	font-size: 14px;
	color: var(--c-ink);
	text-decoration: none;
}
.nav-modal__footer-cta a:hover { color: var(--c-turquoise-deep); }

/* Where-to-Stay modal: continent sections with country pills */
.nav-modal__continent { margin-bottom: var(--s-5); }
.nav-modal__continent:last-child { margin-bottom: 0; }
.nav-modal__country-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.country-pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	background: var(--c-paper-2);
	border-radius: var(--r-pill);
	font-family: var(--font-body);
	font-size: 14px;
	font-weight: 600;
	color: var(--c-ink);
	text-decoration: none;
	transition: background 180ms ease, transform 180ms ease;
}
.country-pill:hover {
	background: var(--c-sand);
	transform: translateY(-1px);
	text-decoration: none;
}
.country-pill span:first-child { font-size: 18px; line-height: 1; }

/* About-us modal: simple list */
.nav-modal--simple .nav-modal__panel { max-width: 460px; padding: var(--s-5); }
.nav-modal__simple-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.nav-modal__simple-list a {
	display: block;
	padding: 14px 18px;
	border-radius: 14px;
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 16px;
	color: var(--c-ink);
	text-decoration: none;
	transition: background 180ms ease;
}
.nav-modal__simple-list a:hover { background: var(--c-paper-2); }

/* Page blur when any nav modal is open (legacy support for older flag) */
html[data-nav-open] .wp-site-blocks > *:not(header) {
	filter: blur(6px);
	transition: filter 200ms ease;
	pointer-events: none;
}

/* ============================================================
   COUNTRY PAGE - hero, subnav, must-visit grid, FAQ
   ============================================================ */
/* On country pages, remove the body padding-top so the hero starts at viewport top */
body.country-page-active,
body.page-template-page-country { padding-top: 0; padding-left: 0; padding-right: 0; }
body.page-template-page-country main,
body.page-template-page-country .wp-site-blocks > main { margin-top: 0; }
/* break out of wp post-content's is-layout-flow max-width clamp */
body.page-template-page-country .entry-content > *,
body.page-template-page-country .wp-block-post-content > *,
.country-page .entry-content > *,
main.country-page > .entry-content > *,
.wp-block-group.country-page .wp-block-post-content > *,
main.country-page .wp-block-post-content > * {
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}
.country-page > .country-hero:first-child,
.wp-block-group.country-page > .country-hero:first-child {
	margin-top: 0;
}
.country-hero {
	position: relative;
	width: 100vw;
	max-width: none;
	margin-left: calc(50% - 50vw);
	height: clamp(420px, 60vh, 620px);
	overflow: hidden;
}
.country-hero__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.country-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.35) 60%, rgba(26,26,26,0.55) 100%);
}
.country-hero__title {
	position: absolute;
	bottom: var(--s-6);
	left: 0;
	right: 0;
	text-align: center;
	font-family: var(--font-display);
	font-weight: 400;
	font-size: clamp(56px, 9vw, 128px);
	color: var(--c-paper);
	line-height: 1;
	margin: 0;
	text-shadow: 0 4px 24px rgba(0,0,0,0.4);
	padding: 0 var(--s-5);
}
.country-hero__eyebrow {
	position: absolute;
	top: clamp(140px, 14vw, 180px);
	left: 0;
	right: 0;
	text-align: center;
	font-family: var(--font-body);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	color: var(--c-paper);
	opacity: 0.9;
}

.country-subnav {
	display: flex;
	justify-content: center;
	gap: var(--s-3);
	padding: var(--s-5) var(--s-5);
	flex-wrap: wrap;
	max-width: var(--bp-xl);
	margin: 0 auto;
}
.country-subnav__item {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	padding: 14px 20px;
	background: var(--c-paper);
	border: 1px solid var(--c-sand-deep);
	border-radius: var(--r-lg);
	font-family: var(--font-body);
	font-weight: 600;
	font-size: 13px;
	color: var(--c-ink);
	text-decoration: none;
	min-width: 110px;
	transition: background var(--motion-color), border-color var(--motion-color);
}
.country-subnav__item img { width: 32px; height: 32px; object-fit: contain; }
.country-subnav__item:hover { background: var(--c-sand); border-color: var(--c-ink-soft); }

.country-intro {
	max-width: 720px;
	margin: 0 auto;
	padding: var(--s-5) var(--s-5);
	font-family: var(--font-body);
	font-size: 18px;
	line-height: 1.7;
	color: var(--c-ink-soft);
}

.must-visit {
	max-width: var(--bp-xl);
	margin: 0 auto;
	padding: var(--s-6) var(--s-5);
}
.must-visit__title {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: clamp(32px, 4vw, 44px);
	color: var(--c-ink);
	margin: 0 0 var(--s-4);
}
.must-visit__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: var(--s-5);
}
.must-visit__card {
	display: flex;
	flex-direction: column;
	background: var(--c-paper);
	border: 1px solid color-mix(in srgb, var(--c-sand-deep) 60%, transparent);
	border-radius: var(--r-lg);
	overflow: hidden;
	box-shadow: 0 1px 3px rgba(15,26,31,0.04);
	transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.must-visit__card:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 32px rgba(15,26,31,0.10);
	border-color: var(--c-sand-deep);
}
.must-visit__card-image {
	aspect-ratio: 4/5;
	background: var(--c-paper-2);
	display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 10px;
	color: var(--c-muted); font-family: var(--font-body); font-size: 11px; letter-spacing: 0.15em; text-transform: uppercase;
	position: relative;
}
.must-visit__card-image::before {
	content: '';
	width: 38px; height: 32px;
	background: var(--c-muted);
	-webkit-mask: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj48cGF0aCBkPSJNMjAgNWgtMy4xN0wxNSAzSDlMNy4xNyA1SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWN2MwLTEuMS0uOS0yLTItMnptLTggMTJjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNS0yLjI0IDUtNSA1em0wLThjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zeiIvPjwvc3ZnPg==") center / contain no-repeat;
	        mask: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj48cGF0aCBkPSJNMjAgNWgtMy4xN0wxNSAzSDlMNy4xNyA1SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWN2MwLTEuMS0uOS0yLTItMnptLTggMTJjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNS0yLjI0IDUtNSA1em0wLThjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zeiIvPjwvc3ZnPg==") center / contain no-repeat;
	opacity: 0.5;
}
.must-visit__card-image > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.must-visit__card-body { padding: 16px 18px 20px; display: flex; flex-direction: column; gap: 6px; }
.must-visit__card-title {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: 22px;
	line-height: 1.1;
	color: var(--c-ink);
	margin: 0;
}
.must-visit__card-meta {
	font-family: var(--font-body);
	font-size: 13px;
	line-height: 1.45;
	color: var(--c-muted);
}

.country-faq {
	max-width: 720px;
	margin: 0 auto;
	padding: var(--s-6) var(--s-5);
}
.country-faq__title {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: clamp(32px, 4vw, 44px);
	color: var(--c-ink);
	margin: 0 0 var(--s-4);
}
.country-faq details {
	border-top: 1px solid var(--c-sand-deep);
	padding: var(--s-3) 0;
}
.country-faq details:last-child { border-bottom: 1px solid var(--c-sand-deep); }
.country-faq summary {
	font-family: var(--font-body);
	font-size: 16px;
	font-weight: 600;
	color: var(--c-ink);
	cursor: pointer;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.country-faq summary::after {
	content: '+';
	font-size: 22px;
	color: var(--c-muted);
	transition: transform var(--motion-color);
}
.country-faq details[open] summary::after { transform: rotate(45deg); }
.country-faq details p {
	font-family: var(--font-body);
	font-size: 15px;
	line-height: 1.7;
	color: var(--c-ink-soft);
	margin: var(--s-3) 0 0;
}

/* ----- country hero v2 (2-col, blob image right - full bleed) ----- */
.country-hero-v2 {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(24px, 4vw, 64px);
	width: 100vw;
	margin-left: calc(50% - 50vw);
	max-width: none;
	padding: clamp(140px, 18vh, 200px) 0 clamp(40px, 6vh, 80px) 0;
	align-items: center;
}
.country-hero-v2__text {
	padding-left: clamp(24px, 7vw, 110px);
	padding-right: clamp(16px, 2vw, 32px);
	max-width: 720px;
}
.country-hero-v2 > .country-hero-v2__media {
	padding: 0;
}
.country-hero-v2__eyebrow {
	font-family: var(--font-script);
	font-size: clamp(22px, 2.4vw, 32px);
	color: var(--c-ink-soft);
	margin-bottom: 4px;
	line-height: 1;
}
.country-hero-v2__title {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: clamp(56px, 9vw, 128px);
	line-height: 0.95;
	color: var(--c-ink);
	margin: 0 0 var(--s-4);
	letter-spacing: -0.02em;
}
.country-hero-v2__intro {
	font-family: var(--font-body);
	font-size: 16px;
	line-height: 1.6;
	color: var(--c-ink-soft);
	margin: 0 0 var(--s-5);
	max-width: 540px;
}
.country-hero-v2__chips {
	display: flex;
	gap: 6px;
	margin-bottom: var(--s-5);
	flex-wrap: wrap;
}
.country-hero-v2__chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: var(--c-paper);
	border: 1px solid color-mix(in srgb, var(--c-sand-deep) 60%, transparent);
	border-radius: var(--r-pill);
	padding: 8px 14px;
	font-family: var(--font-body);
	font-size: 13px;
	font-weight: 600;
	color: var(--c-ink);
	text-decoration: none;
	transition: background 200ms ease;
}
.country-hero-v2__chip:hover { background: var(--c-sand); text-decoration: none; }
.country-hero-v2__chip img { width: 18px; height: 18px; object-fit: contain; }
.country-hero-v2__starters {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 8px;
	max-width: 480px;
}
.starter {
	display: block;
	background: var(--c-sand);
	border-radius: var(--r-md);
	padding: 14px 16px;
	text-decoration: none;
	color: var(--c-ink);
	transition: transform 200ms ease, background 200ms ease;
}
.starter:hover { transform: translateY(-2px); background: var(--c-sand-deep); text-decoration: none; }
.starter__label {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 15px;
	letter-spacing: -0.01em;
	color: var(--c-ink);
}
.starter__sub {
	font-family: var(--font-body);
	font-size: 12px;
	color: var(--c-ink-soft);
	margin-top: 2px;
}
.country-hero-v2__media {
	display: flex;
	flex-direction: column;
	gap: var(--s-3);
	align-self: stretch;
	min-height: 0;
}
.country-hero-v2__blob {
	display: block;
	width: 100%;
	aspect-ratio: 4/4.5;
	border-radius: 50% 0 0 50% / 40% 0 0 40%;
	overflow: hidden;
	background: var(--c-sand);
	animation: blob-morph-right 26s ease-in-out infinite;
	box-shadow: 0 30px 60px rgba(15,26,31,0.10);
}
@keyframes blob-morph-right {
	0%, 100% { border-radius: 50% 0 0 50% / 40% 0 0 40%; }
	33%      { border-radius: 55% 0 0 45% / 50% 0 0 50%; }
	66%      { border-radius: 45% 0 0 55% / 60% 0 0 35%; }
}
.country-hero-v2__blob img { width: 100%; height: 100%; object-fit: cover; display: block; }
.country-hero-v2__tags {
	list-style: none;
	margin: 0; padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	justify-content: flex-start;
}
.country-hero-v2__tags li a {
	display: inline-block;
	background: var(--c-paper);
	border: 1px solid color-mix(in srgb, var(--c-sand-deep) 50%, transparent);
	border-radius: var(--r-pill);
	padding: 6px 12px;
	font-family: var(--font-body);
	font-size: 12px;
	font-weight: 600;
	color: var(--c-ink-soft);
	text-decoration: none;
	transition: background 200ms ease, color 200ms ease;
}
.country-hero-v2__tags li a:hover { background: var(--c-sand); color: var(--c-ink); text-decoration: none; }

@media (max-width: 880px) {
	.country-hero-v2 { grid-template-columns: 1fr; padding-top: clamp(110px, 14vh, 140px); }
	.country-hero-v2__media { order: -1; }
	.country-hero-v2__blob { aspect-ratio: 4/3; }
}

/* ----- places gallery (4-col card row) ----- */
.country-places__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: var(--s-4);
}
.place-card {
	background: var(--c-paper);
	border: 1px solid color-mix(in srgb, var(--c-sand-deep) 50%, transparent);
	border-radius: var(--r-lg);
	overflow: hidden;
	transition: transform 220ms ease, box-shadow 220ms ease;
}
.place-card:hover { transform: translateY(-3px); box-shadow: 0 14px 32px rgba(15,26,31,0.08); }
.place-card__media {
	aspect-ratio: 4/5;
	background: var(--c-paper-2);
	position: relative;
}
.place-card__media::after {
	content: 'PHOTO COMING';
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-body);
	font-weight: 700;
	font-size: 10px;
	letter-spacing: 0.2em;
	color: var(--c-muted);
}
.place-card__body { padding: 14px 16px 18px; }
.place-card__title {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: 22px;
	color: var(--c-ink);
	margin: 0 0 4px;
}
.place-card__meta {
	font-family: var(--font-body);
	font-size: 13px;
	color: var(--c-muted);
}

.country-section {
	max-width: var(--bp-xl);
	margin: 0 auto;
	padding: var(--s-7) var(--s-5);
}
.country-section__title {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: clamp(28px, 3.6vw, 40px);
	color: var(--c-ink);
	margin: 0 0 var(--s-2);
}
.country-section__lede {
	font-family: var(--font-body);
	font-size: 17px;
	color: var(--c-muted);
	max-width: 640px;
	margin: 0 0 var(--s-5);
}

/* ----- itineraries ----- */
.itinerary-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: var(--s-5);
}
.itinerary-card {
	background: var(--c-paper);
	border: 1px solid color-mix(in srgb, var(--c-sand-deep) 60%, transparent);
	border-radius: var(--r-lg);
	padding: var(--s-5) var(--s-5) var(--s-5);
	display: flex;
	flex-direction: column;
	gap: 10px;
	transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.itinerary-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 32px rgba(15,26,31,0.08);
	border-color: var(--c-sand-deep);
}
.itinerary-card__badge {
	display: inline-block;
	align-self: flex-start;
	font-family: var(--font-body);
	font-size: 11px;
	letter-spacing: 0.15em;
	font-weight: 700;
	text-transform: uppercase;
	color: var(--c-ink);
	background: var(--c-sand);
	padding: 4px 10px;
	border-radius: var(--r-pill);
}
.itinerary-card__title {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 22px;
	line-height: 1.2;
	color: var(--c-ink);
	margin: 0;
	letter-spacing: -0.02em;
}
.itinerary-card__route {
	font-family: var(--font-body);
	font-size: 14px;
	font-weight: 600;
	color: var(--c-ink-soft);
	line-height: 1.4;
}
.itinerary-card__body {
	font-family: var(--font-body);
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--c-ink-soft);
	margin: 0;
}
.itinerary-card__meta {
	margin-top: auto;
	padding-top: var(--s-3);
	border-top: 1px dashed color-mix(in srgb, var(--c-sand-deep) 60%, transparent);
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
	font-family: var(--font-body);
	font-size: 12px;
	color: var(--c-muted);
}

/* ----- map placeholder ----- */
.country-map__placeholder {
	background: var(--c-paper-2);
	border: 1px dashed var(--c-sand-deep);
	border-radius: var(--r-lg);
	padding: var(--s-7) var(--s-5);
	display: flex;
	align-items: center;
	gap: var(--s-5);
	min-height: 240px;
}
.country-map__icon { width: 56px; height: 56px; opacity: 0.65; flex-shrink: 0; }
.country-map__caption {
	font-family: var(--font-body);
	font-size: 15px;
	line-height: 1.6;
	color: var(--c-ink-soft);
	max-width: 480px;
}
.country-map__caption strong { color: var(--c-ink); }

/* ----- best time to visit grid ----- */
.when-grid {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	gap: 6px;
	margin-bottom: var(--s-4);
}
@media (max-width: 720px) {
	.when-grid { grid-template-columns: repeat(6, 1fr); }
}
.when-month {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 14px 6px;
	border-radius: var(--r-md);
	gap: 4px;
	min-height: 78px;
}
.when-month__name {
	font-family: var(--font-body);
	font-weight: 700;
	font-size: 13px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--c-ink);
}
.when-month__verdict {
	font-family: var(--font-body);
	font-size: 11px;
	color: var(--c-ink-soft);
	text-align: center;
	line-height: 1.2;
}
.when-month--best  { background: var(--c-sand); }
.when-month--good  { background: color-mix(in srgb, var(--c-sand) 50%, var(--c-paper)); }
.when-month--ok    { background: var(--c-paper-2); }
.when-month--avoid { background: color-mix(in srgb, var(--c-ink) 8%, var(--c-paper)); }
.when-month--avoid .when-month__name,
.when-month--avoid .when-month__verdict { color: var(--c-muted); }

.when-legend {
	display: flex;
	gap: var(--s-4);
	flex-wrap: wrap;
	font-family: var(--font-body);
	font-size: 12px;
	color: var(--c-muted);
	letter-spacing: 0.05em;
}
.when-legend__item { display: inline-flex; align-items: center; gap: 6px; }
.when-legend__swatch {
	width: 12px; height: 12px;
	border-radius: 3px;
	display: inline-block;
}
.when-legend__swatch--best  { background: var(--c-sand); }
.when-legend__swatch--good  { background: color-mix(in srgb, var(--c-sand) 50%, var(--c-paper)); }
.when-legend__swatch--ok    { background: var(--c-paper-2); }
.when-legend__swatch--avoid { background: color-mix(in srgb, var(--c-ink) 8%, var(--c-paper)); border: 1px solid color-mix(in srgb, var(--c-sand-deep) 60%, transparent); }

/* ----- hero quick-link cards (under chips) ----- */
.country-hero-v2__quick {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin-top: var(--s-5);
	max-width: 540px;
}
.quick-card {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 14px 18px;
	background: var(--c-paper);
	border: 1px solid color-mix(in srgb, var(--c-sand-deep) 50%, transparent);
	border-radius: var(--r-lg);
	text-decoration: none;
	color: inherit;
	transition: transform 200ms ease, border-color 200ms ease, box-shadow 200ms ease;
}
.quick-card:hover {
	transform: translateY(-2px);
	border-color: var(--c-sand-deep);
	box-shadow: 0 8px 20px rgba(15,26,31,0.06);
}
.quick-card__kicker {
	font-family: var(--font-body);
	font-size: 10px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-muted);
	font-weight: 700;
}
.quick-card__title {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 14px;
	line-height: 1.25;
	letter-spacing: -0.01em;
	color: var(--c-ink);
}
.quick-card--accent {
	background: var(--c-sand);
	border-color: var(--c-sand-deep);
}

/* ----- must-visit grid: explicit 3-col variant ----- */
.must-visit__grid--3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width: 760px) {
	.must-visit__grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ----- unique experiences asymmetric grid ----- */
.unique-grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	grid-template-rows: repeat(3, auto);
	gap: var(--s-4);
}
.unique-card {
	background: var(--c-paper);
	border: 1px solid color-mix(in srgb, var(--c-sand-deep) 60%, transparent);
	border-radius: var(--r-lg);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: inherit;
	transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.unique-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 32px rgba(15,26,31,0.10);
	border-color: var(--c-sand-deep);
}
.unique-card--big {
	grid-row: span 3;
	grid-column: 1;
}
.unique-card--big .unique-card__media {
	aspect-ratio: 4/3.6;
}
.unique-card--small {
	display: grid;
	grid-template-columns: 1fr 1.3fr;
	min-height: 110px;
}
.unique-card--small .unique-card__media {
	aspect-ratio: auto;
	height: 100%;
}
.unique-card__media {
	background: var(--c-paper-2);
}
.unique-card__media--placeholder {
	background: var(--c-paper-2);
}
.unique-card__body {
	padding: var(--s-4) var(--s-5);
	display: flex;
	flex-direction: column;
	gap: 8px;
	justify-content: center;
}
.unique-card__kicker {
	font-family: var(--font-body);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-muted);
	font-weight: 700;
}
.unique-card__body h3 {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 17px;
	line-height: 1.25;
	letter-spacing: -0.02em;
	color: var(--c-ink);
	margin: 0;
}
.unique-card--big .unique-card__body h3 {
	font-size: 26px;
}
.unique-card__body p {
	font-family: var(--font-body);
	font-size: 14.5px;
	line-height: 1.55;
	color: var(--c-ink-soft);
	margin: 0;
}
@media (max-width: 800px) {
	.unique-grid { grid-template-columns: 1fr; grid-template-rows: none; }
	.unique-card--big { grid-row: auto; grid-column: auto; }
	.unique-card--small { grid-template-columns: 100px 1fr; min-height: 100px; }
}

/* ----- FAQ + Travel Essentials split ----- */
.faq-split {
	display: grid;
	grid-template-columns: minmax(0, 360px) minmax(0, 1fr);
	gap: var(--s-6);
	align-items: flex-start;
}
@media (max-width: 880px) {
	.faq-split { grid-template-columns: 1fr; }
}
.quicklinks-card {
	background: var(--c-paper);
	border: 1px solid color-mix(in srgb, var(--c-sand-deep) 60%, transparent);
	border-radius: var(--r-lg);
	padding: var(--s-5);
	position: sticky;
	top: clamp(108px, 12vh, 130px);
}
.quicklinks-card__media {
	aspect-ratio: 4/3;
	border-radius: 14px;
	background: var(--c-paper-2);
	margin-bottom: var(--s-4);
}
.quicklinks-card__kicker {
	font-family: var(--font-body);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-muted);
	font-weight: 700;
	margin-bottom: 6px;
}
.quicklinks-card__title {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 22px;
	line-height: 1.2;
	letter-spacing: -0.02em;
	margin: 0 0 var(--s-3);
	color: var(--c-ink);
}
.quicklinks-card__list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.quicklinks-card__list li {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding-bottom: 14px;
	border-bottom: 1px solid color-mix(in srgb, var(--c-sand-deep) 35%, transparent);
}
.quicklinks-card__list li:last-child {
	border-bottom: none;
	padding-bottom: 0;
}
.quicklinks-card__list a {
	color: var(--c-ink);
	font-family: var(--font-body);
	font-weight: 600;
	font-size: 14px;
	text-decoration: none;
}
.quicklinks-card__list a:hover { color: var(--c-turquoise-deep); }
.quicklinks-card__list span {
	color: var(--c-muted);
	font-size: 12px;
	font-family: var(--font-body);
}
.faq-split-section .country-faq { max-width: none; padding: 0; margin: 0; }

/* ----- long-form prose ----- */
.country-prose {
	max-width: 720px;
	margin: var(--s-7) auto 0;
	padding: var(--s-6) var(--s-5) var(--s-7);
}
.country-prose__title {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: clamp(28px, 3.6vw, 40px);
	line-height: 1.1;
	margin: 0 0 var(--s-4);
	color: var(--c-ink);
}
.country-prose__sub {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: clamp(20px, 2.2vw, 24px);
	letter-spacing: -0.02em;
	margin: var(--s-6) 0 var(--s-3);
	color: var(--c-ink);
}
.country-prose p {
	font-family: var(--font-body);
	font-size: 17px;
	line-height: 1.7;
	color: var(--c-ink-soft);
	margin: 0 0 var(--s-4);
}
.country-prose p strong { color: var(--c-ink); }

/* ============================================================
   HOME - pinned editor's picks strip
   ============================================================ */
.pinned-strip {
	max-width: var(--bp-xl);
	margin: 0 auto;
	padding: var(--s-7) var(--s-5) var(--s-6);
}
.pinned-strip__head {
	margin-bottom: var(--s-5);
}
.pinned-strip__eyebrow {
	font-family: var(--font-body);
	font-weight: 700;
	font-size: 12px;
	letter-spacing: 0.2em;
	color: var(--c-muted);
	text-transform: uppercase;
	margin-bottom: var(--s-2);
}
.pinned-strip__title {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: clamp(28px, 3.6vw, 40px);
	color: var(--c-ink);
	margin: 0;
	letter-spacing: -0.02em;
}
.pinned-strip__grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap: var(--s-5);
}
@media (max-width: 960px) {
	.pinned-strip__grid { grid-template-columns: 1fr; }
}
.pinned-tile {
	display: flex;
	flex-direction: column;
	background: var(--c-paper);
	border: 1px solid color-mix(in srgb, var(--c-sand-deep) 60%, transparent);
	border-radius: var(--r-lg);
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.pinned-tile:hover {
	transform: translateY(-3px);
	box-shadow: 0 18px 40px rgba(15,26,31,0.10);
	border-color: var(--c-sand-deep);
	text-decoration: none;
}
.pinned-tile__media {
	aspect-ratio: 16/10;
	overflow: hidden;
	background: var(--c-paper-2);
}
.pinned-tile__media img {
	width: 100%; height: 100%; object-fit: cover;
}
.pinned-tile__media--placeholder {
	background: var(--c-paper-2);
	display: flex; align-items: center; justify-content: center;
}
.pinned-tile__placeholder-label {
	font-family: var(--font-body);
	font-weight: 700;
	font-size: 11px;
	letter-spacing: 0.2em;
	color: var(--c-muted);
}
.pinned-tile__body {
	padding: var(--s-4) var(--s-5) var(--s-5);
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 1;
}
.pinned-tile__eyebrow {
	font-family: var(--font-body);
	font-weight: 700;
	font-size: 11px;
	letter-spacing: 0.15em;
	color: var(--c-muted);
}
.pinned-tile__title {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: clamp(18px, 2vw, 22px);
	color: var(--c-ink);
	margin: 0;
	line-height: 1.25;
	letter-spacing: -0.02em;
}
.pinned-tile__cta {
	margin-top: auto;
	font-family: var(--font-body);
	font-size: 13px;
	font-weight: 600;
	color: var(--c-ink);
}

/* ============================================================
   HOME - Where to Stay (country grid → affiliate stay pages)
   ============================================================ */
.where-stay {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	max-width: none;
	padding: var(--s-7) clamp(24px, 5vw, 80px) var(--s-7);
	background: var(--c-paper-2);
}
.where-stay__head {
	max-width: var(--bp-xl);
	margin: 0 auto var(--s-6);
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
	gap: var(--s-5);
	align-items: end;
}
@media (max-width: 800px) {
	.where-stay__head { grid-template-columns: 1fr; }
}
.where-stay__eyebrow {
	font-family: var(--font-body);
	font-weight: 700;
	font-size: 12px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--c-muted);
	margin-bottom: var(--s-2);
}
.where-stay__title {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: clamp(36px, 5vw, 64px);
	line-height: 1;
	margin: 0;
	color: var(--c-ink);
}
.where-stay__lede {
	font-family: var(--font-body);
	font-size: 17px;
	line-height: 1.6;
	color: var(--c-ink-soft);
	margin: 0;
	max-width: 540px;
}
.where-stay__grid {
	max-width: var(--bp-xl);
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
}
@media (max-width: 960px) { .where-stay__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px) { .where-stay__grid { grid-template-columns: 1fr; } }
.stay-card {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 18px 20px;
	background: var(--c-paper);
	border: 1px solid color-mix(in srgb, var(--c-sand-deep) 50%, transparent);
	border-radius: var(--r-lg);
	text-decoration: none;
	color: var(--c-ink);
	transition: transform 200ms ease, border-color 200ms ease, box-shadow 200ms ease;
}
.stay-card:hover {
	transform: translateY(-2px);
	border-color: var(--c-sand-deep);
	box-shadow: 0 14px 32px rgba(15,26,31,0.08);
	text-decoration: none;
}
.stay-card__flag { font-size: 28px; line-height: 1; }
.stay-card__name {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 18px;
	letter-spacing: -0.02em;
	color: var(--c-ink);
}
.stay-card__count {
	font-family: var(--font-body);
	font-size: 13px;
	color: var(--c-muted);
}
.where-stay__cta {
	max-width: var(--bp-xl);
	margin: var(--s-5) auto 0;
	text-align: center;
}

/* ============================================================
   HOME - About us (2-col, blob image left, text right)
   ============================================================ */
.home-about {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
	gap: clamp(24px, 5vw, 80px);
	align-items: center;
	max-width: var(--bp-xl);
	margin: var(--s-7) auto;
	padding: var(--s-7) clamp(24px, 5vw, 80px);
}
.home-about__media {
	position: relative;
	width: 100%;
	aspect-ratio: 4/4.5;
}
.home-about__blob {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 62% 38% 56% 44% / 52% 60% 40% 48%;
	overflow: hidden;
	background: var(--c-sand);
	animation: blob-morph 22s ease-in-out infinite;
	box-shadow: 0 30px 60px rgba(15,26,31,0.10);
}
.home-about__blob img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.home-about__eyebrow {
	font-family: var(--font-body);
	font-weight: 700;
	font-size: 12px;
	letter-spacing: 0.2em;
	color: var(--c-muted);
	text-transform: uppercase;
	margin-bottom: var(--s-3);
}
.home-about__title {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: clamp(32px, 4.5vw, 52px);
	line-height: 1.05;
	letter-spacing: -0.03em;
	color: var(--c-ink);
	margin: 0 0 var(--s-4);
}
.home-about__text p {
	font-family: var(--font-body);
	font-size: 17px;
	line-height: 1.7;
	color: var(--c-ink-soft);
	margin: 0 0 var(--s-4);
	max-width: 560px;
}
@media (max-width: 880px) {
	.home-about { grid-template-columns: 1fr; }
	.home-about__media { max-width: 380px; margin: 0 auto; }
}

/* ============================================================
   HOME - How we travel principles
   ============================================================ */
.how-we-travel {
	background: var(--c-paper-2);
	padding: var(--s-7) 0;
	margin: var(--s-7) 0;
}
.how-we-travel__inner {
	max-width: var(--bp-xl);
	margin: 0 auto;
	padding: 0 var(--s-5);
}
.how-we-travel__head { max-width: 720px; margin-bottom: var(--s-6); }
.how-we-travel__eyebrow {
	font-family: var(--font-body);
	font-weight: 700;
	font-size: 12px;
	letter-spacing: 0.2em;
	color: var(--c-muted);
	text-transform: uppercase;
	margin-bottom: var(--s-2);
}
.how-we-travel__title {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: clamp(28px, 3.6vw, 40px);
	color: var(--c-ink);
	margin: 0 0 var(--s-3);
	letter-spacing: -0.02em;
}
.how-we-travel__lede {
	font-family: var(--font-body);
	font-size: 17px;
	color: var(--c-muted);
	margin: 0;
}
.how-we-travel__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: var(--s-5);
}
.principle {
	background: var(--c-paper);
	border: 1px solid color-mix(in srgb, var(--c-sand-deep) 50%, transparent);
	border-radius: var(--r-lg);
	padding: var(--s-5);
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.principle__icon { width: 44px; height: 44px; object-fit: contain; }
.principle__title {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 20px;
	color: var(--c-ink);
	margin: 0;
	letter-spacing: -0.02em;
}
.principle__body {
	font-family: var(--font-body);
	font-size: 14.5px;
	line-height: 1.55;
	color: var(--c-ink-soft);
	margin: 0;
}

/* ============================================================
   CONTINENT PAGE - list of countries (covered + coming soon)
   ============================================================ */
.continent-hero {
	text-align: center;
	padding: var(--s-7) var(--s-5);
	background: var(--c-paper-2);
}
.continent-hero__eyebrow {
	font-family: var(--font-body);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	color: var(--c-turquoise-deep);
	margin-bottom: var(--s-2);
}
.continent-hero__title {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: clamp(56px, 8vw, 96px);
	color: var(--c-ink);
	margin: 0 0 var(--s-3);
}
.continent-hero__lede {
	font-family: var(--font-body);
	font-size: 18px;
	color: var(--c-ink-soft);
	max-width: 600px;
	margin: 0 auto;
}
.continent-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: var(--s-4);
	max-width: var(--bp-xl);
	margin: 0 auto;
	padding: var(--s-6) var(--s-5);
}
.continent-card {
	display: flex;
	align-items: center;
	gap: var(--s-3);
	padding: var(--s-3) var(--s-4);
	background: var(--c-paper);
	border: 1px solid var(--c-sand-deep);
	border-radius: var(--r-lg);
	text-decoration: none;
	color: var(--c-ink);
	transition: background var(--motion-color), border-color var(--motion-color);
}
.continent-card:hover { background: var(--c-sand); border-color: var(--c-turquoise); }
.continent-card__flag { font-size: 28px; }
.continent-card__name { font-family: var(--font-body); font-weight: 600; }
.continent-card--soon { opacity: 0.6; cursor: default; pointer-events: none; }
.continent-card--soon::after {
	content: 'COMING SOON';
	font-size: 9px;
	letter-spacing: 0.2em;
	font-weight: 700;
	color: var(--c-muted);
	margin-left: auto;
}
