/* =========================================================
   Adventours · mockup front-end
   Paleta de marca: amarillo sol + negro carbón + arena.
   ========================================================= */

:root {
  --ink: #0e0d0b;
  --ink-2: #171612;
  --ink-3: #23211b;
  --line: rgba(255, 255, 255, 0.12);
  --line-strong: rgba(255, 255, 255, 0.24);
  --paper: #f4f1ea;
  --muted: #a8a293;
  --sun: #ffcc00;
  --sun-deep: #e6b800;
  --sun-ink: #1a1400;
  /* Nivel de la salida en el calendario: verde principiante, ámbar intermedio, rojo avanzado */
  --lvl-1: #3fbf6a;
  --lvl-2: #f59e0b;
  --lvl-3: #ef4b4b;
  /* Amarillo de advertencia (señalética de seguridad) para requisitos como «con reductora» */
  --warn: #ffcc00;
  --sand: #efe8d8;
  --sand-2: #e3d8c0;
  --sand-ink: #2a251b;
  --sand-muted: #6f6656;
  --sand-line: rgba(42, 37, 27, 0.14);
  --rust: #c8592b;
  --ok: #7fb069;

  --f-display: 'Barlow Condensed', 'Oswald', Impact, sans-serif;
  --f-body: 'Barlow', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --f-mono: 'IBM Plex Mono', ui-monospace, Menlo, monospace;

  /* Botones con esquinas de 5 px (decisión de Giaz, 20-oct-2026). Las etiquetas siguen redondeadas. */
  --r-btn: 5px;
  --r-sm: 6px;
  --r: 12px;
  --r-lg: 20px;
  --gutter: clamp(16px, 4vw, 40px);
  --max: 1240px;
  --header-h: 72px;
  --ease: cubic-bezier(0.2, 0.7, 0.2, 1);

  --topo: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='600' viewBox='0 0 600 600' fill='none' stroke='%23ffffff' stroke-width='1'%3E%3Cpath d='M-20 120c80-40 140 30 220 0s120-90 220-60 140 70 200 40'/%3E%3Cpath d='M-20 150c90-35 150 35 230 5s130-80 210-50 150 70 200 45'/%3E%3Cpath d='M-20 185c95-30 160 40 240 10s130-70 200-45 160 70 200 50'/%3E%3Cpath d='M-20 300c60 30 130-40 210-20s110 90 200 70 140-60 230-30'/%3E%3Cpath d='M-20 335c70 30 140-35 215-15s115 85 200 65 140-55 225-25'/%3E%3Cpath d='M-20 372c75 28 150-30 220-12s120 80 200 60 140-50 220-22'/%3E%3Cpath d='M-20 470c100-20 160 50 250 30s150-70 220-50 110 40 170 25'/%3E%3Cpath d='M-20 505c100-18 165 48 255 28s150-62 220-44 110 36 165 22'/%3E%3Cpath d='M-20 540c100-14 170 44 260 26s150-55 220-38 110 32 160 20'/%3E%3C/svg%3E");
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); }
body {
  margin: 0;
  background: var(--ink);
  color: var(--paper);
  font: 400 17px/1.6 var(--f-body);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; cursor: pointer; }
:focus-visible { outline: 2px solid var(--sun); outline-offset: 3px; border-radius: 4px; }
::selection { background: var(--sun); color: var(--sun-ink); }

.container { width: 100%; max-width: var(--max); margin-inline: auto; padding-inline: var(--gutter); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.trampa { position: absolute !important; left: -10000px; width: 1px; height: 1px; opacity: 0; pointer-events: none; } /* campo trampa de los formularios: solo los robots lo llenan */

/* ---------- Tipografía ---------- */
.display {
  font-family: var(--f-display);
  font-weight: 800;
  text-transform: uppercase;
  line-height: 0.92;
  letter-spacing: -0.01em;
  margin: 0;
}
.h-xl { font-size: clamp(52px, 9vw, 132px); }
.h-lg { font-size: clamp(40px, 6vw, 84px); }
.h-md { font-size: clamp(32px, 4.2vw, 56px); }
.h-sm { font-size: clamp(24px, 2.4vw, 32px); line-height: 1; }
.serif-i { font-family: var(--f-body); font-style: italic; font-weight: 500; text-transform: none; letter-spacing: 0; }

.eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font: 500 12px/1 var(--f-mono);
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--sun);
  margin: 0 0 18px;
}
.eyebrow::before { content: ''; width: 28px; height: 1px; background: currentColor; }
.lede { font-size: clamp(18px, 1.6vw, 21px); line-height: 1.55; color: #d9d4c7; max-width: 60ch; }
.mono { font-family: var(--f-mono); font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; }
.muted { color: var(--muted); }

/* ---------- Botones ---------- */
.btn {
  --bg: transparent; --fg: var(--paper); --bd: var(--line-strong);
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 0 22px;
  border-radius: var(--r-btn); border: 1px solid var(--bd);
  background: var(--bg); color: var(--fg);
  font: 700 17px/1 var(--f-display); letter-spacing: 0.08em; text-transform: uppercase;
  transition: transform 0.2s var(--ease), background 0.2s, border-color 0.2s, color 0.2s;
  white-space: nowrap;
}
.btn:hover { transform: translateY(-1px); border-color: var(--paper); }
.btn svg { width: 18px; height: 18px; flex: none; }
.btn:disabled { opacity: 0.4; cursor: not-allowed; transform: none; }
.btn--sun { --bg: var(--sun); --fg: var(--sun-ink); --bd: var(--sun); }
.btn--sun:hover { --bg: #ffd24d; border-color: #ffd24d; }
/* Sobre fondo claro (arena, blanco o amarillo) el botón va negro con letras amarillas (Giaz, 20-oct-2026). */
.btn--dark { --bg: var(--ink); --fg: var(--sun); --bd: var(--ink); }
.section--sand .btn--sun { --bg: var(--ink); --fg: var(--sun); --bd: var(--ink); }
.section--sand .btn--sun:hover { --bg: #000; border-color: #000; }
.btn--dark:hover { border-color: var(--ink); --bg: #000; }
.btn--sm { min-height: 42px; padding: 0 18px; font-size: 16px; }
.btn--block { width: 100%; }
.link-arrow {
  display: inline-flex; align-items: center; gap: 8px;
  font: 700 14px/1 var(--f-display); letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--sun);
}
.link-arrow svg { width: 16px; height: 16px; transition: transform 0.2s var(--ease); }
.link-arrow:hover svg { transform: translateX(4px); }

/* ---------- Barra de anuncio ---------- */
.announce {
  background: var(--sun); color: var(--sun-ink);
  font: 600 14px/1.3 var(--f-body);
  text-align: center; padding: 9px var(--gutter);
  position: relative; z-index: 51;
}
.announce a { text-decoration: underline; text-underline-offset: 3px; font-weight: 700; }
.announce .mono { font-size: 11px; margin-right: 8px; opacity: 0.75; }

/* ---------- Header ---------- */
.site-top { position: fixed; top: 0; left: 0; right: 0; z-index: 50; transition: transform 0.35s var(--ease); }
.site-top.is-solid { transform: translateY(calc(-1 * var(--announce-h, 0px))); }
.site-header {
  height: var(--header-h);
  transition: background 0.3s, border-color 0.3s;
  border-bottom: 1px solid transparent;
}
.site-top.is-solid .site-header { background: rgba(14, 13, 11, 0.9); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-bottom-color: var(--line); }
.header-inner { height: 100%; display: flex; align-items: center; gap: 28px; }
.brand { display: flex; align-items: center; flex: none; }
.brand img { height: 36px; width: auto; }
.nav { display: flex; gap: 4px; margin-left: auto; }
.nav a {
  padding: 10px 12px; border-radius: var(--r-btn);
  font: 600 15px/1 var(--f-display); letter-spacing: 0.08em; text-transform: uppercase;
  color: #e8e3d6; transition: color 0.2s, background 0.2s;
}
.nav a:hover { color: var(--sun); }
.nav a[aria-current='page'] { color: var(--sun); }
.header-actions { display: flex; align-items: center; gap: 10px; }
.lang {
  display: inline-flex; border: 1px solid var(--line-strong); border-radius: var(--r-btn); padding: 3px;
  font: 500 11px/1 var(--f-mono); letter-spacing: 0.08em;
}
.lang button { background: none; border: 0; padding: 7px 9px; border-radius: var(--r-btn); color: var(--muted); }
.lang button[aria-pressed='true'] { background: var(--paper); color: var(--ink); }
.icon-btn {
  width: 42px; height: 42px; border-radius: var(--r-btn);
  display: inline-grid; place-items: center;
  border: 1px solid var(--line-strong); background: none;
}
.icon-btn svg { width: 20px; height: 20px; }
.icon-btn:hover { border-color: var(--sun); color: var(--sun); }
.menu-toggle { display: none; }

.mobile-menu {
  position: fixed; inset: 0; z-index: 60;
  background: var(--ink); padding: 20px var(--gutter) 32px;
  display: flex; flex-direction: column;
  transform: translateY(-100%); visibility: hidden; overflow-y: auto;
  transition: transform 0.4s var(--ease), visibility 0.4s;
  background-image: var(--topo); background-size: 600px; background-blend-mode: soft-light;
}
.mobile-menu.is-open { transform: none; visibility: visible; }
.mobile-menu .top { display: flex; justify-content: space-between; align-items: center; height: 52px; }
.mobile-menu nav { display: flex; flex-direction: column; margin-top: 32px; }
.mobile-menu nav a {
  font: 800 44px/1.05 var(--f-display); text-transform: uppercase; padding: 8px 0;
  border-bottom: 1px solid var(--line);
}
.mobile-menu nav a:hover { color: var(--sun); }
.mobile-menu .bottom { margin-top: auto; display: grid; gap: 12px; }

@media (max-width: 1080px) {
  .nav, .header-actions .btn, .header-actions .lang { display: none; }
  .menu-toggle { display: inline-grid; }
  .header-actions { margin-left: auto; }
}

/* Login demo del header: sin sesión, ícono en transparencia; con sesión, amarillo al 100 % (Giaz, 20-oct-2026) */
.login { position: relative; }
.login-btn { gap: 8px; padding: 0 16px 0 12px; }
.login-ico { display: inline-grid; place-items: center; transition: color 0.2s, opacity 0.2s; }
.login-ico svg { width: 20px; height: 20px; }
.login[data-sesion='off'] .login-ico { opacity: 0.4; }
.login[data-sesion='off'] .login-btn:hover .login-ico { opacity: 0.75; }
.login[data-sesion='on'] .login-ico { color: var(--sun); opacity: 1; }
.login[data-sesion='on'] .login-btn { border-color: color-mix(in srgb, var(--sun) 55%, transparent); }
@media (max-width: 1080px) {
  .header-actions .btn.login-btn { display: inline-flex; width: 42px; min-height: 42px; padding: 0; }
  .login-txt { display: none; }
}

/* ---------- Hero ---------- */
.hero {
  position: relative; min-height: max(680px, 100svh);
  display: flex; align-items: flex-end;
  padding: calc(var(--header-h) + var(--announce-h, 0px) + 80px) 0 48px;
  isolation: isolate; overflow: visible; z-index: 3; /* la tarjeta «Próxima salida» acompaña al scroll fuera del hero */
}
.hero__media { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 60% 50%; transform: scale(1.04); animation: heroZoom 18s var(--ease) forwards; }
@keyframes heroZoom { to { transform: scale(1); } }
.hero::after {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(180deg, rgba(14,13,11,0.55) 0%, rgba(14,13,11,0) 28%),
    linear-gradient(90deg, rgba(14,13,11,0.82) 0%, rgba(14,13,11,0.35) 55%, rgba(14,13,11,0.1) 100%),
    linear-gradient(0deg, rgba(14,13,11,0.95) 0%, rgba(14,13,11,0) 45%);
}
.hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 48px; align-items: end; }
.hero h1 { font-size: clamp(54px, 8.4vw, 128px); }
/* En inglés, «Where the road ends,» va en una sola línea: el título es un poco más chico (Giaz, 22-oct-2026) */
html[lang='en'] .hero h1 { font-size: clamp(38px, 5.7vw, 94px); }
@media (max-width: 900px) { html[lang='en'] .hero h1 { font-size: clamp(38px, 8.4vw, 72px); } }
.hero h1 .script { display: flex; align-items: center; gap: 0.18em; flex-wrap: wrap; margin-top: 0.06em; }
.hero h1 .script span { font-size: 0.5em; font-weight: 600; letter-spacing: 0.02em; color: var(--sun); }
.hero h1 .script img { height: 0.82em; width: auto; filter: drop-shadow(0 4px 24px rgba(0,0,0,0.4)); }
.hero .lede { margin: 26px 0 32px; }
.hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; }
.hero__meta {
  display: flex; gap: 24px; flex-wrap: wrap; margin-top: 44px; padding-top: 20px;
  border-top: 1px solid var(--line); color: var(--muted);
}
.hero__meta span { display: inline-flex; align-items: center; gap: 8px; }
.hero__meta svg { width: 14px; height: 14px; color: var(--sun); }

.next-card {
  background: rgba(14, 13, 11, 0.62); backdrop-filter: blur(16px);
  border: 1px solid var(--line-strong); border-radius: var(--r-lg);
  padding: 22px; display: grid; gap: 16px;
  /* Flotante: sombra amplia y parallax vertical con el scroll en home.js */
  box-shadow: 0 30px 70px -20px rgba(0,0,0,0.65), 0 8px 24px -12px rgba(0,0,0,0.5);
  will-change: transform;
}
@media (min-width: 921px) { .next-card { margin-bottom: 159px; } }
.next-card__label { display: flex; justify-content: space-between; align-items: center; }
.pulse { display: inline-flex; align-items: center; gap: 8px; color: var(--sun); }
.pulse::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--sun); box-shadow: 0 0 0 0 rgba(255,204,0,0.6); animation: pulse 2s infinite; }
@keyframes pulse { 70% { box-shadow: 0 0 0 10px rgba(255,204,0,0); } 100% { box-shadow: 0 0 0 0 rgba(255,204,0,0); } }
.next-card__body { display: grid; grid-template-columns: auto 1fr; gap: 16px; align-items: center; }
.datebox {
  width: 68px; text-align: center; border-radius: var(--r); padding: 10px 0 8px;
  background: var(--sun); color: var(--sun-ink);
}
.datebox b { display: block; font: 800 34px/0.9 var(--f-display); }
.datebox small { font: 600 11px/1 var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; }
.next-card h3 { font: 800 26px/1 var(--f-display); text-transform: uppercase; margin: 0 0 6px; }
.next-card p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.4; }
.countdown { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.countdown div { background: rgba(255,255,255,0.06); border-radius: var(--r-sm); text-align: center; padding: 8px 0 6px; }
.countdown b { display: block; font: 700 22px/1 var(--f-display); }
.countdown small { font: 500 10px/1 var(--f-mono); color: var(--muted); letter-spacing: 0.1em; text-transform: uppercase; }

@media (max-width: 920px) {
  .hero__grid { grid-template-columns: 1fr; }
  .next-card { max-width: 440px; }
}

/* ---------- Marquee ---------- */
.marquee { background: var(--sun); color: var(--sun-ink); overflow: hidden; border-block: 1px solid var(--sun-deep); }
.marquee__track { display: flex; width: max-content; animation: marquee 38s linear infinite; }
.marquee__track span {
  font: 800 clamp(22px, 2.6vw, 34px)/1 var(--f-display); text-transform: uppercase; letter-spacing: 0.02em;
  padding: 16px 0; display: inline-flex; align-items: center; gap: 28px; margin-right: 28px;
}
.marquee__track span::after { content: ''; width: 14px; height: 14px; background: currentColor; clip-path: polygon(50% 0, 100% 100%, 0 100%); }
@keyframes marquee { to { transform: translateX(-50%); } }

/* ---------- Secciones ---------- */
.section { padding: clamp(80px, 10vw, 140px) 0; position: relative; }
.section--tight { padding: clamp(56px, 7vw, 96px) 0; }
.section--sand { background: var(--sand); color: var(--sand-ink); }
.section--sand .eyebrow { color: var(--sand-ink); }
.section--sand .lede, .section--sand .muted { color: var(--sand-muted); }
.section--ink2 { background: var(--ink-2); }
.section--topo::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background-image: var(--topo); background-size: 640px; opacity: 0.06;
}
.section-head { display: flex; justify-content: space-between; align-items: end; gap: 32px; margin-bottom: clamp(36px, 5vw, 64px); flex-wrap: wrap; }
.section-head .lede { margin: 0; flex: 0 1 440px; }

/* ---------- Tres maneras ---------- */
.ways { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.way {
  position: relative; border-radius: var(--r-lg); overflow: hidden; min-height: 520px;
  display: flex; flex-direction: column; justify-content: flex-end; padding: 28px;
  isolation: isolate; border: 1px solid var(--line);
}
.way img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 0.8s var(--ease); }
.way::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(14,13,11,0.96) 10%, rgba(14,13,11,0.45) 55%, rgba(14,13,11,0.15)); }
.way:hover img { transform: scale(1.05); }
.way__num { position: absolute; top: 22px; left: 28px; font: 500 12px/1 var(--f-mono); letter-spacing: 0.14em; color: var(--sun); }
.way__tag { position: absolute; top: 18px; right: 18px; }
.way h3 { font: 800 clamp(34px, 3.2vw, 44px)/0.95 var(--f-display); text-transform: uppercase; margin: 0 0 14px; }
.way p { margin: 0 0 22px; color: #d9d4c7; font-size: 16px; }
@media (max-width: 920px) { .ways { grid-template-columns: 1fr; } .way { min-height: 420px; } }

.pill {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 11px; border-radius: 999px;
  font: 500 11px/1 var(--f-mono); letter-spacing: 0.08em; text-transform: uppercase;
  background: rgba(14,13,11,0.6); border: 1px solid var(--line-strong); color: var(--paper);
  backdrop-filter: blur(8px);
}
.pill--sun { background: var(--sun); border-color: var(--sun); color: var(--sun-ink); }
.pill--draft { background: transparent; border-style: dashed; color: var(--muted); }

/* ---------- Filtros ---------- */
.filters { display: flex; flex-wrap: wrap; gap: 8px; }
.chip {
  border: 1px solid var(--sand-line); background: transparent; color: var(--sand-ink);
  padding: 10px 16px; border-radius: var(--r-btn);
  font: 600 14px/1 var(--f-display); letter-spacing: 0.08em; text-transform: uppercase;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.chip:hover { border-color: var(--sand-ink); }
.chip[aria-pressed='true'] { background: var(--sand-ink); color: var(--sand); border-color: var(--sand-ink); }
.chip .count { font-family: var(--f-mono); font-size: 11px; opacity: 0.6; margin-left: 6px; }

/* ---------- Tarjetas de experiencia ---------- */
.exp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
/* Categorías de Experiencias Signature (Giaz, 20-oct-2026) */
.exp-cats { display: grid; gap: clamp(56px, 7vw, 88px); }
.exp-cat[hidden] { display: none; }
.exp-cat__titulo { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 16px; margin: 0 0 26px; padding-bottom: 16px;
  border-bottom: 1px solid var(--sand-line); font: 800 clamp(28px, 3.2vw, 42px)/1 var(--f-display); text-transform: uppercase; letter-spacing: 0.01em; }
.exp-cat__titulo span { font: 500 13px/1 var(--f-mono); letter-spacing: 0.1em; color: var(--sand-muted); }
.exp-cat__titulo .exp-cat__estrellas { display: inline-flex; gap: 4px; align-self: center; color: var(--ink); font-size: clamp(16px, 1.6vw, 22px); }
.exp-cat__estrellas svg { width: 1em; height: 1em; fill: currentColor; }
.exp-cat__titulo small { margin-left: auto; font: 500 12px/1 var(--f-mono); letter-spacing: 0.08em; color: var(--sand-muted); text-transform: uppercase; }
.exp-card { display: flex; flex-direction: column; color: var(--sand-ink); }
.exp-card__media { position: relative; aspect-ratio: 4 / 3.4; border-radius: var(--r-lg); overflow: hidden; background: var(--sand-2); }
.exp-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.8s var(--ease); }
/* Cinta PREVENTA en diagonal sobre la esquina superior derecha, como en los tickets del Core (magenta #ED1E79).
   Regla de centrado de las cintas (Giaz, 26-oct-2026): las mayúsculas de Barlow Condensed quedan algo más abajo del
   centro de su línea (0,08 em), así que el relleno de abajo lleva 0,08 em más que el de arriba: el mismo color arriba
   y abajo de las letras. Aquí, 10,5 px arriba y 12,5 px abajo (25 px de letra). */
.cinta-preventa { position: absolute; top: 42px; right: -70px; z-index: 2; width: 280px; transform: rotate(45deg); background: #ed1e79; color: #fff;
  text-align: center; font: 800 25px/1 var(--f-display); letter-spacing: 0.03em; text-transform: uppercase; padding: 10.5px 0 12.5px;
  box-shadow: 0 6px 16px -8px rgba(0, 0, 0, 0.5); pointer-events: none; }
.exp-card:hover .exp-card__media img { transform: scale(1.05); }
.exp-card__badges { position: absolute; top: 14px; left: 14px; right: 14px; display: flex; justify-content: space-between; gap: 8px; }
.exp-card__date {
  position: absolute; bottom: 14px; left: 14px;
  background: var(--paper); color: var(--ink); border-radius: var(--r-sm);
  padding: 7px 10px; font: 600 12px/1 var(--f-mono); letter-spacing: 0.06em; text-transform: uppercase;
}
.exp-card__body { padding: 18px 4px 0; display: grid; gap: 8px; }
.exp-card__kind { font: 500 12px/1 var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--sand-muted); }
.exp-card h3 { font: 800 32px/0.95 var(--f-display); text-transform: uppercase; margin: 0; }
/* Gancho de la tarjeta: siempre dos líneas (se corta con «…» si sobra y reserva el alto si falta), así todas las
   tarjetas quedan parejas (Giaz, 20-oct-2026) */
