:root {
	--vof-hub-paper: #fbf6ed;
	--vof-hub-white: #fffdf8;
	--vof-hub-ink: #173f42;
	--vof-hub-muted: #60706d;
	--vof-hub-coral: #d96b4d;
	--vof-hub-coral-dark: #b84f35;
	--vof-hub-sage: #dbe5dc;
	--vof-hub-line: rgba(23, 63, 66, 0.14);
}

body.vof-has-destination-hub {
	background: var(--vof-hub-paper);
}

.vof-destination-hub,
.vof-destination-hub * {
	box-sizing: border-box;
}

.vof-destination-hub {
	background: var(--vof-hub-paper);
	color: var(--vof-hub-ink);
	overflow: clip;
}

/*
 * Editorial headings keep the capitalization authored in Gutenberg.
 * Astra/Elementor may impose lowercase/capitalize globally; hubs use PT-PT
 * sentence case instead. Eyebrows and compact UI labels remain intentional.
 */
.vof-destination-hub :is(h1, h2, h3, h4, h5, h6) {
	text-transform: none;
}

.vof-destination-hub a {
	color: inherit;
}

.vof-hub-section,
.vof-hub-hero__inner {
	width: min(100% - 48px, 1180px);
	margin-inline: auto;
}

.vof-hub-section {
	padding-block: clamp(3.5rem, 7vw, 6.5rem);
}

.vof-hub-section + .vof-hub-section {
	border-top: 1px solid var(--vof-hub-line);
}

.vof-hub-hero {
	position: relative;
	padding-block: clamp(3rem, 6vw, 5.5rem);
	background: linear-gradient(135deg, #f7ecdf 0%, var(--vof-hub-paper) 58%, #e7eee7 100%);
}

.vof-hub-hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 0.86fr) minmax(430px, 1.14fr);
	align-items: center;
	gap: clamp(2.5rem, 6vw, 6rem);
}

/*
 * Core Group blocks render an extra inner container on this WordPress build.
 * These wrappers are structural only; removing their box lets the actual
 * editorial blocks participate in the intended hub grids.
 */
.vof-destination-hub :is(
	.vof-hub-hero__inner,
	.vof-hub-hero__visual,
	.vof-hub-heading,
	.vof-hub-regions,
	.vof-hub-feature-grid,
	.vof-hub-card-grid,
	.vof-hub-season,
	.vof-hub-season__links,
	.vof-hub-index,
	.vof-continent-hero__collage,
	.vof-continent-destinations,
	.vof-continent-mood-grid,
	.vof-continent-route-grid,
	.vof-continent-directory-grid,
	.vof-africa-hero,
	.vof-africa-hero__media,
	.vof-africa-clusters,
	.vof-africa-directory__grid,
	.vof-asia-hero,
	.vof-asia-hero__rail,
	.vof-asia-thailand__feature,
	.vof-asia-secondary__grid,
	.vof-asia-directory__grid,
	.vof-americas-hero,
	.vof-americas-hero__scene,
	.vof-americas-usa__feature,
	.vof-americas-secondary__grid,
	.vof-americas-caribbean,
	.vof-americas-north-south,
	.vof-americas-directory__grid
) > .wp-block-group__inner-container {
	display: contents;
}

/* Continent hubs orient between clusters; they deliberately use a denser,
 * asymmetric composition than country hubs. */
.vof-continent-hero .vof-hub-hero__inner {
	grid-template-columns: minmax(0, 0.78fr) minmax(520px, 1.22fr);
}

.vof-continent-hero__collage {
	position: relative;
	display: grid;
	grid-template-columns: 1.45fr 0.9fr;
	grid-template-rows: repeat(2, 220px);
	gap: 0.85rem;
	min-width: 0;
}

.vof-continent-hero__photo {
	margin: 0;
	overflow: hidden;
	border-radius: 24px;
	box-shadow: 0 18px 42px rgba(23, 63, 66, 0.13);
}

.vof-continent-hero__photo--main {
	grid-row: 1 / span 2;
	border-radius: 44% 12% 12% 12% / 24% 12% 12% 12%;
}

.vof-continent-hero__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.vof-continent-destinations {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1rem;
}

.vof-continent-destination {
	position: relative;
	min-height: 164px;
	padding: 1.3rem;
	border: 1px solid var(--vof-hub-line);
	border-radius: 18px;
	background: var(--vof-hub-white);
}

.vof-continent-destination--lead {
	display: grid;
	grid-column: span 2;
	grid-row: span 2;
	grid-template-columns: minmax(0, 1.18fr) minmax(250px, 0.82fr);
	gap: 0;
	padding: 0;
	overflow: hidden;
	border-color: rgba(193, 94, 68, 0.2);
	background: var(--vof-hub-paper);
	box-shadow: 0 18px 46px rgba(23, 63, 66, 0.1);
	color: var(--vof-hub-ink);
}

.vof-continent-destination--lead figure {
	min-height: 345px;
	margin: 0;
}

.vof-continent-destination--lead img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.vof-continent-destination--lead .vof-continent-destination__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(1.5rem, 2.5vw, 2.25rem);
}

.vof-continent-destination__count {
	align-self: flex-start;
	margin: 0 0 1.2rem;
	padding: 0.42rem 0.7rem;
	border-radius: 999px;
	background: var(--vof-hub-coral);
	color: #fff;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	line-height: 1;
	text-transform: uppercase;
}

.vof-continent-destination h3 {
	margin: 0;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.3rem, 2vw, 1.8rem);
	line-height: 1.08;
}

.vof-continent-destination h3 a {
	text-decoration: none;
}

.vof-continent-destination > p:last-child,
.vof-continent-destination--lead > div > p:last-child {
	margin: 0.7rem 0 0;
	color: var(--vof-hub-muted);
	font-size: 0.91rem;
	line-height: 1.5;
}

.vof-continent-destination--lead .vof-continent-destination__body > p:not(.vof-continent-destination__count):not(.vof-hub-kicker) {
	color: var(--vof-hub-muted);
}

.vof-continent-destination__cta {
	display: inline-flex;
	margin-top: 0.45rem;
	color: var(--vof-hub-ink);
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-decoration-color: var(--vof-hub-coral);
	text-decoration-thickness: 2px;
	text-underline-offset: 0.3em;
}

.vof-continent-destination__cta:hover,
.vof-continent-destination__cta:focus-visible {
	color: var(--vof-hub-coral-dark);
}

.vof-continent-mood-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 1px;
	border: 1px solid rgba(255,255,255,0.16);
	border-radius: 22px;
	overflow: hidden;
	background: rgba(255,255,255,0.16);
}

