/**
 * CHESAALULA Discovery — Design System (DEV-01, isolated preview).
 *
 * Scope: everything lives under `.ch-discovery`. No selector in this file
 * targets a bare element (h1, a, img, section...) — every rule is anchored
 * to a `.ch-*` class so this stylesheet cannot leak into Traveler/legacy.
 *
 * Loaded only by discovery/templates/destination-detail-preview.php.
 * Not enqueued globally, not wired into functions.php, no public routing.
 *
 * Fonts: Newsreader (display) / Manrope (body/UI) are self-hosted below —
 * OFL-licensed from Google's official distribution (fonts.gstatic.com).
 * See discovery/assets/fonts/ATTRIBUTION.txt. No remote request at runtime.
 */

@font-face {
	font-family: 'Newsreader';
	src: url('../fonts/Newsreader-Variable-latin.woff2') format('woff2');
	font-weight: 200 800;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Manrope';
	src: url('../fonts/Manrope-Variable-latin.woff2') format('woff2');
	font-weight: 200 800;
	font-style: normal;
	font-display: swap;
}

/* Gate 2: one structural shell and one search directly below the global menu. */
.ch-discovery-shell {
	--ch-home-max: 1240px;
	--ch-home-ink: #0f172a;
	--ch-home-muted: #5b6472;
	--ch-home-paper: #fffcf7;
	--ch-home-forest: #1a5c8a;
	--ch-home-forest-deep: #0f172a;
	--ch-home-line: rgba(15, 23, 42, 0.16);
	font-family: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
	font-size: 16px;
	line-height: 1.45;
}

.ch-discovery-shell__search-band {
	position: relative;
	z-index: 20;
	padding: 16px 0;
	border-bottom: 1px solid var(--ch-home-line);
	background: var(--ch-home-paper);
}

.ch-discovery-shell__search-band .ch-home-search {
	margin-bottom: 0;
}

/* ==========================================================================
   1. TOKENS
   ========================================================================== */

/*
 * FRONT-01.01 Color contract — North Star reading.
 * Ivory is the editorial canvas. Forest is identity, not the automatic
 * without-media fill. FRONT-01.08: without-media is editorial, not a photo slot.
 */
.ch-discovery,
body.vk-destination-detail-page {
	/* Midnight Cacao + Atlantic blue (teal oficial leía demasiado verde). */
	--ch-color-forest: #1A5C8A;
	--ch-color-forest-deep: #0F172A;
	--ch-color-footer: #0D2C24;
	--ch-color-ivory: #FFFCF7;
	--ch-color-sand: #FFF3E6;
	--ch-color-surface: #FFFFFF;
	--ch-color-text: #0F172A;
	--ch-color-title: #3A4F63;
	--ch-color-text-muted: #5B6472;
	--ch-color-text-on-dark: #FFFFFF;
	--ch-color-accent: #E25A24;
	--ch-color-accent-hover: #C94A18;
	--ch-color-gold: #C9B27A;
	--ch-color-live: #0D5C4D;
	--ch-nav-active: #006D77;
	--ch-nav-hover: #2F6B52;
	--ch-color-border: color-mix(in srgb, var(--ch-color-forest-deep) 16%, var(--ch-color-ivory));
	--ch-color-overlay: var(--ch-color-forest-deep);
	--ch-color-vignette: color-mix(in srgb, #000 58%, var(--ch-color-overlay));
	--ch-media-grade: contrast(1.06) saturate(1.04) brightness(1);
	--ch-color-focus: var(--ch-color-forest);
	--ch-color-success-bg: #1E6B3E;
	--ch-color-success-text: var(--ch-color-text-on-dark);
	--ch-color-warning-bg: #8A5613;
	--ch-color-warning-text: var(--ch-color-text-on-dark);
	--ch-color-critical-bg: #7A2E22;
	--ch-color-critical-text: var(--ch-color-text-on-dark);
	/*
	 * Perspective color contract. Hero and card primitives consume these
	 * tokens; the global menu intentionally uses one shared active color.
	 */
	--ch-perspective-accent: #006D77;
	--ch-perspective-accent-strong: #075A62;
	--ch-perspective-accent-soft: rgba(0, 109, 119, 0.09);

	/*
	 * FRONT-01.05 Surface roles — colors unchanged.
	 * CANVAS = ivory. SURFACE = white puntual. SAND = pause/seasonality.
	 * TERRITORIAL DARK = scale change / closure only.
	 * Without-media ≠ forest except Territory (semantic dark surface).
	 */
}

body.ch-perspective-destinos {
	--ch-perspective-accent: #1A5C8A;
	--ch-perspective-accent-strong: #174F76;
	--ch-perspective-accent-soft: rgba(26, 92, 138, 0.10);
}

body.ch-perspective-experiencias {
	--ch-perspective-accent: #9A5B18;
	--ch-perspective-accent-strong: #7D4811;
	--ch-perspective-accent-soft: rgba(154, 91, 24, 0.11);
}

body.ch-perspective-eventos {
	--ch-perspective-accent: #B23A2B;
	--ch-perspective-accent-strong: #963124;
	--ch-perspective-accent-soft: rgba(178, 58, 43, 0.10);
}

body.ch-perspective-hospedaje {
	--ch-perspective-accent: #2F6B52;
	--ch-perspective-accent-strong: #255641;
	--ch-perspective-accent-soft: rgba(47, 107, 82, 0.10);
}

.ch-discovery,
body.vk-destination-detail-page {
	--ch-font-display: 'Newsreader', Georgia, 'Times New Roman', serif;
	--ch-font-sans: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--ch-home-ink: var(--ch-color-text);
	--ch-home-muted: var(--ch-color-text-muted);
	--ch-home-paper: var(--ch-color-ivory);
	--ch-home-forest: var(--ch-color-forest);
	--ch-home-forest-deep: var(--ch-color-forest-deep);
	--ch-home-line: var(--ch-color-border);
	--ch-home-gold: #c9b27a;
	--ch-home-display: var(--ch-font-display);
	--ch-home-ui: var(--ch-font-sans);
	--ch-home-max: var(--ch-content-max);

	/*
	 * Display = Newsreader (literary serif). UI/body = Manrope.
	 * Sizes are px, not rem: Traveler parent computes a 10px root.
	 */
	--ch-type-display: clamp(36px, 16px + 3.6vw, 64px);
	--ch-type-display-lh: 1.06;
	--ch-type-display-weight: 500;
	--ch-type-display-tracking: -0.02em;

	--ch-type-section: clamp(22px, 18px + 0.55vw, 28px);
	--ch-type-section-lh: 1.25;
	--ch-type-section-weight: 450;
	--ch-type-section-tracking: 0.01em;

	--ch-type-entity-lg: clamp(24px, 20px + 0.7vw, 30px);
	--ch-type-entity-lg-lh: 1.2;

	--ch-type-entity: clamp(20px, 18px + 0.4vw, 24px);
	--ch-type-entity-lh: 1.22;

	--ch-type-lede: 18px;
	--ch-type-lede-lh: 1.55;

	--ch-type-body: 16px;
	--ch-type-body-lh: 1.6;

	--ch-type-small: 14px;
	--ch-type-small-lh: 1.5;

	--ch-type-kicker: 13px;
	--ch-type-kicker-lh: 1.35;
	--ch-type-kicker-tracking: 0.1em;

	--ch-type-chip: 12px;
	--ch-type-chip-lh: 1.3;
	--ch-type-chip-tracking: 0.08em;

	--ch-type-numeral: clamp(32px, 22px + 1.6vw, 40px);
	--ch-type-numeral-lh: 0.95;

	--ch-content-max: 1240px;
	--ch-content-wide: 1240px;
	--ch-content-editorial: 720px;
	--ch-gutter-desktop: 40px;
	--ch-gutter-tablet: 24px;
	--ch-gutter-mobile: 20px;
	--ch-gutter: var(--ch-gutter-desktop);

	/*
	 * FRONT-01.04 Spacing scale.
	 * Eight steps in use. 96/128/160/200 removed — unused.
	 * Rhythm roles collapse independently on mobile.
	 */
	--ch-space-4: 4px;
	--ch-space-8: 8px;
	--ch-space-12: 12px;
	--ch-space-16: 16px;
	--ch-space-24: 24px;
	--ch-space-32: 32px;
	--ch-space-48: 48px;
	--ch-space-64: 64px;
	--ch-space-section: var(--ch-space-64);
	--ch-space-transition: var(--ch-space-48);
	--ch-space-bleed: var(--ch-space-64);

	/*
	 * FRONT-01.06 Media ratio roles.
	 * Applied only when photography exists. Without-media must not
	 * reserve these geometries. Event has no photographic ratio.
	 * object-fit: cover · object-position: var(--ch-focal, center center).
	 * Focal comes from the resolved media object, never from a slug.
	 */
	--ch-ratio-hero: 16 / 7;
	--ch-ratio-card: 4 / 3;
	--ch-ratio-feature: 3 / 2;
	--ch-ratio-territory: 16 / 5;
	--ch-ratio-next: 16 / 9;

	/*
	 * FRONT-01.07 Breakpoint contract.
	 * Content-driven. Not device names. Not per-slug. Not per-component architecture.
	 *
	 * MOBILE  max-width: 767px     gutter 20 · conceptual 4-col
	 * TABLET  768px–1023px         gutter 24 · conceptual 8-col
	 * DESKTOP min-width: 1024px    gutter 40 · conceptual 12-col
	 * LARGE   none — CONTENT max 1240px absorbs 1280 / 1440+
	 *
	 * Custom properties cannot drive @media; these two edges are the only
	 * width queries Discovery may add. Component layout (Places columns,
	 * Next rail, Events grid, Hero copy) may *use* them, not invent others.
	 */
}

.ch-discovery {

	/* Radius — small controls, medium cards/media, panel stages, pill chips. */
	--ch-radius-small: 4px;
	--ch-radius-medium: 12px;
	--ch-radius-panel: 16px;
	--ch-radius-pill: 999px;

	--ch-overlay-card: linear-gradient(
		to top,
		color-mix(in srgb, var(--ch-color-vignette) 82%, transparent) 0%,
		color-mix(in srgb, var(--ch-color-vignette) 36%, transparent) 42%,
		color-mix(in srgb, var(--ch-color-vignette) 8%, transparent) 68%,
		transparent 100%
	);

	/* Motion */
	--ch-motion-fast: 150ms;
	--ch-motion-base: 300ms;
	--ch-motion-slow: 400ms;
	--ch-motion-ease: ease-out;
}

/* GLOBAL — tablet edge (≤1023). Component queries may reuse this edge. */
@media (max-width: 1023px) {
	.ch-discovery,
	body.vk-destination-detail-page {
		--ch-gutter: var(--ch-gutter-tablet);
	}
}

/* GLOBAL — mobile edge (≤767). Spacing + lede collapse from FRONT-01.02 / 01.04. */
@media (max-width: 767px) {
	.ch-discovery,
	body.vk-destination-detail-page {
		--ch-gutter: var(--ch-gutter-mobile);
	}

	.ch-discovery,
	body.vk-destination-detail-page {
		--ch-space-section: var(--ch-space-48);
		--ch-space-transition: var(--ch-space-32);
		--ch-space-bleed: var(--ch-space-48);
	}

	.ch-discovery,
	body.vk-destination-detail-page {
		--ch-type-lede: 17px;
		--ch-type-lede-lh: 1.5;
	}
}

/* ==========================================================================
   2. BASE / RESET (scoped)
   ========================================================================== */

.ch-discovery {
	background-color: var(--ch-color-ivory);
	color: var(--ch-color-text);
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-body);
	line-height: var(--ch-type-body-lh);
	width: 100%;
	max-width: 100%;
	overflow-x: clip;
}

.ch-discovery p,
.ch-discovery li {
	font-family: inherit;
}

.ch-discovery *,
.ch-discovery *::before,
.ch-discovery *::after {
	box-sizing: border-box;
}

.ch-discovery img {
	max-width: 100%;
	display: block;
}

.ch-discovery a {
	color: var(--ch-color-forest);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.ch-discovery a:hover {
	color: var(--ch-color-forest-deep);
}

.ch-discovery a:focus-visible,
.ch-discovery button:focus-visible,
.ch-discovery [tabindex]:focus-visible {
	outline: 2px solid var(--ch-color-focus);
	outline-offset: 2px;
}

.ch-discovery .ch-visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/*
 * Shared page rail. GRID FOUNDATION ≠ content grid:
 * this is the alignment axis. Places/Events/Next may later be
 * grid, carousel, list, or feature without changing these roles.
 */
.ch-discovery .ch-container,
.ch-discovery .ch-destination-hero__content,
.ch-discovery .ch-destination-why__inner,
.ch-discovery .ch-place-list,
.ch-discovery .ch-event-list,
.ch-discovery .ch-experience-stack,
.ch-discovery .ch-territorial-moment__content,
.ch-discovery .ch-next-discovery {
	max-width: var(--ch-content-max);
	margin-inline: auto;
	padding-inline: var(--ch-gutter);
	width: 100%;
}

.ch-discovery .ch-container--wide {
	max-width: var(--ch-content-wide);
}

.ch-discovery .ch-container--editorial {
	max-width: var(--ch-content-editorial);
}

/* Shared carousel navigation — one control language across Discovery. */
.ch-carousel-controls {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 7px;
	flex: 0 0 auto;
}

.ch-carousel-control,
.ch-platform-places__rail-btn,
.ch-platform-when__rail-btn,
.ch-discovery--subregion .ch-subregion-destinations__rail-btn,
.ch-discovery--subregion .ch-subregion-continue__rail-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	padding: 0;
	border: 1px solid color-mix(in srgb, var(--ch-color-live) 16%, transparent);
	border-radius: 50%;
	background: color-mix(in srgb, var(--ch-color-surface) 94%, transparent);
	color: var(--ch-color-live);
	box-shadow: none;
	cursor: pointer;
	transition: border-color .18s ease, background-color .18s ease, color .18s ease, transform .18s ease;
}

.ch-carousel-control::before,
.ch-platform-places__rail-btn::before,
.ch-platform-when__rail-btn::before,
.ch-discovery--subregion .ch-subregion-destinations__rail-btn::before,
.ch-discovery--subregion .ch-subregion-continue__rail-btn::before {
	display: block;
	width: 7px;
	height: 7px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	content: '';
}

.ch-carousel-control--prev::before,
.ch-platform-places__rail-btn--prev::before,
.ch-platform-when__rail-btn--prev::before,
.ch-discovery--subregion .ch-subregion-destinations__rail-btn--prev::before,
.ch-discovery--subregion .ch-subregion-continue__rail-btn--prev::before {
	transform: translateX(2px) rotate(135deg);
}

.ch-carousel-control--next::before,
.ch-platform-places__rail-btn--next::before,
.ch-platform-when__rail-btn--next::before,
.ch-discovery--subregion .ch-subregion-destinations__rail-btn--next::before,
.ch-discovery--subregion .ch-subregion-continue__rail-btn--next::before {
	transform: translateX(-2px) rotate(-45deg);
}

.ch-carousel-control:hover:not(:disabled),
.ch-carousel-control:focus-visible,
.ch-platform-places__rail-btn:hover:not(:disabled),
.ch-platform-when__rail-btn:hover:not(:disabled) {
	border-color: color-mix(in srgb, var(--ch-color-live) 46%, transparent);
	background: color-mix(in srgb, var(--ch-color-live) 6%, var(--ch-color-surface));
}

.ch-carousel-control:disabled,
.ch-platform-places__rail-btn:disabled,
.ch-platform-when__rail-btn:disabled,
.ch-discovery--subregion .ch-subregion-destinations__rail-btn:disabled,
.ch-discovery--subregion .ch-subregion-continue__rail-btn:disabled {
	border-color: color-mix(in srgb, var(--ch-color-live) 12%, transparent);
	color: color-mix(in srgb, var(--ch-color-live) 28%, transparent);
	cursor: default;
	opacity: 1;
}

.ch-carousel-control[hidden] {
	display: none;
}

/* Full-bleed: 100% of .ch-discovery, never 100vw. */
.ch-discovery .ch-bleed,
.ch-discovery .ch-destination-hero,
.ch-discovery .ch-destination-hero__media,
.ch-discovery .ch-destination-why,
.ch-discovery .ch-territorial-moment,
.ch-discovery .ch-territorial-moment--with-media,
.ch-discovery .ch-territorial-moment--without-media,
.ch-discovery .ch-section--events,
.ch-discovery .ch-section--experiences {
	max-width: none;
	width: 100%;
}

.ch-discovery .ch-section-head {
	margin-block: 0 var(--ch-space-24);
}

.ch-discovery .ch-section-kicker {
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-kicker);
	line-height: var(--ch-type-kicker-lh);
	font-weight: 600;
	letter-spacing: var(--ch-type-kicker-tracking);
	text-transform: uppercase;
	color: var(--ch-color-forest);
	margin: 0 0 var(--ch-space-8) 0;
}

.ch-discovery .ch-section-title {
	font-family: var(--ch-font-display);
	font-size: var(--ch-type-section);
	line-height: var(--ch-type-section-lh);
	font-weight: var(--ch-type-section-weight);
	letter-spacing: var(--ch-type-section-tracking);
	color: var(--ch-color-title);
	margin: 0;
	overflow-wrap: break-word;
}

/* ==========================================================================
   3. DESTINATION HERO — FRONT-03
   Two compositions, one component.
   WITH MEDIA: photographic identity. WITHOUT MEDIA: ivory editorial cover.
   ========================================================================== */

.ch-discovery .ch-destination-hero {
	position: relative;
	width: 100%;
	margin: 0;
	background-color: transparent;
}

.ch-discovery .ch-destination-hero__media {
	position: relative;
	width: 100%;
	overflow: hidden;
	background-color: transparent;
}

.ch-discovery .ch-destination-hero--with-image .ch-destination-hero__media,
.ch-discovery .ch-destination-hero--with-media .ch-destination-hero__media {
	aspect-ratio: var(--ch-ratio-hero);
	min-height: 420px;
	max-height: 680px;
	height: auto;
	background-color: var(--ch-color-forest-deep);
}

.ch-discovery .ch-destination-hero--without-media .ch-destination-hero__media {
	aspect-ratio: auto;
	min-height: 0;
	max-height: none;
	height: auto;
	background-color: var(--ch-color-ivory);
}

.ch-discovery .ch-destination-hero__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--ch-focal, center center);
	filter: var(--ch-media-grade);
}

/*
 * Overlay: bottom + left for copy. Photo remains visible top-right.
 * Tokens only. No decorative blur/shadow.
 */
.ch-discovery .ch-destination-hero__overlay {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background:
		linear-gradient(
			180deg,
			color-mix(in srgb, var(--ch-color-vignette) 8%, transparent) 0%,
			color-mix(in srgb, var(--ch-color-vignette) 14%, transparent) 42%,
			color-mix(in srgb, var(--ch-color-vignette) 52%, transparent) 100%
		),
		linear-gradient(
			90deg,
			color-mix(in srgb, var(--ch-color-vignette) 32%, transparent) 0%,
			color-mix(in srgb, var(--ch-color-vignette) 8%, transparent) 46%,
			transparent 74%
		);
}

.ch-discovery .ch-destination-hero--with-image .ch-destination-hero__content,
.ch-discovery .ch-destination-hero--with-media .ch-destination-hero__content {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-end;
	padding-block: var(--ch-space-64) var(--ch-space-bleed);
}

.ch-discovery .ch-destination-hero--without-media .ch-destination-hero__content {
	position: relative;
	left: auto;
	right: auto;
	bottom: auto;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding-block: var(--ch-space-64) var(--ch-space-48);
}

.ch-discovery .ch-destination-hero--without-media .ch-destination-hero__kicker {
	color: var(--ch-color-forest);
}

.ch-discovery .ch-destination-hero--without-media .ch-destination-hero__title {
	color: var(--ch-color-text);
}

.ch-discovery .ch-destination-hero--without-media .ch-destination-hero__lede {
	color: var(--ch-color-text);
	opacity: 1;
}

.ch-discovery .ch-destination-hero__kicker {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	column-gap: var(--ch-space-8);
	row-gap: var(--ch-space-4);
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-kicker);
	line-height: var(--ch-type-kicker-lh);
	font-weight: 600;
	letter-spacing: var(--ch-type-kicker-tracking);
	text-transform: uppercase;
	margin: 0 0 var(--ch-space-16) 0;
	color: var(--ch-color-text-on-dark);
}

.ch-discovery .ch-destination-hero__context-sep {
	font-weight: 500;
	letter-spacing: 0;
	opacity: 0.72;
}

.ch-discovery .ch-destination-hero__title {
	font-family: var(--ch-font-display);
	font-size: var(--ch-type-display);
	line-height: var(--ch-type-display-lh);
	font-weight: var(--ch-type-display-weight);
	letter-spacing: var(--ch-type-display-tracking);
	margin: 0;
	max-width: 14ch;
	color: var(--ch-color-text-on-dark);
	overflow-wrap: break-word;
	hyphens: manual;
}

.ch-discovery .ch-destination-hero__lede {
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-lede);
	line-height: var(--ch-type-lede-lh);
	font-weight: 400;
	color: var(--ch-color-text-on-dark);
	margin: var(--ch-space-16) 0 0;
	max-width: 46ch;
}

/*
 * Visual Language V2 · shared Index Hero family.
 * Destinos, Experiencias and Eventos own their promise and media, while this
 * structural class keeps the approved composition from drifting by page.
 */
.ch-discovery .ch-index-hero {
	margin-bottom: 0;
}

.ch-discovery #ch-territorial-explorer {
	scroll-margin-top: 24px;
}

.ch-discovery .ch-index-hero.ch-destination-hero--with-media .ch-destination-hero__media {
	aspect-ratio: 16 / 7;
	min-height: 480px;
	max-height: 620px;
}

.ch-discovery .ch-index-hero.ch-destination-hero--with-media .ch-destination-hero__content {
	top: 0;
	bottom: 0;
	justify-content: center;
	align-items: flex-start;
	padding-block: var(--ch-vl-hero-content-padding-top) var(--ch-vl-hero-content-padding-bottom);
}

.ch-discovery .ch-index-hero.ch-destination-hero--with-media .ch-destination-hero__media img {
	filter: contrast(1.03) saturate(1.01);
	transform-origin: center center;
	will-change: transform;
	animation: ch-vl-hero-drift var(--ch-vl-hero-motion-duration, 18s) ease-in-out infinite alternate;
}

@media (prefers-reduced-motion: reduce) {
	.ch-discovery .ch-index-hero.ch-destination-hero--with-media .ch-destination-hero__media img {
		animation: none;
		transform: none;
		will-change: auto;
	}
}

.ch-discovery .ch-index-hero .ch-destination-hero__title {
	max-width: var(--ch-vl-hero-copy-max);
	font-family: var(--ch-vl-hero-title-font);
	font-size: var(--ch-vl-hero-title-size);
	font-weight: var(--ch-vl-hero-title-weight);
	letter-spacing: var(--ch-vl-hero-title-tracking);
	line-height: var(--ch-vl-hero-title-line-height);
}

.ch-discovery .ch-index-hero__title-line {
	display: block;
	white-space: nowrap;
}

.ch-discovery .ch-index-hero .ch-destination-hero__lede {
	max-width: var(--ch-vl-hero-lede-max);
	font-family: var(--ch-vl-font-interface);
	font-size: var(--ch-vl-hero-lede-size);
	line-height: var(--ch-vl-hero-lede-line-height);
	color: rgba(255, 255, 255, 0.86);
}