.exp-card__tag { margin: 0; color: var(--sand-muted); font-size: 15px; line-height: 1.45; min-height: 2.9em;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }
.exp-card__foot { display: flex; justify-content: space-between; align-items: center; padding-top: 14px; margin-top: 6px; border-top: 1px solid var(--sand-line); }
.exp-card__price { font: 800 24px/1 var(--f-display); }
.exp-card__price small { font: 500 11px/1 var(--f-mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--sand-muted); display: block; margin-bottom: 4px; }
.exp-card__specs { display: flex; gap: 14px; font: 500 12px/1.2 var(--f-mono); color: var(--sand-muted); text-align: right; flex-direction: column; align-items: flex-end; }
.lvl { display: inline-flex; align-items: center; gap: 6px; }
.lvl i { display: inline-flex; gap: 2px; }
.lvl i::before, .lvl i::after, .lvl i b { content: ''; width: 5px; height: 12px; border-radius: 1px; background: currentColor; opacity: 0.25; display: block; }
.lvl[data-level='1'] i::before { opacity: 1; }
.lvl[data-level='2'] i::before, .lvl[data-level='2'] i b { opacity: 1; }
.lvl[data-level='3'] i::before, .lvl[data-level='3'] i b, .lvl[data-level='3'] i::after { opacity: 1; }
/* Calendario: sin cápsula; solo las barritas llevan el color del nivel y el texto va en blanco y negrita (Giaz, 20-oct-2026) */
.event-row .lvl, .ev-ticket .lvl { --c: var(--muted); justify-self: start; gap: 8px; color: #fff; font-weight: 700; font-size: 14px; }
.event-row .lvl i::before, .event-row .lvl i::after, .event-row .lvl i b,
.ev-ticket .lvl i::before, .ev-ticket .lvl i::after, .ev-ticket .lvl i b { background: var(--c); opacity: 0.28; }
.event-row .lvl[data-level='1'] i::before, .ev-ticket .lvl[data-level='1'] i::before,
.event-row .lvl[data-level='2'] i::before, .event-row .lvl[data-level='2'] i b, .ev-ticket .lvl[data-level='2'] i::before, .ev-ticket .lvl[data-level='2'] i b,
.event-row .lvl[data-level='3'] i::before, .event-row .lvl[data-level='3'] i b, .event-row .lvl[data-level='3'] i::after,
.ev-ticket .lvl[data-level='3'] i::before, .ev-ticket .lvl[data-level='3'] i b, .ev-ticket .lvl[data-level='3'] i::after { opacity: 1; }
.event-row .lvl[data-level='1'], .ev-ticket .lvl[data-level='1'] { --c: var(--lvl-1); }
.event-row__veh { font: 700 14px/1.3 var(--f-mono); letter-spacing: 0.04em; text-transform: uppercase; color: var(--paper); }
.event-row .lvl[data-level='2'], .ev-ticket .lvl[data-level='2'] { --c: var(--lvl-2); }
.event-row .lvl[data-level='3'], .ev-ticket .lvl[data-level='3'] { --c: var(--lvl-3); }
.exp-card[hidden] { display: none; }
@media (max-width: 1000px) { .exp-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .exp-grid { grid-template-columns: 1fr; } }

/* ---------- Calendario ---------- */
/* Espacio superior un 35 % menor que el de las demás secciones (Giaz, 20-oct-2026) */
#calendario { padding-top: calc(clamp(80px, 10vw, 140px) * 0.65); }
.events { border-top: 1px solid var(--line); }
.event-row {
  /* Columnas de ancho fijo: así Lugar y Nivel · Vehículo quedan alineados en todas las filas (antes la última
     columna cambiaba con el precio y movía a las demás) */
  display: grid; grid-template-columns: 100px minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1fr) 300px; gap: 28px; align-items: center;
  padding: 18px 0; border-bottom: 1px solid var(--line);
  transition: background 0.2s;
}
.event-row:hover { background: linear-gradient(90deg, rgba(255,204,0,0.06), transparent 70%); }
/* La fecha es el talón del ticket de evento del Core (eventoTicketHTML), en blanco y a mayor escala:
   el Core usa un talón de 52 px con perforación de 2,6 px cada 9 px y muescas de 8 px; aquí el talón
   mide 96 × 112 px y los detalles crecen en la misma proporción (4 px cada 14 px, muescas de 12 px). */
