/**
 * Destination catalogue page (page-destino.php). Builds on trip-cinematic.css
 * (palette, type, pinned chapters, stats, closing form) -- this file adds the
 * hero, route map, coast, travel styles, finder, advantages, FAQ and the
 * per-circuit panel.
 */

.dest { background: var(--cine-cream); }
.dest-wrap { max-width: calc(var(--max-width) + 48px); margin: 0 auto; padding: 0 24px; }
.dest-wrap--narrow { max-width: 860px; }
.dest-head { text-align: center; max-width: 760px; margin: 0 auto clamp(36px, 6vh, 56px); }
.dest-h2 {
	font-family: var(--cine-display);
	font-weight: 600;
	font-size: clamp(2.4rem, 5vw, 4rem);
	line-height: 1.05;
	text-wrap: balance;
	color: var(--cine-ink);
	margin: 0 0 14px;
}
.dest-lead { margin: 0; font-size: 1.1rem; line-height: 1.6; color: var(--cine-ink-soft); }
.dest-ico { width: 1.15em; height: 1.15em; flex: none; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

/* 1. Hero ------------------------------------------------------------------ */
.dest-hero { position: relative; height: 190vh; background: #FEEDC9; }
.dest-hero__stage {
	position: sticky;
	top: var(--cine-header);
	height: calc(100vh - var(--cine-header));
	height: calc(100svh - var(--cine-header));
	overflow: hidden;
	/* Same cream as the diorama renders, so the image edge disappears. */
	background: radial-gradient(70% 70% at 68% 52%, #FFF3D9 0%, #FEEDC9 70%);
}
.dest-hero__art {
	position: absolute;
	right: -7vw;
	top: 50%;
	width: min(64vw, 1120px);
	transform: translateY(-46%) translateX(calc(var(--p, 0) * -6vw)) scale(calc(1.1 - var(--p, 0) * 0.14));
	transform-origin: 60% 50%;
	will-change: transform;
}
.dest-hero__img {
	display: block; width: 100%; height: auto;
	-webkit-mask-image: radial-gradient(ellipse 70% 68% at 50% 52%, #000 72%, transparent 100%);
	mask-image: radial-gradient(ellipse 70% 68% at 50% 52%, #000 72%, transparent 100%);
}
.dest-hero__copy {
	position: absolute;
	left: max(24px, calc((100vw - var(--max-width)) / 2));
	top: 50%;
	transform: translateY(calc(-50% - var(--p, 0) * 6vh));
	max-width: 30rem;
	z-index: 2;
	opacity: calc(1 - max(0, var(--p, 0) - 0.72) * 3);
}
.dest-hero__title {
	font-family: var(--cine-display);
	font-weight: 600;
	font-size: clamp(4.6rem, 11vw, 10rem);
	line-height: 0.88;
	letter-spacing: -0.01em;
	color: var(--color-primary);
	margin: 4px 0 18px;
}
.dest-hero__title--long { font-size: clamp(3.6rem, 7.2vw, 7.2rem); }
.dest-hero__sub { font-size: 1.12rem; line-height: 1.6; color: var(--cine-ink-soft); margin: 0 0 20px; max-width: 34ch; }
.dest-hero__chips { list-style: none; margin: 0 0 26px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.dest-hero__chips li { padding: 7px 14px; border-radius: 999px; background: rgba(255, 255, 255, 0.75); border: 1px solid rgba(4, 54, 107, 0.12); font-size: 0.85rem; font-weight: 600; color: var(--color-primary); }
.dest-hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
.dest-btn--ghost { background: transparent; color: var(--color-primary); border: 1.5px solid var(--color-primary); }
.dest-btn--ghost:hover { background: var(--color-primary); color: #fff; }
.dest-hero__hint {
	position: absolute; left: 50%; bottom: 22px; transform: translateX(-50%);
	display: flex; flex-direction: column; align-items: center; gap: 8px; margin: 0;
	font-size: 0.72rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--cine-ink-soft);
	opacity: calc(1 - var(--p, 0) * 4);
}
.dest-hero__hint i { width: 1px; height: 34px; background: linear-gradient(var(--cine-gold), transparent); animation: dest-hint 2s ease-in-out infinite; }
@keyframes dest-hint { 0%, 100% { transform: scaleY(0.4); transform-origin: top; } 50% { transform: scaleY(1); transform-origin: top; } }

/* Balloons drift up as the hero scrolls, and bob on their own. */
.dest-hero__balloons { position: absolute; inset: 0; pointer-events: none; z-index: 1; }
.dest-balloon { position: absolute; width: 40px; height: 60px; transform: translateY(calc(var(--p, 0) * -38vh)); }
.dest-balloon path:first-child { fill: #E8664A; }
.dest-balloon__stripe { fill: #F5B33D; }
.dest-balloon rect { fill: #8A5A2B; }
.dest-balloon__rope { fill: none; stroke: #8A5A2B; stroke-width: 1.2; }
.dest-balloon--a { left: 46%; top: 22%; animation: dest-bob 6s ease-in-out infinite; }
.dest-balloon--b { left: 58%; top: 12%; width: 28px; height: 42px; animation: dest-bob 7s ease-in-out -2s infinite; }
.dest-balloon--b path:first-child { fill: #4C8FC4; } .dest-balloon--b .dest-balloon__stripe { fill: #F2E3B3; }
.dest-balloon--c { left: 39%; top: 64%; width: 22px; height: 33px; animation: dest-bob 5.5s ease-in-out -1s infinite; }
.dest-balloon--c path:first-child { fill: #C9496B; } .dest-balloon--c .dest-balloon__stripe { fill: #FFD11A; }
@keyframes dest-bob { 0%, 100% { margin-top: 0; } 50% { margin-top: -14px; } }

/* 2. Route map --------------------------------------------------------------- */
.dest-map { position: relative; height: 240vh; background: linear-gradient(180deg, var(--cine-cream), #F8E9C6); }
.dest-map__stage {
	position: sticky;
	top: var(--cine-header);
	height: calc(100vh - var(--cine-header));
	height: calc(100svh - var(--cine-header));
	display: grid;
	grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
	gap: clamp(20px, 3vw, 48px);
	align-items: center;
	max-width: calc(var(--max-width) + 160px);
	margin: 0 auto;
	padding: 0 24px;
}
.dest-map__copy p { font-size: 1.08rem; line-height: 1.65; color: var(--cine-ink-soft); margin: 0 0 22px; }
.dest-map__legend { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: 0.9rem; font-weight: 600; color: var(--cine-ink-soft); }
.dest-map__legend li { display: flex; align-items: center; gap: 10px; }
.dest-map__key { width: 34px; height: 0; border-top: 3px solid var(--cine-gold); }
.dest-map__key--air { border-top: 3px dashed var(--color-primary); }
.dest-map__art { perspective: 1600px; }
.dest-map__frame {
	position: relative;
	transform: rotateX(calc((1 - var(--p, 0)) * 10deg)) scale(calc(0.94 + var(--p, 0) * 0.06));
	transform-origin: 50% 70%;
}
.dest-map__frame > img { display: block; width: 100%; height: auto; border-radius: 18px; }
.dest-map__svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.dest-map__route { fill: none; stroke: var(--cine-gold); stroke-width: 6; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.35)); }
.dest-map__road2 { fill: none; stroke: var(--cine-gold); stroke-width: 5; stroke-linecap: round; filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.35)); }
.dest-map__air { fill: none; stroke: #fff; stroke-width: 4; stroke-linecap: round; filter: drop-shadow(0 2px 3px rgba(4, 54, 107, 0.6)); }
.dest-map__air.is-done { stroke-dasharray: 10 12 !important; }
.dest-pin {
	/* Zero-size anchor exactly on the city: the dot is centred on it and the
	   label hangs beside it, so the label never pushes the dot off its place. */
	position: absolute;
	left: var(--x);
	top: var(--y);
	width: 0;
	height: 0;
	transform: scale(0.4);
	opacity: 0;
	transition: opacity 0.45s, transform 0.45s cubic-bezier(.2, 1.4, .4, 1);
	pointer-events: none;
	z-index: 2;
}
.dest-pin.is-on { opacity: 1; transform: scale(1); }
.dest-pin i { position: absolute; left: 0; top: 0; transform: translate(-50%, -50%); width: 14px; height: 14px; border-radius: 50%; background: var(--color-accent); border: 3px solid var(--color-primary); box-shadow: 0 0 0 0 rgba(255, 209, 26, 0.7); box-sizing: border-box; }
.dest-pin.is-on i { animation: dest-ping 2.2s ease-out 1; }
.dest-pin b { position: absolute; left: 12px; top: 0; transform: translateY(-50%); padding: 4px 9px; border-radius: 8px; background: rgba(255, 255, 255, 0.94); color: var(--color-primary); font-size: clamp(0.66rem, 0.95vw, 0.85rem); font-weight: 700; white-space: nowrap; box-shadow: 0 6px 14px -6px rgba(0, 0, 0, 0.4); }
.dest-pin--left b { left: auto; right: 12px; }
.dest-pin--down b { left: 0; top: 11px; transform: translateX(-50%); }
.dest-pin--up b { left: 0; top: -11px; transform: translate(-50%, -100%); }
.dest-pin--big i { width: 18px; height: 18px; }
.dest-pin--big b { font-size: clamp(0.74rem, 1.1vw, 0.98rem); left: 14px; }
.dest-pin--big.dest-pin--left b { left: auto; right: 14px; }
.dest-pin--small b { font-weight: 600; opacity: 0.92; }
.dest-pin--coast i { background: #fff; }
@keyframes dest-ping { from { box-shadow: 0 0 0 0 rgba(255, 209, 26, 0.75); } to { box-shadow: 0 0 0 22px rgba(255, 209, 26, 0); } }

/* 3. Chapters (cine-day) ------------------------------------------------------ */
.dest-story { background: var(--cine-cream); }
.dest-story__head { text-align: center; padding: clamp(80px, 12vh, 130px) 24px 0; }
.dest-chapter .cine-day__visual-inner { box-shadow: none; display: flex; align-items: center; }
.dest-chapter .cine-day__scene { width: 100%; height: auto; max-height: 100%; object-fit: contain; }
.dest-chapter .cine-day__tags li { background: rgba(200, 150, 30, 0.14); color: var(--cine-ink); }
.cine-day--paris.dest-chapter .cine-day__tags li { background: rgba(255, 209, 26, 0.16); color: #fff; }
.cine-day--paris.dest-chapter .cine-day__scene { border-radius: 22px; background: var(--cine-cream); }

/* 4. Coast -------------------------------------------------------------------- */
.dest-coast { padding: clamp(90px, 14vh, 150px) 0; background: linear-gradient(180deg, var(--cine-cream) 0%, #E8F3F6 100%); }
.dest-coast__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 2.4vw, 32px); }
.dest-coast__card { text-align: left; }
.dest-coast__card img { aspect-ratio: 3 / 2; object-fit: cover; background: var(--cine-cream); }
.dest-coast__card h3 { font-family: var(--cine-display); font-weight: 600; font-size: 2rem; margin: 20px 0 6px; color: var(--cine-ink); }
.dest-coast__card p { margin: 0 0 12px; color: var(--cine-ink-soft); line-height: 1.6; }
.dest-link { padding: 0; border: 0; background: none; font: inherit; font-weight: 700; color: var(--color-primary); cursor: pointer; text-decoration: underline; text-decoration-color: var(--cine-gold); text-underline-offset: 4px; text-decoration-thickness: 2px; }
.dest-link:hover { color: var(--cine-gold); }

/* 5. Travel styles ------------------------------------------------------------ */
.dest-series { padding: clamp(90px, 14vh, 150px) 0; background: radial-gradient(120% 90% at 50% 0%, var(--cine-dusk-2) 0%, var(--cine-dusk) 65%); color: #fff; }
.dest-series .dest-h2 { color: #fff; }
.dest-series__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.dest-series__card {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 28px 24px 24px;
	border-radius: 22px;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.12);
	transition: transform 0.35s, background 0.35s, border-color 0.35s;
}
.dest-series__card:hover { transform: translateY(-6px); background: rgba(255, 255, 255, 0.1); border-color: rgba(255, 209, 26, 0.5); }
.dest-series__card--lujo { background: linear-gradient(170deg, rgba(200, 150, 30, 0.28), rgba(255, 255, 255, 0.05)); border-color: rgba(200, 150, 30, 0.55); }
.dest-series__count { margin: 0 0 8px; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-accent); }
.dest-series__card h3 { font-family: var(--cine-display); font-weight: 600; font-size: 2.3rem; line-height: 1; margin: 0 0 6px; color: #fff; }
.dest-series__tagline { margin: 0 0 14px; font-weight: 600; color: rgba(255, 255, 255, 0.9); }
.dest-series__text { margin: 0 0 16px; font-size: 0.95rem; line-height: 1.55; color: rgba(255, 255, 255, 0.72); }
.dest-series__card ul { list-style: none; margin: 0 0 20px; padding: 0; display: grid; gap: 8px; font-size: 0.9rem; color: rgba(255, 255, 255, 0.88); }
.dest-series__card li { display: flex; gap: 8px; align-items: flex-start; line-height: 1.35; }
.dest-series__card li .dest-ico { color: var(--color-accent); margin-top: 1px; }
.dest-series__from { margin: auto 0 16px; color: rgba(255, 255, 255, 0.75); font-size: 0.9rem; }
.dest-series__from b { font-family: var(--cine-display); font-size: 2.2rem; color: var(--color-accent); margin: 0 4px; }
.dest-series__from small { display: block; font-size: 0.78rem; opacity: 0.75; }
.dest-series__btn { width: 100%; background: transparent; color: #fff; border: 1.5px solid rgba(255, 255, 255, 0.45); }
.dest-series__btn:hover { background: var(--color-accent); border-color: var(--color-accent); color: var(--color-primary); }

/* 6. Finder ------------------------------------------------------------------- */
.dest-finder { padding: clamp(90px, 14vh, 150px) 0; background: var(--cine-cream); scroll-margin-top: var(--cine-header); }
.dest-filters { display: grid; gap: 12px; justify-items: center; margin-bottom: 36px; }
.dest-filters__row { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; align-items: center; }
.dest-chip {
	display: inline-flex; align-items: center; gap: 7px;
	padding: 10px 18px; border-radius: 999px; border: 1.5px solid rgba(4, 54, 107, 0.18);
	background: #fff; color: var(--color-primary); font: inherit; font-size: 0.92rem; font-weight: 600; cursor: pointer;
	transition: background 0.25s, color 0.25s, border-color 0.25s;
}
.dest-chip:hover { border-color: var(--color-primary); }
.dest-chip.is-on { background: var(--color-primary); border-color: var(--color-primary); color: #fff; }
.dest-chip--toggle.is-on { background: var(--color-accent); border-color: var(--color-accent); color: var(--color-primary); }
.dest-select { display: inline-flex; align-items: center; gap: 8px; font-size: 0.9rem; font-weight: 600; color: var(--cine-ink-soft); }
.dest-select select { height: 42px; padding: 0 34px 0 14px; border-radius: 999px; border: 1.5px solid rgba(4, 54, 107, 0.18); background: #fff; font: inherit; font-weight: 600; color: var(--color-primary); }
.dest-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.dest-card {
	position: relative;
	display: flex;
	flex-direction: column;
	border-radius: 20px;
	background: #fff;
	border: 1px solid rgba(4, 54, 107, 0.1);
	box-shadow: 0 24px 50px -38px rgba(12, 26, 56, 0.5);
	overflow: hidden;
	transition: transform 0.35s, box-shadow 0.35s;
}
.dest-card[hidden] { display: none; }
.dest-card:hover { transform: translateY(-6px); box-shadow: 0 34px 60px -36px rgba(12, 26, 56, 0.55); }
.dest-card__hit { position: absolute; inset: 0; z-index: 2; border: 0; background: transparent; cursor: pointer; border-radius: inherit; }
.dest-card__hit:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 2px; }
.dest-card__art { position: relative; aspect-ratio: 3 / 2; background: var(--cine-cream); overflow: hidden; }
.dest-card__art img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.04); transition: transform 0.6s; }
.dest-card:hover .dest-card__art img { transform: scale(1.1); }
.dest-badge { display: inline-block; padding: 5px 11px; border-radius: 999px; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; background: var(--color-primary); color: #fff; }
.dest-card__art .dest-badge { position: absolute; left: 14px; top: 14px; }
.dest-badge--economy { background: #2E7D6B; }
.dest-badge--clasica { background: var(--color-primary); }
.dest-badge--confort { background: #6D8AAE; }
.dest-badge--lujo { background: var(--cine-gold); }
.dest-card__body { display: flex; flex-direction: column; flex: 1; padding: 18px 20px 20px; }
.dest-card__days { margin: 0 0 6px; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--cine-gold); }
.dest-card h3 { font-family: var(--cine-display); font-weight: 600; font-size: 1.65rem; line-height: 1.08; margin: 0 0 8px; color: var(--cine-ink); }
.dest-card__route { margin: 0 0 10px; font-size: 0.88rem; line-height: 1.5; color: var(--cine-ink-soft); }
.dest-card__icons { display: flex; gap: 8px; margin: 0 0 12px; color: var(--color-primary); min-height: 1.15em; }
.dest-card__price { margin: auto 0 10px; font-size: 0.85rem; color: var(--cine-ink-soft); }
.dest-card__price b { font-family: var(--cine-display); font-size: 2rem; color: var(--color-primary); margin: 0 3px; }
.dest-card__price small { font-size: 0.78rem; }
.dest-card__cta { font-weight: 700; font-size: 0.92rem; color: var(--color-primary); }
.dest-empty { text-align: center; color: var(--cine-ink-soft); margin: 30px 0 0; }

/* 7. Advantages --------------------------------------------------------------- */
.dest-adv { padding: clamp(90px, 14vh, 140px) 0; background: linear-gradient(180deg, #fbf8ef 0%, #e9f2f7 100%); }
.dest-adv__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.dest-adv__grid li { padding: 26px 24px; border-radius: 20px; background: #fff; border: 1px solid rgba(4, 54, 107, 0.08); }
.dest-adv__grid .dest-ico { width: 44px; height: 44px; padding: 10px; border-radius: 14px; background: rgba(200, 150, 30, 0.14); color: var(--cine-gold); }
.dest-adv__grid h3 { margin: 16px 0 6px; font-size: 1.1rem; font-weight: 700; color: var(--color-primary); }
.dest-adv__grid p { margin: 0; line-height: 1.55; color: var(--cine-ink-soft); font-size: 0.95rem; }

/* 8. FAQ ---------------------------------------------------------------------- */
.dest-faq { padding: clamp(80px, 12vh, 130px) 0; background: #e9f2f7; }
.dest-faq__item { border-bottom: 1px solid rgba(4, 54, 107, 0.15); }
.dest-faq__item summary { list-style: none; display: flex; justify-content: space-between; gap: 20px; padding: 22px 0; cursor: pointer; font-weight: 600; font-size: 1.08rem; color: var(--color-primary); }
.dest-faq__item summary::-webkit-details-marker { display: none; }
.dest-faq__item summary .dest-ico { transition: transform 0.3s; color: var(--cine-gold); }
.dest-faq__item[open] summary .dest-ico { transform: rotate(45deg); }
.dest-faq__item p { margin: 0 0 22px; line-height: 1.65; color: var(--cine-ink-soft); max-width: 70ch; }

/* 9. Inquiry: one extra field (the circuit picker) on its own row. ----------- */
.dest-form .dest-form__pick { grid-column: 1 / -1; }
.dest-form select { width: 100%; height: 48px; padding: 0 14px; border: 1px solid var(--color-border); border-radius: 10px; font-family: var(--font-body); font-size: 1rem; color: var(--color-ink); background: #fff; }

/* 10. Circuit panel ----------------------------------------------------------- */
html.dest-locked { overflow: hidden; }
.dest-panel { position: fixed; inset: 0; z-index: 1000; }
.dest-panel[hidden] { display: none; }
.dest-panel__backdrop { position: absolute; inset: 0; background: rgba(8, 18, 40, 0.55); backdrop-filter: blur(3px); opacity: 0; transition: opacity 0.3s; }
.dest-panel__sheet {
	position: absolute;
	top: 0; right: 0; bottom: 0;
	width: min(980px, 100%);
	overflow-y: auto;
	overscroll-behavior: contain;
	background: var(--cine-cream);
	box-shadow: -30px 0 80px -30px rgba(0, 0, 0, 0.5);
	transform: translateX(100%);
	transition: transform 0.38s cubic-bezier(.2, .8, .2, 1);
	outline: none;
}
.dest-panel.is-open .dest-panel__backdrop { opacity: 1; }
.dest-panel.is-open .dest-panel__sheet { transform: none; }
.dest-panel__close {
	position: sticky; top: 14px; float: right; margin: 14px 14px 0 0; z-index: 3;
	width: 46px; height: 46px; border-radius: 50%; border: 0; display: grid; place-items: center;
	background: #fff; color: var(--color-primary); box-shadow: 0 8px 20px -8px rgba(0, 0, 0, 0.4); cursor: pointer; font-size: 1.3rem;
}
.dest-trip { clear: both; }
.dest-trip__head { position: relative; margin-top: -60px; }
.dest-trip__head img { display: block; width: 100%; aspect-ratio: 16 / 7; object-fit: cover; background: var(--cine-cream); }
.dest-trip__headcopy { position: relative; margin: -70px 28px 0; padding: 26px 28px; border-radius: 22px; background: #fff; box-shadow: 0 30px 60px -40px rgba(12, 26, 56, 0.5); }
.dest-trip__title { font-family: var(--cine-display); font-weight: 600; font-size: clamp(2.2rem, 4.5vw, 3.4rem); line-height: 1.02; margin: 12px 0 14px; color: var(--cine-ink); }
.dest-trip__facts { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 22px; color: var(--cine-ink-soft); font-size: 0.95rem; }
.dest-trip__facts b { color: var(--color-primary); }
.dest-trip__section { padding: 34px 56px 6px; }
.dest-trip__section > h3 { margin: 0 0 18px; font-size: 0.8rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--cine-gold); }

.dest-route { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: stretch; gap: 0; row-gap: 14px; }
.dest-route__stop { display: flex; align-items: center; }
.dest-route__leg { display: inline-flex; flex-direction: column; align-items: center; gap: 2px; padding: 0 10px; min-width: 64px; color: var(--cine-ink-soft); position: relative; }
.dest-route__leg::before { content: ''; position: absolute; left: 6px; right: 6px; top: 0.6em; border-top: 2px solid rgba(4, 54, 107, 0.25); z-index: 0; }
.dest-route__stop--flight .dest-route__leg::before { border-top-style: dashed; border-color: var(--color-primary); }
.dest-route__stop--train .dest-route__leg::before { border-top-color: var(--cine-gold); }
.dest-route__stop--ferry .dest-route__leg::before, .dest-route__stop--cruise .dest-route__leg::before { border-top: 2px dashed #3A86B4; }
.dest-route__stop--ferry .dest-route__leg .dest-ico, .dest-route__stop--cruise .dest-route__leg .dest-ico { color: #3A86B4; }
.dest-route__stop--flightx .dest-route__leg::before { border-top-style: dotted; border-color: #B5483A; }
.dest-route__stop--flightx .dest-route__leg .dest-ico { color: #B5483A; }
.dest-route__leg .dest-ico { position: relative; z-index: 1; background: var(--cine-cream); padding: 0 3px; width: 1.5em; height: 1.2em; color: var(--color-primary); }
.dest-route__leg em { font-style: normal; font-size: 0.72rem; white-space: nowrap; }
.dest-route__city { display: flex; flex-direction: column; padding: 10px 14px; border-radius: 14px; background: #fff; border: 1px solid rgba(4, 54, 107, 0.12); }
.dest-route__city b { color: var(--color-primary); font-size: 0.98rem; }
.dest-route__city small { color: var(--cine-gold); font-weight: 700; font-size: 0.78rem; }

.dest-days { list-style: none; margin: 0; padding: 0; position: relative; }
.dest-days::before { content: ''; position: absolute; left: 33px; top: 8px; bottom: 8px; width: 2px; background: linear-gradient(var(--cine-gold), rgba(200, 150, 30, 0.15)); }
.dest-day { position: relative; display: grid; grid-template-columns: 68px minmax(0, 1fr); gap: 18px; padding-bottom: 26px; }
.dest-day__n { position: relative; z-index: 1; display: grid; place-items: center; width: 68px; height: 68px; border-radius: 50%; background: #fff; border: 2px solid var(--cine-gold); font-size: 0.66rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--cine-ink-soft); text-align: center; line-height: 1.05; }
.dest-day__n b { display: block; font-family: var(--cine-display); font-size: 1.7rem; letter-spacing: 0; color: var(--color-primary); }
.dest-day__body h4 { margin: 10px 0 8px; font-family: var(--cine-display); font-weight: 600; font-size: 1.6rem; line-height: 1.1; color: var(--cine-ink); }
.dest-day__meals { list-style: none; margin: 0 0 10px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.dest-day__meals li { padding: 3px 10px; border-radius: 999px; background: rgba(200, 150, 30, 0.14); font-size: 0.76rem; font-weight: 600; color: var(--cine-ink); }
.dest-day__body p { margin: 0 0 10px; line-height: 1.7; color: var(--cine-ink-soft); }
.dest-day__body .dest-day__note { font-size: 0.86rem; padding: 8px 12px; border-left: 3px solid rgba(4, 54, 107, 0.2); background: rgba(255, 255, 255, 0.6); border-radius: 0 8px 8px 0; }

.dest-table-wrap { overflow-x: auto; border-radius: 18px; border: 1px solid rgba(4, 54, 107, 0.12); background: #fff; }
.dest-table { width: 100%; border-collapse: collapse; font-size: 1rem; }
.dest-table th, .dest-table td { padding: 14px 18px; text-align: right; border-bottom: 1px solid rgba(4, 54, 107, 0.08); white-space: nowrap; }
.dest-table thead th { font-size: 0.78rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--cine-ink-soft); background: rgba(200, 150, 30, 0.08); }
.dest-table th:first-child { text-align: left; }
.dest-table tbody th { font-weight: 600; color: var(--color-primary); white-space: normal; min-width: 9rem; }
.dest-table tbody th small { display: block; margin-top: 3px; font-weight: 400; font-size: 0.78rem; line-height: 1.4; color: var(--cine-ink-soft); max-width: 26rem; }
.dest-table td { font-family: var(--cine-display); font-weight: 600; font-size: 1.4rem; color: var(--cine-ink); }
.dest-table tbody tr:last-child > * { border-bottom: 0; }
.dest-table__note { margin: 10px 0 0; font-size: 0.86rem; color: var(--cine-ink-soft); }

.dest-trip__lists { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; }
.dest-trip__lists h3 { margin: 0 0 14px; font-size: 0.8rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--cine-gold); }
.dest-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.dest-list li { display: flex; gap: 10px; align-items: flex-start; line-height: 1.45; color: var(--cine-ink); font-size: 0.95rem; }
.dest-list--in .dest-ico { color: #2E7D6B; margin-top: 2px; }
.dest-list--out .dest-ico { color: #B5483A; margin-top: 2px; }
.dest-trip__note { margin: 16px 0 0; font-size: 0.86rem; line-height: 1.55; color: var(--cine-ink-soft); }
.dest-trip__cta { padding: 30px 56px 56px; margin: 0; }
.dest-trip__cta .btn { width: 100%; height: 56px; font-size: 1.05rem; }

/* Tablet & phone ---------------------------------------------------------- */
@media (max-width: 1100px) {
	.dest-series__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dest-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	.dest-hero { height: 150vh; }
	.dest-hero__copy { left: 20px; right: 20px; top: 5vh; transform: translateY(calc(var(--p, 0) * -4vh)); max-width: none; }
	.dest-hero__copy { top: 3vh; }
	.dest-hero__title { font-size: clamp(3.6rem, 17vw, 5.4rem); margin-bottom: 8px; }
	.dest-hero__title--long { font-size: clamp(3rem, 13.5vw, 4.4rem); }
	.dest-hero__sub { font-size: 0.98rem; margin-bottom: 16px; }
	.dest-hero__chips { display: none; }
	.dest-hero__ctas .btn { padding-left: 18px; padding-right: 18px; }
	.dest-hero__art { right: auto; left: 50%; top: auto; bottom: -1vh; width: 104vw; transform: translateX(-50%) scale(calc(1.02 - var(--p, 0) * 0.08)); }
	.dest-hero__balloons, .dest-hero__hint { display: none; }

	.dest-map { height: 200vh; }
	.dest-map__stage { grid-template-columns: 1fr; align-content: center; gap: 18px; }
	.dest-map__copy p { font-size: 0.98rem; margin-bottom: 12px; }
	.dest-map__copy .dest-h2 { font-size: clamp(2rem, 9vw, 2.6rem); }
	.dest-map__art { margin: 0 -14px; }
	.dest-pin b { font-size: 0.6rem; padding: 2px 6px; left: 8px; }
	.dest-pin--left b { left: auto; right: 8px; }
	.dest-pin--small b { display: none; }
	.dest-pin i, .dest-pin--big i { width: 10px; height: 10px; border-width: 2px; }

	.dest-coast__grid { grid-template-columns: 1fr; }
	.dest-adv__grid { grid-template-columns: 1fr 1fr; }

	.dest-trip__headcopy { margin: -50px 14px 0; padding: 20px; }
	.dest-trip__section { padding: 28px 20px 4px; }
	.dest-trip__cta { padding: 24px 20px 40px; }
	.dest-trip__lists { grid-template-columns: 1fr; gap: 24px; }
	.dest-days::before { left: 25px; }
	.dest-day { grid-template-columns: 52px minmax(0, 1fr); gap: 12px; }
	.dest-day__n { width: 52px; height: 52px; font-size: 0.56rem; }
	.dest-day__n b { font-size: 1.3rem; }
	.dest-day__body h4 { margin-top: 4px; font-size: 1.35rem; }
	.dest-table th, .dest-table td { padding: 11px 8px; }
	.dest-table td { font-size: 1.05rem; }
	.dest-table tbody th { min-width: 0; }
	.dest-table tbody th small { max-width: none; }
}
@media (max-height: 700px) {
	.dest-hero__hint { display: none; }
}
@media (max-width: 640px) {
	.dest-series__grid, .dest-grid, .dest-adv__grid { grid-template-columns: 1fr; }
	.dest-filters__row { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; width: 100%; padding-bottom: 4px; scrollbar-width: none; }
	.dest-filters__row::-webkit-scrollbar { display: none; }
	.dest-chip { flex: none; }
	.dest-select { flex: none; }
}
@media (prefers-reduced-motion: reduce) {
	.dest-hero { height: auto; }
	.dest-hero__stage { position: relative; top: 0; height: auto; min-height: 90vh; }
	.dest-map { height: auto; }
	.dest-map__stage { position: relative; top: 0; height: auto; padding: 80px 24px; }
	.dest-balloon, .dest-hero__hint i { animation: none; }
	.dest-panel__sheet, .dest-panel__backdrop { transition: none; }
}
