/* Planet Conservation: del dosel al mar.
   Selva / Monte / Oro / Arena / Tinta. Fraunces + Hanken Grotesk, notas en Mansalva. */

@property --intro { syntax: '<angle>'; inherits: false; initial-value: 0deg; }

:root {
  --selva: #0E241B; --selva-2: #15352A; --selva-3: #0A1B14;
  --monte: #1D5A3A; --monte-2: #174A30;
  --oro: #E2AC55; --oro-d: #B07A22;
  --arena: #F2EBDC; --arena-2: #E8DFCA;
  --tinta: #13211A;
  --mal: #9B2C1F;

  --fd: 'Fraunces', 'Iowan Old Style', 'Palatino Linotype', Georgia, serif;
  --ft: 'Hanken Grotesk', 'Segoe UI', system-ui, -apple-system, sans-serif;
  --fh: 'Mansalva', 'Segoe Print', 'Bradley Hand', cursive;

  --out: cubic-bezier(.16, 1, .3, 1);
  --io: cubic-bezier(.65, 0, .35, 1);
  --gut: clamp(20px, 4.4vw, 68px);
  --gap: clamp(16px, 2vw, 32px);
  --max: 1400px;
  --sec: clamp(84px, 12vw, 180px);
  --top-h: 72px;
  --r: 4px;
  --grano: url(../img/grano.png) 0 0 / 128px 128px;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 96px; overflow-x: clip; }
html.is-locked { overflow: hidden; }
body { margin: 0; font-family: var(--ft); font-size: 1.0625rem; line-height: 1.6; color: var(--tinta); background: var(--selva-3); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: clip; }
img, svg { display: block; max-width: 100%; }
img { height: auto; -webkit-user-drag: none; }
h1, h2, h3, h4, p, ul, ol, dl, dd, figure { margin: 0; }
h1, h2, h3, h4 { font-weight: 400; }
ul, ol { padding: 0; list-style: none; }
a { color: inherit; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 2px solid var(--acc, var(--oro)); outline-offset: 3px; border-radius: 3px; }
::selection { background: var(--oro); color: var(--tinta); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.sprite { position: absolute; }
main { background: var(--arena); }
.skip { position: fixed; left: 16px; top: -80px; z-index: 200; background: var(--oro); color: var(--tinta); padding: 12px 20px; border-radius: 999px; font-weight: 600; text-decoration: none; transition: top .25s var(--out); }
.skip:focus { top: 16px; }
.wrap { width: min(100% - 2 * var(--gut), var(--max)); margin-inline: auto; }
.sec { padding-block: var(--sec); }
.sec--tight { padding-block: calc(var(--sec) * .55); }
.sec--flush { padding-top: 0; }

/* ---------- Temas ---------- */
.t-dark { --bg: var(--selva); --fg: var(--arena); --mut: rgba(242, 235, 220, .74); --acc: var(--oro); --line: rgba(242, 235, 220, .18); --line2: rgba(242, 235, 220, .46); --card: var(--selva-2); --scrib: var(--oro); background: var(--bg) var(--grano); color: var(--fg); }
.t-light { --bg: var(--arena); --fg: var(--tinta); --mut: #46564C; --acc: var(--monte); --line: rgba(19, 33, 26, .16); --line2: rgba(19, 33, 26, .52); --card: var(--arena-2); --scrib: var(--oro-d); background: var(--bg) var(--grano); color: var(--fg); }
.t-monte { --bg: var(--monte); --fg: var(--arena); --mut: rgba(242, 235, 220, .86); --acc: var(--oro); --line: rgba(242, 235, 220, .26); --line2: rgba(242, 235, 220, .55); --card: var(--monte-2); --scrib: var(--oro); background: var(--bg) var(--grano); color: var(--fg); }

/* ---------- Tipografía ---------- */
.d1, .d2, .d3 { font-family: var(--fd); font-weight: 400; font-optical-sizing: auto; font-variation-settings: 'SOFT' 70, 'WONK' 1; text-wrap: balance; }
.d1 { font-size: clamp(2.55rem, 6.1vw, 6.25rem); line-height: .97; letter-spacing: -.024em; }
.d2 { font-size: clamp(2.05rem, 4.7vw, 4.3rem); line-height: 1; letter-spacing: -.026em; }
.d3 { font-size: clamp(1.55rem, 2.6vw, 2.3rem); line-height: 1.08; letter-spacing: -.018em; }
.lead { font-size: clamp(1.12rem, 1.42vw, 1.36rem); line-height: 1.5; max-width: 34em; }
.body { color: var(--mut); max-width: 62ch; }
.hand { font-family: var(--fh); font-size: clamp(1.3rem, 1.9vw, 1.7rem); line-height: 1.15; color: var(--acc); rotate: -2deg; transform-origin: 0 50%; }
.sp { font-family: var(--fd); font-style: italic; font-variation-settings: 'SOFT' 100, 'WONK' 1; }

.mark { position: relative; display: inline-block; white-space: nowrap; }
.scrib { position: absolute; pointer-events: none; overflow: visible; fill: none; stroke: var(--scrib, var(--oro)); stroke-width: 3.5; stroke-linecap: round; max-width: none; }
.scrib--under { left: -3%; bottom: -.2em; width: 106%; height: .34em; }
.scrib--circle { left: -20%; top: -18%; width: 140%; height: 140%; }

/* palabras partidas para los titulares */
.w { display: inline-block; overflow: hidden; vertical-align: top; padding: .1em .07em .2em; margin: -.1em -.07em -.2em; }
.wi { display: inline-block; }

/* ---------- Botones y enlaces ---------- */
.btn { --bbg: var(--fg); --bfg: var(--bg); --bhov: var(--acc); --bhf: var(--tinta); position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .6em; min-height: 54px; padding: 0 1.7em; border-radius: 999px; font-weight: 600; font-size: 1rem; text-decoration: none; background: var(--bbg); color: var(--bfg); overflow: hidden; isolation: isolate; transform: translate(var(--mx, 0px), var(--my, 0px)) scale(var(--ps, 1)); transition: transform .6s var(--out), color .35s; }
.btn::before { content: ''; position: absolute; inset: -1px; z-index: -1; border-radius: 50% 50% 0 0 / 100% 100% 0 0; background: var(--bhov); transform: translateY(102%); transition: transform .6s var(--out), border-radius .6s var(--out); }
.btn:hover::before, .btn:focus-visible::before { transform: none; border-radius: 0; }
.btn:hover, .btn:focus-visible { color: var(--bhf); }
.btn:active { --ps: .96; }
.btn--gold { --bbg: var(--oro); --bfg: var(--tinta); --bhov: var(--arena); --bhf: var(--tinta); }
.btn--monte { --bbg: var(--monte); --bfg: var(--arena); --bhov: var(--tinta); --bhf: var(--arena); }
.btn--line { --bbg: transparent; --bfg: var(--fg); --bhov: var(--fg); --bhf: var(--bg); box-shadow: inset 0 0 0 1.5px var(--line2); }
.btn--sm { min-height: 46px; padding: 0 1.25em; font-size: .95rem; }
.btn .ico { width: 20px; height: 20px; flex: none; }

.link { display: inline-block; font-weight: 600; text-decoration: none; padding: 12px 0 4px; margin-top: -12px; background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1.5px no-repeat; }
.link:hover { animation: wipe .7s var(--io); }
@keyframes wipe { 0% { background-size: 100% 1.5px; background-position: 100% 100%; } 49% { background-size: 0 1.5px; background-position: 100% 100%; } 50% { background-size: 0 1.5px; background-position: 0 100%; } 100% { background-size: 100% 1.5px; background-position: 0 100%; } }

.want { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px 0 12px; border-radius: 999px; box-shadow: inset 0 0 0 1.5px var(--line2); font-weight: 600; font-size: .94rem; transition: background-color .3s, color .3s, box-shadow .3s; }
.want .ico { width: 18px; height: 18px; transition: rotate .5s var(--out); }
.want:hover { box-shadow: inset 0 0 0 1.5px var(--acc); }
.want[aria-pressed="true"] { background: var(--acc); color: var(--bg); box-shadow: inset 0 0 0 1.5px var(--acc); }
.want[aria-pressed="true"] .ico { rotate: 45deg; }

.round { width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; box-shadow: inset 0 0 0 1.5px var(--line2); transition: background-color .3s, color .3s; }
.round:hover { background: var(--fg); color: var(--bg); }
.round:disabled { opacity: .35; cursor: default; background: none; color: inherit; }

.facts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: clamp(20px, 2.4vw, 30px); }
.facts li { padding: 8px 16px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--line2); font-size: .94rem; font-weight: 500; }

