/* GENERADO por kit/ensamblar.py. No editar aqui: edita v2/sistema.css o v2/secciones/*.css */
@font-face {
  font-family: 'Cormorant Respaldo';
  src: local('Georgia'), local('Times New Roman'), local('Liberation Serif');
  size-adjust: 97.4%;
  ascent-override: 94.9%;
  descent-override: 29.5%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Manrope Respaldo';
  src: local('Arial'), local('Helvetica Neue'), local('Roboto'), local('Segoe UI');
  size-adjust: 110.1%;
  ascent-override: 96.8%;
  descent-override: 27.2%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Mono Respaldo';
  src: local('Courier New'), local('Liberation Mono'), local('DejaVu Sans Mono');
  size-adjust: 100%;
  ascent-override: 102%;
  descent-override: 30%;
  line-gap-override: 0%;
}

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

html {

  background: linear-gradient(180deg,
      #0B2B3D 0%, #072030 25%, #041826 50%, #03111B 75%, #020A10 100%) fixed;
  background-color: #041826;
  scroll-behavior: smooth;
  scrollbar-gutter: stable;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
html.v3-agua { background: var(--agua, #041826); }

body {
  margin: 0;
  background: transparent;
  color: var(--tinta);
  font-family: var(--sans);
  font-weight: 300;
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4 {
  margin: 0;
  font-family: var(--serif);
  font-weight: 600;
  font-style: normal;
}
p, figure, blockquote, dl, dd, ol, ul { margin: 0; }
ol, ul { padding: 0; list-style: none; }

b, strong { font-weight: 500; }

img, picture, video, canvas, svg { display: block; max-width: 100%; }
img, video { height: auto; }

button, input, select, textarea {
  font: inherit;
  color: inherit;
  letter-spacing: inherit;
  background: none;
  border: 0;
  border-radius: 0;
  margin: 0;
}
button { cursor: pointer; }

a { color: inherit; text-decoration: none; }

hr { border: 0; border-top: 1px solid var(--hilo); margin: 0; }

:where(section, header, footer, article, aside, div)[id] {
  scroll-margin-top: calc(var(--nav-alto) + var(--s16));
}

:root {

  --agua-0: #0B2B3D;
  --agua-1: #072030;
  --agua-2: #041826;
  --agua-3: #03111B;
  --agua-4: #020A10;

  --agua: #041826;

  --luz: #F2B705;
  --luz-ink: #020A10;

  --tinta:   #E6EEF0;
  --tinta-2: #C9D6DA;
  --tinta-3: #9FB3B8;
  --apagado: #5E7178;

  --hilo:        rgba(230,238,240,.14);
  --hilo-suave:  rgba(230,238,240,.12);
  --hilo-medio:  rgba(230,238,240,.25);
  --hilo-fuerte: rgba(230,238,240,.30);

  --velo-lateral:  linear-gradient(90deg, rgba(4,18,28,.94) 0%, rgba(4,18,28,.72) 30%, rgba(4,18,28,.15) 48%, rgba(4,18,28,0) 56%);
  --velo-vertical: linear-gradient(180deg, rgba(4,18,28,.45) 0%, rgba(4,18,28,0) 22%, rgba(4,18,28,0) 80%, rgba(4,18,28,.55) 100%);
  --velo-portada:  linear-gradient(180deg, rgba(2,10,16,.35) 0%, rgba(2,10,16,.05) 30%, rgba(2,10,16,.25) 60%, rgba(2,10,16,.92) 100%);
  --velo-cabina:   linear-gradient(90deg, rgba(2,10,16,0) 60%, rgba(2,10,16,1) 100%), linear-gradient(180deg, rgba(2,10,16,.3), rgba(2,10,16,0) 30%, rgba(2,10,16,0) 70%, rgba(2,10,16,.8));
  --velo-cierre:   linear-gradient(180deg, rgba(2,10,16,1) 0%, rgba(2,10,16,.6) 40%, rgba(2,10,16,.2) 100%);

  --sobre-lienzo: rgba(4,16,26,.72);

  --serif: 'Cormorant Garamond', 'Cormorant Respaldo', Georgia, 'Times New Roman', serif;
  --sans:  'Manrope', 'Manrope Respaldo', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --mono:  'JetBrains Mono', 'Mono Respaldo', ui-monospace, SFMono-Regular, Menlo, monospace;

  --t-portada: clamp(3rem, 8.6vw, 7.75rem);
  --t-cierre:  clamp(3rem, 10.3vw, 9.25rem);
  --t-cabina:  clamp(2.5rem, 5.6vw, 5rem);
  --t-seccion: clamp(2.25rem, 5vw, 4.5rem);
  --t-cota:    clamp(2.25rem, 3.9vw, 3.5rem);
  --t-cifra:   clamp(2rem, 3.05vw, 2.75rem);
  --t-punto:   clamp(1.5rem, 2.65vw, 2.375rem);
  --t-linea:   clamp(1.5rem, 2.5vw, 2.25rem);

  --s4: 4px;   --s8: 8px;   --s12: 12px; --s16: 16px; --s20: 20px; --s28: 28px;
  --s40: 40px; --s56: 56px; --s80: 80px; --s96: 96px; --s120: 120px;

  --marco:    clamp(20px, 2.8vw, 40px);
  --sangrado: clamp(24px, 8.33vw, 120px);
  --aire:     clamp(56px, 6.7vw, 96px);
  --aire-l:   clamp(32px, 5.6vw, 80px);

  --gap:        var(--s28);
  --gap-cabina: var(--s40);
  --gap-fila:   var(--s16);
  --gap-boton:  var(--s12);

  --ancho: 1440px;
  --col-bahia: 520px;
  --nav-alto: 64px;

  --r: 0;
  --r-chip: 4px;

  --ease: cubic-bezier(.16, 1, .3, 1);
  --d-color:   180ms;
  --d-fila:    320ms;
  --d-roll:    400ms;
  --d-reveal:  700ms;
  --d-mascara: 1100ms;
  --escalon:   140ms;

  --z-fondo:     0;
  --z-velo:      1;
  --z-contenido: 2;
  --z-regla:    30;
  --z-nav:      40;
  --z-barra:    50;
  --z-menu:     60;
  --z-capa:     70;
  --z-saltar:  100;

  --v3-t: 0;
}

.v3-t-portada, .v3-t-cierre, .v3-t-cabina, .v3-t-seccion,
.v3-t-cota, .v3-t-cifra, .v3-t-punto, .v3-t-fila {
  font-family: var(--serif);
  font-weight: 600;
  color: var(--tinta);
  text-wrap: balance;
}

.v3-t-portada { font-size: var(--t-portada); line-height: .88; letter-spacing: -.02em; max-width: 14ch; }
.v3-t-cierre  { font-size: var(--t-cierre);  line-height: .86; letter-spacing: -.025em; }
.v3-t-cabina  { font-size: var(--t-cabina);  line-height: .88; letter-spacing: -.02em; max-width: 10ch; }
.v3-t-seccion { font-size: var(--t-seccion); line-height: .90; letter-spacing: -.02em; }
.v3-t-cota    { font-size: var(--t-cota);    line-height: .90; letter-spacing: -.03em; color: var(--luz); font-variant-numeric: lining-nums tabular-nums; }
.v3-t-cifra   { font-size: var(--t-cifra);   line-height: .90; letter-spacing: -.03em; font-variant-numeric: lining-nums; }
.v3-t-punto   { font-size: var(--t-punto);   line-height: .95; letter-spacing: -.01em; }
.v3-t-fila    { font-size: var(--t-linea);   line-height: 1;   letter-spacing: -.02em; }

.v3-it { font-style: italic; font-weight: 600; color: var(--luz); }

.v3-cuerpo-g  { font-size: clamp(1rem, 1.32vw, 1.1875rem); line-height: 1.45; font-weight: 300; color: var(--tinta-2); max-width: 38ch; }
.v3-cuerpo    { font-size: 16px; line-height: 1.5;  font-weight: 300; color: var(--tinta-2); max-width: 36ch; }
.v3-texto-fila{ font-size: 14px; line-height: 1.5;  font-weight: 300; color: var(--tinta-2); }
.v3-nota      { font-size: 13px; line-height: 1.5;  font-weight: 300; color: var(--tinta-2); max-width: 34ch; }
.v3-ui        { font-size: 14px; line-height: 1.2;  font-weight: 500; }
.v3-ui-g      { font-size: 18px; line-height: 1.2;  font-weight: 500; }

.v3-prosa     { font-size: 16px; line-height: 1.6;  font-weight: 300; color: var(--tinta-2); max-width: 60ch; }

.v3-rotulo { font-family: var(--mono); font-weight: 400; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--luz); }
.v3-rotulo--gris { color: var(--tinta-3); }
.v3-mono   { font-family: var(--mono); font-weight: 400; font-size: 12px; letter-spacing: .10em; text-transform: uppercase; color: var(--tinta-3); }
.v3-dato   { font-family: var(--mono); font-weight: 400; font-size: 12px; letter-spacing: 0;    color: var(--tinta-3); }
.v3-num    { font-family: var(--mono); font-weight: 400; font-size: 11px; letter-spacing: 0;    color: var(--tinta-3); font-variant-numeric: tabular-nums; }
.v3-precio { font-family: var(--mono); font-weight: 400; font-size: 16px; letter-spacing: 0;    color: var(--tinta-2); }
.v3-tel    { font-family: var(--mono); font-weight: 400; font-size: 28px; letter-spacing: 0;    color: var(--tinta); }
.v3-pie    { font-family: var(--mono); font-weight: 400; font-size: 11px; letter-spacing: .10em; text-transform: uppercase; color: var(--tinta-3); }

.v3-dato strong, .v3-num strong, .v3-pie strong { font-weight: 500; color: var(--tinta); }

.v3-tabular { font-variant-numeric: lining-nums tabular-nums; }

.v3-columna {
  max-width: var(--ancho);
  margin-inline: auto;
  padding-inline: var(--sangrado);
}
.v3-seccion { position: relative; padding-block: var(--aire); }

.v3-escena  { position: relative; min-height: 100svh; isolation: isolate; }
.v3-fondo   { position: absolute; inset: 0; z-index: var(--z-fondo); overflow: hidden; }
.v3-velo    { position: absolute; inset: 0; z-index: var(--z-velo); pointer-events: none; }
.v3-sobre   { position: relative; z-index: var(--z-contenido); }

.v3-lista > * { border-top: 1px solid var(--hilo); }
.v3-lista--suave > * { border-top-color: var(--hilo-suave); }
.v3-lista--cerrada > *:last-child { border-bottom: 1px solid var(--hilo); }

.v3-fila {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--s20);
  align-items: baseline;
  padding-block: var(--s28);
}
.v3-fila--apretada { padding-block: var(--s12); }

.v3-sobre-lienzo {
  background: var(--sobre-lienzo);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  padding: var(--s12) var(--s16);
}

.v3-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--s8);
  font-family: var(--sans);
  font-weight: 500;
  font-size: 14px;
  line-height: 1.2;
  padding: 14px var(--s20);
  min-height: 44px;
  border: 1px solid transparent;
  border-radius: var(--r);
  text-align: center;
  transition: color var(--d-color) var(--ease),
              border-color var(--d-color) var(--ease),
              background-color var(--d-color) var(--ease);
}

.v3-btn--primario  { background: var(--luz); color: var(--luz-ink); border-color: var(--luz); transition: filter var(--d-color) var(--ease), color var(--d-color) var(--ease); }
.v3-btn--primario:hover  { filter: brightness(1.06); }
.v3-btn--primario:active { filter: brightness(.94); }

.v3-btn--secundario { border-color: var(--hilo-fuerte); color: var(--tinta-2); }
.v3-btn--secundario:hover { border-color: var(--luz); color: var(--luz); }

.v3-btn--luz { border-color: var(--luz); color: var(--luz); padding: 10px var(--s16); }
.v3-btn--luz:hover { background: var(--luz); color: var(--luz-ink); }

.v3-btn--ancho  { width: 100%; }

.v3-btn--grande { padding: 26px var(--s28); justify-content: space-between; font-size: 18px; }
.v3-btn--cierre { padding: 18px 26px; font-size: 15px; }
.v3-btn[disabled], .v3-btn[aria-disabled="true"] { color: var(--apagado); border-color: var(--hilo-suave); background: none; cursor: not-allowed; }

.v3-contador {
  width: 48px; height: 48px;
  display: grid; place-items: center;
  border: 1px solid var(--hilo-fuerte);
  color: var(--tinta);
  font-family: var(--sans); font-weight: 300; font-size: 20px; line-height: 1;
  transition: border-color var(--d-color) var(--ease), color var(--d-color) var(--ease);
}
.v3-contador:hover { border-color: var(--luz); color: var(--luz); }
.v3-contador[disabled] { color: var(--apagado); border-color: var(--hilo-suave); cursor: not-allowed; }

.v3-chip {
  display: inline-flex; align-items: center; gap: var(--s8);
  font-family: var(--mono); font-weight: 400; font-size: 12px; letter-spacing: .06em;
  padding: 12px var(--s16);
  min-height: 44px;
  border: 1px solid var(--hilo-medio);
  border-radius: var(--r-chip);
  color: var(--tinta-2);
  transition: color var(--d-color) var(--ease), border-color var(--d-color) var(--ease);
}
.v3-chip:hover { border-color: var(--luz); color: var(--luz); }
.v3-chip[aria-pressed="true"], .v3-chip.is-activo, .v3-chip[aria-selected="true"] {
  border-color: var(--luz); color: var(--luz);
}

.v3-pastilla {
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--mono); font-weight: 400; font-size: 12px; letter-spacing: .06em;
  padding: 12px var(--s16);
  min-height: 44px;
  border: 1px solid var(--hilo-medio);
  border-radius: var(--r);
  color: var(--tinta-2);
  white-space: nowrap;
  transition: color var(--d-color) var(--ease), border-color var(--d-color) var(--ease);
}
.v3-pastilla:hover { border-color: var(--luz); color: var(--luz); }
.v3-pastilla.is-elegida, .v3-pastilla[aria-pressed="true"] { border-color: var(--luz); color: var(--luz); }
.v3-pastilla[aria-disabled="true"] {
  border-color: var(--hilo-suave); color: var(--apagado);
  text-decoration: line-through; cursor: not-allowed;
}

