/* ==========================================================================
   MyStory Editorial – main stylesheet (v2, "modern organic editorial")
   Mobile-first. Sections:
   1. Tokens          5. Header & navigation   9. Inner pages
   2. Base            6. Home sections        10. Forms
   3. Typography      7. Listings             11. Footer
   4. Buttons/links   8. Entry content        12. Motion
   Rounded corners live on photography and interactive elements, not on
   sections: use the --radius-* tokens, never ad-hoc values.
   ========================================================================== */

/* 1. Tokens ---------------------------------------------------------------- */
:root {
	--ivory: #f8f6f1;
	--cream: #f2ede4;        /* warm alternate section background */
	--white: #fff;
	--sand: #ece5d8;
	--sand-deep: #e2d8c6;
	--charcoal: #20211f;
	--ink-soft: #4a4944;
	--muted: #5c5a54;
	--olive: #5f6553;
	--red: #bd2a1e;          /* buttons, links (AA on ivory and with white text) */
	--red-dark: #9e2117;
	--red-logo: #de2d1e;     /* the logo red, for small accents only */
	--border: #e3ded3;
	--border-strong: #cfc7b8;

	--serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
	--sans: Manrope, system-ui, -apple-system, "Segoe UI", sans-serif;

	--fs-xs: 0.75rem;
	--fs-sm: 0.875rem;
	--fs-base: 1.0625rem;
	--fs-lede: clamp(1.125rem, 1.02rem + 0.45vw, 1.375rem);
	--fs-h4: clamp(1.25rem, 1.12rem + 0.5vw, 1.5rem);
	--fs-h3: clamp(1.6rem, 1.3rem + 1.1vw, 2.25rem);
	--fs-h2: clamp(2.35rem, 1.6rem + 3vw, 4.25rem);
	--fs-h1: clamp(2.8rem, 1.7rem + 4.6vw, 6rem);
	--fs-display: clamp(3.3rem, 1.5rem + 5.6vw, 7.4rem);

	--radius-sm: 10px;       /* form fields, chips, small labels */
	--radius-md: 14px;       /* small photos, insets, menus */
	--radius-lg: 18px;       /* experience/destination photos, selected cards */
	--radius-xl: 24px;       /* hero and full-width photography */
	--radius-btn: 12px;

	--gutter: clamp(1rem, 0.4rem + 2.8vw, 3rem);
	--container: 1320px;
	--container-wide: 1480px;
	--prose: 42rem;
	--section: clamp(4.5rem, 3rem + 6vw, 9rem);
	--gap: clamp(1.25rem, 0.8rem + 1.8vw, 2.5rem);
	--header-h: 76px;
	--shadow-soft: 0 24px 48px -28px rgb(32 33 31 / 0.45);
	--ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

@media (min-width: 1100px) {
	:root { --header-h: 92px; }
}

/* 2. Base ------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-padding-top: calc(var(--header-h) + 1rem);
}

body {
	margin: 0;
	background: var(--ivory);
	color: var(--charcoal);
	font-family: var(--sans);
	font-size: var(--fs-base);
	line-height: 1.7;
	font-feature-settings: "kern", "liga";
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}

body.nav-open { overflow: hidden; }

img, video, svg, iframe { max-width: 100%; height: auto; }
img { display: block; }
figure { margin: 0; }

::selection { background: var(--sand-deep); }

:focus-visible {
	outline: 2px solid var(--red);
	outline-offset: 3px;
	border-radius: 2px;
}

.skip-link {
	position: absolute;
	left: 1rem;
	top: -4rem;
	z-index: 1000;
	padding: 0.75rem 1.25rem;
	border-radius: var(--radius-sm);
	background: var(--charcoal);
	color: var(--white);
	font-weight: 600;
	text-decoration: none;
}
.skip-link:focus { top: 1rem; }

.site-main:focus { outline: none; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

/* Shared photo treatment: rounded mask, gentle zoom on hover inside links. */
.photo,
.xp-card__media, .xp-row__media, .xp-mini__media, .journey__media,
.dest .wp-block-image, .hero__image, .stories__image, .tailor__image,
.final-cta__image, .page-hero__media {
	overflow: hidden;
	border-radius: var(--radius-lg);
	background: var(--sand);
	isolation: isolate; /* keeps the radius clipping during transforms in Safari */
}
.xp-card__media img, .xp-row__media img, .xp-mini__media img, .journey__media img, .dest .wp-block-image img {
	transition: transform 1.2s var(--ease);
}
a:hover .xp-card__media img, .xp-card:hover .xp-card__media img,
.xp-row__link:hover .xp-row__media img, .xp-mini:hover .xp-mini__media img,
.journey a:hover .journey__media img, .dest:hover .wp-block-image img { transform: scale(1.04); }

/* 3. Typography ------------------------------------------------------------ */
h1, h2, h3, h4, h5, h6 {
	font-family: var(--serif);
	font-weight: 400;
	line-height: 1.08;
	letter-spacing: -0.01em;
	margin: 0 0 0.5em;
	text-wrap: balance;
	color: var(--charcoal);
}
h1 { font-size: var(--fs-h1); font-weight: 300; letter-spacing: -0.02em; }
h2 { font-size: var(--fs-h2); font-weight: 300; }
h3 { font-size: var(--fs-h3); }
h4 { font-size: var(--fs-h4); font-weight: 500; }
h1 em, h2 em, h3 em { font-style: italic; }

p { margin: 0 0 1.1em; text-wrap: pretty; }

.kicker,
p.kicker {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin: 0 0 1.25rem;
	font-family: var(--sans);
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--olive);
}
.kicker::before {
	content: "";
	flex: none;
	width: 1.75rem;
	height: 1px;
	background: var(--red-logo);
}

.lede, p.lede {
	font-size: var(--fs-lede);
	line-height: 1.6;
	color: var(--ink-soft);
	max-width: 38em;
}

.statement, p.statement {
	font-family: var(--serif);
	font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.6rem);
	font-weight: 300;
	line-height: 1.25;
	color: var(--charcoal);
	max-width: 30em;
}

/* Oversized typographic accent (About). */
p.pullquote {
	position: relative;
	margin-top: clamp(2.5rem, 2rem + 3vw, 4.5rem) !important;
	margin-bottom: clamp(2.5rem, 2rem + 3vw, 4.5rem) !important;
	padding-top: 2.25rem;
	max-width: 16em !important;
	font-family: var(--serif);
	font-style: italic;
	font-weight: 300;
	font-size: clamp(2.1rem, 1.3rem + 3.4vw, 4rem);
	line-height: 1.08;
	letter-spacing: -0.015em;
	color: var(--charcoal);
}
p.pullquote::before {
	content: "“";
	position: absolute;
	top: -0.25em;
	left: -0.04em;
	font-size: 2.4em;
	line-height: 1;
	color: var(--red-logo);
	opacity: 0.85;
}

/* 4. Buttons & links ------------------------------------------------------- */
a { color: var(--red); text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
a:hover { color: var(--red-dark); }

.btn,
.wp-block-button__link,
.wp-element-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	min-height: 3.25rem;
	padding: 0.85rem 1.6rem;
	border: 1px solid var(--red);
	border-radius: var(--radius-btn);
	background: var(--red);
	color: var(--white);
	font-family: var(--sans);
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.01em;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.25s var(--ease), color 0.25s var(--ease), border-color 0.25s var(--ease), box-shadow 0.3s var(--ease), transform 0.3s var(--ease);
}
.btn:hover,
.wp-block-button__link:hover {
	background: var(--red-dark);
	border-color: var(--red-dark);
	color: var(--white);
	transform: translateY(-1px);
	box-shadow: 0 12px 24px -16px rgb(158 33 23 / 0.8);
}
.btn:active, .wp-block-button__link:active { transform: translateY(0); }

/* Primary button with arrow (hero, key CTAs). */
.btn--lg,
.hero .wp-block-button:not(.is-style-text) .wp-block-button__link,
.tailor .wp-block-button__link,
.final-cta .wp-block-button__link {
	min-height: 3.75rem;
	padding: 1rem 1.9rem 1rem 2.1rem;
	font-size: 1rem;
	box-shadow: 0 14px 28px -18px rgb(189 42 30 / 0.85);
}
.hero .wp-block-button:not(.is-style-text) .wp-block-button__link::after,
.tailor .wp-block-button__link::after,
.final-cta .wp-block-button__link::after {
	content: "→";
	font-weight: 400;
	transition: transform 0.3s var(--ease);
}
.hero .wp-block-button__link:hover::after,
.tailor .wp-block-button__link:hover::after,
.final-cta .wp-block-button__link:hover::after { transform: translateX(4px); }

.btn--ghost,
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--charcoal);
	border-color: var(--border-strong);
}
.btn--ghost:hover,
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--charcoal);
	border-color: var(--charcoal);
	color: var(--ivory);
	box-shadow: none;
}

/* Quiet secondary action: text with an animated underline. */
.wp-block-button.is-style-text .wp-block-button__link {
	min-height: 3.25rem;
	padding: 0.85rem 0.25rem;
	border: 0;
	border-radius: 0;
	background: linear-gradient(currentColor, currentColor) 0.25rem calc(100% - 0.9rem) / calc(100% - 0.5rem) 1px no-repeat;
	color: var(--charcoal);
	box-shadow: none;
	transform: none;
}
.wp-block-button.is-style-text .wp-block-button__link:hover {
	color: var(--red);
	background-size: 0 1px;
	box-shadow: none;
}