.vof-continent-mood {
	min-width: 0;
	padding: 1.35rem;
	background: #204d50;
}

.vof-continent-mood__number {
	margin: 0 0 2rem;
	color: #e6b19d;
	font-size: 0.72rem;
	font-weight: 800;
}

.vof-continent-mood h3 {
	margin: 0 0 0.85rem;
	color: var(--vof-hub-paper);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.35rem;
}

.vof-continent-mood p:last-child {
	margin: 0;
	color: rgba(255,255,255,0.72);
	font-size: 0.9rem;
	line-height: 1.65;
}

.vof-continent-mood a {
	color: var(--vof-hub-paper);
	text-decoration-color: rgba(230,177,157,0.7);
	text-underline-offset: 0.18em;
}

.vof-continent-route-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 1rem;
}

.vof-continent-route-grid .vof-hub-card img {
	height: 175px;
}

.vof-continent-route-grid .vof-hub-card__body {
	padding: 1rem 1rem 1.15rem;
}

.vof-continent-directory {
	background: var(--vof-hub-paper);
}

.vof-continent-directory-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0 1.5rem;
	margin-top: 2.4rem;
	border-top: 1px solid var(--vof-hub-line);
}

.vof-continent-directory-group {
	min-width: 0;
	padding: 1.25rem 0 1.35rem;
	border-bottom: 1px solid var(--vof-hub-line);
}

.vof-continent-directory-group--lead {
	grid-column: span 2;
}

.vof-continent-directory-group__heading {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 0.85rem;
}

.vof-continent-directory-group h3 {
	margin: 0;
	color: var(--vof-hub-ink);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.18rem, 1.7vw, 1.5rem);
	font-weight: 600;
	line-height: 1.12;
}