.v3-campo {
  font-family: var(--mono); font-weight: 400; font-size: 12px; letter-spacing: .04em;
  color: var(--tinta-2);
  padding: 14px var(--s16);
  min-height: 44px;
  border: 1px solid var(--hilo-medio);
  border-radius: var(--r-chip);
  background: transparent;
  transition: border-color var(--d-color) var(--ease);
}
.v3-campo::placeholder { color: var(--tinta-3); opacity: 1; }
.v3-campo:hover { border-color: var(--hilo-fuerte); }
.v3-campo:focus { border-color: var(--luz); }

.v3-enlace { color: var(--tinta-2); text-decoration: underline; text-decoration-color: var(--hilo-fuerte); text-underline-offset: .22em; text-decoration-thickness: 1px; transition: color var(--d-color) var(--ease), text-decoration-color var(--d-color) var(--ease); }
.v3-enlace:hover { color: var(--luz); text-decoration-color: var(--luz); }

.v3-luz-maciza { background: var(--luz); color: var(--luz-ink); }
.v3-luz-maciza .v3-t-fila, .v3-luz-maciza .v3-t-cifra, .v3-luz-maciza .v3-t-punto { color: var(--luz-ink); }
.v3-luz-maciza .v3-nota, .v3-luz-maciza .v3-dato, .v3-luz-maciza .v3-cuerpo { color: rgba(2,10,16,.76); }
.v3-luz-maciza .v3-btn--primario { background: var(--luz-ink); color: var(--luz); border-color: var(--luz-ink); }

@keyframes v3-sube      { from { transform: translate3d(0, 110%, 0); } to { transform: none; } }
@keyframes v3-reveal    { from { opacity: 0; transform: translate3d(0, 24px, 0); } to { opacity: 1; transform: none; } }
@keyframes v3-roll      { from { opacity: 0; transform: translate3d(0, .55em, 0); } to { opacity: 1; transform: none; } }
@keyframes v3-deriva    { from { transform: scale(1.08) translate3d(-1%, .5%, 0); } to { transform: scale(1.12) translate3d(1%, -.6%, 0); } }
@keyframes v3-haces     { from { opacity: .45; transform: rotate(-2deg); } to { opacity: .8; transform: rotate(1.5deg); } }
@keyframes v3-particulas{ from { transform: translate3d(0, 0, 0); } to { transform: translate3d(0, -160px, 0); } }
@keyframes v3-cinta     { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-50%, 0, 0); } }
@keyframes v3-pulso     { 0%, 100% { opacity: .35; } 50% { opacity: 1; } }
@keyframes v3-estampa   { 0% { transform: scale(1.3); } 60% { transform: scale(.97); } 100% { transform: scale(1); } }
@keyframes v3-capa      { from { opacity: 0; transform: translate3d(0, 24px, 0); } to { opacity: 1; transform: none; } }

.v3-reveal { opacity: 0; transform: translate3d(0, 24px, 0); }
.v3-reveal.is-in {
  animation: v3-reveal var(--d-reveal) var(--ease) both;
  animation-delay: calc(var(--i, 0) * 120ms);
}

.v3-mascara { display: block; overflow: hidden; padding-bottom: .04em; }
.v3-linea   { display: block; transform: translate3d(0, 110%, 0); will-change: transform; }
.is-in > .v3-mascara > .v3-linea,
.is-in .v3-linea,
.v3-linea.is-in {
  animation: v3-sube var(--d-mascara) var(--ease) both;
  animation-delay: calc(200ms + var(--i, 0) * var(--escalon));
}

.v3-roll-c { display: inline-block; }
.v3-roll-c.is-nuevo {
  animation: v3-roll var(--d-roll) var(--ease) both;
  animation-delay: calc(var(--i, 0) * 30ms);
}

.v3-expande { display: grid; grid-template-rows: 0fr; transition: grid-template-rows var(--d-fila) var(--ease); }
.v3-expande > * { overflow: hidden; min-height: 0; }
.v3-expande.is-abierta { grid-template-rows: 1fr; }

.v3-deriva     { animation: v3-deriva 26s cubic-bezier(.45, 0, .55, 1) infinite alternate; }
.v3-haces      { animation: v3-haces 21s cubic-bezier(.45, 0, .55, 1) infinite alternate; }
.v3-particulas { animation: v3-particulas 18s linear infinite; }
.v3-pulso      { animation: v3-pulso 2.4s ease-in-out infinite; }

.v3-cinta { overflow: hidden; }
.v3-cinta > * { display: flex; white-space: nowrap; animation: v3-cinta 40s linear infinite; will-change: transform; }
.v3-cinta:hover > *, .v3-cinta:focus-within > * { animation-play-state: paused; }

dialog.v3-capa { border: 0; padding: 0; max-width: 100%; max-height: 100%; background: var(--agua-4); color: var(--tinta); }
dialog.v3-capa[open] { animation: v3-capa 320ms var(--ease) both; }
dialog.v3-capa::backdrop { background: rgba(2,10,16,.72); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation: none !important;
    transition-duration: 1ms !important;
    scroll-behavior: auto !important;
  }
  .v3-reveal, .v3-reveal.is-in { opacity: 1; transform: none; }
  .v3-linea { transform: none; }
  .v3-roll-c.is-nuevo { opacity: 1; transform: none; }
  .v3-pulso { opacity: 1; }
  .v3-cinta > * { transform: none; }
  .v3-deriva { transform: scale(1.08); }
}

.v3-regla {
  position: fixed;
  left: var(--marco);
  top: calc(var(--nav-alto) + var(--s56));
  bottom: var(--s80);
  width: 12px;
  z-index: var(--z-regla);
  pointer-events: none;
}
.v3-regla-rail { position: absolute; inset: 0 auto 0 0; width: 1px; background: var(--hilo); }
.v3-regla-marca {
  position: absolute;
  left: 0; width: 12px; height: 2px;
  top: calc(var(--v3-t, 0) * 100%);
  margin-top: -1px;
  background: var(--luz);
}
.v3-regla-tick { position: absolute; left: 0; top: calc(var(--p, 0) * 1%); width: 5px; height: 1px; background: var(--hilo-medio); }
.v3-regla-tick--cota { width: 9px; background: var(--tinta-3); }
.v3-regla-cota {
  position: absolute;
  left: 0;
  top: calc(var(--p, 0) * 1%);
  font-family: var(--mono);
  font-weight: 400;
  font-size: 10px;
  letter-spacing: .14em;
  color: var(--tinta-3);
  writing-mode: vertical-rl;
  text-orientation: mixed;
  padding-top: var(--s8);
  white-space: nowrap;
}
.v3-regla-cota--fondo { top: auto; bottom: 0; padding-top: 0; padding-bottom: var(--s8); }
@media (max-width: 899px) { .v3-regla { display: none; } }

html { scrollbar-color: var(--hilo-fuerte) transparent; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--hilo-fuerte); border: 0; }
::-webkit-scrollbar-thumb:hover { background: var(--tinta-3); }

::selection { background: var(--luz); color: var(--luz-ink); }
:root { caret-color: var(--luz); accent-color: var(--luz); }

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible,
.v3-btn:focus-visible, .v3-chip:focus-visible, .v3-pastilla:focus-visible {
  outline: 2px solid var(--luz);
  outline-offset: 2px;
}

.v3-sr-only, .fa-sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.v3-saltar:focus-visible, .fa-saltar:focus-visible {
  position: fixed;
  top: var(--s12); left: var(--s12);
  z-index: var(--z-saltar);
  width: auto; height: auto;
  margin: 0;
  clip-path: none;
  padding: 14px var(--s20);
  background: var(--luz);
  color: var(--luz-ink);
  font-family: var(--sans); font-weight: 500; font-size: 14px;
}