.wp-block-buttons { gap: 0.75rem 1.5rem; align-items: center; }

.link-arrow,
a.link-arrow {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	font-size: var(--fs-sm);
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--charcoal);
	text-decoration: none;
}
.link-arrow .icon-arrow { color: var(--red); transition: transform 0.35s var(--ease); }
a:hover .link-arrow .icon-arrow,
a.link-arrow:hover .icon-arrow { transform: translateX(5px); }

/* Inline text CTA: <p class="more"><a>…</a></p>. Underline draws in on hover. */
p.more a {
	font-size: var(--fs-sm);
	font-weight: 600;
	color: var(--charcoal);
	text-decoration: none;
	padding-bottom: 0.25em;
	background: linear-gradient(var(--red), var(--red)) 0 100% / 100% 1px no-repeat;
	transition: color 0.25s var(--ease), background-size 0.35s var(--ease);
}
p.more a::after { content: " →"; color: var(--red); }
p.more a:hover { color: var(--red); background-size: 35% 1px; }

/* 5. Header & navigation --------------------------------------------------- */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	border-bottom: 1px solid transparent;
	transition: border-color 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
/* The blur lives on a pseudo-element: backdrop-filter on the header itself would
   become the containing block of the fixed mobile menu panel and clip it. */
.site-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgb(248 246 241 / 0.94);
	-webkit-backdrop-filter: saturate(140%) blur(10px);
	backdrop-filter: saturate(140%) blur(10px);
}
.nav-open .site-header::before { background: var(--ivory); }
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 0; } }

.site-header.is-scrolled {
	border-bottom-color: var(--border);
	box-shadow: 0 6px 24px -18px rgb(32 33 31 / 0.35);
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	max-width: calc(var(--container-wide) + 2 * var(--gutter));
	height: var(--header-h);
	margin: 0 auto;
	padding: 0 var(--gutter);
}

.site-header__logo { display: block; flex: none; }
.site-header__logo img {
	width: 132px;
	height: auto;
	transition: width 0.3s var(--ease);
}
@media (min-width: 1100px) {
	.site-header__logo img { width: 168px; }
	.site-header.is-scrolled .site-header__logo img { width: 144px; }
}

.nav-toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	min-height: 44px;
	padding: 0.5rem 0.25rem 0.5rem 0.75rem;
	border: 0;
	background: none;
	color: var(--charcoal);
	font: 600 var(--fs-sm) var(--sans);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	cursor: pointer;
	position: relative;
	z-index: 2;
}
.nav-toggle__bars { display: grid; gap: 6px; width: 24px; }
.nav-toggle__bars span {
	display: block;
	height: 1.5px;
	background: currentColor;
	transition: transform 0.3s var(--ease);
}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars span:first-child { transform: translateY(3.75px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars span:last-child { transform: translateY(-3.75px) rotate(-45deg); }

/* Mobile panel */
.site-nav {
	position: fixed;
	inset: var(--header-h) 0 0 0;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 2rem;
	padding: 1.5rem var(--gutter) 2.5rem;
	background: var(--ivory);
	overflow-y: auto;
	overscroll-behavior: contain;
	visibility: hidden;
	opacity: 0;
	transform: translateY(-8px);
	transition: opacity 0.3s var(--ease), transform 0.3s var(--ease), visibility 0s 0.3s;
}
.admin-bar .site-nav { inset-block-start: calc(var(--header-h) + 46px); }
.site-nav.is-open {
	visibility: visible;
	opacity: 1;
	transform: none;
	transition: opacity 0.3s var(--ease), transform 0.3s var(--ease);
}

.site-nav .menu,
.site-nav .sub-menu { list-style: none; margin: 0; padding: 0; }

.site-nav .menu > li { border-bottom: 1px solid var(--border); position: relative; }
.site-nav .menu > li > a {
	display: block;
	padding: 0.85rem 3rem 0.85rem 0;
	font-family: var(--serif);
	font-size: 1.85rem;
	font-weight: 400;
	line-height: 1.2;
	color: var(--charcoal);
	text-decoration: none;
}
.site-nav .current-menu-item > a,
.site-nav .current-page-ancestor > a,
.site-nav .current-menu-parent > a { color: var(--red); }

.submenu-toggle {
	position: absolute;
	right: 0;
	top: 0.55rem;
	width: 44px;
	height: 44px;
	display: grid;
	place-items: center;
	border: 0;
	border-radius: var(--radius-sm);
	background: none;
	color: var(--charcoal);
	cursor: pointer;
}
.submenu-toggle svg { transition: transform 0.3s var(--ease); }
.submenu-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }

.site-nav .sub-menu { display: none; padding: 0 0 1rem; }
.site-nav .sub-menu.is-open { display: block; }
.site-nav .sub-menu a {
	display: block;
	padding: 0.45rem 0;
	color: var(--ink-soft);
	font-size: 1rem;
	text-decoration: none;
}
.site-nav .sub-menu a:hover { color: var(--red); }

.site-nav__cta { width: 100%; }
.site-nav__contact {
	display: grid;
	gap: 0.35rem;
	margin: auto 0 0;
	font-size: var(--fs-sm);
}
.site-nav__contact a { color: var(--ink-soft); text-decoration: none; }

@media (min-width: 1100px) {
	.nav-toggle { display: none; }

	.site-nav,
	.admin-bar .site-nav {
		position: static;
		inset: auto;
		flex-direction: row;
		align-items: center;
		gap: 2rem;
		padding: 0;
		background: none;
		overflow: visible;
		visibility: visible;
		opacity: 1;
		transform: none;
	}
	.site-nav__contact { display: none; }
	.site-nav__cta { width: auto; min-height: 2.9rem; padding: 0.7rem 1.35rem; }

	.site-nav .menu { display: flex; align-items: center; gap: 0.25rem; }
	.site-nav .menu > li { border: 0; }
	.site-nav .menu > li > a {
		padding: 0.6rem 0.85rem;
		font-family: var(--sans);
		font-size: 0.9375rem;
		font-weight: 500;
		letter-spacing: 0.01em;
		position: relative;
	}
	.site-nav .menu > li.menu-item-has-children > a { padding-right: 2rem; }
	.site-nav .menu > li > a::after {
		content: "";
		position: absolute;
		left: 0.85rem;
		right: 0.85rem;
		bottom: 0.3rem;
		height: 1px;
		background: var(--red);
		transform: scaleX(0);
		transform-origin: left;
		transition: transform 0.35s var(--ease);
	}
	.site-nav .menu > li.menu-item-has-children > a::after { right: 2rem; }
	.site-nav .menu > li > a:hover::after,
	.site-nav .menu > .current-menu-item > a::after,
	.site-nav .menu > .current-page-ancestor > a::after { transform: scaleX(1); }
	.site-nav .menu > li > a:hover { color: var(--charcoal); }

	.submenu-toggle {
		top: 50%;
		right: 0.2rem;
		width: 28px;
		height: 28px;
		transform: translateY(-50%);
	}

	.site-nav .sub-menu,
	.site-nav .sub-menu.is-open {
		display: grid;
		grid-template-columns: repeat(2, minmax(13rem, 1fr));
		gap: 0 2rem;
		position: absolute;
		top: calc(100% + 0.6rem);
		left: -1rem;
		padding: 1.25rem 1.75rem;
		background: var(--ivory);
		border: 1px solid var(--border);
		border-radius: var(--radius-md);
		box-shadow: var(--shadow-soft);
		opacity: 0;
		visibility: hidden;
		transform: translateY(6px);
		transition: opacity 0.25s var(--ease), transform 0.25s var(--ease), visibility 0s 0.25s;
	}
	.site-nav .sub-menu::before {
		content: "";
		position: absolute;
		inset: -0.8rem 0 auto;
		height: 0.8rem;
	}
	.site-nav .menu-item-has-children:hover > .sub-menu,
	.site-nav .menu-item-has-children:focus-within > .sub-menu,
	.site-nav .sub-menu.is-open {
		opacity: 1;
		visibility: visible;
		transform: none;
		transition: opacity 0.25s var(--ease), transform 0.25s var(--ease);
	}
	/* While the pointer is over the menu, only the hovered item's dropdown shows. */
	.site-nav .menu:hover > li:not(:hover) > .sub-menu {
		opacity: 0;
		visibility: hidden;
	}
	.site-nav .sub-menu a {
		padding: 0.5rem 0;
		border-bottom: 1px solid var(--border);
		font-size: 0.9375rem;
		color: var(--charcoal);
		transition: color 0.2s var(--ease), padding 0.3s var(--ease);
	}
	.site-nav .sub-menu a:hover { color: var(--red); padding-left: 0.3rem; }
}

/* 6. Layout primitives & home sections ------------------------------------- */
.section,
.home-content > .wp-block-group {
	padding: var(--section) var(--gutter);
}
.section > *,
.home-content > .wp-block-group > * {
	max-width: var(--container);
	margin-inline: auto;
}
.section--sand, .is-sand { background: var(--sand); }
.is-cream { background: var(--cream); }
.section--white, .is-white { background: var(--cream); } /* legacy class: warm, not stark white */

.section-head {
	display: grid;
	gap: 1.25rem 3rem;
	margin-bottom: clamp(2.5rem, 2rem + 2vw, 4.5rem) !important;
}
.section-head h2 { margin: 0; max-width: 12em; }
.section-head p:not(.kicker) { color: var(--ink-soft); max-width: 34em; margin: 0 0 0.75rem; }
.section-head p.more { margin: 0; }
@media (min-width: 900px) {
	.section-head { grid-template-columns: 7fr 5fr; align-items: end; }
	.section-head > .wp-block-group:last-child { padding-bottom: 0.4rem; }
}

/* --- Hero --- */
.home-content > .hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 2rem;
	padding: clamp(1.75rem, 1rem + 3vw, 3rem) var(--gutter) clamp(3rem, 2rem + 4vw, 6rem);
	max-width: calc(var(--container-wide) + 2 * var(--gutter));
	margin-inline: auto;
}
.home-content > .hero > * { max-width: none; margin: 0; }