.ch-discovery .ch-detail-entity-hero .ch-destination-hero__territorial-path {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 5px 9px;
	max-width: 82ch;
	margin: 0 0 12px;
	color: rgba(255, 255, 255, 0.72);
	font-family: var(--ch-vl-font-interface);
	font-size: 11px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.055em;
	text-transform: uppercase;
}

.ch-discovery .ch-detail-entity-hero .ch-destination-hero__territorial-sep {
	opacity: 0.55;
}

.ch-discovery .ch-index-hero .ch-destination-hero__kicker {
	gap: 12px;
	color: var(--ch-vl-color-mystic-light);
	font-family: var(--ch-vl-font-interface);
	font-weight: 800;
	letter-spacing: 0.18em;
}

.ch-discovery .ch-index-hero .ch-destination-hero__kicker::before {
	width: 42px;
	height: 2px;
	content: '';
	background: currentColor;
}

.ch-discovery .ch-index-hero .ch-destination-hero__action {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--ch-space-12);
	margin: 22px 0 0;
}

.ch-discovery .ch-index-hero .ch-destination-hero__discover {
	display: inline-grid;
	grid-template-columns: max-content auto;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	padding: 0 20px;
	border: 1px solid var(--ch-vl-hero-cta-background);
	border-radius: 999px;
	background: var(--ch-vl-hero-cta-background);
	color: var(--ch-vl-hero-cta-color);
	font-family: var(--ch-vl-cta-font);
	font-size: var(--ch-vl-cta-size);
	font-weight: var(--ch-vl-cta-weight);
	letter-spacing: var(--ch-vl-cta-tracking);
	text-decoration: none;
	box-shadow: none;
	transition: transform var(--ch-vl-motion-fast) var(--ch-vl-motion-ease), background-color var(--ch-vl-motion-fast) var(--ch-vl-motion-ease);
}

.ch-discovery .ch-index-hero .ch-destination-hero__discover::before {
	content: var(--ch-vl-hero-cta-reference);
	grid-column: 1;
	grid-row: 1;
	visibility: hidden;
	white-space: nowrap;
}

.ch-discovery .ch-index-hero__cta-label {
	grid-column: 1;
	grid-row: 1;
	justify-self: center;
	white-space: nowrap;
}

.ch-discovery .ch-index-hero__cta-icon {
	grid-column: 2;
	grid-row: 1;
}

.ch-discovery .ch-index-hero .ch-destination-hero__discover:hover,
.ch-discovery .ch-index-hero .ch-destination-hero__discover:focus-visible {
	border-color: var(--ch-vl-hero-cta-background-hover);
	background: var(--ch-vl-hero-cta-background-hover);
	color: var(--ch-vl-hero-cta-color);
	transform: translateY(-1px);
}

@media (max-width: 1023px) {
	.ch-discovery .ch-destination-hero--with-image .ch-destination-hero__content,
	.ch-discovery .ch-destination-hero--with-media .ch-destination-hero__content {
		padding-block: var(--ch-space-48) var(--ch-space-48);
	}

	.ch-discovery .ch-destination-hero--without-media .ch-destination-hero__content {
		padding-block: var(--ch-space-48) var(--ch-space-32);
	}
}

@media (max-width: 767px) {
	.ch-discovery .ch-detail-entity-hero .ch-destination-hero__territorial-path {
		font-size: 10px;
	}

	.ch-discovery .ch-index-hero__title-line {
		white-space: normal;
	}

	.ch-discovery .ch-destination-hero__title {
		max-width: none;
	}

	.ch-discovery .ch-destination-hero__lede {
		max-width: none;
	}

	.ch-discovery .ch-destination-hero--with-image .ch-destination-hero__content,
	.ch-discovery .ch-destination-hero--with-media .ch-destination-hero__content {
		padding-block: var(--ch-space-32) var(--ch-space-32);
	}

	.ch-discovery .ch-destination-hero--without-media .ch-destination-hero__content {
		padding-block: var(--ch-space-48) var(--ch-space-32);
	}

	.ch-discovery .ch-destination-hero--with-image .ch-destination-hero__overlay,
	.ch-discovery .ch-destination-hero--with-media .ch-destination-hero__overlay {
		background:
			linear-gradient(
				180deg,
				color-mix(in srgb, var(--ch-color-vignette) 10%, transparent) 0%,
				color-mix(in srgb, var(--ch-color-vignette) 20%, transparent) 38%,
				color-mix(in srgb, var(--ch-color-vignette) 56%, transparent) 100%
			);
	}
}

/* ==========================================================================
   4. DESTINATION WHY — FRONT-04
   Editorial pause. One summary. No USP column. Omit-if-empty in PHP.
   ========================================================================== */

.ch-discovery .ch-destination-why {
	background: transparent;
	padding-block: var(--ch-space-transition);
}

.ch-discovery .ch-destination-why__inner {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.ch-discovery .ch-destination-why__kicker {
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-kicker);
	line-height: var(--ch-type-kicker-lh);
	font-weight: 600;
	letter-spacing: var(--ch-type-kicker-tracking);
	text-transform: uppercase;
	color: var(--ch-color-forest);
	margin: 0 0 var(--ch-space-12) 0;
}

.ch-discovery .ch-destination-why__text {
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-lede);
	line-height: var(--ch-type-lede-lh);
	font-weight: 400;
	color: var(--ch-color-text);
	margin: 0;
	max-width: 52ch;
}

@media (max-width: 767px) {
	.ch-discovery .ch-destination-why__text {
		max-width: none;
	}
}

/* ==========================================================================
   5. EXPERIENCE FEATURE — FRONT-06
   Narrative moment. Split with-media ≥1024. Stack ≤1023.
   Gap split 32 (was 48 deferred). Stack N>1: 48 / 32.
   ========================================================================== */

.ch-discovery .ch-experience-stack {
	display: flex;
	flex-direction: column;
	gap: var(--ch-space-48);
}

.ch-discovery .ch-experience-feature {
	cursor: default;
	background: transparent;
}

.ch-discovery .ch-experience-feature--with-media {
	display: grid;
	grid-template-columns: 1.15fr 0.85fr;
	gap: var(--ch-space-32);
	align-items: center;
}

.ch-discovery .ch-experience-stack > .ch-experience-feature--with-media:nth-child(even) {
	grid-template-columns: 0.85fr 1.15fr;
}

.ch-discovery .ch-experience-stack > .ch-experience-feature--with-media:nth-child(even) .ch-experience-feature__media {
	order: 2;
}

.ch-discovery .ch-experience-feature--without-media {
	display: block;
	min-height: 0;
	border-left: var(--ch-space-4) solid var(--ch-color-forest);
	border-radius: 0;
}

.ch-discovery .ch-experience-feature--without-media .ch-experience-feature__body {
	max-width: var(--ch-content-editorial);
	padding: 0 0 0 var(--ch-space-24);
}

.ch-discovery .ch-experience-feature__media {
	position: relative;
	aspect-ratio: var(--ch-ratio-feature);
	border-radius: var(--ch-radius-medium);
	overflow: hidden;
}

.ch-discovery .ch-experience-feature__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--ch-focal, center center);
	filter: var(--ch-media-grade);
}

.ch-discovery .ch-experience-feature__title {
	font-family: var(--ch-font-display);
	font-size: var(--ch-type-entity-lg);
	line-height: var(--ch-type-entity-lg-lh);
	font-weight: 500;
	margin: 0;
	color: var(--ch-color-text);
	overflow-wrap: break-word;
}

.ch-discovery .ch-experience-feature__anchor {
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	line-height: var(--ch-type-small-lh);
	color: var(--ch-color-text-muted);
	margin: var(--ch-space-8) 0 0;
}

.ch-discovery .ch-experience-feature__summary {
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-lede);
	line-height: var(--ch-type-lede-lh);
	color: var(--ch-color-text);
	margin: var(--ch-space-16) 0 0;
}

.ch-discovery .ch-experience-feature__availability {
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	line-height: var(--ch-type-small-lh);
	color: var(--ch-color-text-muted);
	margin: var(--ch-space-16) 0 0;
}

@media (max-width: 1023px) {
	.ch-discovery .ch-experience-feature--with-media,
	.ch-discovery .ch-experience-stack > .ch-experience-feature--with-media:nth-child(even) {
		grid-template-columns: 1fr;
	}

	.ch-discovery .ch-experience-stack > .ch-experience-feature--with-media:nth-child(even) .ch-experience-feature__media {
		order: 0;
	}
}

@media (max-width: 767px) {
	.ch-discovery .ch-experience-stack {
		gap: var(--ch-space-32);
	}

	.ch-discovery .ch-experience-feature--without-media .ch-experience-feature__body {
		max-width: none;
		padding-left: var(--ch-space-16);
	}
}

/* ==========================================================================
   6. PLACES — FRONT-05
   Adaptive CSS grid. One place-card. No carousel. 82vw rail removed.
   0 omit · 1 feature (max editorial) · 2–3 / 4+ two-col ≥768 · stack ≤767
   ========================================================================== */

.ch-discovery .ch-place-list > .ch-section-items {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--ch-space-24);
	align-items: start;
}

.ch-discovery .ch-place-list--has-media > .ch-section-items {
	align-items: stretch;
}

.ch-discovery .ch-place-list--count-1 .ch-place-card {
	max-width: var(--ch-content-editorial);
}

@media (min-width: 768px) {
	.ch-discovery .ch-place-list--count-2 > .ch-section-items,
	.ch-discovery .ch-place-list--count-3 > .ch-section-items,
	.ch-discovery .ch-place-list--count-4plus > .ch-section-items {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 767px) {
	.ch-discovery .ch-place-list > .ch-section-items {
		grid-template-columns: 1fr;
		gap: var(--ch-space-16);
	}

	.ch-discovery .ch-place-list--count-1 .ch-place-card {
		max-width: none;
	}
}

.ch-discovery .ch-place-card {
	margin: 0;
	padding: 0;
	border: none;
	background: transparent;
	cursor: default;
}

.ch-discovery .ch-place-card:hover,
.ch-discovery .ch-place-card:hover .ch-place-card__title {
	cursor: default;
}

.ch-discovery .ch-place-card__surface {
	position: relative;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	border-radius: var(--ch-radius-medium);
	background-color: transparent;
}

.ch-discovery .ch-place-card--with-media .ch-place-card__surface {
	aspect-ratio: var(--ch-ratio-card);
	height: 100%;
	background-color: var(--ch-color-forest-deep);
}

.ch-discovery .ch-place-card--without-media .ch-place-card__surface {
	aspect-ratio: auto;
	height: auto;
	min-height: 0;
	align-items: flex-start;
	background-color: transparent;
	border: 1px solid var(--ch-color-border);
}

.ch-discovery .ch-place-card__photo {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--ch-focal, center center);
	filter: var(--ch-media-grade);
}

.ch-discovery .ch-place-card__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, color-mix(in srgb, var(--ch-color-vignette) 72%, transparent) 0%, color-mix(in srgb, var(--ch-color-vignette) 16%, transparent) 46%, transparent 100%);
}

.ch-discovery .ch-place-card__body {
	position: relative;
	z-index: 2;
	padding: var(--ch-space-24);
	width: 100%;
}

.ch-discovery .ch-place-card__subtype {
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-kicker);
	line-height: var(--ch-type-kicker-lh);
	font-weight: 600;
	letter-spacing: var(--ch-type-kicker-tracking);
	text-transform: uppercase;
	margin: 0 0 var(--ch-space-8) 0;
	padding: 0;
	background: none;
	border: none;
	border-radius: 0;
	color: var(--ch-color-forest);
	overflow-wrap: break-word;
}

.ch-discovery .ch-place-card__title {
	font-family: var(--ch-font-display);
	font-size: var(--ch-type-entity-lg);
	line-height: var(--ch-type-entity-lg-lh);
	font-weight: 500;
	margin: 0;
	color: var(--ch-color-text);
	overflow-wrap: break-word;
}

.ch-discovery .ch-place-card__summary {
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	line-height: var(--ch-type-small-lh);
	margin: var(--ch-space-12) 0 0;
	color: var(--ch-color-text);
}

.ch-discovery .ch-place-card--with-media .ch-place-card__subtype,
.ch-discovery .ch-place-card--with-media .ch-place-card__title,
.ch-discovery .ch-place-card--with-media .ch-place-card__summary {
	color: var(--ch-color-text-on-dark);
}

.ch-discovery .ch-place-card--with-media .ch-place-card__summary {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* ==========================================================================
   7. EVENTS — FRONT-07
   Seasonality list. No 2-col grid. Numeral only for a single precise day.
   Edition = text, not 2px chip.
   ========================================================================== */

.ch-discovery .ch-event-list > .ch-section-items {
	display: flex;
	flex-direction: column;
	gap: var(--ch-space-16);
}

.ch-discovery .ch-event-card {
	display: flex;
	gap: var(--ch-space-24);
	align-items: flex-start;
	padding: var(--ch-space-24);
	background: var(--ch-color-surface);
	border: none;
	border-radius: var(--ch-radius-medium);
	box-shadow: none;
	cursor: default;
}

.ch-discovery .ch-event-card__date {
	flex: 0 0 72px;
	width: 72px;
	text-align: center;
	font-family: var(--ch-font-display);
}

.ch-discovery .ch-event-card__date-day {
	display: block;
	font-size: var(--ch-type-numeral);
	line-height: var(--ch-type-numeral-lh);
	font-weight: 500;
	color: var(--ch-color-forest);
}

.ch-discovery .ch-event-card__date-month {
	display: block;
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-kicker);
	font-weight: 600;
	letter-spacing: var(--ch-type-kicker-tracking);
	text-transform: uppercase;
	color: var(--ch-color-text-muted);
	margin-top: var(--ch-space-4);
}

.ch-discovery .ch-event-card__body {
	flex: 1 1 auto;
	min-width: 0;
}

.ch-discovery .ch-event-card__title {
	font-family: var(--ch-font-display);
	font-size: var(--ch-type-entity);
	line-height: var(--ch-type-entity-lh);
	font-weight: 500;
	margin: 0;
	color: var(--ch-color-text);
	overflow-wrap: break-word;
}

.ch-discovery .ch-event-card__certainty {
	margin: 0 0 var(--ch-space-8);
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-kicker);
	line-height: var(--ch-type-kicker-lh);
	font-weight: 600;
	letter-spacing: var(--ch-type-kicker-tracking);
	text-transform: uppercase;
	color: var(--ch-color-forest);
}

.ch-discovery .ch-event-card--estimated .ch-event-card__certainty {
	color: var(--ch-color-warning-bg);
}

.ch-discovery .ch-event-card__edition {
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	line-height: var(--ch-type-small-lh);
	color: var(--ch-color-text-muted);
	margin: var(--ch-space-4) 0 0;
	padding: 0;
	background: none;
	border-radius: 0;
}

.ch-discovery .ch-event-card__schedule {
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	line-height: var(--ch-type-small-lh);
	color: var(--ch-color-text-muted);
	margin: var(--ch-space-8) 0 0;
}

.ch-discovery .ch-event-card__schedule--estimated {
	color: var(--ch-color-warning-bg);
	font-weight: 500;
}

.ch-discovery .ch-event-card__summary {
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-body);
	line-height: var(--ch-type-body-lh);
	color: var(--ch-color-text);
	margin: var(--ch-space-12) 0 0;
}

@media (max-width: 767px) {
	.ch-discovery .ch-event-card {
		gap: var(--ch-space-16);
		padding: var(--ch-space-16);
	}

	.ch-discovery .ch-event-card__date {
		flex-basis: 56px;
		width: 56px;
	}
}

/* ==========================================================================
   8. TERRITORIAL MOMENT — FRONT-08
   Full-bleed forest-deep. Change of scale, not second Hero.
   With-media: 16/5. Without-media: content height, semantic dark (not placeholder).
   ========================================================================== */

.ch-discovery .ch-territorial-moment {
	position: relative;
	width: 100%;
	display: flex;
	align-items: flex-end;
	background-color: var(--ch-color-forest-deep);
	cursor: default;
}

.ch-discovery .ch-territorial-moment--with-media {
	aspect-ratio: var(--ch-ratio-territory);
	min-height: 280px;
	max-height: 520px;
	height: auto;
}

.ch-discovery .ch-territorial-moment--without-media {
	aspect-ratio: auto;
	min-height: 0;
	max-height: none;
	height: auto;
}

.ch-discovery .ch-territorial-moment__media {
	position: absolute;
	inset: 0;
}

.ch-discovery .ch-territorial-moment__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--ch-focal, center center);
	filter: var(--ch-media-grade);
}

.ch-discovery .ch-territorial-moment__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, color-mix(in srgb, var(--ch-color-vignette) 68%, transparent) 0%, color-mix(in srgb, var(--ch-color-vignette) 22%, transparent) 55%, color-mix(in srgb, var(--ch-color-vignette) 8%, transparent) 100%);
}

.ch-discovery .ch-territorial-moment__content {
	position: relative;
	z-index: 1;
	padding-block: var(--ch-space-bleed);
}

.ch-discovery .ch-territorial-moment__kicker {
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-kicker);
	line-height: var(--ch-type-kicker-lh);
	font-weight: 600;
	letter-spacing: var(--ch-type-kicker-tracking);
	text-transform: uppercase;
	margin: 0 0 var(--ch-space-12) 0;
	color: var(--ch-color-sand);
}

.ch-discovery .ch-territorial-moment__title {
	font-family: var(--ch-font-display);
	font-size: var(--ch-type-section);
	line-height: var(--ch-type-section-lh);
	font-weight: var(--ch-type-section-weight);
	letter-spacing: var(--ch-type-section-tracking);
	margin: 0 0 var(--ch-space-12) 0;
	color: var(--ch-color-text-on-dark);
	overflow-wrap: break-word;
}

.ch-discovery .ch-territorial-moment__copy {
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-lede);
	line-height: var(--ch-type-lede-lh);
	margin: 0;
	color: var(--ch-color-text-on-dark);
	max-width: var(--ch-content-editorial);
}

@media (max-width: 767px) {
	.ch-discovery .ch-territorial-moment__copy {
		max-width: none;
	}
}


/* ==========================================================================
   9. NEXT DISCOVERY — FRONT-09
   Adaptive CSS grid. No rail. 78vw removed.
   0 omit · 1 max editorial · 2 two-col ≥768 · 3+ three-col ≥1024
   ========================================================================== */

.ch-discovery .ch-next-discovery__list {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--ch-space-24);
	overflow: visible;
}

.ch-discovery .ch-next-discovery__list--count-1 .ch-next-discovery-card,
.ch-discovery .ch-next-discovery__list--count-1 .ch-destination-card {
	max-width: var(--ch-content-editorial);
}

@media (min-width: 768px) {
	.ch-discovery .ch-next-discovery__list--count-2,
	.ch-discovery .ch-next-discovery__list--count-3plus {
		grid-template-columns: 1fr 1fr;
	}
}

@media (min-width: 1024px) {
	.ch-discovery .ch-next-discovery__list--count-3plus {
		grid-template-columns: 1fr 1fr 1fr;
	}
}

@media (max-width: 767px) {
	.ch-discovery .ch-next-discovery__list {
		gap: var(--ch-space-16);
	}

	.ch-discovery .ch-next-discovery__list--count-1 .ch-next-discovery-card,
	.ch-discovery .ch-next-discovery__list--count-1 .ch-destination-card {
		max-width: none;
	}
}

.ch-discovery .ch-next-discovery-card,
.ch-discovery a.ch-next-discovery-card:link,
.ch-discovery a.ch-next-discovery-card:visited,
.ch-discovery a.ch-next-discovery-card:hover,
.ch-discovery a.ch-next-discovery-card:focus,
.ch-discovery a.ch-next-discovery-card:active {
	position: relative;
	display: flex;
	align-items: center;
	margin: 0;
	padding: var(--ch-space-24);
	min-height: 44px;
	min-width: 0;
	width: 100%;
	max-width: 100%;
	border-radius: var(--ch-radius-medium);
	text-decoration: none;
	color: inherit;
	overflow: hidden;
}

.ch-discovery .ch-next-discovery-card--with-media,
.ch-discovery a.ch-next-discovery-card--with-media:link,
.ch-discovery a.ch-next-discovery-card--with-media:visited,
.ch-discovery a.ch-next-discovery-card--with-media:hover,
.ch-discovery a.ch-next-discovery-card--with-media:focus,
.ch-discovery a.ch-next-discovery-card--with-media:active {
	align-items: flex-end;
	aspect-ratio: var(--ch-ratio-next);
	min-height: 0;
	background-color: var(--ch-color-forest-deep);
	color: var(--ch-color-text-on-dark);
}

.ch-discovery .ch-next-discovery-card--without-media,
.ch-discovery a.ch-next-discovery-card--without-media:link,
.ch-discovery a.ch-next-discovery-card--without-media:visited,
.ch-discovery a.ch-next-discovery-card--without-media:hover,
.ch-discovery a.ch-next-discovery-card--without-media:focus,
.ch-discovery a.ch-next-discovery-card--without-media:active {
	aspect-ratio: auto;
	min-height: 44px;
	background-color: var(--ch-color-surface);
	border: 1px solid var(--ch-color-border);
	color: var(--ch-color-text);
}

.ch-discovery .ch-next-discovery-card__media {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.ch-discovery .ch-next-discovery-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--ch-focal, center center);
	filter: var(--ch-media-grade);
}

.ch-discovery .ch-next-discovery-card__overlay {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(to top, color-mix(in srgb, var(--ch-color-vignette) 70%, transparent) 0%, color-mix(in srgb, var(--ch-color-vignette) 14%, transparent) 52%, transparent 100%);
}

.ch-discovery .ch-next-discovery-card__copy {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding-right: var(--ch-space-48);
}

.ch-discovery .ch-next-discovery-card__lead {
	min-width: 0;
}

.ch-discovery .ch-next-discovery-card__title {
	position: relative;
	z-index: 1;
	font-family: var(--ch-font-display);
	font-size: var(--ch-type-entity);
	line-height: var(--ch-type-entity-lh);
	font-weight: 500;
	margin: 0;
	overflow-wrap: break-word;
}

.ch-discovery .ch-next-discovery-card__identity {
	margin: var(--ch-space-8) 0 0;
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	line-height: var(--ch-type-small-lh);
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
}

.ch-discovery .ch-next-discovery-card--without-media .ch-next-discovery-card__title {
	color: var(--ch-color-text);
}

.ch-discovery .ch-next-discovery-card--with-media .ch-next-discovery-card__title {
	color: var(--ch-color-text-on-dark);
}

.ch-discovery .ch-next-discovery-card--without-media .ch-next-discovery-card__identity {
	color: var(--ch-color-text-muted);
}

.ch-discovery .ch-next-discovery-card--with-media .ch-next-discovery-card__identity {
	color: color-mix(in srgb, var(--ch-color-text-on-dark) 82%, transparent);
}

.ch-discovery .ch-next-discovery-card__meta {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: var(--ch-space-16);
	max-width: calc(100% - 8px);
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	line-height: var(--ch-type-small-lh);
	font-weight: 500;
}

.ch-discovery .ch-next-discovery-card__meta-icon {
	display: inline-flex;
	flex: 0 0 auto;
}

.ch-discovery .ch-next-discovery-card--with-media .ch-next-discovery-card__meta {
	color: color-mix(in srgb, var(--ch-color-text-on-dark) 88%, transparent);
}

.ch-discovery .ch-next-discovery-card--without-media .ch-next-discovery-card__meta {
	color: var(--ch-color-text-muted);
}

.ch-discovery .ch-next-discovery-card__cue {
	position: absolute;
	right: var(--ch-space-24);
	bottom: 50%;
	transform: translateY(50%);
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--ch-color-forest);
	color: var(--ch-color-text-on-dark);
	flex: 0 0 auto;
	pointer-events: none;
}