.v3-demo {
  position: relative;
  z-index: var(--z-saltar);
  min-height: 32px;
  display: flex; align-items: center; justify-content: center;
  gap: var(--s8);
  padding: var(--s8) var(--s16);
  background: var(--agua-4);
  border-bottom: 1px solid var(--hilo);
  font-family: var(--mono); font-weight: 400; font-size: 11px;
  letter-spacing: .14em; text-transform: uppercase; color: var(--tinta-3);
  text-align: center;
}

/* ===== portada ===== */
.pr-nav {
  position: sticky;
  top: 0;
  z-index: var(--z-nav);

  margin-bottom: calc(var(--nav-alto) * -1);
  transition: background-color var(--d-reveal) var(--ease),
              border-color var(--d-reveal) var(--ease);
  border-bottom: 1px solid transparent;
}

.pr-nav::before {
  content: "";
  position: absolute;
  inset: 0 0 -28px 0;
  z-index: -1;
  background: var(--sobre-lienzo);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  -webkit-mask-image: linear-gradient(180deg, #000 0, #000 62%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 0, #000 62%, transparent 100%);
  transition: opacity var(--d-reveal) var(--ease);
}

html[data-v3-scroll="1"] .pr-nav::before { opacity: 0; }

.pr-nav:has(.pr-menu[open]),
.pr-nav.is-menu-abierto { z-index: calc(var(--z-menu) + 1); }

.pr-nav:has(.pr-menu[open]) .pr-marca,
.pr-nav:has(.pr-menu[open]) .pr-menu__boton,
.pr-nav.is-menu-abierto .pr-marca,
.pr-nav.is-menu-abierto .pr-menu__boton {
  position: relative;
  z-index: calc(var(--z-menu) + 1);
}
.pr-nav:has(.pr-menu[open])::before,
.pr-nav.is-menu-abierto::before { opacity: 0; }

html[data-v3-scroll="1"] .pr-nav {
  background: rgba(2, 10, 16, .72);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-bottom-color: var(--hilo);
}

.pr-nav__linea {
  max-width: var(--ancho);
  margin-inline: auto;
  min-height: calc(var(--nav-alto) - 1px);
  padding-block: 9px;
  padding-inline: var(--marco);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s20);
}

.pr-marca {
  display: flex;
  align-items: center;
  gap: 14px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .10em;
  text-transform: uppercase;
  color: var(--tinta);
  line-height: 1.2;
  min-height: 44px;
  transition: color var(--d-color) var(--ease);
}
.pr-marca:hover { color: var(--luz); }
.pr-marca__cuadro {
  width: 8px; height: 8px;
  flex: none;
  background: var(--luz);
}
.pr-marca__texto { white-space: nowrap; }
.pr-marca__punto { color: var(--tinta-3); }

.pr-nav__enlaces {
  display: flex;
  align-items: center;
  gap: var(--s28);
}
.pr-nav__enlaces a {
  display: flex;
  align-items: center;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .10em;
  text-transform: uppercase;
  color: var(--tinta-2);
  line-height: 1.2;
  min-height: 44px;
  transition: color var(--d-color) var(--ease);
}
.pr-nav__enlaces a:hover { color: var(--luz); }

.pr-nav__enlaces a[aria-current="true"] { color: var(--luz); }

.pr-nav__cta { flex: none; white-space: nowrap; }
.pr-punta { flex: none; }

.pr-menu { display: none; }

.pr-menu__boton {
  display: flex;
  align-items: center;
  gap: var(--s12);
  min-height: 44px;
  padding: 10px var(--s12);
  border: 1px solid var(--hilo-fuerte);
  color: var(--tinta);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .10em;
  text-transform: uppercase;
  cursor: pointer;
  list-style: none;
  transition: border-color var(--d-color) var(--ease), color var(--d-color) var(--ease);
}
.pr-menu__boton::-webkit-details-marker { display: none; }
.pr-menu__boton:hover { border-color: var(--luz); color: var(--luz); }

.pr-menu__barras {
  position: relative;
  width: 16px; height: 9px;
  flex: none;
  border-top: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
}
.pr-menu[open] .pr-menu__barras { border-top-color: transparent; }
.pr-menu[open] .pr-menu__barras::before,
.pr-menu[open] .pr-menu__barras::after {
  content: "";
  position: absolute;
  left: 0; top: 3px;
  width: 16px; height: 1px;
  background: currentColor;
}
.pr-menu[open] .pr-menu__barras::before { transform: rotate(45deg); }
.pr-menu[open] .pr-menu__barras::after  { transform: rotate(-45deg); }
.pr-menu[open] .pr-menu__barras { border-bottom-color: transparent; }

.pr-menu__panel {
  position: fixed;
  inset: 0;
  z-index: var(--z-menu);
  background: var(--agua-4);
  padding: calc(var(--nav-alto) + var(--pr-demo, 32px) + var(--s28)) var(--marco) max(var(--s40), env(safe-area-inset-bottom));
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: var(--s28);
  overflow-y: auto;
  overscroll-behavior: contain;
}

.pr-menu__logo { width: 132px; height: auto; opacity: .9; }

.pr-menu__lista > li { border-top: 1px solid var(--hilo); }
.pr-menu__lista > li:last-child { border-bottom: 1px solid var(--hilo); }
.pr-menu__lista a {
  display: block;
  font-family: var(--serif);
  font-weight: 600;
  font-size: 32px;
  line-height: 1;
  letter-spacing: -.02em;
  color: var(--tinta);
  padding-block: var(--s20);
  transition: color var(--d-color) var(--ease);
}
.pr-menu__lista a:hover,
.pr-menu__lista a[aria-current="true"] { color: var(--luz); }
.pr-menu__cta { justify-content: center; }

.pr {
  position: relative;
  isolation: isolate;
  overflow: hidden;

  min-height: calc(100svh - var(--pr-demo, 32px));
  display: grid;
  grid-template-rows: 1fr auto;
  align-items: end;
}

.pr-foto {
  position: absolute;
  inset: -8%;
  z-index: var(--z-fondo);
  display: block;
  overflow: hidden;
}
.pr-foto picture, .pr-foto img { display: block; width: 100%; height: 100%; }
.pr-foto img {
  object-fit: cover;

  object-position: 75% 42%;
  filter: saturate(1.15) contrast(1.08);
  transform: scale(1.08);
}

.pr-haces {
  position: absolute;
  inset: -12% -14%;
  z-index: var(--z-velo);
  background: repeating-linear-gradient(104deg,
      rgba(180, 232, 244, 0) 0px,
      rgba(180, 232, 244, .18) 22px,
      rgba(180, 232, 244, .04) 48px,
      rgba(180, 232, 244, 0) 120px);
  mix-blend-mode: soft-light;
  pointer-events: none;
}

.pr-velo {
  position: absolute;
  inset: 0;
  z-index: var(--z-velo);

  background: var(--velo-lateral) 0 0 / 132% 100% no-repeat,
              var(--velo-vertical),
              var(--velo-portada);
  pointer-events: none;
}

.pr-particulas {
  position: absolute;
  inset: 0 0 -160px 0;
  z-index: var(--z-velo);
  background-image:
    radial-gradient(circle, rgba(230, 238, 240, .55) 0 1px, transparent 1.5px),
    radial-gradient(circle, rgba(230, 238, 240, .3) 0 .8px, transparent 1.2px);
  background-size: 180px 220px, 110px 140px;
  background-position: 20px 40px, 70px 10px;
  opacity: .5;
  pointer-events: none;
}

.pr-bloque {
  position: relative;
  z-index: var(--z-contenido);
  grid-row: 1;
  align-self: end;
  display: grid;
  gap: var(--s28);
  padding-inline: var(--sangrado) var(--marco);
  padding-block: calc(var(--nav-alto) + var(--aire)) var(--aire);
  width: 100%;
  max-width: var(--ancho);
  margin-inline: auto;
}

.pr-titular {
  max-width: none;
  font-size: min(var(--t-portada), 14svh);
}
@media (min-width: 900px) {
  .pr-titular .v3-linea { white-space: nowrap; }
}

.pr-cierre {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--s40);
}
.pr-entradilla { margin: 0; }

.pr-cifras {
  display: flex;
  gap: var(--s56);
}
.pr-cifra {
  display: grid;
  gap: var(--s4);
}
.pr-cifra dd {
  order: -1;
  margin: 0;
}
.pr-cifra dt { color: var(--tinta-3); }

.pr-cinta {
  position: relative;
  z-index: var(--z-contenido);
  grid-row: 2;
  height: 40px;
  display: flex;
  align-items: center;
  border-top: 1px solid var(--hilo);
  background: rgba(2, 10, 16, .6);
}
.pr-cinta__tren { gap: 0; }
.pr-cinta__tanda {
  display: flex;
  gap: 64px;
  padding-left: 64px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--tinta-3);
  white-space: nowrap;
}

@media (max-width: 1119px) and (min-width: 900px) {
  .pr-nav__enlaces { gap: var(--s16); }
  .pr-marca { gap: var(--s12); }
  .pr-marca__lugar { display: none; }
}

@media (max-width: 899px) {
  .pr-nav__enlaces,
  .pr-nav__cta { display: none; }
  .pr-menu { display: block; }

  .pr-bloque {
    padding-inline: var(--marco);
    padding-block: calc(var(--nav-alto) + var(--aire-l)) var(--aire-l);
    gap: var(--s20);
  }
  .pr-titular { font-size: min(var(--t-portada), 16svh); }
  .pr-cierre { gap: var(--s28); }
  .pr-cifras { gap: var(--s28); flex-wrap: wrap; }
  .pr-cinta__tanda { gap: 40px; padding-left: 40px; }
}

@media (max-width: 400px) {
  .pr-marca__texto { font-size: 11px; letter-spacing: .08em; }
}

@media (prefers-reduced-motion: reduce) {
  .pr-foto img { transform: scale(1.08); }
  .pr-particulas { transform: none; }
}

/* ===== precios ===== */
.pc-cab { display: grid; gap: var(--s20); margin-bottom: var(--aire-l); }
.pc-titulo { max-width: 16ch; }
.pc-entradilla { max-width: 46ch; }

.pc-grupo { display: grid; gap: var(--s28); }
.pc-grupo + .pc-grupo { margin-top: var(--aire-l); }
.pc-grupo__eti { display: grid; gap: var(--s4); align-content: start; }

.pc-fila {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--s20) var(--s40);
  align-items: baseline;
  padding-block: var(--s28);
}
.pc-fila__txt { display: grid; gap: var(--s8); max-width: 44ch; }
.pc-fila__dinero { display: grid; justify-items: end; gap: var(--s16); text-align: right; }
.pc-fila--menor { padding-block: var(--s20); }

.pc-precio { white-space: nowrap; }

.pc-ud {
  font-family: var(--mono);
  font-weight: 400;
  font-size: 16px;
  letter-spacing: 0;
  color: var(--tinta-3);
  margin-left: var(--s4);
}

.pc-btn { white-space: nowrap; }

.pc-estado { color: var(--tinta-3); margin-top: var(--s28); }
.pc-estado:empty { height: 0; overflow: hidden; margin: 0; }