.hero__text { align-self: center; }
.hero__text .kicker { margin-bottom: 1.5rem; }
h1.hero__title {
	font-size: var(--fs-display);
	font-weight: 300;
	line-height: 0.96;
	letter-spacing: -0.028em;
	margin: 0 0 1.5rem;
	max-width: 9em;
}
.hero__title em {
	display: block;
	margin-top: 0.06em;
	color: var(--red);
	font-weight: 300;
}
.hero__lede {
	font-size: var(--fs-lede);
	line-height: 1.6;
	color: var(--ink-soft);
	max-width: 27em;
	margin-bottom: 2.25rem;
}
.hero__text .wp-block-buttons { margin-bottom: 2.75rem; }

p.hero__award {
	position: relative;
	max-width: 25rem;
	min-height: 4.6rem;
	margin: 0;
	padding: 1.4rem 0 0 3.6rem;
	border-top: 1px solid var(--border-strong);
	font-size: var(--fs-sm);
	line-height: 1.45;
	color: var(--muted);
}
p.hero__award::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1.45rem;
	width: 42px;
	height: 42px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23BD2A1E' stroke-width='1.3' stroke-linecap='round'%3E%3Cpath d='M17 39c-6-3-10-9-10-16 0-4 1-8 3-11'/%3E%3Cpath d='M31 39c6-3 10-9 10-16 0-4-1-8-3-11'/%3E%3Cpath d='M9 30c2 0 4 1 5 3M7 23c2 0 4 1 5 3M8 16c2 1 3 2 4 4M39 30c-2 0-4 1-5 3M41 23c-2 0-4 1-5 3M40 16c-2 1-3 2-4 4'/%3E%3Cpath d='M24 15l2.2 4.6 5 .7-3.6 3.5.9 5-4.5-2.4-4.5 2.4.9-5-3.6-3.5 5-.7z'/%3E%3C/svg%3E") center / contain no-repeat;
}
p.hero__award strong { display: block; color: var(--charcoal); font-weight: 600; }

.hero__media { position: relative; }
.hero__image { border-radius: var(--radius-lg); }
.hero__image img {
	width: 100%;
	aspect-ratio: 4 / 3.3;
	object-fit: cover;
	object-position: 46% 62%;
}
.hero__image figcaption,
.hero__image .wp-element-caption {
	position: absolute;
	right: 0.75rem;
	bottom: 0.75rem;
	margin: 0;
	padding: 0.35rem 0.7rem;
	border-radius: 8px;
	background: rgb(248 246 241 / 0.9);
	font-size: 0.6875rem;
	line-height: 1.4;
	letter-spacing: 0.02em;
	color: var(--charcoal);
}
.hero__image figcaption a { color: var(--muted); text-decoration: none; }
.hero__image figcaption a:hover { color: var(--red); text-decoration: underline; }
.hero__media .hero__inset { display: none; }

/* Phones: photo comes right after the CTAs, the award line follows it. */
@media (max-width: 899px) {
	.home-content > .hero { gap: 0; padding-top: 1.25rem; }
	.hero__text { display: contents; }
	.hero__text .kicker { margin-bottom: 1rem; }
	h1.hero__title { margin-bottom: 1rem; }
	.hero__lede { margin-bottom: 1.5rem; }
	.hero__text .wp-block-buttons { margin-bottom: 1.75rem; }
	.hero__media { order: 1; }
	p.hero__award { order: 2; margin-top: 1.75rem; }
}

@media (min-width: 900px) {
	.home-content > .hero {
		grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
		gap: clamp(2.5rem, 5vw, 6.5rem);
		align-items: center;
	}
	.hero__media { height: clamp(34rem, calc(100svh - var(--header-h) - 4rem), 52rem); }
	.hero__image { position: absolute; inset: 0; border-radius: var(--radius-xl); }
	.hero__image img { height: 100%; aspect-ratio: auto; }
	.hero__image figcaption { right: 1.25rem; bottom: 1.25rem; }
	.hero__media .hero__inset {
		display: block;
		position: absolute;
		z-index: 2;
		left: clamp(-5.5rem, -5vw, -2.5rem);
		bottom: clamp(2.5rem, 4.5vw, 4.5rem);
		width: clamp(9.5rem, 11.5vw, 13rem);
		margin: 0;
		padding: 6px;
		border-radius: calc(var(--radius-md) + 6px);
		background: var(--ivory);
		box-shadow: var(--shadow-soft);
	}
	.hero__media .hero__inset img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; border-radius: var(--radius-md); }
}

/* --- Sister brand (Viajes a Bulgaria) --- */
.home-content > .sister-brand {
	padding: clamp(2.25rem, 1.5rem + 2.5vw, 3.5rem) var(--gutter);
	background: var(--cream);
}
.sister-brand__inner { display: grid; gap: 1.5rem; align-items: center; }
.sister-brand__intro {
	display: grid;
	grid-template-columns: 4.75rem 1fr;
	column-gap: 1.25rem;
	align-items: center;
}
.sister-brand__intro::before {
	content: "";
	grid-row: 1 / span 2;
	width: 4.75rem;
	aspect-ratio: 150 / 100.61;
	background: url("../img/viajesabulgaria-logo.svg") center / contain no-repeat;
}
.sister-brand__intro .kicker { margin: 0 0 0.35rem; }
.sister-brand__intro h2 { margin: 0; font-size: clamp(1.9rem, 1.5rem + 1.4vw, 2.75rem); font-weight: 400; }
.sister-brand__text p { margin: 0 0 0.4rem; color: var(--ink-soft); max-width: 40em; }
.sister-brand__text p.sister-brand__es { margin: 0; font-family: var(--serif); font-style: italic; font-size: 1.3rem; line-height: 1.4; color: var(--charcoal); }
.sister-brand__es a { color: var(--red); }
.sister-brand .wp-block-buttons { margin: 0; }
@media (min-width: 1000px) {
	.sister-brand__inner { grid-template-columns: minmax(0, 4fr) minmax(0, 6fr) auto; gap: clamp(2rem, 4vw, 4rem); }
}

/* --- Experiences --- */
.xp-feature { display: grid; gap: clamp(2.5rem, 2rem + 2vw, 3.5rem); }
.xp-card {
	display: grid;
	gap: 1.25rem;
	align-content: start;
	color: var(--charcoal);
	text-decoration: none;
}
.xp-card__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.xp-card__body { position: relative; padding-right: 1rem; }
.xp-card__num {
	display: block;
	margin-bottom: 0.4rem;
	font-family: var(--serif);
	font-size: 1.15rem;
	font-style: italic;
	color: var(--red-logo);
}
.xp-card__title { font-size: var(--fs-h3); margin: 0 0 0.5rem; }
.xp-card__text { color: var(--ink-soft); margin: 0 0 1rem; max-width: 32em; }
.xp-card:hover { color: var(--charcoal); }
.xp-card:hover .xp-card__title { color: var(--red); }
.xp-card .xp-card__title { transition: color 0.3s var(--ease); }
.xp-card:hover .icon-arrow { transform: translateX(5px); }

@media (min-width: 700px) {
	.xp-feature { grid-template-columns: 1fr 1fr; column-gap: var(--gap); }
	.xp-card--lg { grid-column: 1 / -1; }
}
@media (min-width: 1000px) {
	.xp-feature {
		grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
		grid-template-rows: auto auto;
		column-gap: clamp(2.5rem, 5vw, 6rem);
		row-gap: 3.5rem;
	}
	.xp-card--lg { grid-column: 1; grid-row: 1 / span 2; }
	.xp-card--lg .xp-card__media { border-radius: var(--radius-xl); }
	.xp-card--lg .xp-card__media img { aspect-ratio: 4 / 5.1; }
	.xp-card--lg .xp-card__title { font-size: clamp(2.4rem, 1.6rem + 1.8vw, 3.5rem); }
	/* Supporting experiences: staggered, different proportions. */
	.xp-card:nth-child(2) { margin-top: clamp(2rem, 6vw, 6rem); }
	.xp-card:nth-child(2) .xp-card__media img { aspect-ratio: 4 / 3; }
	.xp-card:nth-child(3) { width: 82%; justify-self: end; }
	.xp-card:nth-child(3) .xp-card__media img { aspect-ratio: 1 / 1; }
}

