/* ==========================================================================
   Ejemplo Tours Riviera Maya — sistema visual
   Idea: «boletos de viaje» de cristal flotando sobre un Caribe luminoso.
   Tipografía: Bricolage Grotesque (display/UI) + Instrument Serif (emoción).
   ========================================================================== */
@font-face { font-family: "Bricolage Grotesque"; src: url(/fonts/bricolage-latin.woff2) format("woff2"); font-weight: 500 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Instrument Serif"; src: url(/fonts/instrument-italic-latin.woff2) format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Instrument Serif"; src: url(/fonts/instrument-latin.woff2) format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }

:root {
  --ink: #062F45;
  --ink-2: #2B5266;
  --turq: #00A9BD;
  --turq-d: #00788A;
  --lagoon: #52E3D4;
  --ocean: #0A6FB8;
  --ocean-d: #075C9C;
  --sun: #FFB81C;
  --sun-l: #FFD978;
  --coral: #FF5E4D;
  --sand: #FFF1D6;
  --bg: #EFFAFB;
  --wa: #25D366;
  --wa-ink: #063B21;
  --primary: var(--turq);
  --accent: var(--sun);

  --font-display: "Bricolage Grotesque", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --font-editorial: "Instrument Serif", Georgia, "Times New Roman", serif;

  --text-hero: clamp(2.55rem, 6.1vw, 6.1rem);
  --text-h1: clamp(2.4rem, 5.4vw, 5rem);
  --text-h2: clamp(2.05rem, 4.2vw, 3.7rem);
  --text-h3: clamp(1.45rem, 2.1vw, 2rem);
  --text-lead: clamp(1.05rem, 1.25vw, 1.25rem);
  --text-body: clamp(1rem, .25vw + .94rem, 1.08rem);

  --r-card: 28px;
  --r-inner: 20px;
  --gutter: 16px;
  --wrap: 1240px;
  --nav-h: 72px;

  --glass: linear-gradient(145deg, rgba(255,255,255,.78), rgba(255,255,255,.5));
  --glass-border: rgba(255,255,255,.9);
  --lift:
    0 2px 6px color-mix(in srgb, var(--ocean) 12%, transparent),
    0 14px 30px -12px color-mix(in srgb, var(--ocean) 26%, transparent),
    0 40px 90px -34px color-mix(in srgb, var(--ocean) 34%, transparent),
    0 26px 70px -22px color-mix(in srgb, var(--turq) 44%, transparent),
    inset 0 1px 0 rgba(255,255,255,.95),
    inset 0 -1px 0 color-mix(in srgb, var(--ocean) 12%, transparent);
  --lift-hover:
    0 2px 6px color-mix(in srgb, var(--ocean) 14%, transparent),
    0 22px 42px -14px color-mix(in srgb, var(--ocean) 30%, transparent),
    0 52px 110px -34px color-mix(in srgb, var(--ocean) 38%, transparent),
    0 32px 90px -18px color-mix(in srgb, var(--turq) 62%, transparent),
    inset 0 1px 0 rgba(255,255,255,.95),
    inset 0 -1px 0 color-mix(in srgb, var(--ocean) 12%, transparent);
  --ease: cubic-bezier(.2,.8,.2,1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--nav-h) + 16px); }