.pc-luz {
  display: grid;
  gap: var(--s40);
  margin-block: var(--aire);
  padding-left: var(--sangrado);
}
.pc-luz__texto { display: grid; gap: var(--s16); max-width: 44ch; }
.pc-luz__texto h3 { max-width: 14ch; }

.pc-luz__figura { position: relative; margin: 0; }
.pc-luz__figura img { width: 100%; height: auto; }
.pc-luz__velo { position: absolute; inset: 0; background: var(--velo-vertical); pointer-events: none; }

.pc-luz__cotas {
  position: absolute;
  left: var(--s28);
  top: var(--s28);
  display: grid;
  gap: var(--s28);
}
.pc-luz__cota { display: grid; gap: var(--s4); }
.pc-luz__cota .v3-dato { color: var(--tinta-2); }

.pc-luz__pie {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--s16);
  padding-top: var(--s12);
  padding-right: var(--marco);
}
.pc-luz__pie .v3-nota { max-width: 42ch; }

.pc-bonos { display: grid; gap: var(--s40); }
.pc-bono { display: grid; gap: var(--s16); padding: var(--s40); }
.pc-bono__cab {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--s16);
}
.pc-bono__eti { letter-spacing: .06em; }
.pc-bono__linea { max-width: 24ch; }
.pc-bono__pie { max-width: 40ch; }
.pc-bono__btn { justify-self: start; margin-top: var(--s8); }
.pc-bono .pc-ud { color: rgba(2, 10, 16, .76); }

@media (min-width: 900px) {
  .pc-grupo {
    grid-template-columns: 200px minmax(0, 1fr);
    gap: var(--s40);
  }

  .pc-grupo__eti { position: sticky; top: calc(var(--nav-alto) + var(--s28)); }

  .pc-luz {
    grid-template-columns: minmax(0, 1fr) minmax(0, 52%);
    align-items: center;
    gap: var(--s56);
    padding-left: max(var(--sangrado), calc((100% - var(--ancho)) / 2 + var(--sangrado)));
  }
}

@media (max-width: 899px) {
  .pc-fila { grid-template-columns: minmax(0, 1fr) auto; gap: var(--s16); }
  .pc-fila__dinero { gap: var(--s12); }
  .pc-luz { padding-left: 0; gap: var(--s28); }
  .pc-luz__texto { padding-inline: var(--sangrado); }
  .pc-luz__cotas { left: var(--marco); top: var(--marco); gap: var(--s20); }
  .pc-luz__pie { padding-inline: var(--sangrado); }
  .pc-bono { padding: var(--s28) var(--s20); }
}

/* ===== puntos ===== */
.ba-pista { position: relative; height: 300vh; }

.ba-marco {
  position: sticky;
  top: 0;
  height: 100svh;
  overflow: hidden;
  isolation: isolate;
}

.ba-escena  { position: absolute; inset: 0; }
.ba-relieve { position: absolute; inset: 0; overflow: hidden; }

.ba-relieve bahia-relieve { position: absolute; inset: 0; }

.ba-poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 1;
}
.ba-marco.is-vivo .ba-poster {
  opacity: 0;
  transition: opacity var(--d-reveal) var(--ease);
}

.ba-marco.is-fallo .ba-descenso-cota,
.ba-marco.is-fallo .ba-chispa,
.ba-marco.is-fallo .ba-escala,
.ba-marco.is-fallo .rl-mando,
.ba-marco.is-fallo .rl-nota { display: none; }

.ba-marco.is-fallo .rl-leyenda { border-top: 0; padding-top: 0; }

.ba-velo { position: absolute; inset: 0; pointer-events: none; }
.ba-velo--lateral  { background: var(--velo-lateral); }
.ba-velo--vertical { background: var(--velo-vertical); }

.ba-descenso {
  position: absolute;
  right: var(--marco);
  top: var(--s96);
  width: 340px;
  display: grid;
  gap: var(--s8);
  justify-items: end;
  text-align: right;
  padding: var(--s12) var(--s16);
}
.ba-descenso-cota { display: grid; gap: var(--s8); justify-items: end; }
.ba-cota { display: block; }

.ba-franja {
  display: flex;
  align-items: center;
  gap: var(--s8);
  margin-top: var(--s4);
}
.ba-franja:focus-visible { outline: 2px solid var(--luz); outline-offset: 4px; }
.ba-franja-texto { color: var(--tinta-2); }

.ba-chispa {
  width: var(--s8);
  height: var(--s8);
  flex: 0 0 var(--s8);
  background: var(--luz);
}

.ba-escala {
  position: absolute;
  left: calc(var(--sangrado) + var(--col-bahia) + var(--s40));
  bottom: var(--s40);
  width: var(--rl-escala-px, 90px);
  rotate: var(--rl-escala-giro, 0deg);
  transform-origin: left center;
  border-top: 1px solid var(--tinta);
  pointer-events: none;
}
.ba-escala-rotulo {
  position: absolute;
  top: var(--s4);
  left: 0;
  white-space: nowrap;
  background: var(--sobre-lienzo);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  padding: var(--s4) var(--s8);
}

.ba-carta {
  position: absolute;
  z-index: var(--z-contenido);
  left: var(--sangrado);
  top: var(--s96);
  bottom: var(--s96);
  width: var(--col-bahia);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: var(--gap);
}
.ba-carta::before {
  content: "";
  position: absolute;
  inset: calc(var(--s96) * -1) -220px calc(var(--s96) * -1) calc(var(--sangrado) * -1);
  z-index: -1;
  pointer-events: none;

  background: linear-gradient(90deg,
      rgba(4,18,28,.88) 0%, rgba(4,18,28,.80) 62%, rgba(4,18,28,.76) 76%,
      rgba(4,18,28,.30) 88%, rgba(4,18,28,0) 100%);
}

.ba-cabecera { display: grid; gap: var(--s12); }
.ba-titulo { max-width: 12ch; }

.ba-lista {
  position: relative;
  min-height: 0;
  overflow-y: auto;
  align-content: start;
  scrollbar-width: thin;
  -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 var(--s28), #000 calc(100% - var(--s20)), transparent 100%);
  mask-image: linear-gradient(180deg, transparent 0, #000 var(--s28), #000 calc(100% - var(--s20)), transparent 100%);
}

.ba-fila {
  display: grid;
  grid-template-columns: var(--s28) minmax(0, 1fr) auto;
  gap: var(--gap-fila);
  align-items: baseline;
  width: 100%;
  text-align: left;
  padding-block: 9px;
  border-top: 1px solid var(--hilo-suave);
  border-bottom: 1px solid transparent;
  color: var(--tinta-3);
  transition: color var(--d-color) var(--ease),
              border-color var(--d-color) var(--ease),
              padding var(--d-fila) var(--ease);
}
.ba-fila:hover { color: var(--tinta-2); }

.ba-fila[aria-selected="true"] {
  padding-block: 18px;
  align-items: center;
  border-top-color: var(--luz);
  border-bottom-color: var(--luz);
  color: var(--tinta);
}

.ba-fila[aria-selected="true"] { border-bottom-width: 1px; }
.ba-lista li:has(.ba-fila[aria-selected="true"]) + li .ba-fila { border-top-color: transparent; }

.ba-n { color: inherit; }
.ba-fila[aria-selected="true"] .ba-n { color: var(--luz); }

.ba-medio { display: grid; gap: var(--s4); min-width: 0; }
.ba-nombre {
  display: block;
  font-family: var(--sans);
  font-weight: 300;
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0;
  transition: font-size var(--d-fila) var(--ease);
}
.ba-fila[aria-selected="true"] .ba-nombre {
  font-family: var(--serif);
  font-weight: 600;
  font-size: var(--t-punto);
  line-height: .95;
  letter-spacing: -.01em;
}
.ba-nota { padding-top: var(--s4); }

.ba-cotas { display: grid; gap: var(--s4); justify-items: end; text-align: right; }
.ba-rango { color: inherit; }
.ba-fila[aria-selected="true"] .ba-rango { color: var(--luz); }
.ba-nivel { color: var(--tinta-3); padding-top: var(--s4); }

.ba-fila[aria-selected="true"] .ba-mas { grid-template-rows: 1fr; }

.ba-pie { display: grid; gap: var(--s12); }
.ba-acciones { display: flex; flex-wrap: wrap; align-items: center; gap: var(--gap-boton); }
.ba-filtros { display: flex; flex-wrap: wrap; gap: var(--s8); }
.ba-recuento { text-transform: none; letter-spacing: .06em; }

@media (prefers-reduced-motion: reduce) and (min-width: 900px) {
  .ba-pista { height: auto; }
  .ba-marco { position: relative; height: 100svh; }
}

@media (max-width: 1199px) {
  .ba-carta { width: min(var(--col-bahia), 46vw); }
  .ba-descenso { width: 300px; }
  .ba-escala { left: auto; right: var(--marco); bottom: var(--s20); }
}

@media (max-width: 899px) {
  .ba-pista { height: auto; }
  .ba-marco { position: static; height: auto; overflow: visible; }

  .ba-escena {
    position: sticky;
    top: 0;
    height: 60svh;
    z-index: var(--z-contenido);
    overflow: hidden;
    border-bottom: 1px solid var(--hilo);
  }
  .ba-velo--lateral { background: var(--velo-vertical); }

  .ba-descenso {
    top: calc(var(--nav-alto) + var(--s12));
    right: var(--marco);
    width: auto;

    max-width: calc(100vw - var(--marco) * 2);
    gap: var(--s4);
  }
  .ba-escala { left: var(--marco); right: auto; bottom: var(--s28); }
  .ba-escala-rotulo { top: auto; bottom: var(--s4); }

  .ba-carta {
    position: static;
    width: auto;
    display: grid;
    gap: var(--aire-l);
    padding: var(--aire-l) var(--marco) var(--aire);
  }
  .ba-titulo { max-width: none; }

  .ba-carta::before { display: none; }
  .ba-lista {
    overflow: visible;
    -webkit-mask-image: none;
    mask-image: none;
  }
}

@media (pointer: coarse) {
  .ba-fila { min-height: 44px; align-content: center; }
}

/* ===== relieve ===== */
.rl-instrumentos {
  position: absolute;
  right: var(--marco);
  bottom: var(--s96);
  width: 340px;
  max-width: calc(100vw - var(--marco) * 2);

  max-height: calc(100svh - var(--s96) * 2 - 200px);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  display: grid;
  gap: var(--s16);
  padding: var(--s16) var(--s20);
}
.rl-instrumentos > * + * { border-top: 1px solid var(--hilo-suave); padding-top: var(--s16); }

.rl-nota { color: var(--tinta); }

.rl-mando {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: var(--s8) var(--s12);
}
.rl-mando-rotulo { grid-column: 1; }
.rl-mando-valor  { grid-column: 2; text-align: right; min-width: 9ch; color: var(--tinta-2); }
.rl-mando-pie    { grid-column: 1 / -1; color: var(--tinta-3); letter-spacing: .02em; line-height: 1.5; }

.rl-range {
  grid-column: 1 / -1;
  width: 100%;
  height: 44px;
  margin: 0;
  padding: 0;
  background: none;
  appearance: none;
  -webkit-appearance: none;
  cursor: ew-resize;
}
.rl-range::-webkit-slider-runnable-track { height: 1px; background: var(--hilo-fuerte); }
.rl-range::-moz-range-track              { height: 1px; background: var(--hilo-fuerte); }

.rl-range::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 16px; height: 16px;
  margin-top: -8px;
  border: 0;
  border-radius: var(--r);
  background: var(--luz);
  transition: transform var(--d-color) var(--ease);
}
.rl-range::-moz-range-thumb {
  width: 16px; height: 16px;
  border: 0;
  border-radius: var(--r);
  background: var(--luz);
  transition: transform var(--d-color) var(--ease);
}
@media (hover: hover) {
  .rl-range:hover::-webkit-slider-thumb { transform: scale(1.18); }
  .rl-range:hover::-moz-range-thumb     { transform: scale(1.18); }
}
.rl-range:active::-webkit-slider-thumb { transform: scale(.92); }
.rl-range:active::-moz-range-thumb     { transform: scale(.92); }