.xp-index {
	margin-top: clamp(3.5rem, 2.5rem + 3vw, 6rem) !important;
	padding-top: 2rem;
	border-top: 1px solid var(--border-strong);
}
.xp-index__label {
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--olive);
	margin-bottom: 1rem;
}
.xp-index__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	column-gap: 2.5rem;
}
.xp-index__list a {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 0.75rem 0;
	border-bottom: 1px solid var(--border);
	color: var(--charcoal);
	text-decoration: none;
}
.xp-index__thumb {
	flex: none;
	width: 3.5rem;
	height: 3.5rem;
	overflow: hidden;
	border-radius: var(--radius-sm);
	background: var(--sand);
}
.xp-index__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--ease); }
.xp-index__name { flex: 1; font-family: var(--serif); font-size: 1.45rem; line-height: 1.15; transition: color 0.25s var(--ease); }
.xp-index__list .icon-arrow { color: var(--red); flex: none; transition: transform 0.35s var(--ease); }
.xp-index__list a:hover .xp-index__name { color: var(--red); }
.xp-index__list a:hover .icon-arrow { transform: translateX(5px); }
.xp-index__list a:hover .xp-index__thumb img { transform: scale(1.12); }
@media (min-width: 700px) { .xp-index__list { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1100px) { .xp-index__list { grid-template-columns: repeat(4, 1fr); } }

/* --- Why MyStory --- */
.home-content > .why { background: var(--cream); }
.why__grid { display: grid; gap: clamp(2.5rem, 2rem + 3vw, 5rem); }
.why__intro h2 { margin-bottom: 1.5rem; }
.why__intro .statement { margin-bottom: 2.25rem; font-size: clamp(1.35rem, 1.15rem + 0.9vw, 1.9rem); color: var(--ink-soft); }
.why__intro .wp-block-image { border-radius: var(--radius-lg); overflow: hidden; }
.why__intro .wp-block-image img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; object-position: 50% 40%; }
@media (min-width: 1000px) {
	.why__grid { grid-template-columns: 5fr 6fr; align-items: start; }
	.why__intro { position: sticky; top: calc(var(--header-h) + 2rem); }
	.why__intro .wp-block-image { width: 86%; }
}

.values-list { list-style: none; margin: 0; padding: 0; }
.values-list__item {
	display: grid;
	grid-template-columns: 3.5rem 1fr;
	gap: 0 1.25rem;
	padding: 2rem 0;
	border-top: 1px solid var(--border-strong);
}
.values-list__item:last-child { border-bottom: 1px solid var(--border-strong); }
.values-list__num {
	font-family: var(--serif);
	font-size: 2.6rem;
	font-weight: 300;
	font-style: italic;
	line-height: 0.9;
	color: var(--red-logo);
}
.values-list__title { font-size: var(--fs-h3); margin: 0 0 0.6rem; }
.values-list__title a {
	color: var(--charcoal);
	text-decoration: none;
	background: linear-gradient(var(--red), var(--red)) 0 100% / 0 1px no-repeat;
	transition: background-size 0.4s var(--ease), color 0.25s var(--ease);
}
.values-list__title a:hover { background-size: 100% 1px; color: var(--red); }
.values-list__title a::after { content: " →"; color: var(--red); font-size: 0.7em; }
.values-list__body p { color: var(--ink-soft); margin: 0; max-width: 34em; }
@media (min-width: 700px) { .values-list__item { grid-template-columns: 5.5rem 1fr; padding: 2.5rem 0; } .values-list__num { font-size: 3.4rem; } }

/* --- Authentic stories --- */
.home-content > .stories { background: var(--sand); }
.stories__grid { display: grid; gap: clamp(2.5rem, 2rem + 3vw, 5rem); align-items: center; }
.stories__image { border-radius: var(--radius-xl); }
.stories__image img { width: 100%; aspect-ratio: 4 / 4.4; object-fit: cover; object-position: 50% 30%; }
.stories__text .wp-block-quote { margin: 0 0 2rem; padding: 0; border: 0; }
.stories__text .wp-block-quote p {
	font-family: var(--serif);
	font-style: italic;
	font-weight: 300;
	font-size: clamp(1.75rem, 1.3rem + 1.9vw, 3rem);
	line-height: 1.16;
	color: var(--charcoal);
	margin: 0;
}
.stories__text .wp-block-quote p::before { content: "“"; color: var(--red-logo); }
@media (min-width: 900px) { .stories__text .wp-block-quote p::before { margin-left: -0.45em; } }
.stories__text > p:not(.kicker):not(.more) { color: var(--ink-soft); max-width: 34em; }
.stories__thumbs { display: grid; grid-template-columns: 1fr 1fr; gap: 0.9rem; margin: 2.5rem 0 0; max-width: 26rem; }
.stories__thumbs .wp-block-image { border-radius: var(--radius-md); overflow: hidden; }
.stories__thumbs .wp-block-image:nth-child(2) { transform: translateY(1.75rem); }
.stories__thumbs img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
@media (min-width: 900px) {
	.stories__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); }
	.stories__image img { aspect-ratio: 4 / 5.2; }
}

/* --- Destinations: photographs carry the labels --- */
.dest-grid { display: grid; gap: 1rem; }
.dest {
	position: relative;
	display: grid;
	grid-template-rows: 1fr auto auto;
	border-radius: var(--radius-lg);
	overflow: hidden;
	color: var(--white);
}
.dest > * { grid-column: 1; }
.dest .wp-block-image { grid-row: 1 / 4; margin: 0; border-radius: 0; }
.dest .wp-block-image img { width: 100%; height: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.dest .wp-block-image::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgb(22 20 17 / 0.72) 0%, rgb(22 20 17 / 0.25) 38%, rgb(22 20 17 / 0) 60%);
	pointer-events: none;
}
.dest h3, .dest p { position: relative; z-index: 1; padding-inline: clamp(1.1rem, 0.8rem + 1vw, 1.75rem); }
.dest h3 { grid-row: 2; margin: 0 0 0.3rem; font-size: clamp(1.6rem, 1.3rem + 1vw, 2.25rem); line-height: 1.1; }
.dest h3 a { color: var(--white); text-decoration: none; }
.dest h3 a::after { content: ""; position: absolute; inset: -100vh -100vw; } /* whole photo clickable (clipped by .dest) */
.dest p { grid-row: 3; margin: 0; padding-bottom: clamp(1.1rem, 0.8rem + 1vw, 1.6rem); font-size: var(--fs-sm); line-height: 1.5; color: rgb(255 255 255 / 0.88); max-width: 28em; }
.dest:focus-within { outline: 2px solid var(--red); outline-offset: 3px; }
.dest h3 a:focus-visible { outline: none; }
.dest--main .wp-block-image img { aspect-ratio: 4 / 4.6; }
.dest--main h3 { font-size: clamp(2.2rem, 1.6rem + 2.4vw, 3.75rem); }
.dest--main p { font-size: var(--fs-base); }
.dest-note { margin-top: 1.75rem !important; font-size: var(--fs-sm); color: var(--muted); }

/* Phones: main destination, then a swipeable rail of the other four. */
@media (max-width: 699px) {
	.dest-grid {
		grid-auto-flow: column;
		grid-auto-columns: 78%;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		margin-inline: calc(-1 * var(--gutter));
		padding: 0 var(--gutter) 0.5rem;
		scroll-padding-inline: var(--gutter);
	}
	.dest { scroll-snap-align: start; }
	.dest--main { grid-column: auto; }
	.dest .wp-block-image img, .dest--main .wp-block-image img { aspect-ratio: 3 / 4.3; }
}
@media (min-width: 700px) {
	.dest-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(1rem, 0.6rem + 1vw, 1.75rem); }
	.dest--main { grid-column: 1 / -1; }
	.dest--main .wp-block-image img { aspect-ratio: 16 / 10; }
	.dest:not(.dest--main) { grid-column: span 6; }
	.dest:not(.dest--main) .wp-block-image img { aspect-ratio: 4 / 3.4; }
}
@media (min-width: 1000px) {
	.dest-grid { grid-template-rows: auto auto auto; align-items: start; }
	.dest--main { grid-column: 1 / span 7; grid-row: 1 / span 2; height: 100%; min-height: 36rem; }
	.dest--main .wp-block-image { position: absolute; inset: 0; }
	.dest--main .wp-block-image img { aspect-ratio: auto; }
	.dest:nth-child(2) { grid-column: 8 / span 5; grid-row: 1; }
	.dest:nth-child(2) .wp-block-image img { aspect-ratio: 4 / 3; }
	.dest:nth-child(3) { grid-column: 8 / span 5; grid-row: 2; }
	.dest:nth-child(3) .wp-block-image img { aspect-ratio: 4 / 3; }
	.dest:nth-child(4) { grid-column: 2 / span 5; grid-row: 3; }
	.dest:nth-child(4) .wp-block-image img { aspect-ratio: 5 / 4; }
	.dest:nth-child(5) { grid-column: 7 / span 6; grid-row: 3; margin-top: clamp(2rem, 4vw, 4rem); }
	.dest:nth-child(5) .wp-block-image img { aspect-ratio: 16 / 10; }
	.dest--main { border-radius: var(--radius-xl); }
}