.ch-discovery .ch-next-discovery-card--with-media .ch-next-discovery-card__cue {
	bottom: var(--ch-space-24);
	transform: none;
	background: var(--ch-color-surface);
	color: var(--ch-color-forest-deep);
}

.ch-discovery .ch-next-discovery-card__cue svg {
	display: block;
}

.ch-discovery .ch-next-discovery-card__cue::after {
	content: none;
}

.ch-discovery .ch-next-discovery-card--linked.ch-next-discovery-card--without-media:hover {
	border-color: var(--ch-color-forest);
}

.ch-discovery .ch-next-discovery-card--linked.ch-next-discovery-card--with-media:hover {
	filter: brightness(1.06);
}

.ch-discovery .ch-next-discovery-card--linked.ch-next-discovery-card--without-media:focus-visible {
	outline: 2px solid var(--ch-color-focus);
	outline-offset: 3px;
}

.ch-discovery .ch-next-discovery-card--linked.ch-next-discovery-card--with-media:focus-visible {
	outline: 2px solid var(--ch-color-text-on-dark);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	.ch-discovery .ch-next-discovery-card--linked.ch-next-discovery-card--with-media:hover {
		filter: none;
	}
}

/* Canonical Destination card — territorial line, full image and clear CTA. */
.ch-discovery .ch-destination-card,
.ch-discovery a.ch-destination-card:link,
.ch-discovery a.ch-destination-card:visited,
.ch-discovery a.ch-destination-card:hover,
.ch-discovery a.ch-destination-card:focus,
.ch-discovery a.ch-destination-card:active {
	position: relative;
	display: flex;
	align-items: flex-end;
	margin: 0;
	padding: var(--ch-vl-destination-card-padding, clamp(20px, 2vw, 26px));
	width: 100%;
	min-width: 0;
	min-height: 0;
	aspect-ratio: var(--ch-vl-destination-card-aspect, 1 / 1);
	overflow: hidden;
	border-radius: var(--ch-vl-card-radius, var(--ch-radius-medium));
	text-decoration: none;
	color: var(--ch-color-text-on-dark);
	background-color: var(--ch-color-forest-deep);
	box-shadow: var(--ch-vl-card-shadow, 0 12px 30px color-mix(in srgb, var(--ch-color-forest-deep) 10%, transparent));
}

.ch-discovery .ch-destination-card--without-media,
.ch-discovery a.ch-destination-card--without-media:link,
.ch-discovery a.ch-destination-card--without-media:visited,
.ch-discovery a.ch-destination-card--without-media:hover,
.ch-discovery a.ch-destination-card--without-media:focus,
.ch-discovery a.ch-destination-card--without-media:active {
	background-color: var(--ch-color-surface);
	border: 1px solid var(--ch-color-border);
	color: var(--ch-color-text);
}

.ch-discovery .ch-destination-card__media {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.ch-discovery .ch-destination-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--ch-focal, center center);
	filter: var(--ch-media-grade);
	transition: transform var(--ch-vl-motion-image, 500ms) var(--ch-vl-motion-ease, ease);
}

.ch-discovery .ch-destination-card__overlay {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: var(
		--ch-vl-overlay-destination,
		linear-gradient(180deg, rgba(15, 23, 42, 0.16) 0%, rgba(15, 23, 42, 0.08) 45%, rgba(15, 23, 42, 0.58) 64%, rgba(15, 23, 42, 0.94) 84%, rgba(15, 23, 42, 0.98) 100%)
	);
}

.ch-discovery .ch-destination-card__territory {
	position: absolute;
	top: clamp(18px, 1.7vw, 24px);
	right: clamp(20px, 2vw, 28px);
	left: clamp(20px, 2vw, 28px);
	z-index: 1;
	display: block;
	overflow: hidden;
	color: var(--ch-vl-destination-card-context-color, #ffb347);
	font-family: var(--ch-font-sans);
	font-size: 11px;
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: .06em;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.ch-discovery .ch-destination-card__copy {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
}

.ch-discovery .ch-destination-card__title {
	margin: 0;
	font-family: var(--ch-font-display);
	font-size: var(--ch-vl-destination-card-title-size, clamp(25px, 2.2vw, 32px));
	font-weight: 540;
	line-height: 1.08;
	letter-spacing: -.015em;
	overflow-wrap: break-word;
	color: inherit;
}

.ch-discovery .ch-destination-card__meaning {
	display: -webkit-box;
	margin: 0;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	font-family: var(--ch-font-sans);
	font-size: 13.5px;
	line-height: 1.45;
	color: color-mix(in srgb, var(--ch-color-text-on-dark) 82%, transparent);
}

.ch-discovery .ch-destination-card--without-media .ch-destination-card__meaning {
	color: var(--ch-color-text-muted);
}

.ch-discovery .ch-destination-card__action {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 5px;
	font-family: var(--ch-font-sans);
	font-size: 12.5px;
	font-weight: 800;
	line-height: 1.3;
	color: inherit;
}

.ch-discovery .ch-destination-card--linked.ch-destination-card--with-media:hover .ch-destination-card__media img {
	transform: scale(1.035);
}

.ch-discovery .ch-destination-card--linked:focus-visible {
	outline: 2px solid var(--ch-color-text-on-dark);
	outline-offset: 3px;
}

.ch-discovery .ch-destination-card--linked.ch-destination-card--without-media:focus-visible {
	outline-color: var(--ch-color-focus);
}

@media (prefers-reduced-motion: reduce) {
	.ch-discovery .ch-destination-card__media img,
	.ch-discovery .ch-destination-card--linked.ch-destination-card--with-media:hover .ch-destination-card__media img {
		transition: none;
		transform: none;
	}
}

/* Experience card — territorial line, image overlay and textual action. */
.ch-discovery .ch-experience-card,
.ch-discovery a.ch-experience-card:link,
.ch-discovery a.ch-experience-card:visited,
.ch-discovery a.ch-experience-card:hover,
.ch-discovery a.ch-experience-card:focus,
.ch-discovery a.ch-experience-card:active {
	--ch-card-accent: var(--ch-color-live);
	position: relative;
	display: flex;
	align-items: flex-end;
	margin: 0;
	padding: 18px 16px 16px;
	width: 100%;
	min-width: 0;
	min-height: 0;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	border-radius: var(--ch-radius-medium);
	text-decoration: none;
	color: var(--ch-color-text-on-dark);
	background-color: var(--ch-color-forest-deep);
	box-shadow: 0 12px 30px color-mix(in srgb, var(--ch-color-forest-deep) 10%, transparent);
}

.ch-discovery .ch-experience-card--without-media,
.ch-discovery a.ch-experience-card--without-media:link,
.ch-discovery a.ch-experience-card--without-media:visited,
.ch-discovery a.ch-experience-card--without-media:hover,
.ch-discovery a.ch-experience-card--without-media:focus,
.ch-discovery a.ch-experience-card--without-media:active {
	background-color: var(--ch-color-surface);
	border: 1px solid var(--ch-color-border);
	color: var(--ch-color-text);
}

.ch-discovery .ch-experience-card__media {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.ch-discovery .ch-experience-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--ch-focal, center center);
	filter: var(--ch-media-grade) saturate(1.06);
	transform: scale(1.02);
	transition: transform 0.45s ease;
}

.ch-discovery .ch-experience-card__overlay {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background:
		linear-gradient(180deg, color-mix(in srgb, var(--ch-color-vignette) 40%, transparent) 0%, transparent 24%),
		linear-gradient(0deg, color-mix(in srgb, var(--ch-color-vignette) 94%, transparent) 0%, color-mix(in srgb, var(--ch-color-vignette) 70%, transparent) 32%, color-mix(in srgb, var(--ch-color-vignette) 12%, transparent) 68%, transparent 100%);
}

.ch-discovery .ch-experience-card__territory {
	position: absolute;
	top: 18px;
	right: 16px;
	left: 16px;
	z-index: 1;
	display: block;
	overflow: hidden;
	color: var(--ch-color-gold);
	font-family: var(--ch-font-sans);
	font-size: 11px;
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: .08em;
	text-overflow: ellipsis;
	text-transform: uppercase;
	white-space: nowrap;
}

.ch-discovery .ch-experience-card__copy {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
	padding-right: 0;
}

.ch-discovery .ch-experience-card__title {
	margin: 0;
	font-family: var(--ch-font-display);
	font-size: 22px;
	font-weight: 500;
	line-height: 1.18;
	letter-spacing: 0.01em;
	overflow-wrap: break-word;
	color: inherit;
}

.ch-discovery .ch-experience-card__meaning {
	display: -webkit-box;
	margin: 0;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	font-family: var(--ch-font-sans);
	font-size: 13px;
	line-height: 1.45;
	color: color-mix(in srgb, var(--ch-color-text-on-dark) 84%, transparent);
}

.ch-discovery .ch-experience-card--without-media .ch-experience-card__meaning {
	color: var(--ch-color-text-muted);
}

.ch-discovery .ch-experience-card__action {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 4px;
	font-family: var(--ch-font-sans);
	font-size: 12px;
	font-weight: 750;
	line-height: 1.3;
	color: inherit;
}

.ch-discovery .ch-experience-card__meta {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 2px;
	font-family: var(--ch-font-sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--ch-color-text-on-dark) 88%, transparent);
}

.ch-discovery .ch-experience-card--without-media .ch-experience-card__meta {
	color: var(--ch-color-text-muted);
}

.ch-discovery .ch-experience-card__meta-icon {
	display: inline-flex;
	flex: 0 0 auto;
}

.ch-discovery .ch-experience-card--linked.ch-experience-card--with-media:hover {
	filter: brightness(1.05);
}

.ch-discovery .ch-experience-card--linked.ch-experience-card--with-media:hover .ch-experience-card__media img {
	transform: scale(1.06);
}

.ch-discovery .ch-experience-card--linked:focus-visible {
	outline: 2px solid var(--ch-color-text-on-dark);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	.ch-discovery .ch-experience-card--linked.ch-experience-card--with-media:hover {
		filter: none;
	}

	.ch-discovery .ch-experience-card__media img,
	.ch-discovery .ch-experience-card--linked.ch-experience-card--with-media:hover .ch-experience-card__media img {
		transform: none;
	}
}

/* ==========================================================================
   10. CHIPS / LABELS (four distinct types — never the same pill for all)
   ========================================================================== */

.ch-discovery .ch-chip-theme,
.ch-discovery .ch-chip-condition,
.ch-discovery .ch-chip-operational,
.ch-discovery .ch-chip-date-status,
.ch-discovery .ch-chip-critical {
	font-family: var(--ch-font-sans);
	letter-spacing: var(--ch-type-chip-tracking);
}

.ch-discovery .ch-chip-theme {
	display: inline-block;
	font-size: var(--ch-type-chip);
	line-height: var(--ch-type-chip-lh);
	color: var(--ch-color-text-muted);
	border: 1px solid var(--ch-color-border);
	border-radius: var(--ch-radius-pill);
	padding: var(--ch-space-4) var(--ch-space-12);
	background: transparent;
}

.ch-discovery .ch-chip-condition {
	display: inline-block;
	font-size: var(--ch-type-chip);
	line-height: var(--ch-type-chip-lh);
	color: var(--ch-color-text);
	background-color: var(--ch-color-sand);
	border-radius: var(--ch-radius-small);
	padding: 4px var(--ch-space-12);
}

.ch-discovery .ch-chip-operational {
	display: inline-block;
	font-size: var(--ch-type-chip);
	line-height: var(--ch-type-chip-lh);
	font-weight: 600;
	color: var(--ch-color-success-text);
	background-color: var(--ch-color-success-bg);
	border-radius: var(--ch-radius-small);
	padding: 4px var(--ch-space-12);
}

.ch-discovery .ch-chip-date-status {
	display: inline-block;
	font-size: var(--ch-type-chip);
	line-height: var(--ch-type-chip-lh);
	font-weight: 600;
	color: var(--ch-color-warning-text);
	background-color: var(--ch-color-warning-bg);
	border-radius: var(--ch-radius-small);
	padding: 4px var(--ch-space-12);
}

.ch-discovery .ch-chip-critical {
	display: inline-block;
	font-size: var(--ch-type-chip);
	line-height: var(--ch-type-chip-lh);
	font-weight: 600;
	color: var(--ch-color-critical-text);
	background-color: var(--ch-color-critical-bg);
	border-radius: var(--ch-radius-small);
	padding: 4px var(--ch-space-12);
}

/* ==========================================================================
   11. BUTTONS / LINKS (no booking CTA exists yet — Secondary/Text only)
   ========================================================================== */

.ch-discovery .ch-btn-secondary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: var(--ch-space-12) var(--ch-space-24);
	border: 1px solid var(--ch-color-forest);
	border-radius: var(--ch-radius-small);
	color: var(--ch-color-forest);
	background: transparent;
	font-family: var(--ch-font-sans);
	font-weight: 600;
	font-size: var(--ch-type-body);
	text-decoration: none;
	transition: background-color var(--ch-motion-fast) var(--ch-motion-ease);
}

.ch-discovery .ch-btn-secondary:hover {
	background-color: color-mix(in srgb, var(--ch-color-forest) 8%, transparent);
	color: var(--ch-color-forest);
}

.ch-discovery .ch-text-link {
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-body);
	color: var(--ch-color-forest);
	text-decoration: underline;
	text-underline-offset: 3px;
	font-weight: 500;
}

.ch-discovery .ch-text-link:hover {
	color: var(--ch-color-forest-deep);
}

/* ==========================================================================
   12. MOTION
   ========================================================================== */

.ch-discovery .ch-reveal {
	opacity: 0;
	transform: translateY(10px);
	transition: opacity var(--ch-motion-slow) var(--ch-motion-ease),
		transform var(--ch-motion-slow) var(--ch-motion-ease);
}

.ch-discovery .ch-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
	.ch-discovery .ch-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.ch-discovery * {
		transition-duration: 0.001ms !important;
		animation-duration: 0.001ms !important;
	}
}

/* ==========================================================================
   13. SECTION RHYTHM
   ========================================================================== */

.ch-discovery .ch-section {
	padding-block: var(--ch-space-section);
}

.ch-discovery .ch-section--events {
	background-color: var(--ch-color-sand);
}


/* ==========================================================================
   14. DESTINATION PAGE CHROME
   Header: FRONT-02 contract, Destination Detail only.
   Shared vk-chesaalula-discovery-header.css is not loaded on this route.
   Selectors beat chesaalula-foundation.css (Poppins / teal / coral) without editing that file.
   Footer hide: Traveler chrome only on this route.
   ========================================================================== */

body.vk-destination-detail-page {
	background-color: var(--ch-color-ivory);
}

body.vk-destination-detail-page header#header,
body.vk-destination-detail-page #header,
body.vk-destination-detail-page #st_header_wrap,
body.vk-destination-detail-page #header .header,
body.vk-destination-detail-page #header .header .header-left,
body.vk-destination-detail-page #header .header .header-right {
	background: var(--ch-color-surface) !important;
	background-color: var(--ch-color-surface) !important;
	background-image: none !important;
	box-shadow: none !important;
}

body.vk-destination-detail-page header#header,
body.vk-destination-detail-page #header {
	border-bottom: 1px solid var(--ch-color-border) !important;
	margin-bottom: 0 !important;
}

body.vk-destination-detail-page #st_header_wrap {
	border-top: none !important;
}

body.vk-destination-detail-page #topbar,
body.vk-destination-detail-page #header #topbar {
	display: none !important;
	height: 0 !important;
	min-height: 0 !important;
	overflow: hidden !important;
}

/* Rail = CONTENT 1240. Gutter is the floor; extra inset centers the 1240 rail. */
body.vk-destination-detail-page header#header .header,
body.vk-destination-detail-page #header .header,
body.vk-destination-detail-page #st_header_wrap > .row#st_header_wrap_inner,
body.vk-destination-detail-page #st_header_wrap .container,
body.vk-destination-detail-page #main-header .container {
	width: 100% !important;
	max-width: none !important;
	margin-inline: auto !important;
	padding-inline: max(var(--ch-gutter), calc((100% - var(--ch-content-max)) / 2)) !important;
	box-sizing: border-box !important;
}

/*
 * FRONT-02.01 IA: brand | primary | utilities
 * display:contents lifts logo + nav into the 3-zone grid without new markup.
 * Empty utilities still occupy column 3 so primary stays centered as N grows.
 */
body.vk-destination-detail-page header#header .header,
body.vk-destination-detail-page #header .header {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	grid-template-areas: "brand primary utilities";
	align-items: center !important;
	justify-content: initial !important;
	flex-wrap: nowrap !important;
	padding-block: var(--ch-space-12) !important;
	min-height: 56px !important;
	max-height: none !important;
	overflow: visible !important;
	column-gap: var(--ch-space-24) !important;
	row-gap: 0 !important;
}

body.vk-destination-detail-page #header .header .header-left {
	display: contents !important;
}

body.vk-destination-detail-page #header .header .header-left > a.logo {
	grid-area: brand;
	justify-self: start;
}

body.vk-destination-detail-page #header .header .header-left #st-main-menu {
	grid-area: primary;
	justify-self: center;
}

body.vk-destination-detail-page #header .header .header-right {
	grid-area: utilities;
	justify-self: end;
	display: flex !important;
	align-items: center !important;
	justify-content: flex-end;
	min-width: 0;
	margin: 0 !important;
}

/* No PUBLIC_NOW utilities — zone stays, children (Traveler leftovers) hidden. */
body.vk-destination-detail-page #header .header .header-right > * {
	display: none !important;
}

/*
 * Traveler placeholders (href="#" login/signup/mini-cart) never led anywhere
 * for Discovery V2 — hidden at every size, no exceptions.
 */
body.vk-destination-detail-page #header .login-item,
body.vk-destination-detail-page #header .signup-item,
body.vk-destination-detail-page #header li.login-item,
body.vk-destination-detail-page #header li.signup-item,
body.vk-destination-detail-page .login-regiter-popup,
body.vk-destination-detail-page #st-login-form,
body.vk-destination-detail-page #st-register-form,
body.vk-destination-detail-page #st-forgot-form {
	display: none !important;
}

/*
 * .toggle-menu + #st-main-menu are NOT placeholders — they are Traveler's
 * native hamburger/off-canvas drawer, and the real 5-item nav lives inside
 * it. Desktop/tablet keep the inline pill nav (hamburger hidden below); on
 * mobile (<768px, see the max-width:767px block further down) the hamburger
 * is the primary nav trigger and the inline-nav override does not apply.
 */
@media (min-width: 768px) {
	body.vk-destination-detail-page #header .toggle-menu,
	body.vk-destination-detail-page #header .header > a.toggle-menu,
	body.vk-destination-detail-page #header a.toggle-menu,
	body.vk-destination-detail-page #header .back-menu {
		display: none !important;
	}
}

/* Logo — official uploaded assets. Desktop PNG ≥768; mobile PNG ≤767. */
body.vk-destination-detail-page #header .header .header-left > a.logo {
	display: inline-flex !important;
	align-items: center !important;
	flex-shrink: 0;
	line-height: 1;
	margin: 0 !important;
	min-width: 44px !important;
	min-height: 44px !important;
	color: inherit !important;
	text-decoration: none !important;
	background: transparent !important;
}

body.vk-destination-detail-page #header .header .header-left > a.logo:hover,
body.vk-destination-detail-page #header .header .header-left > a.logo:focus,
body.vk-destination-detail-page #header .header .header-left > a.logo:active,
body.vk-destination-detail-page #header .header .header-left > a.logo:visited {
	color: inherit !important;
	background: transparent !important;
	text-decoration: none !important;
}

body.vk-destination-detail-page #header .header .header-left > a.logo.hidden-xs {
	display: inline-flex !important;
}

body.vk-destination-detail-page #header .header .header-left > a.logo.hidden-lg.hidden-md.hidden-sm,
body.vk-destination-detail-page #header .header .header-left > a.logo.hidden-sm.hidden-md.hidden-lg {
	display: none !important;
}

body.vk-destination-detail-page #header .logo img,
body.vk-destination-detail-page #header .header .header-left > a.logo img {
	width: auto !important;
	max-width: 180px !important;
	height: auto !important;
	max-height: 36px !important;
	object-fit: contain !important;
}

/*
 * Desktop/tablet (≥768px) only: nav inline as a row of pill links beside the
 * logo. Below 768px this block does not apply — the drawer keeps Traveler's
 * native block-list layout (see max-width:767px block) so it never has to
 * squeeze 5 labels into one row next to the logo again.
 */
@media (min-width: 768px) {
	body.vk-destination-detail-page #header .header .header-left #st-main-menu,
	body.vk-destination-detail-page #header .header .header-left #st-main-menu.open {
		position: static !important;
		display: flex !important;
		align-items: center !important;
		flex: 0 0 auto !important;
		width: auto !important;
		max-width: none !important;
		height: auto !important;
		min-height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		background: transparent !important;
		opacity: 1 !important;
		visibility: visible !important;
		pointer-events: auto !important;
		overflow: visible !important;
		transform: none !important;
		z-index: auto !important;
		transition: none !important;
	}

	body.vk-destination-detail-page #header .header .header-left #st-main-menu .main-menu,
	body.vk-destination-detail-page #header .header .header-left #st-main-menu #main-menu,
	body.vk-destination-detail-page #header .header .header-left #st-main-menu:not(.open) #main-menu,
	body.vk-destination-detail-page #header .header .header-left #st-main-menu:not(.open) .main-menu {
		position: static !important;
		display: flex !important;
		flex-wrap: wrap !important;
		align-items: center !important;
		width: auto !important;
		max-width: none !important;
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		margin: 0 !important;
		padding: 0 !important;
		list-style: none !important;
		background: transparent !important;
		box-shadow: none !important;
		column-gap: var(--ch-space-24) !important;
	}

	body.vk-destination-detail-page #header .header .header-left #st-main-menu .main-menu > li,
	body.vk-destination-detail-page #header .header .header-left #st-main-menu #main-menu > li {
		margin: 0 !important;
		padding: 0 !important;
		float: none !important;
	}

	body.vk-destination-detail-page #header .header .header-left #st-main-menu .main-menu > li > a,
	body.vk-destination-detail-page #header .header .header-left #st-main-menu #main-menu > li > a {
		display: inline-flex !important;
		align-items: center !important;
		min-height: 44px !important;
		padding: 0 var(--ch-space-4) !important;
		font-family: var(--ch-font-sans) !important;
		font-size: 16px !important;
		line-height: var(--ch-type-body-lh) !important;
		font-weight: 500 !important;
		letter-spacing: 0 !important;
		text-transform: none !important;
		text-decoration: none !important;
		color: var(--ch-color-text) !important;
		background: transparent !important;
		box-shadow: none !important;
		border: none !important;
		border-bottom: none !important;
		white-space: nowrap !important;
	}
}

body.vk-destination-detail-page #header .header .header-left #st-main-menu .main-menu > li > a span,
body.vk-destination-detail-page #header .header .header-left #st-main-menu #main-menu > li > a span {
	font-family: inherit !important;
	font-size: inherit !important;
	font-weight: inherit !important;
	letter-spacing: inherit !important;
	text-transform: inherit !important;
	color: inherit !important;
}

body.vk-destination-detail-page #header .header .header-left #st-main-menu .main-menu > li > a::after,
body.vk-destination-detail-page #header .header .header-left #st-main-menu #main-menu > li > a::after,
body.vk-destination-detail-page #header .header .header-left #st-main-menu .main-menu > li > a::before,
body.vk-destination-detail-page #header .header .header-left #st-main-menu #main-menu > li > a::before {
	display: none !important;
	content: none !important;
}

body.vk-destination-detail-page #header .header .header-left #st-main-menu .main-menu > li > a:visited,
body.vk-destination-detail-page #header .header .header-left #st-main-menu #main-menu > li > a:visited {
	color: var(--ch-color-text) !important;
	background: transparent !important;
}