.rl-leyenda {
  display: grid;
  gap: var(--s8);
  font-family: var(--mono);
  font-weight: 400;
  font-size: 11px;
  letter-spacing: .06em;
  color: var(--tinta-3);
}
.rl-leyenda li { display: flex; align-items: center; gap: var(--s12); }
.rl-lg { display: block; width: 22px; flex: 0 0 22px; background: var(--tinta); }
.rl-lg--costa    { height: 2px; }
.rl-lg--cuarenta { height: 2px; opacity: .78; }
.rl-lg--menor    { height: 1px; opacity: .3; }

.rl-ficha-abre {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s12);
  min-height: 44px;
  cursor: pointer;
  list-style: none;
  transition: color var(--d-color) var(--ease);
}
.rl-ficha-abre::-webkit-details-marker { display: none; }
.rl-ficha-abre:hover .v3-rotulo { color: var(--luz); }
.rl-signo { font-family: var(--mono); font-size: 14px; color: var(--tinta-3); }
.rl-signo--menos { display: none; }
.rl-ficha-caja[open] .rl-signo--mas   { display: none; }
.rl-ficha-caja[open] .rl-signo--menos { display: inline; }
.rl-ficha-caja[open] .rl-ficha { margin-top: var(--s12); }

.rl-ficha { display: grid; gap: var(--s8); }
.rl-ficha > div { display: grid; grid-template-columns: 11ch minmax(0, 1fr); gap: var(--s12); align-items: baseline; }
.rl-ficha dt { color: var(--tinta-3); }
.rl-ficha dd { color: var(--tinta-2); line-height: 1.45; }

.rl-credito { color: var(--tinta-3); max-width: none; margin-top: var(--s12); }

@media (max-width: 1199px) {
  .rl-instrumentos { width: 300px; bottom: var(--s40); max-height: calc(100svh - var(--s40) - var(--s96) - 180px); }
  .rl-ficha > div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
}

@media (max-width: 899px) {
  .rl-instrumentos {
    position: static;
    width: auto;
    max-width: none;
    max-height: none;
    overflow: visible;
    margin: 0 var(--marco) var(--aire);
  }
}

/* ===== video ===== */
.vd-cabecera { display: grid; gap: var(--s16); margin-bottom: var(--aire-l); }
.vd-cabecera .v3-t-seccion { max-width: 14ch; }

.vd-mosaico {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: var(--gap);
}
.vd-pieza { grid-column: span 4; display: grid; gap: var(--s12); align-content: start; }
.vd-pieza--ancha { grid-column: span 7; }
.vd-pieza:nth-child(2) { grid-column: span 5; }

.vd-marco {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border: 1px solid var(--hilo);
  isolation: isolate;
}
.vd-video {
  width: 100%;
  height: 100%;
  object-fit: cover;

  filter: saturate(1.1) contrast(1.06);
}

.vd-velo {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(2,10,16,0) 46%, rgba(2,10,16,.82) 100%);
}

.vd-marco--oscuro .vd-velo { background: linear-gradient(180deg, rgba(2,10,16,0) 62%, rgba(2,10,16,.6) 100%); }

.vd-titulo {
  position: absolute;
  left: var(--s16);
  right: var(--s16);
  bottom: var(--s12);
  pointer-events: none;
  z-index: 3;
  color: var(--tinta);
}

.vd-play {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: block;
  width: 100%;
  background: rgba(2,10,16,.34);
  transition: background-color var(--d-color) var(--ease);
}
.vd-marco.is-sonando .vd-play { background: rgba(2,10,16,0); }
.vd-play:hover { background: rgba(2,10,16,.2); }
.vd-play-et {
  position: absolute;
  top: var(--s12);
  right: var(--s12);
  font-family: var(--mono);
  font-weight: 400;
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--luz);
  border: 1px solid var(--luz);
  background: rgba(2,10,16,.72);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  padding: var(--s8) var(--s12);
  min-height: 32px;
  display: inline-flex;
  align-items: center;
}

.vd-pie { color: var(--tinta-3); }

.vd-cierre { display: grid; gap: var(--s12); margin-top: var(--aire-l); }
.vd-letra, .vd-canal { max-width: 66ch; }

@media (max-width: 900px) {
  .vd-pieza,
  .vd-pieza--ancha,
  .vd-pieza:nth-child(2) { grid-column: span 6; }
}
@media (max-width: 620px) {
  .vd-pieza,
  .vd-pieza--ancha,
  .vd-pieza:nth-child(2) { grid-column: span 12; }
  .vd-titulo { left: var(--s12); right: var(--s12); }
}

/* ===== vida ===== */
.vi-cab { display: grid; gap: var(--s28); }

.vi-cab__texto { display: grid; gap: var(--s20); margin-top: var(--s12); }
.vi-aviso { color: var(--tinta-3); max-width: 44ch; }

.vi-pisos { margin-top: var(--aire-l); }

.vi-piso { position: relative; padding-block: var(--aire-l); scroll-margin-top: calc(var(--nav-alto) + var(--s28)); }

.vi-cota { display: grid; gap: var(--s4); }

.vi-cota-n { display: block; white-space: nowrap; }

.vi-raya { font-variant-numeric: normal; padding-inline: .04em; }
.vi-cota-ud { color: var(--tinta-3); }
.vi-cota--sin .vi-cota-n { color: var(--tinta-2); }

.vi-visual { margin: 0; display: grid; gap: var(--s12); align-content: start; }
.vi-marco {
  position: relative;
  border: 1px solid var(--hilo);
  aspect-ratio: 12 / 7;
  overflow: hidden;
}
.vi-marco--foto img { width: 100%; height: 100%; object-fit: cover; }
.vi-svg { position: absolute; inset: 0; width: 100%; height: 100%; }

.vi-marca {
  position: absolute;
  top: 0; right: 0;
  padding: 6px var(--s8);
  background: var(--sobre-lienzo);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  border-left: 1px solid var(--hilo);
  border-bottom: 1px solid var(--hilo);
}
.vi-marca--foto { color: var(--luz); }
.vi-pie { color: var(--tinta-3); max-width: 46ch; text-transform: none; letter-spacing: .04em; line-height: 1.5; }

.vi-texto { display: grid; gap: var(--s20); align-content: start; }

.vi-cita { display: grid; gap: var(--s8); border-left: 1px solid var(--hilo-fuerte); padding-left: var(--s20); }
.vi-cita p { max-width: none; color: var(--tinta); }
.vi-cita figcaption { color: var(--tinta-3); }

.vi-estrella { display: grid; gap: var(--s4); border-top: 1px solid var(--hilo); padding-top: var(--s16); }
.vi-estrella-eti { margin-bottom: var(--s4); }
.vi-estrella-n { color: var(--tinta); }
.vi-ciencia { font-size: clamp(1.25rem, 1.7vw, 1.5rem); line-height: 1.1; }

.vi-especies { display: flex; flex-wrap: wrap; align-items: baseline; }
.vi-especies li:not(:last-child)::after { content: "·"; color: var(--apagado); padding-inline: var(--s12); }

.vi-llave { display: grid; gap: var(--s4); border-top: 1px solid var(--hilo); padding-top: var(--s16); }
.vi-llave-a {
  display: inline-flex;
  align-items: center;
  gap: var(--s12);
  justify-self: start;
  min-height: 44px;
  font-family: var(--sans); font-weight: 500; font-size: 18px; line-height: 1.2;
  color: var(--luz);
  transition: gap var(--d-color) var(--ease);
}
.vi-punta { flex: none; }
.vi-llave-a:hover { gap: var(--s16); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .28em; }
.vi-llave-a--sin { color: var(--tinta-3); font-weight: 300; cursor: default; }

.vi-cierre { max-width: 54ch; margin-top: var(--aire-l); }