/* --- Tailor-made: photo collage + strong headline --- */
.home-content > .tailor { background: var(--cream); }
.tailor__grid { display: grid; gap: clamp(2.5rem, 2rem + 3vw, 5rem); position: relative; }
.tailor__image { border-radius: var(--radius-xl); }
.tailor__image img { width: 100%; aspect-ratio: 4 / 3.4; object-fit: cover; object-position: 50% 70%; }
.tailor__inset { display: none; }
.tailor__text h2 { font-size: clamp(2.8rem, 1.6rem + 4.4vw, 5.75rem); line-height: 0.98; margin-bottom: 1.5rem; }
.tailor__text .statement { font-style: italic; color: var(--ink-soft); font-size: clamp(1.3rem, 1.1rem + 0.8vw, 1.75rem); margin-bottom: 2rem; }
.tailor__text ul { margin: 0 0 2.5rem; }
.tailor__text .wp-block-buttons { margin-bottom: 1.25rem; }
p.tailor__phone { font-size: var(--fs-sm); color: var(--muted); margin: 0; }
p.tailor__phone a { color: var(--charcoal); font-weight: 600; }
@media (min-width: 900px) {
	.tailor__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: center; }
	.tailor__image { grid-column: 1; grid-row: 1; }
	.tailor__image img { aspect-ratio: 5 / 5.6; }
	.tailor__inset {
		display: block;
		grid-column: 1;
		grid-row: 1;
		align-self: end;
		justify-self: end;
		z-index: 2;
		width: clamp(10rem, 13vw, 14rem);
		margin: 0 clamp(-4rem, -3vw, -2rem) clamp(-3rem, -3vw, -1.5rem) 0;
		padding: 6px;
		border-radius: calc(var(--radius-md) + 6px);
		background: var(--cream);
		box-shadow: var(--shadow-soft);
	}
	.tailor__inset img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: var(--radius-md); }
	.tailor__text { grid-column: 2; grid-row: 1; padding-left: clamp(0rem, 2vw, 2rem); }
}

/* --- Recognition: typographic, no box --- */
.home-content > .recognition { padding-bottom: clamp(3.5rem, 2.5rem + 3vw, 6rem); }
.recognition__grid {
	display: grid;
	gap: 2.5rem;
	align-items: center;
	padding-block: clamp(2.5rem, 2rem + 2vw, 4rem);
	border-block: 1px solid var(--border-strong);
}
.recognition__grid .wp-block-image { margin: 0; max-width: 26rem; border-radius: var(--radius-md); overflow: hidden; box-shadow: var(--shadow-soft); }
.recognition__grid .wp-block-image img { width: 100%; }
.recognition__grid h2 { font-size: clamp(2.1rem, 1.5rem + 2.2vw, 3.5rem); margin-bottom: 1.25rem; }
.recognition__grid p:not(.kicker):not(.more) { color: var(--ink-soft); max-width: 36em; }
.recognition__grid p:not(.kicker):not(.more):nth-of-type(3) {
	font-family: var(--serif);
	font-size: clamp(1.25rem, 1.1rem + 0.6vw, 1.55rem);
	font-style: italic;
	line-height: 1.45;
	color: var(--charcoal);
	padding-left: 1.25rem;
	border-left: 1px solid var(--red-logo);
}
@media (min-width: 900px) { .recognition__grid { grid-template-columns: 4fr 7fr; gap: clamp(3rem, 6vw, 7rem); } }

/* --- Final CTA: immersive photograph with text on it --- */
.home-content > .final-cta {
	display: grid;
	padding: 0 var(--gutter) var(--section);
	max-width: calc(var(--container-wide) + 2 * var(--gutter));
	margin-inline: auto;
}
.home-content > .final-cta > * { max-width: none; margin: 0; }
.final-cta__image { grid-area: 1 / 1; border-radius: var(--radius-xl); position: relative; }
.final-cta__image img { width: 100%; height: 100%; min-height: 32rem; object-fit: cover; }
.final-cta__image::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgb(20 19 16 / 0.82) 0%, rgb(20 19 16 / 0.45) 45%, rgb(20 19 16 / 0.05) 80%);
}
.final-cta__card {
	grid-area: 1 / 1;
	align-self: end;
	z-index: 1;
	max-width: 40rem;
	padding: clamp(1.75rem, 1.2rem + 3vw, 4.5rem);
	color: var(--white);
}
.final-cta__card .kicker { color: rgb(255 255 255 / 0.85); }
.final-cta__card h2 { color: var(--white); font-size: clamp(2.4rem, 1.5rem + 3.6vw, 5rem); line-height: 1; margin-bottom: 1rem; }
.final-cta__card p:not(.kicker) { color: rgb(255 255 255 / 0.9); max-width: 32em; }
.final-cta__card .wp-block-buttons { margin-top: 1.75rem; }
@media (min-width: 900px) {
	.final-cta__image img { min-height: 40rem; max-height: 48rem; }
	.final-cta__image::after { background: linear-gradient(to right, rgb(20 19 16 / 0.78) 0%, rgb(20 19 16 / 0.42) 45%, rgb(20 19 16 / 0) 75%); }
	.final-cta__card { align-self: center; }
}

/* 7. Listings -------------------------------------------------------------- */
.xp-catalogue { list-style: none; margin: 0; padding: 0; }
.xp-row + .xp-row { border-top: 1px solid var(--border); }
.xp-row__link {
	display: grid;
	gap: 1.5rem;
	padding: clamp(2rem, 1.5rem + 2.5vw, 4rem) 0;
	color: var(--charcoal);
	text-decoration: none;
}
.xp-row__media img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.xp-row__num { display: block; font-family: var(--serif); font-style: italic; font-size: 1.25rem; color: var(--red-logo); margin-bottom: 0.5rem; }
.xp-row__title { font-size: clamp(2rem, 1.5rem + 2vw, 3.25rem); margin: 0 0 1rem; transition: color 0.3s var(--ease); }
.xp-row__body p { color: var(--ink-soft); max-width: 32em; }
.xp-row__link:hover { color: var(--charcoal); }
.xp-row__link:hover .xp-row__title { color: var(--red); }
.xp-row__link:hover .icon-arrow { transform: translateX(5px); }
@media (min-width: 900px) {
	.xp-row__link { grid-template-columns: 6fr 5fr; gap: clamp(2rem, 6vw, 6rem); align-items: center; }
	.xp-row:nth-child(even) .xp-row__link { grid-template-columns: 5fr 6fr; }
	.xp-row:nth-child(even) .xp-row__media { order: 2; }
	.xp-row:nth-child(3n+2) .xp-row__media img { aspect-ratio: 5 / 4; }
	.xp-row:nth-child(3n) .xp-row__media img { aspect-ratio: 16 / 10; }
}

.xp-related {
	list-style: none;
	margin: 0;
	padding: 0 0 0.75rem;
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(15rem, 78%);
	gap: 1rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
}
.xp-related > li { scroll-snap-align: start; }
.xp-mini { display: grid; gap: 0.9rem; color: var(--charcoal); text-decoration: none; }
.xp-mini__media { border-radius: var(--radius-md); }
.xp-mini__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.xp-mini__title { font-family: var(--serif); font-size: 1.6rem; line-height: 1.15; transition: color 0.25s var(--ease); }
.xp-mini:hover .xp-mini__title { color: var(--red); }
@media (min-width: 900px) {
	.xp-related { grid-auto-flow: row; grid-template-columns: repeat(4, 1fr); overflow: visible; gap: 1.75rem; }
	.xp-related > li:nth-child(even) { margin-top: 2.5rem; }
	.xp-related > li:nth-child(even) .xp-mini__media img { aspect-ratio: 4 / 5; }
}

.related__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 2rem !important;
}
.related__title { font-size: clamp(2rem, 1.6rem + 1.6vw, 3rem); margin: 0; }

.journeys { list-style: none; margin: 0; padding: 0; display: grid; gap: clamp(2.5rem, 2rem + 2vw, 3rem) var(--gap); }
.journey a { display: grid; gap: 1.1rem; color: var(--charcoal); text-decoration: none; }
.journey__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.journey__meta { font-size: var(--fs-xs); font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--olive); margin: 0 0 0.5rem; }
.journey__title { font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.5rem); margin: 0 0 0.5rem; transition: color 0.25s var(--ease); }
.journey a:hover .journey__title { color: var(--red); }
.journey__route { font-family: var(--serif); font-style: italic; font-size: 1.2rem; color: var(--ink-soft); margin: 0 0 0.75rem; }
.journey p:not(.journey__meta):not(.journey__route) { color: var(--ink-soft); font-size: 0.975rem; }
@media (min-width: 900px) {
	.journeys { grid-template-columns: repeat(3, 1fr); }
	.journey:nth-child(3n+2) { margin-top: 3rem; }
	.journey:nth-child(3n+2) .journey__media img { aspect-ratio: 4 / 5; }
}