body.vk-destination-detail-page #header .header .header-left #st-main-menu .main-menu > li > a:hover,
body.vk-destination-detail-page #header .header .header-left #st-main-menu #main-menu > li > a:hover,
body.vk-destination-detail-page #header .header .header-left #st-main-menu .main-menu > li > a:focus,
body.vk-destination-detail-page #header .header .header-left #st-main-menu #main-menu > li > a:focus {
	color: var(--ch-nav-hover) !important;
	background: transparent !important;
}

body.vk-destination-detail-page #header .header .header-left #st-main-menu .main-menu > li.current-menu-item > a,
body.vk-destination-detail-page #header .header .header-left #st-main-menu .main-menu > li.current-menu-ancestor > a,
body.vk-destination-detail-page #header .header .header-left #st-main-menu .main-menu > li.current_page_item > a,
body.vk-destination-detail-page #header .header .header-left #st-main-menu .main-menu > li > a[aria-current="page"],
body.vk-destination-detail-page #header #st-main-menu a[data-ch-nav-current="true"],
body.ch-perspective-territorio #header #st-main-menu a[data-ch-discovery-nav="territorio"],
body.ch-perspective-destinos #header #st-main-menu a[data-ch-discovery-nav="destinos"],
body.ch-perspective-experiencias #header #st-main-menu a[data-ch-discovery-nav="experiencias"],
body.ch-perspective-eventos #header #st-main-menu a[data-ch-discovery-nav="eventos"],
body.ch-perspective-hospedaje #header #st-main-menu a[data-ch-discovery-nav="hospedaje"] {
	border-radius: 0 !important;
	color: var(--ch-nav-active) !important;
	background: transparent !important;
	box-shadow: none !important;
	font-weight: 600 !important;
	border: none !important;
	border-bottom: none !important;
	text-decoration: none !important;
}

body.vk-destination-detail-page #header .header .header-left #st-main-menu .main-menu > li > a:focus-visible,
body.vk-destination-detail-page #header .header .header-left #st-main-menu #main-menu > li > a:focus-visible,
body.vk-destination-detail-page #header a.logo:focus-visible {
	outline: 2px solid var(--ch-color-focus) !important;
	outline-offset: 3px !important;
}

@media (max-width: 767px) {
	body.vk-destination-detail-page #header .header .header-left > a.logo.hidden-xs {
		display: none !important;
	}

	body.vk-destination-detail-page #header .header .header-left > a.logo.hidden-lg.hidden-md.hidden-sm,
	body.vk-destination-detail-page #header .header .header-left > a.logo.hidden-sm.hidden-md.hidden-lg {
		display: inline-flex !important;
	}

	body.vk-destination-detail-page #header .logo img,
	body.vk-destination-detail-page #header .header .header-left > a.logo img {
		max-width: 140px !important;
		max-height: 32px !important;
	}

	/*
	 * Mobile can't fit 5 inline nav labels beside the logo on one row — that
	 * forced flex-wrap earlier, and centering the row over 2-3 wrapped lines
	 * put the logo visually on top of a nav line ("el logo se traslapa con
	 * el menú"). Real fix: bring back Traveler's native hamburger/drawer.
	 * The header row now only holds brand + hamburger; #st-main-menu goes
	 * back to its native `position: fixed` off-canvas panel (unmodified by
	 * the min-width:768px block above), triggered by .toggle-menu via the
	 * theme's own custom.js — no collision with the logo is possible.
	 */
	body.vk-destination-detail-page #header .header {
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas: "brand utilities";
		column-gap: var(--ch-space-16) !important;
	}

	body.vk-destination-detail-page #header .header > a.toggle-menu {
		display: flex !important;
		grid-area: utilities;
		justify-self: end;
		align-items: center;
		justify-content: center;
		min-width: 44px;
		min-height: 44px;
		margin: 0 !important;
	}

	/* Drawer content stays Traveler's native block list; just brand the voice. */
	body.vk-destination-detail-page #header .header .header-left #st-main-menu .main-menu > li > a,
	body.vk-destination-detail-page #header .header .header-left #st-main-menu #main-menu > li > a {
		font-family: var(--ch-font-sans) !important;
		text-transform: none !important;
		color: var(--ch-color-text) !important;
	}

	/*
	 * Traveler's drawer ships as a left-edge panel stretched to the full
	 * viewport height (huge dead white space below 5 short links). The
	 * hamburger lives on the right, so the panel should open from the right
	 * too, and it should hug its content instead of stretching — the dimmed
	 * backdrop stays visible below it instead of reading as a second page.
	 */
	body.vk-destination-detail-page #header .header .header-left #st-main-menu .back-menu,
	body.vk-destination-detail-page #header .header .header-left #st-main-menu .main-menu {
		left: auto !important;
		right: 0 !important;
		width: min(300px, 84vw) !important;
		/*
		 * Animate transform, not right/left — the latter is a layout
		 * property (the browser reflows every frame = the stutter you saw).
		 * translateX is compositor-only (GPU), so open/close stays smooth
		 * even on older phones.
		 */
		transform: translateX(100%);
		will-change: transform;
		transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), opacity 0.28s ease !important;
	}

	body.vk-destination-detail-page #header .header .header-left #st-main-menu.open .back-menu,
	body.vk-destination-detail-page #header .header .header-left #st-main-menu.open .main-menu {
		transform: translateX(0) !important;
	}

	body.vk-destination-detail-page #header .header .header-left #st-main-menu .main-menu {
		height: auto !important;
		max-height: calc(100% - 50px) !important;
		box-shadow: -12px 0 32px rgba(15, 23, 42, 0.16);
		border-bottom-left-radius: 16px;
		border-bottom-right-radius: 16px;
		padding-bottom: var(--ch-space-8) !important;
	}

	body.vk-destination-detail-page #header .header .header-left #st-main-menu .back-menu {
		background: var(--ch-color-ivory) !important;
		opacity: 1 !important;
		justify-content: flex-end;
		padding-left: 0 !important;
		padding-right: var(--ch-space-24) !important;
		gap: var(--ch-space-8);
		border-top-left-radius: 16px;
		box-shadow: -12px 0 32px rgba(15, 23, 42, 0.16);
	}

	body.vk-destination-detail-page #header .header .header-left #st-main-menu .back-menu::before {
		content: "Cerrar";
		order: 1;
		font-family: var(--ch-font-sans);
		font-size: 14px;
		font-weight: 600;
		color: var(--ch-color-text);
	}

	body.vk-destination-detail-page #header .header .header-left #st-main-menu .back-menu .fa {
		order: 2;
		margin: 0 !important;
		color: var(--ch-color-text) !important;
		transform: scaleX(-1);
	}
}

/*
 * Growth: when PUBLIC_NOW >= 2, a disclosure may live in utilities.
 * Do not render that control while N = 1. Selectors reserved, unused today.
 */
body.vk-destination-detail-page #header .ch-header-toggle {
	display: none;
}

@media (min-width: 1024px) {
	body.vk-destination-detail-page #header .ch-header-toggle {
		display: none !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	body.vk-destination-detail-page #header * {
		transition: none !important;
	}
}

/* ==========================================================================
   15. PAGE FOOTER — FRONT-10.01
   Five-column mock: brand · Explora · Acerca de · Viaja con respeto · App.
   Forest-deep. One landmark. Traveler footer hidden on this route.
   Only PUBLIC_NOW catalog rows become links. No full-width meta strip.
   ========================================================================== */

body.vk-destination-detail-page #main-footer,
body.vk-destination-detail-page footer#main-footer,
body.vk-destination-detail-page .main-footer,
body.vk-destination-detail-page .main-footer-sub,
body.vk-destination-detail-page #main-footer-sub,
body.vk-destination-detail-page .st-copy-right,
body.vk-destination-detail-page .st-copyright,
body.vk-destination-detail-page footer#colophon {
	display: none !important;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	overflow: hidden !important;
}

.ch-page-footer,
body.vk-destination-detail-page .ch-page-footer {
	padding: 0;
	margin: 0;
	background: var(--ch-color-footer);
	border: none;
	font-family: var(--ch-font-sans);
	color: var(--ch-color-text-on-dark);
	overflow-x: hidden;
}

.ch-page-footer__inner,
body.vk-destination-detail-page .ch-page-footer__inner {
	display: grid;
	grid-template-columns: minmax(220px, 1.35fr) repeat(3, minmax(120px, 0.7fr)) minmax(160px, 0.85fr);
	align-items: start;
	column-gap: 40px;
	row-gap: var(--ch-space-32);
	max-width: none;
	margin-inline: auto;
	padding: var(--ch-space-48) max(var(--ch-gutter), calc((100% - var(--ch-content-max)) / 2));
	width: 100%;
}

.ch-page-footer a,
.ch-page-footer a:link,
.ch-page-footer a:visited,
.ch-page-footer a:hover,
.ch-page-footer a:focus,
.ch-page-footer a:focus-visible,
.ch-page-footer a:active,
body.vk-destination-detail-page .ch-page-footer a,
body.vk-destination-detail-page .ch-page-footer a:link,
body.vk-destination-detail-page .ch-page-footer a:visited,
body.vk-destination-detail-page .ch-page-footer a:hover,
body.vk-destination-detail-page .ch-page-footer a:focus,
body.vk-destination-detail-page .ch-page-footer a:focus-visible,
body.vk-destination-detail-page .ch-page-footer a:active {
	color: var(--ch-color-text-on-dark);
	text-decoration: none;
}

.ch-page-footer__brand {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-width: 0;
	max-width: 360px;
}

.ch-page-footer__wordmark {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	color: var(--ch-color-text-on-dark);
	text-decoration: none;
}

.ch-page-footer__mark {
	display: block;
	width: 159px;
	height: 42px;
	object-fit: contain;
	/* vk-chesaalula-logo-home.png ships with a dark navy wordmark for light
	   backgrounds; flatten it to white so it reads on the dark footer. */
	filter: brightness(0) invert(1);
}

.ch-page-footer__wordmark:hover .ch-page-footer__mark {
	opacity: 0.86;
}

.ch-page-footer__wordmark:focus-visible {
	outline: 2px solid var(--ch-color-text-on-dark);
	outline-offset: 3px;
}

.ch-page-footer__tagline {
	margin: 10px 0 0;
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-kicker);
	font-weight: 700;
	letter-spacing: var(--ch-type-kicker-tracking);
	line-height: var(--ch-type-kicker-lh);
	text-transform: uppercase;
	color: var(--ch-color-text-on-dark);
}

.ch-page-footer__blurb {
	margin: 14px 0 0;
	max-width: 42ch;
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	line-height: var(--ch-type-small-lh);
	color: color-mix(in srgb, var(--ch-color-text-on-dark) 74%, transparent);
}

.ch-page-footer__social {
	display: flex;
	gap: 8px;
	margin: 18px 0 0;
	padding: 0;
	list-style: none;
}

.ch-page-footer__social-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	border: 1px solid color-mix(in srgb, var(--ch-color-text-on-dark) 28%, transparent);
	color: var(--ch-color-text-on-dark);
}

.ch-page-footer__col {
	min-width: 0;
}

.ch-page-footer__heading {
	margin: 0 0 14px;
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	font-weight: 700;
	line-height: 1.3;
	color: var(--ch-color-text-on-dark);
}

.ch-page-footer__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ch-page-footer__item {
	display: block;
	margin: 0 0 8px;
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	line-height: 1.4;
	color: color-mix(in srgb, var(--ch-color-text-on-dark) 78%, transparent);
}

.ch-page-footer__app-note {
	margin: 0 0 14px;
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	line-height: var(--ch-type-small-lh);
	color: color-mix(in srgb, var(--ch-color-text-on-dark) 70%, transparent);
}

.ch-page-footer__stores {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.ch-page-footer__store {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	padding: 8px 12px;
	border: 1px solid color-mix(in srgb, var(--ch-color-text-on-dark) 38%, transparent);
	border-radius: 8px;
	color: var(--ch-color-text-on-dark);
	font-family: var(--ch-font-sans);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.2;
}

.ch-page-footer__store em {
	font-style: normal;
	font-weight: 400;
	opacity: 0.72;
}

.ch-page-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 18px max(var(--ch-gutter), calc((100% - var(--ch-content-max)) / 2)) 28px;
}

.ch-page-footer__copy {
	margin: 0;
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	line-height: var(--ch-type-small-lh);
	color: color-mix(in srgb, var(--ch-color-text-on-dark) 62%, transparent);
}

.ch-page-footer__photo-credit {
	opacity: 0.72;
}

.ch-page-footer__photo-credit a:hover,
.ch-page-footer__photo-credit a:focus-visible {
	text-decoration: underline;
	text-underline-offset: 0.16em;
}

.ch-page-footer__madeby {
	margin: 0;
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	line-height: var(--ch-type-small-lh);
	color: color-mix(in srgb, var(--ch-color-text-on-dark) 62%, transparent);
}

.ch-page-footer__madeby a:hover,
.ch-page-footer__madeby a:focus-visible {
	text-decoration: underline;
	text-underline-offset: 0.16em;
}

@media (max-width: 1023px) {
	.ch-page-footer__inner,
	body.vk-destination-detail-page .ch-page-footer__inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: start;
	}

	.ch-page-footer__brand {
		grid-column: 1 / -1;
		max-width: none;
	}

	.ch-page-footer__bottom {
		flex-wrap: wrap;
		gap: 8px 24px;
	}
}

@media (max-width: 767px) {
	.ch-page-footer__inner,
	body.vk-destination-detail-page .ch-page-footer__inner {
		grid-template-columns: minmax(0, 1fr);
		padding: var(--ch-space-48) var(--ch-gutter) var(--ch-space-32);
	}
}

/* ==========================================================================
   FRONT-15.06D — Destination platform composition
   Scoped to .ch-discovery--platform. No per-slug selectors.
   ========================================================================== */

.ch-discovery--platform {
	scroll-behavior: smooth;
}

.ch-discovery--platform .ch-destination-hero {
	margin-bottom: 0;
}

.ch-discovery--platform .ch-destination-hero--with-media .ch-destination-hero__media {
	aspect-ratio: 16 / 8;
	min-height: 560px;
	max-height: 780px;
}

.ch-discovery--platform .ch-destination-hero__action {
	margin: var(--ch-space-16) 0 0;
}

.ch-discovery--platform .ch-destination-hero__stay {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 var(--ch-space-24);
	border: 1px solid color-mix(in srgb, var(--ch-color-text-on-dark) 70%, transparent);
	border-radius: var(--ch-radius-pill);
	background: color-mix(in srgb, var(--ch-color-forest-deep) 28%, transparent);
	color: var(--ch-color-text-on-dark);
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	font-weight: 600;
	letter-spacing: 0.04em;
	text-decoration: none;
}

.ch-discovery--platform .ch-destination-hero__stay:hover,
.ch-discovery--platform .ch-destination-hero__stay:focus-visible {
	background: var(--ch-color-surface);
	color: var(--ch-color-forest-deep);
	border-color: var(--ch-color-surface);
}

.ch-discovery--platform .ch-destination-hero--without-media .ch-destination-hero__stay {
	border-color: color-mix(in srgb, var(--ch-color-forest) 45%, transparent);
	background: transparent;
	color: var(--ch-color-forest);
}

.ch-discovery--platform .ch-destination-hero--without-media .ch-destination-hero__stay:hover,
.ch-discovery--platform .ch-destination-hero--without-media .ch-destination-hero__stay:focus-visible {
	background: var(--ch-color-forest);
	color: var(--ch-color-text-on-dark);
	border-color: var(--ch-color-forest);
}

.ch-discovery--platform .ch-destination-hero--has-profile.ch-destination-hero--with-media .ch-destination-hero__media {
	aspect-ratio: 21 / 8;
	min-height: 400px;
	max-height: 460px;
}

.ch-discovery .ch-destination-hero--has-profile.ch-destination-hero--with-media .ch-destination-hero__content {
	position: absolute;
	inset: 0;
	left: 0;
	right: 0;
	bottom: 0;
	min-height: 0;
	max-width: none;
	justify-content: stretch;
	padding-block: 24px 28px;
	padding-inline: max(var(--ch-gutter), calc((100% - var(--ch-content-max)) / 2));
}

.ch-discovery--platform .ch-destination-hero--has-profile.ch-destination-hero--with-media .ch-destination-hero__overlay {
	background:
		linear-gradient(
			90deg,
			color-mix(in srgb, var(--ch-color-vignette) 64%, transparent) 0%,
			color-mix(in srgb, var(--ch-color-vignette) 28%, transparent) 34%,
			color-mix(in srgb, var(--ch-color-vignette) 6%, transparent) 56%,
			transparent 70%
		),
		linear-gradient(
			180deg,
			color-mix(in srgb, var(--ch-color-vignette) 14%, transparent) 0%,
			transparent 42%,
			color-mix(in srgb, var(--ch-color-vignette) 22%, transparent) 100%
		);
}

.ch-discovery .ch-destination-hero--has-profile .ch-destination-hero__content {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
	gap: var(--ch-space-32);
	align-items: start;
}

.ch-discovery--platform .ch-destination-hero--has-profile .ch-destination-hero__kicker {
	font-size: var(--ch-type-kicker);
	font-weight: 700;
	letter-spacing: var(--ch-type-kicker-tracking);
	color: color-mix(in srgb, var(--ch-color-text-on-dark) 86%, transparent);
}

.ch-discovery--platform .ch-destination-hero--has-profile .ch-destination-hero__title {
	font-size: var(--ch-type-display);
	line-height: var(--ch-type-display-lh);
	font-weight: var(--ch-type-display-weight);
	letter-spacing: var(--ch-type-display-tracking);
}

.ch-discovery--platform .ch-destination-hero--has-profile .ch-destination-hero__lede {
	margin-top: 14px;
	font-size: var(--ch-type-lede);
	line-height: var(--ch-type-lede-lh);
	color: color-mix(in srgb, var(--ch-color-text-on-dark) 92%, transparent);
}

.ch-discovery .ch-destination-hero__main {
	min-width: 0;
}

.ch-discovery .ch-destination-hero__badge {
	display: inline-flex;
	align-items: center;
	gap: var(--ch-space-8);
	margin: 0 0 var(--ch-space-16);
	padding: 6px 12px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--ch-color-forest-deep) 82%, transparent);
	border: 1px solid color-mix(in srgb, var(--ch-color-text-on-dark) 18%, transparent);
	color: var(--ch-color-text-on-dark);
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-kicker);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.ch-discovery .ch-destination-hero--without-media .ch-destination-hero__badge {
	background: color-mix(in srgb, var(--ch-color-forest) 12%, transparent);
	color: var(--ch-color-forest-deep);
}

.ch-discovery .ch-destination-hero__badge-icon {
	display: inline-flex;
}

.ch-discovery .ch-destination-hero__pillars {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ch-space-16) var(--ch-space-24);
	margin: var(--ch-space-16) 0 0;
	padding: 0;
	list-style: none;
}

.ch-discovery .ch-destination-hero__pillar {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--ch-color-text-on-dark);
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	font-weight: 600;
}

.ch-discovery .ch-destination-hero--without-media .ch-destination-hero__pillar {
	color: var(--ch-color-forest-deep);
}

.ch-discovery .ch-destination-hero__pillar-icon {
	display: inline-flex;
	opacity: 0.92;
}

.ch-discovery--platform .ch-destination-hero__action {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--ch-space-12);
}

.ch-discovery--platform .ch-destination-hero__discover,
.ch-discovery--platform .ch-destination-hero--has-profile .ch-destination-hero__stay {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 46px;
	padding: 0 18px;
	border-radius: var(--ch-radius-medium);
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	font-weight: 600;
	letter-spacing: 0.01em;
	text-decoration: none;
}

.ch-discovery--platform .ch-destination-hero__discover {
	background: var(--ch-color-accent);
	color: var(--ch-color-text-on-dark);
	border: 1px solid var(--ch-color-accent);
}

.ch-discovery--platform .ch-destination-hero__discover:hover,
.ch-discovery--platform .ch-destination-hero__discover:focus-visible {
	background: var(--ch-color-accent-hover);
	border-color: var(--ch-color-accent-hover);
	color: var(--ch-color-text-on-dark);
}

.ch-discovery--platform .ch-destination-hero--has-profile .ch-destination-hero__stay {
	border: 1px solid color-mix(in srgb, var(--ch-color-text-on-dark) 78%, transparent);
	background: transparent;
	border-radius: var(--ch-radius-medium);
}

.ch-discovery--platform .ch-destination-hero--has-profile .ch-destination-hero__stay-icon {
	display: inline-flex;
}

.ch-discovery .ch-destination-hero__facts {
	width: 100%;
	padding: 24px 22px 20px;
	border-radius: var(--ch-radius-panel);
	background: color-mix(in srgb, var(--ch-color-forest-deep) 68%, transparent);
	border: 1px solid color-mix(in srgb, var(--ch-color-ivory) 18%, transparent);
	color: var(--ch-color-text-on-dark);
	backdrop-filter: blur(10px);
}

.ch-discovery .ch-destination-hero--without-media .ch-destination-hero__facts {
	background: var(--ch-color-surface);
	border-color: color-mix(in srgb, var(--ch-color-forest) 16%, transparent);
	color: var(--ch-color-text);
}

.ch-discovery .ch-destination-hero__facts-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ch-discovery .ch-destination-hero__fact {
	display: grid;
	grid-template-columns: 22px minmax(0, 1fr);
	gap: 10px;
	align-items: start;
	padding: 12px 0;
	border-top: 1px solid color-mix(in srgb, var(--ch-color-text-on-dark) 14%, transparent);
}

.ch-discovery .ch-destination-hero__fact:first-child {
	padding-top: 0;
	border-top: 0;
}

.ch-discovery .ch-destination-hero--without-media .ch-destination-hero__fact {
	border-top-color: color-mix(in srgb, var(--ch-color-forest) 12%, transparent);
}

.ch-discovery .ch-destination-hero__fact-icon {
	display: inline-flex;
	margin-top: 2px;
	opacity: 0.88;
}

.ch-discovery .ch-destination-hero__fact-copy {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.ch-discovery .ch-destination-hero__fact-label {
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-kicker);
	font-weight: 600;
	letter-spacing: var(--ch-type-kicker-tracking);
	text-transform: uppercase;
	opacity: 0.78;
}

.ch-discovery .ch-destination-hero__fact-detail {
	font-family: var(--ch-font-display);
	font-size: var(--ch-type-body);
	font-weight: 600;
	line-height: 1.35;
}

.ch-discovery .ch-destination-hero__fact-note {
	font-size: var(--ch-type-chip);
	line-height: var(--ch-type-chip-lh);
	opacity: 0.72;
}

.ch-platform-nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0 var(--ch-space-8);
	padding: 0 var(--ch-gutter);
	background: var(--ch-color-forest-deep);
}

.ch-platform-nav__link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 var(--ch-space-12);
	color: color-mix(in srgb, var(--ch-color-text-on-dark) 86%, transparent);
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	font-weight: 600;
	letter-spacing: 0.02em;
	text-decoration: none;
}

.ch-platform-nav__link:hover,
.ch-platform-nav__link:focus-visible {
	color: var(--ch-color-text-on-dark);
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.ch-platform-kicker {
	margin: 0 0 var(--ch-space-8);
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-kicker);
	line-height: var(--ch-type-kicker-lh);
	font-weight: 600;
	letter-spacing: var(--ch-type-kicker-tracking);
	text-transform: uppercase;
	color: var(--ch-color-forest);
}

.ch-platform-kicker--on-dark {
	color: var(--ch-color-sand);
}