/* ---------- Cabecera ---------- */
.top { position: fixed; inset: 0 0 auto 0; z-index: 100; color: var(--arena); transition: transform .6s var(--out), background-color .4s; --acc: var(--oro); }
.top { background: rgba(10, 27, 20, .92); }
.js .top:not(.is-solid) { background: none; }
.top.is-hidden { transform: translateY(-101%); }
.top.is-solid { background: rgba(10, 27, 20, .9); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.js .top.is-menu { background: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
.promo { background: var(--oro); color: var(--tinta); text-align: center; font-size: .86rem; font-weight: 500; line-height: 1.35; overflow: hidden; max-height: 80px; transition: max-height .5s var(--out); --acc: var(--tinta); }
.promo p { padding: 8px var(--gut); }
.promo a { font-weight: 600; white-space: nowrap; }
.top.is-solid .promo, .top.is-menu .promo { max-height: 0; }
.nav { display: flex; align-items: center; gap: clamp(14px, 2.2vw, 36px); height: var(--top-h); }
.nav__logo { flex: none; width: 96px; margin-right: auto; }
.nav__logo img { width: 100%; }
.nav__links, .nav__cta { display: none; }
.nav__link { display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; font-weight: 500; font-size: .98rem; }
.nav__link span { position: relative; }
.nav__link span::after { content: ''; position: absolute; left: 0; right: 0; bottom: -5px; height: 1.5px; background: var(--oro); transform: scaleX(0); transform-origin: 100% 50%; transition: transform .5s var(--out); }
.nav__link:hover span::after, .nav__link[aria-current] span::after { transform: none; transform-origin: 0 50%; }
.burger { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 2px 0 12px; font-weight: 600; }
.burger__box { position: relative; width: 26px; height: 14px; }
.burger__box i { position: absolute; left: 0; right: 0; height: 2px; border-radius: 2px; background: currentColor; transition: top .5s var(--out), rotate .5s var(--out); }
.burger__box i:first-child { top: 1px; }
.burger__box i:last-child { top: 11px; }
.burger[aria-expanded="true"] i { top: 6px; }
.burger[aria-expanded="true"] i:first-child { rotate: 45deg; }
.burger[aria-expanded="true"] i:last-child { rotate: -45deg; }

.menu { position: fixed; inset: 0; z-index: 99; clip-path: inset(0 0 100% 0); visibility: hidden; overflow-y: auto; overscroll-behavior: contain; transition: clip-path .8s var(--out), visibility 0s .8s; background: radial-gradient(120% 70% at 85% 0%, #1B4634, var(--selva) 62%); }
.menu.is-open { clip-path: inset(0); visibility: visible; transition: clip-path .8s var(--out); }
.menu__in { min-height: 100%; display: flex; flex-direction: column; justify-content: space-between; gap: 36px; padding-top: calc(var(--top-h) + 28px); padding-bottom: 32px; }
.menu__link { display: block; padding: 13px 0; text-decoration: none; border-bottom: 1px solid var(--line); }
.menu__t { display: block; font-family: var(--fd); font-size: clamp(2rem, 8.5vw, 3.2rem); line-height: 1.05; letter-spacing: -.025em; font-variation-settings: 'SOFT' 70, 'WONK' 1; }
.menu__link[aria-current] .menu__t { font-style: italic; color: var(--oro); }
.menu__d { display: block; color: var(--mut); font-size: .95rem; margin-top: 3px; }
.menu__list li { opacity: 0; translate: 0 26px; transition: opacity .5s, translate .9s var(--out); }
.menu.is-open .menu__list li { opacity: 1; translate: none; }
.menu.is-open .menu__list li:nth-child(1) { transition-delay: .14s; }
.menu.is-open .menu__list li:nth-child(2) { transition-delay: .19s; }
.menu.is-open .menu__list li:nth-child(3) { transition-delay: .24s; }
.menu.is-open .menu__list li:nth-child(4) { transition-delay: .29s; }
.menu.is-open .menu__list li:nth-child(5) { transition-delay: .34s; }
.menu.is-open .menu__list li:nth-child(6) { transition-delay: .39s; }
.menu__foot { display: grid; gap: 18px; justify-items: start; }
.menu__foot p { color: var(--mut); line-height: 1.9; }
.menu__foot .btn { width: 100%; }

/* ---------- Láminas (fotos) ---------- */
.plate { position: relative; }
.plate__img { position: relative; overflow: hidden; border-radius: var(--r); aspect-ratio: var(--ar, 4 / 3); background: var(--card); }
.plate__pic { width: 100%; height: 100%; object-fit: cover; filter: saturate(.88) contrast(1.03); scale: 1.14; translate: 0 calc(var(--plx, 0) * -4.5%); will-change: translate; }
.plate__img::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(14, 36, 27, 0) 55%, rgba(14, 36, 27, .3)); mix-blend-mode: multiply; }
.plate__cap { margin-top: 10px; font-family: var(--fd); font-style: italic; font-size: .93rem; line-height: 1.3; color: var(--mut); font-variation-settings: 'SOFT' 100, 'WONK' 0; }

/* ---------- Follaje ---------- */
.foliage { position: absolute; inset: 0; z-index: 1; pointer-events: none; --mx: 0; --my: 0; }
.frond { position: absolute; left: var(--x); top: var(--y); width: var(--w); height: auto; max-width: none; overflow: visible; fill: currentColor; transform-origin: var(--ox) var(--oy); translate: calc(var(--ox) * -1 + var(--mx) * var(--d) * 1px) calc(var(--oy) * -1 + var(--my) * var(--d) * 1px); rotate: var(--r); scale: var(--flip) 1; transform: rotate(var(--intro)); animation: sway var(--t) ease-in-out infinite alternate; transition: --intro 2.6s var(--out); will-change: rotate, transform; }
@keyframes sway { from { rotate: calc(var(--r) - 1.7deg); } to { rotate: calc(var(--r) + 1.7deg); } }
.frond--back { color: #17402F; }
.frond--mid { color: #0A1F17; }
.frond--front { color: #06150F; filter: blur(3px); }
.frond .rib { stroke: rgba(242, 235, 220, .07); }
.js:not(.is-ready) .frond { --intro: var(--in); }

/* ---------- Portadas ---------- */
.hero { position: relative; overflow: hidden; isolation: isolate; display: flex; flex-direction: column; padding-top: calc(var(--top-h) + 64px); background: var(--grano), radial-gradient(110% 80% at 72% 28%, #1C4936 0%, var(--selva) 58%, var(--selva-3) 100%); }
.hero--home { min-height: 100svh; }
.hero__grid { position: relative; z-index: 2; display: grid; gap: 44px var(--gap); flex: 1; align-content: center; padding-bottom: clamp(44px, 6vw, 88px); }
.hero__crumb { display: flex; gap: .6em; font-size: .93rem; color: var(--mut); margin-bottom: clamp(16px, 2.2vw, 28px); }
.hero__crumb a { text-decoration: none; padding: 12px 0; margin: -12px 0; }
.hero__crumb a:hover { text-decoration: underline; text-underline-offset: 4px; }
.hero__tag { font-family: var(--fd); font-style: italic; font-size: clamp(1.35rem, 2.5vw, 2.2rem); line-height: 1.12; color: var(--oro); margin-top: .55em; font-variation-settings: 'SOFT' 100, 'WONK' 1; }
.hero__lead { margin-top: clamp(18px, 2.2vw, 30px); color: var(--mut); max-width: 33em; }
.hero__cta { display: grid; gap: 12px; margin-top: clamp(24px, 3vw, 40px); }
.hero__plates { position: relative; width: min(100%, 420px); padding: 0 0 13% 16%; justify-self: center; }
.hero__plate--a { rotate: 1.6deg; translate: 0 calc(var(--plx, 0) * -22px); box-shadow: 0 40px 70px -40px rgba(0, 0, 0, .75); }
.hero__plate--b { position: absolute; left: 0; bottom: 0; width: 48%; z-index: 2; rotate: -4.5deg; translate: 0 calc(var(--plx, 0) * -54px); }
.hero__plate--b .plate__img { box-shadow: 0 28px 50px -24px rgba(0, 0, 0, .8); }
.hero__plate--a:not(:only-child) .plate__cap { text-align: right; padding-left: 42%; }
.hero__foot { position: relative; z-index: 2; display: flex; justify-content: space-between; gap: 8px 20px; flex-wrap: wrap; padding-block: 16px; border-top: 1px solid var(--line); font-size: .9rem; color: var(--mut); }
.hero__coord { font-variant-numeric: tabular-nums; }
.hero--lost { min-height: 88svh; }
.frond--wide { display: none; }

/* ---------- Inicio: manifiesto ---------- */
.statement__in { display: grid; gap: 28px var(--gap); }
.statement__h { font-family: var(--ft); font-size: 1rem; font-weight: 600; line-height: 1.4; color: var(--monte); max-width: 15em; padding-top: 14px; border-top: 1.5px solid var(--monte); }
.statement__text, .intro__big { font-family: var(--fd); letter-spacing: -.022em; font-variation-settings: 'SOFT' 70, 'WONK' 1; text-wrap: pretty; }
.statement__text { font-size: clamp(1.85rem, 4.3vw, 4rem); line-height: 1.1; }
.intro__big { font-size: clamp(1.5rem, 3vw, 2.7rem); line-height: 1.16; }
.intro__big--wide { max-width: 25em; }
.fw { transition: opacity .45s linear; }
.js [data-fill] .fw { opacity: .17; }
.js [data-fill] .fw.on { opacity: 1; }

/* ---------- Inicio: índice ---------- */
.pillars__head { display: grid; gap: 18px var(--gap); margin-bottom: clamp(28px, 5vw, 68px); }
.index { border-bottom: 1px solid var(--line); }
.index__item { position: relative; transition: opacity .4s; }
.index__item::before, .ledger__row::before, .step::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: var(--line); }
.index__row { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 4px 16px; align-items: center; padding: 20px 0; text-decoration: none; }
.index__t { grid-column: 2; font-family: var(--fd); font-size: clamp(1.7rem, 4.4vw, 4rem); line-height: 1.02; letter-spacing: -.026em; font-variation-settings: 'SOFT' 70, 'WONK' 1; transition: translate .7s var(--out); }
.index__d { grid-column: 2; color: var(--mut); font-size: .98rem; line-height: 1.45; }
.index__thumb { grid-column: 1; grid-row: 1 / span 2; width: 72px; aspect-ratio: 4 / 5; border-radius: var(--r); overflow: hidden; rotate: -3deg; }
.index__item:nth-child(even) .index__thumb { rotate: 2.5deg; }
.index__thumb img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.88); }
.index__go { display: none; }

/* ---------- Inicio: fin de semana ---------- */
.weekend__grid { display: grid; gap: 44px var(--gap); }
.weekend__copy { display: grid; gap: 22px; justify-items: start; align-content: start; }
.weekend__copy .facts { margin-top: 0; }
.days__d { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 20px; padding: 24px 0; border-top: 1px solid var(--line); }
.days__d:last-child { border-bottom: 1px solid var(--line); }
.days__n { font-size: .95rem; font-weight: 600; color: var(--oro); }
.days__v { font-family: var(--fd); font-size: clamp(1.6rem, 2.7vw, 2.4rem); line-height: 1.06; letter-spacing: -.02em; font-variation-settings: 'SOFT' 70, 'WONK' 1; }
.days__x { color: var(--mut); }
.days__d .glyph { grid-column: 2; grid-row: 1 / span 3; align-self: center; width: 54px; height: 54px; color: var(--oro); }

/* ---------- Cinta de experiencias ---------- */
.ribbon { padding-block: clamp(56px, 8vw, 112px); overflow: hidden; }
.marquee { overflow-x: auto; white-space: nowrap; scrollbar-width: none; }
.marquee::-webkit-scrollbar { display: none; }
.marquee.is-live { overflow: hidden; }
.marquee__track { display: inline-flex; align-items: center; }
.marquee__track li { display: inline-flex; align-items: center; gap: clamp(18px, 3vw, 46px); padding-right: clamp(18px, 3vw, 46px); font-family: var(--fd); font-size: clamp(2.5rem, 6.6vw, 6rem); line-height: 1.12; letter-spacing: -.03em; font-variation-settings: 'SOFT' 70, 'WONK' 1; }
.marquee__track a { text-decoration: none; transition: color .3s; }
.marquee__track a:hover, .marquee__track a:focus-visible { color: var(--oro); font-style: italic; }
.marquee__pez { width: .5em; height: .43em; flex: none; fill: var(--oro); stroke: var(--monte); }
.marquee--ghost { margin-top: .1em; }
.marquee--ghost li { color: rgba(242, 235, 220, .3); font-style: italic; font-size: clamp(2rem, 5vw, 4.4rem); }
.ribbon__foot { display: grid; gap: 22px; justify-items: start; margin-top: clamp(32px, 5vw, 60px); }

/* ---------- Tiras deslizables y productos ---------- */
.shopstrip__head, .gal__head { display: grid; gap: 18px var(--gap); margin-bottom: clamp(28px, 4vw, 56px); }
.shopstrip__head > div { display: grid; gap: 16px; justify-items: start; }
.strip, .hpin__track, .marquee, .partners__belt, .xp__nav, .prod { position: relative; }
.strip { overflow-x: auto; overflow-y: hidden; scrollbar-width: none; padding-inline: max(var(--gut), (100vw - var(--max)) / 2); padding-block: 8px 28px; cursor: grab; }
.strip::-webkit-scrollbar { display: none; }
.strip.is-drag { cursor: grabbing; user-select: none; -webkit-user-select: none; }
.strip.is-drag a { pointer-events: none; }
.strip__track { display: flex; gap: clamp(16px, 2vw, 28px); width: max-content; }
.strip .prod { width: clamp(248px, 74vw, 360px); }
.prod { display: flex; flex-direction: column; }
.prod__img { position: relative; aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--r); background: var(--card); }
.prod__img img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.9); transition: scale 1.3s var(--out); }
.prod:hover .prod__img img { scale: 1.06; }
.prod__ribbon { position: absolute; left: 12px; top: 12px; background: var(--oro); color: var(--tinta); font-size: .82rem; font-weight: 600; padding: 5px 12px; border-radius: 999px; }
.prod__body { display: flex; flex-direction: column; flex: 1; padding-top: 16px; }
.prod__name { font-family: var(--fd); font-size: 1.45rem; line-height: 1.1; letter-spacing: -.015em; font-variation-settings: 'SOFT' 70, 'WONK' 1; }
.prod__mat { font-size: .9rem; font-weight: 600; color: var(--monte); margin-top: 5px; }
.prod__sub { color: var(--mut); font-size: .98rem; line-height: 1.5; margin-top: 10px; white-space: normal; }
.prod__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: auto; padding-top: 18px; }
.prod__price { display: flex; align-items: baseline; gap: 10px; font-variant-numeric: tabular-nums; }
.prod__price s { color: var(--mut); font-size: .95rem; }
.prod__price b { font-family: var(--fd); font-size: 1.55rem; font-weight: 500; }