/* 8. Entry content (inner pages) ------------------------------------------- */
.page-body {
	padding: clamp(3rem, 2rem + 4vw, 6rem) var(--gutter) var(--section);
	max-width: calc(var(--container) + 2 * var(--gutter));
	margin: 0 auto;
}
.page-body > .entry-content > * { max-width: var(--prose); }
.page-body > .entry-content > .alignwide { max-width: var(--container); }
.page-body > .entry-content > .alignfull {
	max-width: none;
	width: 100vw;
	margin-left: calc(50% - 50vw);
}
@media (min-width: 1100px) {
	/* Offset prose column for an editorial rhythm on wide screens. */
	.page-body:not(.page-body--aside) > .entry-content > *:not(.alignwide):not(.alignfull) { margin-left: 16.5%; }
	.page-body:not(.page-body--aside) > .entry-content > .alignfull { margin-left: calc(50% - 50vw); }
}

.page-body--aside { display: grid; gap: 3rem; }
@media (min-width: 1000px) {
	.page-body--aside { grid-template-columns: minmax(0, 1fr) 20rem; gap: clamp(3rem, 6vw, 7rem); align-items: start; }
	.page-body--aside .entry-content > .alignwide,
	.page-body--aside .entry-content > .alignfull { max-width: 100%; width: auto; margin-left: 0; }
}

.entry-content h2 { font-size: clamp(2rem, 1.6rem + 1.8vw, 3.25rem); margin: 3.5rem 0 1.25rem; }
.entry-content h3 { font-size: clamp(1.5rem, 1.3rem + 0.9vw, 2rem); margin: 2.5rem 0 0.85rem; }
.entry-content > h2:first-child, .entry-content > h3:first-child { margin-top: 0; }
.entry-content p { margin-bottom: 1.25em; }
.entry-content ul:not(.xp-catalogue):not(.journeys):not(.xp-related):not(.xp-index__list),
.entry-content ol:not(.xp-catalogue):not(.values-list) {
	margin-top: 0;
	margin-bottom: 1.75rem;
	padding-left: 0;
	list-style: none;
}
.entry-content .wp-block-list > li,
.home-content .wp-block-list > li {
	position: relative;
	padding: 0.55rem 0 0.55rem 2rem;
	border-bottom: 1px solid var(--border);
}
.entry-content .wp-block-list > li::before,
.home-content .wp-block-list > li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1.3rem;
	width: 1rem;
	height: 1px;
	background: var(--red-logo);
}
.home-content .wp-block-list { list-style: none; padding: 0; }

/* Tag-like list (trip ideas, activities). Rounded, not pills. */
.entry-content .wp-block-list.is-style-chips,
.chips { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.entry-content .wp-block-list.is-style-chips > li,
.chips > li {
	padding: 0.45rem 0.9rem;
	border: 1px solid var(--border-strong);
	border-radius: var(--radius-sm);
	font-size: var(--fs-sm);
	background: var(--white);
}
.entry-content .wp-block-list.is-style-chips > li::before { display: none; }

/* Inline serif list: "Bulgaria · Romania · …" */
.entry-content .wp-block-list.is-style-inline { display: flex; flex-wrap: wrap; gap: 0.25rem 0; }
.entry-content .wp-block-list.is-style-inline > li {
	padding: 0;
	border: 0;
	font-family: var(--serif);
	font-size: clamp(1.4rem, 1.2rem + 0.8vw, 1.9rem);
	line-height: 1.3;
}
.entry-content .wp-block-list.is-style-inline > li::before { display: none; }
.entry-content .wp-block-list.is-style-inline > li:not(:last-child)::after { content: "·"; margin: 0 0.6em; color: var(--red-logo); }

.entry-content .wp-block-image { margin: 2.5rem 0; }
.entry-content .wp-block-image img { width: 100%; border-radius: var(--radius-lg); }
.entry-content .wp-element-caption,
.entry-content figcaption {
	margin-top: 0.75rem;
	font-size: var(--fs-xs);
	color: var(--muted);
	letter-spacing: 0.02em;
}
.entry-content .wp-element-caption a { color: inherit; }

.entry-content .wp-block-quote {
	margin: 2.5rem 0;
	padding: 0 0 0 1.5rem;
	border-left: 1px solid var(--red-logo);
}
.entry-content .wp-block-quote p {
	font-family: var(--serif);
	font-size: clamp(1.4rem, 1.2rem + 0.8vw, 1.85rem);
	font-style: italic;
	line-height: 1.35;
}
.entry-content .wp-block-quote cite { font-size: var(--fs-sm); font-style: normal; color: var(--muted); }

.entry-content .wp-block-gallery {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr);
	gap: 0.6rem !important;
	margin: 3rem 0;
}
.entry-content .wp-block-gallery .wp-block-image { margin: 0; width: auto !important; }
.entry-content .wp-block-gallery .wp-block-image img { aspect-ratio: 1; object-fit: cover; height: 100%; border-radius: var(--radius-md); }
@media (min-width: 700px) {
	.entry-content .wp-block-gallery { grid-template-columns: repeat(3, 1fr); gap: 0.85rem !important; }
	.entry-content .wp-block-gallery .wp-block-image:first-child { grid-column: span 2; grid-row: span 2; }
	.entry-content .wp-block-gallery .wp-block-image:first-child img { border-radius: var(--radius-lg); }
}

.entry-content .wp-block-columns { gap: var(--gap); margin: 3rem 0; }
.entry-content .wp-block-buttons { margin: 2rem 0; }

/* Callout: typographic emphasis, no box. */
.entry-content .wp-block-group.callout {
	margin: 3rem 0;
	padding: 1.75rem 0 0;
	border-top: 1px solid var(--border-strong);
}
.entry-content .callout > h3:first-child { margin-top: 0; }
.entry-content .callout > *:last-child { margin-bottom: 0; }
.entry-content .wp-block-group.is-sand { padding: clamp(1.75rem, 1.4rem + 1.5vw, 3rem); background: var(--sand); border-radius: var(--radius-lg); margin: 2.5rem 0; }

/* Two-column media/text, with an optional overlapping inset photo. */
.media-split { display: grid; gap: 2.5rem; align-items: center; margin: 4rem 0 !important; }
.media-split .wp-block-image { margin: 0; }
.media-split .wp-block-image img { aspect-ratio: 4 / 3; object-fit: cover; }
.media-split__media { position: relative; }
.media-split__media > .wp-block-image:first-child img { aspect-ratio: 4 / 4.6; border-radius: var(--radius-xl); }
.media-split__inset { display: none; }
@media (min-width: 900px) {
	.media-split { grid-template-columns: 1fr 1fr; gap: clamp(3rem, 6vw, 6rem); }
	.media-split.is-reversed > :first-child { order: 2; }
	.media-split__media { padding-bottom: 3rem; }
	.media-split__inset {
		display: block;
		position: absolute;
		right: clamp(-4rem, -4vw, -2rem);
		bottom: 0;
		width: 42%;
		padding: 6px;
		border-radius: calc(var(--radius-md) + 6px);
		background: var(--ivory);
		box-shadow: var(--shadow-soft);
	}
	.media-split__inset img { aspect-ratio: 1 / 1 !important; border-radius: var(--radius-md) !important; }
}

/* About: recognition note and closing band. */
.award-note {
	display: grid;
	gap: 2rem;
	align-items: center;
	margin: 4rem 0 !important;
	padding-block: 2.5rem;
	border-block: 1px solid var(--border-strong);
}
.award-note .wp-block-image { margin: 0; max-width: 22rem; }
.award-note .wp-block-image img { border-radius: var(--radius-md); box-shadow: var(--shadow-soft); }
.award-note h3 { margin-top: 0 !important; }
.award-note p:not(.kicker) { color: var(--ink-soft); margin: 0; }
@media (min-width: 900px) { .award-note { grid-template-columns: 4fr 7fr; gap: clamp(2.5rem, 5vw, 5rem); } }

.cta-band {
	max-width: none !important;
	width: 100vw;
	margin: var(--section) 0 calc(-1 * var(--section)) calc(50% - 50vw) !important;
	padding: var(--section) var(--gutter) !important;
	background: var(--cream);
	text-align: center;
}
.cta-band > * { max-width: 40rem; margin-inline: auto !important; }
.cta-band h2 { margin-top: 0 !important; }
.cta-band p { color: var(--ink-soft); }
.cta-band .wp-block-buttons { justify-content: center; margin-bottom: 0; }

/* 9. Inner page heroes ----------------------------------------------------- */
.page-hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 2rem;
	max-width: calc(var(--container-wide) + 2 * var(--gutter));
	margin: 0 auto;
	padding: clamp(1.5rem, 1rem + 2vw, 3rem) var(--gutter) 0;
}
.page-hero__text { align-self: center; }
.page-hero__title { font-size: var(--fs-h1); margin: 0 0 1.25rem; max-width: 12em; }
.page-hero__lede { font-size: var(--fs-lede); color: var(--ink-soft); max-width: 32em; margin: 0; }
.page-hero__actions { margin: 2rem 0 0; }
.page-hero__media { position: relative; border-radius: var(--radius-lg); }
.page-hero__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }

.page-hero__meta { display: flex; flex-wrap: wrap; gap: 1rem 2.5rem; margin: 2rem 0 0; }
.page-hero__meta div { display: grid; gap: 0.15rem; }
.page-hero__meta dt { font-size: var(--fs-xs); font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--olive); }
.page-hero__meta dd { margin: 0; font-family: var(--serif); font-size: 1.35rem; line-height: 1.3; }