.ch-platform-title {
	margin: 0;
	font-family: var(--ch-font-display);
	font-size: var(--ch-type-section);
	font-weight: var(--ch-type-section-weight);
	line-height: var(--ch-type-section-lh);
	letter-spacing: var(--ch-type-section-tracking);
	color: var(--ch-color-title);
}

.ch-platform-head {
	margin: 0 0 var(--ch-space-24);
}

.ch-platform-why,
.ch-platform-places,
.ch-platform-live,
.ch-platform-territory,
.ch-platform-when-band,
.ch-platform-stay,
.ch-platform-next,
.ch-platform-utils {
	padding-block: var(--ch-space-48);
	padding-inline: max(var(--ch-gutter), calc((100% - var(--ch-content-max)) / 2));
	width: 100%;
}

.ch-platform-why__grid,
.ch-platform-places .ch-platform-head,
.ch-platform-places__stage,
.ch-platform-territory .ch-platform-head,
.ch-platform-territory__grid,
.ch-platform-when-band__stage,
.ch-platform-stay__panel,
.ch-platform-next .ch-platform-head,
.ch-platform-next .ch-next-discovery__list {
	max-width: var(--ch-content-max);
	margin-inline: auto;
	width: 100%;
}

.ch-platform-why,
.ch-platform-live,
.ch-platform-next {
	background: var(--ch-color-ivory);
}

.ch-platform-places {
	background: var(--ch-color-ivory);
	padding-top: var(--ch-space-48);
	padding-bottom: var(--ch-space-48);
}

.ch-platform-territory,
.ch-platform-when-band {
	background: var(--ch-color-ivory);
	padding-top: var(--ch-space-48);
	padding-bottom: var(--ch-space-48);
}

.ch-platform-utils {
	background: var(--ch-color-sand);
}

.ch-platform-why {
	padding-top: var(--ch-space-48);
	padding-bottom: var(--ch-space-48);
}

.ch-platform-why__grid {
	display: grid;
	grid-template-columns: minmax(260px, 0.7fr) minmax(0, 2fr);
	gap: var(--ch-space-32) var(--ch-space-32);
	align-items: start;
}

.ch-platform-why__text {
	margin: 0;
	font-family: var(--ch-font-display);
	font-size: var(--ch-type-lede);
	line-height: var(--ch-type-lede-lh);
	color: var(--ch-color-text);
	max-width: 46ch;
}

.ch-platform-why__title {
	margin: 0;
	max-width: 16em;
	font-family: var(--ch-font-display);
	font-size: var(--ch-type-section);
	font-weight: var(--ch-type-section-weight);
	line-height: var(--ch-type-section-lh);
	letter-spacing: var(--ch-type-section-tracking);
	color: var(--ch-color-title);
}

.ch-platform-why__rule {
	display: block;
	width: 48px;
	height: 3px;
	margin-top: var(--ch-space-16);
	background: var(--ch-color-forest);
}

.ch-platform-why__reasons {
	list-style: none;
	margin: 0;
	padding: 0 0 0 var(--ch-space-16);
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	column-gap: var(--ch-space-32);
	align-items: stretch;
	width: 100%;
	border-left: 1px solid var(--ch-color-border);
}

.ch-platform-why__reasons--count-1 {
	grid-template-columns: minmax(0, 1fr);
}

.ch-platform-why__reasons--count-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ch-platform-why__reasons--count-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ch-platform-why__reasons--count-4,
.ch-platform-why__reasons--count-5 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ch-platform-why__facts {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--ch-space-12);
}

.ch-platform-reason {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-width: 0;
	margin: 0;
	padding: 0;
}

.ch-platform-reason + .ch-platform-reason::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: calc(var(--ch-space-32) / -2);
	width: 1px;
	background: var(--ch-color-border);
}

.ch-platform-reason__icon {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	width: 32px;
	height: 32px;
	margin: 0 0 var(--ch-space-16);
	color: var(--ch-color-forest-deep);
}

.ch-platform-reason__icon svg {
	display: block;
	width: 32px;
	height: 32px;
}

.ch-platform-reason__title {
	margin: 0 0 var(--ch-space-12);
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-body);
	font-weight: 600;
	line-height: 1.3;
	color: var(--ch-color-title);
}

.ch-platform-reason__body {
	margin: 0;
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	line-height: 1.55;
	color: var(--ch-color-text-muted);
}

.ch-platform-fact {
	display: flex;
	align-items: center;
	min-height: 56px;
	padding: var(--ch-space-12) var(--ch-space-16);
	background: var(--ch-color-surface);
	border-left: 3px solid var(--ch-color-forest);
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	font-weight: 600;
	color: var(--ch-color-forest-deep);
}

.ch-platform-feature {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
	gap: var(--ch-space-32);
	align-items: stretch;
	margin-bottom: var(--ch-space-32);
	background: var(--ch-color-ivory);
	border-radius: var(--ch-radius-medium);
	overflow: hidden;
}

.ch-platform-feature--without-media {
	grid-template-columns: minmax(0, 1fr);
	padding: var(--ch-space-24);
}

.ch-platform-feature__media {
	min-height: 0;
	aspect-ratio: var(--ch-ratio-feature);
	overflow: hidden;
	background: var(--ch-color-forest-deep);
}

.ch-platform-feature__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--ch-focal, center center);
	filter: var(--ch-media-grade);
}

.ch-platform-feature__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: var(--ch-space-32);
}

.ch-platform-feature__name {
	margin: 0 0 var(--ch-space-12);
	font-family: var(--ch-font-display);
	font-size: var(--ch-type-entity-lg);
	line-height: var(--ch-type-entity-lg-lh);
	font-weight: 600;
	color: var(--ch-color-text);
}

.ch-platform-feature__copy {
	margin: 0;
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-body);
	line-height: var(--ch-type-body-lh);
	color: var(--ch-color-text-muted);
}

.ch-platform-head--places {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--ch-space-16);
	margin: 0 0 var(--ch-space-24);
}

.ch-platform-places__stage {
	display: grid;
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
	gap: 14px;
	align-items: stretch;
}

.ch-platform-places--has-feature:not(.ch-platform-places--has-rail) .ch-platform-places__stage {
	grid-template-columns: minmax(0, 1.85fr) minmax(0, 3.15fr);
}

.ch-platform-places--has-feature.ch-platform-places--count-3:not(.ch-platform-places--has-rail) .ch-platform-places__stage {
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
	grid-template-rows: 380px;
}

.ch-platform-places--has-feature.ch-platform-places--count-4:not(.ch-platform-places--has-rail) .ch-platform-places__stage {
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.8fr);
}

.ch-platform-places--has-feature.ch-platform-places--count-5:not(.ch-platform-places--has-rail) .ch-platform-places__stage {
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.4fr);
}

.ch-platform-places--has-rail .ch-platform-places__stage {
	grid-template-columns: minmax(0, 1fr);
}

.ch-platform-places--has-rail.ch-platform-places--has-feature .ch-platform-places__stage {
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.2fr);
}

.ch-platform-places__grid,
.ch-platform-places__track {
	display: grid;
	width: 100%;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	gap: 14px;
}

.ch-platform-places--has-feature:not(.ch-platform-places--has-rail) .ch-platform-places__grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	grid-template-rows: repeat(2, minmax(0, 1fr));
	height: 100%;
}

.ch-platform-places--has-feature.ch-platform-places--count-3:not(.ch-platform-places--has-rail) .ch-platform-places__grid {
	grid-template-columns: minmax(0, 1fr);
	grid-template-rows: repeat(2, minmax(0, 1fr));
}

.ch-platform-places--has-feature.ch-platform-places--count-4:not(.ch-platform-places--has-rail) .ch-platform-places__grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	grid-template-rows: minmax(0, 1fr);
}

.ch-platform-places--has-feature.ch-platform-places--count-5:not(.ch-platform-places--has-rail) .ch-platform-places__grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-template-rows: repeat(2, minmax(0, 1fr));
}

.ch-platform-places__rail {
	position: relative;
	min-width: 0;
	min-height: 0;
}

.ch-platform-places--has-rail .ch-platform-places__track {
	grid-auto-flow: column;
	grid-template-rows: minmax(0, 1fr);
	grid-auto-columns: calc((100% - 42px) / 4);
	height: auto;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.ch-platform-places--has-rail.ch-platform-places--has-feature .ch-platform-places__track {
	height: 100%;
}

.ch-platform-places--has-rail .ch-platform-places__track::-webkit-scrollbar {
	display: none;
}

.ch-platform-places__rail-nav {
	display: flex;
	justify-content: flex-end;
	gap: 8px;
	margin-top: 12px;
}

.ch-platform-places__rail-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--ch-color-surface);
	color: var(--ch-color-forest-deep);
	box-shadow: 0 1px 4px color-mix(in srgb, var(--ch-color-forest-deep) 12%, transparent);
	cursor: pointer;
}

.ch-platform-places__rail-btn[hidden] {
	display: none;
}

.ch-platform-places__item {
	min-width: 0;
	min-height: 0;
	overflow: hidden;
	border-radius: var(--ch-radius-medium);
}

.ch-platform-places--has-rail .ch-platform-places__track > .ch-platform-places__item {
	scroll-snap-align: start;
	aspect-ratio: 4 / 3;
}

.ch-platform-places--has-feature:not(.ch-platform-places--has-rail) .ch-platform-places__grid .ch-platform-places__item {
	aspect-ratio: auto;
	height: 100%;
	min-height: 0;
}

.ch-platform-places--has-feature .ch-platform-places__item--featured {
	min-width: 0;
	min-height: 0;
	aspect-ratio: 4 / 5;
}

.ch-platform-places--has-feature.ch-platform-places--count-3:not(.ch-platform-places--has-rail) .ch-platform-places__item--featured {
	aspect-ratio: auto;
	width: 100%;
	height: 100%;
	max-width: 100%;
	overflow: hidden;
}

.ch-platform-places--equal .ch-platform-places__item {
	aspect-ratio: 4 / 3;
}

.ch-platform-places--equal.ch-platform-places--count-1 .ch-platform-places__grid {
	grid-template-columns: minmax(0, 1fr);
}

.ch-platform-places--equal.ch-platform-places--count-1 .ch-platform-places__item {
	aspect-ratio: 16 / 9;
	max-height: 280px;
}

.ch-platform-places--equal.ch-platform-places--count-2 .ch-platform-places__grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ch-platform-places--equal.ch-platform-places--count-2 .ch-platform-places__item {
	aspect-ratio: 16 / 9;
	max-height: 260px;
}

.ch-platform-places--equal.ch-platform-places--count-3 .ch-platform-places__grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ch-platform-places--equal.ch-platform-places--count-4 .ch-platform-places__grid,
.ch-platform-places--equal.ch-platform-places--count-5 .ch-platform-places__grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ch-platform-places--equal.ch-platform-places--count-6 .ch-platform-places__grid,
.ch-platform-places--equal.ch-platform-places--count-7plus .ch-platform-places__grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ch-platform-places--has-rail .ch-platform-places__item--featured,
.ch-platform-places--has-rail .ch-platform-places__item--featured .ch-place-card,
.ch-platform-places--has-rail .ch-platform-places__item--featured .ch-place-card__surface {
	height: 100%;
	aspect-ratio: auto;
	min-height: 0;
}

.ch-discovery--platform .ch-platform-places .ch-place-card,
.ch-discovery--platform .ch-platform-places .ch-place-card__surface {
	position: relative;
	width: 100%;
	height: 100%;
	min-width: 0;
	min-height: 0;
	cursor: default;
}

.ch-discovery--platform .ch-platform-places .ch-place-card__surface {
	overflow: hidden;
	border-radius: var(--ch-radius-medium);
	isolation: isolate;
}

.ch-discovery--platform .ch-platform-places .ch-place-card--without-media .ch-place-card__surface {
	aspect-ratio: auto;
	height: 100%;
	min-height: 100%;
	align-items: flex-start;
	background: var(--ch-color-sand);
	border: none;
}

.ch-discovery--platform .ch-platform-places .ch-place-card--with-media .ch-place-card__photo {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
	filter: var(--ch-media-grade);
}

.ch-discovery--platform .ch-platform-places .ch-place-card--with-media .ch-place-card__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: var(--ch-overlay-card);
}

.ch-discovery--platform .ch-platform-places .ch-place-card--with-media .ch-place-card__overlay::after {
	content: none;
}

.ch-discovery--platform .ch-platform-places .ch-place-card--featured.ch-place-card--with-media .ch-place-card__overlay {
	background: var(--ch-overlay-card);
}

.ch-discovery--platform .ch-platform-places .ch-place-card--with-media .ch-place-card__surface {
	background-color: var(--ch-color-forest-deep);
}

.ch-discovery--platform .ch-platform-places .ch-place-card__badge {
	position: absolute;
	top: 16px;
	left: 16px;
	z-index: 3;
	margin: 0;
	padding: 7px 13px;
	border-radius: var(--ch-radius-pill);
	background: var(--ch-color-forest-deep);
	color: var(--ch-color-text-on-dark);
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-chip);
	font-weight: 700;
	letter-spacing: var(--ch-type-chip-tracking);
	line-height: var(--ch-type-chip-lh);
	text-transform: uppercase;
}

.ch-discovery--platform .ch-platform-places .ch-place-card__body {
	position: absolute;
	left: 16px;
	right: 16px;
	bottom: 14px;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	width: auto;
	padding: 0;
	text-align: left;
}

.ch-discovery--platform .ch-platform-places .ch-place-card--featured .ch-place-card__body {
	right: 24px;
	bottom: 20px;
	left: 24px;
}

.ch-discovery--platform .ch-platform-places .ch-place-card__title {
	margin: 0;
	max-width: 100%;
	font-family: var(--ch-font-display);
	font-size: var(--ch-type-entity);
	font-weight: 500;
	line-height: var(--ch-type-entity-lh);
	letter-spacing: var(--ch-type-section-tracking);
	color: var(--ch-color-text-on-dark);
	text-align: left;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
}

.ch-discovery--platform .ch-platform-places .ch-place-card--featured .ch-place-card__title {
	font-size: var(--ch-type-entity-lg);
	font-weight: 500;
	line-height: var(--ch-type-entity-lg-lh);
	-webkit-line-clamp: 2;
}

.ch-discovery--platform .ch-platform-places .ch-place-card__summary {
	margin: 6px 0 0;
	max-width: 100%;
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	font-weight: 400;
	line-height: var(--ch-type-small-lh);
	color: color-mix(in srgb, var(--ch-color-text-on-dark) 90%, transparent);
	text-align: left;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
}

.ch-discovery--platform .ch-platform-places--has-rail .ch-place-card__title {
	font-size: var(--ch-type-entity);
	-webkit-line-clamp: 2;
}

.ch-discovery--platform .ch-platform-places--has-rail .ch-place-card__summary {
	margin-top: 6px;
	font-size: var(--ch-type-small);
	line-height: var(--ch-type-small-lh);
	-webkit-line-clamp: 2;
}

.ch-discovery--platform .ch-platform-places--has-rail .ch-place-card__subtype {
	margin-top: 8px;
}

.ch-discovery--platform .ch-platform-places .ch-place-card--with-media .ch-place-card__subtype,
.ch-discovery--platform .ch-platform-places .ch-place-card__subtype {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 10px 0 0;
	padding: 0;
	color: color-mix(in srgb, var(--ch-color-text-on-dark) 82%, transparent);
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-chip);
	font-weight: 650;
	letter-spacing: var(--ch-type-chip-tracking);
	line-height: 1.2;
	text-transform: uppercase;
	text-align: left;
}

.ch-discovery--platform .ch-platform-places .ch-place-card__chip-icon {
	display: inline-flex;
	width: 16px;
	height: 16px;
	flex: 0 0 16px;
	color: color-mix(in srgb, var(--ch-color-text-on-dark) 88%, transparent);
}

.ch-discovery--platform .ch-platform-places .ch-place-card__chip-icon svg {
	width: 16px;
	height: 16px;
}

.ch-discovery--platform .ch-platform-places .ch-place-card--without-media .ch-place-card__body {
	position: absolute;
	left: 16px;
	right: 16px;
	bottom: 14px;
	top: auto;
	padding: 0;
}

.ch-discovery--platform .ch-platform-places .ch-place-card--without-media .ch-place-card__subtype,
.ch-discovery--platform .ch-platform-places .ch-place-card--without-media .ch-place-card__title,
.ch-discovery--platform .ch-platform-places .ch-place-card--without-media .ch-place-card__summary {
	color: var(--ch-color-forest-deep);
}

.ch-discovery--platform .ch-platform-places .ch-place-card--without-media .ch-place-card__summary {
	color: var(--ch-color-text-muted);
}

.ch-platform-place-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--ch-space-16);
	list-style: none;
	margin: 0;
	padding: 0;
}

.ch-platform-place {
	min-height: 100%;
	padding: var(--ch-space-16) var(--ch-space-16) var(--ch-space-16) var(--ch-space-20);
	background: var(--ch-color-ivory);
	border-left: 3px solid color-mix(in srgb, var(--ch-color-forest) 55%, transparent);
}

.ch-platform-place__name {
	margin: 0 0 var(--ch-space-8);
	font-family: var(--ch-font-display);
	font-size: var(--ch-type-entity);
	line-height: var(--ch-type-entity-lh);
	font-weight: 600;
	color: var(--ch-color-text);
}

.ch-platform-place__copy {
	margin: 0;
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	line-height: var(--ch-type-small-lh);
	color: var(--ch-color-text-muted);
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
	overflow: hidden;
}

.ch-discovery--platform .ch-territorial-moment {
	margin: 0;
}

.ch-discovery--platform .ch-territorial-moment--without-media:not(.ch-territorial-moment--band) {
	min-height: 320px;
	align-items: center;
}

.ch-discovery--platform .ch-territorial-moment--without-media:not(.ch-territorial-moment--band) .ch-territorial-moment__content {
	padding-block: var(--ch-space-64);
}

.ch-discovery--platform .ch-territorial-moment:not(.ch-territorial-moment--band) .ch-territorial-moment__title {
	max-width: 22ch;
}

.ch-platform-when-band__stage {
	display: grid;
	width: 100%;
	min-width: 0;
	gap: 28px;
	align-items: stretch;
}

.ch-platform-when-band--split .ch-platform-when-band__stage {
	grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.42fr);
}

.ch-platform-when-band--territory-only .ch-platform-when-band__stage,
.ch-platform-when-band--events-only .ch-platform-when-band__stage {
	grid-template-columns: minmax(0, 1fr);
}

.ch-platform-when-band__territory {
	min-width: 0;
	min-height: 0;
	height: 100%;
}

.ch-platform-head--territory {
	margin: 0 0 var(--ch-space-24);
}

.ch-platform-territory__grid {
	display: grid;
	width: 100%;
	min-width: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	gap: 14px;
	grid-template-columns: minmax(0, 1fr);
}

.ch-platform-territory--count-2 .ch-platform-territory__grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ch-platform-territory--count-3plus .ch-platform-territory__grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ch-platform-territory__item {
	min-width: 0;
	min-height: 0;
}

.ch-discovery--platform .ch-platform-territory .ch-territorial-moment--band {
	height: auto;
	min-height: 0;
	aspect-ratio: 16 / 10;
	max-height: 280px;
}

.ch-discovery--platform .ch-platform-territory--count-1 .ch-territorial-moment--band {
	aspect-ratio: 16 / 6;
	max-height: 320px;
}

.ch-discovery--platform .ch-territorial-moment--band {
	width: 100%;
	height: 100%;
	min-height: 0;
	max-height: none;
	aspect-ratio: auto;
	overflow: hidden;
	border-radius: var(--ch-radius-panel);
	isolation: isolate;
}

.ch-discovery--platform .ch-territorial-moment--band .ch-territorial-moment__media {
	z-index: 0;
}

.ch-discovery--platform .ch-territorial-moment--band .ch-territorial-moment__media img {
	filter: var(--ch-media-grade);
}

.ch-discovery--platform .ch-territorial-moment--band .ch-territorial-moment__overlay {
	z-index: 1;
	background: var(--ch-overlay-card);
}

.ch-discovery--platform .ch-territorial-moment--band .ch-territorial-moment__overlay::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to right,
		color-mix(in srgb, var(--ch-color-vignette) 32%, transparent) 0%,
		transparent 62%
	);
	pointer-events: none;
}

.ch-discovery--platform .ch-territorial-moment--band .ch-territorial-moment__content {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-end;
	max-width: none;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 28px;
}

.ch-discovery--platform .ch-territorial-moment--band .ch-territorial-moment__kicker {
	color: var(--ch-color-text-on-dark);
	letter-spacing: var(--ch-type-kicker-tracking);
}

.ch-discovery--platform .ch-territorial-moment--band .ch-territorial-moment__title {
	max-width: none;
	margin: 0 0 10px;
	font-size: var(--ch-type-entity-lg);
	font-weight: 600;
	line-height: var(--ch-type-entity-lg-lh);
	color: var(--ch-color-text-on-dark);
	letter-spacing: -0.025em;
}

.ch-discovery--platform .ch-territorial-moment--band .ch-territorial-moment__copy {
	max-width: none;
	margin: 0;
	font-size: var(--ch-type-small);
	line-height: var(--ch-type-small-lh);
	color: color-mix(in srgb, var(--ch-color-text-on-dark) 90%, transparent);
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
}

.ch-platform-when {
	min-width: 0;
	display: flex;
	flex-direction: column;
}

.ch-platform-head--when {
	margin: 0 0 var(--ch-space-24);
}

.ch-platform-head--next {
	margin: 0 0 var(--ch-space-24);
}

.ch-platform-when__rail {
	position: relative;
	min-width: 0;
}

.ch-platform-when__track {
	display: grid;
	width: 100%;
	min-width: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	gap: 14px;
	grid-auto-flow: column;
	grid-template-rows: minmax(0, auto);
	grid-auto-columns: calc((100% - 28px) / 3);
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.ch-platform-when--count-1 .ch-platform-when__track {
	grid-auto-columns: calc((100% - 28px) / 3);
}

.ch-platform-when--count-2 .ch-platform-when__track {
	grid-auto-columns: calc((100% - 28px) / 3);
}

.ch-platform-when__track::-webkit-scrollbar {
	display: none;
}

.ch-platform-when__item {
	min-width: 0;
	scroll-snap-align: start;
}

.ch-platform-when__rail-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin-top: 16px;
	min-height: 36px;
}

.ch-platform-when__rail-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--ch-color-surface);
	color: var(--ch-color-forest-deep);
	box-shadow: 0 1px 4px color-mix(in srgb, var(--ch-color-forest-deep) 12%, transparent);
	cursor: pointer;
}

.ch-platform-when__rail-btn[hidden] {
	visibility: hidden;
}

.ch-platform-when__dots {
	display: flex;
	justify-content: center;
	gap: 8px;
}

.ch-platform-when__dots[hidden] {
	display: none;
}

.ch-platform-when__dot {
	width: 18px;
	height: 3px;
	padding: 0;
	border: 0;
	border-radius: 2px;
	background: var(--ch-color-sand);
	cursor: pointer;
}

.ch-platform-when__dot.is-active {
	background: var(--ch-color-forest-deep);
}

.ch-discovery--platform .ch-platform-when .ch-event-card--mosaic {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	height: 100%;
	padding: 0;
	gap: 0;
	overflow: hidden;
	background: var(--ch-color-surface);
	border-radius: var(--ch-radius-medium);
	box-shadow: 0 8px 24px color-mix(in srgb, var(--ch-color-forest-deep) 8%, transparent);
	cursor: default;
}

.ch-discovery--platform .ch-platform-when .ch-event-card__media {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: 0;
	background: var(--ch-color-forest-deep);
	isolation: isolate;
}