.vof-continent-directory-group__heading span {
	flex: 0 0 auto;
	color: var(--vof-hub-coral-dark);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.vof-continent-directory-group ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.36rem 0.95rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.vof-continent-directory-group li {
	margin: 0;
}

.vof-continent-directory-group a {
	color: var(--vof-hub-muted);
	font-size: 0.9rem;
	line-height: 1.5;
	text-decoration-color: rgba(193, 94, 68, 0.42);
	text-underline-offset: 0.22em;
}

.vof-continent-directory-group a:hover,
.vof-continent-directory-group a:focus-visible {
	color: var(--vof-hub-coral-dark);
}

.vof-hub-eyebrow,
.vof-hub-kicker {
	margin: 0 0 0.8rem;
	color: var(--vof-hub-coral-dark);
	font-size: 0.74rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.vof-hub-hero h1 {
	max-width: 650px;
	margin: 0;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(4.2rem, 8vw, 7.4rem);
	font-weight: 500;
	letter-spacing: -0.055em;
	line-height: 0.9;
}

.vof-hub-hero__copy {
	max-width: 590px;
	margin: 1.6rem 0 0;
	color: var(--vof-hub-muted);
	font-size: clamp(1.05rem, 1.5vw, 1.24rem);
	line-height: 1.65;
}

.vof-hub-hero__meta {
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
	margin-top: 1.75rem;
	padding: 0.65rem 0.9rem;
	border: 1px solid var(--vof-hub-line);
	border-radius: 999px;
	background: rgba(255, 253, 248, 0.78);
	font-size: 0.78rem;
	font-weight: 750;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.vof-hub-hero__visual {
	position: relative;
}

.vof-hub-hero__media {
	margin: 0;
}

.vof-hub-hero__media img {
	display: block;
	width: 100%;
	height: clamp(420px, 45vw, 620px);
	border-radius: 46% 46% 10% 10% / 28% 28% 9% 9%;
	box-shadow: 0 28px 60px rgba(23, 63, 66, 0.16);
	object-fit: cover;
}

.vof-hub-hero__badge {
	position: absolute;
	right: -18px;
	bottom: 42px;
	display: grid;
	place-items: center;
	width: 92px;
	height: 92px;
	border-radius: 50%;
	background: var(--vof-hub-coral);
	color: white;
	font-size: 0.74rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	line-height: 1.25;
	text-align: center;
	text-transform: uppercase;
	white-space: normal;
}

.vof-hub-heading {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(280px, 0.55fr);
	align-items: end;
	gap: 2rem;
	margin-bottom: clamp(2rem, 4vw, 3.5rem);
}

.vof-hub-heading h2 {
	margin: 0;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(2.35rem, 4.6vw, 4.5rem);
	font-weight: 500;
	letter-spacing: -0.045em;
	line-height: 1;
}

.vof-hub-heading > p:last-child {
	margin: 0;
	color: var(--vof-hub-muted);
	line-height: 1.7;
}

.vof-hub-regions {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
}

.vof-hub-region {
	position: relative;
	min-height: 172px;
	padding: 1.35rem;
	border: 1px solid var(--vof-hub-line);
	border-radius: 18px;
	background: var(--vof-hub-white);
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.vof-hub-region a::after {
	position: absolute;
	inset: 0;
	content: "";
}

.vof-hub-region:focus-within {
	outline: 3px solid var(--vof-hub-coral);
	outline-offset: 3px;
}

.vof-hub-region a:focus-visible {
	outline: none;
}

.vof-destination-hub :is(.vof-hub-section, .vof-hub-card)[id] {
	scroll-margin-top: 7rem;
}

.vof-hub-region:hover {
	box-shadow: 0 16px 34px rgba(23, 63, 66, 0.09);
	transform: translateY(-3px);
}

.vof-hub-region__number {
	display: block;
	margin-bottom: 2rem;
	color: var(--vof-hub-coral);
	font-size: 0.75rem;
	font-weight: 800;
}

.vof-hub-region a {
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.42rem;
	font-weight: 700;
	line-height: 1.15;
	text-decoration: none;
}

.vof-hub-region p {
	margin: 0.55rem 0 0;
	color: var(--vof-hub-muted);
	font-size: 0.9rem;
}

.vof-hub-feature-grid,
.vof-hub-card-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1rem, 2.2vw, 1.6rem);
}

.vof-hub-feature-grid {
	grid-template-columns: repeat(12, 1fr);
}

.vof-hub-feature-grid > .vof-hub-card:first-child,
.vof-hub-feature-grid > .vof-hub-card:nth-child(4),
.vof-hub-feature-grid > .wp-block-group__inner-container > .vof-hub-card:first-child,
.vof-hub-feature-grid > .wp-block-group__inner-container > .vof-hub-card:nth-child(4) {
	grid-column: span 7;
}

.vof-hub-feature-grid > .vof-hub-card:nth-child(2),
.vof-hub-feature-grid > .vof-hub-card:nth-child(3),
.vof-hub-feature-grid > .wp-block-group__inner-container > .vof-hub-card:nth-child(2),
.vof-hub-feature-grid > .wp-block-group__inner-container > .vof-hub-card:nth-child(3) {
	grid-column: span 5;
}

.vof-hub-card {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	margin: 0;
	overflow: hidden;
	border-radius: 20px;
	background: var(--vof-hub-white);
	box-shadow: 0 14px 36px rgba(23, 63, 66, 0.08);
}

.vof-hub-card figure {
	width: 100%;
	margin: 0;
	overflow: hidden;
}

.vof-hub-card figure > a {
	display: block;
	width: 100%;
	height: 100%;
}

.vof-hub-card img {
	display: block;
	width: 100% !important;
	max-width: none;
	height: 245px;
	object-fit: cover;
	transition: transform 350ms ease;
}

.vof-hub-feature-grid .vof-hub-card img {
	height: clamp(230px, 22vw, 300px);
}

.vof-hub-card:hover img {
	transform: scale(1.025);
}

.vof-hub-card__body {
	flex: 1;
	padding: 1.35rem 1.35rem 1.5rem;
}

.vof-hub-card__body h3 {
	margin: 0;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.35rem, 2vw, 1.75rem);
	line-height: 1.12;
}

.vof-hub-card__body h3 a {
	text-decoration: none;
}

.vof-hub-card__body p {
	margin: 0.7rem 0 0;
	color: var(--vof-hub-muted);
	font-size: 0.95rem;
	line-height: 1.55;
}

.vof-hub-card__body .vof-hub-kicker {
	margin-bottom: 0.55rem;
	font-size: 0.68rem;
}

.vof-hub-band {
	background: var(--vof-hub-ink);
	color: white;
}

.vof-hub-band .vof-hub-heading > p:last-child,
.vof-hub-band .vof-hub-kicker {
	color: #e6b19d;
}

.vof-hub-band .vof-hub-heading h2,
.vof-hub-band .vof-hub-card__body h3,
.vof-hub-band .vof-hub-card__body h3 a {
	color: var(--vof-hub-paper);
}

.vof-hub-band .vof-hub-card {
	background: #204d50;
	box-shadow: none;
}

.vof-hub-band .vof-hub-card__body p {
	color: rgba(255,255,255,0.72);
}

.vof-hub-season {
	display: grid;
	grid-template-columns: minmax(0, 0.75fr) minmax(320px, 1fr);
	align-items: center;
	gap: clamp(2rem, 5vw, 5rem);
	padding: clamp(2rem, 4vw, 4rem);
	border-radius: 28px;
	background: var(--vof-hub-sage);
}

.vof-hub-season h2 {
	margin: 0;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(2.2rem, 4vw, 3.8rem);
	line-height: 1;
}

.vof-hub-season__links {
	display: grid;
	gap: 0.75rem;
}

.vof-hub-season__links a {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.85rem 0;
	border-bottom: 1px solid rgba(23,63,66,0.2);
	font-weight: 750;
	text-decoration: none;
}

.vof-hub-season__links a::after {
	color: var(--vof-hub-coral-dark);
	content: "→";
}

.vof-hub-index {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 2rem 3rem;
}

.vof-hub-index h3 {
	margin: 0 0 0.85rem;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.45rem;
}

.vof-hub-index ul {
	display: grid;
	gap: 0.55rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.vof-hub-index a {
	text-decoration-color: rgba(217,107,77,0.5);
	text-underline-offset: 0.18em;
}

@media (max-width: 1024px) {
	.vof-hub-hero__inner {
		grid-template-columns: minmax(0, 0.8fr) minmax(360px, 1fr);
		gap: 2.5rem;
	}

	.vof-hub-regions,
	.vof-hub-card-grid,
	.vof-hub-index {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.vof-continent-hero .vof-hub-hero__inner {
		grid-template-columns: minmax(0, 0.72fr) minmax(440px, 1.28fr);
	}

	.vof-continent-destinations {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.vof-continent-mood-grid,
	.vof-continent-route-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.vof-continent-directory-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 720px) {
	.vof-hub-section,
	.vof-hub-hero__inner {
		width: min(100% - 32px, 620px);
	}

	.vof-hub-section {
		padding-block: 3.6rem;
	}

	.vof-hub-hero__inner,
	.vof-hub-heading,
	.vof-hub-season {
		grid-template-columns: 1fr;
	}

	.vof-continent-hero .vof-hub-hero__inner,
	.vof-continent-destinations,
	.vof-continent-mood-grid,
	.vof-continent-route-grid,
	.vof-continent-directory-grid {
		grid-template-columns: 1fr;
	}

	.vof-continent-hero__collage {
		grid-template-columns: 1.3fr 0.8fr;
		grid-template-rows: repeat(2, min(42vw, 180px));
	}

	.vof-continent-destination--lead {
		grid-column: auto;
		grid-row: auto;
		grid-template-columns: 1fr;
	}

	.vof-continent-destination--lead figure {
		min-height: 240px;
	}

	.vof-continent-destination--lead > div {
		padding: 1.3rem;
	}

	.vof-continent-directory-group--lead {
		grid-column: auto;
	}

	.vof-continent-directory-group__heading {
		align-items: flex-start;
	}

	.vof-continent-mood__number {
		margin-bottom: 0.7rem;
	}

	.vof-continent-route-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.vof-hub-hero {
		padding-top: 2.5rem;
	}

	.vof-hub-hero h1 {
		font-size: clamp(4.1rem, 22vw, 6rem);
	}

	.vof-hub-hero__media img {
		height: min(118vw, 520px);
		border-radius: 46% 46% 8% 8% / 24% 24% 7% 7%;
	}

	.vof-hub-hero__badge {
		right: -6px;
		bottom: 24px;
		width: 78px;
		height: 78px;
	}

	.vof-hub-heading {
		gap: 1rem;
	}

	.vof-hub-regions {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.vof-hub-region {
		min-height: 150px;
		padding: 1.1rem;
	}

	.vof-hub-region__number {
		margin-bottom: 1.35rem;
	}

	.vof-hub-feature-grid,
	.vof-hub-card-grid,
	.vof-hub-index {
		grid-template-columns: 1fr;
	}

	.vof-hub-feature-grid > .vof-hub-card,
	.vof-hub-feature-grid > .wp-block-group__inner-container > .vof-hub-card {
		grid-column: auto !important;
	}

	.vof-hub-card img,
	.vof-hub-card-grid .vof-hub-card img {
		height: min(65vw, 320px);
	}

	.vof-hub-feature-grid .vof-hub-card img {
		height: min(58vw, 260px);
	}

	.vof-hub-season {
		padding: 1.5rem;
		border-radius: 20px;
	}
}

/* HUB-006: Africa uses an intentionally compact continent composition. */
.vof-africa-hero {
	padding-block: clamp(4rem, 8vw, 7.5rem);
}

.vof-africa-hero .vof-hub-hero__inner {
	display: grid;
	grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
	gap: clamp(2rem, 5vw, 5rem);
	align-items: center;
}

.vof-africa-hero__copy h1 { margin: .15em 0 .22em; }
.vof-africa-hero__copy > p:not(.vof-hub-kicker):not(.vof-africa-hero__meta) { max-width: 35rem; }
.vof-africa-hero__meta,
.vof-africa-cluster__count {
	display: inline-flex;
	padding: .55rem .8rem;
	border: 1px solid rgba(180, 83, 60, .28);
	border-radius: 999px;
	color: var(--vof-coral, #b4533c);
	font-size: .75rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.vof-africa-hero__media { display: grid; grid-template-columns: 1.25fr .75fr; gap: 1rem; align-items: end; }
.vof-africa-hero__media figure { margin: 0; overflow: hidden; border-radius: 2rem 2rem .8rem .8rem; }
.vof-africa-hero__media figure:last-child { transform: translateY(2rem); }
.vof-africa-hero__media img { width: 100%; height: clamp(20rem, 39vw, 35rem); object-fit: cover; }
.vof-africa-hero__media figure:last-child img { height: clamp(15rem, 27vw, 24rem); }

.vof-africa-clusters { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(18rem, .75fr); gap: 1.25rem; align-items: stretch; }
.vof-africa-cluster { overflow: hidden; border: 1px solid rgba(14, 69, 72, .14); border-radius: 1.25rem; background: var(--vof-paper, #fbf6ec); }
.vof-africa-cluster--morocco { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(18rem, .92fr); }
.vof-africa-cluster figure { margin: 0; overflow: hidden; }
.vof-africa-cluster img { width: 100%; height: 100%; min-height: 24rem; object-fit: cover; }
.vof-africa-cluster__body { padding: clamp(1.5rem, 3vw, 3rem); }
.vof-africa-cluster__body h3 { margin: .2em 0 .35em; }
.vof-africa-cluster__body ul { margin: 1.3rem 0; padding: 0; list-style: none; }
.vof-africa-cluster__body li + li { margin-top: .45rem; }
.vof-africa-cluster__body li a { color: var(--vof-teal, #174f50); text-decoration-thickness: 1px; text-underline-offset: .22em; }
.vof-africa-cluster__cta { color: var(--vof-coral, #b4533c); font-weight: 800; }
.vof-africa-cluster--zanzibar figure { height: 18rem; }
.vof-africa-cluster--zanzibar img { min-height: 0; }

.vof-africa-directory__grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(18rem, .8fr); gap: clamp(2rem, 5vw, 5rem); }
.vof-africa-directory__group { border-top: 1px solid rgba(14, 69, 72, .2); padding-top: 1.25rem; }
.vof-africa-directory__group > div { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.vof-africa-directory__group h3 { margin: 0; }
.vof-africa-directory__group span { color: var(--vof-coral, #b4533c); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.vof-africa-directory__group ul { display: flex; flex-wrap: wrap; gap: .65rem 1.25rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.vof-africa-directory__group a { color: inherit; text-underline-offset: .22em; }
.vof-africa-directory__group > p { margin-top: 1rem; color: var(--vof-muted, #687276); font-size: .92rem; }

@media (max-width: 1024px) {
	.vof-africa-hero .vof-hub-hero__inner,
	.vof-africa-cluster--morocco { grid-template-columns: 1fr 1fr; }
	.vof-africa-clusters { grid-template-columns: 1fr; }
	.vof-africa-cluster--zanzibar { display: grid; grid-template-columns: 1fr 1fr; }
	.vof-africa-cluster--zanzibar figure { height: auto; }
}

@media (max-width: 720px) {
	.vof-africa-hero .vof-hub-hero__inner,
	.vof-africa-hero__media,
	.vof-africa-cluster--morocco,
	.vof-africa-cluster--zanzibar,
	.vof-africa-directory__grid { grid-template-columns: 1fr; }
	.vof-africa-hero { padding-block: 3rem; }
	.vof-africa-hero .vof-hub-hero__inner { gap: 1.5rem; }
	.vof-africa-hero__media figure:last-child { display: none; transform: none; }
	.vof-africa-hero__media img { height: 20rem; }
	.vof-africa-cluster img { min-height: 0; height: 18rem; }
}

/* HUB-009: Asia balances one deep cluster with two smaller real editorial axes. */
.vof-asia-hero {
	padding-block: clamp(3.75rem, 7vw, 6.5rem);
	background:
		radial-gradient(circle at 82% 16%, rgba(180, 83, 60, .09), transparent 28rem),
		linear-gradient(180deg, var(--vof-paper, #fbf6ec), rgba(232, 240, 232, .5));
}

.vof-asia-hero .vof-hub-hero__inner { display: grid; gap: clamp(2rem, 4vw, 3.5rem); }
.vof-asia-hero__copy { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(18rem, .9fr); gap: clamp(1.5rem, 5vw, 5rem); align-items: end; }
.vof-asia-hero__copy .vof-hub-kicker,
.vof-asia-hero__copy h1 { grid-column: 1; }
.vof-asia-hero__copy .vof-hub-kicker { white-space: nowrap; }
.vof-asia-hero__copy h1 { margin: -.05em 0 0; }
.vof-asia-hero__copy > p:not(.vof-hub-kicker):not(.vof-hub-stat) { grid-column: 2; grid-row: 1 / span 2; margin: 0; max-width: 34rem; }
.vof-asia-hero__copy .vof-hub-stat { grid-column: 2; margin: 0; justify-self: start; }
.vof-asia-hero__rail { display: grid; grid-template-columns: 1.55fr .75fr .75fr; gap: .85rem; align-items: stretch; }
.vof-asia-hero__rail figure { margin: 0; overflow: hidden; border-radius: 1.6rem .6rem 1.6rem .6rem; }
.vof-asia-hero__rail img { display: block; width: 100%; height: clamp(16rem, 28vw, 25rem); object-fit: cover; }
.vof-asia-hero__rail figure:nth-child(2) { transform: translateY(1.4rem); }
.vof-asia-hero__rail figure:nth-child(3) { transform: translateY(-1rem); }

.vof-asia-count,
.vof-hub-stat {
	display: inline-flex;
	padding: .5rem .78rem;
	border: 1px solid rgba(180, 83, 60, .28);
	border-radius: 999px;
	color: var(--vof-coral, #b4533c);
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.vof-asia-thailand__feature { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(20rem, .88fr); overflow: hidden; border: 1px solid rgba(14, 69, 72, .14); border-radius: 1.5rem; background: var(--vof-teal, #174f50); color: var(--vof-paper, #fbf6ec); }
.vof-asia-thailand__feature figure { margin: 0; min-height: 32rem; }
.vof-asia-thailand__feature img { width: 100%; height: 100%; object-fit: cover; }
.vof-asia-thailand__body { padding: clamp(2rem, 4vw, 4rem); }
.vof-asia-thailand__body .vof-hub-kicker,
.vof-asia-thailand__body h3,
.vof-asia-thailand__body h3 a { color: inherit; }
.vof-asia-thailand__body h3 { margin: .2em 0 .45em; font-size: clamp(2rem, 3.3vw, 3.5rem); }
.vof-asia-thailand__body nav { display: flex; flex-wrap: wrap; gap: .55rem; margin: 1.5rem 0; }
.vof-asia-thailand__body nav a { padding: .48rem .7rem; border: 1px solid rgba(255,255,255,.27); border-radius: 999px; color: inherit; font-size: .85rem; text-decoration: none; }
.vof-asia-thailand__body nav a:hover,
.vof-asia-thailand__body nav a:focus-visible { border-color: var(--vof-coral, #b4533c); background: rgba(255,255,255,.08); }
.vof-asia-thailand__body .vof-asia-count { border-color: rgba(255,255,255,.32); color: #f1a78f; }
.vof-asia-cta { color: #fff3e4; font-weight: 800; text-underline-offset: .25em; }

.vof-asia-secondary__grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(17rem, .65fr); gap: 1.25rem; align-items: start; }
.vof-asia-secondary__grid article { overflow: hidden; border: 1px solid rgba(14, 69, 72, .14); border-radius: 1.35rem; background: var(--vof-hub-white, #fffdf8); }
.vof-asia-secondary__grid figure { margin: 0; overflow: hidden; }
.vof-asia-secondary__grid img { display: block; width: 100%; height: 18rem; object-fit: cover; }
.vof-asia-secondary__grid article > div { padding: clamp(1.5rem, 3vw, 2.75rem); }
.vof-asia-secondary__grid h3 { margin: .2em 0 .4em; }
.vof-asia-secondary__grid ul { display: flex; flex-wrap: wrap; gap: .55rem 1rem; margin: 1.25rem 0 0; padding: 0; list-style: none; }
.vof-asia-secondary__grid a { color: var(--vof-teal, #174f50); text-underline-offset: .22em; }
.vof-asia-secondary__cities { margin-top: clamp(2rem, 6vw, 5rem); }
.vof-asia-secondary__cities img { height: 14rem; }

.vof-asia-directory__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 2.75rem); }
.vof-asia-directory__group { border-top: 1px solid rgba(14, 69, 72, .22); padding-top: 1.15rem; }
.vof-asia-directory__group--thailand { grid-column: span 2; }
.vof-asia-directory__group > div { display: flex; align-items: baseline; justify-content: space-between; gap: .75rem; }
.vof-asia-directory__group h3 { margin: 0; }
.vof-asia-directory__group span { color: var(--vof-coral, #b4533c); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.vof-asia-directory__group ul { display: flex; flex-wrap: wrap; gap: .55rem 1.1rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.vof-asia-directory__group a { color: inherit; text-underline-offset: .22em; }

@media (max-width: 1024px) {
	.vof-asia-hero__copy { grid-template-columns: minmax(0, 1fr) minmax(16rem, .8fr); }
	.vof-asia-hero__rail { grid-template-columns: 1.35fr .8fr .8fr; }
	.vof-asia-thailand__feature { grid-template-columns: 1fr 1fr; }
	.vof-asia-secondary__grid { grid-template-columns: 1.15fr .85fr; }
	.vof-asia-directory__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
	.vof-asia-hero { padding-block: 3rem; }
	.vof-asia-hero__copy .vof-hub-kicker { white-space: normal; }
	.vof-asia-hero__copy,
	.vof-asia-thailand__feature,
	.vof-asia-secondary__grid,
	.vof-asia-directory__grid { grid-template-columns: 1fr; }
	.vof-asia-hero__copy .vof-hub-kicker,
	.vof-asia-hero__copy h1,
	.vof-asia-hero__copy > p:not(.vof-hub-kicker):not(.vof-hub-stat),
	.vof-asia-hero__copy .vof-hub-stat { grid-column: 1; grid-row: auto; }
	.vof-asia-hero__rail { grid-template-columns: 1.45fr .75fr; }
	.vof-asia-hero__rail figure:nth-child(2) { transform: none; }
	.vof-asia-hero__rail figure:nth-child(3) { display: none; }
	.vof-asia-hero__rail img { height: min(70vw, 20rem); }
	.vof-asia-thailand__feature figure { min-height: 19rem; }
	.vof-asia-thailand__body { padding: 1.6rem; }
	.vof-asia-secondary__cities { margin-top: 0; }
	.vof-asia-directory__group--thailand { grid-column: auto; }
}

/* HUB-010: Americas uses a panoramic scene, a route-like US feature and a compact island rhythm. */
.vof-americas-hero {
	padding-block: clamp(3.75rem, 7vw, 6.5rem);
	background:
		radial-gradient(circle at 17% 24%, rgba(180, 83, 60, .1), transparent 24rem),
		linear-gradient(145deg, var(--vof-paper, #fbf6ec) 0 60%, rgba(216, 231, 225, .72) 60% 100%);
}
.vof-americas-hero .vof-hub-hero__inner { display: grid; grid-template-columns: minmax(18rem, .78fr) minmax(0, 1.22fr); gap: clamp(2rem, 6vw, 6rem); align-items: center; }
.vof-americas-hero__copy { position: relative; z-index: 2; }
.vof-americas-hero__copy h1 { margin: .05em 0 .25em; }
.vof-americas-hero__copy > p:not(.vof-hub-kicker):not(.vof-americas-stat) { max-width: 34rem; }
.vof-americas-stat,
.vof-americas-count { display: inline-flex; padding: .5rem .78rem; border: 1px solid rgba(180, 83, 60, .3); border-radius: 999px; color: var(--vof-coral, #b4533c); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.vof-americas-hero__scene { position: relative; min-height: clamp(27rem, 42vw, 38rem); }
.vof-americas-hero__scene figure { margin: 0; overflow: hidden; background: #ddd; }
.vof-americas-hero__scene img { display: block; width: 100%; height: 100%; object-fit: cover; }
.vof-americas-hero__main { position: absolute; inset: 0 7% 6% 3%; border-radius: 46% 46% 1.5rem 1.5rem; }
.vof-americas-hero__postcard { position: absolute; width: 32%; aspect-ratio: 1; border: .5rem solid var(--vof-paper, #fbf6ec); border-radius: 50%; box-shadow: 0 1.2rem 3rem rgba(15, 47, 52, .18); }
.vof-americas-hero__postcard--islands { right: -2%; bottom: -1%; }
.vof-americas-hero__postcard--north { top: -4%; left: -5%; width: 23%; }

.vof-americas-usa__feature { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(20rem, .9fr); overflow: hidden; border: 1px solid rgba(14, 69, 72, .14); border-radius: 1.5rem; background: var(--vof-hub-white, #fffdf8); box-shadow: 0 1rem 3rem rgba(15, 47, 52, .07); }
.vof-americas-usa__feature figure { margin: 0; min-height: 31rem; }
.vof-americas-usa__feature img { width: 100%; height: 100%; object-fit: cover; }
.vof-americas-usa__body { position: relative; padding: clamp(2rem, 4.5vw, 4.5rem); }
.vof-americas-usa__body::before { content: ""; position: absolute; top: 0; left: 0; width: 4.5rem; height: .35rem; background: var(--vof-coral, #b4533c); }
.vof-americas-usa__body h3 { margin: .2em 0 .45em; font-size: clamp(2rem, 3.2vw, 3.35rem); }
.vof-americas-usa__body nav { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1.6rem; }
.vof-americas-usa__body nav a { padding: .5rem .75rem; border: 1px solid rgba(14, 69, 72, .2); border-radius: 999px; color: var(--vof-teal, #174f50); font-size: .86rem; font-weight: 700; text-decoration: none; }
.vof-americas-usa__body nav a:hover,
.vof-americas-usa__body nav a:focus-visible { border-color: var(--vof-coral, #b4533c); background: rgba(180, 83, 60, .06); }

.vof-americas-secondary__grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(18rem, .65fr); gap: 1.25rem; align-items: start; }
.vof-americas-caribbean { display: grid; grid-template-columns: minmax(16rem, .9fr) minmax(0, 1.1fr); overflow: hidden; border-radius: 1.5rem; background: var(--vof-teal, #174f50); color: var(--vof-paper, #fbf6ec); }
.vof-americas-caribbean__intro { padding: clamp(1.75rem, 3.5vw, 3.5rem); }
.vof-americas-caribbean__intro .vof-hub-kicker,
.vof-americas-caribbean__intro h3 { color: inherit; }
.vof-americas-caribbean__intro h3 { margin: .25em 0 .45em; }
.vof-americas-caribbean__intro .vof-americas-count { border-color: rgba(255,255,255,.3); color: #f1a78f; }
.vof-americas-caribbean figure { margin: 0; min-height: 22rem; }
.vof-americas-caribbean img { width: 100%; height: 100%; object-fit: cover; }
.vof-americas-caribbean ul { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 0; padding: 1px 0 0; background: rgba(255,255,255,.18); list-style: none; }
.vof-americas-caribbean li { background: var(--vof-teal, #174f50); }
.vof-americas-caribbean li a { display: grid; gap: .1rem; min-height: 5.5rem; padding: 1rem 1.35rem; color: inherit; text-decoration: none; }
.vof-americas-caribbean li a:hover,
.vof-americas-caribbean li a:focus-visible { background: rgba(255,255,255,.08); }
.vof-americas-caribbean li span { color: rgba(255,255,255,.72); font-size: .82rem; }
.vof-americas-north-south { display: grid; gap: 1.25rem; }
.vof-americas-north-south article { overflow: hidden; border: 1px solid rgba(14, 69, 72, .14); border-radius: 1.25rem; background: var(--vof-hub-white, #fffdf8); }
.vof-americas-north-south figure { margin: 0; height: 10rem; }
.vof-americas-north-south img { width: 100%; height: 100%; object-fit: cover; }
.vof-americas-north-south article > div { padding: 1.25rem 1.4rem 1.5rem; }
.vof-americas-north-south h3 { margin: .25em 0; }
.vof-americas-north-south ul { margin: .75rem 0 0; padding: 0; list-style: none; }
.vof-americas-north-south li + li { margin-top: .35rem; }
.vof-americas-north-south a { color: var(--vof-teal, #174f50); text-underline-offset: .22em; }

.vof-americas-directory__grid { display: grid; grid-template-columns: 1.35fr 1fr 1fr; gap: clamp(1.5rem, 3vw, 3rem); }
.vof-americas-directory__group { border-top: 1px solid rgba(14, 69, 72, .22); padding-top: 1.15rem; }
.vof-americas-directory__group--usa { grid-row: span 2; }
.vof-americas-directory__group > div { display: flex; align-items: baseline; justify-content: space-between; gap: .8rem; }
.vof-americas-directory__group h3 { margin: 0; }
.vof-americas-directory__group span { color: var(--vof-coral, #b4533c); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.vof-americas-directory__group ul { display: flex; flex-wrap: wrap; gap: .55rem 1.1rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.vof-americas-directory__group a { color: inherit; text-underline-offset: .22em; }

@media (max-width: 1024px) {
	.vof-americas-hero .vof-hub-hero__inner { grid-template-columns: minmax(16rem, .8fr) minmax(0, 1.2fr); gap: 2.5rem; }
	.vof-americas-usa__feature { grid-template-columns: 1fr 1fr; }
	.vof-americas-secondary__grid { grid-template-columns: minmax(0, 1.2fr) minmax(16rem, .8fr); }
	.vof-americas-caribbean { grid-template-columns: 1fr; }
	.vof-americas-caribbean figure { min-height: 17rem; }
	.vof-americas-directory__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
	.vof-americas-hero { padding-block: 3rem; }
	.vof-americas-hero .vof-hub-hero__inner,
	.vof-americas-usa__feature,
	.vof-americas-secondary__grid,
	.vof-americas-directory__grid { grid-template-columns: 1fr; }
	.vof-americas-hero__scene { min-height: min(105vw, 31rem); }
	.vof-americas-hero__main { inset: 0 4% 7% 0; }
	.vof-americas-hero__postcard--north { left: -1%; }
	.vof-americas-hero__postcard--islands { right: 0; }
	.vof-americas-usa__feature figure { min-height: 20rem; }
	.vof-americas-usa__body { padding: 1.6rem; }
	.vof-americas-caribbean { grid-template-columns: 1fr; }
	.vof-americas-caribbean ul { grid-template-columns: 1fr; }
	.vof-americas-north-south { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.vof-americas-north-south figure { height: 8.5rem; }
	.vof-americas-directory__group--usa { grid-row: auto; }
}

@media (max-width: 380px) {
	.vof-americas-north-south { grid-template-columns: 1fr; }
}

@media (max-width: 380px) {
	.vof-hub-regions {
		grid-template-columns: 1fr;
	}

	.vof-hub-region {
		min-height: 0;
	}

	.vof-continent-route-grid {
		grid-template-columns: 1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	.vof-destination-hub * {
		transition-duration: 0.01ms !important;
	}
}

/* RC-004: targeted structural polish. */
@media (min-width:721px) {
	.vof-continent-destination--lead { grid-row:span 2; grid-template-columns:minmax(0,1.05fr) minmax(230px,.95fr); }
	.vof-continent-destination--lead figure { min-height:285px; max-height:330px; }
	.vof-continent-destination--lead .vof-continent-destination__body { padding:clamp(1.25rem,2vw,1.85rem); }
	.vof-asia-hero .vof-hub-hero__inner { grid-template-columns:minmax(22rem,.86fr) minmax(0,1.14fr); align-items:center; }
	.vof-asia-hero__copy { grid-template-columns:1fr; gap:.9rem; align-content:center; }
	.vof-asia-hero__copy .vof-hub-kicker,
	.vof-asia-hero__copy h1,
	.vof-asia-hero__copy p:not(.vof-hub-kicker):not(.vof-hub-stat),
	.vof-asia-hero__copy .vof-hub-stat { grid-column:1; grid-row:auto; }
	.vof-asia-hero__copy p:not(.vof-hub-kicker):not(.vof-hub-stat) { margin:0; max-width:34rem; }
	.vof-asia-hero__copy .vof-hub-stat { margin:0; justify-self:start; }
	.vof-asia-hero__rail { grid-template-columns:1.45fr .72fr .72fr; }
}
.vof-americas-usa__body nav,
.vof-asia-thailand__body nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.55rem; }
.vof-americas-usa__body nav a,
.vof-asia-thailand__body nav a { display:flex; align-items:center; min-height:2.75rem; }
.vof-americas-usa__feature { grid-template-columns:minmax(0,.92fr) minmax(22rem,1.08fr); }
.vof-americas-usa__feature figure { min-height:25rem; }
.vof-americas-usa__body { padding:clamp(1.6rem,3vw,2.75rem); }
.vof-americas-usa__body nav { grid-template-columns:repeat(3,minmax(0,1fr)); }
.vof-americas-usa__body nav a,.vof-asia-thailand__body nav a { justify-content:center; padding:.55rem .7rem; text-align:center; }
.vof-asia-thailand__feature { grid-template-columns:minmax(0,1fr) minmax(23rem,1fr); }
.vof-asia-thailand__feature figure { min-height:27rem; }
.vof-asia-thailand__body { padding:clamp(1.75rem,3.2vw,3rem); }
.vof-asia-route-cta { margin:1.25rem 0 .7rem; }
.vof-asia-route-cta a { display:inline-flex; min-height:44px; align-items:center; padding:.65rem .95rem; border:1px solid #f1a78f; border-radius:999px; color:#fff3e4; font-weight:800; text-decoration:none; }
.vof-asia-route-cta a:hover,.vof-asia-route-cta a:focus-visible { background:rgba(255,255,255,.09); }
.vof-americas-secondary__grid { align-items:stretch; }
.vof-americas-north-south { grid-template-rows:repeat(2,minmax(0,1fr)); }
.vof-americas-north-south article { display:grid; grid-template-rows:10rem 1fr; }
@media (max-width:720px) {
	.vof-americas-usa__body nav,
	.vof-asia-thailand__body nav { grid-template-columns:1fr; }
}
@media (min-width:721px) and (max-width:1024px) {
	.vof-americas-usa__body nav,.vof-asia-thailand__body nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* RC-004: reusable Gutenberg country-hub structure. */
.vof-country-hub { background:var(--vof-paper,#fbf6ec); color:var(--vof-ink,#173f42); }
.vof-destination-hub :is(.vof-continent-destination--lead,.vof-asia-hero__copy) > .wp-block-group__inner-container,
.vof-country-hub .wp-block-group__inner-container { display:contents; }
.vof-country-hero { padding-block:clamp(3.5rem,7vw,6.5rem); background:linear-gradient(145deg,#f6eadc,var(--vof-paper,#fbf6ec) 58%,#e4ede4); }
.vof-country-hero__inner { width:min(100% - 48px,1180px); margin-inline:auto; display:grid; grid-template-columns:minmax(0,.85fr) minmax(28rem,1.15fr); gap:clamp(2rem,5vw,5rem); align-items:center; }
.vof-country-hero h1 { margin:.08em 0 .25em; font-family:Georgia,"Times New Roman",serif; font-size:clamp(4rem,8vw,7.5rem); font-weight:500; letter-spacing:-.055em; line-height:.9; }
.vof-country-hero__copy > p:not(.vof-hub-kicker):not(.vof-hub-stat) { max-width:38rem; line-height:1.7; }
.vof-country-hero figure { margin:0; overflow:hidden; border-radius:2rem .8rem 2rem .8rem; }
.vof-country-hero img { display:block; width:100%; height:clamp(22rem,38vw,34rem); object-fit:cover; }
.vof-country-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; }
.vof-country-grid .vof-hub-card { height:100%; }
.vof-country-route { padding:clamp(1.5rem,3vw,2.5rem); border-radius:1.5rem; background:var(--vof-teal,#174f50); color:var(--vof-paper,#fbf6ec); }
.vof-country-route h2,.vof-country-route a { color:inherit; }
@media (max-width:900px) { .vof-country-hero__inner { grid-template-columns:minmax(0,.9fr) minmax(22rem,1.1fr); } .vof-country-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:720px) { .vof-country-hero__inner,.vof-country-grid { grid-template-columns:1fr; } .vof-country-hero__inner { width:min(100% - 32px,620px); } .vof-country-hero img { height:min(72vw,24rem); } }

/* HUB-LOCK-002 correction: content-led country hubs. Morocco has a dominant
 * route story; Switzerland stays deliberately concise at four guides. */
.vof-country-feature {
	display: grid;
	grid-template-columns: minmax(0, 1.12fr) minmax(20rem, .88fr);
	overflow: hidden;
	border: 1px solid var(--vof-hub-line);
	border-radius: 1.75rem;
	background: var(--vof-hub-white);
	box-shadow: 0 18px 50px rgba(23, 63, 66, .08);
}

.vof-country-feature > figure {
	min-height: 30rem;
	margin: 0;
}

.vof-country-feature > figure img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.vof-country-feature__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(2rem, 4vw, 3.75rem);
}

.vof-country-feature__body h2 {
	margin: .15em 0 .4em;
	font-size: clamp(2.25rem, 4.2vw, 4.25rem);
	line-height: 1.02;
}

.vof-country-feature__body > p:not(.vof-hub-kicker) {
	line-height: 1.65;
}

.vof-country-feature__stops {
	color: var(--vof-hub-muted);
	font-size: .86rem;
	font-weight: 750;
	letter-spacing: .025em;
}

.vof-country-feature__cta a,
.vof-country-card__link a {
	font-weight: 800;
	text-decoration-color: var(--vof-hub-coral);
	text-decoration-thickness: 2px;
	text-underline-offset: .28em;
}

.vof-country-grid--morocco {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.vof-country-grid--switzerland {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.vof-country-grid--morocco .vof-hub-card,
.vof-country-grid--switzerland .vof-hub-card {
	display: grid;
	grid-template-rows: auto 1fr;
}

.vof-country-grid--morocco .vof-hub-card figure,
.vof-country-grid--switzerland .vof-hub-card figure {
	margin: 0;
}

.vof-country-grid--morocco .vof-hub-card img {
	height: 13.5rem;
}

.vof-country-grid--switzerland .vof-hub-card img {
	height: clamp(15rem, 24vw, 20rem);
}

.vof-country-grid--morocco .vof-hub-card__body,
.vof-country-grid--switzerland .vof-hub-card__body {
	display: flex;
	flex-direction: column;
}

.vof-country-grid--morocco .vof-country-card__link,
.vof-country-grid--switzerland .vof-country-card__link {
	margin-top: auto;
	padding-top: .75rem;
}

.vof-country-hub--morocco .vof-country-hero figure {
	border-radius: 42% 12% 12% 12% / 28% 12% 12% 12%;
}

.vof-country-hub--switzerland .vof-country-hero figure {
	border-radius: 12% 42% 12% 12% / 12% 28% 12% 12%;
}

@media (max-width: 900px) {
	.vof-country-feature,
	.vof-country-grid--morocco,
	.vof-country-grid--switzerland {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.vof-country-feature > figure,
	.vof-country-feature__body {
		min-width: 0;
	}
}

@media (max-width: 720px) {
	.vof-country-feature,
	.vof-country-grid--morocco,
	.vof-country-grid--switzerland {
		grid-template-columns: minmax(0, 1fr);
	}

	.vof-country-feature > figure {
		min-height: 0;
	}

	.vof-country-feature > figure img {
		height: min(68vw, 22rem);
	}

	.vof-country-grid--morocco .vof-hub-card img,
	.vof-country-grid--switzerland .vof-hub-card img {
		height: min(64vw, 19rem);
	}
}

/* RC-007: final hub alignment and mobile image composition. */
.vof-continent-destinations { align-items:start; grid-auto-rows:auto; }
.vof-continent-destination:not(.vof-continent-destination--lead) { align-self:start; height:auto; min-height:0; }
.vof-americas-usa__body nav a,
.vof-asia-thailand__body nav a { box-sizing:border-box; width:100%; height:100%; margin:0; }
.vof-americas-usa__body nav > p,
.vof-asia-thailand__body nav > p { display:flex; height:100%; margin:0 !important; }
@media (min-width:1025px) {
	.vof-americas-usa__body nav { grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-rows:1fr; }
	.vof-asia-thailand__body nav { grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-rows:1fr; }
}
@media (max-width:720px) {
	.vof-americas-usa__feature,
	.vof-asia-thailand__feature { grid-template-columns:minmax(0,1fr); }
	.vof-americas-usa__feature figure,
	.vof-asia-thailand__feature figure { display:block; width:100%; min-height:19rem; }
	.vof-americas-usa__feature img,
	.vof-asia-thailand__feature img { display:block; width:100%; height:19rem; object-fit:cover; }
	.vof-asia-hero__rail { display:block; }
	.vof-asia-hero__rail figure:first-child { display:block; width:100%; transform:none; }
	.vof-asia-hero__rail figure:not(:first-child) { display:none; }
	.vof-asia-hero__rail img { width:100%; height:min(74vw,22rem); object-fit:cover; object-position:center; border-radius:1.35rem .55rem 1.35rem .55rem; }
}

/* HUB-HERO-002: reveal the beginning of the hub content at normal desktop
 * viewports while keeping mobile heroes fully content-driven. */
.vof-hub-discovery-cta {
	margin: 1.15rem 0 0 !important;
}

.vof-hub-discovery-cta a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: .58rem .9rem;
	border: 1px solid rgba(23, 63, 66, .28);
	border-radius: 999px;
	color: var(--vof-hub-ink, #173f42);
	font-size: .88rem;
	font-weight: 750;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}

.vof-hub-discovery-cta a:hover,
.vof-hub-discovery-cta a:focus-visible {
	border-color: var(--vof-hub-coral, #d96b4d);
	background: rgba(217, 107, 77, .09);
	color: var(--vof-hub-coral-dark, #b84f35);
}

.vof-hub-discovery-cta a:focus-visible {
	outline: 3px solid rgba(217, 107, 77, .28);
	outline-offset: 3px;
}

.vof-destination-hub [id^="explorar-"] {
	scroll-margin-top: 7rem;
}

@media (min-width: 901px) {
	.vof-hub-hero,
	.vof-country-hero,
	.vof-africa-hero,
	.vof-asia-hero,
	.vof-americas-hero {
		padding-block: clamp(1.75rem, 2.5vw, 2.5rem);
	}

	.vof-hub-hero__media img,
	.vof-country-hero img {
		height: clamp(20rem, 27vw, 22rem);
	}

	.vof-continent-hero__collage {
		grid-template-rows: repeat(2, clamp(8.75rem, 11vw, 10rem));
	}

	.vof-africa-hero__media img {
		height: clamp(20rem, 27vw, 22rem);
	}

	.vof-africa-hero__media figure:last-child img {
		height: clamp(14rem, 18vw, 17rem);
	}

	.vof-asia-hero__rail img {
		height: clamp(17rem, 21vw, 19rem);
	}

	.vof-americas-hero__scene {
		min-height: clamp(20rem, 27vw, 22rem);
	}
}