.vi-trazo {
  fill: none;
  stroke: var(--tinta-2);
  stroke-width: 1.3;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.vi-trazo--grueso { stroke: var(--tinta); stroke-width: 1.8; }
.vi-trazo--roca   { stroke: var(--tinta-3); opacity: .8; }
.vi-trazo--tenue  { stroke: var(--tinta-3); opacity: .45; }

.vi-luz { fill: none; stroke: var(--luz); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.vi-luz--tronco { stroke-width: 2.6; }
.vi-polipo circle { fill: var(--tinta); opacity: .85; }
.vi-ojo { fill: var(--tinta); }

.vi-masa { fill: var(--agua-4); opacity: .5; }
.vi-masa--grieta { opacity: .8; }

.vi-relleno { fill: var(--agua, #041826); }
.vi-pz { fill: var(--tinta-2); opacity: .8; }
.vi-lejos .vi-pz { opacity: .38; }

.vi-guia { fill: none; stroke: var(--luz); stroke-width: 1; opacity: .45; }
.vi-eti {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 600;
  font-size: 21px;
  letter-spacing: -.01em;
  fill: var(--luz);
}

.vi-haz path { fill: var(--tinta); opacity: .07; }
.vi-haz { transform-origin: 300px -240px; }

@keyframes vi-nada  { from { transform: translate(-14px, 5px); }  to { transform: translate(16px, -7px); } }
@keyframes vi-mece  { from { transform: rotate(-1.2deg); }        to { transform: rotate(1.5deg); } }
@keyframes vi-cruza { from { transform: translate(-46px, 10px); } to { transform: translate(54px, -12px); } }
@keyframes vi-mota  { 0% { transform: translateY(16px); opacity: 0; } 22%, 78% { opacity: .5; } 100% { transform: translateY(-52px); opacity: 0; } }

.vi-pz {
  animation: vi-nada calc(7s + var(--i, 0) * 460ms) cubic-bezier(.45, 0, .55, 1) infinite alternate;
  animation-delay: calc(var(--i, 0) * -390ms);
}
.vi-copa {
  transform-box: fill-box;
  transform-origin: 50% 100%;
  animation: vi-mece calc(11s + var(--i, 0) * 2.4s) cubic-bezier(.45, 0, .55, 1) infinite alternate;
  animation-delay: calc(var(--i, 0) * -1.7s);
}
.vi-congrio {
  transform-box: fill-box;
  transform-origin: 0% 70%;
  animation: vi-mece 9s cubic-bezier(.45, 0, .55, 1) infinite alternate;
}
.vi-mola { animation: vi-cruza 46s cubic-bezier(.45, 0, .55, 1) infinite alternate; }
.vi-motas circle {
  fill: var(--tinta-3);
  opacity: .45;
  animation: vi-mota calc(13s + var(--i, 0) * 1.3s) linear infinite;
  animation-delay: calc(var(--i, 0) * -2.1s);
}

@media (min-width: 960px) {
  .vi-cab__texto {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--s56);
    align-items: end;
  }

  .vi-piso {
    display: grid;
    grid-template-columns: 156px minmax(0, 1fr) minmax(300px, 25rem);
    column-gap: var(--s56);
    align-items: start;
  }

  .vi-piso::before {
    content: "";
    position: absolute;
    left: calc(156px + var(--s56) / 2);
    top: 0; bottom: 0;
    width: 1px;
    background: var(--hilo);
    pointer-events: none;
  }

  .vi-piso--azul::before { background: linear-gradient(180deg, var(--hilo), transparent 34%); }

  .vi-cota {
    position: sticky;
    top: calc(var(--nav-alto) + var(--s56));
    text-align: right;
  }

  .vi-cota::after {
    content: "";
    position: absolute;
    right: calc(var(--s56) / -2 - 4px);
    top: calc(var(--t-cota) * .45);
    width: 9px; height: 1px;
    background: var(--tinta-3);
  }
  .vi-cota--sin::after { top: 12px; background: var(--hilo-fuerte); }
}

@media (max-width: 959px) {
  .vi-piso { display: grid; gap: var(--s20); }
  .vi-cota { grid-auto-flow: column; justify-content: start; align-items: baseline; gap: var(--s12); }
  .vi-texto { gap: var(--s16); }
  .vi-cierre { margin-top: var(--s40); }
}

@media (max-width: 620px) {
  .vi-eti { font-size: 30px; }
  .vi-especies li:not(:last-child)::after { padding-inline: var(--s8); }
}

html.vi-js .vi-cota-n,
html.vi-js .vi-cota-ud {
  color: var(--tinta-3);
  transition: color var(--d-reveal) var(--ease);
}
html.vi-js .is-cerca .vi-cota-n  { color: var(--luz); }
html.vi-js .is-cerca .vi-cota-ud { color: var(--tinta-2); }

@media (min-width: 960px) {
  html.vi-js .vi-cota::after {
    background: var(--hilo-fuerte);
    transition: background-color var(--d-reveal) var(--ease), width var(--d-reveal) var(--ease);
  }
  html.vi-js .is-cerca .vi-cota::after { background: var(--luz); width: 17px; }
}

.vi-copa--fondo { opacity: .34; }

/* ===== resenas ===== */
.rs-cab { display: grid; gap: var(--s40); align-items: end; }
.rs-cab__txt { display: grid; gap: var(--s20); }

.rs-nota { display: grid; gap: var(--s4); }
.rs-nota dd { margin: 0; color: var(--tinta-2); }
.rs-nota__n { display: flex; align-items: baseline; gap: var(--s8); font-size: var(--t-cabina); line-height: .9; color: var(--tinta); }
.rs-nota__de { color: var(--tinta-3); }
.rs-nota__eti { margin-top: var(--s12); }

.rs-destacada {
  margin: var(--aire-l) 0 0;
  border-left: 1px solid var(--luz);
  padding-left: var(--s40);
  display: grid;
  gap: var(--s12);
  max-width: 34rem;
}
.rs-destacada p { color: var(--tinta); }
.rs-destacada figcaption { color: var(--tinta-3); }

.rs-campo { display: none; }
html.rs-js .rs-campo { display: grid; gap: var(--s16); margin-top: var(--aire-l); }

.rs-marcas {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  border-top: 1px solid var(--hilo);
  border-bottom: 1px solid var(--hilo);
  padding-block: var(--s16);
}
.rs-marcas i { display: block; width: 5px; height: 5px; background: var(--hilo-medio); }

.rs-marcas i.is-voz { background: var(--luz); }
.rs-campo__pie { max-width: 52ch; color: var(--tinta-3); }

.rs-temas { margin-top: var(--aire); display: grid; gap: var(--s28); }
.rs-temas__eti { display: grid; gap: var(--s4); align-content: start; }

.rs-barras > * { border-top: 1px solid var(--hilo); }
.rs-barras > *:last-child { border-bottom: 1px solid var(--hilo); }

.rs-tema {
  display: grid;
  grid-template-columns: minmax(0, 200px) minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--s20);
  padding-block: var(--s20);
}
.rs-tema__p { color: var(--tinta-2); }
.rs-tema__n { color: var(--tinta-3); white-space: nowrap; }
.rs-tema__barra { display: block; height: 2px; background: var(--hilo-suave); }
.rs-tema__barra i {
  display: block;
  height: 2px;
  width: calc(var(--p, 0) * 1%);
  background: var(--tinta-3);
}
.rs-tema--clave .rs-tema__p { color: var(--tinta); }
.rs-tema--clave .rs-tema__barra i { background: var(--luz); }
.rs-tema--clave .rs-tema__n strong { color: var(--luz); }

.rs-lectura { max-width: 54ch; margin-top: var(--s12); }

.rs-voces { margin-top: var(--aire); display: grid; gap: var(--s28); }
.rs-voces__eti { display: grid; gap: var(--s4); align-content: start; }

.rs-voz { display: grid; gap: var(--s20); padding-block: var(--s40); }
.rs-voz__quien { display: grid; gap: var(--s4); align-content: start; }
.rs-voz__autor { color: var(--tinta); font-size: clamp(1.25rem, 1.6vw, 1.5rem); line-height: 1.15; }
.rs-voz__sep { color: var(--apagado); padding-inline: var(--s4); }
.rs-voz__cuerpo { display: grid; gap: var(--s20); }
.rs-voz blockquote p { color: var(--tinta-2); }

.rs-resp {
  display: grid;
  gap: var(--s8);
  border-left: 1px solid var(--hilo-fuerte);
  padding-left: var(--s20);
}
.rs-resp p:last-child { color: var(--tinta-3); }

.rs-cierre { margin-top: var(--aire); display: grid; gap: var(--s20); }
.rs-cierre__txt { max-width: 38ch; }
.rs-cierre__botones { display: flex; flex-wrap: wrap; gap: var(--gap-boton); }
.rs-punta { flex: none; }
.rs-fuente { max-width: 56ch; color: var(--tinta-3); margin-top: var(--s12); }

@media (min-width: 900px) {
  .rs-cab { grid-template-columns: minmax(0, 1fr) auto; gap: var(--s56); }
  .rs-nota { text-align: right; justify-items: end; }
  .rs-temas, .rs-voces { grid-template-columns: 200px minmax(0, 1fr); gap: var(--s40); }
  .rs-temas__eti, .rs-voces__eti { position: sticky; top: calc(var(--nav-alto) + var(--s28)); }
  .rs-lectura { grid-column: 2; }
}

@media (min-width: 1100px) {
  .rs-voz { grid-template-columns: 210px minmax(0, 1fr); gap: var(--s40); align-items: start; }
}

@media (max-width: 899px) {
  .rs-destacada { padding-left: var(--s20); max-width: none; }
  .rs-tema {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--s8) var(--s16);
    padding-block: var(--s16);
  }
  .rs-tema__barra { grid-column: 1 / -1; }
  .rs-voz { padding-block: var(--s28); }
  .rs-cierre__botones .v3-btn { flex: 1 1 100%; }
}

/* ===== reserva ===== */
.cb {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
}

.cb-lado { position: relative; overflow: hidden; }

.cb-foto { margin: 0; }
.cb-foto picture, .cb-foto img { width: 100%; height: 100%; }
.cb-foto img { object-fit: cover; object-position: 58% 32%; filter: saturate(1.1); }

.cb-velo {
  background:
    linear-gradient(180deg, rgba(2,10,16,0) 38%, rgba(2,10,16,.55) 60%, rgba(2,10,16,.92) 100%),
    var(--velo-cabina);
}

.cb-intro {
  position: absolute;
  left: var(--sangrado);
  right: var(--marco);
  bottom: var(--aire);
  display: grid;
  gap: var(--gap-fila);
  justify-items: start;
}

.cb-plazas { color: var(--luz); letter-spacing: .06em; }

.cb-titulo { margin-block: var(--s4); }
.cb-parrafo { max-width: 34ch; }

.cb-hueco {
  display: grid;
  padding: var(--aire) var(--s80) var(--aire) var(--s40);
  min-width: 0;
}

.cb-panel {
  display: grid;
  grid-template-rows: auto 1fr auto;
  align-content: space-between;
  gap: var(--gap-cabina);
  min-width: 0;
}

.cb-panel > *, .cb-fila > *, .cb-select { min-width: 0; }

.cb-dias__carril { display: flex; flex-wrap: wrap; gap: var(--s8); min-width: 0; }
.cb-dias__sinjs { color: var(--tinta-3); max-width: 34ch; }

.cb-filas { align-self: start; }

.cb-fila {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--s20);
  align-items: center;
  padding-block: var(--s28);
}
.cb-fila__dato { color: var(--tinta-3); white-space: nowrap; }

.cb-sel { position: relative; display: grid; min-width: 0; }
.cb-select {
  appearance: none;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  -webkit-appearance: none;
  width: 100%;
  padding: 0 var(--s28) 0 0;
  font-family: var(--serif);
  font-weight: 600;
  font-size: var(--t-linea);
  line-height: 1;
  min-height: 44px;
  letter-spacing: -.02em;
  color: var(--tinta);
  cursor: pointer;
  text-overflow: ellipsis;
  transition: color var(--d-color) var(--ease);
}
.cb-select:hover { color: var(--luz); }
.cb-select option { background: var(--agua-4); color: var(--tinta); font-family: var(--sans); font-size: 15px; font-weight: 300; }
.cb-select optgroup { background: var(--agua-4); color: var(--tinta-3); font-family: var(--mono); font-size: 12px; }
.cb-sel__punta {
  position: absolute;
  right: 0; top: 50%;
  translate: 0 -50%;
  color: var(--tinta-3);
  pointer-events: none;
}
.cb-select:hover + .cb-sel__punta { color: var(--luz); }

.cb-cantidad { color: var(--tinta); }

.cb-mas-menos { display: flex; gap: 2px; }
.cb-chips { display: flex; flex-wrap: wrap; gap: var(--s8); }

.cb-pie { display: grid; gap: var(--gap-boton); align-content: end; }

.cb-boton { text-align: left; gap: var(--s20); }

.cb-boton__total { color: var(--luz-ink); line-height: .85; }
.cb-boton__accion { min-width: 0; }

.cb-boton[disabled], .cb-boton[aria-disabled="true"] {
  background: var(--luz);
  border-color: var(--luz);
  color: var(--luz-ink);
  filter: brightness(.92);
  cursor: default;
}
.cb-boton[disabled] .cb-boton__total, .cb-boton[aria-disabled="true"] .cb-boton__total { color: var(--luz-ink); }