.ch-platform-when--count-1 .ch-event-card__media,
.ch-platform-when--count-2 .ch-event-card__media {
	aspect-ratio: 16 / 10;
}

.ch-discovery--platform .ch-platform-when .ch-event-card__photo {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
	filter: var(--ch-media-grade);
}

.ch-discovery--platform .ch-platform-when .ch-event-card--mosaic .ch-event-card__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: 14px 16px 16px;
}

.ch-discovery--platform .ch-platform-when .ch-event-card__tag {
	margin: 0 0 6px;
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-chip);
	font-weight: 700;
	letter-spacing: var(--ch-type-chip-tracking);
	line-height: var(--ch-type-chip-lh);
	text-transform: uppercase;
	color: var(--ch-color-forest);
}

.ch-discovery--platform .ch-platform-when .ch-event-card--mosaic .ch-event-card__title {
	margin: 0;
	font-family: var(--ch-font-display);
	font-size: var(--ch-type-entity);
	font-weight: 500;
	line-height: var(--ch-type-entity-lh);
	letter-spacing: var(--ch-type-section-tracking);
	color: var(--ch-color-title);
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
}

.ch-discovery--platform .ch-platform-when .ch-event-card__meta {
	margin: 6px 0 0;
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	font-weight: 400;
	line-height: var(--ch-type-small-lh);
	color: var(--ch-color-text-muted);
}

.ch-discovery--platform .ch-platform-when .ch-event-card--mosaic .ch-event-card__summary {
	margin: 8px 0 0;
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	font-weight: 400;
	line-height: var(--ch-type-small-lh);
	color: var(--ch-color-text-muted);
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
}

.ch-platform-stay {
	--ch-stay-accent: var(--ch-color-accent);
	background: var(--ch-color-ivory);
	padding-top: var(--ch-space-48);
	padding-bottom: var(--ch-space-48);
}

.ch-platform-stay__panel {
	display: flex;
	flex-direction: column;
	gap: 32px;
	max-width: var(--ch-content-max);
	margin: 0 auto;
	padding: 40px 0 8px;
	border-radius: 0;
	background: transparent;
	border-top: 1px solid var(--ch-color-border);
}

.ch-platform-stay__head {
	min-width: 0;
	margin: 0;
	max-width: none;
}

.ch-platform-stay__copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-width: 0;
	max-width: 46em;
}

.ch-platform-stay__kicker {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 10px;
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-kicker);
	line-height: var(--ch-type-kicker-lh);
	font-weight: 700;
	letter-spacing: var(--ch-type-kicker-tracking);
	text-transform: uppercase;
	color: var(--ch-stay-accent);
}

.ch-platform-stay__kicker-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	color: var(--ch-stay-accent);
	border: 1.5px solid var(--ch-stay-accent);
	border-radius: 50%;
}

.ch-platform-stay__kicker-icon svg {
	width: 12px;
	height: 12px;
}

.ch-platform-stay__title,
.ch-discovery--platform .ch-platform-stay h2 {
	margin: 0;
	font-family: var(--ch-font-display);
	font-size: var(--ch-type-section);
	font-weight: var(--ch-type-section-weight);
	line-height: var(--ch-type-section-lh);
	letter-spacing: var(--ch-type-section-tracking);
	color: var(--ch-color-title);
}

.ch-platform-stay__rule {
	display: block;
	width: 48px;
	height: 2px;
	margin: 14px 0 16px;
	background: var(--ch-stay-accent);
}

.ch-platform-stay__lede,
.ch-platform-stay__join {
	margin: 0;
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	line-height: var(--ch-type-small-lh);
	color: var(--ch-color-text-muted);
	max-width: 62ch;
}

.ch-platform-stay__inventory {
	margin: 0 0 14px;
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-kicker);
	font-weight: 700;
	letter-spacing: var(--ch-type-kicker-tracking);
	line-height: var(--ch-type-kicker-lh);
	text-transform: uppercase;
	color: var(--ch-color-text-muted);
}

.ch-platform-stay__cards {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ch-platform-stay__card-item {
	min-width: 0;
	display: flex;
}

.ch-stay-hotel,
.ch-discovery--platform a.ch-stay-hotel:link,
.ch-discovery--platform a.ch-stay-hotel:visited,
.ch-stay-invite {
	display: flex;
	flex-direction: column;
	width: 100%;
	background: var(--ch-color-surface);
	border-radius: var(--ch-radius-medium);
	overflow: hidden;
	box-shadow: 0 8px 24px color-mix(in srgb, var(--ch-color-forest-deep) 10%, transparent);
	color: inherit;
	text-decoration: none;
}

.ch-stay-hotel__media,
.ch-stay-invite__media {
	position: relative;
	aspect-ratio: 16 / 10;
	background: var(--ch-color-sand);
	overflow: hidden;
}

.ch-stay-hotel__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ch-stay-hotel__badge {
	position: absolute;
	top: 10px;
	left: 10px;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	min-height: 24px;
	padding: 0 9px;
	border-radius: var(--ch-radius-pill);
	background: color-mix(in srgb, var(--ch-color-forest-deep) 78%, transparent);
	color: var(--ch-color-text-on-dark);
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-chip);
	font-weight: 600;
}

.ch-stay-hotel__mark {
	position: absolute;
	top: 10px;
	right: 10px;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	min-height: 24px;
	padding: 0 8px;
	border-radius: var(--ch-radius-pill);
	background: var(--ch-stay-accent);
	color: var(--ch-color-text-on-dark);
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-chip);
	font-weight: 700;
	letter-spacing: var(--ch-type-chip-tracking);
	text-transform: uppercase;
}

.ch-stay-hotel__mark svg {
	width: 11px;
	height: 11px;
}

.ch-stay-hotel__body,
.ch-stay-invite__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 14px;
}

.ch-stay-hotel__title,
.ch-stay-invite__title {
	margin: 0;
	font-family: var(--ch-font-display);
	font-size: 18px;
	font-weight: 500;
	line-height: 1.25;
	letter-spacing: var(--ch-type-section-tracking);
	color: var(--ch-color-title);
}

.ch-stay-hotel__rating {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 8px 0 0;
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	color: var(--ch-color-text-muted);
}

.ch-stay-hotel__stars {
	color: var(--ch-stay-accent);
	letter-spacing: 1px;
}

.ch-stay-hotel__hook,
.ch-stay-invite__copy {
	margin: 8px 0 0;
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	line-height: var(--ch-type-small-lh);
	color: var(--ch-color-text-muted);
}

.ch-stay-hotel__price {
	margin: 12px 0 12px;
	font-family: var(--ch-font-sans);
}

.ch-stay-hotel__price-prefix {
	font-size: var(--ch-type-chip);
	color: var(--ch-color-text-muted);
}

.ch-stay-hotel__price-amount {
	margin-left: 4px;
	font-size: 20px;
	font-weight: 700;
	color: var(--ch-stay-accent);
}

.ch-stay-hotel__price-currency {
	font-size: var(--ch-type-chip);
	font-weight: 600;
	color: var(--ch-color-text-muted);
}

.ch-stay-hotel__btn,
.ch-stay-invite__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin-top: auto;
	min-height: 40px;
	padding: 0 12px;
	border-radius: var(--ch-radius-medium);
	background: var(--ch-color-accent);
	color: var(--ch-color-text-on-dark);
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	font-weight: 600;
}

.ch-discovery--platform a.ch-stay-hotel:hover .ch-stay-hotel__btn,
.ch-discovery--platform a.ch-stay-hotel:focus-visible .ch-stay-hotel__btn {
	background: var(--ch-color-accent-hover);
}

.ch-stay-invite__media {
	display: flex;
	align-items: center;
	justify-content: center;
	background:
		linear-gradient(180deg, color-mix(in srgb, var(--ch-stay-accent) 18%, var(--ch-color-sand)) 0%, var(--ch-color-sand) 100%);
}

.ch-stay-invite__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	border: 1.5px solid var(--ch-stay-accent);
	color: var(--ch-stay-accent);
	background: var(--ch-color-surface);
}

.ch-stay-invite__icon svg {
	width: 24px;
	height: 24px;
}

.ch-stay-invite__kicker {
	margin: 0 0 6px;
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-chip);
	font-weight: 700;
	letter-spacing: var(--ch-type-chip-tracking);
	text-transform: uppercase;
	color: var(--ch-stay-accent);
}

.ch-platform-next {
	padding-top: var(--ch-space-48);
	padding-bottom: var(--ch-space-48);
}

.ch-discovery--platform .ch-next-discovery__list {
	width: 100%;
	min-width: 0;
	gap: 14px;
}

.ch-discovery--platform .ch-next-discovery-card,
.ch-discovery--platform a.ch-next-discovery-card:link,
.ch-discovery--platform a.ch-next-discovery-card:visited,
.ch-discovery--platform a.ch-next-discovery-card:hover,
.ch-discovery--platform a.ch-next-discovery-card:focus,
.ch-discovery--platform a.ch-next-discovery-card:active {
	min-width: 0;
	width: 100%;
	max-width: 100%;
}

.ch-discovery--platform .ch-next-discovery-card--with-media,
.ch-discovery--platform a.ch-next-discovery-card--with-media:link,
.ch-discovery--platform a.ch-next-discovery-card--with-media:visited,
.ch-discovery--platform a.ch-next-discovery-card--with-media:hover,
.ch-discovery--platform a.ch-next-discovery-card--with-media:focus,
.ch-discovery--platform a.ch-next-discovery-card--with-media:active {
	align-items: stretch;
	aspect-ratio: 16 / 10;
	min-height: 0;
	padding: 22px;
	border-radius: var(--ch-radius-medium);
}

.ch-discovery--platform .ch-next-discovery-card__overlay {
	background:
		linear-gradient(90deg, color-mix(in srgb, var(--ch-color-vignette) 58%, transparent) 0%, transparent 68%),
		var(--ch-overlay-card);
}

.ch-discovery--platform .ch-next-discovery-card__copy {
	flex: 1;
	justify-content: space-between;
	padding-right: 0;
	height: auto;
}

.ch-discovery--platform .ch-next-discovery-card__lead {
	max-width: 22em;
}

.ch-discovery--platform .ch-next-discovery-card__title {
	font-size: var(--ch-type-entity-lg);
	line-height: var(--ch-type-entity-lg-lh);
	font-weight: 500;
	letter-spacing: var(--ch-type-section-tracking);
}

.ch-discovery--platform .ch-next-discovery-card__identity {
	font-size: var(--ch-type-small);
	line-height: var(--ch-type-small-lh);
}

.ch-discovery--platform .ch-next-discovery-card__meta {
	margin-top: 16px;
	padding-right: 52px;
}

.ch-discovery--platform .ch-next-discovery-card--with-media .ch-next-discovery-card__cue {
	background: color-mix(in srgb, var(--ch-color-vignette) 35%, transparent);
	border: 1.5px solid var(--ch-color-text-on-dark);
	color: var(--ch-color-text-on-dark);
}

.ch-discovery--platform .ch-next-discovery-card__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.ch-platform-utils {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ch-space-8) var(--ch-space-16);
	padding-top: var(--ch-space-24);
	padding-bottom: var(--ch-space-24);
}

.ch-platform-utils__link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 var(--ch-space-4);
	color: var(--ch-color-forest-deep);
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	font-weight: 600;
	text-decoration: none;
}

.ch-platform-utils__link:hover,
.ch-platform-utils__link:focus-visible {
	text-decoration: underline;
	text-underline-offset: 0.16em;
}

@media (max-width: 1024px) {
	.ch-platform-places--has-rail .ch-platform-places__track,
	.ch-platform-places--has-rail.ch-platform-places--has-feature .ch-platform-places__track {
		grid-auto-columns: calc((100% - 28px) / 3);
		grid-template-rows: auto;
		height: auto;
	}

	.ch-platform-places--has-rail .ch-platform-places__track > .ch-platform-places__item {
		aspect-ratio: 4 / 3;
		height: auto;
		min-height: 240px;
	}

	.ch-platform-stay__cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 1023px) {
	.ch-discovery--platform .ch-destination-hero--with-media .ch-destination-hero__media {
		min-height: 480px;
		max-height: 640px;
	}

	.ch-discovery .ch-destination-hero--has-profile .ch-destination-hero__content {
		grid-template-columns: minmax(0, 1fr);
		align-items: stretch;
	}

	.ch-discovery--platform .ch-destination-hero--has-profile.ch-destination-hero--with-media .ch-destination-hero__media {
		min-height: 0;
		max-height: none;
		aspect-ratio: auto;
	}

	.ch-discovery .ch-destination-hero--has-profile.ch-destination-hero--with-media .ch-destination-hero__content {
		position: relative;
		inset: auto;
		left: auto;
		right: auto;
		bottom: auto;
		min-height: 0;
		padding-block: var(--ch-space-32) var(--ch-space-32);
	}

	.ch-platform-why__grid,
	.ch-platform-feature,
	.ch-platform-places--has-feature .ch-platform-places__stage,
	.ch-platform-places--has-feature.ch-platform-places--count-3:not(.ch-platform-places--has-rail) .ch-platform-places__stage,
	.ch-platform-places--has-feature.ch-platform-places--count-4:not(.ch-platform-places--has-rail) .ch-platform-places__stage,
	.ch-platform-places--has-feature.ch-platform-places--count-5:not(.ch-platform-places--has-rail) .ch-platform-places__stage,
	.ch-platform-places--has-rail .ch-platform-places__stage,
	.ch-platform-places--has-rail.ch-platform-places--has-feature .ch-platform-places__stage,
	.ch-platform-when-band--split .ch-platform-when-band__stage {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto;
		max-height: none;
	}

	.ch-platform-places--has-feature .ch-platform-places__item--featured {
		aspect-ratio: 16 / 9;
		height: auto;
	}

	.ch-platform-places--has-feature:not(.ch-platform-places--has-rail) .ch-platform-places__grid .ch-platform-places__item {
		aspect-ratio: 16 / 10;
		height: auto;
		min-height: 220px;
	}

	.ch-platform-places--has-rail .ch-platform-places__track,
	.ch-platform-places--has-rail.ch-platform-places--has-feature .ch-platform-places__track {
		grid-auto-columns: calc((100% - 14px) / 2);
		grid-template-rows: auto;
		height: auto;
	}

	.ch-platform-places--has-rail .ch-platform-places__track > .ch-platform-places__item {
		aspect-ratio: 4 / 3;
		height: auto;
		min-height: 240px;
	}

	.ch-platform-places--has-feature:not(.ch-platform-places--has-rail) .ch-platform-places__grid,
	.ch-platform-places--has-feature.ch-platform-places--count-3:not(.ch-platform-places--has-rail) .ch-platform-places__grid,
	.ch-platform-places--has-feature.ch-platform-places--count-4:not(.ch-platform-places--has-rail) .ch-platform-places__grid,
	.ch-platform-places--has-feature.ch-platform-places--count-5:not(.ch-platform-places--has-rail) .ch-platform-places__grid,
	.ch-platform-places--equal.ch-platform-places--count-3 .ch-platform-places__grid,
	.ch-platform-places--equal.ch-platform-places--count-4 .ch-platform-places__grid,
	.ch-platform-places--equal.ch-platform-places--count-5 .ch-platform-places__grid,
	.ch-platform-places--equal.ch-platform-places--count-6 .ch-platform-places__grid,
	.ch-platform-places--equal.ch-platform-places--count-7plus .ch-platform-places__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: auto;
	}

	.ch-platform-why__reasons {
		max-width: none;
		column-gap: var(--ch-space-32);
		row-gap: var(--ch-space-32);
		padding-left: 0;
		border-left: 0;
	}

	.ch-platform-why__reasons--count-4,
	.ch-platform-why__reasons--count-5 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ch-platform-reason + .ch-platform-reason::before {
		display: none;
	}

	.ch-platform-why__reasons--count-2 .ch-platform-reason:not(:first-child),
	.ch-platform-why__reasons--count-3 .ch-platform-reason:not(:first-child),
	.ch-platform-why__reasons--count-4 .ch-platform-reason:nth-child(2n),
	.ch-platform-why__reasons--count-5 .ch-platform-reason:nth-child(2n) {
		padding-left: var(--ch-space-24);
		border-left: 1px solid var(--ch-color-border);
	}

	.ch-platform-place-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ch-platform-when--count-1 .ch-platform-when__track,
	.ch-platform-when--count-3plus .ch-platform-when__track {
		grid-auto-columns: calc((100% - 14px) / 2);
	}

	.ch-platform-territory--count-3plus .ch-platform-territory__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ch-discovery--platform .ch-territorial-moment--band {
		min-height: 280px;
		height: auto;
	}

	.ch-platform-feature__media {
		aspect-ratio: var(--ch-ratio-card);
	}

	.ch-platform-stay__panel {
		gap: 24px;
		padding: 28px 0 0;
	}

	.ch-platform-stay__copy {
		max-width: none;
	}

	.ch-platform-stay__cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.ch-discovery--platform .ch-destination-hero--with-media .ch-destination-hero__media {
		aspect-ratio: 4 / 5;
		min-height: 420px;
		max-height: 620px;
	}

	.ch-platform-why,
	.ch-platform-places,
	.ch-platform-live,
	.ch-platform-territory,
	.ch-platform-when-band,
	.ch-platform-stay,
	.ch-platform-next,
	.ch-platform-utils {
		padding: var(--ch-space-32) var(--ch-gutter);
	}

	.ch-platform-why__facts,
	.ch-platform-why__reasons,
	.ch-platform-place-grid,
	.ch-platform-places--has-feature .ch-platform-places__stage,
	.ch-platform-places--has-feature.ch-platform-places--count-3:not(.ch-platform-places--has-rail) .ch-platform-places__stage,
	.ch-platform-places--has-feature.ch-platform-places--count-4:not(.ch-platform-places--has-rail) .ch-platform-places__stage,
	.ch-platform-places--has-feature.ch-platform-places--count-5:not(.ch-platform-places--has-rail) .ch-platform-places__stage,
	.ch-platform-places--has-rail .ch-platform-places__stage,
	.ch-platform-places--has-rail.ch-platform-places--has-feature .ch-platform-places__stage,
	.ch-platform-places--has-feature:not(.ch-platform-places--has-rail) .ch-platform-places__grid,
	.ch-platform-places--has-feature.ch-platform-places--count-3:not(.ch-platform-places--has-rail) .ch-platform-places__grid,
	.ch-platform-places--has-feature.ch-platform-places--count-4:not(.ch-platform-places--has-rail) .ch-platform-places__grid,
	.ch-platform-places--has-feature.ch-platform-places--count-5:not(.ch-platform-places--has-rail) .ch-platform-places__grid,
	.ch-platform-places--equal.ch-platform-places--count-2 .ch-platform-places__grid,
	.ch-platform-places--equal.ch-platform-places--count-3 .ch-platform-places__grid,
	.ch-platform-places--equal.ch-platform-places--count-4 .ch-platform-places__grid,
	.ch-platform-places--equal.ch-platform-places--count-5 .ch-platform-places__grid,
	.ch-platform-places--equal.ch-platform-places--count-6 .ch-platform-places__grid,
	.ch-platform-places--equal.ch-platform-places--count-7plus .ch-platform-places__grid,
	.ch-platform-territory__grid,
	.ch-platform-territory--count-2 .ch-platform-territory__grid,
	.ch-platform-territory--count-3plus .ch-platform-territory__grid {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto;
		max-width: none;
	}

	.ch-platform-head--places,
	.ch-platform-head--territory,
	.ch-platform-head--when,
	.ch-platform-head--next {
		flex-wrap: wrap;
	}

	.ch-platform-when__track,
	.ch-platform-when--count-1 .ch-platform-when__track,
	.ch-platform-when--count-2 .ch-platform-when__track,
	.ch-platform-when--count-3plus .ch-platform-when__track {
		grid-auto-flow: column;
		grid-template-rows: minmax(0, auto);
		grid-auto-columns: 100%;
		overflow-x: auto;
	}

	.ch-platform-when__item {
		min-width: 100%;
	}

	.ch-discovery--platform .ch-territorial-moment--band .ch-territorial-moment__title {
		font-size: 24px;
	}

	.ch-platform-places--has-feature .ch-platform-places__item--featured {
		aspect-ratio: 16 / 10;
	}

	.ch-platform-places--has-rail .ch-platform-places__track {
		grid-auto-flow: column;
		grid-template-rows: auto;
		grid-auto-columns: 100%;
		overflow-x: auto;
		height: auto;
	}

	.ch-platform-places--has-rail .ch-platform-places__track > .ch-platform-places__item {
		min-height: 280px;
	}

	.ch-discovery--platform .ch-platform-places .ch-place-card--featured .ch-place-card__title {
		font-size: 26px;
	}

	.ch-platform-reason,
	.ch-platform-reason:nth-child(2n),
	.ch-platform-why__reasons--count-2 .ch-platform-reason:not(:first-child),
	.ch-platform-why__reasons--count-3 .ch-platform-reason:not(:first-child),
	.ch-platform-why__reasons--count-4 .ch-platform-reason:nth-child(2n),
	.ch-platform-why__reasons--count-5 .ch-platform-reason:nth-child(2n) {
		padding: var(--ch-space-16) 0;
		border-left: 0;
	}

	.ch-platform-reason {
		border-top: 1px solid var(--ch-color-border);
	}

	.ch-platform-reason:first-child {
		padding-top: 0;
		border-top: 0;
	}

	.ch-platform-feature__body {
		padding: var(--ch-space-24);
	}

	.ch-platform-stay__panel {
		padding: 16px 0 0;
		border-radius: 0;
	}

	.ch-platform-stay__cards {
		grid-template-columns: minmax(0, 1fr);
	}

	.ch-platform-nav {
		overflow-x: auto;
		flex-wrap: nowrap;
	}

	.ch-platform-nav__link {
		flex: 0 0 auto;
	}

	.ch-discovery--platform .ch-next-discovery-card--with-media {
		min-height: 0;
		aspect-ratio: 16 / 10;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ch-discovery--platform {
		scroll-behavior: auto;
	}
}

/* ==========================================================================
   Subregion Detail — canonical pattern
   Scoped to .ch-discovery--subregion. Reuses platform tokens.
   ========================================================================== */

.ch-discovery--subregion .ch-destination-hero__kicker {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35em;
	text-decoration: none;
	white-space: normal;
	overflow-wrap: anywhere;
}

.ch-discovery--subregion .ch-destination-hero__kicker a {
	color: inherit;
	text-decoration: none;
}

.ch-discovery--subregion .ch-destination-hero__kicker a:hover,
.ch-discovery--subregion .ch-destination-hero__kicker a:focus-visible {
	text-decoration: underline;
}

.ch-discovery--subregion .ch-subregion-intro__body {
	margin: 0;
	max-width: 36em;
	color: var(--ch-color-text-muted);
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-body);
	line-height: var(--ch-type-body-lh);
}

.ch-discovery--subregion .ch-subregion-destinations,
.ch-discovery--subregion .ch-subregion-experiences,
.ch-discovery--subregion .ch-subregion-cluster,
.ch-discovery--subregion .ch-subregion-continue {
	width: min(1240px, calc(100% - 48px));
	margin-inline: auto;
	padding-block: 56px 8px;
}

.ch-discovery--subregion .ch-subregion-destinations__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px 24px;
	margin-bottom: 20px;
}

.ch-discovery--subregion .ch-subregion-destinations__copy {
	margin: 0;
	min-width: 0;
}

.ch-discovery--subregion .ch-subregion-destinations__toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex: 1 1 220px;
	min-width: 0;
}

.ch-discovery--subregion .ch-subregion-destinations__count {
	margin: 0;
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	line-height: var(--ch-type-small-lh);
	color: var(--ch-color-text-muted);
}