@media (min-width: 900px) {
	.page-hero--split.has-image {
		grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
		gap: clamp(2.5rem, 5vw, 6rem);
		min-height: clamp(30rem, 42vw, 44rem);
	}
	.page-hero--split .page-hero__media { border-radius: var(--radius-xl); min-height: 26rem; }
	.page-hero--split .page-hero__media img { position: absolute; inset: 0; height: 100%; aspect-ratio: auto; }
}

.page-hero--plain .page-hero__text {
	width: 100%;
	max-width: calc(var(--container) + 2 * var(--gutter));
	margin: 0 auto;
	padding-top: clamp(1.5rem, 1rem + 4vw, 5rem);
	padding-bottom: clamp(1rem, 1rem + 2vw, 3rem);
}
.page-hero--plain { padding-inline: 0; }
.page-hero--plain .page-hero__text { padding-inline: var(--gutter); }

/* Cover: wide rounded photograph, title beneath it. */
.page-hero--cover .page-hero__media { order: -1; border-radius: var(--radius-lg); }
.page-hero--cover .page-hero__media img { aspect-ratio: 4 / 3; max-height: 44rem; }
.page-hero--cover .page-hero__text { max-width: 60rem; padding-top: 0.5rem; }
@media (min-width: 900px) {
	.page-hero--cover .page-hero__media { border-radius: var(--radius-xl); }
	.page-hero--cover .page-hero__media img { aspect-ratio: 21 / 9; }
	.page-hero--cover .page-hero__text { padding-top: 1.5rem; }
}

.breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	list-style: none;
	margin: 0 0 2rem;
	padding: 0;
	font-size: var(--fs-xs);
	letter-spacing: 0.06em;
	color: var(--muted);
}
.breadcrumbs li + li::before { content: "/"; margin-right: 0.35rem; color: var(--border-strong); }
.breadcrumbs a { color: var(--muted); text-decoration: none; }
.breadcrumbs a:hover { color: var(--red); text-decoration: underline; }

/* Plan aside (selected content card) */
.plan-aside { position: relative; }
.plan-aside__card {
	padding: 2rem;
	background: var(--white);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
}
.plan-aside__card .kicker { margin-bottom: 1rem; }
.plan-aside__card p { color: var(--ink-soft); font-size: 0.975rem; }
.plan-aside__card .plan-aside__title { color: var(--charcoal); font-family: var(--serif); font-size: 1.75rem; line-height: 1.15; margin-bottom: 0.75rem; }
.plan-aside__card .btn { width: 100%; margin: 0.5rem 0 1rem; }
.plan-aside__contact { font-size: var(--fs-sm); margin: 0; }
@media (min-width: 1000px) { .plan-aside__card { position: sticky; top: calc(var(--header-h) + 2rem); } }

/* Closing enquiry on trip pages */
.closing-enquiry { display: grid; gap: 2.5rem; }
.closing-enquiry > * { max-width: var(--container); }
.closing-enquiry__title { font-size: clamp(2.2rem, 1.6rem + 2.4vw, 3.75rem); }
.closing-enquiry__intro p:not(.kicker) { color: var(--ink-soft); max-width: 30em; }
@media (min-width: 1000px) {
	.closing-enquiry { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(3rem, 6vw, 7rem); align-items: start; padding-inline: max(var(--gutter), calc((100vw - var(--container)) / 2)); }
	.closing-enquiry > * { margin: 0; }
	.closing-enquiry__intro { position: sticky; top: calc(var(--header-h) + 2rem); }
}

/* Itinerary days */
.days { margin: 2rem 0 !important; }
.day {
	position: relative;
	padding: 0 0 2.25rem 2.5rem;
	border-left: 1px solid var(--border-strong);
	margin-left: 0.5rem !important;
}
.day::before {
	content: "";
	position: absolute;
	left: -0.4rem;
	top: 0.5rem;
	width: 0.8rem;
	height: 0.8rem;
	border-radius: 50%;
	background: var(--ivory);
	border: 1.5px solid var(--red-logo);
}
.day:last-child { border-left-color: transparent; padding-bottom: 0; }
.day h3 { font-family: var(--sans); font-size: var(--fs-xs) !important; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--olive); margin: 0 0 0.5rem !important; }
.day .day__title { font-family: var(--serif); font-size: clamp(1.4rem, 1.2rem + 0.8vw, 1.8rem); line-height: 1.25; color: var(--charcoal); margin-bottom: 0.6rem; }
.day p:not(.day__title) { color: var(--ink-soft); }

/* Destinations page sections */
.dest-section { display: grid; gap: 2rem; padding: clamp(3rem, 2rem + 3vw, 5rem) 0; border-top: 1px solid var(--border); margin: 0 !important; }
.dest-section .wp-block-image { margin: 0; }
.dest-section .wp-block-image img { aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--radius-lg); }
.dest-section h2 { margin-top: 0 !important; }
@media (min-width: 900px) {
	.dest-section { grid-template-columns: 7fr 5fr; gap: clamp(2.5rem, 5vw, 5rem); align-items: center; }
	.dest-section:nth-of-type(even) { grid-template-columns: 5fr 7fr; }
	.dest-section:nth-of-type(even) > :first-child { order: 2; }
	.dest-section:nth-of-type(odd) .wp-block-image img { aspect-ratio: 4 / 3; }
	.dest-section .wp-block-image img { border-radius: var(--radius-xl); }
}

/* Video facade */
.video-facade { position: relative; margin: 3rem 0; }
.video-facade > img, .video-facade > iframe, .video-facade > .video-facade__play { border-radius: var(--radius-lg); }
.video-facade__poster { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.video-facade__play {
	position: absolute;
	inset: 0 0 auto 0;
	aspect-ratio: 16 / 9;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	width: 100%;
	border: 0;
	background: linear-gradient(to top, rgb(20 20 18 / 0.6), rgb(20 20 18 / 0.08));
	color: var(--white);
	font: 600 var(--fs-sm) var(--sans);
	letter-spacing: 0.02em;
	text-align: center;
	padding: 1rem;
	cursor: pointer;
}
.video-facade__icon {
	width: 4.5rem;
	height: 4.5rem;
	border-radius: 50%;
	background: var(--ivory) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 7l8 5-8 5z' fill='%23BD2A1E'/%3E%3C/svg%3E") 55% 50% / 1.75rem no-repeat;
	transition: transform 0.3s var(--ease);
}
.video-facade__play:hover .video-facade__icon { transform: scale(1.08); }
.video-facade iframe { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; }
.video-facade__note { padding: 0.75rem 0 0; font-size: var(--fs-xs); color: var(--muted); }

/* Contact page */
.contact-layout { display: grid; gap: 3rem; max-width: var(--container) !important; }
@media (min-width: 1000px) { .contact-layout { grid-template-columns: 4fr 7fr; gap: clamp(3rem, 6vw, 7rem); align-items: start; } }
.contact-layout__details h2 { margin-top: 0 !important; }
.contact-layout__image { margin: 2.5rem 0 0 !important; }
.contact-layout__image img { aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-lg) !important; }
.contact-details { margin: 0 0 2rem; display: grid; gap: 1.5rem; }
.contact-details dt { font-size: var(--fs-xs); font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--olive); margin-bottom: 0.25rem; }
.contact-details dd { margin: 0; font-family: var(--serif); font-size: 1.5rem; line-height: 1.3; }
.contact-details dd a { color: var(--charcoal); text-decoration: none; }
.contact-details dd a:hover { color: var(--red); }
.contact-details__map { display: block; margin-top: 0.4rem; font-family: var(--sans); font-size: var(--fs-sm) !important; color: var(--red) !important; text-decoration: underline !important; }

.tpl-contact .page-body > .entry-content > * { margin-left: 0 !important; }

.enquiry-band {
	max-width: none !important;
	width: 100vw;
	margin-left: calc(50% - 50vw) !important;
	margin-bottom: calc(-1 * var(--section)) !important;
	padding: var(--section) var(--gutter) !important;
	background: var(--cream);
}
.enquiry-band > * { max-width: 52rem; margin-inline: auto !important; }

.story-next {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding-block: clamp(2.5rem, 2rem + 2vw, 4rem);
	border-top: 1px solid var(--border);
}
.story-next > * { margin: 0 !important; }
.value-next { display: grid; gap: 0.25rem; }
.value-next .kicker { margin: 0; }
.value-next a { font-family: var(--serif); font-size: clamp(1.75rem, 1.4rem + 1.4vw, 2.75rem); color: var(--charcoal); text-decoration: none; display: inline-flex; align-items: center; gap: 0.75rem; }
.value-next a:hover { color: var(--red); }

.not-found { padding: var(--section) var(--gutter); max-width: calc(var(--container) + 2 * var(--gutter)); margin: 0 auto; }
.not-found__links { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 2rem; }