.cb-movil { display: flex; flex-wrap: wrap; gap: var(--s12) var(--s16); align-items: center; }
.cb-campo { flex: 1 1 220px; min-width: 0; }
.cb-campo[aria-invalid="true"] { border-color: var(--luz); }
.cb-nota { flex: 1 1 24ch; max-width: 30ch; color: var(--tinta-3); }

.cb-acuse { display: grid; gap: var(--s8); }
.cb-acuse:empty { height: 0; overflow: hidden; }
.cb-acuse[data-tono="error"] .cb-acuse__txt { color: var(--luz); }

.cb-acuse__txt { font-size: 14px; line-height: 1.5; font-weight: 300; color: var(--tinta-2); max-width: 40ch; }

.cb-desglose { display: grid; gap: var(--s4); padding-top: var(--s12); border-top: 1px solid var(--hilo); }
.cb-desglose li { display: grid; grid-template-columns: 1fr auto; gap: var(--s16); }
.cb-desglose b { color: var(--tinta); }

.cb-fallback { color: var(--tinta-3); }
.cb-fallback a, .cb-nota a { padding-block: 12px; }

dialog.cb-capa {
  width: min(560px, calc(100vw - var(--s40)));
  margin: auto;
  border: 1px solid var(--hilo);
}
.cb-capa__cab {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--s16);
  padding: var(--s20) var(--s20) var(--s16) var(--s28);
  border-bottom: 1px solid var(--hilo);
}
.cb-cerrar {
  display: grid; place-items: center;
  width: 44px; height: 44px;
  margin: -10px -10px 0 0;
  color: var(--tinta-3);
  transition: color var(--d-color) var(--ease);
}
.cb-cerrar:hover { color: var(--luz); }
.cb-capa__hueco { padding: var(--s28); }
.cb-capa .cb-panel { grid-template-rows: auto; align-content: start; gap: var(--s28); }
.cb-capa .cb-pie { align-content: start; }

@media (max-width: 899px) {
  .cb { grid-template-columns: 1fr; }

  .cb-lado { display: block; }
  .cb-foto { position: relative; inset: auto; height: 38svh; min-height: 240px; }
  .cb-velo { inset: 0 0 auto 0; height: 38svh; min-height: 240px; }
  .cb-intro {
    position: static;
    padding: var(--s28) var(--marco) 0;
    inset: auto;
  }

  .cb-hueco { padding: var(--aire-l) var(--marco) var(--s28); }
  .cb-panel { grid-template-rows: auto; align-content: start; }

  .cb-fila__dato { white-space: normal; }

  .cb-fila--sel, .cb-fila--extras { grid-template-columns: minmax(0, 1fr); gap: var(--s12); }
  .cb-fila--sel .cb-fila__dato, .cb-fila--extras .cb-fila__dato { justify-self: start; }

  .cb-pie { padding-bottom: calc(var(--cb-barra, 88px) + var(--s16)); }
  .cb-capa .cb-pie { padding-bottom: 0; }

  .cb-dias__carril {
    flex-wrap: nowrap;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    margin-inline: calc(var(--marco) * -1);
    padding-inline: var(--marco);
    padding-bottom: var(--s4);
  }
  .cb-dias__carril::-webkit-scrollbar { display: none; }
  .cb-dias__carril > * { scroll-snap-align: start; flex: 0 0 auto; }

  .cb-boton {
    position: fixed;
    inset: auto 0 0 0;
    z-index: var(--z-barra);
    padding: var(--s20) var(--marco);
    padding-bottom: max(var(--s20), env(safe-area-inset-bottom));
    border-top: 1px solid var(--luz);
  }
  body { padding-bottom: var(--cb-barra, 88px); }

  .cb-capa .cb-boton { position: static; padding: var(--s20) var(--s28); }
  .cb-capa .cb-dias__carril { margin-inline: calc(var(--s28) * -1); padding-inline: var(--s28); }

  dialog.cb-capa {
    width: 100%;
    max-height: 92svh;
    margin: auto auto 0;
    border-inline: 0;
    border-bottom: 0;
  }
  .cb-capa__hueco { padding: var(--s20) var(--marco) var(--s28); }
}

/* ===== cursos ===== */
.cu-cab {
  display: grid;
  gap: var(--s28);
  margin-bottom: var(--aire-l);
  padding-left: var(--sangrado);
}
.cu-cab__texto { display: grid; gap: var(--s20); align-content: end; padding-bottom: var(--s12); }
.cu-titulo { max-width: 12ch; }

.cu-cab__figura { position: relative; margin: 0; }
.cu-cab__figura img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.88); }

.cu-cab__figura { -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 14%); mask-image: linear-gradient(90deg, transparent 0, #000 14%); }
.cu-cab__velo { position: absolute; inset: 0; background: var(--velo-vertical); pointer-events: none; }

.cu-grupo { display: grid; gap: var(--s28); }
.cu-grupo + .cu-grupo { margin-top: var(--aire-l); }
.cu-grupo__eti { display: grid; gap: var(--s4); align-content: start; }

.cu-fila {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) auto;
  gap: var(--s20) var(--s40);
  align-items: baseline;
  padding-block: var(--s28);
}
.cu-escalera--sueltas .cu-fila { grid-template-columns: minmax(0, 1fr) auto; }

.cu-fila__n { color: var(--luz); }
.cu-fila__txt { display: grid; gap: var(--s8); max-width: 44ch; }
.cu-precio { white-space: nowrap; text-align: right; }

.cu-cierre { max-width: 46ch; margin-top: var(--aire-l); }
.cu-cierre a { padding-block: 12px; }

@media (min-width: 900px) {
  .cu-cab {
    grid-template-columns: minmax(0, 1fr) minmax(0, 46%);
    align-items: stretch;
    gap: var(--s56);
    min-height: 42svh;
    padding-left: max(var(--sangrado), calc((100% - var(--ancho)) / 2 + var(--sangrado)));
  }
  .cu-grupo {
    grid-template-columns: 200px minmax(0, 1fr);
    gap: var(--s40);
  }
  .cu-grupo__eti { position: sticky; top: calc(var(--nav-alto) + var(--s28)); }
}

@media (max-width: 899px) {
  .cu-cab { padding-left: 0; }
  .cu-cab__texto { padding-inline: var(--sangrado); }
  .cu-cab__figura { aspect-ratio: 3 / 2; }
  .cu-fila { grid-template-columns: 28px minmax(0, 1fr) auto; gap: var(--s12) var(--s16); }
  .cu-escalera--sueltas .cu-fila { grid-template-columns: minmax(0, 1fr) auto; }
}

.cu-abre { color: var(--tinta-3); }
.cu-abre a { padding-block: 12px; display: inline-block; }

/* ===== centro ===== */
.ct-lamina {
  position: relative;
  isolation: isolate;
  min-height: clamp(420px, 62vw, 78svh);
  display: grid;
  align-items: end;
  overflow: hidden;
}
.ct-panorama picture,
.ct-panorama img { width: 100%; height: 100%; }
.ct-panorama__img {
  object-fit: cover;
  object-position: 50% 42%;
  filter: saturate(1.12) contrast(1.06);
}

.ct-velo { background: var(--velo-portada); }

.ct-rotulo {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: var(--s28) var(--s40);
  padding: var(--aire) var(--marco) var(--aire-l) var(--sangrado);
  width: 100%;
}
.ct-titulo { max-width: 9ch; }
.ct-pie { justify-self: end; text-align: right; max-width: 32ch; }

.ct-bloque { padding-block: var(--aire) 0; }
.ct-entradilla { max-width: 18ch; margin-bottom: var(--s40); }

.ct-ficha { border-bottom: 1px solid var(--hilo); }
.ct-fila {
  display: grid;
  grid-template-columns: minmax(0, 14rem) minmax(0, 1fr);
  gap: var(--s16) var(--s40);
  align-items: baseline;
  padding-block: var(--s28);
}

.ct-fila dt { padding-top: .2em; }
.ct-fila dd { max-width: 52ch; }

.ct-galeria {
  padding-block: var(--aire);
  display: grid;
  grid-template-columns: minmax(0, 1.42fr) minmax(0, 1fr);
  align-items: end;
  gap: var(--s40);
}
.ct-pila { display: grid; gap: var(--s40); }

.ct-duo {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  aspect-ratio: var(--ratio, 4/3);
  border: 1px solid var(--hilo);
  background: var(--agua-0);
}
.ct-duo picture, .ct-duo img { width: 100%; height: 100%; }
.ct-duo img {
  object-fit: cover;
  filter: grayscale(1) contrast(1.18) brightness(1.02);
  mix-blend-mode: screen;
}
.ct-duo::after {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--tinta-3);
  mix-blend-mode: multiply;
  pointer-events: none;
  z-index: 1;
}
.ct-foto__pie { margin-top: var(--s12); max-width: 38ch; }

.ct-cred { padding-block: 0 var(--aire); }
.ct-cred__titulo { padding-top: var(--s28); border-top: 1px solid var(--hilo); }
.ct-sellos {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s40) var(--s56);
  margin-top: var(--s28);
}
.ct-sello {
  filter: none;
  opacity: 1;
  mix-blend-mode: normal;
  height: clamp(40px, 4.4vw, 56px);
  width: auto;
}

.cl { padding-block: var(--aire); }
.cl-columna { display: grid; gap: var(--s20); }
.cl-aviso { margin-bottom: var(--s4); }
.cl-titulo { max-width: 14ch; }

.cl-intro {
  display: grid;
  gap: var(--s16);
  margin-top: var(--s20);
  max-width: 62ch;
}
.cl-condicion { max-width: 46ch; color: var(--tinta-3); }

.cl-unidad { margin-top: var(--s28); }

.cl-escalera { margin-top: var(--s4); }
.cl-paso {
  display: grid;
  grid-template-columns: minmax(0, 6rem) minmax(0, 1fr);
  gap: var(--s20) var(--s40);
  align-items: baseline;
  padding-block: var(--s28);
}
.cl-cifra { color: var(--luz); }
.cl-texto { display: grid; gap: var(--s8); }
.cl-paso__premio { max-width: 46ch; }

@media (min-width: 900px) {
  .cl-columna { grid-template-columns: minmax(0, 32rem) minmax(0, 1fr); column-gap: var(--s80); }
  .cl-aviso    { grid-column: 1; grid-row: 1; }
  .cl-titulo   { grid-column: 1; grid-row: 2; }
  .cl-intro    { grid-column: 2; grid-row: 1 / 3; align-self: end; margin-top: 0; }
  .cl-unidad   { grid-column: 1 / -1; grid-row: 3; }
  .cl-escalera { grid-column: 1 / -1; grid-row: 4; }

  .cl-paso  { grid-template-columns: minmax(0, 6rem) minmax(0, 20rem) minmax(0, 1fr); }
  .cl-texto { display: contents; }
  .cl-paso__premio { max-width: 52ch; font-size: 14px; }
}