body {
  margin: 0; min-height: 100vh; overflow-x: clip;
  font-family: var(--font-display); font-weight: 500; font-size: var(--text-body); line-height: 1.65;
  color: var(--ink); background: var(--bg);
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
/* luz ambiental del Caribe detrás de toda la web */
body::before {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(60vmax 50vmax at -10% 10%, color-mix(in srgb, var(--lagoon) 30%, transparent), transparent 60%),
    radial-gradient(50vmax 45vmax at 110% 35%, color-mix(in srgb, var(--sun-l) 34%, transparent), transparent 62%),
    radial-gradient(55vmax 50vmax at 30% 110%, color-mix(in srgb, var(--turq) 20%, transparent), transparent 60%),
    linear-gradient(180deg, #F2FCFC 0%, #EAF7F9 45%, #FFF7EA 100%);
}
button, input, select, textarea, optgroup { font-family: inherit; font-size: max(16px, 1em); color: inherit; }
::placeholder { font-family: inherit; color: #6A8796; opacity: 1; }
img, picture, svg, video { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; }
p { margin: 0 0 1em; }
h1, h2, h3, h4 { margin: 0; font-weight: 700; line-height: 1.05; letter-spacing: -.025em; text-wrap: balance; overflow-wrap: normal; word-break: normal; }
:focus-visible { outline: 3px solid var(--ocean); outline-offset: 3px; border-radius: 8px; }
.skip { position: absolute; left: 12px; top: -80px; z-index: 200; background: #fff; padding: 12px 16px; border-radius: 12px; font-weight: 700; }
.skip:focus { top: 12px; }
header, main, section, footer { position: relative; z-index: 1; }
main { display: block; }
.wrap { width: min(var(--wrap), 100% - 2 * var(--gutter)); margin-inline: auto; }
.narrow { width: min(860px, 100% - 2 * var(--gutter)); }
.ic { width: 1.25em; height: 1.25em; flex: none; }
.emo { font-family: var(--font-editorial); font-style: italic; font-weight: 400; letter-spacing: -.01em; color: var(--ocean); font-size: 1.12em; line-height: .9; }
.eyebrow { display: inline-flex; align-items: center; gap: .6em; margin: 0 0 1rem; font-size: .74rem; font-weight: 700; letter-spacing: .3em; text-transform: uppercase; color: var(--turq-d); }
.eyebrow::before { content: ""; width: .7em; height: .7em; border-radius: 50%; background: radial-gradient(circle at 35% 35%, var(--sun-l), var(--sun)); box-shadow: 0 0 0 4px color-mix(in srgb, var(--sun) 22%, transparent); }
.eyebrow--light { color: #fff; text-shadow: 0 1px 3px rgba(4,24,30,.6), 0 2px 16px rgba(4,24,30,.45); }
.h2 { font-size: var(--text-h2); }
.h3 { font-size: var(--text-h3); letter-spacing: -.02em; line-height: 1.12; }
.h4 { font-size: 1.2rem; letter-spacing: -.01em; line-height: 1.2; }
.lead { font-size: var(--text-lead); color: var(--ink-2); max-width: 62ch; }
.note { display: flex; gap: .5rem; align-items: flex-start; font-size: .9rem; color: var(--ink-2); margin-top: .8rem; }
.note .ic { color: var(--turq-d); margin-top: .2em; }
.num, .tcard__price strong, .book__total strong, .book__prices dd { font-variant-numeric: tabular-nums lining-nums; font-feature-settings: "tnum" 1, "lnum" 1; }

/* ---------- cristal (todas las cajas de contenido) ---------- */
.glass {
  background: var(--glass);
  -webkit-backdrop-filter: blur(22px) saturate(170%);
  backdrop-filter: blur(22px) saturate(170%);
  border: 1px solid var(--glass-border);
  border-radius: var(--r-card);
  box-shadow: var(--lift);
}

/* ---------- botones de cristal con color ---------- */
.btn {
  --btn: var(--sun); --btn-ink: var(--ink);
  display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
  min-height: 48px; padding: 0 1.25rem; border-radius: 14px; cursor: pointer;
  font-weight: 700; font-size: 1rem; line-height: 1.1; letter-spacing: -.005em; text-decoration: none; text-align: center; white-space: nowrap;
  color: var(--btn-ink);
  background: linear-gradient(145deg, color-mix(in srgb, var(--btn) 90%, white 10%), color-mix(in srgb, var(--btn) 76%, transparent));
  -webkit-backdrop-filter: blur(18px) saturate(180%); backdrop-filter: blur(18px) saturate(180%);
  border: 1px solid color-mix(in srgb, white 55%, var(--btn));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7), inset 0 -1px 0 color-mix(in srgb, var(--btn) 60%, black 12%), 0 10px 26px -10px color-mix(in srgb, var(--btn) 75%, transparent);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), background .3s;
}
.btn:hover { transform: translateY(-2px); box-shadow: inset 0 1px 0 rgba(255,255,255,.75), inset 0 -1px 0 color-mix(in srgb, var(--btn) 60%, black 12%), 0 16px 34px -10px color-mix(in srgb, var(--btn) 85%, transparent); }
.btn:active { transform: translateY(0) scale(.98); }
.btn .ic { width: 1.2em; height: 1.2em; }
.btn--sun { --btn: var(--sun); --btn-ink: var(--ink); }
.btn--wa { --btn: var(--wa); --btn-ink: var(--wa-ink); }
.btn--ocean { --btn: var(--ocean-d); --btn-ink: #fff; }
.btn--glass { --btn: #ffffff; --btn-ink: var(--turq-d); background: linear-gradient(145deg, rgba(255,255,255,.9), rgba(255,255,255,.62)); border-color: color-mix(in srgb, var(--turq) 40%, white); box-shadow: inset 0 1px 0 #fff, 0 10px 26px -12px color-mix(in srgb, var(--turq) 60%, transparent); }
.btn--glass-light { --btn: #ffffff; --btn-ink: var(--ink); background: linear-gradient(145deg, rgba(255,255,255,.92), rgba(255,255,255,.7)); }
.btn--sm { min-height: 44px; padding: 0 1rem; font-size: .95rem; border-radius: 12px; }
.btn--lg { min-height: 56px; padding: 0 1.5rem; font-size: 1.05rem; border-radius: 16px; }
.btn--icon { width: 48px; min-width: 48px; padding: 0; }
.btn--block { width: 100%; }

/* ---------- navegación ---------- */
.nav { position: fixed; inset: 0 0 auto; z-index: 60; padding-top: env(safe-area-inset-top); transition: background .35s, box-shadow .35s, -webkit-backdrop-filter .35s, backdrop-filter .35s; }
.nav__in { width: min(1320px, 100% - 2 * var(--gutter)); margin-inline: auto; height: var(--nav-h); display: flex; align-items: center; gap: 1rem; }
.nav__logo { text-decoration: none; margin-right: auto; }
.logo { display: inline-flex; align-items: center; gap: .6rem; }
.sym { width: 42px; height: 42px; flex: none; filter: drop-shadow(0 2px 6px rgba(255,255,255,.4)); }
.logo__txt { display: grid; line-height: 1; }
.logo__name { font-weight: 700; font-size: 1.22rem; letter-spacing: -.03em; }
.logo__name em { font-family: var(--font-editorial); font-weight: 400; font-size: 1.18em; margin-left: .12em; color: var(--turq-d); }
.logo__sub { font-size: .62rem; font-weight: 700; letter-spacing: .34em; text-transform: uppercase; margin-top: .3rem; color: var(--ink-2); }
.nav__links { display: flex; gap: .25rem; }
.nav__links a { padding: .6rem .8rem; border-radius: 12px; text-decoration: none; font-weight: 600; font-size: .98rem; transition: background .25s; }
.nav__links a:hover { background: rgba(255,255,255,.35); }
.nav__right { display: flex; align-items: center; gap: .5rem; }
.lang { display: flex; gap: .3rem; padding: 3px; border-radius: 14px; background: rgba(255,255,255,.55); border: 1px solid rgba(255,255,255,.85); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); box-shadow: 0 6px 18px -10px rgba(6,47,69,.35); }
.lang__btn { display: inline-flex; align-items: center; gap: .4rem; min-height: 40px; min-width: 44px; padding: 0 .6rem; border-radius: 11px; text-decoration: none; font-weight: 700; font-size: .82rem; color: var(--ink); }
.lang__btn.is-on { background: linear-gradient(145deg, color-mix(in srgb, var(--turq) 92%, white), color-mix(in srgb, var(--turq) 78%, transparent)); color: #04262F; box-shadow: inset 0 1px 0 rgba(255,255,255,.6), 0 6px 14px -6px color-mix(in srgb, var(--turq) 80%, transparent); }
.flag { width: 22px; height: 15px; border-radius: 3px; box-shadow: 0 0 0 1px rgba(6,47,69,.15); }
.nav__menu { display: none; align-items: center; gap: .45rem; min-height: 44px; padding: 0 .85rem; border-radius: 12px; font-weight: 700; font-size: .95rem; cursor: pointer; color: var(--ink); background: linear-gradient(145deg, rgba(255,255,255,.9), rgba(255,255,255,.66)); border: 1px solid #fff; -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); box-shadow: inset 0 1px 0 #fff, 0 8px 20px -10px rgba(6,47,69,.4); }
.nav__wa { display: none; }
body.past-hero .nav__wa, body:not(.has-hero) .nav__wa { display: inline-flex; }
/* sobre la foto del hero: transparente, texto blanco con sombra pegada a las letras */
.nav--over:not(.is-solid) { color: #fff; }
.nav--over:not(.is-solid) .nav__links a, .nav--over:not(.is-solid) .logo__txt { text-shadow: 0 1px 2px rgba(4,24,30,.55), 0 2px 14px rgba(4,24,30,.4); }
.nav--over:not(.is-solid) .logo__sub, .nav--over:not(.is-solid) .logo__name em { color: #fff; }
.nav.is-solid, .nav:not(.nav--over) { background: linear-gradient(180deg, rgba(242,252,252,.86), rgba(242,252,252,.72)); -webkit-backdrop-filter: blur(22px) saturate(170%); backdrop-filter: blur(22px) saturate(170%); box-shadow: 0 1px 0 rgba(255,255,255,.9) inset, 0 10px 30px -18px rgba(6,47,69,.35); }
.drawer { position: absolute; left: var(--gutter); right: var(--gutter); top: calc(100% + 6px); padding: .75rem; border-radius: 26px; background: linear-gradient(160deg, rgba(248,254,254,.95), rgba(236,249,250,.9)); -webkit-backdrop-filter: blur(26px) saturate(170%); backdrop-filter: blur(26px) saturate(170%); border: 1px solid #fff; box-shadow: var(--lift); color: var(--ink); max-height: calc(100svh - var(--nav-h) - 24px - env(safe-area-inset-top)); overflow-y: auto; overscroll-behavior: contain; }
.drawer[hidden] { display: none; }
.drawer__links { display: grid; gap: .5rem; }
.drawer__links a { display: flex; align-items: center; gap: .8rem; min-height: 56px; padding: 0 1rem; border-radius: 16px; text-decoration: none; font-weight: 700; font-size: 1.08rem; background: linear-gradient(145deg, rgba(255,255,255,.95), rgba(255,255,255,.7)); border: 1px solid #fff; box-shadow: inset 0 1px 0 #fff, 0 8px 18px -12px color-mix(in srgb, var(--ocean) 50%, transparent); }
.drawer__links a .ic { color: var(--turq-d); }
.drawer__links a .ic--go { margin-left: auto; color: var(--ink-2); }
.drawer__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; margin-top: .75rem; }
.drawer__foot .btn { flex: 1 1 220px; }
.socials { display: flex; gap: .5rem; }
.socials a { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; }
.soc { width: 30px; height: 30px; }

/* ---------- HERO del inicio ---------- */
.hero { height: 100svh; min-height: 640px; max-height: 1100px; overflow: hidden; isolation: isolate; color: #fff; background: #0E6E86; }
.hero__slides, .slide { position: absolute; inset: 0; }
.slide { margin: 0; opacity: 0; z-index: 0; }
.slide picture, .slide img { width: 100%; height: 100%; }
.slide img { object-fit: cover; object-position: center; }
.slide.is-on { opacity: 1; z-index: 2; }
.slide.is-prev { opacity: 1; z-index: 1; }
.slide.is-on img { animation: kenburns 9s linear both; }
.slide.is-enter[data-fx="zoom"] { animation: fx-zoom 1.4s var(--ease) both; }
.slide.is-enter[data-fx="iris"] { animation: fx-iris 1.5s var(--ease) both; }
.slide.is-enter[data-fx="rise"] { animation: fx-rise 1.3s cubic-bezier(.7,0,.2,1) both; }
.slide.is-enter[data-fx="focus"] { animation: fx-focus 1.5s ease both; }
.slide.is-enter[data-fx="diagonal"] { animation: fx-diagonal 1.4s cubic-bezier(.65,0,.25,1) both; }
@keyframes kenburns { from { transform: scale(1.001); } to { transform: scale(1.07); } }
@keyframes fx-zoom { from { opacity: 0; transform: scale(1.12); } to { opacity: 1; transform: scale(1); } }
@keyframes fx-iris { from { clip-path: circle(0% at 68% 42%); } to { clip-path: circle(150% at 68% 42%); } }
@keyframes fx-rise { from { clip-path: inset(100% 0 0 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes fx-focus { from { opacity: 0; filter: blur(22px) saturate(1.3); transform: scale(1.04); } 60% { opacity: 1; } to { opacity: 1; filter: blur(0) saturate(1); transform: scale(1); } }
@keyframes fx-diagonal { from { clip-path: polygon(0 0, 0 0, -30% 100%, 0 100%); transform: scale(1.06); } to { clip-path: polygon(0 0, 130% 0, 100% 100%, 0 100%); transform: scale(1); } }

.hero__in { position: absolute; left: 0; right: 0; bottom: calc(118px + env(safe-area-inset-bottom)); z-index: 5; }
.hero__title { font-size: var(--text-hero); font-weight: 700; letter-spacing: -.035em; line-height: .98; max-width: 13.5ch; margin-bottom: 1rem;
  text-shadow: 0 0 2px rgba(4,24,30,.55), 0 1px 3px rgba(4,24,30,.55), 0 3px 22px rgba(4,24,30,.5); }
.hero__title .emo { color: var(--sun-l); font-size: 1.16em; display: inline-block; }
.hero__sub { font-size: var(--text-lead); max-width: 40ch; font-weight: 600; margin-bottom: 1.2rem;
  text-shadow: 0 0 2px rgba(4,24,30,.6), 0 1px 3px rgba(4,24,30,.6), 0 2px 16px rgba(4,24,30,.5); }
.hero__chip { display: inline-grid; grid-template-columns: 1fr auto; column-gap: 1rem; align-items: center; max-width: min(460px, 100%); margin-bottom: 1.1rem; padding: .7rem .8rem .7rem 1rem; border-radius: 18px; text-decoration: none; color: var(--ink);
  background: linear-gradient(145deg, rgba(255,255,255,.9), rgba(255,255,255,.7)); -webkit-backdrop-filter: blur(18px) saturate(170%); backdrop-filter: blur(18px) saturate(170%); border: 1px solid #fff;
  box-shadow: inset 0 1px 0 #fff, 0 14px 34px -14px color-mix(in srgb, var(--turq) 80%, transparent); transition: transform .3s var(--ease); }
.hero__chip:hover { transform: translateY(-2px); }
.hero__chip-k { grid-column: 1; font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--turq-d); }
.hero__chip-n { grid-column: 1; font-weight: 700; font-size: 1.05rem; line-height: 1.2; }
.hero__chip-p { grid-column: 1; font-size: .9rem; color: var(--ink-2); }
.hero__chip-go { grid-column: 2; grid-row: 1 / span 3; width: 40px; height: 40px; padding: 9px; border-radius: 12px; background: linear-gradient(145deg, var(--sun-l), var(--sun)); color: var(--ink); }
.hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.hero__trust { list-style: none; margin: 1.1rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; font-size: .92rem; font-weight: 600;
  text-shadow: 0 0 2px rgba(4,24,30,.7), 0 1px 3px rgba(4,24,30,.6), 0 2px 12px rgba(4,24,30,.5); }
.hero__trust li { display: inline-flex; align-items: center; gap: .4rem; }
.hero__trust .ic { color: var(--lagoon); filter: drop-shadow(0 1px 2px rgba(4,24,30,.6)); }
.hero__dots { position: absolute; left: 0; right: 0; bottom: calc(28px + env(safe-area-inset-bottom)); z-index: 6; display: flex; align-items: flex-end; gap: .9rem; }
.dot { flex: 1; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: .15rem .6rem; min-height: 44px; padding: .3rem 0; background: none; border: 0; cursor: pointer; color: #fff; text-align: left;
  text-shadow: 0 1px 2px rgba(4,24,30,.7), 0 2px 10px rgba(4,24,30,.5); }
.dot__n { font-weight: 700; font-size: .85rem; }
.dot__bar { height: 3px; border-radius: 3px; background: rgba(255,255,255,.45); overflow: hidden; box-shadow: 0 1px 4px rgba(4,24,30,.35); }
.dot__bar i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--sun-l), var(--sun)); }
.dot.is-on .dot__bar i { animation: bar var(--slide-ms, 6500ms) linear forwards; }
.hero.is-paused .dot.is-on .dot__bar i { animation-play-state: paused; }
.dot.is-done .dot__bar i { width: 100%; }
@keyframes bar { to { width: 100%; } }
.dot__t { grid-column: 1 / -1; font-size: .82rem; font-weight: 600; opacity: .9; }
.dot.is-on .dot__t { opacity: 1; }
.hero__pause { flex: none; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 12px; cursor: pointer; color: var(--ink); background: linear-gradient(145deg, rgba(255,255,255,.9), rgba(255,255,255,.7)); border: 1px solid #fff; -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.hero__pause .i-play { display: none; }
.hero.is-paused .hero__pause .i-play { display: block; }
.hero.is-paused .hero__pause .i-pause { display: none; }

/* ---------- buscador bajo el hero ---------- */
.finder-wrap { margin-top: -56px; z-index: 8; }
.finder { display: grid; grid-template-columns: auto 1fr 1fr auto; align-items: end; gap: 1rem; padding: 1.1rem 1.1rem 1.1rem 1.4rem; }
.finder__t { display: flex; align-items: center; gap: .5rem; margin: 0 0 .9rem; font-weight: 700; font-size: 1.1rem; align-self: end; }
.finder__t .ic { color: var(--turq-d); }
.finder__subs { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0 0; }
.finder__subs a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 .9rem; border-radius: 999px; text-decoration: none; font-weight: 600; font-size: .92rem; color: var(--turq-d); background: linear-gradient(145deg, rgba(255,255,255,.85), rgba(255,255,255,.55)); border: 1px solid #fff; box-shadow: 0 6px 16px -10px color-mix(in srgb, var(--turq) 70%, transparent); }

/* ---------- campos de formulario ---------- */
.field { display: grid; gap: .35rem; font-weight: 600; font-size: .9rem; color: var(--ink-2); min-width: 0; }
.field select, .field input[type="text"], .field input[type="search"], .field input[type="date"], .field__in {
  width: 100%; min-height: 54px; padding: 0 1rem; border-radius: 14px; font-size: 16px; font-weight: 600; color: var(--ink);
  background: linear-gradient(180deg, rgba(255,255,255,.95), rgba(248,254,254,.85)); border: 1px solid color-mix(in srgb, var(--turq) 26%, white);
  box-shadow: inset 0 1px 2px rgba(6,47,69,.06), 0 1px 0 #fff; transition: border-color .2s, box-shadow .2s; -webkit-appearance: none; appearance: none;
}
.field select { padding-right: 2.6rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300788A' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"), linear-gradient(180deg, rgba(255,255,255,.95), rgba(248,254,254,.85)); background-repeat: no-repeat; background-position: right .9rem center, 0 0; background-size: 18px, 100% 100%; }
.field__in { display: flex; align-items: center; gap: .6rem; padding: 0 0 0 1rem; }
.field__in .ic { color: var(--turq-d); }
.field__in input { flex: 1; min-width: 0; min-height: 52px; border: 0; background: transparent; padding: 0 1rem 0 0; font-weight: 600; font-size: 16px; color: var(--ink); -webkit-appearance: none; appearance: none; }
.field__in input:focus { outline: none; }
.field select:focus, .field input:focus-visible, .field__in:focus-within { outline: none; border-color: var(--turq); box-shadow: 0 0 0 4px color-mix(in srgb, var(--turq) 22%, transparent); }
input[type="date"]::-webkit-date-and-time-value { text-align: left; }
input[type="date"]::-webkit-calendar-picker-indicator { opacity: .7; cursor: pointer; }

/* ---------- secciones ---------- */
.sec { padding: clamp(64px, 9vw, 124px) 0; }
.sec--first { padding-top: clamp(28px, 4vw, 48px); }
.sec--tint::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--turq) 9%, transparent) 30%, color-mix(in srgb, var(--sun-l) 12%, transparent) 75%, transparent); }
.sec__head { margin-bottom: clamp(28px, 4vw, 48px); max-width: 760px; }
.sec__head--row { max-width: none; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 1.5rem; }
.sec__head--center { margin-inline: auto; text-align: center; }
.sec__head--center .eyebrow { justify-content: center; }
.sec__head .note { max-width: 60ch; }
.sec__more { margin: 2.5rem 0 0; text-align: center; }

/* ---------- mosaicos de experiencias ---------- */
.ctiles { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1.1rem; }
.ctiles--4 { grid-template-columns: repeat(4, 1fr); }
.ctile { display: flex; flex-direction: column; padding: 9px 9px 1.1rem; text-decoration: none; background: var(--glass); -webkit-backdrop-filter: blur(22px) saturate(170%); backdrop-filter: blur(22px) saturate(170%); border: 1px solid var(--glass-border); border-radius: 26px; box-shadow: var(--lift); transition: transform .45s var(--ease), box-shadow .45s var(--ease); }
.ctile:hover { transform: translateY(-5px); box-shadow: var(--lift-hover); }
.ctile picture img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 19px; }
.ctile__body { display: grid; gap: .25rem; padding: .9rem .5rem 0; position: relative; }
.ctile__ic { position: absolute; right: .5rem; top: -1.6rem; width: 46px; height: 46px; display: grid; place-items: center; border-radius: 14px; color: var(--ink); background: linear-gradient(145deg, var(--sun-l), var(--sun)); box-shadow: inset 0 1px 0 rgba(255,255,255,.7), 0 10px 20px -8px color-mix(in srgb, var(--sun) 90%, transparent); }
.ctile__name { font-weight: 700; font-size: 1.15rem; line-height: 1.15; letter-spacing: -.015em; padding-right: 3rem; }
.ctile__subs { font-size: .86rem; color: var(--ink-2); line-height: 1.4; }
.ctile__count { font-size: .8rem; font-weight: 700; color: var(--turq-d); text-transform: uppercase; letter-spacing: .12em; margin-top: .2rem; }

/* ---------- pestañas ---------- */
.tabs { display: flex; flex-wrap: wrap; gap: .5rem; }
.tab { display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; padding: 0 1rem; border-radius: 999px; cursor: pointer; font-weight: 700; font-size: .92rem; text-decoration: none; color: var(--ink); background: linear-gradient(145deg, rgba(255,255,255,.9), rgba(255,255,255,.6)); border: 1px solid #fff; box-shadow: 0 6px 16px -10px color-mix(in srgb, var(--ocean) 55%, transparent); transition: background .25s, color .25s; }
.tab.is-on { color: #04262F; background: linear-gradient(145deg, color-mix(in srgb, var(--turq) 92%, white), color-mix(in srgb, var(--turq) 76%, transparent)); border-color: color-mix(in srgb, white 50%, var(--turq)); box-shadow: inset 0 1px 0 rgba(255,255,255,.6), 0 10px 22px -10px color-mix(in srgb, var(--turq) 85%, transparent); }
.tab--wa { color: var(--wa-ink); background: linear-gradient(145deg, color-mix(in srgb, var(--wa) 90%, white), color-mix(in srgb, var(--wa) 74%, transparent)); }
.tab--wa .ic { width: 1.1em; height: 1.1em; }
.tabs--subs { margin-bottom: 1rem; }

/* ---------- tarjeta de tour (boleto) ---------- */
.tgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: clamp(18px, 2.2vw, 28px); }
.tgrid.is-all .tcard.is-extra { display: none; }
.tcard[hidden] { display: none; }
.tcard { position: relative; display: flex; flex-direction: column; padding: 9px; border-radius: var(--r-card); background: var(--glass); -webkit-backdrop-filter: blur(22px) saturate(170%); backdrop-filter: blur(22px) saturate(170%); border: 1px solid var(--glass-border); box-shadow: var(--lift); transition: transform .45s var(--ease), box-shadow .45s var(--ease); }
.tcard:hover { transform: translateY(-5px); box-shadow: var(--lift-hover); }
.tcard__media { position: relative; display: block; border-radius: var(--r-inner); overflow: hidden; }
.tcard__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .8s var(--ease); }
.tcard:hover .tcard__media img { transform: scale(1.04); }
.chip { position: absolute; display: inline-flex; align-items: center; gap: .3rem; min-height: 30px; padding: 0 .7rem; border-radius: 10px; font-size: .78rem; font-weight: 700; letter-spacing: .02em; color: var(--ink); background: linear-gradient(145deg, rgba(255,255,255,.95), rgba(255,255,255,.78)); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border: 1px solid #fff; }
.tcard__media .chip { left: 10px; top: 10px; }
.chip--dur { display: none; }
.chip--best-seller { color: #3D2A00; background: linear-gradient(145deg, #FFE08A, var(--sun)); border-color: #FFE9B0; }
.chip--popular { color: #fff; background: linear-gradient(145deg, #FF7A6B, #E8463A); border-color: #FFB3AA; }
.chip--family { color: #04262F; background: linear-gradient(145deg, #9FF2E9, var(--lagoon)); border-color: #D2FBF6; }
.chip--private { color: #fff; background: linear-gradient(145deg, #2F8FD6, var(--ocean-d)); border-color: #A9D3F2; }
.chip--adults { color: #fff; background: linear-gradient(145deg, #3E5E7A, #1F3C55); border-color: #9FB4C7; }
.tcard__body { padding: 1rem .7rem .5rem; flex: 1; }
.tcard__loc { display: flex; align-items: center; gap: .35rem; margin: 0 0 .4rem; font-size: .84rem; font-weight: 600; color: var(--turq-d); }
.tcard__loc .ic { width: 1.05em; height: 1.05em; }
.tcard__title { font-size: 1.32rem; line-height: 1.12; letter-spacing: -.02em; margin-bottom: .45rem; }
.tcard__title a { text-decoration: none; }
.tcard__title a::after { content: ""; position: absolute; inset: 0; border-radius: var(--r-card); z-index: 0; }
.tcard__short { font-size: .95rem; color: var(--ink-2); line-height: 1.5; margin-bottom: .6rem; }
.tcard__tags { display: flex; flex-wrap: wrap; gap: .35rem; margin: 0; }
.tcard__tags span { display: inline-flex; align-items: center; gap: .25rem; padding: .15rem .55rem; border-radius: 8px; font-size: .78rem; font-weight: 600; color: var(--ink-2); background: color-mix(in srgb, var(--turq) 10%, white); }
.tcard__stub { position: relative; display: flex; align-items: flex-end; justify-content: space-between; gap: .75rem; margin: .7rem .2rem 0; padding: 1rem .5rem .4rem; border-top: 2px dashed color-mix(in srgb, var(--turq) 35%, transparent); }
.tcard__stub::before, .tcard__stub::after { content: ""; position: absolute; top: -8px; width: 14px; height: 14px; border-radius: 50%; background: color-mix(in srgb, var(--turq) 22%, #EFFAFB); box-shadow: inset 0 1px 2px rgba(6,47,69,.15); }
.tcard__stub::before { left: -18px; }
.tcard__stub::after { right: -18px; }
.tcard__price { display: grid; line-height: 1.15; min-width: 0; }
.tcard__price small { font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .14em; color: var(--turq-d); }
.tcard__price strong { font-size: 2rem; font-weight: 700; letter-spacing: -.03em; line-height: 1.05; }
.tcard__price strong span { font-size: .5em; letter-spacing: 0; color: var(--ink-2); }
.tcard__price em { font-style: normal; font-size: .82rem; color: var(--ink-2); }
.tcard__price .tcard__demo { color: #9A5A00; font-weight: 600; font-size: .74rem; }
.tcard__actions { position: relative; z-index: 1; display: flex; gap: .45rem; flex: none; }
.tcard__actions .btn--sm { padding: 0 .85rem; }

/* ---------- cómo reservar ---------- */
.how { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(32px, 6vw, 88px); align-items: center; }
.steps { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; gap: .8rem; }
.step { display: flex; gap: 1rem; align-items: center; padding: .9rem 1.1rem; border-radius: 20px; background: linear-gradient(145deg, rgba(255,255,255,.8), rgba(255,255,255,.5)); border: 1px solid #fff; box-shadow: 0 12px 28px -18px color-mix(in srgb, var(--ocean) 50%, transparent), inset 0 1px 0 #fff; }
.step__n { flex: none; width: 46px; height: 46px; display: grid; place-items: center; border-radius: 14px; font-weight: 700; font-size: 1.2rem; color: #04262F; background: linear-gradient(145deg, #9FF2E9, var(--turq)); box-shadow: inset 0 1px 0 rgba(255,255,255,.6); }
.step strong { display: block; font-size: 1.08rem; line-height: 1.2; }
.step span span { display: block; font-size: .94rem; color: var(--ink-2); line-height: 1.45; }
.phone { position: relative; margin: 0 auto; width: min(380px, 100%); padding: 12px; border-radius: 42px; background: linear-gradient(160deg, rgba(255,255,255,.85), rgba(255,255,255,.55)); border: 1px solid #fff; box-shadow: var(--lift), 0 40px 100px -30px color-mix(in srgb, var(--sun) 60%, transparent); }
.phone__top { display: flex; align-items: center; gap: .6rem; padding: .9rem 1rem; border-radius: 30px 30px 8px 8px; font-weight: 700; color: #fff; background: linear-gradient(135deg, #0B6E62, #128C7E); }
.phone__top .ic { width: 1.4em; height: 1.4em; }
.phone__chat { display: grid; gap: .7rem; padding: 1.1rem .9rem 1.4rem; border-radius: 8px 8px 30px 30px; background: linear-gradient(180deg, #F3EDE3, #EAE1D2); min-height: 320px; align-content: start; }
.bubble { margin: 0; padding: .75rem .9rem; max-width: 92%; border-radius: 16px 16px 4px 16px; justify-self: end; font-size: .93rem; line-height: 1.45; color: #0B2A1E; background: #D9FDD3; box-shadow: 0 2px 4px rgba(6,47,69,.12); white-space: pre-line; }
.bubble--in { justify-self: start; border-radius: 16px 16px 16px 4px; background: #fff; color: var(--ink); }
.phone__hint { position: absolute; left: 50%; bottom: -16px; transform: translateX(-50%); white-space: nowrap; padding: .45rem .9rem; border-radius: 999px; font-size: .8rem; font-weight: 700; color: var(--ink); background: linear-gradient(145deg, var(--sun-l), var(--sun)); box-shadow: 0 10px 20px -10px color-mix(in srgb, var(--sun) 90%, transparent); }

/* ---------- destinos ---------- */
.dgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(16px, 2vw, 24px); }
.dcard { display: flex; flex-direction: column; padding: 9px; text-decoration: none; border-radius: var(--r-card); background: var(--glass); -webkit-backdrop-filter: blur(22px) saturate(170%); backdrop-filter: blur(22px) saturate(170%); border: 1px solid var(--glass-border); box-shadow: var(--lift); transition: transform .45s var(--ease), box-shadow .45s var(--ease); }
.dcard:hover { transform: translateY(-5px); box-shadow: var(--lift-hover); }
.dcard img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-inner); }
.dcard--wide { grid-column: span 2; }
.dcard--wide img { aspect-ratio: 16 / 9; }
.dcard__body { display: grid; gap: .3rem; padding: .95rem .6rem .5rem; }
.dcard__name { font-weight: 700; font-size: 1.35rem; letter-spacing: -.02em; line-height: 1.1; }
.dcard--wide .dcard__name { font-size: clamp(1.5rem, 2.4vw, 2rem); }
.dcard__short { font-size: .93rem; color: var(--ink-2); line-height: 1.45; }
.dcard__count { display: inline-flex; align-items: center; gap: .35rem; font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--turq-d); margin-top: .2rem; }

/* ---------- por qué reservar ---------- */
.why { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 2vw, 24px); }
.why__i { display: grid; gap: .35rem; padding: 1.5rem; }
.why__ic { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 16px; margin-bottom: .5rem; color: #fff; background: linear-gradient(145deg, #2FC9D9, var(--ocean)); box-shadow: inset 0 1px 0 rgba(255,255,255,.5), 0 12px 24px -10px color-mix(in srgb, var(--ocean) 80%, transparent); }
.why__ic .ic { width: 1.5em; height: 1.5em; }
.why__i strong { font-size: 1.15rem; line-height: 1.2; }
.why__i span:last-child { color: var(--ink-2); font-size: .96rem; line-height: 1.5; }

/* ---------- galería ---------- */
.gal { columns: 4 240px; column-gap: clamp(14px, 1.8vw, 22px); }
.gal__i { display: block; break-inside: avoid; margin-bottom: clamp(14px, 1.8vw, 22px); padding: 8px 8px .7rem; text-decoration: none; border-radius: 24px; background: var(--glass); border: 1px solid var(--glass-border); box-shadow: var(--lift); transition: transform .45s var(--ease), box-shadow .45s var(--ease); }
.gal__i:hover { transform: translateY(-4px); box-shadow: var(--lift-hover); }
.gal__i img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 17px; }
.gal__i--tall img { aspect-ratio: 4 / 5; }
.gal__cap { display: block; padding: .6rem .4rem 0; font-size: .86rem; font-weight: 600; color: var(--ink-2); line-height: 1.35; }

/* ---------- reseñas ---------- */
.revs { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 2vw, 24px); }
.rev { position: relative; margin: 0; padding: 1.5rem; display: flex; flex-direction: column; gap: .8rem; }
.rev__demo { position: absolute; top: 1.1rem; right: 1.1rem; font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #8A4E00; background: color-mix(in srgb, var(--sun) 22%, white); padding: .2rem .5rem; border-radius: 8px; }
.rev__stars { display: flex; gap: 2px; color: #D6DEE3; }
.rev__stars .ic { width: 1.15rem; height: 1.15rem; }
.rev__stars .ic.on { color: var(--sun); fill: var(--sun); }
.rev blockquote { margin: 0; font-family: var(--font-editorial); font-style: italic; font-size: 1.35rem; line-height: 1.3; flex: 1; }
.rev figcaption { display: grid; font-size: .9rem; color: var(--ink-2); }
.rev figcaption strong { color: var(--ink); font-size: 1rem; }
.rev figcaption a { color: var(--turq-d); font-weight: 600; }

/* ---------- preguntas ---------- */
.faqwrap { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(28px, 5vw, 72px); align-items: start; }
.faqwrap .sec__head { position: sticky; top: calc(var(--nav-h) + 24px); }
.faqs { display: grid; gap: .75rem; }
.faq { border-radius: 22px; padding: 0; }
.faq summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 64px; padding: .9rem 1.2rem; cursor: pointer; list-style: none; font-weight: 700; font-size: 1.06rem; line-height: 1.3; }
.faq summary::-webkit-details-marker { display: none; }
.faq__ic { flex: none; width: 36px; height: 36px; padding: 8px; border-radius: 11px; color: var(--turq-d); background: color-mix(in srgb, var(--turq) 14%, white); transition: transform .3s var(--ease); }
.faq[open] .faq__ic { transform: rotate(45deg); color: var(--ink); background: linear-gradient(145deg, var(--sun-l), var(--sun)); }
.faq__a { padding: 0 1.2rem 1.1rem; color: var(--ink-2); }
.faq__a p { margin: 0; }
.faqgroup { margin: 2rem 0 .8rem; }
.faqgroup a { text-decoration: none; color: var(--turq-d); }

/* ---------- llamada final ---------- */
.final { padding: clamp(48px, 7vw, 96px) 0 clamp(64px, 9vw, 120px); }
.final__card { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 56px); align-items: center; padding: clamp(12px, 1.4vw, 16px); box-shadow: var(--lift), 0 50px 120px -40px color-mix(in srgb, var(--sun) 70%, transparent); }
.final__media { position: relative; }
.final__media > picture img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 22px; }
.final__mini { position: absolute; right: -18px; bottom: -22px; width: 42%; }
.final__mini img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 20px; border: 5px solid #fff; box-shadow: 0 20px 40px -18px color-mix(in srgb, var(--ocean) 55%, transparent); }
.final__text { padding: clamp(12px, 3vw, 40px); }
.final__text .h2 { font-size: clamp(2.2rem, 4.6vw, 4rem); margin-bottom: 1rem; }
.final__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }

/* ---------- cabeceras interiores ---------- */
.phero, .thero { position: relative; overflow: hidden; color: #fff; isolation: isolate; background: #0E6E86; }
.phero { height: 66svh; min-height: 460px; max-height: 720px; }
.thero { height: 84svh; min-height: 560px; max-height: 900px; }
.phero__media, .thero__media { position: absolute; inset: 0; z-index: -1; }
.phero__media picture, .phero__media img, .thero__media picture, .thero__media img { width: 100%; height: 100%; }
.phero__media img, .thero__media img { object-fit: cover; animation: kenburns 14s linear both; }
.phero__in, .thero__in { position: absolute; left: 0; right: 0; bottom: clamp(32px, 6vw, 72px); }
.phero__title, .thero__title { font-size: var(--text-h1); letter-spacing: -.035em; line-height: 1; max-width: 16ch; text-shadow: 0 0 2px rgba(4,24,30,.55), 0 1px 3px rgba(4,24,30,.55), 0 3px 22px rgba(4,24,30,.5); }
.phero__title .emo, .thero__title .emo { color: var(--sun-l); }
.phero__lead { font-size: var(--text-lead); font-weight: 600; max-width: 46ch; margin: 1rem 0 0; text-shadow: 0 0 2px rgba(4,24,30,.65), 0 1px 3px rgba(4,24,30,.6), 0 2px 16px rgba(4,24,30,.5); }
.thero__in .chip { position: static; margin-bottom: 1rem; }
.thero__meta { display: flex; flex-wrap: wrap; gap: .5rem 1.2rem; margin: 1rem 0 .4rem; font-weight: 600; text-shadow: 0 0 2px rgba(4,24,30,.7), 0 1px 3px rgba(4,24,30,.6), 0 2px 12px rgba(4,24,30,.5); }
.thero__meta span { display: inline-flex; align-items: center; gap: .4rem; }
.thero__meta .ic { filter: drop-shadow(0 1px 2px rgba(4,24,30,.6)); }
.thero__price { margin: 0 0 1.2rem; text-shadow: 0 0 2px rgba(4,24,30,.7), 0 1px 3px rgba(4,24,30,.6), 0 2px 14px rgba(4,24,30,.5); }
.thero__price small { font-weight: 700; text-transform: uppercase; letter-spacing: .14em; font-size: .78rem; }
.thero__price strong { font-size: clamp(1.8rem, 3vw, 2.4rem); letter-spacing: -.02em; }
.thero__price span { font-weight: 600; }
.thero__actions { display: flex; flex-wrap: wrap; gap: .75rem; }

/* migas */
.crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: .3rem; margin: 0; padding: 1.1rem 0 0; font-size: .88rem; color: var(--ink-2); }
.crumbs li:not(:last-child)::after { content: "/"; margin-left: .35rem; opacity: .6; }
.crumbs a { color: var(--turq-d); font-weight: 600; text-decoration: none; }
.crumbs a:hover { text-decoration: underline; }
.crumbs [aria-current] { font-weight: 600; }

/* ---------- catálogo ---------- */
.catalog { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: clamp(20px, 3vw, 40px); align-items: start; padding: 2rem 0 clamp(48px, 6vw, 80px); }
.filters { position: sticky; top: calc(var(--nav-h) + 20px); padding: 1.3rem; }
.filters__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.filters__t { display: flex; align-items: center; gap: .5rem; margin: 0; font-weight: 700; font-size: 1.1rem; }
.filters__t .ic { color: var(--turq-d); }
.filters__toggle { display: none; }
.filters__n { display: inline-grid; place-items: center; min-width: 24px; height: 24px; padding: 0 6px; border-radius: 8px; font-size: .8rem; color: var(--ink); background: var(--sun); }
.filters__n[hidden] { display: none; }
.filters__body { display: grid; gap: 1rem; }
.field--range span { display: flex; justify-content: space-between; }
.field--range output { font-weight: 700; color: var(--ink); }
.field--range input { width: 100%; height: 44px; accent-color: var(--turq-d); cursor: pointer; }
.filters__clear { justify-self: start; }
.catalog__count { font-weight: 700; color: var(--turq-d); margin: 0 0 1rem; }
.tgrid--cat { grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr)); }
.empty { padding: 2rem; text-align: center; display: grid; justify-items: center; gap: .5rem; }
.empty[hidden] { display: none; }
.custom { display: grid; grid-template-columns: auto 1fr auto; gap: 1.2rem; align-items: center; margin-top: 2rem; padding: 1.4rem 1.6rem; }
.custom__ic { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 18px; color: var(--ink); background: linear-gradient(145deg, var(--sun-l), var(--sun)); }
.custom__ic .ic { width: 1.6em; height: 1.6em; }
.custom p { margin: .3rem 0 0; color: var(--ink-2); }

/* ---------- página de tour ---------- */
.tour { display: grid; grid-template-columns: minmax(0, 1fr) 410px; column-gap: clamp(24px, 4vw, 56px); align-items: start; padding: 1.5rem 0 clamp(40px, 5vw, 64px); }
.facts { grid-column: 1; list-style: none; margin: 0 0 1rem; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: .75rem; }
.fact { display: flex; gap: .7rem; align-items: center; padding: .85rem 1rem; border-radius: 20px; }
.fact .ic { width: 1.5em; height: 1.5em; color: var(--turq-d); }
.fact span { display: grid; font-weight: 600; line-height: 1.3; font-size: .95rem; }
.fact small { font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-2); }
.book { grid-column: 2; grid-row: 1 / span 2; position: sticky; top: calc(var(--nav-h) + 20px); }
.tour__content { grid-column: 1; }
.tsec { margin-top: clamp(32px, 4vw, 52px); }
.tsec > .h3 { margin-bottom: 1rem; }
.tsec p { color: var(--ink-2); font-size: 1.05rem; }
.tsec--two { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.hls { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: .75rem; }
.hl { display: flex; align-items: center; gap: .85rem; padding: .9rem 1rem; border-radius: 20px; font-weight: 600; line-height: 1.3; }
.hl__ic { flex: none; width: 48px; height: 48px; display: grid; place-items: center; border-radius: 15px; color: #fff; background: linear-gradient(145deg, #2FC9D9, var(--ocean)); box-shadow: inset 0 1px 0 rgba(255,255,255,.5), 0 10px 20px -10px color-mix(in srgb, var(--ocean) 80%, transparent); }
.hl__ic .ic { width: 1.4em; height: 1.4em; }
.box { padding: 1.3rem 1.4rem; border-radius: 24px; }
.box .h4 { display: flex; align-items: center; gap: .6rem; margin-bottom: .9rem; }
.box__ic { width: 34px; height: 34px; padding: 7px; border-radius: 11px; color: var(--turq-d); background: color-mix(in srgb, var(--turq) 14%, white); }
.box__ic--ok { color: #0B5E3A; background: #CFF5DF; }
.box__ic--no { color: #9B2A1F; background: #FFE0DB; }
.box--warn .box__ic { color: #8A4E00; background: color-mix(in srgb, var(--sun) 26%, white); }
.checks { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.checks li { display: flex; gap: .6rem; align-items: flex-start; line-height: 1.45; color: var(--ink-2); }
.checks .ic { margin-top: .15em; color: var(--turq-d); }
.timeline { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; position: relative; }
.timeline::before { content: ""; position: absolute; left: 31px; top: 12px; bottom: 12px; width: 2px; background: linear-gradient(180deg, var(--turq), var(--sun)); border-radius: 2px; }
.timeline li { position: relative; display: grid; grid-template-columns: 64px 1fr; gap: 1rem; align-items: center; padding: .55rem 0; }
.timeline time { position: relative; z-index: 1; display: grid; place-items: center; height: 36px; border-radius: 11px; font-weight: 700; font-size: .88rem; color: var(--ink); background: linear-gradient(145deg, #fff, #E6F8FA); border: 1px solid color-mix(in srgb, var(--turq) 35%, white); box-shadow: 0 6px 14px -8px color-mix(in srgb, var(--turq) 70%, transparent); font-variant-numeric: tabular-nums; }
.timeline span { font-weight: 600; line-height: 1.35; }
.tgal { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; }
.tgal__i { position: relative; padding: 6px; border: 1px solid #fff; border-radius: 20px; cursor: zoom-in; background: var(--glass); box-shadow: var(--lift); transition: transform .4s var(--ease); }
.tgal__i:hover { transform: translateY(-3px); }
.tgal__i img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 14px; }
.tgal__i--big { grid-column: span 2; grid-row: span 2; }
.tgal__i--big img { aspect-ratio: auto; height: 100%; }
.tgal__i--big picture { height: 100%; }
.tgal__ic { position: absolute; right: 14px; bottom: 14px; width: 32px; height: 32px; padding: 6px; border-radius: 10px; color: var(--ink); background: rgba(255,255,255,.9); }

/* tarjeta de reserva */
.book__card { position: relative; display: grid; gap: .95rem; padding: 1.5rem; border-radius: 30px; background: linear-gradient(155deg, rgba(255,255,255,.9), rgba(255,255,255,.66)); -webkit-backdrop-filter: blur(24px) saturate(170%); backdrop-filter: blur(24px) saturate(170%); border: 1px solid #fff; box-shadow: var(--lift), 0 40px 90px -36px color-mix(in srgb, var(--sun) 65%, transparent); }
.book__eyebrow { display: flex; align-items: center; gap: .45rem; margin: 0; font-size: .76rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--turq-d); }
.book__title { font-size: 1.5rem; letter-spacing: -.02em; line-height: 1.12; }
.book__people { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.stepper { display: grid; gap: .35rem; }
.stepper__l { font-weight: 600; font-size: .9rem; color: var(--ink-2); }
.stepper__c { display: grid; grid-template-columns: 44px 1fr 44px; align-items: center; min-height: 54px; padding: 4px; border-radius: 14px; background: linear-gradient(180deg, rgba(255,255,255,.95), rgba(248,254,254,.85)); border: 1px solid color-mix(in srgb, var(--turq) 26%, white); }
.stepper__c button { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 11px; border: 0; cursor: pointer; color: var(--ink); background: linear-gradient(145deg, color-mix(in srgb, var(--turq) 22%, white), color-mix(in srgb, var(--turq) 12%, white)); }
.stepper__c button:disabled { opacity: .35; cursor: not-allowed; }
.stepper__c input { width: 100%; min-width: 0; border: 0; background: transparent; text-align: center; font-weight: 700; font-size: 1.15rem; color: var(--ink); -moz-appearance: textfield; appearance: textfield; font-variant-numeric: tabular-nums; }
.stepper__c input::-webkit-inner-spin-button, .stepper__c input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.stepper.is-off { opacity: .5; }
.book__ages { margin: -.4rem 0 0; font-size: .85rem; color: var(--ink-2); }
.book__stub { position: relative; margin-top: .3rem; padding-top: 1rem; border-top: 2px dashed color-mix(in srgb, var(--turq) 38%, transparent); }
.book__stub::before, .book__stub::after { content: ""; position: absolute; top: -10px; width: 18px; height: 18px; border-radius: 50%; background: color-mix(in srgb, var(--turq) 22%, #EFFAFB); box-shadow: inset 0 1px 2px rgba(6,47,69,.15); }
.book__stub::before { left: -33px; }
.book__stub::after { right: -33px; }
.book__prices { display: grid; gap: .3rem; margin: 0 0 .8rem; }
.book__prices div { display: flex; justify-content: space-between; gap: 1rem; font-size: .95rem; }
.book__prices dt { color: var(--ink-2); }
.book__prices dd { margin: 0; font-weight: 700; }
.book__total { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: 0 1rem; padding: .9rem 1rem; border-radius: 18px; background: linear-gradient(145deg, color-mix(in srgb, var(--sun-l) 55%, white), color-mix(in srgb, var(--sun) 30%, white)); border: 1px solid #FFE8B3; }
.book__total span { font-weight: 700; }
.book__total strong { font-size: 1.9rem; letter-spacing: -.03em; line-height: 1.1; }
.book__total em { grid-column: 1 / -1; justify-self: end; font-style: normal; font-size: .85rem; color: #5B4300; }
.book__err { margin: 0; padding: .6rem .8rem; border-radius: 12px; font-weight: 600; font-size: .92rem; color: #8F1F14; background: #FFE3DE; }
.book__err[hidden] { display: none; }
.book__note { display: flex; gap: .45rem; margin: 0; font-size: .82rem; color: var(--ink-2); line-height: 1.45; }
.book__note .ic { margin-top: .15em; color: var(--turq-d); }
.field.is-bad .field__in { border-color: #D6453A; box-shadow: 0 0 0 4px rgba(214,69,58,.16); }

.sticky-book { display: none; }
.lightbox { width: min(1100px, 100% - 24px); max-height: calc(100svh - 24px); padding: 10px; border: 1px solid #fff; border-radius: 26px; background: rgba(255,255,255,.92); box-shadow: var(--lift); }
.lightbox::backdrop { background: rgba(236,249,250,.9); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.lightbox img { width: 100%; max-height: calc(100svh - 60px); object-fit: contain; border-radius: 18px; }
.lightbox__x { position: absolute; right: 18px; top: 18px; width: 48px; height: 48px; display: grid; place-items: center; border-radius: 14px; border: 1px solid #fff; cursor: pointer; color: var(--ink); background: linear-gradient(145deg, #fff, rgba(255,255,255,.8)); box-shadow: 0 8px 18px -8px rgba(6,47,69,.4); }

/* destino */
.intro { display: grid; grid-template-columns: 1.4fr .9fr; gap: 1.5rem; align-items: center; }
.intro .lead { margin: 0; font-size: clamp(1.1rem, 1.5vw, 1.35rem); color: var(--ink); }
.access { display: flex; gap: .8rem; align-items: center; padding: 1.2rem 1.3rem; }
.access .ic { width: 1.8em; height: 1.8em; color: var(--turq-d); }
.access span { display: grid; font-weight: 600; }
.access small { font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-2); font-weight: 700; }
.mini { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: .9rem; }
.mini__i { display: flex; align-items: center; gap: .9rem; padding: 8px 1rem 8px 8px; border-radius: 22px; text-decoration: none; }
.mini__i img { width: 84px; height: 84px; object-fit: cover; border-radius: 16px; }
.mini__i span { display: grid; flex: 1; }
.mini__i strong { font-size: 1.1rem; }
.mini__i small { color: var(--turq-d); font-weight: 600; }
.mini__i > .ic { color: var(--ink-2); }

/* páginas simples */
.plain { padding: calc(var(--nav-h) + 40px + env(safe-area-inset-top)) 0 clamp(64px, 8vw, 110px); }
.plain .h2 { margin: 1rem 0 1.5rem; }
.plain--404 { min-height: 70svh; display: grid; align-items: center; }
.prose { padding: clamp(20px, 3vw, 36px); }
.prose p { color: var(--ink-2); }

/* ---------- pie ---------- */
.foot { margin-top: 0; padding: clamp(48px, 6vw, 80px) 0 calc(28px + env(safe-area-inset-bottom)); }
.foot::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--turq) 16%, transparent) 40%, color-mix(in srgb, var(--ocean) 18%, transparent)); }
.foot__in { width: min(var(--wrap), 100% - 2 * var(--gutter)); margin-inline: auto; display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 2rem; padding: clamp(24px, 3vw, 40px); border-radius: 32px; background: var(--glass); -webkit-backdrop-filter: blur(22px) saturate(170%); backdrop-filter: blur(22px) saturate(170%); border: 1px solid var(--glass-border); box-shadow: var(--lift); }
.foot__brand p { color: var(--ink-2); margin: 1rem 0; font-size: .96rem; }
.foot__h { font-weight: 700; font-size: .78rem; letter-spacing: .2em; text-transform: uppercase; color: var(--turq-d); margin: 0 0 .8rem; }
.foot ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; font-size: .95rem; color: var(--ink-2); }
.foot ul a { display: inline-flex; align-items: center; min-height: 36px; text-decoration: none; color: var(--ink); }
.foot ul a:hover { color: var(--turq-d); }
.foot ul li { overflow-wrap: anywhere; }
.foot__base { width: min(var(--wrap), 100% - 2 * var(--gutter)); margin: 1.5rem auto 0; display: grid; gap: .4rem; font-size: .86rem; color: var(--ink-2); text-align: center; }
.foot__base p { margin: 0; }
.foot__base a { color: var(--turq-d); }
.foot__demo { display: inline-flex; justify-self: center; align-items: center; gap: .4rem; padding: .35rem .8rem; border-radius: 10px; font-weight: 600; color: #7A4600; background: color-mix(in srgb, var(--sun) 20%, white); }
.foot__credit { font-weight: 700; color: var(--ink); }

/* botón flotante de WhatsApp */
.fab-wa { position: fixed; right: max(18px, env(safe-area-inset-right)); bottom: calc(18px + env(safe-area-inset-bottom)); z-index: 55; display: inline-flex; align-items: center; gap: .5rem; min-height: 58px; padding: 0 1.2rem 0 1rem; border-radius: 999px; text-decoration: none; font-weight: 700; color: var(--wa-ink);
  background: linear-gradient(145deg, color-mix(in srgb, var(--wa) 92%, white), color-mix(in srgb, var(--wa) 80%, transparent)); -webkit-backdrop-filter: blur(16px) saturate(180%); backdrop-filter: blur(16px) saturate(180%); border: 1px solid color-mix(in srgb, white 55%, var(--wa));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7), 0 16px 34px -12px color-mix(in srgb, var(--wa) 85%, transparent);
  opacity: 0; transform: translateY(16px) scale(.96); pointer-events: none; transition: opacity .35s, transform .35s var(--ease); }
.fab-wa .ic { width: 1.6em; height: 1.6em; }
body.past-hero .fab-wa, body:not(.has-hero) .fab-wa { opacity: 1; transform: none; pointer-events: auto; }

/* aparición suave al hacer scroll (solo con JS) */
.js .reveal { opacity: 0; transform: translateY(14px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.js .reveal.is-in { opacity: 1; transform: none; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1180px) {
  .ctiles { grid-template-columns: repeat(3, 1fr); }
  .ctiles .ctile:nth-child(4), .ctiles .ctile:nth-child(5) { grid-column: span 1; }
  .tour { grid-template-columns: minmax(0, 1fr) 370px; }
}
@media (max-width: 1060px) {
  .nav__links { display: none; }
  .nav__menu { display: inline-flex; }
  body.past-hero .nav__wa, body:not(.has-hero) .nav__wa { display: none; }
  .finder { grid-template-columns: 1fr 1fr; }
  .finder__t { grid-column: 1 / -1; margin: 0; }
  .finder .btn { grid-column: 1 / -1; }
  .dgrid { grid-template-columns: repeat(2, 1fr); }
  .dcard--wide { grid-column: 1 / -1; }
  .why, .revs { grid-template-columns: repeat(2, 1fr); }
  .faqwrap { grid-template-columns: minmax(0, 1fr); }
  .faqwrap .sec__head { position: static; }
  .catalog { grid-template-columns: minmax(0, 1fr); }
  .filters { position: relative; top: 0; }
  .filters__t { display: none; }
  .filters__head { margin: 0; }
  .filters__toggle { display: inline-flex; }
  .filters__body { display: none; margin-top: 1rem; grid-template-columns: repeat(2, 1fr); }
  .filters.is-open .filters__body { display: grid; }
  .field--search, .field--range { grid-column: 1 / -1; }
  .tour { grid-template-columns: minmax(0, 1fr); }
  .facts, .book, .tour__content { grid-column: 1; grid-row: auto; }
  .book { position: relative; top: 0; margin: .5rem 0 0; }
  .how { grid-template-columns: minmax(0, 1fr); }
  .phone { margin-top: 1rem; }
  .final__card { grid-template-columns: minmax(0, 1fr); }
  .foot__in { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 767px) {
  :root { --nav-h: 64px; --r-card: 24px; }
  .sym { width: 36px; height: 36px; }
  .logo__name { font-size: 1.05rem; }
  .logo__sub { font-size: .56rem; letter-spacing: .28em; }
  .lang__btn { padding: 0 .45rem; gap: .3rem; }
  .lang__btn span { font-size: .78rem; }
  .nav__menu span { display: none; }
  .nav__menu { padding: 0; width: 44px; justify-content: center; }
  .hero { min-height: 600px; max-height: none; }
  .hero__in { bottom: calc(76px + env(safe-area-inset-bottom)); }
  .hero__title { font-size: clamp(2.3rem, 10.4vw, 3.3rem); max-width: 12ch; }
  .hero__title .emo { transform: none; }
  .hero__sub { font-size: 1rem; margin-bottom: .9rem; max-width: 34ch; }
  .hero__chip { margin-bottom: .9rem; padding: .55rem .6rem .55rem .85rem; }
  .hero__chip-n { font-size: .98rem; }
  .hero__chip-go { width: 36px; height: 36px; }
  .hero__actions { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
  .hero__actions .btn { min-height: 50px; padding-inline: .6rem; font-size: clamp(.8rem, 3.6vw, .95rem); white-space: normal; line-height: 1.15; }
  .hero__actions .btn .ic { width: 1.1em; height: 1.1em; }
  .hero__trust { display: grid; grid-template-columns: 1fr 1fr; gap: .3rem .8rem; font-size: .8rem; margin-top: .8rem; }
  .hero__trust li { align-items: flex-start; line-height: 1.3; }
  .hero__dots { gap: .45rem; bottom: calc(14px + env(safe-area-inset-bottom)); }
  .dot { grid-template-columns: 1fr; gap: .2rem; }
  .dot__n { font-size: .74rem; }
  .dot__t { display: none; }
  .finder-wrap { margin-top: 20px; }
  .finder { padding: 1rem; gap: .75rem; }
  .ctiles, .ctiles--4 { grid-template-columns: 1fr 1fr; gap: .8rem; }
  .ctiles .ctile:first-child { grid-column: 1 / -1; }
  .ctiles .ctile:first-child img { aspect-ratio: 16 / 10; }
  .ctile { padding: 7px 7px .9rem; border-radius: 22px; }
  .ctile picture img { border-radius: 16px; }
  .ctile__name { font-size: 1.02rem; padding-right: 2.4rem; }
  .ctile__ic { width: 40px; height: 40px; top: -1.4rem; }
  .ctile__subs { font-size: .8rem; }
  .sec__head--row { flex-direction: column; align-items: stretch; }
  .tgrid { grid-template-columns: minmax(0, 1fr); }
  .tcard__price strong { font-size: 1.8rem; }
  .dgrid { grid-template-columns: 1fr 1fr; gap: .8rem; }
  .dcard { padding: 7px; }
  .dcard:not(.dcard--wide) .dcard__short { display: none; }
  .dcard__name { font-size: 1.1rem; }
  .dcard__count { font-size: .72rem; letter-spacing: .08em; }
  .why { grid-template-columns: minmax(0, 1fr); }
  .revs { grid-template-columns: minmax(0, 1fr); }
  .gal { columns: 2; column-gap: .7rem; }
  .gal__i { margin-bottom: .7rem; padding: 6px 6px .55rem; border-radius: 20px; }
  .gal__i img { border-radius: 14px; }
  .gal__cap { font-size: .78rem; }
  .final__mini { right: -6px; bottom: -16px; width: 38%; }
  .final__text { padding: 1.4rem .6rem .6rem; }
  .final__actions { display: grid; grid-template-columns: 1fr; }
  .phero { height: 58svh; min-height: 420px; }
  .thero { height: 78svh; min-height: 540px; }
  .thero__actions { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
  .thero__actions .btn { min-height: 52px; padding-inline: .6rem; font-size: .92rem; white-space: normal; }
  .filters__body { grid-template-columns: minmax(0, 1fr); }
  .custom { grid-template-columns: minmax(0, 1fr); text-align: left; }
  .facts { grid-template-columns: 1fr 1fr; gap: .6rem; }
  .fact { padding: .75rem .8rem; gap: .55rem; border-radius: 18px; }
  .fact span { font-size: .88rem; }
  .tsec--two { grid-template-columns: minmax(0, 1fr); }
  .hls { grid-template-columns: minmax(0, 1fr); }
  .tgal { grid-template-columns: 1fr 1fr; }
  .book__card { padding: 1.2rem; border-radius: 26px; }
  .book__stub::before { left: -28px; }
  .book__stub::after { right: -28px; }
  .intro { grid-template-columns: minmax(0, 1fr); }
  .foot__in { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .sticky-book { position: fixed; left: 12px; right: 12px; bottom: calc(10px + env(safe-area-inset-bottom)); z-index: 55; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .55rem .55rem .55rem 1.1rem; border-radius: 22px;
    background: linear-gradient(145deg, rgba(255,255,255,.94), rgba(255,255,255,.8)); -webkit-backdrop-filter: blur(20px) saturate(170%); backdrop-filter: blur(20px) saturate(170%); border: 1px solid #fff; box-shadow: var(--lift);
    transition: transform .35s var(--ease), opacity .35s; }
  .sticky-book span { display: grid; line-height: 1.15; }
  .sticky-book small { font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--turq-d); }
  .sticky-book strong { font-size: 1.3rem; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
  .sticky-book.is-hidden { transform: translateY(140%); opacity: 0; pointer-events: none; }
  .page-tour .fab-wa { display: none; }
  .page-tour .foot { padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
  .fab-wa span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .fab-wa { width: 58px; padding: 0; justify-content: center; }
}
@media (max-width: 380px) {
  .hero__trust { font-size: .76rem; }
  .facts { grid-template-columns: minmax(0, 1fr); }
  .lang__btn span { display: none; }
}
@media (max-height: 700px) and (max-width: 767px) {
  .hero__trust { display: none; }
  .hero__sub { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .slide.is-enter[data-fx] { animation: fx-fade .6s ease both !important; }
  .slide.is-on img, .phero__media img, .thero__media img { animation: none; }
  .js .reveal { opacity: 1; transform: none; transition: none; }
  .tcard, .dcard, .ctile, .btn, .gal__i { transition: none; }
  .dot.is-on .dot__bar i { animation: none; width: 100%; }
}
@keyframes fx-fade { from { opacity: 0; } to { opacity: 1; } }
.tcard__price .tcard__sec { font-weight: 700; color: var(--ink); }
@media (max-width: 767px) {
  .why__i { grid-template-columns: 52px 1fr; column-gap: 1rem; padding: 1.1rem; }
  .why__ic { grid-row: span 2; margin: 0; }
  .foot__in { grid-template-columns: 1fr 1fr; column-gap: 1rem; }
  .foot__brand, .foot__col:last-child { grid-column: 1 / -1; }
}
.field .field__in input { min-height: 52px; border: 0; background: transparent; box-shadow: none; padding: 0 1rem 0 0; border-radius: 0; }
.field .field__in input:focus { box-shadow: none; }
@media (min-width: 768px) {
  .hero__in { bottom: calc(150px + env(safe-area-inset-bottom)); }
  .hero__dots { bottom: 76px; }
}
.hero__sub, .hero__trust, .dot { text-shadow: 0 0 2px rgba(4,24,30,.75), 0 1px 3px rgba(4,24,30,.7), 0 2px 18px rgba(4,24,30,.6); }
@media (min-width: 768px) {
  .hero__title { font-size: clamp(2.8rem, 5.4vw, 5.6rem); max-width: 17ch; }
}
@media (min-width: 768px) and (max-height: 820px) {
  .hero__title { font-size: clamp(2.6rem, 4.6vw, 4.6rem); }
  .hero__trust { display: none; }
}
.foot ul a { min-height: 44px; min-width: 44px; }
.foot ul { gap: 0; }
.faqgroup a { display: inline-flex; align-items: center; min-height: 44px; }
.stepper__c input { height: 44px; }
@media (max-width: 400px) { .book__people { grid-template-columns: 1fr; } }
/* contraste AA medido: etiquetas con texto blanco sobre tonos más profundos */
.chip--popular { background: linear-gradient(145deg, #D93A2E, #B42A20); border-color: #F2A59E; }
.chip--private { background: linear-gradient(145deg, #1466A8, #0B4F86); border-color: #9CC6EA; }
::placeholder { color: #587584; }
.book__prices dd { display: grid; justify-items: end; line-height: 1.25; }
.book__prices dd small { font-weight: 600; font-size: .78rem; color: var(--ink-2); }
.sticky-book em { font-style: normal; font-size: .76rem; color: var(--ink-2); }

/* nada puede ensanchar la página: las columnas encogen y los textos largos parten */
.facts { grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); }
@media (max-width: 767px) {
  .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ctiles, .ctiles--4, .dgrid, .gal { min-width: 0; }
  .ctiles, .ctiles--4, .dgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tgal { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .foot__in { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .final__mini { right: 0; }
  .fact span, .tcard__loc, .dcard__name, .ctile__name { overflow-wrap: anywhere; }
}
@media (max-width: 380px) { .facts { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 360px) {
  .nav__in { gap: .5rem; }
  .logo__sub { display: none; }
  .lang__btn { min-width: 40px; padding: 0 .35rem; }
}
@media (max-width: 340px) { .logo__txt { display: none; } }
.nav--over:not(.is-solid) .logo__sub { text-shadow: 0 0 2px rgba(4,24,30,.8), 0 1px 3px rgba(4,24,30,.7), 0 2px 10px rgba(4,24,30,.6); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
@media (max-width: 767px) {
  .sticky-book { gap: .6rem; }
  .sticky-book span { min-width: 0; }
  .sticky-book .btn { flex: none; padding: 0 1rem; }
}
@media (max-width: 360px) { .sticky-book strong { font-size: 1.12rem; } .sticky-book em { font-size: .7rem; } }
/* las muescas del boleto se cortan en el borde: semicírculo limpio y nada sobresale de la página */
.book__card, .tcard { overflow: clip; }
.nav__logo { display: inline-flex; align-items: center; min-width: 44px; min-height: 44px; }
.book__card { grid-template-columns: minmax(0, 1fr); }
.book__card .btn--block { white-space: normal; }
@media (max-width: 360px) { .book__card { padding: 1rem; } .book__stub::before { left: -25px; } .book__stub::after { right: -25px; } }
@media (max-width: 400px) { .btn { white-space: normal; } }