/* 10. Forms ---------------------------------------------------------------- */
.enquiry { scroll-margin-top: calc(var(--header-h) + 1.5rem); }
.enquiry__heading { font-size: clamp(2rem, 1.6rem + 1.6vw, 3rem); }
.enquiry__intro { color: var(--ink-soft); }
.enquiry__form {
	display: grid;
	gap: 1.35rem;
	padding: clamp(1.5rem, 1rem + 2.5vw, 3rem);
	background: var(--white);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	box-shadow: 0 30px 60px -48px rgb(32 33 31 / 0.4);
}
.field-row { display: grid; gap: 1.35rem; }
@media (min-width: 640px) { .field-row { grid-template-columns: 1fr 1fr; } }
.field { display: grid; gap: 0.45rem; }
.field label { font-size: var(--fs-sm); font-weight: 600; color: var(--charcoal); }
.field__optional { font-weight: 400; color: var(--muted); }
.field input[type="text"],
.field input[type="email"],
.field input[type="tel"],
.field select,
.field textarea {
	width: 100%;
	min-height: 3.25rem;
	padding: 0.8rem 1rem;
	border: 1px solid var(--border-strong);
	border-radius: var(--radius-sm);
	background: var(--ivory);
	color: var(--charcoal);
	font: 400 1rem/1.5 var(--sans);
	transition: border-color 0.2s var(--ease), background-color 0.2s var(--ease), box-shadow 0.2s var(--ease);
}
.field textarea { min-height: 9rem; resize: vertical; }
.field input:hover, .field select:hover, .field textarea:hover { border-color: var(--olive); }
.field input:focus, .field select:focus, .field textarea:focus {
	outline: none;
	border-color: var(--charcoal);
	background: var(--white);
	box-shadow: 0 0 0 4px rgb(189 42 30 / 0.14);
}
.field [aria-invalid="true"] { border-color: var(--red); background: #fdf3f1; }
.field__error {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0;
	font-size: var(--fs-sm);
	font-weight: 600;
	color: var(--red-dark);
}
.field__error::before {
	content: "!";
	display: inline-grid;
	place-items: center;
	flex: none;
	width: 1.1rem;
	height: 1.1rem;
	border-radius: 50%;
	background: var(--red-dark);
	color: var(--white);
	font-size: 0.7rem;
	line-height: 1;
}
.field__hint { margin: 0; font-size: var(--fs-xs); color: var(--muted); }
.select { position: relative; }
.select select { appearance: none; padding-right: 2.75rem; }
.select::after {
	content: "";
	position: absolute;
	right: 1rem;
	top: 50%;
	width: 0.55rem;
	height: 0.55rem;
	border-right: 1.5px solid var(--charcoal);
	border-bottom: 1.5px solid var(--charcoal);
	transform: translateY(-70%) rotate(45deg);
	pointer-events: none;
}
.field--check { grid-template-columns: auto 1fr; align-items: start; gap: 0.25rem 0.85rem; }
.field--check input { width: 1.3rem; height: 1.3rem; margin: 0.15rem 0 0; accent-color: var(--red); }
.field--check label { font-weight: 400; color: var(--ink-soft); line-height: 1.5; }
.field--check .field__error { grid-column: 2; }
.field--hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.enquiry__submit { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-top: 0.5rem; }
.enquiry__submit .btn { min-height: 3.6rem; padding-inline: 2rem; font-size: 1rem; }
.enquiry__note { margin: 0; font-size: var(--fs-sm); color: var(--muted); }
.enquiry__summary,
.enquiry__success {
	margin-bottom: 1.25rem;
	padding: 1.25rem 1.5rem;
	border-radius: var(--radius-md);
	border: 1px solid #efc9c4;
	background: #fdf3f1;
}
.enquiry__summary p { margin: 0; font-weight: 600; color: var(--red-dark); }
.enquiry__success { border-color: #cfd3c3; background: #f1f2ea; padding: 2rem; }
.enquiry__success-title { font-family: var(--serif); font-size: 2rem; line-height: 1.2; margin-bottom: 0.5rem; }
.enquiry__success:focus, .enquiry__summary:focus { outline: 2px solid var(--charcoal); outline-offset: 2px; }

/* 11. Footer --------------------------------------------------------------- */
.site-footer { background: var(--sand); color: var(--charcoal); }
.site-footer__inner {
	display: grid;
	gap: 2.5rem;
	max-width: calc(var(--container) + 2 * var(--gutter));
	margin: 0 auto;
	padding: clamp(3.5rem, 2.5rem + 4vw, 6rem) var(--gutter) 3rem;
}
.site-footer__logo img { width: 170px; height: auto; }
.site-footer__tagline { margin: 1.25rem 0; max-width: 24rem; color: var(--ink-soft); font-size: 0.95rem; }
.site-footer__award { display: flex; gap: 0.6rem; align-items: center; font-size: var(--fs-sm); color: var(--ink-soft); margin: 0; }
.site-footer__award svg { color: var(--red-logo); flex: none; }
.site-footer__sister { margin: 0.75rem 0 0; font-size: var(--fs-sm); color: var(--ink-soft); }
.site-footer__sister a { color: var(--charcoal); font-weight: 600; }
.site-footer__sister a:hover { color: var(--red); }
.site-footer__heading { font-size: var(--fs-xs); font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--olive); margin-bottom: 1rem; }
.footer-menu { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.35rem; }
.footer-menu a,
.site-footer address a { color: var(--charcoal); text-decoration: none; font-size: 0.95rem; }
.footer-menu a:hover,
.site-footer address a:hover { color: var(--red); text-decoration: underline; }
.site-footer address { font-style: normal; line-height: 1.9; font-size: 0.95rem; margin-bottom: 1.5rem; }
.site-footer .btn--ghost { min-height: 2.9rem; padding: 0.6rem 1.25rem; }
@media (min-width: 700px) { .site-footer__inner { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1100px) { .site-footer__inner { grid-template-columns: 4fr 3fr 2.5fr 3fr; gap: 3rem; } }

.site-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem 2rem;
	width: min(100% - 2 * var(--gutter), var(--container));
	margin: 0 auto;
	padding: 1.5rem 0 2rem;
	border-top: 1px solid var(--border-strong);
	font-size: var(--fs-sm);
	color: var(--muted);
}
.site-footer__bottom p { margin: 0; }
.legal-menu { list-style: none; display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; margin: 0; padding: 0; }
.legal-menu a { color: var(--muted); }
.site-footer__credit a { color: var(--charcoal); font-weight: 600; text-decoration: none; background: linear-gradient(var(--red), var(--red)) 0 100% / 0 1px no-repeat; transition: background-size 0.35s var(--ease), color 0.25s var(--ease); }
.site-footer__credit a:hover { color: var(--red); background-size: 100% 1px; }
.site-footer__eu { display: inline-block; background: var(--white); padding: 0.35rem 0.6rem; border-radius: 8px; }
.site-footer__eu img { width: 230px; height: auto; }

/* Cookie banner (Complianz). Its colours come from these variables, which it sets on :root. */
#cmplz-cookiebanner-container,
#cmplz-manage-consent {
	--cmplz_banner_background_color: var(--ivory);
	--cmplz_banner_border_color: var(--border);
	--cmplz_banner_border_radius: var(--radius-lg);
	--cmplz_text_color: var(--charcoal);
	--cmplz_hyperlink_color: var(--red);
	--cmplz_text_font_size: var(--fs-sm);
	--cmplz_title_font_size: var(--fs-base);
	--cmplz_link_font_size: var(--fs-sm);
	--cmplz_button_font_size: var(--fs-sm);
	--cmplz_button_border_radius: var(--radius-btn);
	--cmplz_button_accept_background_color: var(--red);
	--cmplz_button_accept_border_color: var(--red);
	--cmplz_button_accept_text_color: var(--white);
	--cmplz_button_deny_background_color: var(--white);
	--cmplz_button_deny_border_color: var(--border-strong);
	--cmplz_button_deny_text_color: var(--charcoal);
	--cmplz_button_settings_background_color: var(--white);
	--cmplz_button_settings_border_color: var(--border-strong);
	--cmplz_button_settings_text_color: var(--charcoal);
	--cmplz_slider_active_color: var(--red);
	--cmplz_slider_inactive_color: var(--muted);
	--cmplz_category_header_always_active_color: var(--olive);
}
.cmplz-cookiebanner { font-family: var(--sans); box-shadow: var(--shadow-soft); }
.cmplz-cookiebanner .cmplz-title { font-weight: 600; }
.cmplz-cookiebanner .cmplz-btn { font-weight: 600; }
.cmplz-cookiebanner .cmplz-btn.cmplz-accept:hover { background-color: var(--red-dark); border-color: var(--red-dark); }

/* 12. Motion --------------------------------------------------------------- */
.js .reveal {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity 0.9s var(--ease), transform 0.9s var(--ease);
}
.js .reveal.is-in { opacity: 1; transform: none; }

.js .hero__image img { animation: mst-settle 1.8s var(--ease) both; }
.js .hero__inset { animation: mst-rise 1s 0.35s var(--ease) both; }
.js .hero__text > * { animation: mst-rise 0.9s var(--ease) both; }
.js .hero__text > :nth-child(2) { animation-delay: 0.08s; }
.js .hero__text > :nth-child(3) { animation-delay: 0.16s; }
.js .hero__text > :nth-child(4) { animation-delay: 0.24s; }
.js .hero__text > :nth-child(5) { animation-delay: 0.32s; }
@keyframes mst-settle { from { transform: scale(1.05); } to { transform: none; } }
@keyframes mst-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
	.js .reveal { opacity: 1; transform: none; }
}

@media print {
	.site-header, .site-footer, .plan-aside, .enquiry, .closing-enquiry { display: none; }
}