@media (max-width: 1199px) {
  .ct-galeria { grid-template-columns: minmax(0, 1fr); }
  .ct-pila { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}

@media (max-width: 899px) {
  .ct-lamina { min-height: clamp(380px, 78vw, 62svh); }
  .ct-rotulo {
    grid-template-columns: minmax(0, 1fr);
    padding: var(--aire-l) var(--sangrado) var(--aire-l);
  }
  .ct-titulo { max-width: 100%; }
  .ct-pie { justify-self: start; text-align: left; }

  .ct-fila { grid-template-columns: minmax(0, 1fr); gap: var(--s8); padding-block: var(--s20); }
  .ct-fila dt { padding-top: 0; }

  .ct-pila { grid-template-columns: minmax(0, 1fr); }
  .ct-entradilla { max-width: 100%; }

  .ct-sellos { gap: var(--s28) var(--s40); }

  .cl-paso { grid-template-columns: minmax(0, 1fr); gap: var(--s8); padding-block: var(--s20); }
}

/* ===== pasaporte ===== */
.ps { padding-block: var(--aire); }

.ps-columna {
  display: grid;
  grid-template-columns: minmax(0, 21rem) minmax(0, 1fr);
  gap: var(--s56) var(--s80);
  align-items: start;
}
.ps-cabecera { grid-column: 1 / -1; display: grid; gap: var(--s20); }
.ps-titulo { max-width: 12ch; }
.ps-entradilla { max-width: 44ch; }

@media (min-width: 900px) {
  .ps-cabecera {
    grid-template-columns: minmax(0, 26rem) minmax(0, 1fr);
    column-gap: var(--s80);
    align-items: end;
  }
}

.ps-cuenta {
  display: grid;
  gap: var(--s16);
  position: sticky;
  top: calc(var(--nav-alto) + var(--s28));
}
.ps-marcador {
  display: flex;
  align-items: baseline;
  gap: var(--s12);
  margin-top: calc(var(--s8) * -1);
}
.ps-n { color: var(--luz); line-height: .82; }
.ps-de { align-self: flex-end; padding-bottom: .5em; }

.ps-nivel { margin-top: calc(var(--s8) * -1); }
.ps-club { max-width: 36ch; color: var(--tinta-2); }

.ps-club--nuevo { animation: v3-reveal var(--d-reveal) var(--ease) both; }
.ps-siguiente { padding-top: var(--s12); border-top: 1px solid var(--hilo); }
.ps-aviso { max-width: 36ch; color: var(--tinta-3); }

.ps-acciones { display: flex; flex-wrap: wrap; gap: var(--gap-boton); margin-top: var(--s8); }

.ps-vaciar[data-armado] { border-color: var(--luz); color: var(--luz); }

.ps-hoja { display: grid; gap: var(--s16); }
.ps-hoja__cabecera {
  display: flex;
  justify-content: space-between;
  gap: var(--s16);
  padding-bottom: var(--s12);
}
.ps-hoja__pie { color: var(--tinta-3); }

.ps-rejilla {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--hilo);
  border-left: 1px solid var(--hilo);
}
.ps-casilla {
  border-right: 1px solid var(--hilo);
  border-bottom: 1px solid var(--hilo);

  position: relative;
}

.ps-sello {
  position: relative;
  display: grid;
  align-content: space-between;
  gap: var(--s8);
  width: 100%;
  aspect-ratio: 1;
  padding: var(--s12);
  text-align: left;
  color: var(--tinta-2);
  transition: color var(--d-color) var(--ease);
}
.ps-sello[disabled] { color: var(--apagado); cursor: default; }

.ps-tinta {
  position: absolute;
  inset: var(--s4);
  z-index: 0;
  background: var(--luz);
  rotate: var(--rot, 0deg);
  opacity: 0;
  transition: opacity var(--d-color) var(--ease);
}
.ps-sello:hover:not([disabled]) .ps-tinta { opacity: .14; }
.ps-sello[aria-pressed="true"] .ps-tinta,
.ps-sello[aria-pressed="true"]:hover .ps-tinta { opacity: 1; }

.ps-sello--nuevo .ps-tinta { animation: v3-estampa var(--d-roll) var(--ease) both; }

.ps-num, .ps-nombre { position: relative; z-index: 1; }
.ps-nombre {
  font-family: var(--sans);
  font-weight: 300;
  font-size: 13px;
  line-height: 1.25;
  text-wrap: balance;
}
.ps-sello[aria-pressed="true"] { color: var(--luz-ink); }
.ps-sello[aria-pressed="true"] .ps-num { color: var(--luz-ink); }
.ps-sello[aria-pressed="true"] .ps-nombre { font-weight: 500; }

@media (max-width: 899px) {
  .ps-columna { grid-template-columns: minmax(0, 1fr); gap: var(--s40); }
  .ps-cuenta { position: static; }
  .ps-rejilla { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ps-sello {
    aspect-ratio: auto;
    min-height: 76px;
    align-content: center;
    gap: var(--s4);
  }
}

/* ===== cierre ===== */
.ci-faq { padding-block: var(--aire); }
.ci-faq__columna { display: grid; gap: var(--s40); }
.ci-faq__cabeza { display: grid; gap: var(--s20); }
.ci-faq__entrada { max-width: 40ch; }

@media (min-width: 900px) {
  .ci-faq__cabeza {
    grid-template-columns: minmax(0, 26rem) minmax(0, 1fr);
    column-gap: var(--s80);
    align-items: end;
  }
}

.ci-item { border-top-color: var(--hilo); }

.ci-p {
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr) 1.25rem;
  gap: var(--s20) var(--s28);
  align-items: baseline;
  padding-block: var(--s28);
  cursor: pointer;
  list-style: none;
}
.ci-p::-webkit-details-marker { display: none; }
.ci-n { padding-top: .55em; }
.ci-texto { transition: color var(--d-color) var(--ease); }
.ci-p:hover .ci-texto,
.ci-item[open] .ci-texto { color: var(--luz); }

.ci-marca {
  position: relative;
  align-self: center;
  justify-self: end;
  width: 20px;
  height: 20px;
  color: var(--tinta-3);
}
.ci-marca::before, .ci-marca::after { content: ''; position: absolute; background: currentColor; }
.ci-marca::before { inset: 50% 0 auto 0; height: 1px; }
.ci-marca::after {
  inset: 0 auto 0 50%;
  width: 1px;
  transition: rotate var(--d-fila) var(--ease);
}
.ci-item[open] .ci-marca { color: var(--luz); }
.ci-item[open] .ci-marca::after { rotate: 90deg; }
.ci-p:hover .ci-marca { color: var(--luz); }

.ci-r { padding: 0 0 var(--s28) calc(3rem + var(--s28)); }
.ci-item[open] .ci-r { animation: v3-reveal var(--d-fila) var(--ease) both; }

.ci-cierre {
  min-height: 78svh;
  display: grid;
  grid-template-rows: 1fr auto;
  align-content: space-between;
  padding-block: var(--s80) var(--s56);
}
.ci-suelo__img {
  position: absolute;
  inset: auto 0 -40% 0;
  width: 100%;
  height: 130%;
  object-fit: cover;
  opacity: .55;
}
.ci-velo { background: var(--velo-cierre); }

.ci-dentro {
  display: grid;
  align-content: start;
  gap: var(--s40);
  padding-inline: var(--sangrado);
}
.ci-titulo { max-width: 13ch; }

.ci-fila {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-end;
  gap: var(--s28) var(--s40);
}
.ci-datos { display: grid; gap: var(--s8); }
.ci-tels { display: grid; gap: var(--s4); margin-block: var(--s4); }

.ci-tel {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  width: fit-content;
  transition: color var(--d-color) var(--ease);
}
.ci-tel:hover { color: var(--luz); }
.ci-dir { line-height: 1.6; }
.ci-linea { max-width: 42ch; margin-top: var(--s8); }
.ci-boton { flex: 0 0 auto; }

.ci-pieescena {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--s12) var(--s28);
  padding-inline: var(--sangrado);
}

.ci-pie { padding-block: var(--s56); border-top: 1px solid var(--hilo); }
.ci-pie__columna { display: grid; gap: var(--s56); }

.ci-pie__mapa { display: grid; gap: var(--s12); padding-bottom: var(--s28); border-bottom: 1px solid var(--hilo); }
.ci-pie__anclas { display: flex; flex-wrap: wrap; column-gap: var(--s40); }
.ci-pie__anclas a, .ci-pie__anclas span[data-ci-ancla] {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .04em;
  text-decoration: none;
}
.ci-pie__anclas a:hover { color: var(--luz); }
.ci-pie__anclas span[data-ci-ancla] { color: var(--apagado); }

.ci-pie__rejilla {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--s40);
}
.ci-pie__col { display: grid; align-content: start; gap: var(--s12); }
.ci-pie__enlaces { display: grid; }

.ci-pie__enlaces a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  width: fit-content;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .04em;
  text-decoration: none;
}
.ci-pie__enlaces a:hover { color: var(--luz); }

.ci-pie__enlaces span[data-ci-ancla] {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .04em;
  color: var(--apagado);
}
.ci-pie__dato { line-height: 1.7; }
.ci-pie__nota { color: var(--tinta-3); }

.ci-pie__legal {
  display: grid;
  gap: var(--s12);
  padding-top: var(--s28);
  border-top: 1px solid var(--hilo);
}

.ci-pie__legal .v3-prosa { font-size: 13px; line-height: 1.65; color: var(--tinta-3); max-width: 78ch; }

@media (max-width: 1199px) {

.ci-pie__mapa { display: grid; gap: var(--s12); padding-bottom: var(--s28); border-bottom: 1px solid var(--hilo); }
.ci-pie__anclas { display: flex; flex-wrap: wrap; column-gap: var(--s40); }
.ci-pie__anclas a, .ci-pie__anclas span[data-ci-ancla] {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .04em;
  text-decoration: none;
}
.ci-pie__anclas a:hover { color: var(--luz); }
.ci-pie__anclas span[data-ci-ancla] { color: var(--apagado); }

.ci-pie__rejilla { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s40) var(--s28); }
}

@media (max-width: 899px) {
  .ci-p { grid-template-columns: 2.25rem minmax(0, 1fr) 1.25rem; gap: var(--s12) var(--s16); padding-block: var(--s20); }
  .ci-r { padding-left: calc(2.25rem + var(--s16)); padding-bottom: var(--s20); }

  .ci-cierre { min-height: auto; padding-block: var(--aire) var(--s40); gap: var(--s56); }
  .ci-fila { align-items: flex-start; }
  .ci-boton { width: 100%; }
  .ci-pieescena { gap: var(--s8); }
}

@media (max-width: 559px) {

.ci-pie__mapa { display: grid; gap: var(--s12); padding-bottom: var(--s28); border-bottom: 1px solid var(--hilo); }
.ci-pie__anclas { display: flex; flex-wrap: wrap; column-gap: var(--s40); }
.ci-pie__anclas a, .ci-pie__anclas span[data-ci-ancla] {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .04em;
  text-decoration: none;
}
.ci-pie__anclas a:hover { color: var(--luz); }
.ci-pie__anclas span[data-ci-ancla] { color: var(--apagado); }

.ci-pie__rejilla { grid-template-columns: minmax(0, 1fr); gap: var(--s28); }
}