.event-row__date {
  width: 96px; height: 112px;
  -webkit-mask: radial-gradient(circle 12px at 100% 0, #0000 96%, #000 100%) top / 100% 51% no-repeat,
                radial-gradient(circle 12px at 100% 100%, #0000 96%, #000 100%) bottom / 100% 51% no-repeat;
          mask: radial-gradient(circle 12px at 100% 0, #0000 96%, #000 100%) top / 100% 51% no-repeat,
                radial-gradient(circle 12px at 100% 100%, #0000 96%, #000 100%) bottom / 100% 51% no-repeat;
}
.tk-talon {
  height: 100%; border-radius: 12px 0 0 12px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
  background: #ffffff; color: var(--ink); text-transform: uppercase;
  /* borde perforado: 8 agujeros exactos en 112 px */
  -webkit-mask: radial-gradient(circle 4px at 100% 50%, #0000 92%, #000 100%) 0 0 / 100% 14px repeat-y;
          mask: radial-gradient(circle 4px at 100% 50%, #0000 92%, #000 100%) 0 0 / 100% 14px repeat-y;
}
.tk-talon span { font: 600 13px/1 var(--f-mono); letter-spacing: 0.1em; color: #3d3a33; }
.tk-talon b { font: 800 50px/0.9 var(--f-display); color: var(--ink); }
.event-row h3 { font: 800 30px/1 var(--f-display); text-transform: uppercase; margin: 0 0 6px; }
.event-row__kind { color: var(--muted); font-size: 15px; }
.event-row__cell { display: grid; gap: 4px; font-size: 15px; }
.event-row__cell small { font: 500 11px/1 var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }
.event-row__cta { display: flex; align-items: center; gap: 16px; justify-content: flex-end; }
.event-row__price { font: 800 26px/1 var(--f-display); text-align: right; }
.event-row__price small { display: block; font: 500 10px/1.2 var(--f-mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); margin-top: 4px; }
@media (max-width: 1000px) {
  .event-row { grid-template-columns: 96px 1fr auto; row-gap: 12px; }
  .event-row__cell { display: none; }
}
/* Huevo de pascua: el Jeep y su convoy ruedan sobre el borde superior del calendario (el «terreno»), en computadora,
   tablet y celular (en tablet y celular, a menor escala: la escala la pone home.js). */
/* 10 px más de aire entre las tarjetas de Experiencias Signature y el convoy (Giaz, 20-oct-2026). */
#experiencias { padding-bottom: calc(clamp(80px, 10vw, 140px) + 10px); }
.jeep-ruta { display: block; position: absolute; left: 0; right: 0; top: -64px; height: 64px; overflow: hidden; pointer-events: none; z-index: 2; }
.jeep { position: absolute; left: 0; bottom: 0; width: 135px; height: 48.69px; transform-origin: 0 100%; will-change: transform; }
.jeep-carro { position: absolute; inset: 0; width: 135px; height: 48.69px; transform-origin: 50% 76%; will-change: transform; }
.jeep-rueda { position: absolute; width: 24.51px; height: 24.51px; will-change: transform; }
/* Convoy que sigue al Jeep: carrocería que cabecea y ruedas del Jeep (mismos aros) que giran aparte. */
.convoy-v { position: absolute; left: 0; bottom: 0; transform-origin: 0 100%; will-change: transform; }
.convoy-carro { display: block; width: 100%; height: 100%; transform-origin: 50% 80%; will-change: transform; }
.convoy-rueda { position: absolute; will-change: transform; }
/* Encabezado del calendario: la nota de cupos va bajo el título y a la derecha el logo en amarillo sol
   (el logo blanco usado como máscara, así toma el color de la marca). */
.cal-head { flex: 1; min-width: 0; }
/* El logo va a la altura del título «Próximas salidas», alineado al centro de la línea. */
.cal-titulo { display: flex; align-items: center; justify-content: space-between; gap: 16px 32px; flex-wrap: wrap; }
.section-head .cal-nota { margin: 20px 0 0; }
.logo-sol {
  display: block; flex: none; width: clamp(234px, 28.6vw, 390px); aspect-ratio: 690 / 185; /* 30 % más grande (Giaz) */
  background: var(--sun);
  -webkit-mask: url(../img/logo-adventours-blanco.png) center / contain no-repeat;
          mask: url(../img/logo-adventours-blanco.png) center / contain no-repeat;
}
/* Tablet y móvil: la lista de filas da paso a los tickets (formato del ticket de evento del Core) */
.tickets { display: none; }
@media (max-width: 1000px) {
  .events { display: none; }
  .tickets { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
}
@media (max-width: 640px) { .tickets { grid-template-columns: 1fr; } }
.ev-ticket {
  --stub: 64px; --lvl: var(--muted);
  position: relative; display: grid; grid-template-columns: var(--stub) 1fr; min-height: 220px;
  /* Mismos colores que la fila de computadora: cuerpo oscuro, talón blanco con la fecha en negro */
  border-radius: 12px; background: var(--ink-3); color: var(--paper); overflow: hidden;
  box-shadow: inset 0 0 0 1px var(--line);
  --tk-muted: var(--muted); --tk-line: var(--line-strong);
  /* muescas arriba y abajo, en la línea entre el talón y el cuerpo */
  -webkit-mask: radial-gradient(circle 9px at var(--stub) 0, #0000 96%, #000 100%) top / 100% 51% no-repeat,
                radial-gradient(circle 9px at var(--stub) 100%, #0000 96%, #000 100%) bottom / 100% 51% no-repeat;
          mask: radial-gradient(circle 9px at var(--stub) 0, #0000 96%, #000 100%) top / 100% 51% no-repeat,
                radial-gradient(circle 9px at var(--stub) 100%, #0000 96%, #000 100%) bottom / 100% 51% no-repeat;
}
.ev-ticket::after { content: ''; position: absolute; left: var(--stub); top: 12px; bottom: 12px; border-left: 1px dashed var(--tk-line); }
.tk-stub {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  background: #ffffff; color: var(--ink); text-transform: uppercase;
  /* borde perforado del talón, como en el Core (escalado al talón de 64 px: 3 px cada 10 px) */
  -webkit-mask: radial-gradient(circle 3px at 100% 50%, #0000 92%, #000 100%) 0 0 / 100% 10px repeat-y;
          mask: radial-gradient(circle 3px at 100% 50%, #0000 92%, #000 100%) 0 0 / 100% 10px repeat-y;
}
.tk-stub span { font: 600 12px/1 var(--f-mono); letter-spacing: 0.06em; color: #3d3a33; }
.tk-stub b { font: 800 34px/1 var(--f-display); margin: 2px 0; }
.tk-cuerpo { display: flex; flex-direction: column; gap: 4px; padding: 16px 16px 14px 18px; min-width: 0; }
.tk-tipo { font: 500 12px/1.3 var(--f-mono); letter-spacing: 0.06em; text-transform: uppercase; color: var(--tk-muted); }
.tk-titulo { font: 800 24px/1 var(--f-display); text-transform: uppercase; margin: 2px 0 0; }
.tk-titulo a:hover { text-decoration: underline; text-underline-offset: 3px; }
.tk-lugar { font-size: 14px; color: var(--tk-muted); }
.tk-etqs { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 2px; }
.tk-tag { display: inline-flex; align-items: center; height: 30px; padding: 0 12px; border-radius: 999px; font: 700 13px/1 var(--f-mono); letter-spacing: 0.04em; text-transform: uppercase; box-shadow: inset 0 0 0 1px var(--tk-line); color: var(--paper); }
.ev-ticket .lvl { font-size: 13px; }
.tk-fin, .tk-faltan { font-size: 13px; color: var(--tk-muted); }
.tk-fin b, .tk-faltan b { color: var(--paper); font-weight: 700; }
.tk-pie { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 12px; }
.tk-precio { font: 800 24px/1 var(--f-display); }
.tk-precio small { display: block; font: 500 10px/1.2 var(--f-mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--tk-muted); margin-top: 4px; }


/* ---------- Ruta de aprendizaje ---------- */
.path { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(32px, 6vw, 96px); align-items: center; }
.path__steps { display: grid; gap: 0; position: relative; counter-reset: step; }
.path__steps::before { content: ''; position: absolute; left: 23px; top: 24px; bottom: 24px; width: 2px; background: repeating-linear-gradient(180deg, var(--sand-ink) 0 6px, transparent 6px 12px); opacity: 0.35; }
.step { display: grid; grid-template-columns: 48px 1fr; gap: 20px; padding: 18px 0; position: relative; }
.step__dot {
  width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center;
  background: var(--sand); border: 2px solid var(--sand-ink);
  font: 800 16px/1 var(--f-display); position: relative; z-index: 1;
}
.step:first-child .step__dot { background: var(--sun); border-color: var(--sun); }
.step h3 { font: 800 28px/1 var(--f-display); text-transform: uppercase; margin: 4px 0 6px; }
.step p { margin: 0 0 8px; color: var(--sand-muted); font-size: 16px; }
.step__meta { display: flex; flex-wrap: wrap; gap: 6px 16px; font: 500 12px/1.3 var(--f-mono); letter-spacing: 0.06em; text-transform: uppercase; color: var(--sand-ink); }
.path__media { position: relative; border-radius: var(--r-lg); overflow: hidden; aspect-ratio: 4/5; }
.path__media img { width: 100%; height: 100%; object-fit: cover; }
.path__quote {
  position: absolute; left: 20px; right: 20px; bottom: 20px;
  background: var(--ink); color: var(--paper); border-radius: var(--r); padding: 20px 22px;
  font: 500 17px/1.45 var(--f-body);
}
.path__quote b { color: var(--sun); font-weight: 600; }
@media (max-width: 920px) { .path { grid-template-columns: 1fr; } .path__media { aspect-ratio: 4/3; order: -1; } }

/* ---------- Manifiesto ---------- */
.manifesto { position: relative; z-index: 2; min-height: 88vh; display: flex; align-items: center; isolation: isolate; overflow-x: clip; overflow-y: visible; }
.manifesto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.manifesto::after { content: ''; position: absolute; inset: 0; z-index: -1; background: radial-gradient(ellipse at 30% 50%, rgba(14,13,11,0.75), rgba(14,13,11,0.35) 70%); }
.manifesto blockquote { margin: 0; max-width: 1000px; }
.manifesto blockquote p { font: 800 clamp(38px, 5.4vw, 80px)/0.98 var(--f-display); text-transform: uppercase; margin: 0; }
.manifesto blockquote p em { font-style: normal; color: var(--sun); }
.manifesto .lede { margin-top: 28px; color: #ece7da; }
/* La Gladys estacionada en el desierto del manifiesto (Giaz, 20-oct-2026): recorte del vehículo con su sombra real,
   pegada al borde derecho (la foto corta la parte trasera ahí). Aparece cuando la sección llega al centro de la
   pantalla: entra un poco desde la derecha y se «enciende» de la penumbra al tono cálido de la escena; luego se
   mueve con el scroll algo más rápido que el fondo (parallax de primer plano, home.js). */
/* Estacionada sobre el fondo negro de abajo: baja hasta que toda su sombra queda en el negro (la sombra empieza al
   58 % del alto del recorte; el borde de la sección cae al 56 %). */
.manifesto .gladys { --gw: clamp(240px, 27vw, 400px); position: absolute; right: 0; bottom: calc(var(--gw) * 897 / 960 * -0.5); width: var(--gw); z-index: 1; pointer-events: none; will-change: transform; }
.manifesto .gladys::before { content: ''; position: absolute; inset: 8% -6% -4% 4%; z-index: -1;
  background: radial-gradient(ellipse 60% 52% at 56% 62%, rgba(255, 238, 205, 0.16), transparent 70%); opacity: 0; transition: opacity 2s var(--ease); }
.manifesto .gladys img { position: static; inset: auto; z-index: auto; display: block; width: 100%; height: auto; object-fit: contain;
  opacity: 0; transform: translate3d(56px, 10px, 0); filter: brightness(0.45) saturate(0.6) contrast(1.05);
  transition: opacity 1.4s var(--ease), transform 1.8s var(--ease), filter 2.2s var(--ease); }
.manifesto .gladys.is-in img { opacity: 1; transform: none; filter: brightness(0.8) saturate(0.72) contrast(0.95) sepia(0.12); }
.manifesto .gladys.is-in::before { opacity: 1; }
@media (max-width: 820px) {
  .manifesto { padding-bottom: 200px; }
  .manifesto .gladys { --gw: 64vw; }
}
.manifesto > .container { position: relative; z-index: 1; }

/* ---------- Seguridad ---------- */
.safety { display: grid; grid-template-columns: 1fr 1.4fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.safety__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; }
.safety__item { background: var(--ink-2); padding: 28px; display: grid; gap: 10px; align-content: start; }
.safety__item svg { width: 30px; height: 30px; color: var(--sun); }
.safety__item h3 { font: 800 22px/1 var(--f-display); text-transform: uppercase; margin: 6px 0 0; }
.safety__item p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.5; }
.safety__aside { position: sticky; top: calc(var(--header-h) + 32px); }
.safety__aside .lede { margin: 20px 0 28px; }
@media (max-width: 920px) { .safety { grid-template-columns: 1fr; } .safety__aside { position: static; } }
@media (max-width: 560px) { .safety__grid { grid-template-columns: 1fr; } }

/* ---------- Ciencia ---------- */
.science { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 0; border-radius: var(--r-lg); overflow: hidden; background: var(--ink-3); }
.science__media { position: relative; min-height: 520px; }
.science__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.science__media .pill { position: absolute; left: 20px; bottom: 20px; }
.science__body { padding: clamp(32px, 5vw, 64px); display: flex; flex-direction: column; justify-content: center; }
.science__body p { color: #d9d4c7; }
.partners { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 26px; }
.partners span { border: 1px solid var(--line-strong); border-radius: 999px; padding: 8px 14px; font: 600 13px/1 var(--f-display); letter-spacing: 0.08em; text-transform: uppercase; }
.tags { display: flex; flex-wrap: wrap; gap: 14px; font: 500 13px/1 var(--f-mono); color: var(--sun); }
@media (max-width: 920px) { .science { grid-template-columns: 1fr; } .science__media { min-height: 320px; } }

/* ---------- Stats ---------- */
.stats { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); }
.stat { padding: 28px 24px 8px 0; border-right: 1px solid var(--line); }
.stat + .stat { padding-left: 24px; }
.stat:last-child { border-right: 0; }
.stat b { display: block; font: 800 clamp(40px, 5vw, 68px)/0.9 var(--f-display); color: var(--sun); text-transform: uppercase; }
.stat span { display: block; margin-top: 10px; color: var(--muted); font-size: 15px; max-width: 22ch; }
@media (max-width: 860px) { .stats { grid-template-columns: repeat(2, 1fr); } .stat { border-right: 0; padding-left: 0 !important; border-bottom: 1px solid var(--line); padding-bottom: 24px; } }

/* ---------- Banner alquiler ---------- */
.rent {
  position: relative; border-radius: var(--r-lg); overflow: hidden; isolation: isolate;
  display: grid; grid-template-columns: 1.2fr 1fr; min-height: 460px;
  background: var(--sun); color: var(--sun-ink);
}
.rent__body { padding: clamp(32px, 5vw, 64px); display: flex; flex-direction: column; justify-content: center; }
.rent__body .eyebrow { color: var(--sun-ink); }
.rent__body p { font-size: 18px; max-width: 46ch; }
.rent__prices { display: flex; gap: 32px; margin: 8px 0 28px; flex-wrap: wrap; }
.rent__prices div { display: grid; gap: 4px; }
.rent__prices b { font: 800 52px/0.9 var(--f-display); }
.rent__prices small { font: 500 11px/1.3 var(--f-mono); letter-spacing: 0.08em; text-transform: uppercase; }
.rent__media { position: relative; }
.rent__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rent .fine { font-size: 13px; opacity: 0.7; margin-top: 16px; }
@media (max-width: 860px) { .rent { grid-template-columns: 1fr; } .rent__media { min-height: 260px; order: -1; } }

/* ---------- FAQ ---------- */
.faq-wrap { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: clamp(32px, 6vw, 96px); }
.faq { border-top: 1px solid var(--sand-line); }
.faq details { border-bottom: 1px solid var(--sand-line); }
.faq summary {
  list-style: none; cursor: pointer; padding: 22px 0;
  display: flex; justify-content: space-between; align-items: center; gap: 20px;
  font: 700 22px/1.15 var(--f-display); text-transform: uppercase; letter-spacing: 0.01em;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: ''; flex: none; width: 28px; height: 28px; border-radius: 50%;
  border: 1px solid var(--sand-line);
  background: linear-gradient(currentColor, currentColor) center / 12px 1.5px no-repeat, linear-gradient(currentColor, currentColor) center / 1.5px 12px no-repeat;
  transition: transform 0.3s var(--ease);
}
.faq details[open] summary::after { transform: rotate(45deg); background-color: var(--sun); border-color: var(--sun); }
.faq details p { margin: 0 0 24px; max-width: 62ch; color: var(--sand-muted); }
@media (max-width: 920px) { .faq-wrap { grid-template-columns: 1fr; } }

/* ---------- CTA tribu ---------- */
.join { text-align: center; position: relative; overflow: hidden; padding-bottom: calc(clamp(80px, 10vw, 140px) + 420px); }
/* El guía entre «Únete a la tribu» y el pie (Giaz, 20-oct-2026): asoma desde la línea que separa la sección del pie,
   que lo corta a la altura de la cadera, con un globo de texto que invita a sumarse. Un halo amarillo detrás lo
   separa del fondo oscuro. */
/* Centrado en la página: el conjunto foto + globo queda al medio (el globo sobresale 360 px − 16 % de la foto a la
   izquierda, por eso el desplazamiento) */
.join .guia { --gw: clamp(280px, 26vw, 390px); position: absolute; left: 50%; right: auto; bottom: 0; width: var(--gw); pointer-events: none;
  transform: translateX(calc(-50% + (360px - var(--gw) * 0.16) / 2)); }
/* Luz del ambiente: contraluz cálido de atardecer detrás (como el sol bajo del desierto) y el cuerpo un poco más
   oscuro y cálido que la foto original, que es de mediodía; abajo se funde con la sombra del pie. */
.join .guia::before { content: ''; position: absolute; left: -20%; right: -20%; top: -4%; height: 78%; z-index: -1;
  background: radial-gradient(closest-side at 55% 46%, rgba(245, 170, 60, 0.32), rgba(245, 150, 40, 0.1) 55%, transparent 100%); }
.guia__foto { display: block; width: 100%; height: auto; margin-bottom: -30%;
  filter: brightness(0.82) contrast(1.08) saturate(0.92) sepia(0.14) drop-shadow(0 0 1.5px rgba(255, 196, 110, 0.7));
  -webkit-mask-image: linear-gradient(to bottom, #000 72%, rgba(0, 0, 0, 0.35) 92%);
          mask-image: linear-gradient(to bottom, #000 72%, rgba(0, 0, 0, 0.35) 92%); }
/* Cierre: el texto en grande, en el lenguaje de los titulares */
.guia__globo { position: absolute; right: 84%; bottom: 8%; width: 360px; margin: 0; padding: 24px 26px; text-align: center; text-wrap: balance; pointer-events: auto;
  background: var(--paper); color: var(--ink); border-radius: 18px 18px 4px 18px; box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.7); transform: rotate(-2deg); }
.guia__globo span { display: block; font: 600 19px/1.3 var(--f-body); text-wrap: balance; }
.guia__globo b { display: block; margin-top: 10px; font: 800 34px/0.98 var(--f-display); text-transform: uppercase; text-wrap: balance; }
.guia__globo::after { content: ''; position: absolute; right: -11px; bottom: 14px; border: 12px solid transparent; border-left-color: var(--paper); border-right: 0; }
@media (max-width: 1100px) {
  .join { padding-bottom: 0; }
  .join .guia { position: relative; left: auto; right: auto; transform: none; margin: 56px var(--gutter) 0; width: auto; }
  .join .guia::before { left: 30%; right: -10%; }
  .guia__foto { width: min(320px, 64%); margin-left: auto; }
  .guia__globo { left: 0; right: auto; top: 2%; bottom: auto; width: min(240px, 56%); padding: 16px 18px; }
  .guia__globo span { font-size: 15px; }
  .guia__globo b { font-size: 24px; }
}
.join .display { max-width: 16ch; margin-inline: auto; }
/* Logo de Adventours en amarillo tras «Únete a la tribu», del mismo alto que las mayúsculas (Giaz, 20-oct-2026) */
.logo-tribu { display: inline-block; height: 1.06em; aspect-ratio: 690 / 185; vertical-align: -0.2em; background: var(--sun);
  -webkit-mask: url(../img/logo-adventours-blanco.png) center / contain no-repeat; mask: url(../img/logo-adventours-blanco.png) center / contain no-repeat; }
.join .lede { margin: 22px auto 34px; }
.join-form { display: flex; gap: 10px; max-width: 560px; margin: 0 auto; }
.input {
  flex: 1; min-height: 52px; padding: 0 20px; border-radius: var(--r-btn);
  border: 1px solid var(--line-strong); background: rgba(255,255,255,0.04); color: var(--paper);
  font: 400 16px var(--f-body);
}
.input::placeholder { color: var(--muted); }
.input:focus { outline: none; border-color: var(--sun); }
@media (max-width: 560px) { .join-form { flex-direction: column; } }

/* ---------- Footer ---------- */
.site-footer { background: #090807; border-top: 1px solid var(--line); padding: 72px 0 64px; font-size: 15px; }
.footer-grid { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 40px; }
.footer-brand img { height: 40px; width: auto; margin-bottom: 18px; }
.footer-brand p { color: var(--muted); max-width: 32ch; margin: 0 0 20px; }
.site-footer h4 { font: 500 12px/1 var(--f-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); margin: 0 0 16px; }
.site-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.site-footer ul a:hover { color: var(--sun); }
.socials { display: flex; gap: 8px; flex-wrap: wrap; }
.socials a { border: 1px solid var(--line-strong); border-radius: var(--r-btn); padding: 7px 12px; font: 500 11px/1 var(--f-mono); letter-spacing: 0.08em; text-transform: uppercase; }
.socials a:hover { border-color: var(--sun); color: var(--sun); }
.footer-bottom { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-top: 56px; padding-top: 24px; border-top: 1px solid var(--line); color: var(--muted); font-size: 13px; }
.footer-bottom a { text-decoration: underline; text-underline-offset: 3px; }
.footer-legal { display: flex; align-items: center; gap: 20px 28px; flex-wrap: wrap; margin-top: 48px; }
.footer-legal p { margin: 0; color: var(--muted); font-size: 13px; max-width: 58ch; }
.reclamaciones { display: inline-flex; align-items: center; gap: 12px; padding: 10px 18px 10px 12px; border: 1px solid var(--line-strong); border-radius: var(--r-btn); transition: border-color 0.2s, color 0.2s; }
.reclamaciones:hover { border-color: var(--sun); }
.reclamaciones__icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: var(--r-btn); background: var(--sun); color: var(--sun-ink); }
.reclamaciones__icon svg { width: 22px; height: 22px; }
.reclamaciones b { display: block; font: 700 16px/1.1 var(--f-display); letter-spacing: 0.06em; text-transform: uppercase; }
.reclamaciones small { display: block; margin-top: 3px; font: 500 11px/1 var(--f-mono); letter-spacing: 0.06em; color: var(--muted); }
.footer-legal + .footer-bottom { margin-top: 32px; }

/* ---------- Libro de Reclamaciones (Ley 29571; D.S. 011-2011-PCM y modificatorias) ---------- */
.lr { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 40px; align-items: start; padding-bottom: clamp(80px, 10vw, 120px); }
.lr-hoja { background: var(--ink-2); border: 1px solid var(--line); border-radius: var(--r); padding: clamp(22px, 3.5vw, 40px); }
.lr-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; padding-bottom: 22px; border-bottom: 1px dashed var(--line-strong); }
.lr-kicker { display: block; font: 500 11px/1 var(--f-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--sun); margin-bottom: 10px; }
.lr-num { display: block; font: 800 clamp(26px, 3vw, 34px)/1 var(--f-display); letter-spacing: 0.02em; }
.lr-num-nota { display: block; margin-top: 6px; color: var(--muted); font-size: 13px; }
.lr-fecha { text-align: right; } .lr-fecha b { font: 700 20px/1 var(--f-display); letter-spacing: 0.04em; }
.lr-proveedor { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 24px; margin: 22px 0 8px; }
.lr-proveedor div { display: grid; gap: 4px; } .lr-proveedor__full { grid-column: 1 / -1; }
.lr-proveedor dt { font: 500 11px/1 var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }
.lr-proveedor dd { margin: 0; font-weight: 600; }
.lr-menor[hidden] { display: none; }
.lr-hecho .lr-num-nota { margin: -4px 0 12px; }
.lr-pendiente { color: var(--lvl-2); font-weight: 500; font-style: italic; }
.lr-bloque { padding-top: 30px; margin-top: 30px; border-top: 1px solid var(--line); }
.lr-bloque h2 { display: flex; align-items: baseline; gap: 12px; margin: 0 0 20px; font: 700 clamp(20px, 2vw, 24px)/1.15 var(--f-display); letter-spacing: 0.02em; text-transform: uppercase; }
.lr-bloque h2 span { font: 500 12px/1 var(--f-mono); letter-spacing: 0.1em; color: var(--sun); }
.lr-bloque--proveedor p { margin: 0; color: var(--muted); }
.lr-bloque--proveedor { opacity: 0.85; }
.lr-def { margin: 12px 0 0; font-size: 14px; color: var(--muted); }
.lr-def b { color: var(--paper); }
.lr-check { display: flex; gap: 12px; align-items: flex-start; cursor: pointer; font-size: 15px; }
.lr-check input { width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--sun); flex: none; }
.lr-final { display: grid; gap: 24px; justify-items: start; padding-top: 30px; margin-top: 30px; border-top: 1px solid var(--line); }
.lr-final .lr-check { color: var(--muted); font-size: 14px; }
.lr-aside { position: sticky; top: calc(var(--header-h) + 24px); display: grid; gap: 20px; }
.lr-aviso { display: grid; justify-items: start; gap: 10px; padding: 24px; border-radius: var(--r); background: var(--sun); color: var(--sun-ink); }
.lr-aviso__icon svg { width: 40px; height: 40px; }
.lr-aviso b { font: 800 24px/1 var(--f-display); text-transform: uppercase; letter-spacing: 0.02em; }
.lr-aviso p { margin: 0; font-size: 15px; }
.lr-notas { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; font-size: 14px; color: var(--muted); }
.lr-notas li { display: flex; gap: 12px; } .lr-notas b { color: var(--paper); }
.lr-notas svg { width: 20px; height: 20px; flex: none; color: var(--sun); margin-top: 1px; }
.lr-hecho { display: grid; justify-items: start; gap: 6px; }
.lr-hecho h2 { margin: 0 0 8px; }
.lr-hecho p { margin: 0 0 18px; color: #d9d4c7; max-width: 56ch; }
.lr-hecho__icon { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--sun); color: var(--sun-ink); margin-bottom: 14px; }
.lr-hecho__icon svg { width: 28px; height: 28px; }
.lr-hecho__acciones { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
@media (max-width: 960px) { .lr { grid-template-columns: 1fr; } .lr-aside { position: static; order: -1; } }
@media (max-width: 560px) { .lr-head { flex-direction: column; } .lr-fecha { text-align: left; } .lr-proveedor { grid-template-columns: 1fr; } }
@media print { .site-top, .site-footer, .lr-aside, .mock-badge, .cfg-hero, .lr-hecho__acciones { display: none !important; } body { background: #fff; color: #000; } .lr-hoja { border-color: #000; background: #fff; } }
@media (max-width: 860px) { .footer-grid { grid-template-columns: 1fr 1fr; } .footer-brand { grid-column: 1 / -1; } }

/* ---------- Toast + sello mockup ---------- */
.toast {
  position: fixed; left: 50%; bottom: 24px; z-index: 90;
  transform: translate(-50%, calc(100% + 40px)); visibility: hidden; transition: transform 0.4s var(--ease), visibility 0.4s;
  background: var(--paper); color: var(--ink); border-radius: 999px; padding: 14px 22px;
  font: 600 15px/1.3 var(--f-body); box-shadow: 0 12px 40px rgba(0,0,0,0.4);
  display: flex; align-items: center; gap: 10px; max-width: calc(100vw - 32px);
}
.toast.is-on { transform: translate(-50%, 0); visibility: visible; }
.toast::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--sun-deep); flex: none; }
.mock-badge {
  position: fixed; left: 16px; bottom: 16px; z-index: 40;
  font: 500 10px/1 var(--f-mono); letter-spacing: 0.12em; text-transform: uppercase;
  background: rgba(14,13,11,0.8); border: 1px dashed var(--line-strong); color: var(--muted);
  padding: 8px 10px; border-radius: 999px; backdrop-filter: blur(6px);
}

/* ---------- Reveal ---------- */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.9s var(--ease), transform 0.9s var(--ease); }
.reveal.is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
  .reveal { opacity: 1; transform: none; }
}

/* =========================================================
   Página de experiencia
   ========================================================= */
.xp-hero { position: relative; min-height: 78vh; display: flex; align-items: flex-end; padding: calc(var(--header-h) + var(--announce-h, 0px) + 60px) 0 40px; isolation: isolate; overflow: hidden; }
.xp-hero img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.xp-hero::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, var(--ink) 0%, rgba(14,13,11,0.55) 45%, rgba(14,13,11,0.35) 100%); }
.crumbs { display: flex; gap: 8px; align-items: center; font: 500 12px/1 var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); margin-bottom: 22px; flex-wrap: wrap; }
.crumbs a:hover { color: var(--sun); }
.xp-hero h1 { font-size: clamp(56px, 9vw, 140px); }
.xp-hero .lede { margin: 18px 0 0; color: #ece7da; }
.xp-hero__pills { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 18px; }

.facts { display: grid; grid-template-columns: repeat(5, 1fr); border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--ink-2); margin-top: 36px; }
.fact { padding: 18px 20px; border-right: 1px solid var(--line); display: grid; gap: 6px; }
.fact:last-child { border-right: 0; }
.fact small { font: 500 11px/1 var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }
.fact b { font: 700 19px/1.15 var(--f-display); text-transform: uppercase; letter-spacing: 0.02em; }
@media (max-width: 920px) { .facts { grid-template-columns: repeat(2, 1fr); } .fact { border-bottom: 1px solid var(--line); } .fact:nth-child(2n) { border-right: 0; } .fact:last-child { grid-column: 1 / -1; border-bottom: 0; } }

.xp-layout { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: clamp(32px, 5vw, 72px); align-items: start; padding-block: clamp(56px, 7vw, 96px); }
.xp-block { padding-bottom: 56px; margin-bottom: 56px; border-bottom: 1px solid var(--line); }
.xp-block:last-child { border-bottom: 0; margin-bottom: 0; }
.xp-block > h2 { margin-bottom: 24px; }
.xp-block p { color: #d9d4c7; }
.draft-note { display: flex; gap: 10px; align-items: center; padding: 12px 16px; border: 1px dashed var(--line-strong); border-radius: var(--r); color: var(--muted); font-size: 14px; margin-bottom: 24px; }

.modules { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-top: 24px; }
.modules div { border: 1px solid var(--line); border-radius: var(--r); padding: 16px 18px; display: flex; gap: 12px; align-items: center; font: 700 17px/1.1 var(--f-display); text-transform: uppercase; }
.modules span { font: 500 11px/1 var(--f-mono); color: var(--sun); }

.day { margin-bottom: 36px; }
.day__head { display: flex; align-items: baseline; gap: 14px; margin-bottom: 8px; }
.day__head h3 { font: 800 30px/1 var(--f-display); text-transform: uppercase; margin: 0; color: var(--sun); }
.day__intro { color: var(--muted) !important; margin: 0 0 18px; }
.timeline { list-style: none; margin: 0; padding: 0; position: relative; }
.timeline::before { content: ''; position: absolute; left: 70px; top: 8px; bottom: 8px; width: 1px; background: var(--line-strong); }
.timeline li { display: grid; grid-template-columns: 56px 1fr; gap: 30px; padding: 10px 0; position: relative; }
.timeline li::before { content: ''; position: absolute; left: 66px; top: 17px; width: 9px; height: 9px; border-radius: 50%; background: var(--ink); border: 2px solid var(--sun); }
.timeline time { font: 500 14px/1.6 var(--f-mono); color: var(--muted); }
.timeline h4 { margin: 0; font: 700 21px/1.2 var(--f-display); text-transform: uppercase; letter-spacing: 0.02em; }
.timeline p { margin: 4px 0 0; font-size: 16px; color: var(--muted) !important; }

.lists { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.list-card { border: 1px solid var(--line); border-radius: var(--r-lg); padding: 24px; }
.list-card h3 { font: 800 22px/1 var(--f-display); text-transform: uppercase; margin: 0 0 16px; display: flex; align-items: center; gap: 10px; }
.list-card ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.list-card li { display: grid; grid-template-columns: 20px 1fr; gap: 10px; font-size: 16px; color: #d9d4c7; }
.list-card li svg { width: 18px; height: 18px; margin-top: 3px; }
.list-card--in li svg { color: var(--sun); }
.list-card--out li svg { color: var(--muted); }
@media (max-width: 640px) { .lists, .modules { grid-template-columns: 1fr; } }

.reqs { display: grid; gap: 12px; }
.req { display: grid; grid-template-columns: 44px 1fr; gap: 16px; padding: 18px; border-radius: var(--r); background: var(--ink-2); }
.req span { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,204,0,0.12); color: var(--sun); font: 800 18px/1 var(--f-display); }
.req h4 { margin: 0 0 4px; font: 700 20px/1.1 var(--f-display); text-transform: uppercase; }
.req p { margin: 0; font-size: 15px; color: var(--muted) !important; }

.map-card { position: relative; border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--line); background: var(--ink-2); height: clamp(260px, 32vw, 380px); }
.map-card::before { content: ''; position: absolute; inset: 0; background-image: var(--topo); background-size: 520px; opacity: 0.16; }
.map-card__pin { position: absolute; left: 52%; top: 48%; transform: translate(-50%, -100%); color: var(--sun); }
.map-card__pin svg { width: 40px; height: 40px; filter: drop-shadow(0 6px 12px rgba(0,0,0,0.6)); }
.map-card__info { position: absolute; left: 16px; bottom: 16px; right: 16px; display: flex; justify-content: space-between; align-items: end; gap: 12px; flex-wrap: wrap; background: rgba(14,13,11,0.82); backdrop-filter: blur(8px); border-radius: var(--r); padding: 14px 16px; }
.map-card__info b { font: 700 18px/1.2 var(--f-display); text-transform: uppercase; display: block; }
.map-card__info span { color: var(--muted); font-size: 14px; }

/* Booking */
.booking { position: sticky; top: calc(var(--header-h) + 24px); border: 1px solid var(--line-strong); border-radius: var(--r-lg); background: var(--ink-2); overflow: hidden; }
.booking__head { padding: 22px 24px; border-bottom: 1px solid var(--line); }
.booking__head small { font: 500 11px/1 var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }
.booking__head .price { font: 800 48px/1 var(--f-display); margin-top: 6px; }
.booking__head .price span { font: 500 13px/1 var(--f-mono); color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; }
.booking__body { padding: 20px 24px 24px; display: grid; gap: 18px; }
.field-label { font: 500 11px/1 var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; display: block; }
.date-opts { display: grid; gap: 8px; }
.date-opt { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid var(--line-strong); border-radius: var(--r); background: none; text-align: left; width: 100%; }
.date-opt[aria-pressed='true'] { border-color: var(--sun); background: rgba(255,204,0,0.08); }
.date-opt b { font: 700 18px/1 var(--f-display); text-transform: uppercase; }
.date-opt span { color: var(--muted); font-size: 13px; display: block; margin-top: 4px; }
.date-opt .cupos { margin-left: 8px; font: 600 12px/1 var(--f-body); font-style: normal; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted); vertical-align: 2px; white-space: nowrap; }
.date-opt .cupos--ultimos { color: var(--warn); font-weight: 800; }
.date-opt .tick { margin-left: auto; width: 18px; height: 18px; border-radius: 50%; border: 1px solid var(--line-strong); flex: none; }
.date-opt[aria-pressed='true'] .tick { border: 5px solid var(--sun); }
.date-opt:disabled { opacity: 0.5; cursor: not-allowed; }
.ticket { display: grid; grid-template-columns: 1fr auto; gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--line); }
.ticket:last-child { border-bottom: 0; }
.ticket b { font: 700 17px/1.1 var(--f-display); text-transform: uppercase; letter-spacing: 0.02em; display: block; }
.ticket small { color: var(--muted); font-size: 13px; }
.ticket .t-price { font: 600 14px/1 var(--f-mono); color: var(--sun); display: block; margin-top: 6px; }
.stepper { display: inline-flex; align-items: center; border: 1px solid var(--line-strong); border-radius: var(--r-btn); }
.stepper button { width: 34px; height: 34px; border: 0; background: none; border-radius: var(--r-btn); font-size: 18px; line-height: 1; }
.stepper button:hover { color: var(--sun); }
.stepper output { min-width: 22px; text-align: center; font: 600 15px/1 var(--f-mono); }
.total { display: flex; justify-content: space-between; align-items: baseline; padding-top: 16px; border-top: 1px solid var(--line-strong); }
.total span { font: 500 12px/1 var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }
.total b { font: 800 36px/1 var(--f-display); }
.total { align-items: center; gap: 12px; }
.total b { margin-left: auto; }
/* Reserva: arriba el selector «US$ | S/»; debajo, en su propia línea, «Total» delante del monto, para que los totales
   grandes (p. ej. Fishing Camp con extras) no se monten sobre el selector ni se corten (Giaz, 22-oct-2026). */
.booking .total { flex-direction: column; align-items: flex-end; gap: 12px; }
.booking .total__fila { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 12px; width: 100%; }
.booking .total__fila #total { margin-left: 0; text-align: right; overflow-wrap: anywhere; }
.moneda { display: inline-flex; padding: 3px; gap: 2px; border: 1px solid var(--line-strong); border-radius: var(--r-btn); }
.moneda button { min-width: 44px; height: 30px; padding: 0 10px; border: 0; border-radius: 3px; background: none; color: var(--muted); font: 700 13px/1 var(--f-mono); letter-spacing: 0.04em; }
.moneda button[aria-pressed='true'] { background: var(--sun); color: var(--sun-ink); }
.total__tc { margin: -6px 0 0; text-align: right; font: 500 11px/1.3 var(--f-mono); color: var(--muted); }
.booking__fine { font-size: 13px; color: var(--muted); display: grid; gap: 6px; }
.booking__fine div { display: flex; gap: 8px; align-items: flex-start; }
.booking__fine svg { width: 15px; height: 15px; color: var(--sun); flex: none; margin-top: 2px; }

.mobile-book { display: none; }
@media (max-width: 1000px) {
  .xp-layout { grid-template-columns: minmax(0, 1fr); }
  .booking { position: static; }
  .mobile-book {
    display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 45;
    justify-content: space-between; align-items: center; gap: 16px;
    padding: 12px var(--gutter) calc(12px + env(safe-area-inset-bottom));
    background: rgba(14,13,11,0.94); backdrop-filter: blur(12px); border-top: 1px solid var(--line);
  }
  .mobile-book b { font: 800 26px/1 var(--f-display); }
  .mobile-book small { display: block; font: 500 10px/1 var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }
  .has-mobile-book .mock-badge { bottom: 84px; }
  .has-mobile-book .site-footer { padding-bottom: 100px; }
}

.related { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 1000px) { .related { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .related { grid-template-columns: 1fr; } }

/* =========================================================
   Configurador
   ========================================================= */
.cfg-hero { padding: calc(var(--header-h) + var(--announce-h, 0px) + 64px) 0 40px; position: relative; }
.cfg-hero .lede { margin-top: 20px; }
.cfg { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: clamp(32px, 5vw, 64px); align-items: start; padding-bottom: 120px; }
.progress { display: flex; gap: 6px; margin-bottom: 36px; }
.progress button { flex: 1; background: none; border: 0; padding: 0; text-align: left; display: grid; gap: 10px; }
.progress button::before { content: ''; height: 3px; border-radius: 3px; background: var(--line-strong); transition: background 0.3s; }
.progress button[data-state='done']::before, .progress button[data-state='current']::before { background: var(--sun); }
.progress button span { font: 500 11px/1.2 var(--f-mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
.progress button[data-state='current'] span { color: var(--paper); }
.progress button:disabled { cursor: default; }
@media (max-width: 640px) { .progress button span { display: none; } }

.cfg-step { display: none; }
.cfg-step.is-active { display: block; animation: stepIn 0.5s var(--ease); }
@keyframes stepIn { from { opacity: 0; transform: translateY(12px); } }
.cfg-step h2 { margin-bottom: 10px; }
.cfg-step > p { color: var(--muted); margin: 0 0 28px; }
.opt-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.opt-grid--3 { grid-template-columns: repeat(3, 1fr); }
.opt {
  text-align: left; border: 1px solid var(--line-strong); border-radius: var(--r-lg); background: var(--ink-2);
  padding: 20px; display: grid; gap: 6px; position: relative; transition: border-color 0.2s, background 0.2s;
}
.opt:hover { border-color: var(--paper); }
.opt[aria-pressed='true'] { border-color: var(--sun); background: rgba(255,204,0,0.08); }
.opt[aria-pressed='true']::after { content: ''; position: absolute; top: 16px; right: 16px; width: 20px; height: 20px; border-radius: 50%; background: var(--sun) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a1400' stroke-width='3'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center/12px no-repeat; }
.opt b { font: 800 22px/1 var(--f-display); text-transform: uppercase; }
.opt span { color: var(--muted); font-size: 15px; }
@media (max-width: 640px) { .opt-grid, .opt-grid--3 { grid-template-columns: 1fr; } }

.chips-lg { display: flex; flex-wrap: wrap; gap: 10px; }
.chip-lg {
  border: 1px solid var(--line-strong); background: none; border-radius: var(--r-btn); padding: 12px 18px;
  font: 600 16px/1 var(--f-display); letter-spacing: 0.06em; text-transform: uppercase;
}
.chip-lg:hover { border-color: var(--paper); }
.chip-lg[aria-pressed='true'] { background: var(--sun); color: var(--sun-ink); border-color: var(--sun); }

.notice { margin-top: 16px; padding: 14px 16px; border-radius: var(--r); background: rgba(200,89,43,0.12); border: 1px solid rgba(200,89,43,0.4); color: #f0c6b3; font-size: 15px; display: none; }
.notice.is-on { display: block; }
.notice a { color: var(--sun); text-decoration: underline; }

.fields { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.field { display: grid; gap: 8px; }
.field--full { grid-column: 1 / -1; }
.field label { font: 500 11px/1 var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }
.field input, .field select, .field textarea {
  width: 100%; min-height: 52px; padding: 14px 16px; border-radius: var(--r); border: 1px solid var(--line-strong);
  background: var(--ink-2); color: var(--paper); font: 400 16px var(--f-body);
}
.field textarea { min-height: 120px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--sun); }
.field input::-webkit-calendar-picker-indicator { filter: invert(0.8); }
@media (max-width: 640px) { .fields { grid-template-columns: 1fr; } }

.cfg-nav { display: flex; justify-content: space-between; gap: 12px; margin-top: 36px; padding-top: 24px; border-top: 1px solid var(--line); }

.summary { position: sticky; top: calc(var(--header-h) + 24px); border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--line-strong); background: var(--ink-2); }
.summary__media { aspect-ratio: 16/9; position: relative; }
.summary__media img { width: 100%; height: 100%; object-fit: cover; }
.summary__media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, var(--ink-2), transparent 60%); }
.summary__body { padding: 0 22px 22px; margin-top: -24px; position: relative; z-index: 1; }
.summary h3 { font: 800 28px/1 var(--f-display); text-transform: uppercase; margin: 0 0 16px; }
.summary dl { margin: 0; display: grid; gap: 12px; }
.summary dt { font: 500 11px/1 var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); margin-bottom: 4px; }
.summary dd { margin: 0; font-size: 15px; }
.summary dd.empty { color: var(--muted); font-style: italic; }
.summary__foot { border-top: 1px solid var(--line); padding: 16px 22px; display: flex; gap: 10px; align-items: center; font-size: 14px; color: var(--muted); }
.summary__foot svg { width: 18px; height: 18px; color: var(--sun); flex: none; }
@media (max-width: 1000px) { .cfg { grid-template-columns: minmax(0, 1fr); } .summary { position: static; } }

.done { text-align: center; padding: 40px 0; }
.done__icon { width: 84px; height: 84px; border-radius: 50%; background: var(--sun); color: var(--sun-ink); display: grid; place-items: center; margin: 0 auto 28px; }
.done__icon svg { width: 40px; height: 40px; }
.done .lede { margin: 18px auto 32px; }
@media (max-width: 640px) { .mock-badge { display: none; } }

/* Requisito «con reductora»: triángulo de advertencia en ámbar (Giaz, 20-oct-2026) */
.veh-req { display: flex; align-items: center; gap: 6px; margin-top: 6px; color: var(--lvl-2); font-weight: 700; white-space: nowrap; text-transform: uppercase; }
.tk-etqs .veh-req { flex-basis: 100%; margin-top: 2px; font: 700 13px/1 var(--f-mono); letter-spacing: 0.04em; }
.veh-req svg { width: 1.25em; height: 1.25em; flex: none; }
.exp-card .veh-req { color: #9a5b00; }
.exp-card[style*="paper"] .veh-req { color: var(--lvl-2); }
/* En Próximas salidas: «Requiere reductora» y el triángulo en amarillo de advertencia (Giaz, 20-oct-2026) */
.ev-ticket .veh-req, .event-row__veh .veh-req { color: var(--warn); }
.ev-ticket .veh-req svg, .event-row__veh .veh-req svg { color: var(--warn); }
/* Triángulo junto al nombre de la salida, del alto de las mayúsculas del título, en amarillo de advertencia */
.tit-warn { display: inline-block; margin-left: 0.28em; color: var(--warn); vertical-align: -0.06em; line-height: 0; }
.tit-warn svg { width: 0.98em; height: 0.89em; }
.exp-card h3 .tit-warn svg, .step h3 .tit-warn svg, .site-footer .tit-warn svg { width: 0.9em; height: 0.82em; }
.announce .tit-warn svg { width: 1.1em; height: 1em; }
.unit-pax { font-weight: 700; color: var(--paper); white-space: nowrap; }
.booking__regla { margin: 0 0 10px; font-size: 14px; color: var(--muted); }
.stepper button:disabled { opacity: 0.3; cursor: not-allowed; }

/* Ventana flotante de ingreso (demo) */
.ingreso { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; padding: 16px; }
.ingreso[hidden] { display: none; }
.ingreso__fondo { position: absolute; inset: 0; background: rgba(9,8,7,0.72); backdrop-filter: blur(6px); animation: ingFade 0.25s var(--ease); }
.ingreso__caja { position: relative; width: min(420px, 100%); max-height: calc(100svh - 32px); overflow-y: auto; display: grid; gap: 16px;
  padding: 32px 28px 24px; background: var(--ink-2); border: 1px solid var(--line-strong); border-radius: var(--r-lg);
  box-shadow: 0 40px 90px -30px rgba(0,0,0,0.8); animation: ingSube 0.35s var(--ease); }
.ingreso__cerrar { position: absolute; top: 14px; right: 14px; width: 36px; height: 36px; }
.ingreso__ico { color: var(--sun); } .ingreso__ico svg { width: 36px; height: 36px; }
.ingreso__marca { display: flex; align-items: center; gap: 14px; }
.ingreso__marca .ingreso__ico { display: inline-grid; padding-right: 14px; border-right: 1px solid var(--line-strong); }
.ingreso__marca img { height: 32px; width: auto; }
.ingreso h2 { margin: 0; font: 800 34px/1 var(--f-display); text-transform: uppercase; }
.ingreso__caja > p { margin: -6px 0 4px; color: var(--muted); font-size: 15px; }
.ingreso__fila { display: flex; justify-content: space-between; align-items: center; gap: 12px; font-size: 14px; }
.ingreso__fila a { color: var(--sun); text-decoration: underline; text-underline-offset: 3px; }
.ingreso__check { display: inline-flex; gap: 8px; align-items: center; color: var(--muted); cursor: pointer; }
.ingreso__check input { accent-color: var(--sun); width: 16px; height: 16px; }
.ingreso__alta { margin: 0; text-align: center; font-size: 14px; color: var(--muted); }
/* Pantalla de la cuenta (con sesión): ocupa toda la pantalla, fondo oscuro al 90 % */
.cuenta { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; padding: 16px;
  background: rgba(14, 13, 11, 0.9); backdrop-filter: blur(8px); animation: ingFade 0.3s var(--ease); }
.cuenta[hidden] { display: none; }
.cuenta__caja { position: relative; width: min(400px, 100%); display: grid; gap: 14px; justify-items: start; animation: ingSube 0.4s var(--ease); }
.cuenta__caja h2 { margin: 6px 0 0; font: 800 clamp(34px, 5vw, 48px)/1 var(--f-display); text-transform: uppercase; }
.cuenta__caja > p { margin: -6px 0 10px; color: var(--muted); font: 500 12px/1 var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; }
.cuenta__cerrar { position: fixed; top: 20px; right: 20px; }
.ingreso__demo { text-align: center; font: 500 11px/1.3 var(--f-mono); color: var(--muted); opacity: 0.8; }
@keyframes ingFade { from { opacity: 0; } }
@keyframes ingSube { from { opacity: 0; transform: translateY(16px) scale(0.98); } }
@media (prefers-reduced-motion: reduce) { .ingreso__fondo, .ingreso__caja, .cuenta, .cuenta__caja { animation: none; } }
.ingreso .field input { background: var(--ink); }

/* Reserva de socios (solo con sesión): descuentos y pago con tokens, con la lógica del Core */
.socio { display: grid; gap: 12px; padding: 16px; border: 1px solid color-mix(in srgb, var(--sun) 45%, transparent); border-radius: var(--r); background: color-mix(in srgb, var(--sun) 6%, transparent); }
.socio[hidden], .socio__pago[hidden] { display: none; }
.socio__quien { display: flex; gap: 10px; align-items: center; }
.socio__quien svg { width: 26px; height: 26px; color: var(--sun); flex: none; }
.socio__quien b { display: block; font: 700 16px/1.1 var(--f-display); text-transform: uppercase; letter-spacing: 0.04em; }
.socio__quien small { display: block; margin-top: 3px; font: 500 11px/1.2 var(--f-mono); color: var(--muted); letter-spacing: 0.04em; text-transform: uppercase; }
.socio__desc { margin: 0; display: grid; gap: 6px; font-size: 14px; }
.socio__desc div { display: flex; justify-content: space-between; gap: 12px; }
.socio__desc dt { color: var(--muted); } .socio__desc dd { margin: 0; font-weight: 600; }
.socio__menos dd { color: var(--sun); }
.socio__ahorro { padding-top: 6px; border-top: 1px dashed var(--line-strong); }
.socio__ahorro dt, .socio__ahorro dd { color: var(--paper); font-weight: 700; }
.socio__tk { display: flex; justify-content: space-between; align-items: center; gap: 12px; font-weight: 600; font-size: 15px; }
.socio__tk small { display: block; font: 500 11px/1.3 var(--f-mono); color: var(--muted); font-weight: 400; }
.socio__nota { margin: 0; font-size: 13px; color: var(--muted); }
.socio__pago { margin: -6px 0 0; font-size: 14px; color: var(--muted); }
.socio__pago b { color: var(--sun); }

/* Cuenta de prueba del demo: membresía, rango y saldo de tokens */
.demo { margin: 0; padding: 14px; border: 1px dashed var(--line-strong); border-radius: var(--r); display: grid; gap: 8px; min-width: 0; }
.demo legend { padding: 0 6px; font: 500 11px/1 var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--sun); }
.demo .field-label { margin: 4px 0 0; }
.demo__chips { gap: 6px; }
.demo__chips .chip-lg { padding: 8px 12px; font-size: 13px; }
.demo__rango { width: 100%; min-height: 40px; padding: 8px 12px; border-radius: var(--r-btn); border: 1px solid var(--line-strong); background: var(--ink); color: var(--paper); font: 400 15px var(--f-body); }
.cuenta__demo { width: 100%; }
.cuenta__caja { width: min(460px, 100%); max-height: calc(100svh - 32px); overflow-y: auto; }

/* Precio con descuento: el de lista tachado y más chico, al lado del precio final */
.precio s, #total s, .t-price s { font-size: 0.6em; font-weight: 600; opacity: 0.55; margin-right: 0.35em; text-decoration-thickness: 2px; vertical-align: 0.15em; }
.booking__head .price .precio { font: inherit; color: inherit; text-transform: none; letter-spacing: normal; }
.booking__head .price .precio s { font: 600 0.5em/1 var(--f-display); color: var(--muted); letter-spacing: normal; }
.booking__head .price > span:not(.precio) { white-space: nowrap; }
@media (min-width: 600px) and (max-width: 1100px) { .guia__globo { left: auto; right: calc(min(320px, 64%) - 24px); top: 10%; } }

.guia__foto { position: relative; z-index: 1; }
/* La Gladys estacionada en el negro nunca tapa las cifras: la sección de abajo deja espacio para sus ruedas
   (0,382 × ancho de la Gladys es lo que baja por debajo del borde) más un margen */
.manifesto + .section--tight { padding-top: max(clamp(56px, 7vw, 96px), calc(clamp(240px, 27vw, 400px) * 0.382 + 36px)); }
@media (max-width: 820px) { .manifesto + .section--tight { padding-top: calc(64vw * 0.382 + 32px); } }

/* Tienda Adventours (solo miembros activos) */
.nav-shop { color: var(--sun) !important; }
.tienda { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 40px; align-items: start; padding-bottom: clamp(80px, 10vw, 120px); }
.tienda__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 24px; }
.producto { display: flex; flex-direction: column; background: var(--ink-2); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; }
.producto__img { aspect-ratio: 1; background: #f4f1ea; display: grid; place-items: center; }
.producto__img img { width: 100%; height: 100%; object-fit: contain; }
.producto__sin { color: var(--ink); opacity: 0.35; } .producto__sin svg { width: 96px; height: 96px; }
.producto__cuerpo { padding: 18px 20px 20px; display: grid; gap: 8px; flex: 1; }
.producto__cat { font: 500 11px/1 var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--sun); }
.producto h2 { margin: 0; font: 800 24px/1.05 var(--f-display); text-transform: uppercase; }
.producto p { margin: 0; color: var(--muted); font-size: 15px; }
.producto__pie { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: auto; padding-top: 12px; }
.producto__pie b { font: 800 28px/1 var(--f-display); }
.tienda__carrito { position: sticky; top: calc(var(--header-h) + 24px); display: grid; gap: 14px; padding: 22px; border: 1px solid var(--line-strong); border-radius: var(--r-lg); background: var(--ink-2); }
.tienda__carrito h2 { margin: 0; font: 800 26px/1 var(--f-display); text-transform: uppercase; }
.tienda__carrito ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; font-size: 14px; }
.tienda__carrito li { display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: center; }
.tienda__quitar { width: 28px; height: 28px; border: 1px solid var(--line-strong); border-radius: var(--r-btn); background: none; color: var(--paper); }
@media (max-width: 960px) { .tienda { grid-template-columns: 1fr; } .tienda__carrito { position: static; } }

.tienda__miembro { color: var(--sun); }
.producto[hidden] { display: none; }
.producto__img { position: relative; overflow: hidden; }
.producto__cinta { position: absolute; top: 42px; right: -80px; width: 300px; transform: rotate(45deg); background: var(--sun); color: var(--sun-ink);
  display: flex; justify-content: center; align-items: center; text-align: center; white-space: nowrap;
  /* «Exclusivo miembros» (Giaz, 26-oct-2026): fondo amarillo, letra más chica y la regla de centrado de las cintas */
  font: 800 16px/1 var(--f-display); letter-spacing: 0.04em; text-transform: uppercase; padding: 0.5em 0 0.58em; box-shadow: 0 6px 16px -8px rgba(0, 0, 0, 0.5); }
.producto--campana { border-color: color-mix(in srgb, var(--sun) 60%, transparent); }
.producto__stock { color: var(--paper) !important; font-size: 14px !important; }
.producto__stock b { color: #ff5aa5; font: 800 18px/1 var(--f-display); }
.producto__precio { display: grid; gap: 4px; }
.producto__precio b { font: 800 28px/1 var(--f-display); }
.producto__precio s { font-size: 0.55em; opacity: 0.55; margin-right: 6px; vertical-align: 0.2em; }
.producto__precio small { font: 500 10px/1 var(--f-mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--sun); }
.producto__fuente { font: 500 11px/1 var(--f-mono); color: var(--muted); text-decoration: underline; text-underline-offset: 3px; }
.tienda__nota { margin: 0; font-size: 14px; color: var(--muted); }
.producto__stock--cerrada { display: flex; gap: 8px; align-items: center; color: var(--muted) !important; }
.producto__stock--cerrada svg { width: 16px; height: 16px; color: #ff5aa5; flex: none; }

.tienda__nav { display: grid; grid-template-columns: minmax(0, 1fr) 190px 210px 200px; gap: 10px; margin-top: 28px; max-width: 1100px; }
.tienda__buscar { display: flex; align-items: center; gap: 10px; padding: 0 14px; border: 1px solid var(--line-strong); border-radius: var(--r-btn); background: var(--ink-2); }
.tienda__buscar:focus-within { border-color: var(--sun); }
.tienda__buscar svg { width: 18px; height: 18px; color: var(--muted); flex: none; }
.tienda__buscar input { flex: 1; min-height: 48px; border: 0; background: none; color: var(--paper); font: 400 16px var(--f-body); outline: none; }
.tienda__nav select { min-height: 50px; padding: 0 12px; border: 1px solid var(--line-strong); border-radius: var(--r-btn); background: var(--ink-2); color: var(--paper); font: 400 15px var(--f-body); }
.tienda__cats { margin-top: 14px; gap: 8px; }
.tienda__cats .chip-lg { padding: 9px 14px; font-size: 13px; }
.tienda__cats .count { opacity: 0.55; margin-left: 4px; font: 500 11px var(--f-mono); }
.tienda__vacio { grid-column: 1; margin: 0; color: var(--muted); }
@media (max-width: 760px) { .tienda__nav { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .tienda__buscar { grid-column: 1 / -1; } }
/* En celular el buscador y los selectores se achican al ancho de la pantalla (antes empujaban la página hacia el costado) */
.tienda__nav > *, .tienda__nav select, .tienda__buscar input { min-width: 0; max-width: 100%; }
.producto:has(.producto__merch) .producto__img { background: var(--ink); }
.producto__merch { width: 70%; aspect-ratio: 690 / 185; background: var(--sun); -webkit-mask: url(../img/logo-adventours-blanco.png) center / contain no-repeat; mask: url(../img/logo-adventours-blanco.png) center / contain no-repeat; }
.socio__tk { padding: 12px; margin: 0 -4px; border-radius: var(--r-btn); background: color-mix(in srgb, var(--sun) 12%, transparent); border: 1px solid color-mix(in srgb, var(--sun) 40%, transparent); }
.socio__tk > span { display: flex; gap: 10px; align-items: flex-start; }
.socio__tk > span > svg { width: 22px; height: 22px; color: var(--sun); flex: none; margin-top: 1px; }
.socio__tk--off { opacity: 0.6; }
.socio__pago.con-icono { display: flex; gap: 8px; align-items: flex-start; }
.socio__pago > svg { width: 18px; height: 18px; color: var(--sun); flex: none; margin-top: 2px; }
.link-btn { padding: 0; border: 0; background: none; color: var(--sun); font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }

/* Alquiler de camioneta en la reserva */
.alquiler__ops { display: grid; gap: 8px; }
.alquiler__op { display: grid; gap: 3px; text-align: left; padding: 12px 14px; border: 1px solid var(--line-strong); border-radius: var(--r); background: none; color: var(--paper); cursor: pointer; }
.alquiler__op b { font: 700 16px/1.1 var(--f-display); text-transform: uppercase; letter-spacing: 0.03em; }
.alquiler__op span { font-size: 13px; color: var(--muted); }
.alquiler__op[aria-pressed='true'] { border-color: var(--sun); background: color-mix(in srgb, var(--sun) 10%, transparent); }
.alquiler__nota { margin: -6px 0 0; font-size: 14px; color: var(--muted); }
.alquiler__nota b { color: var(--paper); }

/* Ficha del miembro: registro por invitación y «Actualizar mi perfil» (registro.html, Giaz 20-oct-2026) */
#reg .progress { flex-wrap: wrap; row-gap: 14px; }
#reg .progress button { min-width: 96px; }
@media (max-width: 640px) {
  #reg .progress button { min-width: 0; }
  #reg .progress button:not([data-state='current']) span { font-size: 0; }
  #reg .progress button:not([data-state='current']) span::first-letter { font-size: 11px; }
}
.reg-aviso { margin-top: 18px; font: 500 12px/1.4 var(--f-mono); color: var(--muted); }
.reg-invita { display: flex; gap: 12px; align-items: center; margin-bottom: 20px; padding: 14px 16px; border-radius: var(--r); background: rgba(255,204,0,0.1); border: 1px solid rgba(255,204,0,0.4); font-size: 15px; }
.reg-invita svg { width: 22px; height: 22px; color: var(--sun); flex: none; }
.reg-invita-campo { margin-bottom: 16px; }
.field label i, .field-label i { font-style: normal; text-transform: none; letter-spacing: 0; opacity: 0.8; }
.field[hidden] { display: none; }
.reg-codigo { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; }
.reg-codigo input { font: 600 26px/1 var(--f-mono); letter-spacing: 0.3em; width: 10ch; text-align: center; }
.reg-demo { margin: 16px 0 0; font: 500 12px/1.4 var(--f-mono); color: var(--sun); }
.reg-ayuda { margin: 20px 0 0; color: var(--muted); font-size: 15px; }
.reg-ayuda a { color: var(--sun); text-decoration: underline; }
.reg-estado { color: var(--sun); }
.reg-nav-der { display: flex; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }
.reg-tokens { display: flex; align-items: baseline; gap: 10px; margin-bottom: 16px; }
.reg-tokens svg { width: 26px; height: 26px; color: var(--sun); align-self: center; }
.reg-tokens b { font: 800 44px/1 var(--f-display); color: var(--sun); }
.reg-tokens span { color: var(--muted); font-size: 14px; }
.reg-lista { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 8px; }
.reg-lista li { display: flex; align-items: center; gap: 10px; font-size: 15px; color: var(--muted); }
.reg-lista li span { width: 20px; height: 20px; border-radius: 50%; border: 1px solid var(--line-strong); display: grid; place-items: center; flex: none; }
.reg-lista li small { margin-left: auto; font: 500 11px/1 var(--f-mono); }
.reg-lista li.is-ok { color: var(--paper); }
.reg-lista li.is-ok span { background: var(--sun); border-color: var(--sun); color: var(--sun-ink); }
.reg-lista li.is-ok span svg { width: 12px; height: 12px; }
.reg-lista li.is-ok small { color: var(--sun); }
.reg-nota { margin: 8px 0 0; font-size: 13px; color: var(--muted); }
.reg-historial { padding-bottom: 120px; }
.reg-historial[hidden] { display: none; }
.reg-historial h2 { margin: 8px 0 24px; }
.reg-hist { list-style: none; margin: 0 0 20px; padding: 0; display: grid; gap: 12px; max-width: 860px; }
.reg-hist > li { border: 1px solid var(--line); border-radius: var(--r); padding: 16px 18px; background: var(--ink-2); }
.reg-hist__cab { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; margin-bottom: 10px; }
.reg-hist__cab time { font: 500 12px/1 var(--f-mono); color: var(--muted); }
.reg-hist__origen { font: 500 11px/1 var(--f-mono); letter-spacing: 0.08em; text-transform: uppercase; padding: 4px 8px; border-radius: 999px; border: 1px solid var(--line-strong); color: var(--muted); }
.reg-hist__cab b { font: 700 18px/1 var(--f-display); text-transform: uppercase; }
.reg-hist ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.reg-hist ul li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 14px; }
.reg-hist ul li > span { color: var(--muted); min-width: 0; flex-basis: 100%; font-size: 13px; }
.reg-hist s { color: var(--muted); }
.reg-hist em { font-style: normal; color: var(--paper); }
.reg-hist ul svg { width: 14px; height: 14px; color: var(--sun); flex: none; }
@media (min-width: 641px) { .reg-hist ul li > span { flex-basis: 280px; } }
.ingreso__alta a { color: var(--sun); text-decoration: underline; }
#reg .cfg-nav { flex-wrap: wrap; }
@media (max-width: 640px) {
  #reg .cfg-nav #prev[style*='hidden'] { display: none; }
  .reg-nav-der { width: 100%; }
  .reg-nav-der .btn { flex: 1 1 auto; justify-content: center; white-space: normal; }
}

/* ---------- Adventours Meet (Giaz, 20-oct-2026): la reunión de la comunidad en Lima, con lugar propio ---------- */
.meet { background: radial-gradient(120% 90% at 85% 10%, rgba(255,204,0,0.16), transparent 60%), var(--ink); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.meet__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.meet h2 span { color: var(--sun); }
.meet .lede { margin: 22px 0 28px; }
.meet__ficha { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--line-strong); border-radius: var(--r); }
.meet__ficha > div { padding: 14px 16px; display: grid; gap: 4px; align-content: start; }
.meet__ficha > div + div { border-left: 1px solid var(--line-strong); }
.meet__ficha small { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.meet__ficha b { font: 700 20px/1.1 var(--f-display); text-transform: uppercase; color: var(--paper); }
.meet__ficha b s { color: var(--muted); font-size: 0.7em; margin-right: 6px; }
.meet__ficha span { font-size: 13px; color: var(--muted); }
.meet__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; margin-top: 24px; }
.meet__frec { font-size: 13px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--sun); font-weight: 700; }
.meet__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.meet__lista li { display: grid; grid-template-columns: 52px 1fr; gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.meet__lista li:first-child { border-top: 1px solid var(--line); }
.meet__n { font: 800 28px/1 var(--f-display); color: var(--sun); }
.meet__lista b { font: 700 20px/1.15 var(--f-display); text-transform: uppercase; letter-spacing: 0.02em; }
.meet__lista p { margin: 4px 0 0; color: var(--muted); font-size: 15px; line-height: 1.45; }
.meet__sorpresa .meet__n { color: var(--paper); }
@media (max-width: 900px) {
  .meet__grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .meet__ficha { grid-template-columns: 1fr; }
  .meet__ficha > div + div { border-left: 0; border-top: 1px solid var(--line-strong); }
}
.meet__ficha .meet__precio { color: var(--sun); }

/* ---------- Aliados (Giaz, 20-oct-2026): solo el logotipo, en blanco y con peso visual parejo (--alto, home.js) ---------- */
.aliados__caja { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: clamp(36px, 5vw, 56px) 0; text-align: center; }
.aliados .eyebrow { justify-content: center; }
.aliados ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; }
.aliados__principales { gap: 26px 40px; margin: 22px auto clamp(36px, 5vw, 52px) !important; max-width: 920px; } /* 9 sponsors (con GiazArts): dos filas, 5 y 4, en computadora */
.aliados__resto { gap: 22px clamp(20px, 3.3vw, 44px); margin-top: 20px !important; }
.aliado { display: grid; justify-items: center; gap: 10px; }
.aliado img { display: block; width: auto; object-fit: contain; filter: brightness(0) invert(1); }
.aliados { --logo: clamp(26px, 2.6vw, 34px); }
/* «Trabajamos con»: 30 % más pequeños que sponsors, partners y auspiciadores (Giaz, 20-oct-2026) */
.aliados__resto { --logo: calc(clamp(26px, 2.6vw, 34px) * 0.7); }
.aliado img { height: calc(var(--logo) * var(--alto, 1)); max-width: 100%; }
.reg-prueba { margin: -8px 0 20px; }
.reg-ok { display: flex; gap: 10px; align-items: center; margin: 16px 0 0; color: var(--sun); font-size: 15px; }
.reg-ok svg { width: 20px; height: 20px; flex: none; }
.reg-ok[hidden] { display: none; }
#reg .btn[hidden], .reg-ayuda[hidden], .reg-demo[hidden] { display: none; }
.reg-req { display: flex; gap: 12px; align-items: flex-start; margin: -12px 0 14px; padding: 14px 16px; border-radius: var(--r); background: rgba(245,158,11,0.12); border: 1px solid rgba(245,158,11,0.45); color: var(--paper); font-size: 15px; line-height: 1.45; }
.reg-req svg { width: 22px; height: 22px; color: var(--lvl-2); flex: none; margin-top: 1px; }
.reg-req b { font-weight: 600; }
.reg-req-alerta { margin: 0 0 22px; font-size: 14px; color: var(--lvl-2); }
.reg-req-alerta.is-ok { color: var(--ok); }
.reg-req-alerta[hidden] { display: none; }
.field input[hidden], .field select[hidden] { display: none; }
.reg-4x2 { margin: 0 0 22px; padding: 16px 18px; border-radius: var(--r); background: rgba(239,75,75,0.1); border: 1px solid rgba(239,75,75,0.45); display: grid; gap: 14px; }
.reg-4x2[hidden] { display: none; }
.reg-4x2 p { margin: 0; font-size: 15px; line-height: 1.5; }
.reg-4x2 b { color: var(--paper); }
.reg-4x2__bts { display: flex; gap: 10px; flex-wrap: wrap; }
.done__icon--fin { background: var(--ink-3); color: var(--paper); border: 1px solid var(--line-strong); }
/* Miembro con vehículo 4x2: advertencia y sin compra de eventos (Giaz, 20-oct-2026) */
.reg-req-alerta.is-bloqueo { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: var(--r); background: rgba(239,75,75,0.1); border: 1px solid rgba(239,75,75,0.45); color: var(--paper); line-height: 1.45; }
.reg-req-alerta.is-bloqueo[hidden] { display: none; }
.reg-req-alerta.is-bloqueo svg, .cuenta__alerta svg, .socio__bloqueo svg { width: 20px; height: 20px; color: var(--warn); flex: none; margin-top: 1px; }
.login-btn { position: relative; }
.login-alerta { position: absolute; top: -7px; right: -7px; width: 18px; height: 18px; color: var(--warn); }
.login-alerta svg { width: 18px; height: 18px; }
.cuenta__alerta { display: flex; gap: 10px; align-items: flex-start; margin: 0; padding: 12px 14px; border-radius: var(--r); background: rgba(239,75,75,0.12); border: 1px solid rgba(239,75,75,0.45); font-size: 14px; line-height: 1.45; text-align: left; }
.cuenta__alerta[hidden] { display: none; }
.socio__bloqueo { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: var(--r); background: rgba(239,75,75,0.1); border: 1px solid rgba(239,75,75,0.45); }
.socio__bloqueo div { display: grid; gap: 4px; }
.socio__bloqueo small { color: var(--muted); font-size: 14px; line-height: 1.45; }
.socio__bloqueo a { color: var(--sun); font-weight: 600; display: inline-flex; gap: 6px; align-items: center; }
.socio__bloqueo a svg { width: 14px; height: 14px; color: currentColor; margin: 0; }
#book svg { width: 18px; height: 18px; }
.cuenta .cuenta__alerta, .cuenta .cuenta__alerta span { font: 500 14px/1.45 var(--f-body); text-transform: none; letter-spacing: 0; color: var(--paper); }
.aliados__principales a { display: block; transition: opacity 0.2s, transform 0.2s; }
.aliados__principales a:hover, .aliados__principales a:focus-visible { opacity: 0.75; transform: translateY(-2px); }

/* =========================================================
   Portal de miembros (portal.html · Giaz, 21-oct-2026)
   La web app de los miembros con el formato de la web: mismo header, pie, tipografía, colores y botones.
   ========================================================= */
#portal { min-height: 100svh; }
.pt-cuerpo { display: grid; gap: clamp(28px, 4vw, 44px); padding-top: clamp(28px, 4vw, 44px); padding-bottom: clamp(80px, 9vw, 120px); }

/* Hero del inicio y de la entrada */
.pt-hero { position: relative; isolation: isolate; overflow: hidden; padding: calc(var(--header-h) + var(--announce-h, 0px) + clamp(40px, 6vw, 72px)) 0 clamp(36px, 5vw, 56px); }
.pt-hero__media { position: absolute; inset: 0; z-index: -2; }
.pt-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.pt-hero::after { content: ''; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg, rgba(14,13,11,0.6) 0%, rgba(14,13,11,0.2) 30%), linear-gradient(90deg, rgba(14,13,11,0.9) 0%, rgba(14,13,11,0.55) 55%, rgba(14,13,11,0.35) 100%), linear-gradient(0deg, var(--ink) 0%, rgba(14,13,11,0) 40%); }
.pt-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: clamp(32px, 5vw, 64px); align-items: end; }
.pt-hero__titulo { font-size: clamp(48px, 7vw, 104px); }
.pt-hero__titulo span, .pt-head__titulo span { display: block; color: var(--sun); font-size: 0.56em; font-weight: 700; letter-spacing: 0.01em; margin-top: 0.12em; }
.pt-head__titulo span { display: inline; font-size: 1em; margin: 0; }
.pt-hero .lede { margin: 22px 0 0; }
.pt-hero .hero__ctas { margin-top: 28px; }
.pt-hero__meta { display: flex; flex-wrap: wrap; gap: 10px 28px; margin-top: 30px; padding-top: 18px; border-top: 1px solid var(--line); color: var(--muted); font: 500 12px/1.2 var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; }
.pt-hero__meta span { display: inline-flex; align-items: baseline; gap: 8px; }
.pt-hero__meta b { font: 800 30px/1 var(--f-display); color: var(--sun); letter-spacing: 0; }
.pt-entrada__nota { margin: 16px 0 0; color: var(--muted); font-size: 14px; }

/* Carnet de miembro (docs/APP-MOVIL.md §3.4): «Membresía activa» en grande, QR vivo, documento y número */
.pt-carnet { position: relative; display: grid; border-radius: var(--r-lg); overflow: hidden; border: 1px solid color-mix(in srgb, var(--sun) 50%, transparent);
  background: linear-gradient(140deg, var(--ink-3), var(--ink) 72%); box-shadow: 0 30px 70px -24px rgba(0,0,0,0.75), 0 16px 40px -24px rgba(255,204,0,0.35); }
.pt-carnet::before { content: ''; position: absolute; inset: 0; background-image: var(--topo); background-size: 520px; opacity: 0.07; pointer-events: none; }
.pt-carnet__banda { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding: 14px 20px; background: var(--sun); color: var(--sun-ink); }
.pt-carnet__banda svg { width: 22px; height: 22px; stroke-width: 2.6; }
.pt-carnet__banda b { font: 800 26px/1 var(--f-display); text-transform: uppercase; letter-spacing: 0.01em; }
.pt-carnet__banda span { margin-left: auto; font: 600 11px/1.2 var(--f-mono); letter-spacing: 0.08em; text-transform: uppercase; }
.pt-carnet__cuerpo { position: relative; display: flex; justify-content: space-between; gap: 16px; padding: 18px 20px 14px; }
.pt-carnet__datos { display: grid; gap: 4px; align-content: start; min-width: 0; }
.pt-carnet__logo { width: 112px; height: auto; margin-bottom: 10px; }
.pt-carnet__kicker { font: 500 10.5px/1.2 var(--f-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.pt-carnet__nombre { font: 800 30px/0.95 var(--f-display); text-transform: uppercase; overflow-wrap: anywhere; }
.pt-carnet__doc, .pt-carnet__num { font: 500 13px/1.4 var(--f-mono); letter-spacing: 0.06em; color: var(--paper); }
.pt-carnet__num { color: var(--sun); }
.pt-carnet__qr { flex: none; display: grid; justify-items: center; gap: 6px; align-self: start; padding: 8px; border-radius: var(--r); background: #fff; border: 0; cursor: zoom-in; }
.pt-carnet__qr span:first-child { display: block; width: 116px; height: 116px; }
.pt-carnet__qr img, .pt-carnet__qr canvas { width: 116px !important; height: 116px !important; }
.pt-carnet__qr small { font: 500 9.5px/1 var(--f-mono); letter-spacing: 0.04em; color: #4a463c; text-transform: uppercase; }
.pt-carnet__qr--muestra { width: 132px; height: 132px; place-items: center; color: var(--ink); cursor: default; }
.pt-carnet__qr--muestra svg { width: 84px; height: 84px; }
.pt-carnet__pie { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); }
.pt-carnet__pie > * { display: grid; gap: 4px; padding: 12px 20px 14px; }
.pt-carnet__pie > * + * { border-left: 1px solid var(--line); }
.pt-carnet__pie small { font: 500 10px/1 var(--f-mono); letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
.pt-carnet__pie b { display: inline-flex; align-items: center; gap: 6px; font: 800 20px/1 var(--f-display); text-transform: uppercase; }
.pt-carnet__pie a b { color: var(--sun); }
.pt-carnet__pie svg { width: 18px; height: 18px; }
.pt-carnet.is-off { filter: grayscale(1); border-color: var(--line-strong); }
.pt-carnet.is-off .pt-carnet__banda { background: var(--ink-3); color: var(--paper); }
.pt-carnet--muestra { filter: saturate(0.9); opacity: 0.92; }
.pt-carnet--muestra .pt-carnet__nombre { color: var(--muted); }

/* Cabecera compacta de cada sección */
.pt-head { position: relative; padding: calc(var(--header-h) + var(--announce-h, 0px) + clamp(36px, 5vw, 64px)) 0 clamp(28px, 4vw, 44px); border-bottom: 1px solid var(--line); }
.pt-head__grid { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px 40px; align-items: end; }
.pt-head__titulo { font-size: clamp(42px, 5.6vw, 80px); }
.pt-head .lede { margin: 16px 0 0; }
.pt-mini { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border: 1px solid var(--line-strong); border-radius: var(--r); background: rgba(14,13,11,0.6); backdrop-filter: blur(8px); }
.pt-mini__ico { color: var(--sun); } .pt-mini__ico svg { width: 30px; height: 30px; }
.pt-mini div { display: grid; gap: 2px; }
.pt-mini b { font: 700 18px/1.1 var(--f-display); text-transform: uppercase; }
.pt-mini small { font: 500 11px/1.3 var(--f-mono); color: var(--muted); letter-spacing: 0.06em; text-transform: uppercase; }

/* Pestañas del portal: fijas bajo el header al bajar */
.pt-tabs { position: sticky; top: var(--header-h); z-index: 30; background: rgba(14,13,11,0.94); backdrop-filter: blur(14px); border-bottom: 1px solid var(--line); }
.pt-tabs__fila { display: flex; gap: 2px; overflow-x: auto; scrollbar-width: none; margin-inline: calc(-1 * var(--gutter)); padding-inline: var(--gutter); }
.pt-tabs__fila::-webkit-scrollbar { display: none; }
.pt-tabs a { position: relative; display: inline-flex; align-items: center; gap: 8px; flex: none; padding: 16px 14px; color: var(--muted);
  font: 700 15px/1 var(--f-display); letter-spacing: 0.1em; text-transform: uppercase; white-space: nowrap; transition: color 0.2s; }
.pt-tabs a svg { width: 18px; height: 18px; }
.pt-tabs a:hover { color: var(--paper); }
.pt-tabs a[aria-current='page'] { color: var(--sun); }
.pt-tabs a[aria-current='page']::after { content: ''; position: absolute; left: 12px; right: 12px; bottom: 0; height: 2px; background: var(--sun); }
.pt-badge { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--sun); color: var(--sun-ink); font: 700 11px/1 var(--f-mono); font-style: normal; letter-spacing: 0; }

/* Bloques y tarjetas */
.pt-bloque { display: grid; gap: 18px; }
.pt-bloque__cab { display: flex; justify-content: space-between; align-items: center; gap: 12px 20px; flex-wrap: wrap; }
.pt-bloque__cab .eyebrow { margin: 0; }
.pt-card .pt-bloque__cab { margin-bottom: 4px; }
.pt-dos { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 20px; align-items: stretch; }
.pt-dos--par { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pt-card { position: relative; display: grid; gap: 14px; align-content: start; padding: clamp(20px, 2.4vw, 28px); border-radius: var(--r-lg); background: var(--ink-2); border: 1px solid var(--line); }
.pt-card .eyebrow { margin: 0; }
.pt-card h3, .pt-card h2 { margin: 0; }
.pt-card .muted, .pt-card p { margin: 0; }
.pt-card--topo { overflow: hidden; }
.pt-card--topo::before { content: ''; position: absolute; inset: 0; background-image: var(--topo); background-size: 520px; opacity: 0.06; pointer-events: none; }
.pt-nota { margin: 0; font-size: 14px; line-height: 1.5; color: var(--muted); }
.pt-intro { margin: -6px 0 0; max-width: 72ch; }
.pt-demo { font: 500 11.5px/1.45 var(--f-mono); color: var(--muted); opacity: 0.85; }
.pt-alerta { margin: 0; }
.pt-ok { color: var(--ok); font-weight: 600; font-size: 14px; white-space: nowrap; }
.pt-pend { color: var(--lvl-2); font-weight: 600; font-size: 14px; white-space: nowrap; }
.pt-fila { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.pt-error { margin: 0; color: #ff8a8a; font-size: 14px; }
.pt-error[hidden] { display: none; }
.pt-lista { list-style: none; margin: 0; padding: 0; display: grid; }
.pt-lista li { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 12px 0; border-top: 1px solid var(--line); }
.pt-lista li:first-child { border-top: 0; padding-top: 0; }
.pt-lista li > span:first-child { display: grid; gap: 2px; min-width: 0; }
.pt-lista b { font: 700 18px/1.15 var(--f-display); text-transform: uppercase; letter-spacing: 0.02em; }
.pt-lista small { color: var(--muted); font-size: 13px; }
.pt-estado { flex: none; padding: 5px 10px; border-radius: 999px; border: 1px solid var(--line-strong); font: 500 10.5px/1 var(--f-mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
.pt-estado[data-estado='tomada'] { color: var(--sun); border-color: color-mix(in srgb, var(--sun) 55%, transparent); }
.pt-estado[data-estado='por_validar'], .pt-estado[data-estado='comprobando'] { color: var(--lvl-2); border-color: color-mix(in srgb, var(--lvl-2) 55%, transparent); }
.pt-estado[data-estado='cumplida'] { color: var(--ok); border-color: color-mix(in srgb, var(--ok) 55%, transparent); }

/* Próxima salida comprada */
.pt-viaje { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); border-radius: var(--r-lg); overflow: hidden; background: var(--ink-2); border: 1px solid var(--line); }
.pt-viaje + .pt-viaje { margin-top: 20px; }
.pt-viaje__foto { position: relative; min-height: 240px; }
.pt-viaje__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pt-viaje__foto .pill { position: absolute; top: 14px; left: 14px; }
.pt-viaje__cuerpo { display: grid; gap: 16px; align-content: start; padding: clamp(20px, 2.4vw, 28px); }
.pt-viaje__cuerpo .eyebrow { margin: 0; }
.pt-viaje__cab { display: grid; grid-template-columns: auto 1fr; gap: 16px; align-items: center; }
.pt-viaje__cab h3 { margin: 0 0 4px; font: 800 clamp(24px, 2.4vw, 32px)/1 var(--f-display); text-transform: uppercase; }
.pt-viaje__cab p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.4; }
.pt-viaje__datos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 20px; margin: 0; padding: 16px 0 0; border-top: 1px solid var(--line); }
.pt-viaje__datos div { display: grid; gap: 4px; }
.pt-viaje__datos div:first-child { grid-column: 1 / -1; }
.pt-viaje__datos dt { font: 500 10.5px/1 var(--f-mono); letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
.pt-viaje__datos dd { margin: 0; font-weight: 600; font-size: 15px; }
.pt-viaje__datos dd small { display: block; color: var(--muted); font-weight: 400; font-size: 13px; }
.pt-viaje__bts { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.pt-viaje--compacta { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); }

/* Atajos y próxima acción */
.pt-accion { border-color: color-mix(in srgb, var(--sun) 50%, transparent); background: linear-gradient(160deg, rgba(255,204,0,0.14), rgba(255,204,0,0.02)), var(--ink-2); }
.pt-accion .btn { justify-self: start; }
.pt-atajos { gap: 0; }
.pt-atajos .eyebrow { margin-bottom: 10px; }
.pt-atajos a { display: grid; grid-template-columns: 22px 1fr 16px; gap: 14px; align-items: center; padding: 13px 0; border-top: 1px solid var(--line); }
.pt-atajos a:first-of-type { border-top: 0; }
.pt-atajos a > svg { width: 20px; height: 20px; color: var(--sun); }
.pt-atajos a > svg:last-child { width: 16px; height: 16px; color: var(--muted); transition: transform 0.2s var(--ease); }
.pt-atajos a:hover > svg:last-child { transform: translateX(3px); color: var(--sun); }
.pt-atajos span { display: grid; gap: 2px; }
.pt-atajos b { font: 700 18px/1.1 var(--f-display); text-transform: uppercase; letter-spacing: 0.02em; }
.pt-atajos small { color: var(--muted); font-size: 13px; }

/* Herramientas */
.pt-tools { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.pt-tool { display: grid; gap: 6px; align-content: start; text-align: left; padding: 20px; border-radius: var(--r-lg); background: var(--ink-2); border: 1px solid var(--line); color: var(--paper); transition: border-color 0.2s, transform 0.2s var(--ease), background 0.2s; }
.pt-tool:hover { border-color: color-mix(in srgb, var(--sun) 70%, transparent); transform: translateY(-2px); background: var(--ink-3); }
.pt-tool__ico { display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: 8px; border-radius: var(--r-btn); background: color-mix(in srgb, var(--sun) 14%, transparent); color: var(--sun); }
.pt-tool__ico svg { width: 22px; height: 22px; }
.pt-tool b { font: 800 22px/1 var(--f-display); text-transform: uppercase; }
.pt-tool__desc { color: var(--muted); font-size: 14px; line-height: 1.4; }
.pt-tool__estado { margin-top: 6px; font: 500 11px/1.3 var(--f-mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--sun); }

/* Salidas para reservar, con el precio de miembro */
.pt-salidas { display: grid; border-top: 1px solid var(--line); }
.pt-salida { display: grid; grid-template-columns: auto minmax(0, 1fr) auto 20px; gap: 18px; align-items: center; padding: 16px 4px; border-bottom: 1px solid var(--line); transition: background 0.2s; }
.pt-salida:hover { background: rgba(255,255,255,0.03); }
.pt-salida .datebox { width: 58px; padding: 8px 0 6px; } .pt-salida .datebox b { font-size: 28px; }
.pt-salida__info { display: grid; gap: 4px; min-width: 0; }
.pt-salida__info b { font: 800 22px/1 var(--f-display); text-transform: uppercase; }
.pt-salida__info > span { color: var(--muted); font-size: 14px; }
.pt-salida__info .lvl { font: 500 12px/1 var(--f-mono); color: var(--muted); }
.pt-salida__precio { display: grid; justify-items: end; gap: 2px; font: 800 24px/1 var(--f-display); }
.pt-salida__precio small { font: 500 10.5px/1.2 var(--f-mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
.pt-salida__precio s { color: var(--muted); font-size: 0.62em; margin-right: 6px; }
.pt-salida__ir svg { width: 18px; height: 18px; color: var(--sun); }

/* ¡Ganaste! */
.pt-ganaste { display: flex; justify-content: space-between; align-items: center; gap: 18px 28px; flex-wrap: wrap; padding: clamp(20px, 2.6vw, 28px); border-radius: var(--r-lg); background: var(--sun); color: var(--sun-ink); }
.pt-ganaste > div:first-child { display: grid; gap: 8px; }
.pt-ganaste p { margin: 0; font-size: 16px; }
.pt-ganaste .mono { opacity: 0.75; }
.pt-ganaste__bts { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.pt-ganaste .link-arrow { color: var(--sun-ink); }
.pt-sello { display: inline-block; justify-self: start; padding: 6px 12px 5px; border-radius: var(--r-btn); background: var(--ink); color: var(--sun); font: 800 clamp(30px, 3.4vw, 44px)/1 var(--f-display); text-transform: uppercase; transform: rotate(-3deg); }
.pt-sello--sm { font-size: 18px; padding: 5px 9px 4px; background: var(--sun); color: var(--sun-ink); }

/* Mensajes */
.pt-msjs { list-style: none; margin: 0; padding: 0; display: grid; border-top: 1px solid var(--line); }
.pt-msj { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 16px 4px; border-bottom: 1px solid var(--line); }
.pt-msj__ico { position: relative; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--ink-3); color: var(--muted); }
.pt-msj__ico svg { width: 19px; height: 19px; }
.pt-msj.is-nuevo .pt-msj__ico { color: var(--sun); }
.pt-msj.is-nuevo .pt-msj__ico::after { content: ''; position: absolute; top: 0; right: 0; width: 10px; height: 10px; border-radius: 50%; background: var(--sun); border: 2px solid var(--ink-2); }
.pt-msj__txt { display: grid; gap: 3px; min-width: 0; }
.pt-msj__cab { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.pt-msj__cab b { font-weight: 600; font-size: 16px; }
.pt-msj.is-nuevo .pt-msj__cab b { color: var(--paper); font-weight: 700; }
.pt-msj__cab time { flex: none; font: 500 11px/1 var(--f-mono); color: var(--muted); }
.pt-msj p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.45; }
.pt-msj small { font: 500 10.5px/1 var(--f-mono); letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); opacity: 0.8; }
.pt-msjs--mini { border-top: 0; }
.pt-msjs--mini .pt-msj { grid-template-columns: 36px minmax(0, 1fr); padding: 12px 0; }
.pt-msjs--mini .pt-msj:last-child { border-bottom: 0; }
.pt-msjs--mini .pt-msj > .link-arrow, .pt-msjs--mini .pt-msj > .pt-ok { grid-column: 2; justify-self: start; }
.pt-msjs--mini .pt-msj__txt small { display: none; }
.pt-msjs--mini .pt-msj__ico { width: 36px; height: 36px; }
.pt-msj-barra { display: flex; justify-content: space-between; align-items: center; gap: 12px 20px; flex-wrap: wrap; }
.pt-msj-barra .chip-lg { padding: 10px 14px; font-size: 14px; }

/* Experiencias completadas */
.pt-logros { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.pt-logro { position: relative; min-height: 220px; display: flex; align-items: flex-end; border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--line); }
.pt-logro img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -1; }
.pt-logro::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(14,13,11,0.95) 18%, rgba(14,13,11,0.15) 75%); }
.pt-logro { isolation: isolate; }
.pt-logro div { display: grid; gap: 6px; padding: 18px; justify-items: start; }
.pt-logro small { font: 500 11px/1 var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--sun); }
.pt-logro b { font: 800 26px/1 var(--f-display); text-transform: uppercase; }

/* Misiones (tarjetas arena, como las experiencias de la web) */
.pt-seg { display: inline-flex; flex-wrap: wrap; gap: 8px; }
.pt-seg button { border: 1px solid var(--line-strong); background: none; border-radius: var(--r-btn); padding: 11px 16px; font: 700 15px/1 var(--f-display); letter-spacing: 0.08em; text-transform: uppercase; }
.pt-seg button:hover { border-color: var(--paper); }
.pt-seg button[aria-pressed='true'] { background: var(--sun); border-color: var(--sun); color: var(--sun-ink); }
.pt-seg .count { font: 500 11px/1 var(--f-mono); opacity: 0.7; margin-left: 4px; }
.pt-misiones { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.pt-mision { display: grid; gap: 10px; align-content: start; padding: 22px; border-radius: var(--r-lg); background: var(--sand); color: var(--sand-ink); }
.pt-mision__top { display: flex; justify-content: space-between; align-items: center; }
.pt-mision__top .mono { color: var(--sand-muted); }
.pt-mision__tk { display: inline-flex; align-items: center; gap: 4px; padding: 5px 10px; border-radius: 999px; background: var(--ink); color: var(--sun); font: 800 16px/1 var(--f-display); }
.pt-mision__tk svg { width: 15px; height: 15px; }
.pt-mision h3 { margin: 0; font: 800 26px/1 var(--f-display); text-transform: uppercase; }
.pt-mision p { margin: 0; color: var(--sand-muted); font-size: 15px; line-height: 1.45; }
.pt-mision__meta { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.pt-mision__meta li { padding: 5px 9px; border-radius: 999px; border: 1px solid var(--sand-line); font: 500 10.5px/1.2 var(--f-mono); letter-spacing: 0.04em; color: var(--sand-muted); }
.pt-mision__pie { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 4px; padding-top: 12px; border-top: 1px solid var(--sand-line); }
.pt-mision .pt-estado { color: var(--sand-muted); border-color: var(--sand-line); }
.pt-mision .pt-estado[data-estado='tomada'] { background: var(--ink); color: var(--sun); border-color: var(--ink); }
.pt-mision .pt-estado[data-estado='por_validar'], .pt-mision .pt-estado[data-estado='comprobando'] { color: #8a5a00; border-color: rgba(138,90,0,0.4); }
.pt-mision .pt-estado[data-estado='cumplida'] { color: #2f6b2a; border-color: rgba(47,107,42,0.4); }
.pt-mision__nota { color: var(--sand-muted); font-size: 13px; }
.pt-mision .pt-demo { justify-self: start; color: var(--sand-muted); }
.pt-mision[data-estado='cumplida'] { opacity: 0.85; }
.pt-mision .btn svg { width: 16px; height: 16px; }

/* Nivel y rango */
.pt-escala { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; counter-reset: n; }
.pt-escala li { display: grid; gap: 2px; padding: 12px 14px 12px 46px; position: relative; border: 1px solid var(--line); border-radius: var(--r); counter-increment: n; }
.pt-escala li::before { content: counter(n); position: absolute; left: 14px; top: 12px; width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--line-strong); font: 600 11px/1 var(--f-mono); color: var(--muted); }
.pt-escala b { font: 700 18px/1.1 var(--f-display); text-transform: uppercase; }
.pt-escala small { color: var(--muted); font-size: 13px; }
.pt-escala li.is-actual { border-color: var(--sun); background: color-mix(in srgb, var(--sun) 8%, transparent); }
.pt-escala li.is-actual b { color: var(--sun); }
.pt-escala li.is-actual::before { background: var(--sun); border-color: var(--sun); color: var(--sun-ink); }
.pt-barra { height: 8px; border-radius: 4px; background: var(--ink-3); overflow: hidden; }
.pt-barra b { display: block; height: 100%; background: linear-gradient(90deg, var(--sun-deep), var(--sun)); }
.pt-grados { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.pt-grados li { padding: 6px 9px; border-radius: var(--r-btn); border: 1px solid var(--line); font: 600 13px/1 var(--f-display); letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); }
.pt-grados li.is-hecho { color: var(--paper); border-color: var(--line-strong); }
.pt-grados li.is-actual { background: var(--sun); border-color: var(--sun); color: var(--sun-ink); }

/* Tokens */
.pt-saldo { border-color: color-mix(in srgb, var(--sun) 40%, transparent); }
.pt-saldo__n { display: flex; align-items: center; gap: 14px; color: var(--sun); }
.pt-saldo__n > svg { width: 44px; height: 44px; }
.pt-saldo__n b { font: 800 clamp(72px, 8vw, 104px)/0.85 var(--f-display); }
.pt-saldo__n span { font: 500 12px/1.35 var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }
.pt-saldo .btn { justify-self: start; }
.pt-ganar { list-style: none; margin: 0; padding: 0; display: grid; }
.pt-ganar li > * { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px solid var(--line); }
.pt-ganar li:first-child > * { border-top: 0; padding-top: 0; }
.pt-ganar a:hover span { color: var(--sun); }
.pt-ganar b { flex: none; font: 800 18px/1 var(--f-display); color: var(--sun); text-transform: uppercase; }
.pt-extracto { list-style: none; margin: 0; padding: 0; display: grid; border-top: 1px solid var(--line); }
.pt-extracto li { border-bottom: 1px solid var(--line); }
.pt-extracto summary { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 14px 4px; cursor: pointer; list-style: none; }
.pt-extracto summary::-webkit-details-marker { display: none; }
.pt-extracto time { font: 500 12px/1 var(--f-mono); color: var(--muted); text-transform: uppercase; }
.pt-extracto summary span { font-size: 15px; }
.pt-extracto b { font: 800 22px/1 var(--f-display); }
.pt-extracto b.mas { color: var(--sun); }
.pt-extracto b.menos { color: var(--muted); }
.pt-extracto p { margin: 0 0 14px 82px; font: 500 12px/1.5 var(--f-mono); color: var(--muted); }
.pt-packs { width: 100%; border-collapse: collapse; font-size: 15px; }
.pt-packs th { text-align: left; font: 500 10.5px/1 var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); padding: 0 8px 10px 0; }
.pt-packs td { padding: 10px 8px 10px 0; border-top: 1px solid var(--line); }
.pt-packs td b { font: 700 17px/1 var(--f-display); text-transform: uppercase; }

/* Beneficios */
.pt-descs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; }
.pt-desc { display: grid; gap: 6px; align-content: start; padding: 20px; background: var(--ink-2); }
.pt-desc + .pt-desc { border-left: 1px solid var(--line); }
.pt-desc small { font: 500 10.5px/1.2 var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }
.pt-desc b { font: 800 34px/1 var(--f-display); color: var(--sun); }
.pt-desc span { color: var(--muted); font-size: 13.5px; line-height: 1.4; }
.pt-productos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.pt-producto { display: flex; flex-direction: column; border-radius: var(--r-lg); overflow: hidden; background: var(--ink-2); border: 1px solid color-mix(in srgb, #ed1e79 50%, transparent); transition: transform 0.2s var(--ease); }
.pt-producto:hover { transform: translateY(-2px); }
.pt-producto__img { position: relative; aspect-ratio: 1; background: var(--paper); overflow: hidden; display: grid; place-items: center; }
.pt-producto__img img { width: 82%; height: 82%; object-fit: contain; }
.pt-producto__cinta { position: absolute; top: 40px; right: -82px; width: 300px; transform: rotate(45deg); background: var(--sun); color: var(--sun-ink); text-align: center; padding: 0.5em 0 0.58em; font: 800 14px/1 var(--f-display); letter-spacing: 0.04em; text-transform: uppercase; }
.pt-producto__cuerpo { display: grid; gap: 6px; padding: 16px; }
.pt-producto__cuerpo small { font: 500 10.5px/1.2 var(--f-mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--sun); }
.pt-producto__cuerpo b { font-weight: 600; font-size: 15px; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pt-producto__precio { font: 800 24px/1 var(--f-display); }
.pt-producto__precio s { color: var(--muted); font-size: 0.62em; margin-right: 6px; }
.pt-producto__stock { font-size: 13px; color: var(--muted); }
.pt-marcas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.pt-marca__cab { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.pt-marca__cab img { height: 26px; width: auto; max-width: 160px; object-fit: contain; filter: brightness(0) invert(1); }
.pt-marca__cab small { font: 500 11px/1 var(--f-mono); color: var(--muted); text-transform: uppercase; letter-spacing: 0.08em; }
.pt-beneficio { display: flex; justify-content: space-between; align-items: center; gap: 14px; }
.pt-beneficio > span:first-child { display: grid; gap: 2px; }
.pt-beneficio b { font: 700 18px/1.1 var(--f-display); text-transform: uppercase; }
.pt-beneficio small { color: var(--muted); font-size: 14px; line-height: 1.4; }
.pt-marca .link-btn { justify-self: start; font-size: 14px; color: var(--muted); }
.pt-otras__fila { display: flex; flex-wrap: wrap; gap: 14px; }
.pt-otra { display: grid; justify-items: center; gap: 12px; padding: 18px 20px; border: 1px solid var(--line); border-radius: var(--r); min-width: 160px; }
.pt-otra img { height: 24px; width: auto; max-width: 140px; object-fit: contain; filter: brightness(0) invert(1); }

/* Sorteos */
.pt-sorteo__cuando { color: var(--sun); font: 600 14px/1.4 var(--f-mono); }
.pt-boletos { grid-template-columns: auto 1fr auto; align-items: center; }
.pt-boletos > svg { width: 32px; height: 32px; color: var(--sun); }
.pt-ganadores { list-style: none; margin: 0; padding: 0; display: grid; }
.pt-ganadores li { display: grid; grid-template-columns: 32px 1fr auto; gap: 14px; align-items: center; padding: 12px 0; border-top: 1px solid var(--line); }
.pt-ganadores li > span:nth-child(2) { display: grid; gap: 2px; }
.pt-ganadores b { font: 700 18px/1.1 var(--f-display); text-transform: uppercase; }
.pt-ganadores small { color: var(--muted); font-size: 14px; }
.pt-pos { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--ink-3); font: 600 12px/1 var(--f-mono); }
.pt-ganadores li:first-child .pt-pos { background: var(--sun); color: var(--sun-ink); }
.pt-ganadores li.is-tu { background: color-mix(in srgb, var(--sun) 8%, transparent); margin-inline: -12px; padding-inline: 12px; border-radius: var(--r); }

/* Invitar */
.pt-link { display: flex; gap: 10px; }
.pt-link input { flex: 1; min-width: 0; min-height: 44px; padding: 0 14px; border-radius: var(--r-btn); border: 1px solid var(--line-strong); background: var(--ink); color: var(--paper); font: 500 13px var(--f-mono); }
.pt-card > .btn { justify-self: start; }
.pt-cifras { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.pt-cifras span { display: grid; gap: 6px; padding: 16px; border: 1px solid var(--line); border-radius: var(--r); font: 500 11px/1 var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }
.pt-cifras b { font: 800 48px/0.9 var(--f-display); color: var(--sun); letter-spacing: 0; }
.pt-pasos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; counter-reset: paso; }
.pt-pasos li { display: grid; gap: 6px; align-content: start; padding: 20px; border-top: 2px solid var(--sun); background: var(--ink-2); border-radius: 0 0 var(--r) var(--r); counter-increment: paso; }
.pt-pasos li::before { content: '0' counter(paso); font: 500 12px/1 var(--f-mono); color: var(--sun); letter-spacing: 0.1em; }
.pt-pasos b { font: 800 22px/1 var(--f-display); text-transform: uppercase; }
.pt-pasos span { color: var(--muted); font-size: 15px; line-height: 1.45; }

/* Mi perfil */
.pt-dato { display: grid; grid-template-columns: 130px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 0; border-top: 1px solid var(--line); }
.pt-dato:first-of-type { border-top: 0; }
.pt-dato small { font: 500 10.5px/1.2 var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }
.pt-dato > span:nth-child(2) { overflow-wrap: anywhere; }
.pt-ficha { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.pt-ficha li { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border: 1px solid var(--line); border-radius: var(--r-btn); color: var(--muted); font: 600 14px/1 var(--f-display); letter-spacing: 0.06em; text-transform: uppercase; }
.pt-ficha li span { display: grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; border: 1px solid var(--line-strong); }
.pt-ficha li.is-ok { color: var(--paper); border-color: var(--line-strong); }
.pt-ficha li.is-ok span { background: var(--sun); border-color: var(--sun); color: var(--sun-ink); }
.pt-ficha li span svg { width: 11px; height: 11px; stroke-width: 3; }
.pt-avisos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 24px; }
.pt-avisos .field-label, .pt-avisos .pt-canales, .pt-avisos .btn { grid-column: 1 / -1; }
.pt-avisos .field-label { margin-top: 10px; }
.pt-avisos .btn { justify-self: start; }
.pt-canales { display: flex; flex-wrap: wrap; gap: 10px 24px; }
.pt-switch { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; padding: 8px 0; }
.pt-switch input { appearance: none; flex: none; position: relative; width: 40px; height: 22px; margin: 1px 0 0; border-radius: 999px; background: var(--ink-3); border: 1px solid var(--line-strong); cursor: pointer; transition: background 0.2s; }
.pt-switch input::after { content: ''; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: var(--muted); transition: transform 0.2s var(--ease), background 0.2s; }
.pt-switch input:checked { background: var(--sun); border-color: var(--sun); }
.pt-switch input:checked::after { transform: translateX(18px); background: var(--sun-ink); }
.pt-switch span { display: grid; gap: 2px; }
.pt-switch b { font-weight: 600; font-size: 15px; }
.pt-switch small { color: var(--muted); font-size: 13px; }
.pt-zona { border-style: dashed; border-color: var(--line-strong); }
.pt-zona__fila { display: flex; justify-content: space-between; align-items: center; gap: 12px 20px; flex-wrap: wrap; padding: 12px 0; border-top: 1px solid var(--line); }
.pt-zona__fila:first-of-type { border-top: 0; }
.pt-zona__fila > span { display: grid; gap: 2px; }
.pt-zona__fila b { font-weight: 600; }
.pt-zona__fila small { color: var(--muted); font-size: 13px; }
.pt-zona__fila .btn svg { width: 16px; height: 16px; }
.pt-movil-nota { display: none; margin: 0; align-items: center; gap: 8px; color: var(--muted); font-size: 14px; }
.pt-movil-nota svg { width: 16px; height: 16px; }

/* Encuesta */
.pt-encuesta { display: grid; gap: 16px; max-width: 860px; }
.pt-encuesta .eyebrow { margin: 0; }
.pt-encuesta > .btn { justify-self: start; }
.pt-preg__n { margin: 0; font: 500 12px/1 var(--f-mono); color: var(--sun); letter-spacing: 0.1em; }
.pt-preg h3 { font: 700 22px/1.15 var(--f-display); text-transform: uppercase; letter-spacing: 0.01em; }
.pt-preg h3 i { font-style: normal; color: var(--muted); font-size: 0.7em; text-transform: none; letter-spacing: 0; }
.pt-preg textarea.input { min-height: 0; padding: 14px 16px; resize: vertical; }
.pt-preg.is-falta { border-color: rgba(239,75,75,0.6); }
.pt-preg .chip-lg:has(input:checked) { background: var(--sun); color: var(--sun-ink); border-color: var(--sun); }
.pt-preg .chip-lg input { position: absolute; opacity: 0; pointer-events: none; }
.pt-escala-n { display: grid; grid-template-columns: repeat(11, minmax(0, 1fr)); gap: 6px; }
.pt-escala-n.e5 { grid-template-columns: repeat(5, minmax(0, 1fr)); max-width: 420px; }
.pt-escala-n button { min-height: 46px; border-radius: var(--r-btn); border: 1px solid var(--line-strong); background: none; font: 800 20px/1 var(--f-display); }
.pt-escala-n button:hover { border-color: var(--paper); }
.pt-escala-n button[aria-checked='true'] { background: var(--sun); color: var(--sun-ink); border-color: var(--sun); }
.pt-escala-ext { display: flex; justify-content: space-between; font: 500 11px/1 var(--f-mono); color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; }
.pt-escala-n.e5 + .pt-escala-ext { max-width: 420px; }
.pt-hecho { justify-items: start; gap: 18px; padding: clamp(28px, 4vw, 48px); }
.pt-hecho .done__icon { margin: 0; }
.pt-hecho__tk { display: flex; align-items: center; gap: 10px; color: var(--sun); }
.pt-hecho__tk svg { width: 26px; height: 26px; }
.pt-hecho__tk b { font: 800 34px/1 var(--f-display); }

/* Membresía inactiva: el portal se ve apagado hasta hacerse socio (regla membresiaPortal del servidor) */
.pt-reactivar { display: flex; justify-content: space-between; align-items: center; gap: 18px 32px; flex-wrap: wrap; padding: clamp(20px, 2.6vw, 30px); border: 2px solid var(--sun); border-radius: var(--r-lg); background: linear-gradient(160deg, rgba(255,204,0,0.16), rgba(255,204,0,0.03)); }
.pt-reactivar > div { display: grid; gap: 8px; max-width: 64ch; }
.pt-reactivar .eyebrow, .pt-reactivar h2, .pt-reactivar p { margin: 0; }
.pt-apagado { display: grid; gap: clamp(28px, 4vw, 44px); filter: grayscale(1); opacity: 0.4; pointer-events: none; user-select: none; }

/* Ventana flotante del portal */
.pt-modal { position: fixed; inset: 0; z-index: 95; display: grid; place-items: center; padding: 16px; }
.pt-modal[hidden] { display: none; }
.pt-modal__fondo { position: absolute; inset: 0; background: rgba(9,8,7,0.78); backdrop-filter: blur(6px); animation: ingFade 0.25s var(--ease); }
.pt-modal__caja { position: relative; width: min(480px, 100%); max-height: calc(100svh - 32px); overflow-y: auto; padding: 32px 28px 26px; border-radius: var(--r-lg); background: var(--ink-2); border: 1px solid var(--line-strong); box-shadow: 0 40px 90px -30px rgba(0,0,0,0.8); animation: ingSube 0.35s var(--ease); }
.pt-modal__cerrar { position: absolute; top: 14px; right: 14px; width: 36px; height: 36px; z-index: 1; }
.pt-modal__caja--qr { width: min(400px, 100%); padding: 0; overflow: hidden; background: #fff; color: var(--ink); border: 0; }
.pt-modal__caja--qr .pt-modal__cerrar { color: var(--sun-ink); border-color: rgba(26,20,0,0.25); }
.pt-qrgrande { display: grid; justify-items: center; gap: 8px; padding-bottom: 26px; text-align: center; }
.pt-qrgrande__banda { justify-self: stretch; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 18px 56px 16px; background: var(--sun); color: var(--sun-ink); font: 800 19px/1.1 var(--f-display); text-transform: uppercase; }
.pt-qrgrande__banda svg { width: 20px; height: 20px; stroke-width: 2.6; flex: none; }
.pt-qrgrande__qr { width: 248px; height: 248px; margin: 18px 0 6px; }
.pt-qrgrande__qr img, .pt-qrgrande__qr canvas { width: 248px !important; height: 248px !important; }
.pt-qrgrande b { font: 800 26px/1 var(--f-display); text-transform: uppercase; }
.pt-qrgrande span { font: 500 13px/1.3 var(--f-mono); color: #4a463c; padding: 0 20px; }
.pt-qrgrande small { font: 600 11px/1 var(--f-mono); color: #8a5a00; text-transform: uppercase; letter-spacing: 0.08em; }
.pt-qrgrande p { margin: 6px 24px 0; font-size: 14px; line-height: 1.45; color: #4a463c; }
.pt-terminar { display: grid; gap: 16px; }
.pt-terminar .eyebrow, .pt-terminar h2, .pt-terminar p { margin: 0; }
.pt-terminar .field textarea { min-height: 96px; }
.pt-terminar .field input[type='file'] { padding: 12px; min-height: 0; }
.pt-modal__caja--hoja { width: min(640px, 100%); display: grid; gap: 18px; }
.pt-hoja { padding: 22px; border-radius: var(--r); background: var(--paper); color: var(--ink); font-size: 15px; line-height: 1.5; }
.pt-hoja h1 { margin: 0 0 4px; font: 800 30px/1 var(--f-display); text-transform: uppercase; }
.pt-hoja h2 { margin: 18px 0 6px; padding-bottom: 4px; border-bottom: 2px solid var(--ink); font: 700 15px/1.2 var(--f-display); letter-spacing: 0.08em; text-transform: uppercase; }
.pt-hoja h3 { margin: 12px 0 4px; font: 700 16px/1.2 var(--f-display); text-transform: uppercase; }
.pt-hoja p { margin: 0; }
.pt-hoja ul { margin: 0; padding-left: 20px; display: grid; gap: 4px; }
.pt-hoja__qr { width: 168px; height: 168px; margin-top: 6px; }
.pt-hoja__qr img, .pt-hoja__qr canvas { width: 168px !important; height: 168px !important; }
.pt-confirmar { display: grid; gap: 14px; padding-right: 30px; }
.pt-confirmar h2, .pt-confirmar p { margin: 0; }
.pt-confirmar__bts { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
.pt-qr-sin { display: block; padding: 8px; font: 500 11px/1.4 var(--f-mono); color: var(--ink); }

/* Adaptable */
@media (max-width: 1100px) {
  .pt-tools { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pt-descs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pt-desc:nth-child(4) { border-left: 0; }
  .pt-desc:nth-child(n+4) { border-top: 1px solid var(--line); }
  .pt-productos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pt-misiones { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 920px) {
  .pt-hero__grid, .pt-head__grid { grid-template-columns: minmax(0, 1fr); }
  .pt-hero__grid .pt-carnet { max-width: 460px; }
  .pt-mini { justify-self: start; }
  .pt-dos, .pt-dos--par { grid-template-columns: minmax(0, 1fr); }
  .pt-viaje, .pt-viaje--compacta { grid-template-columns: minmax(0, 1fr); }
  .pt-viaje__foto { min-height: 0; aspect-ratio: 16 / 8; }
  .pt-logros { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pt-pasos { grid-template-columns: minmax(0, 1fr); }
  .pt-marcas { grid-template-columns: minmax(0, 1fr); }
  /* Eliminar la cuenta solo desde una computadora (docs/APP-MOVIL.md §7) */
  .pt-zona { display: none; }
  .pt-movil-nota { display: flex; }
}
@media (max-width: 640px) {
  .pt-tools { gap: 10px; }
  .pt-tool { padding: 16px; }
  .pt-tool__ico { width: 38px; height: 38px; margin-bottom: 4px; }
  .pt-tool b { font-size: 19px; }
  .pt-tool__desc { display: none; }
  .pt-descs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pt-desc:nth-child(n) { border-left: 0; border-top: 1px solid var(--line); }
  .pt-desc:nth-child(2n) { border-left: 1px solid var(--line); }
  .pt-desc:nth-child(-n+2) { border-top: 0; }
  .pt-desc:last-child { grid-column: 1 / -1; border-left: 0; }
  .pt-misiones, .pt-logros { grid-template-columns: minmax(0, 1fr); }
  .pt-salida { grid-template-columns: auto minmax(0, 1fr); gap: 6px 14px; }
  .pt-salida__precio { grid-column: 2; justify-items: start; grid-auto-flow: column; align-items: baseline; gap: 8px; justify-content: start; }
  .pt-salida__ir { display: none; }
  .pt-msj { grid-template-columns: 36px minmax(0, 1fr); }
  .pt-msj > .btn, .pt-msj > .pt-ok { grid-column: 2; justify-self: start; }
  .pt-carnet__nombre { font-size: 26px; }
  .pt-carnet__qr span:first-child, .pt-carnet__qr img, .pt-carnet__qr canvas { width: 96px !important; height: 96px !important; }
  .pt-carnet__banda span { margin-left: 0; flex-basis: 100%; }
  .pt-carnet__pie > * { padding: 10px 14px 12px; }
  .pt-dato { grid-template-columns: minmax(0, 1fr) auto; }
  .pt-dato small { grid-column: 1 / -1; }
  .pt-avisos { grid-template-columns: minmax(0, 1fr); }
  .pt-escala-n { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .pt-extracto summary { grid-template-columns: 52px minmax(0, 1fr) auto; }
  .pt-extracto p { margin-left: 4px; }
  .pt-boletos { grid-template-columns: auto 1fr; }
  .pt-boletos .link-arrow { grid-column: 2; }
  .pt-tabs a { padding: 14px 11px; font-size: 14px; }
  .pt-viaje__bts .btn { flex: 1 1 auto; }
  .pt-modal__caja { padding: 56px 16px 18px; }
  .pt-modal__caja--qr { padding: 0; }
  .pt-hoja { padding: 18px 16px; }
}

/* ---------- Para viajeros sin 4x4: Desert Quest y The Amazing Trip ----------
   Diseño propio (Giaz, 26-oct-2026): tanto peso como Signature, pero distinto. Sección oscura a todo el ancho con la
   foto del desierto de fondo (parallax en home.js), título enorme en dos tonos y cada Desert Quest como un pase de
   pasajero con talón troquelado. The Amazing Trip, como una ruta que se dibuja. Todo lleva a su landing. */
.viajeros { position: relative; overflow: hidden; isolation: isolate; background: var(--ink); color: var(--paper); }
.viajeros__fondo { position: absolute; inset: 0; z-index: -1; }
.viajeros__fondo img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.18); filter: saturate(0.85) brightness(0.55); will-change: transform; }
.viajeros__fondo::after { content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, var(--ink) 0%, rgba(14,13,11,0.55) 22%, rgba(14,13,11,0.35) 50%, rgba(14,13,11,0.82) 82%, var(--ink) 100%),
              radial-gradient(120% 70% at 80% 10%, rgba(255,204,0,0.16), transparent 60%); }
.viajeros__cab { max-width: 900px; }
.viajeros__cab .eyebrow { color: var(--sun); }
.viajeros__titulo { margin: 14px 0 22px; font: 800 clamp(58px, 10.5vw, 168px)/0.86 var(--f-display); text-transform: uppercase; letter-spacing: -0.01em; }
.viajeros__titulo span { display: block; }
.viajeros__titulo span + span { color: var(--sun); }
.viajeros__cab .lede { color: #e6e0d2; max-width: 620px; }

.pases { display: grid; gap: 22px; margin-top: clamp(40px, 6vw, 72px); }
.pase { --corte: 18px; position: relative; display: grid; grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.35fr) minmax(220px, 0.6fr);
  color: var(--sand-ink); border-radius: var(--r-lg); text-decoration: none;
  box-shadow: 0 40px 80px -30px rgba(0,0,0,0.75); transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s; }
.pase:hover { transform: translateY(-6px) rotate(-0.3deg); box-shadow: 0 50px 90px -30px rgba(0,0,0,0.85); }
.pase__foto { position: relative; overflow: hidden; border-radius: var(--r-lg) 0 0 var(--r-lg); min-height: 260px; }
.pase__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.pase:hover .pase__foto img { transform: scale(1.06); }
.pase__sello { position: absolute; left: 16px; bottom: 16px; font: 800 13px/1 var(--f-display); letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--sun-ink); background: var(--sun); padding: 7px 10px; border-radius: 4px; }
.pase__cuerpo { display: grid; gap: 12px; align-content: start; padding: clamp(22px, 2.4vw, 32px); background: var(--paper); }
/* Troquel: medias lunas recortadas de verdad (se ve el fondo) entre el cuerpo y el talón */
.pase__cuerpo, .pase__talon { --m1: radial-gradient(circle at var(--cx) 0, #0000 calc(var(--corte) / 2), #000 calc(var(--corte) / 2 + 0.5px)) top / 100% 51% no-repeat;
  --m2: radial-gradient(circle at var(--cx) 100%, #0000 calc(var(--corte) / 2), #000 calc(var(--corte) / 2 + 0.5px)) bottom / 100% 51% no-repeat;
  -webkit-mask: var(--m1), var(--m2); mask: var(--m1), var(--m2); }
.pase__cuerpo { --cx: 100%; }
.pase__talon { --cx: 0; }
.pase__fila { display: flex; justify-content: space-between; gap: 12px; font: 500 11px/1 var(--f-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--sand-muted); }
.pase__clase { color: #8a5a00; }
.pase h3 { margin: 4px 0 0; font: 800 clamp(34px, 3.6vw, 54px)/0.92 var(--f-display); text-transform: uppercase; }
.pase p { margin: 0; font-size: 16px; line-height: 1.5; }
.pase__datos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 6px 0 0; padding-top: 14px; border-top: 1px dashed var(--sand-line); }
.pase__datos div { display: grid; gap: 5px; }
.pase__datos dt { font: 500 10px/1 var(--f-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--sand-muted); }
.pase__datos dd { margin: 0; font: 700 17px/1.1 var(--f-display); text-transform: uppercase; letter-spacing: 0.02em; }
/* Talón troquelado: línea punteada con dos medias lunas recortadas */
.pase__talon { position: relative; display: grid; gap: 14px; align-content: center; padding: 26px 24px; background: var(--paper); border-radius: 0 var(--r-lg) var(--r-lg) 0;
  background-image: linear-gradient(rgba(42,37,27,0.3) 50%, transparent 0); background-size: 2px 10px; background-repeat: repeat-y; background-position: 0 0; }
.pase__codigo { font: 700 13px/1 var(--f-mono); letter-spacing: 0.2em; color: var(--sand-muted); }
.pase__precio small { display: block; font: 500 10px/1 var(--f-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--sand-muted); margin-bottom: 6px; }
.pase__precio b { font: 800 clamp(48px, 4.6vw, 64px)/0.9 var(--f-display); }
.pase__barras { display: flex; gap: 2px; height: 34px; overflow: hidden; opacity: 0.85; }
.pase__barras i { flex: none; width: var(--w); background: var(--sand-ink); }

.viaje-ruta { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(24px, 4vw, 56px); align-items: center; margin-top: 22px;
  padding: clamp(24px, 3vw, 40px); border-radius: var(--r-lg); border: 1px dashed var(--line-strong); background: rgba(14,13,11,0.55);
  backdrop-filter: blur(6px); color: var(--paper); text-decoration: none; transition: border-color .3s, background .3s; }
.viaje-ruta:hover { border-color: var(--sun); background: rgba(14,13,11,0.7); }
.viaje-ruta .eyebrow { color: var(--sun); }
.viaje-ruta__cab { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.viaje-ruta__cab .eyebrow { margin: 0; }
.viaje-ruta__estado { font: 500 11px/1 var(--f-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--paper); border: 1px solid var(--line-strong); border-radius: 999px; padding: 6px 10px; }
.viaje-ruta h3 { margin: 10px 0 12px; font: 800 clamp(32px, 3.4vw, 48px)/0.95 var(--f-display); text-transform: uppercase; }
.viaje-ruta p { margin: 0 0 18px; color: #d9d3c4; font-size: 16px; line-height: 1.55; }
.viaje-ruta .link-arrow { color: var(--sun); }
.viaje-ruta__mapa { width: 100%; height: auto; overflow: visible; }
.viaje-ruta__base { fill: none; stroke: var(--line-strong); stroke-width: 2; stroke-dasharray: 4 6; }
.viaje-ruta__linea { fill: none; stroke: var(--sun); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 2.2s cubic-bezier(.6,.1,.2,1) .2s; }
.viaje-ruta.is-in .viaje-ruta__linea { stroke-dashoffset: 0; }
.viaje-ruta__punto circle { fill: var(--ink); stroke: var(--sun); stroke-width: 3; }
.viaje-ruta__punto text { fill: var(--paper); font: 700 15px var(--f-display); letter-spacing: 0.08em; text-transform: uppercase; }
.viaje-ruta__punto { opacity: 0; transition: opacity .4s calc(.3s + var(--i) * .4s); }
.viaje-ruta.is-in .viaje-ruta__punto { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .viaje-ruta__linea { stroke-dashoffset: 0; transition: none; } .viaje-ruta__punto { opacity: 1; transition: none; } }
@media (max-width: 1000px) {
  .pase { grid-template-columns: minmax(0, 1fr); }
  .pase__foto { border-radius: var(--r-lg) var(--r-lg) 0 0; min-height: 0; aspect-ratio: 16 / 9; }
  .pase__talon { grid-template-columns: 1fr auto; align-items: end; border-radius: 0 0 var(--r-lg) var(--r-lg);
    background-image: linear-gradient(90deg, rgba(42,37,27,0.3) 50%, transparent 0); background-size: 10px 2px; background-repeat: repeat-x; }
  /* En columna, el troquel va arriba del talón: medias lunas a izquierda y derecha */
  .pase__cuerpo, .pase__talon { --m1: radial-gradient(circle at 0 var(--cy), #0000 calc(var(--corte) / 2), #000 calc(var(--corte) / 2 + 0.5px)) left / 51% 100% no-repeat;
    --m2: radial-gradient(circle at 100% var(--cy), #0000 calc(var(--corte) / 2), #000 calc(var(--corte) / 2 + 0.5px)) right / 51% 100% no-repeat; }
  .pase__cuerpo { --cy: 100%; }
  .pase__talon { --cy: 0; }
  .pase__talon .btn { grid-column: 1 / -1; }
  .pase__barras { justify-content: flex-end; }
  .viaje-ruta { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) { .pase__datos { grid-template-columns: 1fr 1fr; } .pase__datos div:last-child { grid-column: 1 / -1; } }

/* Calendario del inicio: solo las 5 salidas más cercanas; «Ver más» despliega el resto (Giaz, 22-oct-2026) */
#calendario.cal-recortado .cal-extra { display: none; }
.cal-mas { display: flex; margin: 28px auto 0; }

/* ---------- Landing de The Amazing Trip (viajero.html, Giaz, 26-oct-2026) ---------- */
.vj-hero .fact b .muted { font: 500 12px/1 var(--f-mono); letter-spacing: 0.06em; }
.vj-estado { font-size: 34px !important; text-transform: uppercase; color: var(--sun); }
.vj-ruta { display: block; margin: 0; border-style: solid; }
.vj-ruta .viaje-ruta__mapa { max-width: 640px; margin-inline: auto; display: block; }
.vj-otros { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 18px; }
.vj-otro { position: relative; display: grid; grid-template-columns: 120px 1fr auto; gap: 18px; align-items: center; padding: 12px; padding-right: 20px;
  border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--ink); text-decoration: none; transition: border-color .3s, transform .3s; }
.vj-otro:hover { border-color: var(--sun); transform: translateY(-3px); }
.vj-otro img { width: 120px; height: 96px; object-fit: cover; border-radius: var(--r); }
.vj-otro span { font: 500 11px/1 var(--f-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--sun); }
.vj-otro h3 { margin: 6px 0; font: 800 26px/0.95 var(--f-display); text-transform: uppercase; }
.vj-otro b { font: 700 18px/1 var(--f-display); }
.vj-otro b small { font: 500 11px/1 var(--f-mono); color: var(--muted); text-transform: uppercase; letter-spacing: 0.08em; }
.vj-otro i { color: var(--sun); }
.vj-otro i svg { width: 22px; height: 22px; }
@media (max-width: 560px) { .vj-otro { grid-template-columns: 88px 1fr auto; } .vj-otro img { width: 88px; height: 76px; } }

/* Mejora sugerida en la hoja de reserva (Giaz, 26-oct-2026): Cañón de los Perdidos → Desierto Enigmático.
   Al hacer clic, la página carga esa experiencia (experiencia.js, cambiarA). */
.mejora { display: grid; grid-template-columns: 64px 1fr auto; gap: 14px; align-items: center; width: 100%; padding: 10px 14px 10px 10px; text-align: left;
  border: 1px solid rgba(255,204,0,0.5); border-radius: var(--r); background: linear-gradient(100deg, rgba(255,204,0,0.16), rgba(255,204,0,0.04)); color: var(--paper);
  cursor: pointer; transition: border-color .25s, transform .25s, background .25s; }
.mejora:hover { border-color: var(--sun); transform: translateY(-2px); background: linear-gradient(100deg, rgba(255,204,0,0.24), rgba(255,204,0,0.06)); }
.mejora img { width: 64px; height: 64px; object-fit: cover; border-radius: var(--r-sm); }
.mejora__texto { display: grid; gap: 4px; }
.mejora__texto small { font: 500 10px/1 var(--f-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--sun); }
.mejora__texto b { font: 800 20px/1 var(--f-display); text-transform: uppercase; }
.mejora__texto > span { font-size: 13.5px; line-height: 1.4; color: #d9d4c7; }
.mejora i { color: var(--sun); }
.mejora i svg { width: 20px; height: 20px; }
/* Bloque de la mejora después del itinerario (Giaz, 26-oct-2026) */
.mejora-bloque { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); overflow: hidden; border-radius: var(--r-lg);
  border: 1px solid rgba(255,204,0,0.45); background: linear-gradient(120deg, rgba(255,204,0,0.12), rgba(255,204,0,0.02) 60%), var(--ink-2); }
.mejora-bloque__foto { position: relative; min-height: 260px; }
.mejora-bloque__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mejora-bloque__foto .pill { position: absolute; left: 14px; top: 14px; }
.mejora-bloque__texto { display: grid; gap: 12px; align-content: center; padding: clamp(22px, 3vw, 34px); }
.mejora-bloque__texto .eyebrow { margin: 0; color: var(--sun); }
.mejora-bloque__texto h2 { margin: 0; }
.mejora-bloque__texto > p { margin: 0; font-size: 16px; line-height: 1.55; }
.mejora-bloque__pie { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 14px; margin-top: 6px; }
.mejora-bloque__pie small { display: block; font: 500 10px/1 var(--f-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); margin-bottom: 4px; }
.mejora-bloque__pie b { font: 800 34px/1 var(--f-display); }
@media (max-width: 700px) { .mejora-bloque { grid-template-columns: 1fr; } .mejora-bloque__foto { min-height: 0; aspect-ratio: 16 / 9; } }

/* Fecha a elección en la reserva (Desert Quest «a pedido», como Desert Taxi; Giaz, 26-oct-2026) */
.fecha-pedido { display: grid; gap: 8px; }
.fecha-pedido input { width: 100%; padding: 12px 14px; border-radius: var(--r); border: 1px solid var(--line-strong); background: var(--ink); color: var(--paper);
  font: 600 16px/1.2 var(--f-body); color-scheme: dark; }
.fecha-pedido input:focus { outline: 2px solid var(--sun); outline-offset: 1px; }
.fecha-pedido span { font-size: 13px; color: var(--muted); }

/* ---------- Landing de la línea Desert Quest (desert-quest.html, Giaz, 26-oct-2026) ----------
   Marca enorme sobre la foto, qué es (texto y cuatro puntos), las actividades como pases de pasajero sobre el
   desierto, cómo funciona y un cierre hacia Signature para quien tiene su 4x4. */
.dq-hero { position: relative; min-height: 92vh; display: flex; align-items: flex-end; isolation: isolate; overflow: hidden;
  padding: calc(var(--header-h) + var(--announce-h, 0px) + 60px) 0 clamp(48px, 7vw, 96px); }
.dq-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.dq-hero::after { content: ''; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(0deg, var(--ink) 0%, rgba(14,13,11,0.55) 45%, rgba(14,13,11,0.25) 100%), radial-gradient(90% 60% at 15% 100%, rgba(255,204,0,0.14), transparent 60%); }
.dq-hero .eyebrow { color: var(--sun); }
.dq-hero__marca { margin: 10px 0 0; font: 800 clamp(76px, 15vw, 236px)/0.82 var(--f-display); text-transform: uppercase; letter-spacing: -0.015em; }
.dq-hero__bajada { margin: 18px 0 0; font: 800 clamp(26px, 3.4vw, 46px)/1 var(--f-display); text-transform: uppercase; }
.dq-hero__bajada span + span { color: var(--sun); }
.dq-hero__bts { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.dq-que__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 88px); align-items: start; }
.dq-que__grid > div > p { font-size: 18px; line-height: 1.6; margin: 18px 0 0; }
.dq-que__lede { color: var(--sand-ink) !important; }
.dq-puntos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.dq-punto { padding: 22px; border-radius: var(--r-lg); background: rgba(255,255,255,0.5); border: 1px solid var(--sand-line); }
.dq-punto span { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--sand-ink); color: var(--sun); }
.dq-punto span svg { width: 22px; height: 22px; }
.dq-punto h3 { margin: 14px 0 6px; font: 800 24px/1 var(--f-display); text-transform: uppercase; }
.dq-punto p { margin: 0; font-size: 15px; line-height: 1.5; color: var(--sand-muted); }
.dq-actividades .viajeros__cab h2 { margin: 14px 0 18px; }
.dq-pasos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.dq-paso { padding: 28px 26px; border-radius: var(--r-lg); background: var(--ink-2); border: 1px solid var(--line); }
.dq-paso span { font: 800 64px/0.9 var(--f-display); color: var(--sun); }
.dq-paso h3 { margin: 14px 0 8px; font: 800 28px/1 var(--f-display); text-transform: uppercase; }
.dq-paso p { margin: 0; color: #d9d4c7; font-size: 16px; line-height: 1.55; }
.dq-cierre__grid { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; }
.dq-cierre__grid > div { max-width: 640px; }
.dq-cierre__grid h2 { margin: 8px 0 10px; }
.dq-cierre__grid p { margin: 0; font-size: 17px; line-height: 1.55; }
@media (max-width: 900px) { .dq-que__grid, .dq-pasos { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 520px) { .dq-puntos { grid-template-columns: minmax(0, 1fr); } }
.viajeros__link { display: inline-flex; margin-top: 18px; color: var(--sun); }

/* ---------- Campaña para limpiar stock en el inicio (Giaz, 26-oct-2026) ---------- */
.liq__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.liq__item { display: flex; flex-direction: column; border-radius: var(--r-lg); overflow: hidden; background: #fff; border: 1px solid color-mix(in srgb, var(--sun) 60%, transparent);
  color: var(--sand-ink); text-decoration: none; transition: transform .3s, box-shadow .3s; }
.liq__item:hover { transform: translateY(-4px); box-shadow: 0 24px 50px -24px rgba(0,0,0,0.35); }
.liq__img { position: relative; aspect-ratio: 4 / 3; overflow: hidden; display: grid; place-items: center; background: #fff; }
.liq__img img { width: 78%; height: 78%; object-fit: contain; }
.liq__desc { position: absolute; left: 14px; top: 14px; font: 800 22px/1 var(--f-display); background: var(--sand-ink); color: var(--sun); padding: 0.32em 0.5em 0.4em; border-radius: 6px; }
.liq__cuerpo { display: grid; gap: 8px; padding: 18px 20px 20px; border-top: 1px solid var(--sand-line); }
.liq__cuerpo small { font: 500 10.5px/1.2 var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--sand-muted); }
.liq__cuerpo h3 { margin: 0; font: 800 22px/1.05 var(--f-display); text-transform: uppercase; }
.liq__precio { display: flex; align-items: baseline; gap: 10px; }
.liq__precio s { color: var(--sand-muted); font-size: 15px; }
.liq__precio b { font: 800 30px/1 var(--f-display); }
.liq__stock { margin: 0; font-size: 14px; color: #8a5a00; }
.liq__item .link-arrow { color: var(--sand-ink); }
@media (max-width: 900px) { .liq__grid { grid-template-columns: minmax(0, 1fr); } }
/* Precio de un producto importado (Rough Country): cómo se arma, sin subrayar (Giaz, 26-oct-2026) */
.producto__importado { display: block; margin-top: 10px; font: 500 11px/1.45 var(--f-mono); letter-spacing: 0.02em; color: var(--muted); }

/* ---- Guía de secciones (31-oct-2026; transparente y sin bordes, 2-nov-2026) ----
   Un índice fijo en el borde derecho, también en celular: una columna de puntos sin fondo ni recuadros. El color sigue
   al fondo de la sección (claro sobre oscuro, oscuro sobre claro) y una sombra suave lo mantiene legible sobre fotos.
   En computadora, el nombre de la sección actual está siempre a la vista; en celular aparece al hacer scroll y se
   va solo, para no tapar el texto. */
.guia-sec { --gs-tinta: #f4f1ea; --gs-sombra: rgba(14, 13, 11, .75); --gs-acento: var(--sun);
  position: fixed; right: 4px; top: 50%; transform: translateY(-50%); z-index: 40; }
.guia-sec--clara { --gs-tinta: #1a1710; --gs-sombra: rgba(244, 241, 234, .8); --gs-acento: var(--ink); }
.guia-sec ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; align-items: flex-end; }
.guia-sec li { position: relative; }
.guia-sec a { position: relative; display: flex; align-items: center; justify-content: flex-end; gap: 9px; height: 21px; padding: 0 5px 0 12px;
  text-decoration: none; color: var(--gs-tinta); touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
.guia-sec a::before { content: ""; position: absolute; top: 0; bottom: 0; left: -14px; right: -4px; }   /* zona de toque más grande que el punto */
.guia-sec__punto { width: 5px; height: 5px; border-radius: 50%; background: currentColor; opacity: .6; flex: none;
  box-shadow: 0 0 3px var(--gs-sombra); transition: transform .2s, opacity .2s; }
.guia-sec__txt { order: -1; opacity: 0; transform: translateX(6px); white-space: nowrap; pointer-events: none;
  font: 600 10.5px/1 var(--f-mono); letter-spacing: .1em; text-transform: uppercase;
  text-shadow: 0 0 4px var(--gs-sombra), 0 0 10px var(--gs-sombra); transition: opacity .25s, transform .25s; }
.guia-sec a.is-activa .guia-sec__punto { opacity: 1; transform: scale(1.7); background: var(--gs-acento); }
.guia-sec a.is-activa { color: var(--gs-acento); }
.guia-sec a.is-activa .guia-sec__txt { opacity: 1; transform: none; }
@media (hover: hover) { .guia-sec:hover .guia-sec__txt { opacity: 1; transform: none; color: var(--gs-tinta); } .guia-sec a:hover .guia-sec__punto { opacity: 1; transform: scale(1.4); } }
.guia-sec a:focus-visible { outline: 2px solid var(--gs-acento); outline-offset: 1px; border-radius: 6px; }
.guia-sec a:focus-visible .guia-sec__txt { opacity: 1; transform: none; }
/* Celular y tableta: solo los puntos, en una franja angosta pegada al borde (dentro del margen de la página, para no tapar botones ni
   fechas). El nombre de la sección actual aparece al hacer scroll y se va solo. La franja se puede arrastrar como un deslizador
   (touch-action: none) y recorre las secciones al instante (3-nov-2026). */
@media (max-width: 1100px) {
  .guia-sec { right: 0; width: 14px; touch-action: none; user-select: none; -webkit-user-select: none; }
  .guia-sec ol { align-items: stretch; }
  .guia-sec a { width: 14px; padding: 0; justify-content: center; touch-action: none; }
  .guia-sec a::before { left: 0; right: 0; }
  .guia-sec__txt { position: absolute; right: 100%; top: 50%; margin-right: 4px; transform: none; translate: 6px -50%; }
  .guia-sec a.is-activa .guia-sec__txt { opacity: 0; transform: none; translate: 6px -50%; }
  .guia-sec--ver a.is-activa .guia-sec__txt, .guia-sec--arrastre a.is-activa .guia-sec__txt { opacity: 1; translate: 0 -50%; }
  .guia-sec--arrastre .guia-sec__punto { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) { .guia-sec__txt, .guia-sec__punto { transition: none; } }

/* ---------- Calendario del inicio: vista Lista / Calendario y botón .ics (Giaz, 3-nov-2026) ---------- */
.cal-modos { display: inline-flex; gap: 4px; padding: 4px; margin: 0 0 22px; border: 1px solid var(--line); border-radius: 999px; }
.cal-modos button { appearance: none; border: 0; background: transparent; color: var(--muted); font: 600 14px/1 var(--f-body, inherit); padding: 10px 18px; border-radius: 999px; cursor: pointer; }
.cal-modos button[aria-pressed='true'] { background: var(--sun); color: #000; }
.cal-modos button:focus-visible, .cal-ics:focus-visible, .cal-mes__cab button:focus-visible, .cal-ev:focus-visible { outline: 2px solid var(--sun); outline-offset: 2px; }
#calendario.cal-vista-mes #events, #calendario.cal-vista-mes #tickets, #calendario.cal-vista-mes .cal-mas { display: none; }
.cal-ics { appearance: none; display: inline-grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--line); border-radius: 10px; background: transparent; color: #fff; cursor: pointer; flex: none; }
.cal-ics:hover { border-color: var(--sun); color: var(--sun); }
.cal-ics svg { width: 20px; height: 20px; }
.event-row__cta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.tk-pie { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.cal-mes__cab { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.cal-mes__cab h3 { margin: 0; font: 700 22px/1.1 var(--f-display, inherit); }
.cal-mes__cab h3::first-letter { text-transform: uppercase; }
.cal-mes__cab button { appearance: none; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 10px; background: transparent; color: #fff; font-size: 24px; line-height: 1; cursor: pointer; }
.cal-mes__cab button:hover { border-color: var(--sun); color: var(--sun); }
.cal-mes__sem, .cal-mes__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.cal-mes__sem span { text-align: center; font: 600 12px/1 var(--f-mono, inherit); letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); padding: 6px 0; }
.cal-dia { min-height: 92px; padding: 6px; border: 1px solid var(--line); border-radius: 10px; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.cal-dia--fuera { opacity: 0.35; }
.cal-dia--hoy { border-color: var(--sun); }
.cal-dia__n { font: 600 13px/1 var(--f-mono, inherit); color: var(--muted); }
.cal-ev { --c: var(--lvl-1); display: block; padding: 5px 7px; border-radius: 6px; background: color-mix(in srgb, var(--c) 28%, transparent); border-left: 3px solid var(--c); color: #fff; font-size: 12px; line-height: 1.2; text-decoration: none; min-width: 0; }
.cal-ev span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cal-ev:hover { background: color-mix(in srgb, var(--c) 45%, transparent); }
.cal-ev[data-level='2'] { --c: var(--lvl-2); } .cal-ev[data-level='3'] { --c: var(--lvl-3); }
.cal-mes__lista { margin-top: 24px; display: grid; gap: 12px; }
.cal-item { display: grid; grid-template-columns: auto 1fr auto; gap: 16px; align-items: center; padding: 14px; border: 1px solid var(--line); border-radius: 14px; }
.cal-item .tk-stub { display: grid; place-items: center; text-align: center; min-width: 56px; }
.cal-item h4 { margin: 0 0 4px; font-size: 17px; } .cal-item h4 a { color: inherit; text-decoration: none; } .cal-item small { color: var(--muted); }
.cal-item__acc { display: flex; align-items: center; gap: 10px; }
@media (max-width: 720px) {
  .cal-dia { min-height: 56px; padding: 4px; align-items: center; }
  .cal-ev { width: 10px; height: 10px; padding: 0; border-radius: 50%; border-left: 0; background: var(--c); }
  .cal-ev span { display: none; }
  .cal-dia--con { flex-direction: row; flex-wrap: wrap; align-content: flex-start; justify-content: center; }
  .cal-dia--con .cal-dia__n { flex-basis: 100%; text-align: center; }
  .cal-item { grid-template-columns: auto 1fr; } .cal-item__acc { grid-column: 1 / -1; }
}

/* ---------- Reserva: diálogo de datos de contacto (etapa 1, 3-nov-2026) ---------- */
.rc__caja { display: grid; gap: 14px; }
.rc__caja h3 { margin: 0; }
.rc__campo { display: grid; gap: 6px; font: 600 13px/1.2 var(--f-mono, inherit); letter-spacing: 0.04em; color: var(--muted); }
.rc__campo input { font: 500 16px/1.3 var(--f-body, inherit); letter-spacing: 0; color: #fff; background: rgba(255,255,255,0.06); border: 1px solid var(--line-strong, var(--line)); border-radius: 10px; padding: 12px 14px; min-height: 44px; }
/* Vehículo propio (reserva): modelo, año y confirmación de que cumple lo que pide la salida */
.veh-propio { display: grid; gap: 12px; margin-top: 12px; }
.veh-propio[hidden], #alquiler[hidden] { display: none; }
.rc__campo input[aria-invalid="true"] { border-color: #ff7a5c; }
.rc__campo input:focus-visible { outline: 2px solid var(--sun); outline-offset: 1px; }
.rc__trampa { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.rc__acepta { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: var(--muted); }
.rc__acepta input { width: 22px; height: 22px; margin-top: 1px; accent-color: var(--sun); flex: none; }
.rc__error { margin: 0; padding: 10px 12px; border-radius: 10px; background: rgba(255,90,60,0.14); color: #ffb4a3; font-size: 14px; }
.rc__acc { display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap; }
.rc [hidden] { display: none !important; }

/* ---------- Confirmar la reserva en la web (reserva.html, 3-nov-2026) ---------- */
.rv__grid { display: grid; gap: 20px; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); align-items: start; }
@media (max-width: 860px) { .rv__grid { grid-template-columns: minmax(0, 1fr); } }
.rv__resumen h2 { margin: 6px 0; }
.rv__lineas { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 8px; }
.rv__lineas li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.rv__total { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin: 14px 0 6px; font-size: 18px; }
.rv__total b { font: 800 30px/1 var(--f-display); color: var(--sun); }
.rv__acc { display: grid; gap: 14px; align-content: start; }
.rv__acc h3 { margin: 0; font: 700 24px/1.1 var(--f-display); text-transform: uppercase; }
.rv__aviso { margin: 0; padding: 10px 12px; border-radius: 10px; background: rgba(255,204,0,0.12); color: var(--sun); font-size: 14px; }
.rv__ok { border-color: color-mix(in srgb, var(--lvl-1) 55%, transparent); }
.rv__opciones { display: grid; gap: 10px; }
.rv__op { display: grid; gap: 4px; padding: 14px 16px; border: 1px solid var(--line-strong, var(--line)); border-radius: 12px; color: inherit; text-decoration: none; min-height: 44px; }
a.rv__op:hover { border-color: var(--sun); }
.rv__op b { font-size: 16px; } .rv__op small { color: var(--muted); }
.rv__op--pronto { opacity: 0.55; border-style: dashed; }
.rv__acc h3 svg { width: 26px; height: 26px; vertical-align: -5px; margin-right: 6px; color: var(--lvl-1); }

/* Preguntas frecuentes y cancelación de una experiencia (configuradas en el Core, 3-nov-2026) */
.xp-faq { display: grid; gap: 8px; }
.xp-faq details { border: 1px solid var(--line); border-radius: 12px; padding: 12px 16px; }
.xp-faq summary { cursor: pointer; font-weight: 600; min-height: 24px; }
.xp-faq p, .xp-cancel { margin: 10px 0 0; color: var(--muted); white-space: pre-line; }
.linea-grid { display: grid; gap: 22px; grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr)); }

/* ---------- Manifiesto de la reserva: una tarjeta por persona (5-nov-2026) ---------- */
.rc--manifiesto .pt-modal__caja { width: min(560px, 100%); }
.mf__caja { gap: 16px; }
.mf__persona { margin: 0; min-width: 0; display: grid; gap: 12px; padding: 18px 16px 16px; border: 1px solid var(--line-strong, var(--line)); border-radius: 14px; background: rgba(255,255,255,0.03); }
.mf__persona legend { display: flex; align-items: center; gap: 8px; padding: 0 8px; font-size: 15px; color: #fff; }
.mf__num { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--sun); color: var(--sun-ink, #1a1400); font: 700 13px/1 var(--f-mono, inherit); }
.mf__fila { display: grid; grid-template-columns: minmax(0, 1fr) 96px; gap: 10px; align-items: end; }
.mf__rango { margin-top: -6px; color: var(--muted); font-size: 12.5px; }
.mf__opc { display: grid; gap: 10px; padding-top: 12px; border-top: 1px dashed var(--line); }
.mf__persona .rc__campo { font-size: 12.5px; text-transform: none; }
.mf__persona .rc__campo em { font-style: normal; font-weight: 500; opacity: .7; margin-left: 4px; }
.mf__persona .rc__campo input { min-width: 0; }
.mf__persona .mf__opc input { padding: 10px 12px; min-height: 40px; font-size: 15px; }
.mf__caja .rc__acepta { padding: 14px; border-radius: 12px; background: rgba(255,255,255,0.04); }
.mf__caja .rc__acc { position: sticky; bottom: -26px; z-index: 1; flex-direction: column-reverse; padding: 14px 0 4px; background: linear-gradient(to bottom, transparent, var(--ink-2) 22%); }
.mf__caja .rc__acc .btn { width: 100%; justify-content: center; }
@media (max-width: 420px) { .mf__fila { grid-template-columns: minmax(0, 1fr) 84px; } .pt-modal__caja.mf__caja { padding: 26px 18px 22px; } }

/* Firma dibujada del manifiesto (5-nov-2026) */
.mf__firma { display: grid; gap: 8px; }
.mf__firma-cab { display: flex; justify-content: space-between; align-items: baseline; font: 600 13px/1.2 var(--f-mono, inherit); letter-spacing: 0.04em; color: var(--muted); }
.mf__firma canvas { width: 100%; aspect-ratio: 520 / 170; border-radius: 12px; background: #fff; border: 2px dashed var(--line-strong, var(--line)); touch-action: none; cursor: crosshair; }
.mf__firma--falta canvas { border-color: #ff7a5c; }

.rc__dos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width: 380px) { .rc__dos { grid-template-columns: 1fr; } }
.mf__firma { scroll-margin-bottom: 200px; }

/* Página del Adventours Meet (5-nov-2026) */
.mt__ficha { margin-top: 28px; max-width: 760px; }
.mt__cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 64px); align-items: start; }
.mt__pasos { list-style: none; counter-reset: paso; margin: 24px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.mt__pasos li { counter-increment: paso; padding: 20px; border: 1px solid var(--line-strong); border-radius: var(--r-lg, 16px); background: rgba(255,255,255,0.03); }
.mt__pasos li::before { content: counter(paso); display: inline-grid; place-items: center; width: 32px; height: 32px; margin-bottom: 10px; border-radius: 50%; background: var(--sun); color: var(--sun-ink, #1a1400); font: 800 16px/1 var(--f-display); }
.mt__pasos b { display: block; font: 700 20px/1.15 var(--f-display); text-transform: uppercase; }
.mt__pasos p { margin: 6px 0 0; color: var(--muted); font-size: 15px; line-height: 1.45; }
@media (max-width: 860px) { .mt__cols, .mt__pasos { grid-template-columns: 1fr; } }

/* Página de evento por bloques (5-nov-2026): álbum, video, texto libre, brochure y hoja de impresión (Guardar como PDF) */
.xp-descargas { margin-top: 18px; display: flex; gap: 10px; flex-wrap: wrap; }
.xp-album { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; margin-top: 16px; }
.xp-album a { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 12px; border: 1px solid var(--line); }
.xp-album img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s var(--ease, ease); }
.xp-album a:hover img { transform: scale(1.04); }
.xp-video { position: relative; margin-top: 16px; aspect-ratio: 16 / 9; border-radius: 14px; overflow: hidden; border: 1px solid var(--line); background: #000; }
.xp-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.xp-texto { font-size: 18px; line-height: 1.6; margin: 14px 0 0; }
@media print {
  body.xp-imprimible { background: #fff !important; color: #000 !important; }
  body.xp-imprimible .announce, body.xp-imprimible .site-top, body.xp-imprimible .site-header, body.xp-imprimible .site-footer, body.xp-imprimible #reservar, body.xp-imprimible .mobile-book,
  body.xp-imprimible .section--sand, body.xp-imprimible .xp-descargas, body.xp-imprimible .xp-video, body.xp-imprimible .guia-sec, body.xp-imprimible .crumbs, body.xp-imprimible .toast { display: none !important; }
  body.xp-imprimible .xp-layout { display: block !important; }
  body.xp-imprimible .xp-hero { min-height: 0 !important; background: none !important; color: #000 !important; padding: 0 0 12px !important; }
  body.xp-imprimible .xp-hero img { max-height: 280px; width: 100%; object-fit: cover; position: static !important; border-radius: 8px; }
  body.xp-imprimible .xp-block { break-inside: avoid; color: #000 !important; border-color: #999 !important; background: #fff !important; }
  body.xp-imprimible * { color: #000 !important; text-shadow: none !important; box-shadow: none !important; }
  body.xp-imprimible .pill, body.xp-imprimible .fact, body.xp-imprimible .req, body.xp-imprimible .map-card, body.xp-imprimible .list-card { border: 1px solid #999 !important; background: #fff !important; }
  body.xp-imprimible .req span { background: #eee !important; }
  body.xp-imprimible .xp-hero::before, body.xp-imprimible .xp-hero::after { display: none !important; }
  body.xp-imprimible .xp-hero { display: block !important; }
}