.ch-discovery--subregion .ch-subregion-destinations__rail,
.ch-discovery--subregion .ch-subregion-continue__rail {
	min-width: 0;
}

.ch-discovery--subregion .ch-subregion-destinations__track,
.ch-discovery--subregion .ch-subregion-continue__grid {
	display: grid;
	width: 100%;
	min-width: 0;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ch-discovery--subregion .ch-subregion-destinations--count-1 .ch-subregion-destinations__track,
.ch-discovery--subregion .ch-subregion-continue--count-1 .ch-subregion-continue__grid {
	grid-template-columns: minmax(0, 420px);
}

.ch-discovery--subregion .ch-subregion-destinations--count-2 .ch-subregion-destinations__track,
.ch-discovery--subregion .ch-subregion-continue--count-2 .ch-subregion-continue__grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ch-discovery--subregion .ch-subregion-destinations--count-3 .ch-subregion-destinations__track,
.ch-discovery--subregion .ch-subregion-continue--count-3 .ch-subregion-continue__grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ch-discovery--subregion .ch-subregion-destinations--count-4 .ch-subregion-destinations__track {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ch-discovery--subregion .ch-subregion-destinations--has-rail .ch-subregion-destinations__track,
.ch-discovery--subregion .ch-subregion-continue--has-rail .ch-subregion-continue__grid {
	grid-auto-flow: column;
	grid-template-columns: none;
	grid-template-rows: minmax(0, auto);
	grid-auto-columns: calc((100% - 28px) / 3.2);
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
	-webkit-overflow-scrolling: touch;
}

.ch-discovery--subregion .ch-subregion-destinations__item,
.ch-discovery--subregion .ch-subregion-continue__item {
	min-width: 0;
}

.ch-discovery--subregion .ch-subregion-destinations--has-rail .ch-subregion-destinations__item,
.ch-discovery--subregion .ch-subregion-continue--has-rail .ch-subregion-continue__item {
	scroll-snap-align: start;
}

.ch-discovery--subregion .ch-subregion-destinations__item .ch-destination-card,
.ch-discovery--subregion .ch-subregion-destinations__item a.ch-destination-card,
.ch-discovery--subregion .ch-subregion-continue__item .ch-destination-card,
.ch-discovery--subregion .ch-subregion-continue__item a.ch-destination-card {
	height: 100%;
	min-width: 0;
	width: 100%;
}

.ch-discovery--subregion .ch-subregion-continue__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 12px 24px;
	margin-bottom: 20px;
}

.ch-discovery--subregion .ch-subregion-continue__copy {
	margin: 0;
	min-width: 0;
}

.ch-discovery--subregion .ch-subregion-continue__toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex: 1 1 220px;
	min-width: 0;
}

.ch-discovery--subregion .ch-subregion-continue__count {
	margin: 0;
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	line-height: var(--ch-type-small-lh);
	color: var(--ch-color-text-muted);
}

.ch-discovery--subregion .ch-subregion-destinations__rail-nav,
.ch-discovery--subregion .ch-subregion-continue__rail-nav {
	display: flex;
	flex: 0 0 auto;
	justify-content: flex-end;
	gap: 8px;
}

.ch-discovery--subregion .ch-subregion-destinations__rail-btn,
.ch-discovery--subregion .ch-subregion-continue__rail-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--ch-color-surface);
	color: var(--ch-color-forest-deep);
	box-shadow: 0 1px 4px color-mix(in srgb, var(--ch-color-forest-deep) 12%, transparent);
	cursor: pointer;
}

.ch-discovery--subregion .ch-subregion-destinations__rail-btn[hidden],
.ch-discovery--subregion .ch-subregion-continue__rail-btn[hidden] {
	display: none;
}

.ch-discovery--subregion .ch-subregion-experiences__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ch-discovery--subregion .ch-subregion-experiences--count-1 .ch-subregion-experiences__grid {
	grid-template-columns: minmax(0, 280px);
}

.ch-discovery--subregion .ch-subregion-experiences--count-2 .ch-subregion-experiences__grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ch-discovery--subregion .ch-subregion-experiences--count-3 .ch-subregion-experiences__grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ch-discovery--subregion .ch-subregion-experiences__item {
	min-width: 0;
}

.ch-discovery--subregion .ch-subregion-experiences__item .ch-experience-card,
.ch-discovery--subregion .ch-subregion-experiences__item a.ch-experience-card {
	height: 100%;
	width: 100%;
}

.ch-discovery--subregion .ch-subregion-live-card,
.ch-discovery--subregion a.ch-subregion-live-card {
	display: grid;
	height: 100%;
	overflow: hidden;
	color: inherit;
	text-decoration: none;
	background: transparent;
}

.ch-discovery--subregion .ch-subregion-live-card__media {
	display: block;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: 4px;
	background: color-mix(in srgb, var(--ch-color-forest-deep) 12%, var(--ch-color-ivory));
}

.ch-discovery--subregion .ch-subregion-live-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: var(--ch-media-grade);
}

.ch-discovery--subregion .ch-subregion-live-card__copy {
	display: grid;
	gap: 8px;
	padding: 14px 2px 0;
}

.ch-discovery--subregion .ch-subregion-live-card__title {
	margin: 0;
	font-family: var(--ch-font-display);
	font-size: 22px;
	font-weight: 450;
	line-height: 1.25;
}

.ch-discovery--subregion .ch-subregion-live-card__lede {
	display: -webkit-box;
	margin: 0;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	color: var(--ch-color-text-muted);
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	line-height: var(--ch-type-small-lh);
}

.ch-discovery--subregion .ch-subregion-live-card__tag {
	font-family: var(--ch-font-sans);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ch-color-forest);
}

.ch-discovery--subregion .ch-subregion-cluster {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 40px 48px;
	align-items: start;
	padding-block: 48px 24px;
}

.ch-discovery--subregion .ch-subregion-cluster--pair {
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.ch-discovery--subregion .ch-subregion-cluster--pair .ch-subregion-cluster__col--events {
	padding-left: 48px;
	border-left: 1px solid color-mix(in srgb, var(--ch-color-forest-deep) 10%, transparent);
}

.ch-discovery--subregion .ch-subregion-cluster__title {
	margin: 0 0 22px;
	font-family: var(--ch-font-display);
	font-size: var(--ch-type-section);
	font-weight: var(--ch-type-section-weight);
	line-height: var(--ch-type-section-lh);
}

.ch-discovery--subregion .ch-subregion-places__list,
.ch-discovery--subregion .ch-subregion-events__list {
	display: grid;
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ch-discovery--subregion .ch-subregion-place,
.ch-discovery--subregion .ch-subregion-event__link {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr);
	gap: 14px;
	align-items: start;
}

.ch-discovery--subregion .ch-subregion-event__link {
	border-radius: 4px;
	color: inherit;
	text-decoration: none;
}

.ch-discovery--subregion .ch-subregion-event__link:focus-visible {
	outline: 2px solid var(--ch-color-forest);
	outline-offset: 3px;
}

.ch-discovery--subregion .ch-subregion-place__thumb,
.ch-discovery--subregion .ch-subregion-event__date {
	width: 72px;
	height: 72px;
	overflow: hidden;
	border-radius: 4px;
	background: color-mix(in srgb, var(--ch-color-forest) 12%, var(--ch-color-ivory));
}

.ch-discovery--subregion .ch-subregion-place__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ch-discovery--subregion .ch-subregion-place__copy,
.ch-discovery--subregion .ch-subregion-event__copy {
	display: grid;
	align-content: center;
	gap: 4px;
	min-width: 0;
	min-height: 72px;
}

.ch-discovery--subregion .ch-subregion-place__name,
.ch-discovery--subregion .ch-subregion-event__name {
	font-family: var(--ch-font-sans);
	font-size: 15px;
	font-weight: 650;
	line-height: 1.3;
	color: var(--ch-color-text);
}

.ch-discovery--subregion .ch-subregion-place__desc,
.ch-discovery--subregion .ch-subregion-event__place,
.ch-discovery--subregion .ch-subregion-event__desc {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	color: var(--ch-color-text-muted);
	font-family: var(--ch-font-sans);
	font-size: 13px;
	line-height: 1.45;
}

.ch-discovery--subregion .ch-subregion-event__desc {
	-webkit-line-clamp: 1;
}

.ch-discovery--subregion .ch-subregion-event__date {
	display: grid;
	place-content: center;
	background: color-mix(in srgb, var(--ch-color-forest) 16%, var(--ch-color-ivory));
	color: var(--ch-color-forest);
	text-align: center;
}

.ch-discovery--subregion .ch-subregion-event__day {
	font-family: var(--ch-font-display);
	font-size: 22px;
	line-height: 1;
}

.ch-discovery--subregion .ch-subregion-event__month {
	font-family: var(--ch-font-sans);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.ch-discovery--subregion .ch-subregion-event__open {
	font-family: var(--ch-font-display);
	font-size: 20px;
	line-height: 1;
	opacity: 0.55;
}

@media (max-width: 1100px) {
	.ch-discovery--subregion .ch-subregion-destinations--has-rail .ch-subregion-destinations__track,
	.ch-discovery--subregion .ch-subregion-continue--has-rail .ch-subregion-continue__grid {
		grid-auto-columns: calc((100% - 14px) / 2.15);
	}

	.ch-discovery--subregion .ch-subregion-destinations--count-3 .ch-subregion-destinations__track,
	.ch-discovery--subregion .ch-subregion-continue--count-3 .ch-subregion-continue__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ch-discovery--subregion .ch-subregion-experiences__grid,
	.ch-discovery--subregion .ch-subregion-experiences--count-3 .ch-subregion-experiences__grid,
	.ch-discovery--subregion .ch-subregion-experiences--count-4 .ch-subregion-experiences__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ch-discovery--subregion .ch-subregion-cluster--pair {
		grid-template-columns: minmax(0, 1fr);
	}

	.ch-discovery--subregion .ch-subregion-cluster--pair .ch-subregion-cluster__col--events {
		padding-left: 0;
		padding-top: 8px;
		border-left: 0;
		border-top: 1px solid color-mix(in srgb, var(--ch-color-forest-deep) 10%, transparent);
	}
}

@media (max-width: 720px) {
	.ch-discovery--subregion .ch-subregion-destinations,
	.ch-discovery--subregion .ch-subregion-experiences,
	.ch-discovery--subregion .ch-subregion-cluster,
	.ch-discovery--subregion .ch-subregion-continue {
		width: calc(100% - 32px);
		padding-block: 40px 4px;
	}

	.ch-discovery--subregion .ch-destination-hero__content {
		grid-template-columns: 1fr;
	}

	.ch-discovery--subregion .ch-destination-hero__facts {
		order: 2;
	}

	.ch-discovery--subregion .ch-subregion-destinations--has-rail .ch-subregion-destinations__track,
	.ch-discovery--subregion .ch-subregion-continue--has-rail .ch-subregion-continue__grid {
		grid-auto-columns: calc(78vw - 8px);
	}

	.ch-discovery--subregion .ch-subregion-destinations--count-2 .ch-subregion-destinations__track,
	.ch-discovery--subregion .ch-subregion-destinations--count-3 .ch-subregion-destinations__track,
	.ch-discovery--subregion .ch-subregion-destinations--count-4 .ch-subregion-destinations__track,
	.ch-discovery--subregion .ch-subregion-continue--count-2 .ch-subregion-continue__grid,
	.ch-discovery--subregion .ch-subregion-continue--count-3 .ch-subregion-continue__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.ch-discovery--subregion .ch-subregion-destinations__head,
	.ch-discovery--subregion .ch-subregion-continue__head {
		flex-direction: column;
		align-items: stretch;
	}

	.ch-discovery--subregion .ch-subregion-destinations__toolbar,
	.ch-discovery--subregion .ch-subregion-continue__toolbar {
		flex: 1 1 auto;
	}

	.ch-discovery--subregion .ch-subregion-experiences__grid,
	.ch-discovery--subregion .ch-subregion-experiences--count-2 .ch-subregion-experiences__grid,
	.ch-discovery--subregion .ch-subregion-experiences--count-3 .ch-subregion-experiences__grid,
	.ch-discovery--subregion .ch-subregion-experiences--count-4 .ch-subregion-experiences__grid {
		overflow-x: auto;
		grid-auto-flow: column;
		grid-template-columns: none;
		grid-auto-columns: calc(78vw - 8px);
		scroll-snap-type: x mandatory;
		padding-bottom: 8px;
	}

	.ch-discovery--subregion .ch-subregion-experiences__item {
		scroll-snap-align: start;
	}
}

.ch-discovery > .ch-home-rail {
	width: 100%;
	max-width: var(--ch-content-max);
	margin: 0 auto;
	padding-block: var(--ch-space-48);
	font-size: 16px;
}

.ch-detail-context {
	width: 100%;
	max-width: var(--ch-content-max);
	margin: 0 auto;
	padding: 14px var(--ch-gutter);
}

.ch-detail-context__back {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--ch-color-forest);
	font-family: var(--ch-font-sans);
	font-size: var(--ch-type-small);
	font-weight: 700;
	text-decoration: none;
}

.ch-detail-context__back:hover,
.ch-detail-context__back:focus-visible {
	text-decoration: underline;
	text-underline-offset: .18em;
}

/* Keep legacy/public rails on the same top-right control pattern. */
.ch-platform-places__rail-nav,
.ch-platform-when__rail-nav {
	position: absolute;
	top: -56px;
	right: 0;
	z-index: 3;
	justify-content: flex-end;
	gap: 7px;
	min-height: 34px;
	margin: 0;
}

.ch-platform-places__rail-btn,
.ch-platform-when__rail-btn,
.ch-discovery--subregion .ch-subregion-destinations__rail-btn,
.ch-discovery--subregion .ch-subregion-continue__rail-btn {
	width: 34px;
	height: 34px;
	border: 1px solid color-mix(in srgb, var(--ch-color-live) 16%, transparent);
	background: color-mix(in srgb, var(--ch-color-surface) 94%, transparent);
	color: var(--ch-color-live);
	box-shadow: none;
}

.ch-platform-places__rail-btn:disabled,
.ch-platform-when__rail-btn:disabled,
.ch-discovery--subregion .ch-subregion-destinations__rail-btn:disabled,
.ch-discovery--subregion .ch-subregion-continue__rail-btn:disabled {
	border-color: color-mix(in srgb, var(--ch-color-live) 12%, transparent);
	color: color-mix(in srgb, var(--ch-color-live) 28%, transparent);
	opacity: 1;
}

/* ==========================================================================
   DESTINATION DETAIL V2 — NARRATIVE BODY
   región → subregión → destino → (enamorarse del territorio) → hospedaje.
   El menú, la búsqueda, el hero y el footer permanecen congelados — estas
   reglas solo tocan el cuerpo: por qué enamora, lugares, experiencias,
   eventos, sigue explorando, dónde hospedarte. Cada beat tiene su propia
   identidad visual a propósito: ninguna sección repite la fórmula
   "foto + degradado oscuro + texto" de otra.
   ========================================================================== */

.ch-discovery--destination-detail-v2 {
	--ch-home-accent-start: #ff7a59;
	--ch-home-accent-end: #ffb347;
	--ch-detail-section-title: clamp(27px, 2.1vw, 34px);
}

.ch-discovery--destination-detail-v2 .ch-detail-context {
	padding-block: 8px;
}

/* -- 1. Por qué enamora ---------------------------------------------------- */

:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why {
	--ch-destination-why-accent: var(--ch-color-live);
	padding-block: clamp(24px, 2.5vw, 34px);
	border-bottom: 0;
	background: var(--ch-color-ivory);
}

:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why__inner {
	display: grid;
	grid-template-columns: minmax(245px, 320px) minmax(0, 1fr);
	gap: clamp(24px, 3.2vw, 48px);
	align-items: stretch;
}

:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why__intro {
	position: relative;
	padding-right: clamp(8px, 1.5vw, 20px);
}

:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why__intro::after {
	display: block;
	width: 44px;
	height: 2px;
	margin-top: 18px;
	background: var(--ch-destination-why-accent);
	content: '';
}

:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why__kicker {
	margin: 0 0 12px;
	font-family: var(--ch-font-sans);
	font-size: 11px;
	font-weight: 750;
	line-height: 1.35;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: var(--ch-destination-why-accent);
}

:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why__title {
	margin: 0;
	max-width: 19ch;
	font-family: var(--ch-font-display);
	font-size: clamp(27px, 2.05vw, 32px);
	font-weight: 520;
	font-optical-sizing: auto;
	line-height: 1.08;
	letter-spacing: -.025em;
	color: var(--ch-color-text);
}

:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why__title > span {
	display: block;
}

:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why__text {
	margin: 14px 0 0;
	max-width: none;
	font-family: var(--ch-font-sans);
	font-size: 14px;
	line-height: 1.45;
	color: var(--ch-color-text);
}

:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why__motifs {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin: 0;
	padding: 0;
	border-left: 1px solid var(--ch-color-border);
	list-style: none;
}

:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why__motifs--count-1 {
	grid-template-columns: minmax(0, 1fr);
}

:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why__motifs--count-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why__motifs--count-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why__motif {
	min-width: 0;
	padding: 0 clamp(14px, 1.65vw, 22px);
	border-left: 1px solid var(--ch-color-border);
	background: none;
}

:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why__motif:first-child {
	border-left: 0;
}

:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	margin-bottom: 12px;
	border-radius: 50%;
	background: color-mix(in srgb, var(--ch-destination-why-accent) 9%, var(--ch-color-ivory));
	color: var(--ch-destination-why-accent);
}

:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why__icon svg {
	width: 23px;
	height: 23px;
}

:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why__motif-copy h3 {
	margin: 0;
	font-family: var(--ch-font-sans);
	font-size: 14px;
	font-weight: 750;
	line-height: 1.3;
	color: var(--ch-color-text);
}

:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why__motif-copy p {
	margin: 7px 0 0;
	font-family: var(--ch-font-sans);
	font-size: 12.5px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--ch-color-text-muted);
}

/* -- 2. Lugares para conocer ------------------------------------------------ */

.ch-discovery--destination-detail-v2 .ch-destination-places {
	padding-block: clamp(28px, 3vw, 40px);
	background: var(--ch-color-ivory);
}

.ch-discovery--destination-detail-v2 .ch-destination-places > .ch-container {
	display: block;
}

.ch-discovery--destination-detail-v2 .ch-destination-places__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	margin: 0 0 14px;
	padding: 0;
}

.ch-discovery--destination-detail-v2 .ch-destination-places__head::before {
	display: none;
}

.ch-discovery--destination-detail-v2 .ch-destination-places__head h2 {
	margin: 0;
	font-family: var(--ch-font-sans);
	font-size: clamp(13px, 1.1vw, 15px);
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ch-color-live);
}

.ch-discovery--destination-detail-v2 .ch-destination-places__all {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	min-height: 44px;
	margin: -10px 0;
	padding: 0;
	border: 0;
	background: none;
	color: var(--ch-color-text);
	font-family: var(--ch-font-sans);
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
}

.ch-discovery--destination-detail-v2 .ch-destination-places__all span {
	font-size: 18px;
	transition: transform .2s ease;
}

.ch-discovery--destination-detail-v2 .ch-destination-places__all:hover span,
.ch-discovery--destination-detail-v2 .ch-destination-places__all:focus-visible span {
	transform: translateX(3px);
}

.ch-discovery--destination-detail-v2 .ch-destination-places__viewport {
	position: relative;
}

.ch-discovery--destination-detail-v2 .ch-destination-places__track {
	display: flex;
	gap: 14px;
	margin: 0;
	padding: 0 0 8px;
	overflow-x: auto;
	list-style: none;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}

.ch-discovery--destination-detail-v2 .ch-destination-places__track::-webkit-scrollbar {
	display: none;
}

.ch-discovery--destination-detail-v2 .ch-destination-places__item {
	flex: 0 0 calc((100% - 42px) / 4);
	min-width: 0;
	scroll-snap-align: start;
}

.ch-discovery--destination-detail-v2 .ch-destination-places__item .ch-place-card,
.ch-discovery--destination-detail-v2 .ch-destination-places__item .ch-place-card__surface {
	width: 100%;
	height: 100%;
}

.ch-discovery--destination-detail-v2 .ch-destination-places__item .ch-place-card__surface,
.ch-discovery--destination-detail-v2 .ch-destination-places__item .ch-place-card--with-media .ch-place-card__surface {
	aspect-ratio: 4 / 3;
	border-radius: 18px;
}

.ch-discovery--destination-detail-v2 .ch-destination-places__item .ch-place-card__body {
	padding: clamp(16px, 1.5vw, 22px);
}