/* ---------- Mapa ---------- */
.where__grid { display: grid; gap: 40px var(--gap); align-items: center; }
.where__copy { display: grid; gap: 22px; justify-items: start; }
.coast { width: 100%; height: auto; overflow: visible; }
.coast text { font: 500 15px var(--ft); fill: rgba(242, 235, 220, .74); }
.coast__land { fill: url(#tierra); }
.coast__line { stroke: var(--arena); stroke-width: 2; stroke-linecap: round; }
.coast__contours path { stroke: rgba(242, 235, 220, .16); stroke-width: 1; }
.coast__swell path { stroke: rgba(242, 235, 220, .3); stroke-width: 1.4; stroke-linecap: round; }
.coast__places circle { fill: var(--arena); }
.coast .coast__sea { font: italic 400 23px var(--fd); fill: rgba(242, 235, 220, .5); }
.coast__pin circle { fill: var(--oro); }
.coast__pin .coast__ring { fill: none; stroke: var(--oro); stroke-width: 1.5; transform-box: fill-box; transform-origin: center; animation: ping 2.6s var(--out) infinite; }
@keyframes ping { from { transform: scale(.6); opacity: 1; } to { transform: scale(3.4); opacity: 0; } }
.coast .coast__here { font: 600 19px var(--ft); fill: var(--arena); }
.coast__note path { stroke: var(--oro); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.coast .coast__hand { font: 400 29px var(--fh); fill: var(--oro); }
.coast__north path { stroke: rgba(242, 235, 220, .6); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.coast .coast__n { font: 600 14px var(--ft); }
.coast .coast__here--s { display: none; }
@media (max-width: 899px) {
  .coast text { font-size: 25px; }
  .coast .coast__sea { font-size: 34px; }
  .coast .coast__here { font-size: 33px; }
  .coast .coast__hand { font-size: 46px; }
  .coast .coast__n { font-size: 22px; }
  .coast .coast__minor, .coast .coast__here--l { display: none; }
  .coast .coast__here--s { display: block; }
  .coast__line { stroke-width: 3; }
  .coast__places circle { r: 6px; }
  .coast__places text:nth-of-type(3) { transform: translate(-84px, 34px); }
  .coast__places text:nth-of-type(4) { transform: translate(-96px, 8px); }
}
.where__cap { margin-top: 10px; font-family: var(--fd); font-style: italic; font-size: .9rem; color: var(--mut); }

/* ---------- Bloques de introducción ---------- */
.intro__grid { display: grid; gap: 32px var(--gap); }
.intro__side { display: grid; gap: 22px; align-content: start; justify-items: start; }
.intro__h { color: var(--monte); margin-bottom: .7em; }
.intro__note { max-width: 15em; }
.tally { width: 100%; }
.tally li { display: grid; grid-template-columns: 3.4rem minmax(0, 1fr); gap: 14px; align-items: baseline; padding: 14px 0; border-top: 1px solid var(--line); }
.tally b { font-family: var(--fd); font-size: 2.5rem; font-weight: 400; line-height: 1; color: var(--monte); font-variant-numeric: tabular-nums; }
.tally span { color: var(--mut); font-size: .98rem; line-height: 1.4; }

/* ---------- Educación: libro de cursos ---------- */
.ledger__grid { display: grid; gap: 36px var(--gap); }
.ledger__side { display: grid; gap: 20px; align-content: start; }
.ledger__plate { width: min(100%, 420px); rotate: -1.5deg; margin-top: 8px; }
.ledger { border-bottom: 1px solid var(--line); }
.ledger__row { position: relative; scroll-margin-top: 110px; }
.ledger__head { display: grid; grid-template-columns: 48px minmax(0, 1fr) 44px; gap: 4px 14px; align-items: center; width: 100%; text-align: left; padding: 22px 0; }
.ledger__glyph { grid-row: 1 / span 2; width: 48px; height: 48px; color: var(--monte); }
.ledger__glyph .glyph, .spec__glyph .glyph { width: 100%; height: 100%; }
.ledger__name { font-family: var(--fd); font-size: clamp(1.4rem, 2.5vw, 2.15rem); line-height: 1.08; letter-spacing: -.02em; font-variation-settings: 'SOFT' 70, 'WONK' 1; transition: translate .6s var(--out); }
.ledger__hook { grid-column: 2; color: var(--mut); font-size: 1rem; line-height: 1.45; }
.ledger__x { grid-column: 3; grid-row: 1 / span 2; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; box-shadow: inset 0 0 0 1.5px var(--line2); transition: rotate .6s var(--out), background-color .3s, color .3s, box-shadow .3s; }
.ledger__head[aria-expanded="true"] .ledger__x { rotate: 45deg; background: var(--monte); color: var(--arena); box-shadow: none; }
.ledger__body { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .7s var(--out); }
.ledger__row.is-open .ledger__body { grid-template-rows: 1fr; }
.ledger__inner { overflow: hidden; visibility: hidden; transition: visibility 0s .7s; }
.ledger__row.is-open .ledger__inner { visibility: visible; transition-delay: 0s; }
.ledger__inner p { max-width: 58ch; padding-bottom: 16px; }
.ledger__inner .want { margin-bottom: 28px; }
.ledger__row.is-open .ledger__glyph [pathLength] { animation: draw 1.3s var(--io) both; }
@keyframes draw { from { stroke-dasharray: 1; stroke-dashoffset: 1; } to { stroke-dasharray: 1; stroke-dashoffset: 0; } }

/* ---------- Educación: cursos de campo ---------- */
.fieldsec { padding-block: var(--sec) calc(var(--sec) * .7); }
.fieldsec__sub { font-family: var(--fd); font-style: italic; font-size: clamp(1.25rem, 2.2vw, 1.9rem); line-height: 1.15; color: var(--oro); margin-top: .5em; font-variation-settings: 'SOFT' 100, 'WONK' 1; }
.fieldsec__cols { display: grid; gap: 20px var(--gap); margin-top: clamp(26px, 4vw, 52px); }
.hpin { position: relative; margin-top: clamp(36px, 6vw, 76px); }
.hpin__track { display: flex; gap: clamp(16px, 2vw, 28px); padding: 24px max(var(--gut), (100vw - var(--max)) / 2) 30px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
.hpin__track::-webkit-scrollbar { display: none; }
.spec { --bg: var(--arena); --fg: var(--tinta); --mut: #46564C; --acc: var(--monte); --line2: rgba(19, 33, 26, .52); position: relative; flex: none; width: min(82vw, 400px); display: flex; flex-direction: column; padding: 30px 26px 28px; background: var(--arena) var(--grano); color: var(--tinta); border-radius: 5px; rotate: var(--tilt, 0deg); box-shadow: 0 26px 50px -30px rgba(0, 0, 0, .75); scroll-snap-align: center; scroll-margin-top: 110px; }
.spec:nth-child(odd) { --tilt: -.7deg; }
.spec:nth-child(even) { --tilt: .6deg; }
.spec:nth-child(3n) { --tilt: 1deg; }
.spec::before { content: ''; position: absolute; inset: 9px; border: 1px solid rgba(19, 33, 26, .14); border-radius: 2px; pointer-events: none; }
.spec__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; min-height: 84px; }
.spec__glyph { width: 80px; height: 80px; flex: none; color: var(--monte); }
.spec__note { font-size: 1.3rem; max-width: 7.5em; text-align: right; rotate: 3deg; transform-origin: 100% 50%; }
.spec__name { font-family: var(--fd); font-size: clamp(1.6rem, 2.3vw, 2.05rem); line-height: 1.05; letter-spacing: -.02em; margin-top: 14px; font-variation-settings: 'SOFT' 70, 'WONK' 1; }
.spec__name span { display: block; font-style: italic; font-size: .62em; letter-spacing: 0; color: var(--monte); margin-top: 5px; }
.spec__hook { font-weight: 600; line-height: 1.4; margin-top: 14px; }
.spec__body { color: var(--mut); font-size: .98rem; line-height: 1.55; margin-top: 8px; }
.spec__sp { margin-top: auto; padding-top: 18px; font-size: .9rem; line-height: 1.5; }
.spec__sp dt { font-weight: 600; color: var(--monte); }
.spec__sp dd { color: var(--mut); }
.spec .want { margin-top: 16px; align-self: flex-start; }
.spec--end { --bg: var(--selva); --fg: var(--arena); --mut: rgba(242, 235, 220, .74); --acc: var(--oro); background: none; color: var(--arena); box-shadow: none; rotate: none; justify-content: center; align-items: flex-start; gap: 16px; }
.spec--end::before { display: none; }
.spec--end .spec__body { margin: 0; }
.spec__endt { font-family: var(--fd); font-size: clamp(2rem, 3.4vw, 3.1rem); line-height: 1.03; letter-spacing: -.025em; font-variation-settings: 'SOFT' 70, 'WONK' 1; }
.hpin__ui { display: flex; align-items: center; gap: 18px; margin-top: 8px; }
.hpin__count { display: flex; align-items: baseline; gap: 8px; min-width: 5em; color: var(--mut); font-variant-numeric: tabular-nums; }
.hpin__count b { font-family: var(--fd); font-size: 2rem; font-weight: 400; line-height: 1; color: var(--oro); }
.hpin__bar { position: relative; flex: 1; height: 2px; background: var(--line); overflow: hidden; }
.hpin__bar i { position: absolute; inset: 0; background: var(--oro); transform: scaleX(var(--hp, 0)); transform-origin: 0 50%; }
.hpin__btns { display: flex; gap: 8px; }
/* modo fijado (escritorio): el desplazamiento vertical mueve la bandeja */
.hpin.is-pinned .hpin__sticky { position: sticky; top: 0; height: 100svh; display: flex; flex-direction: column; justify-content: center; overflow: hidden; }
.hpin.is-pinned .hpin__track { overflow: visible; width: max-content; scroll-snap-type: none; will-change: transform; }

/* ---------- Educación: español, puente, cierre ---------- */
.spanish__grid { display: grid; gap: 44px var(--gap); align-items: center; }
.spanish__media { position: relative; width: min(100%, 460px); padding-bottom: 14%; }
.spanish__a { width: 76%; rotate: -2deg; }
.spanish__b { position: absolute; right: 0; bottom: 0; width: 52%; rotate: 3deg; z-index: 2; }
.spanish__b .plate__img, .stay__b .plate__img, .steps__b .plate__img { box-shadow: 0 24px 44px -24px rgba(19, 33, 26, .6); }
.spanish__copy { display: grid; gap: 18px; justify-items: start; }
.bridge__in { display: grid; gap: 24px; align-items: center; justify-items: start; padding-block: clamp(28px, 4vw, 48px); border-block: 1px solid var(--line); }
.bridge__in > div { display: grid; gap: 12px; }
.closing__in { display: grid; gap: 36px var(--gap); }
.closing__side { display: grid; gap: 22px; justify-items: start; }
.closing__note { color: var(--oro); }

/* ---------- Itinerarios ---------- */
.topics { display: grid; margin-top: clamp(28px, 5vw, 60px); border-top: 1px solid var(--line); }
.topic { padding: 28px 0 32px; border-bottom: 1px solid var(--line); }
.topic .glyph { width: 60px; height: 60px; color: var(--monte); margin-bottom: 20px; transition: rotate .8s var(--out), scale .8s var(--out); }
.topic:hover .glyph { rotate: -8deg; scale: 1.1; }
.topic__t { font-family: var(--fd); font-size: 1.6rem; line-height: 1.1; letter-spacing: -.015em; margin-bottom: 10px; font-variation-settings: 'SOFT' 70, 'WONK' 1; }
.topic p { color: var(--mut); font-size: 1rem; }

.sky { --bg: var(--arena); --fg: var(--tinta); --mut: #46564C; --acc: var(--monte); --line: rgba(19, 33, 26, .16); --line2: rgba(19, 33, 26, .52); --sun: 52deg; --dw: 150px; position: relative; overflow: clip; background: var(--bg) var(--grano); color: var(--fg); transition: background-color 1.2s var(--io), color 1.2s var(--io); }
.sky[data-phase="manana"] { --bg: #F4EEDF; }
.sky[data-phase="mediodia"] { --bg: #F8F3E6; }
.sky[data-phase="tarde"] { --bg: #EBDDBE; }
.sky[data-phase="noche"] { --bg: #0A1B14; --fg: var(--arena); --mut: rgba(242, 235, 220, .76); --acc: var(--oro); --line: rgba(242, 235, 220, .2); --line2: rgba(242, 235, 220, .5); }
.sky__grid { position: relative; display: grid; gap: 28px var(--gap); }
.sky__side { position: sticky; top: 0; z-index: 5; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding-block: 12px; background: var(--bg); border-bottom: 1px solid var(--line); transition: background-color 1.2s var(--io), border-color 1.2s var(--io); }
.sky__side .d2 { font-size: 1.5rem; }
.dial { position: relative; flex: none; width: var(--dw); aspect-ratio: 240 / 132; clip-path: inset(-30px -30px 8% -30px); }
.dial__arc { width: 100%; height: 100%; }
.dial__arc path { stroke: var(--line2); stroke-width: 1.5; transition: stroke 1.2s var(--io); }
.dial__arm { position: absolute; left: 50%; top: 90.9%; width: 0; height: 0; rotate: var(--sun); transition: rotate 1.6s var(--io); }
.dial__sun { position: absolute; left: -11px; top: -11px; width: 22px; height: 22px; border-radius: 50%; background: var(--oro); box-shadow: 0 0 0 6px rgba(226, 172, 85, .28), 0 0 26px 6px rgba(226, 172, 85, .4); translate: 0 calc(var(--dw) * -.45); }
.dial__moon { position: absolute; left: calc(50% - 12px); top: 16%; width: 24px; height: 24px; border-radius: 50%; box-shadow: inset -7px 3px 0 0 var(--arena); opacity: 0; translate: 0 26px; transition: opacity 1s var(--io), translate 1.4s var(--out); }
.sky[data-phase="noche"] .dial__moon { opacity: 1; translate: none; transition-delay: .5s; }
.sky__now { display: grid; justify-items: end; line-height: 1.2; }
.sky__now b { font-family: var(--fd); font-size: 1.3rem; font-weight: 400; }
.sky__now span { color: var(--mut); font-size: .92rem; transition: color 1.2s var(--io); }
.sky__day { padding-bottom: clamp(44px, 8vw, 104px); }
.sky__day:last-child { padding-bottom: 0; }
.sky__dh { display: grid; gap: 4px; margin-bottom: clamp(18px, 3vw, 34px); }
.sky__dn { font-size: 1rem; font-weight: 600; color: var(--acc); transition: color 1.2s var(--io); }
.sky__dv { font-family: var(--fd); font-size: clamp(2rem, 4.4vw, 3.9rem); line-height: 1; letter-spacing: -.026em; font-variation-settings: 'SOFT' 70, 'WONK' 1; }
.sky__moment { position: relative; display: grid; gap: 8px 18px; padding: 24px 0 24px 20px; border-top: 1px solid var(--line); transition: border-color 1.2s var(--io); }
.sky__moment::before { content: ''; position: absolute; left: 0; top: 24px; bottom: 24px; width: 3px; border-radius: 3px; background: var(--acc); transform: scaleY(0); transform-origin: 50% 0; transition: transform .8s var(--out), background-color 1.2s var(--io); }
.sky__moment.is-now::before { transform: none; }
.sky__mh { font-family: var(--fd); font-style: italic; font-size: 1.5rem; line-height: 1.1; font-variation-settings: 'SOFT' 100, 'WONK' 1; }
.sky__list li { position: relative; padding: 6px 0 6px 22px; }
.sky__list li::before { content: ''; position: absolute; left: 0; top: 1.05em; width: 10px; height: 1.5px; background: var(--acc); transition: background-color 1.2s var(--io); }
.sky__xp { display: flex; align-items: center; gap: 16px; margin-top: 4px; padding: 18px 20px; border-radius: 16px; border: 1.5px dashed var(--line2); transition: border-color 1.2s var(--io); }
.sky__xp .glyph { width: 46px; height: 46px; flex: none; color: var(--acc); transition: color 1.2s var(--io); }
.sky__xp b { display: block; font-size: .9rem; font-weight: 600; color: var(--acc); transition: color 1.2s var(--io); }
.sky__flies { position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity 1.4s; }
.sky[data-phase="noche"] .sky__flies { opacity: 1; }
.sky__flies i { position: absolute; left: var(--x); top: var(--y); width: 5px; height: 5px; border-radius: 50%; background: #F3DB8F; box-shadow: 0 0 10px 3px rgba(240, 198, 122, .55); animation: fly var(--t) ease-in-out var(--dl) infinite alternate, blink calc(var(--t) * .7) ease-in-out var(--dl) infinite; }
@keyframes fly { to { translate: var(--dx) var(--dy); } }
@keyframes blink { 0%, 100% { opacity: 0; } 40%, 60% { opacity: 1; } }

.duo { display: grid; gap: 48px; }
.ticks { margin-top: 24px; border-bottom: 1px solid var(--line); }
.ticks li { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 12px; align-items: start; padding: 14px 0; border-top: 1px solid var(--line); }
.ticks .ico { width: 22px; height: 22px; margin-top: 3px; color: var(--monte); }

/* ---------- Experiencias ---------- */
.xp { padding-bottom: var(--sec); }
.xp__grid { display: grid; gap: 28px var(--gap); }
.xp__nav { position: sticky; top: 0; z-index: 20; margin-inline: calc(var(--gut) * -1); padding-inline: var(--gut); background: var(--arena); border-bottom: 1px solid var(--line); overflow-x: auto; scrollbar-width: none; }
.xp__nav::-webkit-scrollbar { display: none; }
.xp__nav ol { display: flex; gap: 8px; padding: 10px 0; width: max-content; }
.xp__nav a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--line2); text-decoration: none; font-size: .95rem; font-weight: 500; white-space: nowrap; transition: background-color .3s, color .3s; }
.xp__nav a[aria-current] { background: var(--tinta); color: var(--arena); box-shadow: none; }
.xp__i { font-family: var(--fd); font-style: italic; }
.xp__panel { padding-block: clamp(44px, 7vw, 100px); border-top: 1px solid var(--line); scroll-margin-top: 70px; }
.xp__panel:first-child { border-top: 0; padding-top: 12px; }
.xp__head { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: clamp(14px, 2.4vw, 34px); align-items: start; margin-bottom: clamp(22px, 3.4vw, 42px); }
.xp__n { font-family: var(--fd); font-style: italic; font-size: clamp(3.4rem, 8vw, 7.2rem); line-height: .82; color: transparent; -webkit-text-stroke: 1.5px var(--monte); font-variation-settings: 'SOFT' 100, 'WONK' 1; }
.xp__tag { font-family: var(--fd); font-style: italic; font-size: clamp(1.2rem, 2vw, 1.65rem); line-height: 1.2; color: var(--monte); margin-top: .5em; font-variation-settings: 'SOFT' 100, 'WONK' 1; }
.xp__main { display: grid; gap: 28px clamp(24px, 4vw, 60px); align-items: start; }
.xp__text { display: grid; gap: 16px; justify-items: start; }
.xp__out { font-family: var(--fd); font-size: 1.32rem; line-height: 1.25; padding-left: 18px; border-left: 2px solid var(--oro-d); font-variation-settings: 'SOFT' 70, 'WONK' 1; }
.xp__plate { width: min(100%, 440px); }
.xp__hand { margin-top: 14px; }
.progs { display: grid; margin-top: clamp(30px, 5vw, 54px); border-top: 1px solid var(--line); }
.progi { display: flex; flex-direction: column; align-items: flex-start; padding: 26px 0 30px; border-bottom: 1px solid var(--line); }
.progi .glyph { width: 52px; height: 52px; color: var(--monte); margin-bottom: 14px; }
.progi__t { font-family: var(--fd); font-size: 1.5rem; line-height: 1.1; letter-spacing: -.015em; font-variation-settings: 'SOFT' 70, 'WONK' 1; }
.progi__h { font-weight: 600; line-height: 1.4; margin-top: 8px; }
.progi__d { color: var(--mut); font-size: .98rem; margin: 6px 0 16px; }
.progi .want { margin-top: auto; }
.corp { --bg: var(--selva); --fg: var(--arena); --acc: var(--oro); --line2: rgba(242, 235, 220, .46); margin-top: clamp(30px, 5vw, 54px); padding: clamp(24px, 3.4vw, 44px); border-radius: 22px 22px 22px 4px; background: radial-gradient(120% 120% at 90% 0%, #1C4936, var(--selva) 60%); color: var(--arena); }
.corp__t { font-family: var(--fd); font-size: clamp(1.6rem, 2.8vw, 2.4rem); line-height: 1.05; letter-spacing: -.02em; font-variation-settings: 'SOFT' 70, 'WONK' 1; }
.corp__h { font-family: var(--fd); font-style: italic; font-size: 1.2rem; line-height: 1.3; color: var(--oro); margin-top: 8px; }
.corp__cols { display: grid; gap: 14px 28px; margin: 20px 0 22px; color: rgba(242, 235, 220, .8); }
.tours { margin-top: clamp(40px, 6vw, 70px); }
.tours__t { margin-bottom: 26px; }
.tour { display: grid; gap: 20px clamp(20px, 3.4vw, 46px); padding: 28px 0; border-top: 1px solid var(--line); align-items: start; }
.tour__t { font-family: var(--fd); font-size: clamp(1.4rem, 2.2vw, 1.85rem); line-height: 1.1; letter-spacing: -.015em; font-variation-settings: 'SOFT' 70, 'WONK' 1; }
.tour__text { display: grid; gap: 12px; justify-items: start; }

/* ---------- Estadía ---------- */
.arch__grid { display: grid; gap: 40px var(--gap); }
.arch__copy h2 { margin-bottom: .6em; }
.arch__media { position: relative; display: grid; grid-template-columns: 36% 64%; align-items: center; }
.arch__a { grid-column: 1 / -1; width: 84%; rotate: 1.5deg; }
.arch__b { grid-column: 2; grid-row: 2; margin-top: -8%; rotate: -2deg; z-index: 2; }
.arch__b .plate__img { box-shadow: 0 24px 44px -24px rgba(19, 33, 26, .6); }
.arch__note { grid-column: 1; grid-row: 2; max-width: 8.5em; padding: 40px 12px 0 0; }
.stays__head { display: grid; gap: 16px; margin-bottom: clamp(28px, 5vw, 60px); }
.stack { display: grid; gap: 20px; }
.stay { --bg: var(--arena); --fg: var(--tinta); --mut: #46564C; --acc: var(--monte); --line2: rgba(19, 33, 26, .52); --card: var(--arena-2); display: grid; gap: 28px clamp(24px, 4vw, 60px); padding: clamp(22px, 3.6vw, 50px); background: var(--arena) var(--grano); color: var(--tinta); border-radius: 26px; scroll-margin-top: 100px; }
.stay__text { display: grid; justify-items: start; align-content: center; }
.stay__kind { font-size: .95rem; font-weight: 600; color: var(--monte); }
.stay__name { font-size: clamp(2rem, 4vw, 3.3rem); margin: 6px 0 14px; }
.stay__feats { display: grid; gap: 8px 18px; margin: 22px 0 26px; }
.stay__feats li { display: flex; gap: 8px; align-items: flex-start; font-size: .96rem; line-height: 1.4; }
.stay__feats .ico { width: 18px; height: 18px; flex: none; margin-top: 2px; color: var(--monte); }
.stay__media { position: relative; }
.stay__b { width: 40%; margin: -12% 4% 0 auto; rotate: 4deg; position: relative; z-index: 2; }
.stay__a:not(:only-child) .plate__cap { padding-right: 46%; }
.strip--gal .strip__track { align-items: flex-end; padding-top: 30px; }
.gal__p { flex: none; width: clamp(240px, 72vw, 500px); }
.gal__p--tall { width: clamp(180px, 50vw, 330px); }
.gal__p:nth-child(even) { translate: 0 -26px; }
.acts__grid { display: grid; gap: 32px var(--gap); }
.acts__copy { display: grid; gap: 16px; align-content: start; }
.acts__hint { color: var(--oro); }
.acts__list { display: flex; flex-wrap: wrap; gap: 10px; }
.act { display: inline-flex; align-items: center; gap: 12px; min-height: 58px; padding: 0 18px 0 24px; border-radius: 999px; box-shadow: inset 0 0 0 1.5px rgba(242, 235, 220, .5); font-family: var(--fd); font-size: clamp(1.4rem, 3vw, 2.4rem); line-height: 1; letter-spacing: -.02em; font-variation-settings: 'SOFT' 70, 'WONK' 1; transition: background-color .35s, color .35s, box-shadow .35s, rotate .6s var(--out), translate .6s var(--out); }
.act:hover { rotate: -2deg; translate: 0 -3px; box-shadow: inset 0 0 0 1.5px var(--oro); }
.act .ico { width: 22px; height: 22px; transition: rotate .5s var(--out); }
.act[aria-pressed="true"] { background: var(--oro); color: var(--tinta); box-shadow: none; font-style: italic; }
.act[aria-pressed="true"] .ico { rotate: 45deg; }
.acts__foot { display: grid; gap: 18px; justify-items: start; padding-top: 24px; border-top: 1px solid var(--line); }

/* ---------- Marketplace ---------- */
.shop__head { display: grid; gap: 24px; margin-bottom: clamp(28px, 4vw, 56px); }
.shop__filters { display: flex; flex-wrap: wrap; gap: 8px; }
.filter { display: inline-flex; align-items: center; gap: 6px; min-height: 46px; padding: 0 18px; border-radius: 999px; box-shadow: inset 0 0 0 1.5px var(--line2); font-weight: 600; font-size: .95rem; scroll-margin-top: 120px; transition: background-color .3s, color .3s, box-shadow .3s; }
.filter sup { font-size: .72em; font-weight: 500; opacity: .75; }
.filter[aria-pressed="true"] { background: var(--tinta); color: var(--arena); box-shadow: none; }
.shop__grid { display: grid; gap: 44px clamp(18px, 2.4vw, 32px); }
.prod.is-out { display: none; }
.prod.pop { animation: pop .8s var(--out) both; animation-delay: calc(var(--k, 0) * 70ms); }
@keyframes pop { from { opacity: 0; translate: 0 26px; } }
.shop__empty { display: grid; justify-items: center; text-align: center; gap: 12px; padding: clamp(40px, 7vw, 92px) 20px; border: 1.5px dashed var(--line2); border-radius: 22px; }
.shop__empty[hidden], .shop__grid[hidden] { display: none; }
.shop__empty .glyph { width: 72px; height: 72px; color: var(--monte); }
.shop__empty-cta { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 10px; }
.steps__grid { display: grid; gap: 44px var(--gap); align-items: center; }
.steps__copy .lead { margin-top: 20px; color: var(--mut); }
.steps__list { margin-top: 32px; border-bottom: 1px solid var(--line); }
.step { position: relative; display: grid; grid-template-columns: 2.6rem minmax(0, 1fr); gap: 18px; padding: 22px 0; align-items: start; }
.step__n { font-family: var(--fd); font-style: italic; font-size: 2.6rem; line-height: .9; color: var(--oro); }
.step__t { font-family: var(--fd); font-size: 1.5rem; line-height: 1.1; margin-bottom: 4px; font-variation-settings: 'SOFT' 70, 'WONK' 1; }
.step p { color: var(--mut); }
.steps__media { position: relative; width: min(100%, 440px); padding: 0 0 14% 14%; justify-self: center; }
.steps__b { position: absolute; left: 0; bottom: 0; width: 46%; rotate: -4deg; z-index: 2; }

/* ---------- Contacto ---------- */
.contact__grid { display: grid; gap: 40px var(--gap); }
.contact__intro { display: grid; gap: 20px; align-content: start; }
.contact__data { display: grid; gap: 20px; margin-top: 12px; }
.contact__data dt { font-size: .9rem; font-weight: 600; color: var(--monte); }
.contact__data dd { font-size: 1.08rem; line-height: 1.6; }
.form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; align-content: start; }
.field { display: flex; flex-direction: column; }
.field label { font-weight: 600; font-size: .96rem; margin-bottom: 6px; }
.field input, .field textarea { font: inherit; color: var(--tinta); background: rgba(255, 255, 255, .5); border: 1.5px solid rgba(19, 33, 26, .56); border-radius: 12px; padding: 13px 16px; min-height: 54px; width: 100%; transition: border-color .2s, background-color .2s; }
.field textarea { min-height: 132px; resize: vertical; line-height: 1.5; }
.field input, .field textarea, .want, .act, .filter, .round { scroll-margin-top: 150px; }
.field input:hover, .field textarea:hover { border-color: var(--tinta); }
.field input:focus-visible, .field textarea:focus-visible { outline: 2px solid var(--monte); outline-offset: 2px; border-color: var(--monte); background: #fff; }
.field__hint { font-size: .88rem; color: var(--mut); margin-top: 6px; }
.field__err { font-size: .9rem; font-weight: 600; color: var(--mal); margin-top: 6px; }
.field.is-bad input, .field.is-bad textarea { border-color: var(--mal); }
.form__basket { padding: 16px 18px; border: 1.5px dashed rgba(29, 90, 58, .6); border-radius: 16px; }
.form__basket-t { font-weight: 600; font-size: .96rem; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.chip { display: inline-flex; align-items: center; gap: 4px; padding: 4px 4px 4px 14px; background: var(--monte); color: var(--arena); border-radius: 999px; font-size: .92rem; animation: pop .5s var(--out) both; }
.chip button { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; --acc: var(--oro); }
.chip button:hover { background: rgba(242, 235, 220, .18); }
.chip .ico { width: 16px; height: 16px; }
.form__actions { display: grid; gap: 12px; margin-top: 4px; }
.form__status { min-height: 1.6em; font-weight: 600; color: var(--monte); }
.form__status.is-bad { color: var(--mal); }

/* ---------- Aliados ---------- */
.partners { padding-block: clamp(36px, 5vw, 60px); border-top: 1px solid var(--line); }
.partners__in { display: grid; gap: 20px clamp(20px, 4vw, 56px); align-items: center; }
.partners__t { font-family: var(--ft); font-size: .95rem; font-weight: 600; line-height: 1.35; color: var(--monte); }
.partners__belt { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.partners__list { display: flex; align-items: center; width: max-content; animation: belt 44s linear infinite; }
.partners__belt:hover .partners__list { animation-play-state: paused; }
.partners__list li { padding-right: clamp(36px, 5vw, 72px); }
.partners__list img { height: 42px; width: auto; max-width: none; filter: grayscale(1) contrast(1.08); mix-blend-mode: multiply; opacity: .82; }
@keyframes belt { to { transform: translateX(-50%); } }

/* ---------- Pie: el mar ---------- */
.sea { --bg: var(--selva-3); position: relative; overflow: hidden; padding-top: 268px; background: var(--selva-3) var(--grano); }
.sea__surface { position: absolute; inset: 0 0 auto 0; height: 164px; background: var(--arena); overflow: hidden; }
.sea__surface::after { content: ''; position: absolute; inset: 0; background: var(--grano); pointer-events: none; }
.wave { position: absolute; left: 0; bottom: 24px; width: 200%; max-width: none; height: 140px; animation: drift var(--wd) linear infinite; }
.wave--a { fill: var(--monte); opacity: .5; --wd: 30s; }
.wave--b { fill: #123A2B; --wd: 21s; animation-direction: reverse; bottom: 11px; }
.wave--c { fill: var(--selva-3); --wd: 15s; bottom: -3px; }
@keyframes drift { to { transform: translateX(-50%); } }
.sea__school { position: absolute; left: 0; right: 0; top: 164px; height: 96px; z-index: 2; pointer-events: none; }
.pez { position: absolute; left: 0; top: var(--top); width: calc(var(--s) * 1.17); height: var(--s); max-width: none; fill: var(--oro); stroke: var(--selva-3); scale: -1 1; animation: swim var(--dur) linear var(--del) infinite, bob 2.8s ease-in-out infinite alternate; }
@keyframes swim { from { translate: -12vw 0; } to { translate: 112vw 0; } }
@keyframes bob { from { transform: translateY(-5px) rotate(4deg); } to { transform: translateY(5px) rotate(-4deg); } }
.sea__in { position: relative; padding-bottom: 28px; }
.sea__lema { font-family: var(--fd); font-style: italic; font-size: clamp(1.8rem, 4vw, 3.5rem); line-height: 1.06; letter-spacing: -.02em; max-width: 14em; margin-bottom: clamp(44px, 7vw, 92px); font-variation-settings: 'SOFT' 100, 'WONK' 1; }
.sea__nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 20px; }
.sea__col h3 { font-family: var(--ft); font-size: .95rem; font-weight: 600; color: var(--oro); margin-bottom: 10px; }
.sea__col a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; color: var(--mut); line-height: 1.3; transition: color .25s, translate .5s var(--out); }
.sea__col a:hover { color: var(--arena); translate: 5px 0; }
.sea__word { font-family: var(--fd); font-size: clamp(2.4rem, 10.4vw, 10.25rem); line-height: .92; letter-spacing: -.04em; white-space: nowrap; margin-top: clamp(44px, 7vw, 92px); font-variation-settings: 'SOFT' 70, 'WONK' 1; --p: 1; }
.sea__word span { display: inline-block; }
.sea__word span:first-child { translate: calc((1 - var(--p)) * -7vw) 0; }
.sea__word span:last-child { translate: calc((1 - var(--p)) * 7vw) 0; font-style: italic; color: var(--oro); }
.sea__legal { display: flex; justify-content: space-between; align-items: center; gap: 14px 20px; flex-wrap: wrap; margin-top: 26px; padding-top: 18px; border-top: 1px solid var(--line); font-size: .9rem; color: var(--mut); }
.motion { min-height: 44px; padding: 0 16px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--line2); font-size: .9rem; transition: background-color .3s, color .3s; }
.motion:hover { background: var(--arena); color: var(--selva); }

/* ---------- Flotantes ---------- */
.wa { position: fixed; right: 16px; bottom: 16px; z-index: 80; display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 54px; height: 54px; border-radius: 999px; background: var(--monte); color: var(--arena); text-decoration: none; font-weight: 600; font-size: .95rem; box-shadow: 0 12px 30px -10px rgba(0, 0, 0, .55), inset 0 0 0 1px rgba(242, 235, 220, .28); transition: translate .6s var(--out), opacity .3s, background-color .3s; --acc: var(--oro); }
.wa span { display: none; }
.wa:hover { background: var(--tinta); }
.wa.is-away, .wa.is-down { translate: 0 96px; opacity: 0; pointer-events: none; }
.toast { position: fixed; left: 50%; bottom: 22px; z-index: 120; translate: -50% 0; display: flex; align-items: center; gap: 14px; width: max-content; max-width: calc(100vw - 32px); padding: 10px 10px 10px 20px; border-radius: 999px; background: var(--tinta); color: var(--arena); font-size: .95rem; box-shadow: 0 16px 40px -14px rgba(0, 0, 0, .6); animation: toast .5s var(--out); --acc: var(--oro); }
.toast[hidden] { display: none; }
.toast a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 999px; background: var(--oro); color: var(--tinta); font-weight: 600; text-decoration: none; white-space: nowrap; }
@keyframes toast { from { opacity: 0; translate: -50% 20px; } }
.peek, .tag { display: none; }

/* ---------- Revelados (solo con JS) ---------- */
.js .wi { transform: translateY(115%) rotate(6deg); transform-origin: 0 100%; transition: transform 1.15s var(--out); transition-delay: calc(var(--i) * 42ms + var(--sd, 0ms)); }
.js .in .wi { transform: none; }
.js [data-reveal=""] { opacity: 0; translate: 0 22px; transition: opacity .9s var(--out) var(--rd, 0ms), translate 1.1s var(--out) var(--rd, 0ms); }
.js [data-reveal=""].in { opacity: 1; translate: none; }
.js [data-reveal="stagger"] > * { opacity: 0; translate: 0 18px; transition: opacity .8s var(--out), translate 1s var(--out); transition-delay: calc(var(--k, 0) * 70ms + var(--rd, 0ms)); }
.js [data-reveal="stagger"].in > * { opacity: 1; translate: none; }
.js [data-reveal="mask"] .plate__img { clip-path: inset(0 0 100% 0); transition: clip-path 1.4s var(--out) var(--rd, 0ms); }
.js [data-reveal="mask"] .plate__pic { scale: 1.36; transition: scale 1.9s var(--out) var(--rd, 0ms); }
.js [data-reveal="mask"] .plate__cap { opacity: 0; transition: opacity .8s calc(.7s + var(--rd, 0ms)); }
.js [data-reveal="mask"].in .plate__img { clip-path: inset(0); }
.js [data-reveal="mask"].in .plate__pic { scale: 1.14; }
.js [data-reveal="mask"].in .plate__cap { opacity: 1; }
.js [data-reveal="line"]::before { transform: scaleX(0); transform-origin: 0 50%; transition: transform 1.3s var(--out); }
.js [data-reveal="line"] > * { opacity: 0; translate: 0 14px; transition: opacity .8s var(--out) .12s, translate 1s var(--out) .12s; }
.js [data-reveal="line"].in::before { transform: none; }
.js [data-reveal="line"].in > * { opacity: 1; translate: none; }
.js [data-reveal="draw"] [pathLength] { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.5s var(--io) var(--pd, .1s); }
.js [data-reveal="draw"].in [pathLength] { stroke-dashoffset: 0; }
.js [data-reveal="draw"] .glyph > :nth-child(2) { --pd: .25s; }
.js [data-reveal="draw"] .glyph > :nth-child(3) { --pd: .4s; }
.js [data-reveal="draw"] .glyph > :nth-child(n+4) { --pd: .55s; }
.js li[data-reveal="draw"] > :not(svg) { opacity: 0; translate: 0 14px; transition: opacity .8s var(--out) .2s, translate 1s var(--out) .2s; }
.js li[data-reveal="draw"].in > :not(svg) { opacity: 1; translate: none; }
.js .mark[data-reveal="draw"] [pathLength] { --pd: .5s; transition-duration: 1.1s; }
.js .coast[data-reveal="draw"] .coast__line { transition-duration: 2.6s; }
.js .coast[data-reveal="draw"] .coast__contours path { --pd: .9s; transition-duration: 2.4s; }
.js .coast[data-reveal="draw"] .coast__swell path { --pd: 1.6s; }
.js .coast[data-reveal="draw"] .coast__note path, .js .coast[data-reveal="draw"] .coast__north path { --pd: 2.5s; transition-duration: .8s; }
.js .coast[data-reveal="draw"] text, .js .coast[data-reveal="draw"] .coast__places circle, .js .coast[data-reveal="draw"] .coast__pin, .js .coast[data-reveal="draw"] .coast__land { opacity: 0; transition: opacity 1s 1.9s; }
.js .coast[data-reveal="draw"].in text, .js .coast[data-reveal="draw"].in .coast__places circle, .js .coast[data-reveal="draw"].in .coast__pin, .js .coast[data-reveal="draw"].in .coast__land { opacity: 1; }
.js .coast[data-reveal="draw"] .coast__hand { transition-delay: 2.9s; }
/* coreografía de entrada de las portadas */
.hero [data-split] { --sd: 250ms; }
.hero__tag { --rd: 800ms; }
.hero__lead { --rd: 950ms; }
.hero .facts { --rd: 1050ms; }
.hero__cta { --rd: 1150ms; }
.hero__plate--a { --rd: 450ms; }
.hero__plate--b { --rd: 800ms; }
.js .hero__foot, .js .hero__crumb { opacity: 0; transition: opacity 1.2s 1.3s; }
.js.is-ready .hero__foot, .js.is-ready .hero__crumb { opacity: 1; }
.js .top { opacity: 0; transition: transform .6s var(--out), background-color .4s, opacity .9s .15s; }
.js.is-ready .top { opacity: 1; }

@view-transition { navigation: auto; }
::view-transition-old(root) { animation: .32s var(--io) both vt-out; }
::view-transition-new(root) { animation: .6s var(--out) both vt-in; }
@keyframes vt-out { to { opacity: 0; transform: translateY(-14px); } }
@keyframes vt-in { from { opacity: 0; transform: translateY(18px); } }

/* ================= Pantallas medianas ================= */
@media (min-width: 620px) {
  .hero__cta { display: flex; flex-wrap: wrap; }
  .form { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .form > * { grid-column: 1 / -1; }
  .form > .field--half { grid-column: auto; }
  .form__actions { display: flex; flex-wrap: wrap; }
  .menu__foot .btn { width: auto; }
  .topics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .topic { padding-right: 28px; }
  .topic:nth-child(even) { padding-left: 28px; border-left: 1px solid var(--line); }
  .progs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .progi { padding-right: 26px; }
  .prog:nth-child(even) { padding-left: 26px; border-left: 1px solid var(--line); }
  .shop__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stay__feats, .corp__cols, .duo { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sea__nav { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .wa { width: auto; padding: 0 20px 0 16px; }
  .wa span { display: inline; }
  .strip .prod { width: clamp(260px, 40vw, 360px); }
  .gal__p { width: clamp(300px, 46vw, 500px); }
  .gal__p--tall { width: clamp(210px, 30vw, 330px); }
  .tour { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
  .tour:nth-of-type(even) .tour__plate { order: 2; }
  .partners__in { grid-template-columns: 9em minmax(0, 1fr); }
  .frond--wide { display: block; }
}

/* ================= Escritorio ================= */
@media (min-width: 900px) {
  .hero__grid, .statement__in, .pillars__head, .weekend__grid, .shopstrip__head, .gal__head, .where__grid, .intro__grid, .ledger__grid, .fieldsec__cols, .spanish__grid, .closing__in, .sky__grid, .xp__grid, .arch__grid, .acts__grid, .steps__grid, .contact__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }

  .hero { padding-top: calc(var(--top-h) + 84px); }
  .hero--page { min-height: min(94svh, 900px); }
  .hero__grid { align-items: center; }
  .hero__copy { grid-column: 1 / span 8; }
  .hero__plates { grid-column: 9 / -1; width: 100%; padding: 0 0 16% 0; justify-self: stretch; }
  .hero__plate--b { left: -30%; width: 58%; }
  .hero__lead { max-width: min(33em, 76%); }
  .hero__foot { padding-right: 190px; justify-content: flex-start; gap: 8px 36px; }
  .hero--lost .hero__copy { grid-column: 1 / span 9; }

  .statement__h { grid-column: 1 / span 3; }
  .statement__text { grid-column: 5 / -1; }
  .pillars__head { align-items: end; }
  .pillars__head .d2 { grid-column: 1 / span 7; }
  .pillars__head .body { grid-column: 9 / -1; }
  .index__row { grid-template-columns: minmax(0, 6fr) minmax(0, 4fr) auto; gap: clamp(16px, 3vw, 48px); padding: clamp(22px, 2.8vw, 38px) 0; }
  .index__t, .index__d { grid-column: auto; }
  .index__thumb { display: none; }
  .index__go { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--line2); transition: background-color .4s, color .4s, rotate .7s var(--out), box-shadow .4s; }
  .index:hover .index__item, .index:focus-within .index__item { opacity: .42; }
  .index .index__item:hover, .index .index__item:focus-within { opacity: 1; }
  .index__row:hover .index__t, .index__row:focus-visible .index__t { translate: 18px 0; font-style: italic; }
  .index__row:hover .index__go, .index__row:focus-visible .index__go { background: var(--monte); color: var(--arena); rotate: 45deg; box-shadow: none; }

  .weekend__copy { grid-column: 1 / span 6; position: sticky; top: 130px; align-self: start; }
  .days { grid-column: 8 / -1; }
  .ribbon__foot { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }

  .shopstrip__head, .gal__head { align-items: end; }
  .shopstrip__head .d2, .gal__head .d2 { grid-column: 1 / span 7; }
  .shopstrip__head > div, .gal__head .body { grid-column: 9 / -1; }
  .strip .prod { width: clamp(280px, 25vw, 360px); }

  .where__copy { grid-column: 1 / span 5; }
  .where__map { grid-column: 7 / -1; }

  .intro__grid > :first-child { grid-column: 1 / span 7; }
  .intro__side { grid-column: 9 / -1; padding-top: .5em; }

  .ledger__side { grid-column: 1 / span 4; position: sticky; top: 130px; align-self: start; }
  .ledger { grid-column: 6 / -1; }
  .ledger__head { grid-template-columns: 60px minmax(0, 1fr) 44px; gap: 6px 22px; padding: 28px 0; }
  .ledger__glyph { width: 60px; height: 60px; }
  .ledger__inner { padding-left: 82px; }
  .ledger__head:hover .ledger__name { translate: 10px 0; }

  .fieldsec__head .d2 { max-width: 11em; }
  .fieldsec__cols .lead { grid-column: 1 / span 6; }
  .fieldsec__cols .body { grid-column: 8 / -1; }
  .spec { width: clamp(330px, 30vw, 430px); min-height: min(62svh, 560px); padding: clamp(28px, 2.6vw, 38px); }

  .spanish__media { grid-column: 1 / span 5; width: 100%; }
  .spanish__copy { grid-column: 7 / -1; }
  .bridge__in { grid-template-columns: minmax(0, 1fr) auto; gap: 40px; }
  .closing__t { grid-column: 1 / span 10; }
  .closing__side { grid-column: 7 / -1; }

  .topics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .topic { padding: clamp(26px, 3vw, 40px) clamp(20px, 2.4vw, 36px) clamp(30px, 3.4vw, 46px) 0; }
  .topic:nth-child(even) { padding-left: 0; border-left: 0; }
  .topic:not(:nth-child(3n+1)) { padding-left: clamp(20px, 2.4vw, 36px); border-left: 1px solid var(--line); }

  .sky { --dw: 280px; }
  .sky__side { grid-column: 1 / span 4; top: clamp(100px, 16vh, 150px); align-self: start; display: block; padding: 0; background: none; border: 0; }
  .sky__side .d2 { font-size: clamp(2.05rem, 4.7vw, 4.3rem); }
  .dial { margin-top: 34px; }
  .dial__sun { left: -13px; top: -13px; width: 26px; height: 26px; }
  .sky__now { display: flex; gap: 12px; align-items: baseline; justify-items: start; margin-top: 14px; }
  .sky__now b { font-size: 1.6rem; }
  .sky__now span { font-size: 1rem; }
  .sky__days { grid-column: 6 / -1; }
  .sky__moment { grid-template-columns: 8.5rem minmax(0, 1fr); padding-left: 24px; }

  .xp__nav { grid-column: 1 / span 3; top: 130px; align-self: start; margin: 0; padding: 0; background: none; border: 0; overflow: visible; }
  .xp__nav ol { display: grid; gap: 0; width: auto; padding: 0; border-bottom: 1px solid var(--line); }
  .xp__nav a { display: grid; grid-template-columns: 1.6rem minmax(0, 1fr); gap: 8px; align-items: baseline; min-height: 0; padding: 11px 0; border-radius: 0; box-shadow: none; border-top: 1px solid var(--line); color: var(--mut); white-space: normal; transition: color .3s, padding-left .6s var(--out); }
  .xp__nav a:hover { color: var(--tinta); }
  .xp__nav a[aria-current] { background: none; color: var(--tinta); font-weight: 600; padding-left: 14px; }
  .xp__i { color: var(--monte); }
  .xp__panels { grid-column: 5 / -1; }
  .xp__panel { scroll-margin-top: 110px; }
  .xp__panel:first-child { padding-top: 0; }
  .xp__main { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
  .xp__panel--flip .xp__text { order: 2; }
  .xp__plate { width: 100%; }

  .arch__copy { grid-column: 1 / span 6; position: sticky; top: 130px; align-self: start; }
  .arch__media { grid-column: 8 / -1; }
  .stays__head { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
  .stack { gap: 26px; }
  .stay { position: sticky; top: calc(92px + var(--i) * 20px); grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); min-height: min(74svh, 640px); align-items: center; transform-origin: 50% 0; scale: var(--sc, 1); box-shadow: 0 -24px 60px -34px rgba(0, 0, 0, .7); }
  .stay::after { content: ''; position: absolute; inset: 0; border-radius: inherit; background: var(--selva); opacity: var(--dim, 0); pointer-events: none; }
  .stay__b { position: absolute; left: -9%; bottom: -9%; width: 38%; margin: 0; rotate: -4deg; }
  .stay__a:not(:only-child) .plate__cap { padding-right: 0; text-align: right; }
  .strip .gal__p { width: clamp(340px, 34vw, 520px); }
  .strip .gal__p--tall { width: clamp(230px, 22vw, 340px); }
  .acts__copy { grid-column: 1 / span 4; }
  .acts__list { grid-column: 6 / -1; gap: 12px; }
  .acts__foot { grid-column: 6 / -1; grid-template-columns: minmax(0, 1fr) auto; align-items: center; }

  .shop__head { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
  .shop__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(36px, 4vw, 60px) clamp(18px, 2.4vw, 32px); padding-bottom: 44px; }
  .shop__grid .prod:nth-child(3n+2) { margin-top: 44px; margin-bottom: -44px; }
  .steps__copy { grid-column: 1 / span 6; }
  .steps__media { grid-column: 8 / -1; width: 100%; padding: 0 0 16% 0; }
  .steps__b { left: -18%; width: 50%; }

  .contact__intro { grid-column: 1 / span 5; }
  .form { grid-column: 7 / -1; }
  .sea__nav { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .sea__col a { min-height: 32px; }
}

@media (min-width: 1020px) {
  .nav__links { display: flex; gap: clamp(14px, 2.2vw, 34px); }
  .nav__cta { display: inline-flex; }
  .burger { display: none; }
  .nav__logo { width: 104px; }
}

/* cursor fino: vista previa flotante y etiqueta de arrastre */
@media (hover: hover) and (pointer: fine) and (min-width: 900px) {
  .peek { display: block; position: fixed; left: 0; top: 0; z-index: 60; width: min(24vw, 320px); aspect-ratio: 4 / 5; pointer-events: none; overflow: hidden; border-radius: var(--r); opacity: 0; scale: .6; translate: var(--px, 0) var(--py, 0); rotate: var(--pr, 0deg); transition: opacity .35s, scale .6s var(--out); box-shadow: 0 30px 60px -30px rgba(19, 33, 26, .7); }
  .peek.on { opacity: 1; scale: 1; }
  .peek img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; scale: 1.15; filter: saturate(.88) contrast(1.03); transition: opacity .45s, scale 1.2s var(--out); }
  .peek img.on { opacity: 1; scale: 1; }
  .tag { display: grid; place-items: center; position: fixed; left: 0; top: 0; z-index: 70; width: 86px; height: 86px; margin: -43px 0 0 -43px; border-radius: 50%; pointer-events: none; background: var(--oro); color: var(--tinta); font-size: .86rem; font-weight: 600; translate: var(--tx, 0) var(--ty, 0); scale: 0; transition: scale .45s var(--out); }
  .tag.on { scale: 1; }
}

/* ---------- Movimiento reducido o pausado ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; transition-delay: 0s !important; scroll-behavior: auto !important; }
}
.motion-off *, .motion-off *::before, .motion-off *::after { animation: none !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
.motion-off { scroll-behavior: auto; }
.motion-off .wi { transform: none !important; }
.motion-off [data-reveal], .motion-off [data-reveal] > *, .motion-off .plate__cap, .motion-off .hero__foot, .motion-off .hero__crumb, .motion-off .top, .motion-off .fw, .motion-off .coast text, .motion-off .coast circle, .motion-off .coast g, .motion-off .coast path { opacity: 1 !important; translate: none !important; }
.motion-off [data-reveal="mask"] .plate__img { clip-path: none !important; }
.motion-off [data-reveal="mask"] .plate__pic, .motion-off .plate__pic { scale: 1.02 !important; translate: none !important; }
.motion-off [data-reveal="line"]::before { transform: none !important; }
.motion-off [pathLength] { stroke-dasharray: none !important; stroke-dashoffset: 0 !important; }
.motion-off .frond { --intro: 0deg !important; }
.motion-off .pez { display: none; }
.motion-off .partners__belt { overflow-x: auto; scrollbar-width: thin; }
.motion-off .coast__ring { display: none; }
::view-transition-group(*) { animation-duration: .5s; }
@media (prefers-reduced-motion: reduce) { ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none !important; } }

/* ================= Segunda vuelta: tipografía del sitio original, subpáginas y reservas ================= */
:root { --fd: 'League Gothic', 'Bebas Neue', 'Arial Narrow', Impact, sans-serif; }

/* Titulares en gótica condensada y mayúsculas, como el sitio original */
.d1, .d2, .d3, .index__t, .ledger__name, .spec__name, .spec__endt, .days__v, .prod__name, .menu__t, .marquee__track li, .sea__word, .topic__t, .sky__dv, .sky__mh, .sky__now b, .progi__t, .corp__t, .tour__t, .step__t, .act, .orbit__name, .pcard__t, .art__h {
  font-family: var(--fd); font-style: normal; font-weight: 400; text-transform: uppercase; letter-spacing: .006em; font-variation-settings: normal;
}
.d1 { font-size: clamp(3.3rem, 9.2vw, 9.25rem); line-height: .87; }
.d2 { font-size: clamp(2.7rem, 6.2vw, 5.9rem); line-height: .89; }
.d3 { font-size: clamp(2rem, 3.4vw, 3rem); line-height: .93; }
.w { padding-top: .2em; margin-top: -.2em; }
.index__t { font-size: clamp(2.3rem, 5.8vw, 5.2rem); line-height: .92; }
.ledger__name { font-size: clamp(1.9rem, 3.1vw, 2.8rem); line-height: .95; }
.spec__name { font-size: clamp(2.1rem, 2.8vw, 2.6rem); line-height: .95; }
.spec__name span { font-family: var(--ft); font-style: normal; font-weight: 600; font-size: .95rem; text-transform: none; letter-spacing: 0; }
.days__v { font-size: clamp(2.1rem, 3.4vw, 3rem); line-height: .95; }
.prod__name { font-size: 1.95rem; line-height: .95; }
.menu__t { font-size: clamp(2.6rem, 11vw, 4rem); line-height: .92; }
.marquee__track li { font-size: clamp(3.2rem, 9vw, 8.4rem); line-height: 1; }
.marquee--ghost li { font-size: clamp(2.4rem, 6vw, 5.4rem); font-style: normal; }
.marquee__track a:hover, .marquee__track a:focus-visible { font-style: normal; }
.sea__word { font-size: clamp(3.4rem, 13.4vw, 13.4rem); letter-spacing: 0; line-height: .86; }
.sea__word span:last-child, .menu__link[aria-current] .menu__t, .act[aria-pressed="true"] { font-style: normal; }
.topic__t, .progi__t, .tour__t, .step__t { font-size: 2rem; line-height: .95; }
.sky__mh { font-size: 1.9rem; }
.corp__t { font-size: clamp(2.2rem, 3.6vw, 3.2rem); line-height: .93; }
.act { font-size: clamp(1.8rem, 3.6vw, 3rem); }
.xp__n, .step__n, .tally b, .hpin__count b, .prod__price b, .rev__score, .pcard__p { font-family: var(--fd); font-style: normal; font-weight: 400; }
.xp__n { -webkit-text-stroke: 0; color: var(--oro-d); font-size: clamp(4rem, 9vw, 8rem); }
@media (min-width: 900px) { .index__row:hover .index__t, .index__row:focus-visible .index__t { font-style: normal; color: var(--monte); } }
/* Textos largos y notas: fuente de lectura, sin cursivas de adorno */
.statement__text, .intro__big, .xp__out, .sea__lema { font-family: var(--ft); font-style: normal; font-weight: 500; letter-spacing: -.02em; text-transform: none; font-variation-settings: normal; }
.statement__text { font-size: clamp(1.5rem, 2.9vw, 2.6rem); line-height: 1.16; }
.intro__big { font-size: clamp(1.35rem, 2.3vw, 2.05rem); line-height: 1.22; }
.sea__lema { font-size: clamp(1.4rem, 2.6vw, 2.2rem); line-height: 1.15; max-width: 18em; }
.hero__tag, .xp__tag, .fieldsec__sub, .corp__h, .stay__tag { font-family: var(--ft); font-style: normal; font-weight: 500; letter-spacing: -.01em; font-size: clamp(1.1rem, 1.6vw, 1.4rem); line-height: 1.3; }
.plate__cap, .where__cap, .sp { font-family: var(--ft); font-style: italic; font-variation-settings: normal; }
.plate__cap, .where__cap { font-size: .88rem; }
.coast .coast__sea { font: italic 400 21px var(--ft); }

/* Menos entradas genéricas: el texto simplemente está; el movimiento queda donde aporta */
.js section:not(.hero) [data-reveal=""], .js section:not(.hero) [data-reveal="stagger"] > *, .js section:not(.hero) [data-reveal="line"] > *, .js section:not(.hero) li[data-reveal="draw"] > :not(svg) { opacity: 1; translate: none; transition: none; }

/* Línea de avance */
.promo b { font-weight: 600; }
.top.is-solid { background: rgba(10, 27, 20, .97); -webkit-backdrop-filter: none; backdrop-filter: none; }

/* Menú con subpáginas */
.nav__sub { position: absolute; left: -16px; top: calc(100% - 6px); min-width: 268px; padding: 10px; border-radius: 14px; background: var(--selva-3); box-shadow: 0 24px 50px -20px rgba(0, 0, 0, .65), inset 0 0 0 1px rgba(242, 235, 220, .14); opacity: 0; visibility: hidden; translate: 0 8px; transition: opacity .22s, translate .4s var(--out), visibility 0s .22s; }
.nav__item { position: relative; }
.nav__item:hover > .nav__sub, .nav__item:focus-within > .nav__sub { opacity: 1; visibility: visible; translate: none; transition-delay: 0s; }
.nav__sub a { display: block; padding: 10px 12px; border-radius: 8px; text-decoration: none; font-size: .95rem; line-height: 1.3; }
.nav__sub a:hover, .nav__sub a:focus-visible { background: rgba(242, 235, 220, .1); }
.nav__sub a[aria-current] { color: var(--oro); }
.menu__link { border-bottom: 0; padding-bottom: 6px; }
.menu__list > li { border-bottom: 1px solid var(--line); }
.menu__sub { display: flex; flex-wrap: wrap; gap: 0 16px; padding: 0 0 12px; }
.menu__sub a { display: inline-flex; align-items: center; min-height: 40px; color: var(--mut); font-size: .95rem; text-decoration: none; }
.menu.is-open .menu__list li li { transition-delay: 0s; }

/* Encabezado de sección */
.sechead { display: grid; gap: 14px var(--gap); margin-bottom: clamp(28px, 4vw, 56px); }

/* Inicio: manifiesto y cifras */
.statement__side { display: grid; gap: 22px; align-content: start; }
.statement__plate { width: min(100%, 300px); rotate: -2deg; }
.statement__main .d3 { margin: clamp(28px, 4vw, 44px) 0 12px; }
.cifras { display: grid; grid-template-columns: 1fr 1fr; gap: 0 clamp(20px, 3vw, 40px); margin-top: 28px; }
.cifras div { display: flex; flex-direction: column-reverse; padding: 14px 0 16px; border-top: 1px solid var(--line); }
.cifras dd { font-family: var(--fd); font-size: clamp(3.2rem, 6vw, 5.2rem); line-height: .88; color: var(--monte); font-variant-numeric: tabular-nums; }
.cifras dt { color: var(--mut); font-size: .95rem; }

/* Programas */
.pcards { display: grid; gap: 44px clamp(18px, 2.4vw, 32px); }
.pcard { display: flex; flex-direction: column; scroll-margin-top: 110px; }
.pcard__img { aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--r); background: var(--card); margin-bottom: 14px; }
.pcard__img img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.9); transition: scale 1.3s var(--out); }
.pcard:hover .pcard__img img { scale: 1.05; }
.pcard__meta { font-size: .9rem; font-weight: 600; color: var(--acc); }
.pcard__t { font-size: 2.1rem; line-height: .93; margin: 5px 0 8px; }
.pcard__d { color: var(--mut); font-size: .98rem; }
.pcard__f { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: auto; padding-top: 16px; }
.pcard__p { font-size: 2.2rem; line-height: 1; font-variant-numeric: tabular-nums; }

/* Proyectos: versión en lista (móvil, subpágina) */
.orbit { padding-block: var(--sec); }
.orbit__top { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: clamp(24px, 4vw, 44px); }
.orbit__count, .orbit__obj { display: none; }
.orbit__item { display: grid; gap: 18px; padding: 30px 0; border-top: 1px solid var(--line); }
.orbit__name { font-size: clamp(2.6rem, 6.4vw, 5.4rem); line-height: .88; }
.orbit__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
.orbit__tags li { padding: 6px 13px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--line2); font-size: .88rem; font-weight: 500; }
.orbit__pic { border-radius: var(--r); overflow: hidden; aspect-ratio: 4 / 3; }
.orbit__pic img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.9); }
.orbit__h { font-weight: 600; color: var(--oro); margin-bottom: 6px; }
.orbit__right > p { color: var(--mut); }
.orbit__facts { margin-top: 16px; }
.orbit__facts div { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: 12px; padding: 10px 0; border-top: 1px solid var(--line); }
.orbit__facts dt { font-weight: 600; font-size: .92rem; }
.orbit__facts dd { color: var(--mut); font-size: .95rem; }
/* versión fijada con la foto en 3D (escritorio) */
.orbit.is-live { padding: 0; }
.orbit.is-live .orbit__pin { position: sticky; top: 0; height: 100svh; display: flex; flex-direction: column; justify-content: center; overflow: hidden; }
.orbit.is-live .orbit__count { display: block; color: var(--mut); font-variant-numeric: tabular-nums; }
.orbit.is-live .orbit__count b { font-family: var(--fd); font-size: 2.4rem; font-weight: 400; color: var(--oro); margin-right: 6px; }
.orbit.is-live .orbit__stage { position: relative; min-height: min(62vh, 560px); display: grid; place-items: center; }
.orbit.is-live .orbit__obj { display: block; width: min(28vw, 330px); aspect-ratio: 3 / 4; perspective: 1500px; }
.orbit__card { position: relative; width: 100%; height: 100%; transform-style: preserve-3d; transform: rotateX(var(--rx, 10deg)) rotateY(var(--ry, -22deg)) rotateZ(var(--rz, -4deg)); will-change: transform; }
.orbit__face { position: absolute; inset: 0; border-radius: 6px; overflow: hidden; backface-visibility: hidden; -webkit-backface-visibility: hidden; background: var(--selva-2); box-shadow: 0 50px 90px -46px rgba(0, 0, 0, .9); }
.orbit__face--b { transform: rotateY(180deg); }
.orbit__face img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; filter: saturate(.9); }
.orbit__face img.is-on { opacity: 1; }
.orbit.is-live .orbit__item { position: absolute; inset: 0; display: grid; grid-template-columns: minmax(0, 1fr) min(28vw, 330px) minmax(0, 1fr); gap: clamp(28px, 5vw, 80px); align-items: center; padding: 0; border: 0; opacity: 0; visibility: hidden; transition: opacity .45s, visibility 0s .45s; }
.orbit.is-live .orbit__item.is-on { opacity: 1; visibility: visible; transition-delay: .08s, 0s; }
.orbit.is-live .orbit__pic { display: none; }
.orbit.is-live .orbit__left { grid-column: 1; translate: 0 26px; transition: translate .8s var(--out); }
.orbit.is-live .orbit__right { grid-column: 3; translate: 0 26px; transition: translate .8s var(--out) .06s; }
.orbit.is-live .is-on .orbit__left, .orbit.is-live .is-on .orbit__right { translate: none; }

/* Reseñas y preguntas */
.rev__grid { display: grid; gap: 48px clamp(32px, 6vw, 96px); }
.rev__score { font-size: clamp(5rem, 10vw, 9rem); line-height: .8; color: var(--monte); }
.rev__src { font-family: var(--ft); font-weight: 600; font-size: 1.1rem; margin-top: 12px; }
.rev__note { color: var(--mut); font-size: .95rem; }
.rev__list { margin-top: 20px; border-bottom: 1px solid var(--line); }
.rev__list li { padding: 20px 0; border-top: 1px solid var(--line); }
.rev__list blockquote { margin: 0; font-size: 1.06rem; line-height: 1.5; }
.rev__who { margin-top: 8px; font-size: .9rem; font-weight: 600; color: var(--mut); }
.faq__grid { display: grid; gap: 24px var(--gap); }
.faq__list { border-bottom: 1px solid var(--line); }
.faq__i { border-top: 1px solid var(--line); }
.faq__i summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 0; cursor: pointer; font-weight: 600; font-size: 1.08rem; line-height: 1.35; list-style: none; }
.faq__i summary::-webkit-details-marker { display: none; }
.faq__i .ico { flex: none; transition: rotate .45s var(--out); }
.faq__i[open] .ico { rotate: 45deg; }
.faq__i p { padding: 0 0 22px; color: var(--mut); max-width: 60ch; }

/* Hospedajes con sus tres fotos */
.stay__tag { color: var(--monte); margin-bottom: 12px; }
.stay__from { margin: 18px 0 20px; color: var(--mut); }
.stay__from b { font-family: var(--fd); font-weight: 400; font-size: 1.9rem; line-height: 1; color: var(--tinta); margin: 0 4px; }
.stay__pics { display: grid; grid-template-columns: 1.7fr 1fr; gap: 12px 14px; align-items: start; }
.stay__p--0 { grid-row: 1 / span 2; }
.stay__p .plate__cap { font-size: .82rem; margin-top: 6px; }

/* Datos concretos */
.datos__grid { display: grid; gap: 24px var(--gap); }
.datos__grid > div { display: grid; gap: 14px; align-content: start; justify-items: start; }
.datos__list { border-bottom: 1px solid var(--line); }
.datos__list div { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; padding: 16px 0; border-top: 1px solid var(--line); }
.datos__list dd { font-family: var(--fd); font-size: 1.7rem; line-height: 1; text-align: right; max-width: 55%; }

/* Subpáginas de experiencias y noticias */
.xp--solo { padding-bottom: calc(var(--sec) * .6); }
.xp__panel--solo { border: 0; padding-block: 0; }
.art { display: grid; gap: 20px var(--gap); padding-block: clamp(40px, 6vw, 80px); border-top: 1px solid var(--line); scroll-margin-top: 100px; }
.art:first-child { border-top: 0; padding-top: 0; }
.art .d2 { font-size: clamp(2.1rem, 3.7vw, 3.3rem); line-height: .93; }
.art__date { font-weight: 600; color: var(--monte); margin-bottom: 10px; }
.art__h { font-size: 1.9rem; line-height: 1; margin: 30px 0 8px; }
.art__body p { max-width: 64ch; }

/* Reservas */
.rv__tabs { display: grid; gap: 10px; margin-bottom: 22px; }
.rv__tab { text-align: left; padding: 16px 20px; border-radius: 14px; box-shadow: inset 0 0 0 1.5px var(--line2); transition: background-color .3s, color .3s, box-shadow .3s; }
.rv__tab b { display: block; font-family: var(--fd); font-weight: 400; text-transform: uppercase; font-size: 2rem; line-height: 1; }
.rv__tab span { font-size: .9rem; opacity: .85; }
.rv__tab[aria-selected="true"] { background: var(--tinta); color: var(--arena); box-shadow: none; }
.rv__txt { max-width: 64ch; color: var(--mut); margin-bottom: 24px; }
.rv__opts { display: grid; gap: 14px; margin-bottom: clamp(36px, 5vw, 60px); }
.rv__opt { display: flex; flex-direction: column; align-items: flex-start; padding: 22px; border-radius: 16px; background: rgba(255, 255, 255, .42); box-shadow: inset 0 0 0 1.5px var(--line); transition: box-shadow .3s; }
.rv__opt.is-sel { box-shadow: inset 0 0 0 2px var(--monte); }
.rv__opt h3 { font-family: var(--fd); text-transform: uppercase; font-size: 2rem; line-height: .95; margin: 6px 0; }
.rv__opt > p { color: var(--mut); font-size: .98rem; }
.rv__opt .rv__tag { font-size: .86rem; font-weight: 600; color: var(--monte); }
.rv__opt .rv__price { font-family: var(--fd); font-size: 2.8rem; line-height: 1; margin-top: 14px; color: var(--tinta); }
.rv__price small { display: block; font-family: var(--ft); font-size: .86rem; color: var(--mut); margin-top: 2px; }
.rv__opt ul { margin: 14px 0 18px; font-size: .95rem; color: var(--mut); }
.rv__opt li { position: relative; padding: 4px 0 4px 18px; }
.rv__opt li::before { content: ''; position: absolute; left: 0; top: .95em; width: 9px; height: 1.5px; background: var(--monte); }
.rv__opt .btn { margin-top: auto; }
.rv__book { display: grid; gap: 32px; align-items: start; }
.rv__fs { border: 0; padding: 0; margin: 0; min-width: 0; }
.rv__fs legend { font-weight: 600; font-size: .96rem; margin-bottom: 8px; padding: 0; }
.rv__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.rv__chip input { position: absolute; opacity: 0; }
.rv__chip span { display: inline-flex; align-items: center; min-height: 46px; padding: 0 18px; border-radius: 999px; box-shadow: inset 0 0 0 1.5px var(--line2); font-weight: 600; font-size: .95rem; cursor: pointer; transition: background-color .3s, color .3s; }
.rv__chip input:checked + span { background: var(--monte); color: var(--arena); box-shadow: none; }
.rv__chip input:focus-visible + span { outline: 2px solid var(--monte); outline-offset: 3px; }
.rv__step { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.rv__step output { font-family: var(--fd); font-size: 2.4rem; line-height: 1; min-width: 1.4em; text-align: center; }
.rv__sum { padding: 24px; border-radius: 18px; background: var(--selva) var(--grano); color: var(--arena); --mut: rgba(242, 235, 220, .76); --line: rgba(242, 235, 220, .18); --acc: var(--oro); }
.rv__lines { margin-top: 12px; }
.rv__lines div { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.rv__lines dt { color: var(--mut); }
.rv__lines dd { text-align: right; font-weight: 600; }
.rv__total { display: grid; gap: 4px; margin-top: 18px; }
.rv__total span { color: var(--mut); font-size: .95rem; }
.rv__total b { font-family: var(--fd); font-weight: 400; font-size: 3rem; line-height: 1; color: var(--oro); }
.rv__total b.is-wait { font-family: var(--ft); font-size: 1.05rem; font-weight: 500; line-height: 1.4; color: var(--arena); }
.rv__prev { margin-top: 18px; }
.rv__prev summary { cursor: pointer; font-weight: 600; min-height: 44px; display: flex; align-items: center; }
.rv__prev pre { white-space: pre-wrap; font: inherit; font-size: .9rem; color: var(--mut); margin: 6px 0 0; }
.field em { font-style: normal; font-weight: 400; color: var(--mut); }
.code__row { display: flex; align-items: stretch; gap: 8px; }
.code__row > span { display: grid; place-items: center; width: 46px; flex: none; border: 1.5px solid rgba(19, 33, 26, .56); border-radius: 12px; font-weight: 600; }
.code__row input { flex: 1; min-width: 0; text-transform: lowercase; }
.code__msg { min-height: 1.4em; margin-top: 6px; font-size: .92rem; font-weight: 600; color: var(--monte); }
.code__msg.is-bad { color: var(--mal); }

@media (min-width: 620px) {
  .pcards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rv__tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rv__opts { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
}
@media (min-width: 900px) {
  .sechead, .faq__grid, .datos__grid, .art { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .sechead { align-items: end; }
  .sechead .d2 { grid-column: 1 / span 7; }
  .sechead .body { grid-column: 9 / -1; }
  .statement__side { grid-column: 1 / span 4; }
  .statement__main { grid-column: 6 / -1; }
  .pcards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rev__grid { grid-template-columns: 1fr 1fr; }
  .faq__grid > .d2 { grid-column: 1 / span 5; font-size: clamp(2.2rem, 4.4vw, 4.2rem); }
  .faq__list { grid-column: 7 / -1; }
  .datos__grid > div { grid-column: 1 / span 5; }
  .datos__list { grid-column: 7 / -1; }
  .art__head { grid-column: 1 / span 5; position: sticky; top: 120px; align-self: start; }
  .art__body { grid-column: 7 / -1; }
    .rv__book { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(28px, 4vw, 64px); }
  .rv__book .form { grid-column: 1; }
  .rv__sum { grid-column: 2; position: sticky; top: 110px; }
  .stay { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
}
.motion-off .orbit__card { transform: none; }

/* ================= Tercera vuelta: el recorrido, la tortuga, el rastro del cursor y las transiciones ================= */

/* Rastro de lectura: una línea y una cría de tortuga que avanza hacia el mar del pie */
.trail { position: fixed; inset: 0 0 auto 0; z-index: 110; height: 3px; pointer-events: none; --sp: 0; }
.trail__line { display: block; height: 100%; background: var(--oro); box-shadow: 0 0 0 .5px rgba(14, 36, 27, .4); transform: scaleX(var(--sp)); transform-origin: 0 50%; }
.tortu { fill: var(--oro); stroke: var(--selva-3); stroke-width: 1.3; stroke-linejoin: round; overflow: visible; }
.tortu__s { stroke-width: .9; opacity: .65; }
.tortu g path { transform-box: view-box; }
.is-walking .tortu g path, .tortu.is-walking g path { animation: remo .42s ease-in-out infinite alternate; }
@keyframes remo { from { transform: rotate(-18deg); } to { transform: rotate(16deg); } }
.trail__t { position: absolute; left: 0; top: 3px; box-sizing: content-box; width: 26px; height: auto; padding: 4px 7px 5px; border-radius: 0 0 11px 11px; background: var(--selva-3); translate: var(--tx, 0px) 0; transform: translateY(-40px); opacity: 0; transition: transform .7s var(--out), opacity .35s; }
.trail.is-out .trail__t { transform: none; opacity: 1; }
.trail.is-out.is-sea .trail__t { transform: translate(26px, 12px) rotate(24deg); opacity: 0; transition-duration: 1.1s, .9s; }

/* …y al final de la página entra al agua y se queda nadando con los peces */
.sea__cria { position: absolute; right: 6%; top: -4px; width: 44px; opacity: 0; rotate: 112deg; }
.sea__cria .tortu { width: 100%; height: auto; }
.sea.is-arrived .sea__cria { animation: zambullida 6.5s cubic-bezier(.2, .7, .2, 1) .25s forwards; }
.sea.is-arrived .sea__cria .tortu g path { animation: remo .8s ease-in-out infinite alternate; }
@keyframes zambullida { 0% { opacity: 0; translate: 0 -34px; rotate: 112deg; } 14% { opacity: 1; } 45% { rotate: 164deg; } 100% { opacity: 1; translate: -46vw 44px; rotate: 184deg; } }

/* Portadas interiores: en qué parada estás y qué viene después */
.hero__foot--ruta { align-items: center; justify-content: space-between; }
.hero__ruta { display: flex; align-items: center; gap: 14px; }
.hero__dots { display: inline-flex; align-items: center; }
.hero__dots i { position: relative; width: 7px; height: 7px; margin-right: 15px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--line2); }
.hero__dots i:not(:last-child)::after { content: ''; position: absolute; left: 10px; top: 3px; width: 9px; height: 1px; background: var(--line2); }
.hero__dots i:last-child { margin-right: 0; }
.hero__dots .on { background: var(--oro); box-shadow: none; }
.hero__dots .now { outline: 1.5px solid var(--oro); outline-offset: 3px; }
.hero__sig a { font-weight: 600; color: var(--arena); text-underline-offset: 4px; padding: 12px 0; margin: -12px 0; }
.hero__hora b { font-weight: 600; color: var(--arena); font-variant-numeric: tabular-nums; }

/* Recorrido al pie de cada página: la playa antes del mar */
.ruta { --bg: var(--arena-2); --fg: var(--tinta); --mut: #46564C; --acc: var(--monte); --line: rgba(19, 33, 26, .16); --line2: rgba(19, 33, 26, .5); background: var(--arena-2) var(--grano); color: var(--tinta); padding-block: clamp(44px, 6vw, 84px) clamp(36px, 5vw, 64px); border-top: 1px solid var(--line); }
.sea__surface { background: var(--arena-2); }
.ruta__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px 32px; }
.ruta__t { font-family: var(--ft); font-size: 1rem; font-weight: 600; color: var(--monte); }
.ruta__map { display: flex; flex-wrap: wrap; }
.ruta__stop a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; text-decoration: none; font-size: .93rem; color: var(--mut); }
.ruta__stop i { flex: none; width: 9px; height: 9px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--line2); transition: scale .4s var(--out); }
.ruta__stop:not(:last-child) a::after { content: ''; width: clamp(10px, 2.2vw, 30px); height: 1px; margin: 0 10px 0 4px; background: repeating-linear-gradient(90deg, var(--line2) 0 3px, transparent 3px 6px); }
.ruta__stop.is-done i { background: var(--monte); box-shadow: none; }
.ruta__stop.is-now a { color: var(--tinta); font-weight: 600; }
.ruta__stop.is-now i { background: var(--oro-d); box-shadow: 0 0 0 4px rgba(176, 122, 34, .22); }
.ruta__stop a:hover i { scale: 1.5; }
.ruta__stop a:hover span { text-decoration: underline; text-underline-offset: 4px; }
.ruta__next { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px clamp(16px, 3vw, 48px); align-items: center; margin-top: clamp(18px, 2.4vw, 32px); padding-block: clamp(24px, 3.4vw, 46px); border-block: 1px solid var(--line); text-decoration: none; }
.ruta__k { grid-column: 1; align-self: end; font-weight: 600; font-size: .98rem; color: var(--monte); }
.ruta__name { grid-column: 1; font-family: var(--fd); text-transform: uppercase; font-size: clamp(3.2rem, 10vw, 9.4rem); line-height: .86; text-wrap: balance; transition: translate .8s var(--out), color .4s; }
.ruta__name--l { font-size: clamp(2.3rem, 5.6vw, 5.4rem); line-height: .9; }
.ruta__d { grid-column: 1; align-self: start; color: var(--mut); max-width: 46ch; margin-top: 10px; }
.ruta__pic { grid-column: 2; grid-row: 1 / span 3; width: clamp(96px, 20vw, 250px); aspect-ratio: 4 / 5; border-radius: var(--r); overflow: hidden; rotate: 3deg; background: var(--card, var(--arena)); box-shadow: 0 26px 50px -30px rgba(19, 33, 26, .7); transition: rotate .9s var(--out), scale .9s var(--out); }
.ruta__pic img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.9) contrast(1.03); scale: 1.1; transition: scale 1.4s var(--out); }
.ruta__go { display: none; }
.ruta__foot { display: grid; gap: 14px 40px; margin-top: 14px; align-items: start; }
.ruta__lados { display: flex; flex-wrap: wrap; gap: 0 30px; }
.ruta__prev, .ruta__skip { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; text-decoration: none; font-weight: 600; font-size: .96rem; }
.ruta__prev .ico, .ruta__skip .ico { width: 18px; height: 18px; transition: translate .5s var(--out); }
.ruta__prev:hover .ico { translate: -5px 0; }
.ruta__skip:hover .ico { translate: 5px 0; }
.ruta__sec p { font-size: .9rem; color: var(--mut); padding-top: 11px; }
.ruta__subs { display: flex; flex-wrap: wrap; gap: 0 22px; }
.ruta__subs a { display: inline-flex; align-items: center; min-height: 40px; font-size: .96rem; text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 calc(100% - 8px) / 0 1px no-repeat; transition: background-size .5s var(--out); }
.ruta__subs a:hover { background-size: 100% 1px; }
.ruta__subs a[aria-current] { font-weight: 600; color: var(--monte); }

/* Inicio: el recorrido como sendero, con la tortuga bajando por él */
.sendero { position: relative; --tp: 0; }
.sendero__via { position: absolute; left: 13px; top: 0; bottom: 0; width: 2px; background: repeating-linear-gradient(180deg, var(--line2) 0 4px, transparent 4px 10px); }
.sendero__via i { position: absolute; inset: 0; background: var(--monte); transform: scaleY(var(--tp)); transform-origin: 50% 0; }
.sendero__t { position: absolute; left: 50%; top: -15px; width: 30px; max-width: none; height: auto; margin-left: -15px; rotate: 90deg; translate: 0 var(--ty, 0px); z-index: 2; }
.paradas { padding-left: 46px; }
.parada__n { position: absolute; left: -46px; top: 50%; z-index: 1; display: grid; place-items: center; width: 28px; height: 28px; margin-top: -14px; border-radius: 50%; background: var(--arena); box-shadow: inset 0 0 0 1.5px var(--line2); font-family: var(--fd); font-size: 1.15rem; line-height: 1; padding-top: 1px; transition: background-color .5s, color .5s, box-shadow .5s, scale .6s var(--out); }
.parada.is-done .parada__n { background: var(--monte); color: var(--arena); box-shadow: none; scale: 1.12; }
.paradas .index__d b { color: var(--fg); font-weight: 600; }
.paso { font-size: clamp(1.2rem, 1.6vw, 1.5rem); margin-bottom: 12px; }
.ribbon__foot .paso, .shopstrip__head .paso { grid-column: 1 / -1; margin-bottom: 0; }

/* Programas como tarifario */
.tarifa { border-bottom: 1px solid var(--line); }
.tarifa__row { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 8px 16px; align-items: start; padding: 22px 0; border-top: 1px solid var(--line); scroll-margin-top: 110px; transition: opacity .4s; }
.tarifa__thumb { grid-row: 1 / span 2; width: 72px; aspect-ratio: 4 / 5; border-radius: var(--r); overflow: hidden; background: var(--card); }
.tarifa__thumb img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.9); }
.tarifa__t { font-family: var(--fd); font-weight: 400; text-transform: uppercase; font-size: clamp(1.75rem, 2.7vw, 2.6rem); line-height: .93; transition: translate .7s var(--out), color .3s; }
.tarifa__d { color: var(--mut); font-size: .96rem; margin-top: 7px; max-width: 54ch; }
.tarifa__m { grid-column: 2; display: flex; flex-wrap: wrap; gap: 0 10px; font-size: .93rem; color: var(--mut); }
.tarifa__m b { color: var(--acc); font-weight: 600; }
.tarifa__p { grid-column: 2; font-family: var(--fd); font-size: 2.1rem; line-height: 1; font-variant-numeric: tabular-nums; }
.tarifa__row .btn { grid-column: 2; justify-self: start; }

/* Reservas: una sola forma de elegir, y el sello del código */
.rv__chosen { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 16px; align-items: center; padding: 14px 16px 12px; border: 1.5px dashed rgba(29, 90, 58, .6); border-radius: 6px; }
.rv__chosen-k { grid-column: 1 / -1; font-size: .9rem; font-weight: 600; color: var(--monte); }
.rv__chosen-v { font-weight: 600; font-size: 1.08rem; }
.rv__chosen .field__err { grid-column: 1 / -1; }
.rv__chosen .link { margin-top: 0; }
.rv__sum { position: relative; }
.rv__ancla { display: block; height: 0; }
.sello { display: none; width: max-content; padding: 7px 12px 5px; border: 2px solid currentColor; border-radius: 3px; outline: 1px solid currentColor; outline-offset: 2px; color: var(--oro); font-family: var(--fd); text-transform: uppercase; font-size: 1.5rem; line-height: 1; letter-spacing: .03em; rotate: -8deg; }
.rv__sum .sello { position: absolute; right: 18px; top: 18px; }
.code .sello { margin-top: 12px; color: var(--monte); rotate: -4deg; }
.sello.is-on { display: block; animation: sello .6s var(--out) both; }
@keyframes sello { 0% { opacity: 0; scale: 2.3; rotate: 8deg; } 55% { opacity: 1; scale: .93; rotate: -11deg; } 100% { opacity: 1; scale: 1; } }
.otra__in { display: grid; gap: 12px; justify-items: start; padding-top: clamp(28px, 4vw, 48px); border-top: 1px solid var(--line); }
.otra__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 28px; margin-top: 10px; }

/* Página de cada pieza del Marketplace */
a.prod__img { display: block; }
.prod__name a { text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1.5px no-repeat; transition: background-size .5s var(--out); }
.prod__name a:hover, .prod__name a:focus-visible { background-size: 100% 1.5px; }
.pieza__grid { display: grid; gap: 44px var(--gap); align-items: start; }
.pieza__info { display: grid; gap: 14px; justify-items: start; align-content: start; }
.pieza__grid--solo .pieza__info { max-width: 760px; }
.pieza__h { font-family: var(--ft); font-size: 1.1rem; font-weight: 600; color: var(--monte); margin-top: 14px; }
.pieza__compra { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; width: 100%; margin-top: 18px; padding-block: 22px; border-block: 1px solid var(--line); }
.pieza__price b { font-size: 3rem; line-height: 1; }
.pieza__fotos { columns: 2; column-gap: 14px; }
.pieza__f { break-inside: avoid; margin-bottom: 18px; }
.pieza__f:nth-child(odd) { rotate: -1.2deg; }
.pieza__f:nth-child(even) { rotate: 1deg; }

/* Videos del inicio: la miniatura no carga el reproductor hasta que alguien lo pide */
.videos__grid { display: grid; gap: 32px var(--gap); }
.video { display: block; text-decoration: none; }
.video__pic { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; border-radius: var(--r); background: var(--selva-2); }
.video__pic img, .video__pic iframe { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 0; }
.video__pic img { filter: saturate(.9); transition: scale 1.3s var(--out); }
.video:hover .video__pic img { scale: 1.05; }
.video__play { position: absolute; left: 18px; bottom: 18px; display: grid; place-items: center; width: 68px; height: 68px; border-radius: 50%; background: var(--oro); color: var(--tinta); transition: scale .6s var(--out); }
.video__play svg { margin-left: 3px; }
.video:hover .video__play, .video:focus-visible .video__play { scale: 1.12; }
.video__t { display: block; margin-top: 14px; font-family: var(--fd); text-transform: uppercase; font-size: 2rem; line-height: .95; }
@media (min-width: 620px) { .videos__grid { grid-template-columns: 1fr 1fr; } }

/* WhatsApp: el mensaje que se va a enviar, a la vista */
.wa-tip { display: none; }

/* Varios */
.xp__main--wide { grid-template-columns: minmax(0, 1fr); }
.xp__main--wide .xp__text { max-width: 880px; }
.xp__text > .corp { margin-top: 0; width: 100%; }
.contact__note { margin-top: 2px; }
.news__fin { margin-top: clamp(28px, 4vw, 48px); padding-top: clamp(24px, 3vw, 40px); border-top: 1px solid var(--line); }

/* Datos sueltos sin píldoras: una marca pequeña y el texto */
.facts { gap: 6px 22px; }
.facts li, .orbit__tags li { display: inline-flex; align-items: center; gap: 9px; padding: 0; border-radius: 0; box-shadow: none; font-weight: 600; }
.facts li::before, .orbit__tags li::before { content: ''; flex: none; width: 5px; height: 5px; rotate: 45deg; background: var(--acc); }
.orbit__tags { gap: 4px 18px; }
.orbit__tags li { color: var(--mut); }

/* Radios: el botón es redondo; el papel, las fichas y los campos, casi rectos */
.field input, .field textarea, .code__row > span, .form__basket, .rv__tab, .rv__opt, .rv__sum, .nav__sub, .corp, .sky__xp, .shop__empty { border-radius: 6px; }
.nav__sub a { border-radius: 4px; }
.stay { border-radius: 8px; }

/* Acordeones que abren con suavidad donde el navegador lo permite */
@supports (interpolate-size: allow-keywords) {
  :root { interpolate-size: allow-keywords; }
  .faq__i::details-content, .rv__prev::details-content { block-size: 0; overflow: clip; transition: block-size .55s var(--out), content-visibility .55s allow-discrete; }
  .faq__i[open]::details-content, .rv__prev[open]::details-content { block-size: auto; }
}

/* Láminas de portada: se inclinan un poco hacia el cursor */
.hero__plates { perspective: 1100px; }
.hero__plate--a, .hero__plate--b { transform: rotateX(var(--tx, 0deg)) rotateY(var(--ty, 0deg)); }

/* Rastro del cursor: luciérnagas en la selva, burbujas en el mar */
.glow { position: fixed; inset: 0; z-index: 90; width: 100%; height: 100%; pointer-events: none; }

/* Entre páginas: la nueva sube como la marea y la foto elegida viaja hasta la portada */
::view-transition-old(root) { animation: .7s var(--io) both vt-out; }
::view-transition-new(root) { animation: .9s var(--out) both vt-in; }
@keyframes vt-out { to { transform: translateY(-5vh); filter: brightness(.5); } }
@keyframes vt-in { from { clip-path: ellipse(120% 0% at 50% 100%); } to { clip-path: ellipse(170% 150% at 50% 100%); } }
.hero__plate--a .plate__img { view-transition-name: foto; }
::view-transition-group(foto) { animation-duration: .9s; animation-timing-function: var(--out); }
::view-transition-old(foto), ::view-transition-new(foto) { height: 100%; object-fit: cover; }
.vt .hero__plate--a .plate__img { clip-path: none !important; transition: none !important; }
.vt .hero__plate--a .plate__pic { scale: 1.14 !important; transition: none !important; }
.vt .hero__plate--a .plate__cap { opacity: 1 !important; }
.motion-off::view-transition-group(*), .motion-off::view-transition-old(*), .motion-off::view-transition-new(*) { animation: none !important; }
.motion-off .glow { display: none; }

@media (min-width: 620px) {
  .ruta__next { grid-template-columns: minmax(0, 1fr) auto auto; }
  .ruta__go { display: grid; place-items: center; grid-column: 3; grid-row: 1 / span 3; width: 64px; height: 64px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--line2); transition: background-color .4s, color .4s, rotate .7s var(--out), box-shadow .4s; }
}
@media (min-width: 900px) {
  .pieza__grid { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(32px, 6vw, 96px); }
  .pieza__info { position: sticky; top: 110px; }
  .ruta__foot { grid-template-columns: auto minmax(0, 1fr); }
  .ruta__sec { justify-self: end; text-align: right; }
  .ruta__subs { justify-content: flex-end; }
  .sendero__via { left: 17px; }
  .paradas { padding-left: 64px; }
  .parada__n { left: -64px; width: 36px; height: 36px; margin-top: -18px; font-size: 1.45rem; }
  .tarifa__row { grid-template-columns: minmax(0, 6fr) minmax(0, 2.2fr) auto auto; gap: 8px clamp(18px, 3vw, 44px); align-items: center; padding: clamp(20px, 2.2vw, 30px) 0; }
  .tarifa__thumb { display: none; }
  .tarifa__m, .tarifa__p, .tarifa__row .btn { grid-column: auto; }
  .tarifa__m { flex-direction: column; }
  .tarifa__p { min-width: 4.4em; text-align: right; }
  .orbit:not(.is-live) .orbit__item { grid-template-columns: minmax(0, 4fr) minmax(0, 3fr) minmax(0, 5fr); gap: clamp(20px, 3vw, 48px); align-items: start; }
}
@media (hover: hover) and (pointer: fine) {
  .ruta__next:hover .ruta__name, .ruta__next:focus-visible .ruta__name { translate: 16px 0; color: var(--monte); }
  .ruta__next:hover .ruta__pic, .ruta__next:focus-visible .ruta__pic { rotate: 0deg; scale: 1.05; }
  .ruta__next:hover .ruta__pic img { scale: 1; }
  .ruta__next:hover .ruta__go, .ruta__next:focus-visible .ruta__go { background: var(--monte); color: var(--arena); rotate: 45deg; box-shadow: none; }
  .tarifa:hover .tarifa__row { opacity: .45; }
  .tarifa .tarifa__row:hover { opacity: 1; }
  .tarifa__row:hover .tarifa__t { translate: 10px 0; color: var(--oro); }
  .peek.peek--s { width: min(16vw, 220px); }
  .wa-tip { display: block; position: fixed; right: 16px; bottom: 82px; z-index: 81; width: min(310px, calc(100vw - 32px)); padding: 13px 16px 15px; border-radius: 14px 14px 3px 14px; background: var(--arena); color: var(--tinta); font-size: .92rem; line-height: 1.45; box-shadow: 0 22px 44px -18px rgba(0, 0, 0, .6); opacity: 0; visibility: hidden; translate: 0 10px; scale: .96; transform-origin: 100% 100%; pointer-events: none; transition: opacity .25s, translate .5s var(--out), scale .5s var(--out), visibility 0s .25s; }
  .wa-tip.on { opacity: 1; visibility: visible; translate: none; scale: 1; transition-delay: 0s; }
  .wa-tip b { display: block; font-size: .82rem; color: var(--monte); margin-bottom: 3px; }
  .wa-tip p { white-space: pre-line; }
}

/* ================= Cuarta vuelta: idiomas ================= */
/* Selector de idioma: en la cabecera, en el menú de pantalla completa y en el pie */
.lang { position: relative; flex: none; }
.lang summary { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 4px; list-style: none; cursor: pointer; font-weight: 600; font-size: .92rem; }
.lang summary::-webkit-details-marker { display: none; }
.lang summary .ico { width: 20px; height: 20px; }
.lang__list { position: absolute; right: -8px; top: calc(100% - 2px); z-index: 5; min-width: 168px; padding: 8px; border-radius: 6px; background: var(--selva-3); box-shadow: 0 24px 50px -20px rgba(0, 0, 0, .65), inset 0 0 0 1px rgba(242, 235, 220, .14); }
.lang__list a { display: block; padding: 10px 12px; border-radius: 4px; text-decoration: none; font-size: .95rem; line-height: 1.3; }
.lang__list a:hover, .lang__list a:focus-visible { background: rgba(242, 235, 220, .1); }
.lang__list a[aria-current], .menu__langs a[aria-current], .sea__langs a[aria-current] { color: var(--oro); }
.top.is-menu .lang { visibility: hidden; }
.menu__langs, .sea__langs { display: flex; flex-wrap: wrap; gap: 0 18px; }
.menu__langs a, .sea__langs a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; color: var(--mut); }
.sea__langs a:hover { color: var(--arena); }
.sea__legal { row-gap: 4px; }

/* Palabras largas (sobre todo en alemán): se parten antes que salirse de la pantalla */
:is(.d1, .d2, .d3, .index__t, .ruta__name, .orbit__name, .menu__t, .tarifa__t, .pcard__t, .ledger__name, .spec__name, .prod__name, .act, .rv__tab b, .rv__opt h3) { overflow-wrap: break-word; }
:lang(de) :is(.d1, .d2, .d3, .index__t, .ruta__name, .orbit__name, .menu__t, .ledger__name, .spec__name, .act), :lang(fr) :is(.d1, .d2, .ruta__name) { -webkit-hyphens: auto; hyphens: auto; }

/* Chino: los titulares usan la fuente del sistema, más ancha que la gótica condensada, así que bajan de tamaño */
:root:lang(zh) { --fd: 'League Gothic', "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Noto Sans CJK SC", sans-serif; --ft: 'Hanken Grotesk', "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Noto Sans CJK SC", sans-serif; --fh: "Kaiti SC", "STKaiti", "KaiTi", "BiauKai", "PingFang SC", cursive; }
:root:lang(zh) body { line-height: 1.75; }
:lang(zh) :is(.d1, .d2, .d3, .index__t, .ledger__name, .spec__name, .spec__endt, .days__v, .prod__name, .menu__t, .marquee__track li, .topic__t, .sky__dv, .sky__mh, .progi__t, .corp__t, .tour__t, .step__t, .act, .orbit__name, .pcard__t, .art__h, .ruta__name, .tarifa__t, .rv__tab b, .rv__opt h3, .video__t) { font-weight: 800; letter-spacing: .01em; }
:lang(zh) .d1 { font-size: clamp(2.2rem, 5.4vw, 5.2rem); line-height: 1.14; }
:lang(zh) .d2 { font-size: clamp(1.9rem, 3.9vw, 3.5rem); line-height: 1.18; }
:lang(zh) .d3 { font-size: clamp(1.4rem, 2.2vw, 2rem); line-height: 1.25; }
:lang(zh) .index__t { font-size: clamp(1.7rem, 3.6vw, 3.2rem); line-height: 1.15; }
:lang(zh) .ruta__name { font-size: clamp(2.2rem, 6vw, 5.4rem); line-height: 1.12; }
:lang(zh) .ruta__name--l { font-size: clamp(1.8rem, 4vw, 3.6rem); }
:lang(zh) .marquee__track li { font-size: clamp(2.2rem, 5.6vw, 5rem); }
:lang(zh) .marquee--ghost li { font-size: clamp(1.7rem, 3.8vw, 3.4rem); }
:lang(zh) .orbit__name { font-size: clamp(1.9rem, 4vw, 3.4rem); line-height: 1.16; }
:lang(zh) .menu__t { font-size: clamp(1.9rem, 7vw, 2.8rem); line-height: 1.2; }
:lang(zh) :is(.ledger__name, .spec__name, .days__v, .topic__t, .progi__t, .tour__t, .step__t, .pcard__t, .tarifa__t, .prod__name, .art__h, .rv__opt h3, .rv__tab b, .video__t, .sky__mh, .spec__endt) { font-size: 1.45rem; line-height: 1.28; }
:lang(zh) .act { font-size: clamp(1.4rem, 2.4vw, 2rem); }
:lang(zh) .corp__t { font-size: clamp(1.6rem, 2.6vw, 2.2rem); line-height: 1.22; }
:lang(zh) :is(.lead, .statement__text, .intro__big) { line-height: 1.6; letter-spacing: 0; }
:lang(zh) .hand { rotate: -1.2deg; }