.ch-discovery--destination-detail-v2 .ch-destination-places__item .ch-place-card__title {
	display: -webkit-box;
	overflow: hidden;
	font-size: clamp(21px, 1.65vw, 27px);
	line-height: 1.08;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.ch-discovery--destination-detail-v2 .ch-destination-places__item .ch-place-card__summary {
	display: -webkit-box;
	overflow: hidden;
	margin-top: 8px;
	font-size: 12.5px;
	line-height: 1.45;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.ch-discovery--destination-detail-v2 .ch-destination-places__item .ch-place-card__subtype {
	margin: 10px 0 0;
	font-size: 11px;
}

.ch-discovery--destination-detail-v2 .ch-destination-places__next {
	position: absolute;
	right: -18px;
	bottom: -18px;
	z-index: 4;
	width: 46px;
	height: 46px;
	border: 1px solid color-mix(in srgb, var(--ch-color-forest-deep) 10%, transparent);
	border-radius: 50%;
	background: var(--ch-color-surface);
	color: var(--ch-color-text);
	box-shadow: 0 8px 22px rgba(15, 23, 42, .10);
	cursor: pointer;
}

.ch-discovery--destination-detail-v2 .ch-destination-places__next::before {
	display: block;
	width: 8px;
	height: 8px;
	margin: 0 auto;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	content: '';
	transform: rotate(-45deg);
}

.ch-discovery--destination-detail-v2 .ch-destination-places__next[hidden],
.ch-discovery--destination-detail-v2 .ch-destination-places__all[hidden] {
	display: none;
}

@media (max-width: 1023px) {
	.ch-discovery--destination-detail-v2 .ch-destination-places__item {
		flex-basis: calc((100% - 14px) / 2);
	}
}

@media (max-width: 767px) {
	.ch-discovery--destination-detail-v2 .ch-destination-places__head {
		align-items: flex-start;
		margin-bottom: 12px;
	}

	.ch-discovery--destination-detail-v2 .ch-destination-places__head h2 {
		max-width: 22ch;
	}

	.ch-discovery--destination-detail-v2 .ch-destination-places__all {
		font-size: 0;
	}

	.ch-discovery--destination-detail-v2 .ch-destination-places__all span {
		font-size: 20px;
	}

	.ch-discovery--destination-detail-v2 .ch-destination-places__item {
		flex-basis: 82%;
	}

	.ch-discovery--destination-detail-v2 .ch-destination-places__next {
		right: -4px;
		bottom: -14px;
	}
}

.ch-discovery--destination-detail-v2 .ch-destination-places .ch-section-title,
.ch-discovery--destination-detail-v2 .ch-destination-experiences .ch-section-title,
.ch-discovery--destination-detail-v2 .ch-destination-events-strip .ch-section-title,
.ch-discovery .ch-destination-continuation .ch-section-title {
	font-size: var(--ch-detail-section-title);
	font-weight: 520;
	font-optical-sizing: auto;
	line-height: 1.08;
	letter-spacing: -.015em;
}

.ch-discovery--destination-detail-v2 .ch-destination-places__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(16px, 2vw, 24px);
	margin-top: 0;
}

.ch-discovery--destination-detail-v2 .ch-destination-places .ch-place-card--with-media .ch-place-card__surface {
	aspect-ratio: 1 / 1;
	border-radius: clamp(16px, 1.8vw, 24px);
}

.ch-discovery--destination-detail-v2 .ch-destination-places .ch-place-card--featured .ch-place-card__surface {
	aspect-ratio: 16 / 11;
}

.ch-discovery--destination-detail-v2 .ch-destination-places .ch-place-card__overlay {
	background: linear-gradient(180deg, transparent 30%, color-mix(in srgb, var(--ch-color-vignette) 40%, transparent) 62%, color-mix(in srgb, var(--ch-color-vignette) 94%, transparent) 100%);
}

.ch-discovery--destination-detail-v2 .ch-destination-places .ch-place-card:not(.ch-place-card--featured) .ch-place-card__title {
	display: -webkit-box;
	overflow: hidden;
	font-size: clamp(21px, 1.65vw, 27px);
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.ch-discovery--destination-detail-v2 .ch-destination-places .ch-place-card:not(.ch-place-card--featured) .ch-place-card__summary {
	-webkit-line-clamp: 2;
}

.ch-discovery--destination-detail-v2 .ch-destination-places .ch-place-card__badge {
	position: absolute;
	top: 18px;
	left: 18px;
	z-index: 3;
	margin: 0;
	padding: 7px 14px;
	border-radius: var(--ch-radius-pill);
	background: var(--ch-color-gold);
	color: var(--ch-color-forest-deep);
	font-family: var(--ch-font-sans);
	font-size: 11px;
	font-weight: 750;
	letter-spacing: .07em;
	text-transform: uppercase;
}

.ch-discovery--destination-detail-v2 .ch-destination-places .ch-place-card__chip-icon {
	display: inline-flex;
	margin-right: 6px;
	color: var(--ch-color-gold);
	vertical-align: -3px;
}

.ch-discovery--destination-detail-v2 .ch-destination-places .ch-place-card--featured .ch-place-card__title {
	font-size: clamp(28px, 2.6vw, 40px);
}

@media (min-width: 1024px) {
	.ch-discovery--destination-detail-v2 .ch-destination-places__grid--pair {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ch-discovery--destination-detail-v2 .ch-destination-places__grid--few,
	.ch-discovery--destination-detail-v2 .ch-destination-places__grid--plenty {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		grid-auto-flow: dense;
	}

	.ch-discovery--destination-detail-v2 .ch-destination-places__grid--count-1 {
		grid-template-columns: minmax(0, 1fr);
	}

	.ch-discovery--destination-detail-v2 .ch-destination-places__grid--count-2,
	.ch-discovery--destination-detail-v2 .ch-destination-places__grid--count-3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ch-discovery--destination-detail-v2 .ch-destination-places__grid--few .ch-place-card:first-child,
	.ch-discovery--destination-detail-v2 .ch-destination-places__grid--plenty .ch-place-card:first-child {
		grid-column: span 2;
		grid-row: span 2;
	}

	.ch-discovery--destination-detail-v2 .ch-destination-places__grid--count-1 .ch-place-card:first-child,
	.ch-discovery--destination-detail-v2 .ch-destination-places__grid--count-2 .ch-place-card:first-child {
		grid-column: auto;
		grid-row: auto;
	}

	.ch-discovery--destination-detail-v2 .ch-destination-places__grid--count-3 .ch-place-card:first-child {
		grid-column: 1 / -1;
		grid-row: auto;
	}

	.ch-discovery--destination-detail-v2 .ch-destination-places__grid--few .ch-place-card:first-child .ch-place-card__surface,
	.ch-discovery--destination-detail-v2 .ch-destination-places__grid--plenty .ch-place-card:first-child .ch-place-card__surface {
		aspect-ratio: auto;
		height: 100%;
		min-height: 340px;
	}

	.ch-discovery--destination-detail-v2 .ch-destination-places__grid--count-1 .ch-place-card:first-child .ch-place-card__surface,
	.ch-discovery--destination-detail-v2 .ch-destination-places__grid--count-2 .ch-place-card:first-child .ch-place-card__surface,
	.ch-discovery--destination-detail-v2 .ch-destination-places__grid--count-3 .ch-place-card:first-child .ch-place-card__surface {
		aspect-ratio: 16 / 9;
		height: auto;
		min-height: 0;
	}
}

/* -- 3. Experiencias para vivir ---------------------------------------------- */

.ch-discovery--destination-detail-v2 .ch-destination-experiences {
	padding-block: clamp(24px, 2.6vw, 36px);
	background: color-mix(in srgb, var(--ch-color-sand) 18%, var(--ch-color-ivory));
}

.ch-discovery--destination-detail-v2 .ch-destination-experiences > .ch-container {
	--ch-live-panel-height: clamp(350px, 24vw, 400px);
	display: grid;
	grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr);
	gap: clamp(24px, 2.8vw, 42px);
	align-items: start;
}

.ch-discovery--destination-detail-v2 .ch-destination-experiences__territory {
	position: relative;
	display: flex;
	height: var(--ch-live-panel-height);
	min-height: 0;
	align-items: flex-end;
	overflow: hidden;
	border-radius: 20px;
	background: var(--ch-color-forest-deep);
	color: var(--ch-color-text-on-dark);
}

.ch-discovery--destination-detail-v2 .ch-destination-experiences__territory-image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--ch-focal, center center);
	filter: var(--ch-media-grade);
}

.ch-discovery--destination-detail-v2 .ch-destination-experiences__territory-overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, color-mix(in srgb, var(--ch-color-vignette) 46%, transparent) 0%, transparent 72%),
		linear-gradient(0deg, color-mix(in srgb, var(--ch-color-vignette) 92%, transparent) 0%, color-mix(in srgb, var(--ch-color-vignette) 54%, transparent) 42%, transparent 78%);
}

.ch-discovery--destination-detail-v2 .ch-destination-experiences__territory--without-media .ch-destination-experiences__territory-overlay {
	background: linear-gradient(135deg, var(--ch-color-forest-deep), color-mix(in srgb, var(--ch-color-live) 42%, var(--ch-color-forest-deep)));
}

.ch-discovery--destination-detail-v2 .ch-destination-experiences__territory-body {
	position: relative;
	z-index: 2;
	max-width: 31rem;
	padding: clamp(24px, 2.6vw, 36px);
}

.ch-discovery--destination-detail-v2 .ch-destination-experiences__territory-kicker,
.ch-discovery--destination-detail-v2 .ch-destination-experiences__head .ch-section-kicker {
	margin: 0 0 12px;
	font-family: var(--ch-font-sans);
	font-size: 12px;
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.ch-discovery--destination-detail-v2 .ch-destination-experiences__territory-kicker {
	color: var(--ch-color-gold);
}

.ch-discovery--destination-detail-v2 .ch-destination-experiences__territory-title {
	margin: 0;
	font-family: var(--ch-font-display);
	font-size: clamp(29px, 2.25vw, 36px);
	font-weight: 520;
	line-height: 1.06;
	color: var(--ch-color-text-on-dark);
}

.ch-discovery--destination-detail-v2 .ch-destination-experiences__territory-summary {
	display: -webkit-box;
	overflow: hidden;
	margin: 14px 0 0;
	font-family: var(--ch-font-sans);
	font-size: 14px;
	line-height: 1.55;
	color: color-mix(in srgb, var(--ch-color-text-on-dark) 90%, transparent);
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.ch-discovery--destination-detail-v2 .ch-destination-experiences__collection {
	display: flex;
	height: var(--ch-live-panel-height);
	min-width: 0;
	flex-direction: column;
}

.ch-discovery--destination-detail-v2 .ch-destination-experiences__head {
	display: flex;
	min-height: 52px;
	align-items: flex-start;
	justify-content: space-between;
	gap: 18px;
	margin-bottom: 10px;
	flex: 0 0 auto;
}

.ch-discovery--destination-detail-v2 .ch-destination-experiences__head .ch-section-kicker {
	color: var(--ch-color-live);
}

.ch-discovery--destination-detail-v2 .ch-destination-experiences__heading {
	margin: 0;
	font-family: var(--ch-font-display);
	font-size: clamp(21px, 1.6vw, 26px);
	font-weight: 540;
	line-height: 1.12;
	letter-spacing: 0;
	text-transform: none;
	color: var(--ch-color-text);
}

.ch-discovery--destination-detail-v2 .ch-destination-experiences__viewport {
	flex: 1 1 auto;
	min-width: 0;
	min-height: 0;
}

.ch-discovery--destination-detail-v2 .ch-destination-experiences__track {
	display: flex;
	height: 100%;
	align-items: stretch;
	gap: 16px;
	margin: 0;
	padding: 0;
	overflow-x: auto;
	list-style: none;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: 0;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}

.ch-discovery--destination-detail-v2 .ch-destination-experiences__track::-webkit-scrollbar {
	display: none;
}

.ch-discovery--destination-detail-v2 .ch-destination-experiences__item {
	display: flex;
	height: 100%;
	flex: 0 0 calc((100% - 16px) / 2);
	min-width: 0;
	scroll-snap-align: start;
	scroll-snap-stop: always;
}

.ch-discovery--destination-detail-v2 .ch-destination-experiences .ch-experience-card,
.ch-discovery--destination-detail-v2 .ch-destination-experiences a.ch-experience-card {
	height: 100%;
	min-height: 0;
	aspect-ratio: auto;
	border-radius: 16px;
}

.ch-discovery--destination-detail-v2 .ch-destination-experiences .ch-experience-card__copy {
	gap: 6px;
	padding-right: 0;
}

.ch-discovery--destination-detail-v2 .ch-destination-experiences .ch-experience-card__territory {
	top: 15px;
	font-size: 9.5px;
}

.ch-discovery--destination-detail-v2 .ch-destination-experiences .ch-experience-card__title {
	display: -webkit-box;
	overflow: hidden;
	font-size: clamp(18px, 1.15vw, 21px);
	line-height: 1.12;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.ch-discovery--destination-detail-v2 .ch-destination-experiences .ch-experience-card__meaning {
	font-size: 12px;
	-webkit-line-clamp: 2;
}

.ch-discovery--destination-detail-v2 .ch-destination-experiences .ch-experience-card__action {
	font-size: 11.5px;
}

/* -- 4. Vive el momento ------------------------------------------------------ */

.ch-discovery--destination-detail-v2 .ch-destination-events-strip {
	padding-block: clamp(24px, 2.6vw, 36px);
	background: color-mix(in srgb, var(--ch-color-sand) 24%, var(--ch-color-ivory));
}

.ch-discovery--destination-detail-v2 .ch-destination-events-strip > .ch-container {
	display: block;
}

.ch-discovery--destination-detail-v2 .ch-destination-events-strip__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	margin-bottom: 16px;
}

.ch-discovery--destination-detail-v2 .ch-destination-events-strip__heading {
	margin: 0;
	font-family: var(--ch-font-sans);
	font-size: clamp(13px, 1.1vw, 15px);
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--ch-color-forest);
}

.ch-discovery--destination-detail-v2 .ch-destination-events-strip__viewport {
	min-width: 0;
}

.ch-discovery--destination-detail-v2 .ch-destination-events-strip__track {
	display: flex;
	align-items: stretch;
	gap: 18px;
	margin: 0;
	padding: 0;
	overflow-x: auto;
	list-style: none;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: 0;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}

.ch-discovery--destination-detail-v2 .ch-destination-events-strip__track::-webkit-scrollbar {
	display: none;
}

.ch-discovery--destination-detail-v2 .ch-destination-events-strip__item {
	display: flex;
	min-width: 0;
	flex: 0 0 calc((100% - 36px) / 3);
	scroll-snap-align: start;
	scroll-snap-stop: always;
}

.ch-discovery .ch-event-overlay-card,
.ch-discovery a.ch-event-overlay-card:link,
.ch-discovery a.ch-event-overlay-card:visited,
.ch-discovery a.ch-event-overlay-card:hover,
.ch-discovery a.ch-event-overlay-card:focus,
.ch-discovery a.ch-event-overlay-card:active {
	position: relative;
	display: flex;
	width: 100%;
	height: clamp(370px, 27vw, 420px);
	min-width: 0;
	min-height: 0;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid color-mix(in srgb, var(--ch-color-text) 12%, transparent);
	border-radius: 16px;
	background: var(--ch-color-surface, #fff);
	color: var(--ch-color-text);
	text-decoration: none;
	box-shadow: 0 8px 22px color-mix(in srgb, var(--ch-color-forest-deep) 7%, transparent);
}

.ch-discovery .ch-event-overlay-card__media {
	position: relative;
	display: block;
	width: 100%;
	height: 52%;
	flex: 0 0 52%;
	overflow: hidden;
	background: var(--ch-color-forest-deep);
}

.ch-discovery .ch-event-overlay-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--ch-focal, center center);
	filter: var(--ch-media-grade) saturate(1.04);
	transition: transform .4s ease;
}

.ch-discovery .ch-event-overlay-card__date {
	position: absolute;
	top: 0;
	right: 18px;
	display: flex;
	min-width: 78px;
	flex-direction: column;
	align-items: center;
	padding: 9px 12px 11px;
	border-radius: 0 0 13px 13px;
	background: var(--ch-color-accent);
	box-shadow: 0 7px 18px rgba(15, 23, 42, .18);
	color: #fff;
	text-align: center;
}

.ch-discovery .ch-event-overlay-card__date strong {
	font-family: var(--ch-font-display);
	font-size: 28px;
	font-weight: 600;
	line-height: 1;
}

.ch-discovery .ch-event-overlay-card__date small {
	margin-top: 4px;
	font-family: var(--ch-font-sans);
	font-size: 10px;
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.ch-discovery .ch-event-overlay-card__date--tentative {
	background: var(--ch-color-live);
}

.ch-discovery .ch-event-overlay-card__copy {
	display: flex;
	min-width: 0;
	min-height: 0;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 7px;
	padding: 16px 18px 17px;
}

.ch-discovery .ch-event-overlay-card__tag {
	font-family: var(--ch-font-sans);
	font-size: 10px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--ch-color-accent) 78%, var(--ch-color-text));
}

.ch-discovery .ch-event-overlay-card__title {
	display: -webkit-box;
	overflow: hidden;
	margin: 0;
	font-family: var(--ch-font-display);
	font-size: clamp(20px, 1.45vw, 24px);
	font-weight: 520;
	line-height: 1.08;
	color: inherit;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.ch-discovery .ch-event-overlay-card__summary {
	display: -webkit-box;
	overflow: hidden;
	font-family: var(--ch-font-sans);
	font-size: 12.5px;
	line-height: 1.4;
	color: color-mix(in srgb, var(--ch-color-text) 76%, transparent);
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.ch-discovery .ch-event-overlay-card__action {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: auto;
	font-family: var(--ch-font-sans);
	font-size: 12px;
	font-weight: 800;
	line-height: 1.3;
	color: var(--ch-color-text);
}

.ch-discovery .ch-event-overlay-card--linked:hover .ch-event-overlay-card__media img {
	transform: scale(1.055);
}

.ch-discovery .ch-event-overlay-card--linked:focus-visible {
	outline: 2px solid var(--ch-color-forest);
	outline-offset: 3px;
}

/* -- 5. Sigue explorando ------------------------------------------------------ */

.ch-discovery .ch-destination-continuation {
	padding-block: clamp(28px, 3vw, 40px);
	background: var(--ch-color-ivory);
}

.ch-discovery .ch-destination-continuation__layout {
	display: grid;
	grid-template-columns: minmax(245px, 320px) minmax(0, 1fr);
	gap: clamp(24px, 3.2vw, 48px);
	align-items: stretch;
}

.ch-discovery .ch-destination-continuation__intro {
	position: relative;
	margin: 0;
	padding-right: clamp(8px, 1.5vw, 20px);
}

.ch-discovery .ch-destination-continuation__title::after {
	display: block;
	width: 44px;
	height: 2px;
	margin-top: 18px;
	background: var(--ch-color-live);
	content: '';
}

.ch-discovery .ch-destination-continuation__kicker {
	margin: 0 0 12px;
	font-family: var(--ch-font-sans);
	font-size: 11px;
	font-weight: 750;
	line-height: 1.35;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: var(--ch-color-live);
}

.ch-discovery .ch-destination-continuation__title {
	max-width: 19ch;
	margin: 0;
	font-family: var(--ch-font-display);
	font-size: clamp(27px, 2.05vw, 32px);
	font-weight: 520;
	font-optical-sizing: auto;
	line-height: 1.08;
	letter-spacing: -.025em;
	color: var(--ch-color-text);
}

.ch-discovery .ch-destination-continuation__description {
	max-width: 31ch;
	margin: 20px 0 0;
	font-family: var(--ch-font-sans);
	font-size: 14px;
	line-height: 1.55;
	color: var(--ch-color-text-muted);
}

.ch-discovery .ch-destination-continuation__action {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 18px;
	font-family: var(--ch-font-sans);
	font-size: 12.5px;
	font-weight: 750;
	line-height: 1.4;
	text-decoration: none;
	color: var(--ch-color-live);
}

.ch-discovery .ch-destination-continuation__action:hover,
.ch-discovery .ch-destination-continuation__action:focus-visible {
	text-decoration: underline;
	text-underline-offset: 4px;
}

.ch-discovery .ch-destination-continuation--region {
	scroll-margin-top: 24px;
}

.ch-discovery .ch-destination-continuation__rail,
.ch-discovery .ch-destination-continuation__viewport {
	min-width: 0;
}

.ch-discovery .ch-destination-continuation__rail-head {
	display: flex;
	min-height: 38px;
	align-items: flex-start;
	justify-content: flex-end;
}

@media (min-width: 1024px) {
	.ch-discovery .ch-destination-continuation--with-controls .ch-destination-continuation__layout {
		padding-top: 52px;
	}

	.ch-discovery .ch-destination-continuation--with-controls .ch-destination-continuation__rail {
		position: relative;
	}

	.ch-discovery .ch-destination-continuation--with-controls .ch-destination-continuation__rail-head {
		position: absolute;
		top: -52px;
		right: 0;
		z-index: 2;
		min-height: 0;
	}
}

.ch-discovery .ch-destination-continuation__track {
	display: flex;
	align-items: stretch;
	gap: 16px;
	margin: 0;
	padding: 0;
	overflow-x: auto;
	list-style: none;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: 0;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}

.ch-discovery .ch-destination-continuation__track::-webkit-scrollbar {
	display: none;
}

.ch-discovery .ch-destination-continuation__item {
	display: flex;
	min-width: 0;
	flex: 0 0 calc((100% - 16px) / 2);
	scroll-snap-align: start;
	scroll-snap-stop: always;
}

/* -- 6. Programa Hospedaje Fundador ------------------------------------------ */

.ch-discovery--destination-detail-v2 .ch-destination-stay {
	padding-block: clamp(34px, 3.8vw, 50px);
	background: transparent;
}

.ch-discovery--destination-detail-v2 .ch-destination-stay .ch-home-founder {
	width: 100%;
	margin: 0;
}

.ch-discovery--destination-detail-v2 .ch-destination-stay .ch-home-founder__media {
	min-height: 280px;
}

.ch-discovery--destination-detail-v2 .ch-destination-stay .ch-home-founder__panel {
	padding: 32px 38px;
}

@media (max-width: 1023px) {
	.ch-discovery--destination-detail-v2 .ch-destination-places > .ch-container,
	.ch-discovery--destination-detail-v2 .ch-destination-experiences > .ch-container,
	.ch-discovery .ch-destination-continuation__layout {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why__inner {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why__intro {
		padding-right: 0;
	}

	:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why__title {
		max-width: 32ch;
	}

	.ch-discovery--destination-detail-v2 .ch-destination-experiences .ch-carousel-controls,
	.ch-discovery--destination-detail-v2 .ch-destination-events-strip .ch-carousel-controls {
		justify-content: flex-end;
		margin-top: 0;
	}

	.ch-discovery--destination-detail-v2 .ch-destination-experiences__territory {
		height: 360px;
	}

	.ch-discovery--destination-detail-v2 .ch-destination-experiences__item {
		flex-basis: calc((100% - 16px) / 2);
	}

	.ch-discovery--destination-detail-v2 .ch-destination-events-strip__item {
		flex-basis: calc((100% - 18px) / 2);
	}

	.ch-discovery .ch-destination-continuation__intro {
		padding-right: 0;
	}

	.ch-discovery .ch-destination-continuation__title {
		max-width: 32ch;
	}

	.ch-discovery .ch-destination-continuation__item {
		flex-basis: calc((100% - 16px) / 2);
	}

	.ch-discovery--destination-detail-v2 .ch-destination-places__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ch-discovery--destination-detail-v2 .ch-destination-places__grid .ch-place-card:first-child {
		grid-column: 1 / -1;
	}

}

@media (max-width: 767px) {
	.ch-discovery--destination-detail-v2 .ch-destination-places,
	.ch-discovery--destination-detail-v2 .ch-destination-experiences,
	.ch-discovery--destination-detail-v2 .ch-destination-events-strip,
	.ch-discovery .ch-destination-continuation,
	:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why {
		padding-block: 26px;
	}

	:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why__title {
		font-size: 28px;
	}

	.ch-discovery--destination-detail-v2 .ch-destination-experiences__territory {
		height: 300px;
	}

	.ch-discovery--destination-detail-v2 .ch-destination-experiences__collection {
		height: 380px;
	}

	.ch-discovery--destination-detail-v2 .ch-destination-experiences__territory-title {
		font-size: 30px;
	}

	.ch-discovery--destination-detail-v2 .ch-destination-experiences__head {
		min-height: 0;
		margin-bottom: 12px;
	}

	.ch-discovery--destination-detail-v2 .ch-destination-experiences__heading {
		max-width: 24ch;
	}

	.ch-discovery--destination-detail-v2 .ch-destination-experiences__item {
		flex-basis: 100%;
	}

	.ch-discovery--destination-detail-v2 .ch-destination-events-strip__head {
		min-height: 0;
		margin-bottom: 12px;
	}

	.ch-discovery--destination-detail-v2 .ch-destination-events-strip__heading {
		max-width: 24ch;
	}

	.ch-discovery .ch-event-overlay-card {
		height: 390px;
	}

	.ch-discovery--destination-detail-v2 .ch-destination-events-strip__item {
		flex-basis: 100%;
	}

	:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why__motifs {
		grid-template-columns: 1fr;
		border-top: 1px solid var(--ch-color-border);
		border-left: 0;
	}

	:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why__motif,
	:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why__motif:first-child {
		display: grid;
		grid-template-columns: 44px minmax(0, 1fr);
		gap: 14px;
		align-items: start;
		padding: 16px 0;
		border-bottom: 1px solid var(--ch-color-border);
		border-left: 0;
	}

	:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why__icon {
		width: 44px;
		height: 44px;
		margin: 0;
	}

	:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why__icon svg {
		width: 22px;
		height: 22px;
	}

	:is(.ch-discovery--destination-detail-v2, .ch-event-detail) .ch-destination-why__motif-copy p {
		margin-top: 5px;
	}

	.ch-discovery .ch-destination-continuation__item {
		flex-basis: 86%;
	}

	.ch-discovery--destination-detail-v2 .ch-destination-places__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ch-discovery--destination-detail-v2 .ch-destination-places__grid .ch-place-card:first-child {
		grid-column: 1 / -1;
	}

	.ch-discovery--destination-detail-v2 .ch-destination-stay .ch-home-founder__panel {
		padding: 28px 22px 32px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ch-discovery .ch-event-overlay-card__media img,
	.ch-discovery .ch-event-overlay-card--linked:hover .ch-event-overlay-card__media img {
		transition: none;
		transform: none;
	}
}
