/* Luzpass · el sitio público (luzpass.com). Una sola hoja. La marca manda: petróleo es Luzpass, el marfil es la luz de su
   puerta (lo único cálido), la baya sólo donde decide una persona y siempre con su palabra, y los colores de la puerta sólo
   cuando la puerta decide, con su palabra al lado. Hanken Grotesk es la voz; Chivo Mono el registro (placas, códigos, horas).
   De noche, la hora en que se prenden las luces de la entrada; de día, vidrio claro sobre luz. Sólo se anima transform,
   opacidad y trazo; nada en bucle; con «reducir movimiento» todo aparece en su lugar. Sin JavaScript todo se lee y funciona. */

@font-face { font-family: 'Hanken Grotesk'; font-style: normal; font-weight: 100 900; font-display: swap; src: url(/fonts/hankengrotesk-latin-normal-100-900.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Hanken Grotesk'; font-style: normal; font-weight: 100 900; font-display: swap; src: url(/fonts/hankengrotesk-latin-ext-normal-100-900.woff2) format('woff2'); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Chivo Mono'; font-style: normal; font-weight: 100 900; font-display: swap; src: url(/fonts/chivomono-latin-normal-100-900.woff2) format('woff2'); }

:root {
  /* la marca */
  --petroleo: #235761; --petroleo-alto: #2f6a75; --petroleo-bajo: #173a41; --petroleo-hondo: #0f2a30; --noche: #0a1a1e; --negro: #070e10;
  --aguamarina: #72bec9; --marfil: #fbf3e4; --baya: #9e2e79; --baya-luz: #df90c5;
  /* la puerta: sólo cuando la puerta decide, siempre con su palabra */
  --verde: #2fbf71; --azul: #4ea1ff; --amarillo: #f5c518; --rojo: #c8322f;
  /* el día */
  --dia: #f6f7f7; --dia-luz: #ffffff; --tinta: #1a1c1e; --texto: #45494d; --tenue: #5f646a; --linea: rgba(26, 28, 30, .1);
  /* la noche */
  --n-tinta: #f1f7f8; --n-texto: #bccdd1; --n-tenue: #8fa3a8; --n-linea: rgba(255, 255, 255, .1);
  --sans: 'Hanken Grotesk', 'Helvetica Neue', Arial, sans-serif; --mono: 'Chivo Mono', ui-monospace, 'SF Mono', Menlo, monospace;
  --orilla: 16px; --ancho: 1200px; --r-tarjeta: 28px; --r-fila: 16px;
  --suave: cubic-bezier(.2, .7, .2, 1);
  --traza: 1.1s; --traza-curva: cubic-bezier(.45, 0, .2, 1); --traza-espera: .25s; --pasa: .9s; --pasa-curva: cubic-bezier(.2, .7, .2, 1);
  --vidrio-dia: rgba(255, 255, 255, .62); --vidrio-noche: rgba(23, 58, 65, .36);
  --sombra-dia: inset 0 1px 0 rgba(255, 255, 255, .9), 0 1px 2px rgba(15, 42, 48, .06), 0 28px 56px -32px rgba(15, 42, 48, .32);
  --sombra-noche: inset 0 1px 0 rgba(255, 255, 255, .07), 0 30px 60px -30px rgba(0, 0, 0, .7);
  color-scheme: light;
}
@media (min-width: 768px) { :root { --orilla: 32px; } }
@media (min-width: 1200px) { :root { --orilla: 48px; } }

@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .28s; }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 96px; }
body { margin: 0; background: var(--dia); color: var(--tinta); font: 400 18px/1.55 var(--sans); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: clip; }
img, svg { display: block; max-width: 100%; }
a { color: var(--petroleo); text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { color: var(--petroleo-hondo); }
p { margin: 0; }
h1, h2, h3, h4 { margin: 0; font-weight: 600; text-wrap: balance; }
ul, ol { margin: 0; padding: 0; }
::selection { background: var(--petroleo); color: #fff; }
:focus-visible { outline: 2px solid var(--petroleo); outline-offset: 3px; border-radius: 6px; }
.noche :focus-visible, .cab :focus-visible, .menu :focus-visible, .pie :focus-visible { outline-color: var(--marfil); }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.saltar { position: absolute; left: 12px; top: -60px; z-index: 50; padding: 10px 16px; border-radius: 999px; background: var(--marfil); color: var(--petroleo-hondo); font-weight: 600; text-decoration: none; }
.saltar:focus { top: 12px; }

.ancho { width: 100%; max-width: calc(var(--ancho) + var(--orilla) * 2); margin-inline: auto; padding-inline: var(--orilla); }
.etiqueta { font: 600 12.5px/1.3 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--tenue); }
.noche .etiqueta { color: var(--n-tenue); }
.dato { font-family: var(--mono); font-weight: 500; letter-spacing: .01em; font-variant-numeric: tabular-nums; }
.entrada { font-size: clamp(19px, 1.5vw, 22px); line-height: 1.5; color: var(--texto); max-width: 60ch; text-wrap: pretty; }
.noche .entrada { color: var(--n-texto); }
.titular { font-size: clamp(36px, 5.2vw, 72px); line-height: 1.02; letter-spacing: -.042em; }
.titular-m { font-size: clamp(30px, 3.6vw, 48px); line-height: 1.06; letter-spacing: -.035em; }
.acciones { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 14px; }
.correo-texto { font-size: 15px; color: var(--tenue); user-select: all; }
.noche .correo-texto { color: var(--n-tenue); }

/* los botones: cápsula; uno principal por sección */
.boton { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; padding: 13px 24px; border-radius: 999px; font: 600 16px/1.2 var(--sans); letter-spacing: -.01em; text-decoration: none; border: 1px solid transparent; transition: transform var(--d, .18s) var(--suave), background-color .18s, box-shadow .18s; }
.boton:active { transform: scale(.97); }
.boton-marca { background: var(--petroleo); color: #fff; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .18), 0 12px 24px -14px rgba(15, 42, 48, .7); }
.boton-marca:hover { background: var(--petroleo-alto); color: #fff; }
.boton-claro { background: var(--marfil); color: var(--petroleo-hondo); box-shadow: 0 12px 30px -14px rgba(251, 243, 228, .35); }
.boton-claro:hover { background: #fff; color: var(--petroleo-hondo); }
.boton-vidrio { background: rgba(255, 255, 255, .08); color: var(--n-tinta); border-color: rgba(255, 255, 255, .16); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.boton-vidrio:hover { background: rgba(255, 255, 255, .14); color: #fff; }
.boton-linea { background: transparent; color: var(--petroleo); border-color: rgba(35, 87, 97, .3); }
.boton-linea:hover { background: rgba(35, 87, 97, .06); color: var(--petroleo-hondo); }

/* ---------------------------------------------------------------- la cabecera: una cápsula de vidrio de noche */
.cab { position: fixed; inset: 10px 0 auto; z-index: 20; padding-inline: 10px; pointer-events: none; view-transition-name: cabecera; }
.cab-barra { pointer-events: auto; display: flex; align-items: center; gap: 8px; max-width: 1160px; height: 60px; margin: 0 auto; padding: 0 8px 0 20px; border-radius: 999px;
  background: rgba(10, 26, 30, .66); -webkit-backdrop-filter: saturate(1.6) blur(20px); backdrop-filter: saturate(1.6) blur(20px);
  border: 1px solid rgba(255, 255, 255, .1); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 18px 40px -22px rgba(0, 0, 0, .55); }
.cab-marca { flex: none; display: block; padding: 6px 0; }
.cab-marca img { width: 112px; height: auto; }
.cab-enlaces { display: none; list-style: none; margin: 0 auto; gap: 2px; }
.cab-enlaces a, .menu a:not(.boton) { color: rgba(241, 247, 248, .78); text-decoration: none; font-weight: 500; }
.cab-enlaces a { display: block; padding: 8px 14px; border-radius: 999px; font-size: 15.5px; }
.cab-enlaces a:hover { color: #fff; background: rgba(255, 255, 255, .07); }
.cab-enlaces a[aria-current="page"] { color: #fff; background: rgba(255, 255, 255, .1); }
.cab-cta { display: none; min-height: 44px; padding: 10px 20px; font-size: 15px; }
.cab-menu { margin-left: auto; display: grid; place-items: center; width: 46px; height: 46px; border: 0; border-radius: 999px; background: rgba(255, 255, 255, .08); color: var(--n-tinta); cursor: pointer; }
.cab-menu:hover { background: rgba(255, 255, 255, .14); }
@media (min-width: 1000px) {
  .cab-enlaces { display: flex; }
  .cab-cta { display: inline-flex; }
  .cab-menu { display: none; }
}
.menu { position: fixed; inset: 80px 10px auto; margin: 0; width: auto; max-width: none; padding: 18px; border-radius: 28px; color: var(--n-tinta);
  background: rgba(10, 26, 30, .9); -webkit-backdrop-filter: saturate(1.6) blur(24px); backdrop-filter: saturate(1.6) blur(24px);
  border: 1px solid rgba(255, 255, 255, .1); box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .6); }
.menu ul { list-style: none; display: grid; gap: 2px; margin-bottom: 16px; }
.menu a:not(.boton) { display: block; padding: 12px 10px; font-size: 22px; letter-spacing: -.02em; border-radius: 14px; }
.menu a[aria-current="page"] { color: #fff; background: rgba(255, 255, 255, .08); }
.menu .boton { width: 100%; }
.menu-correo { margin-top: 12px; text-align: center; font-size: 14px; color: var(--n-tenue); user-select: all; }
.menu::backdrop { background: rgba(7, 14, 16, .4); }
@media (prefers-reduced-motion: no-preference) {
  .menu { transition: opacity .22s var(--suave), transform .22s var(--suave), overlay .22s allow-discrete, display .22s allow-discrete; }
  .menu:popover-open { opacity: 1; transform: none; }
  @starting-style { .menu:popover-open { opacity: 0; transform: translateY(-8px) scale(.98); } }
}

/* ---------------------------------------------------------------- las secciones */
.seccion { padding-block: clamp(88px, 11vw, 160px); position: relative; }
.seccion-cab { display: grid; gap: 18px; margin-bottom: clamp(36px, 5vw, 64px); max-width: 860px; }
.dia-luz { background:
  radial-gradient(60% 50% at 96% 0%, rgba(114, 190, 201, .2), transparent 70%),
  radial-gradient(50% 45% at 0% 70%, rgba(35, 87, 97, .09), transparent 70%),
  radial-gradient(40% 30% at 60% 100%, rgba(158, 46, 121, .04), transparent 70%), var(--dia); }
.noche { color: var(--n-tinta); color-scheme: dark; background:
  radial-gradient(70% 60% at 20% 0%, rgba(47, 106, 117, .35), transparent 70%),
  radial-gradient(60% 50% at 100% 100%, rgba(35, 87, 97, .3), transparent 70%), var(--noche); }
.noche a:not(.boton) { color: var(--aguamarina); }
.noche a:not(.boton):hover { color: var(--marfil); }

/* el vidrio */
.vidrio { background: var(--vidrio-dia); border: 1px solid rgba(255, 255, 255, .78); box-shadow: var(--sombra-dia); border-radius: var(--r-tarjeta);
  -webkit-backdrop-filter: saturate(1.5) blur(22px); backdrop-filter: saturate(1.5) blur(22px); }
.noche .vidrio { background: var(--vidrio-noche); border-color: rgba(255, 255, 255, .08); box-shadow: var(--sombra-noche); }

/* ---------------------------------------------------------------- la puerta (la marca): se traza, el haz pasa, se prende el halo */
.puerta .p-arco { stroke-dasharray: 1 2; }
.puerta .p-hueco, .puerta .p-halo, .puerta .p-estela { opacity: 1; }
@media (prefers-reduced-motion: no-preference) {
  .puerta { --haz-espera: calc(var(--traza-espera) + var(--traza) * .9); --halo-espera: calc(var(--haz-espera) + var(--pasa) * .5); }
  .puerta .p-arco { animation: p-traza var(--traza) var(--traza-curva) var(--traza-espera) backwards; }
  .puerta .p-haz { transform-box: fill-box; animation: p-pasa var(--pasa) var(--pasa-curva) var(--haz-espera) backwards; }
  .puerta .p-halo, .puerta .p-estela { animation: p-aparece 1s ease var(--halo-espera) backwards; }
}
@keyframes p-traza { from { stroke-dashoffset: 1.002; } }
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .puerta-vista .p-arco { animation: p-traza linear both; animation-timeline: view(); animation-range: entry 10% cover 38%; }
    .puerta-vista .p-haz { transform-box: fill-box; animation: p-pasa linear both; animation-timeline: view(); animation-range: cover 34% cover 46%; }
  }
}
@keyframes p-pasa { from { opacity: 0; transform: translateX(-60%); } }
@keyframes p-aparece { from { opacity: 0; } }

/* ---------------------------------------------------------------- inicio · el umbral: de noche, la puerta; al bajar, se cruza */
.umbral { position: relative; color: var(--n-tinta); color-scheme: dark; background: var(--noche); }
.umbral-escena { position: relative; min-height: 100svh; display: grid; align-items: center; overflow: clip; padding: 84px var(--orilla) 36px; }
.umbral-noche { position: absolute; inset: 0; background:
  radial-gradient(90% 70% at 30% 45%, #1d3c42 0%, rgba(16, 37, 42, .9) 45%, transparent 80%),
  radial-gradient(60% 50% at 85% 90%, rgba(35, 87, 97, .35), transparent 70%), linear-gradient(#0a1a1e, #070e10); }
.umbral-dia { position: absolute; inset: 0; opacity: 0; background: var(--dia); pointer-events: none; z-index: 3; }
.umbral-noche::after, .noche::before { content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .045; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23g)'/%3E%3C/svg%3E"); }
.noche { position: relative; isolation: isolate; }
.noche > * { position: relative; }
.umbral-dentro { position: relative; z-index: 2; width: 100%; max-width: var(--ancho); margin-inline: auto; display: grid; gap: 18px; align-items: center; }
.umbral-puerta { width: min(50vw, 230px); justify-self: center; transform-origin: 39.5% 52%; overflow: visible; }
.umbral-texto { display: grid; gap: 16px; }
.umbral h1 { font-size: clamp(40px, 6.6vw, 96px); line-height: .98; letter-spacing: -.048em; }
.umbral h1 span { display: block; color: var(--marfil); }
.umbral .entrada { color: var(--n-texto); max-width: 34ch; font-size: 17px; }
.umbral-segundo { display: none; }
.umbral-baja { position: absolute; z-index: 2; left: 50%; bottom: 22px; translate: -50% 0; margin: 0; font-size: 12.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--n-tenue); display: none; }
@media (min-width: 900px) {
  .umbral-escena { padding: 104px var(--orilla) 72px; }
  .umbral-dentro { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 56px; }
  .umbral-puerta { width: min(100%, 62svh, 560px); justify-self: end; }
  .umbral-texto { gap: 22px; }
  .umbral .entrada { font-size: clamp(19px, 1.5vw, 22px); }
  .umbral-segundo { display: inline-flex; }
}
/* Cruzar la puerta: sólo donde el navegador mueve la escena con el scroll, cabe la escena y nadie pidió reducir el movimiento.
   Sin eso, el umbral es una portada de noche y el día empieza en la sección que sigue. */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) and (min-height: 620px) {
    .umbral { height: 230svh; view-timeline: --umbral block; view-timeline-inset: 0px; }
    .umbral-escena { position: sticky; top: 0; height: 100svh; min-height: 0; }
    .umbral-texto { animation: u-texto linear both; animation-timeline: --umbral; animation-range: contain 2% contain 30%; }
    .umbral-puerta { animation: u-puerta linear both; animation-timeline: --umbral; animation-range: contain 0% contain 92%; }
    .umbral-puerta .p-hueco-luz { animation: u-luz linear both; animation-timeline: --umbral; animation-range: contain 22% contain 70%; }
    .umbral-dia { animation: u-dia linear both; animation-timeline: --umbral; animation-range: contain 72% contain 97%; }
  }
  @media (prefers-reduced-motion: no-preference) and (min-height: 620px) and (min-width: 900px) {
    .umbral-baja { display: block; animation: u-sale linear both; animation-timeline: --umbral; animation-range: contain 0% contain 8%; }
  }
}
@keyframes u-sale { to { opacity: 0; } }
@keyframes u-texto { to { opacity: 0; transform: translateY(-48px); } }
@keyframes u-puerta { 0% { transform: none; } 55% { transform: scale(1.8); } 100% { transform: scale(3.4); } }
@keyframes u-luz { from { opacity: 0; } to { opacity: 1; } }
@keyframes u-dia { from { opacity: 0; } to { opacity: 1; } }

/* ---------------------------------------------------------------- inicio · la jugada */
.jugada { padding-block: clamp(96px, 12vw, 180px) clamp(64px, 8vw, 120px); }
.jugada h2 { font-size: clamp(38px, 6.2vw, 92px); line-height: 1; letter-spacing: -.045em; max-width: 15ch; }
.jugada h2 em { font-style: normal; color: var(--petroleo); }
.jugada .entrada { margin-top: 28px; }
.jugada-pies { margin-top: 44px; display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); list-style: none; }
.jugada-pies li { padding: 18px 20px; border-radius: 20px; border: 1px solid var(--linea); background: rgba(255, 255, 255, .5); }
.jugada-pies b { display: block; font-size: 17px; letter-spacing: -.01em; }
.jugada-pies span { display: block; margin-top: 4px; font-size: 15.5px; color: var(--texto); }

/* ---------------------------------------------------------------- inicio · los cuatro pilares (rejilla de vidrio) */
.pilares { display: grid; gap: 16px; grid-template-columns: 1fr; }
@media (min-width: 860px) {
  .pilares { grid-template-columns: repeat(12, 1fr); gap: 20px; }
  .pilar:nth-child(1) { grid-column: span 7; } .pilar:nth-child(2) { grid-column: span 5; }
  .pilar:nth-child(3) { grid-column: span 5; } .pilar:nth-child(4) { grid-column: span 7; }
}
.pilar { display: grid; gap: 22px; align-content: start; padding: clamp(22px, 2.6vw, 34px); overflow: hidden; }
.pilar-num { font: 500 13px/1 var(--mono); color: var(--petroleo); letter-spacing: .04em; }
.pilar h3 { font-size: clamp(26px, 2.6vw, 36px); line-height: 1.06; letter-spacing: -.035em; }
.pilar p { color: var(--texto); font-size: 17px; text-wrap: pretty; }
.prende { display: flex; gap: 10px; align-items: flex-start; padding-top: 18px; border-top: 1px solid var(--linea); font-size: 15px; color: var(--texto); }
.prende b { color: var(--tinta); }
.prende svg { flex: none; width: 22px; height: 22px; margin-top: 1px; }
.pilar-ui { position: relative; border-radius: 22px; padding: 16px; background: rgba(246, 247, 247, .7); border: 1px solid var(--linea); display: grid; gap: 10px; font-size: 15px; }
.pilar-ui .ejemplo { position: absolute; top: 10px; right: 12px; font: 600 10.5px/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--tenue); }
.fila { display: flex; align-items: center; gap: 12px; padding: 12px 14px; background: #fff; border-radius: var(--r-fila); border: 1px solid var(--linea); }
.fila-txt { flex: 1; min-width: 0; line-height: 1.3; }
.fila-txt small { display: block; color: var(--tenue); font-size: 13px; }
.chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; font: 600 12.5px/1.2 var(--sans); background: rgba(35, 87, 97, .08); color: var(--petroleo); white-space: nowrap; }
.chip-baya { background: rgba(158, 46, 121, .1); color: var(--baya); }
.chip-pasa { background: rgba(47, 191, 113, .16); color: #11522f; }
.ico { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.burbuja { background: #fff; border: 1px solid var(--linea); border-radius: 20px 20px 20px 6px; padding: 12px 14px; max-width: 34ch; line-height: 1.4; box-shadow: 0 10px 24px -18px rgba(15, 42, 48, .5); }
.burbuja-de { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; font: 600 13px/1 var(--sans); color: var(--tinta); }
.burbuja-de img { width: 22px; height: 22px; border-radius: 6px; }
.burbuja .hora { display: block; text-align: right; margin-top: 4px; font: 500 12px/1 var(--mono); color: var(--tenue); }
.orden { list-style: none; display: grid; gap: 8px; counter-reset: orden; }
.orden li { counter-increment: orden; display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-radius: 14px; background: #fff; border: 1px solid var(--linea); }
.orden li::before { content: counter(orden); font: 500 12px/1 var(--mono); color: var(--petroleo); width: 18px; }
.orden li .chip { margin-left: auto; }
.interruptor { margin-left: auto; width: 40px; height: 24px; border-radius: 999px; background: var(--petroleo); position: relative; flex: none; }
.interruptor::after { content: ''; position: absolute; top: 3px; right: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; }
.interruptor.apagado { background: rgba(26, 28, 30, .18); }
.interruptor.apagado::after { right: auto; left: 3px; }

/* ---------------------------------------------------------------- inicio · una app, tres privadas (sin JavaScript: radios) */
.privadas-elige { display: inline-flex; flex-wrap: wrap; gap: 6px; padding: 6px; border-radius: 999px; background: rgba(255, 255, 255, .06); border: 1px solid var(--n-linea); margin-bottom: 36px; }
.privadas-elige label { cursor: pointer; padding: 11px 18px; border-radius: 999px; font-weight: 600; font-size: 15.5px; color: var(--n-texto); transition: background-color .2s, color .2s; }
.privadas-elige label:hover { color: #fff; }
.privada-radio:focus-visible + .privadas-elige { outline: none; }
.privadas:has(#p-cluster:checked) label[for="p-cluster"], .privadas:has(#p-chica:checked) label[for="p-chica"], .privadas:has(#p-torre:checked) label[for="p-torre"] { background: var(--marfil); color: var(--petroleo-hondo); }
.privadas:has(#p-cluster:focus-visible) label[for="p-cluster"], .privadas:has(#p-chica:focus-visible) label[for="p-chica"], .privadas:has(#p-torre:focus-visible) label[for="p-torre"] { outline: 2px solid var(--marfil); outline-offset: 3px; }
.privada-panel { display: grid; gap: 40px; align-items: center; padding-block: 8px 24px; }
.privada-panel + .privada-panel { border-top: 1px solid var(--n-linea); padding-top: 48px; margin-top: 24px; }
@supports selector(:has(*)) {
  .privada-panel { display: none; }
  .privada-panel + .privada-panel { border-top: 0; padding-top: 8px; margin-top: 0; }
  .privadas:has(#p-cluster:checked) #panel-cluster, .privadas:has(#p-chica:checked) #panel-chica, .privadas:has(#p-torre:checked) #panel-torre { display: grid; }
  @media (prefers-reduced-motion: no-preference) {
    .privada-panel { animation: aparece .45s var(--suave); }
  }
}
@media (min-width: 900px) { .privada-panel { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 64px; } }
.privada-panel h3 { font-size: clamp(28px, 3vw, 42px); line-height: 1.05; letter-spacing: -.035em; }
.privada-panel .entrada { margin-top: 14px; font-size: 18px; }
.hechos { margin: 28px 0 0; display: grid; gap: 0; }
.hechos > div { display: grid; gap: 4px; padding: 16px 0; border-top: 1px solid var(--n-linea); }
@media (min-width: 640px) { .hechos > div { grid-template-columns: 200px 1fr; gap: 20px; } }
.hechos dt { font-size: 14.5px; color: var(--n-tenue); }
.hechos dd { margin: 0; font-size: 16.5px; color: var(--n-tinta); }
@keyframes aparece { from { opacity: 0; transform: translateY(14px); } }

/* el teléfono: la app de la casa, de día */
.telefono { justify-self: center; width: min(100%, 320px); aspect-ratio: 320 / 650; padding: 11px; border-radius: 52px; background: linear-gradient(160deg, #2b3133, #0b0d0e 40%, #1b2022); box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .12), 0 60px 90px -40px rgba(0, 0, 0, .8), 0 0 0 1px rgba(0, 0, 0, .6); }
.pantalla { height: 100%; border-radius: 42px; overflow: hidden; color: var(--tinta); color-scheme: light; position: relative; display: flex; flex-direction: column; gap: 12px; padding: 54px 16px 16px; font-size: 14.5px;
  background: radial-gradient(80% 50% at 100% 0%, rgba(114, 190, 201, .22), transparent 70%), radial-gradient(70% 50% at 0% 100%, rgba(35, 87, 97, .1), transparent 70%), #f5f5f6; }
.pantalla::before { content: ''; position: absolute; top: 14px; left: 50%; translate: -50% 0; width: 96px; height: 28px; border-radius: 999px; background: #0b0d0e; }
.pantalla-cab { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.pantalla-privada { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: rgba(255, 255, 255, .8); border: 1px solid var(--linea); font: 600 13px/1.2 var(--sans); }
.pantalla h4 { font-size: 26px; letter-spacing: -.035em; line-height: 1.05; margin-top: 4px; }
.pantalla .etiqueta { font-size: 11px; }
.llave-uno { padding: 16px; border-radius: 22px; background: var(--petroleo); color: #fff; display: grid; gap: 10px; box-shadow: 0 18px 30px -18px rgba(15, 42, 48, .8); }
.llave-uno small { color: rgba(255, 255, 255, .72); font-size: 13px; }
.llave-uno b { font-size: 19px; letter-spacing: -.02em; line-height: 1.15; }
.llave-uno .dato { font-size: 13px; color: rgba(255, 255, 255, .85); }
.llave-uno .qr { width: 92px; height: 92px; border-radius: 12px; background: #fff; padding: 8px; }
.pantalla .orden li { padding: 9px 12px; font-size: 14px; }
.pantalla-pie { margin-top: auto; display: flex; justify-content: space-around; padding: 10px 6px 4px; border-radius: 24px; background: rgba(255, 255, 255, .78); border: 1px solid var(--linea); font: 600 11px/1.2 var(--sans); color: var(--tenue); }
.pantalla-pie span { display: grid; justify-items: center; gap: 4px; }
.pantalla-pie .si { color: var(--petroleo); }

/* ---------------------------------------------------------------- inicio · para cada quien */
.quienes { display: grid; gap: 16px; }
@media (min-width: 900px) { .quienes { grid-template-columns: repeat(3, 1fr); gap: 20px; } }
.quien { padding: clamp(24px, 2.6vw, 34px); display: grid; gap: 16px; align-content: start; }
.quien-oye { font-size: clamp(24px, 2.2vw, 30px); line-height: 1.12; letter-spacing: -.03em; font-weight: 600; }
.quien p:not(.etiqueta):not(.quien-oye) { color: var(--texto); font-size: 16.5px; }
.quien a.mas { font-weight: 600; text-decoration: none; display: inline-flex; gap: 8px; align-items: center; margin-top: 4px; }
.quien a.mas::after, .nota-tarjeta-ir::after, a.mas-flecha::after { content: '→'; transition: transform .2s var(--suave); }
.quien a.mas:hover::after, .nota-tarjeta a:hover .nota-tarjeta-ir::after, a.mas-flecha:hover::after { transform: translateX(4px); }

/* ---------------------------------------------------------------- sin señal también (banda de noche) */
.sin-senal { display: grid; gap: 40px; }
@media (min-width: 900px) { .sin-senal { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 72px; align-items: start; } }
.sin-senal h2 { font-size: clamp(40px, 5.6vw, 84px); line-height: .98; letter-spacing: -.045em; }
.tres { list-style: none; display: grid; gap: 0; counter-reset: tres; }
.tres li { counter-increment: tres; display: grid; grid-template-columns: 44px 1fr; gap: 6px 14px; padding: 22px 0; border-top: 1px solid var(--n-linea); }
.tres li::before { content: '0' counter(tres); font: 500 13px/1.6 var(--mono); color: var(--aguamarina); grid-row: span 2; }
.tres b { font-size: 20px; letter-spacing: -.02em; line-height: 1.25; }
.tres span { color: var(--n-texto); font-size: 16.5px; }
.dia .tres li, .tres.en-dia li { border-top-color: var(--linea); }
.tres.en-dia li::before { color: var(--petroleo); }
.tres.en-dia span { color: var(--texto); }

/* ---------------------------------------------------------------- cómo se hace el cambio */
.pasos { list-style: none; display: grid; gap: 14px; counter-reset: paso; }
@media (min-width: 900px) { .pasos { grid-template-columns: repeat(4, 1fr); gap: 18px; } }
.paso { counter-increment: paso; position: relative; padding: 26px 22px 24px; display: grid; gap: 12px; align-content: start; }
.paso::before { content: counter(paso); display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--petroleo); color: #fff; font: 600 16px/1 var(--sans); }
.paso h3 { font-size: 21px; letter-spacing: -.02em; line-height: 1.2; }
.paso p { font-size: 16px; color: var(--texto); }
.nota-pie { margin-top: 22px; font-size: 15px; color: var(--tenue); max-width: 70ch; }

/* ---------------------------------------------------------------- la IA */
.ia { display: grid; gap: 28px; padding: clamp(26px, 4vw, 56px); }
@media (min-width: 900px) { .ia { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; } }
.ia ul { list-style: none; display: grid; gap: 0; }
.ia li { padding: 16px 0; border-top: 1px solid var(--linea); display: grid; gap: 4px; }
.ia li b { font-size: 18px; letter-spacing: -.015em; }
.ia li span { color: var(--texto); font-size: 16px; }
.ia .nunca { margin-top: 8px; padding: 16px 18px; border-radius: 18px; background: rgba(35, 87, 97, .07); color: var(--petroleo-hondo); font-weight: 600; font-size: 16.5px; }

/* ---------------------------------------------------------------- el blog */
.notas-lista { list-style: none; display: grid; gap: 16px; }
@media (min-width: 760px) { .notas-lista { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; } }
.nota-tarjeta a { height: 100%; display: grid; gap: 12px; align-content: start; padding: 26px 24px; border-radius: var(--r-tarjeta); text-decoration: none; color: var(--tinta);
  background: var(--vidrio-dia); border: 1px solid rgba(255, 255, 255, .78); box-shadow: var(--sombra-dia); transition: transform .25s var(--suave), box-shadow .25s; }
.nota-tarjeta a:hover { transform: translateY(-3px); color: var(--tinta); }
.nota-tarjeta h3 { font-size: 22px; line-height: 1.2; letter-spacing: -.025em; }
.nota-tarjeta p:not(.nota-tarjeta-datos) { color: var(--texto); font-size: 16px; }
.nota-tarjeta-datos { font-size: 13.5px; color: var(--tenue); }
.nota-tarjeta-ir { margin-top: 6px; font-weight: 600; color: var(--petroleo); display: inline-flex; gap: 8px; }
.blog-cab { padding: 150px 0 40px; }
.blog-cab h1 { font-size: clamp(42px, 6.4vw, 92px); line-height: 1; letter-spacing: -.045em; max-width: 14ch; margin: 14px 0 22px; }
.blog-lista { padding-bottom: clamp(80px, 10vw, 140px); }

/* una nota */
.nota { padding: 132px 0 clamp(72px, 9vw, 120px); }
.nota-cab, .nota-rejilla, .nota-mas { width: 100%; max-width: calc(var(--ancho) + var(--orilla) * 2); margin-inline: auto; padding-inline: var(--orilla); }
.migas { display: flex; flex-wrap: wrap; gap: 8px; font-size: 14.5px; color: var(--tenue); }
.migas a { color: var(--tenue); text-decoration: none; }
.migas a:hover { color: var(--petroleo); text-decoration: underline; }
.nota-cab h1 { font-size: clamp(36px, 5vw, 68px); line-height: 1.03; letter-spacing: -.042em; max-width: 20ch; margin: 18px 0 18px; }
.nota-datos { font-size: 15px; color: var(--tenue); }
.nota-rejilla { display: grid; gap: 28px; margin-top: 40px; }
.nota-rejilla > * { min-width: 0; }
@media (min-width: 1000px) { .nota-rejilla { grid-template-columns: 260px minmax(0, 720px); gap: 72px; } }
.nota-indice { align-self: start; padding: 20px; border-radius: 22px; border: 1px solid var(--linea); background: rgba(255, 255, 255, .55); }
@media (min-width: 1000px) { .nota-indice { position: sticky; top: 96px; } }
.nota-indice ol { list-style: none; display: grid; gap: 2px; margin-top: 10px; }
.nota-indice a { display: block; padding: 7px 0; font-size: 15px; line-height: 1.35; color: var(--texto); text-decoration: none; }
.nota-indice a:hover { color: var(--petroleo); }
.en-corto { padding: 22px 24px; border-radius: 22px; background: var(--petroleo); color: #fff; display: grid; gap: 8px; }
.en-corto .etiqueta { color: rgba(255, 255, 255, .7); }
.en-corto p:not(.etiqueta) { font-size: 19px; line-height: 1.5; }
.prosa { margin-top: 36px; font-size: 18.5px; line-height: 1.68; color: #2c2f32; }
.prosa > * + * { margin-top: 1.05em; }
.prosa h2 { margin-top: 2.2em; font-size: clamp(26px, 2.6vw, 34px); line-height: 1.15; letter-spacing: -.03em; color: var(--tinta); scroll-margin-top: 96px; }
.prosa h3 { margin-top: 1.8em; font-size: 21px; line-height: 1.3; letter-spacing: -.015em; color: var(--tinta); scroll-margin-top: 96px; }
.prosa h2 + *, .prosa h3 + * { margin-top: .6em; }
.prosa ul, .prosa ol { padding-left: 1.3em; }
.prosa li + li { margin-top: .45em; }
.prosa li::marker { color: var(--petroleo); }
.prosa strong { color: var(--tinta); }
.prosa blockquote { margin: 1.4em 0; padding: 4px 0 4px 20px; border-left: 3px solid var(--aguamarina); color: var(--texto); }
.tabla { overflow-x: auto; margin: 1.6em 0; border-radius: 18px; border: 1px solid var(--linea); background: #fff; }
.tabla table { width: 100%; border-collapse: collapse; font-size: 15.5px; line-height: 1.45; min-width: 560px; }
.tabla th { text-align: left; font-weight: 600; background: rgba(35, 87, 97, .06); }
.tabla th, .tabla td { padding: 12px 14px; border-bottom: 1px solid var(--linea); vertical-align: top; }
.tabla tr:last-child td { border-bottom: 0; }
.cierre-nota { margin-top: 56px; padding: clamp(24px, 3vw, 36px); border-radius: var(--r-tarjeta); background: var(--noche); color: var(--n-tinta); display: grid; gap: 12px; }
.cierre-nota .etiqueta { color: var(--n-tenue); }
.cierre-nota-titulo { font-size: clamp(24px, 2.4vw, 32px); font-weight: 600; letter-spacing: -.03em; line-height: 1.1; }
.cierre-nota p:not(.etiqueta):not(.cierre-nota-titulo) { color: var(--n-texto); }
.cierre-nota .acciones { margin-top: 8px; }
.cierre-nota .boton-marca { background: var(--marfil); color: var(--petroleo-hondo); }
.cierre-nota .correo-texto { color: var(--n-tenue); }
.nota-mas { margin-top: 72px; }
.nota-mas .notas-lista { margin-top: 18px; }

/* ---------------------------------------------------------------- preguntas */
.preguntas { display: grid; gap: 10px; max-width: 880px; }
.pregunta { border-radius: 20px; background: rgba(255, 255, 255, .7); border: 1px solid var(--linea); }
.pregunta summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 22px; font-weight: 600; font-size: 18px; letter-spacing: -.01em; }
.pregunta summary::-webkit-details-marker { display: none; }
.pregunta summary::after { content: '+'; flex: none; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: rgba(35, 87, 97, .08); color: var(--petroleo); font-weight: 500; font-size: 20px; transition: transform .25s var(--suave); }
.pregunta[open] summary::after { transform: rotate(45deg); }
.pregunta > div { padding: 0 22px 22px; color: var(--texto); font-size: 17px; max-width: 70ch; }
.pregunta > div p + p { margin-top: .7em; }

/* ---------------------------------------------------------------- el cierre: escríbenos */
.cierre { text-align: center; }
.cierre .puerta { width: 150px; margin: 0 auto 28px; }
.cierre h2 { font-size: clamp(40px, 6vw, 88px); line-height: .98; letter-spacing: -.045em; max-width: 14ch; margin-inline: auto; }
.cierre .entrada { margin: 22px auto 0; }
.cierre .acciones { justify-content: center; margin-top: 34px; }
.cierre .honesto { margin-top: 30px; font-size: 15px; color: var(--n-tenue); }

/* ---------------------------------------------------------------- páginas interiores: la portada de cada una */
.portada { padding: 150px 0 clamp(56px, 7vw, 96px); }
.portada h1 { font-size: clamp(42px, 6.6vw, 96px); line-height: .99; letter-spacing: -.047em; max-width: 15ch; margin: 16px 0 26px; }
.portada.noche { padding-bottom: clamp(72px, 9vw, 128px); }
.portada-rejilla { display: grid; gap: 48px; align-items: center; }
@media (min-width: 960px) { .portada-rejilla { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 64px; } }
.bloque { padding-block: clamp(56px, 7vw, 104px); }
.bloque + .bloque { padding-top: 0; }
.bloque-cab { display: grid; gap: 14px; margin-bottom: 30px; max-width: 760px; }
.dos { display: grid; gap: 16px; }
@media (min-width: 860px) { .dos { grid-template-columns: repeat(2, 1fr); gap: 20px; } }
.tarjeta { padding: clamp(22px, 2.6vw, 32px); display: grid; gap: 12px; align-content: start; }
.tarjeta h3 { font-size: 23px; line-height: 1.15; letter-spacing: -.025em; }
.tarjeta p, .tarjeta li { color: var(--texto); font-size: 16.5px; }
.tarjeta ul { list-style: none; display: grid; gap: 8px; }
.tarjeta li { padding-left: 22px; position: relative; }
.tarjeta li::before { content: ''; position: absolute; left: 4px; top: .62em; width: 7px; height: 7px; border-radius: 50%; background: var(--petroleo); }
.tarjeta dl { display: grid; gap: 10px; margin: 0; }
.tarjeta dt { font-weight: 600; font-size: 14.5px; color: var(--tinta); }
.tarjeta dd { margin: 0; color: var(--texto); font-size: 16px; }
.lista-candado { list-style: none; display: grid; gap: 12px; counter-reset: candado; }
@media (min-width: 860px) { .lista-candado { grid-template-columns: repeat(2, 1fr); gap: 14px; } }
.lista-candado li { counter-increment: candado; display: grid; grid-template-columns: 34px 1fr; gap: 4px 12px; align-items: start; padding: 20px 22px; border-radius: 22px; background: var(--vidrio-noche); border: 1px solid rgba(255, 255, 255, .08); }
.lista-candado li::before { content: '0' counter(candado); grid-row: span 2; font: 500 13px/1.7 var(--mono); color: var(--aguamarina); }
.lista-candado b { display: block; font-size: 18px; letter-spacing: -.015em; line-height: 1.3; }
.lista-candado span { display: block; margin-top: 4px; color: var(--n-texto); font-size: 15.5px; }
.fuentes { margin-top: 18px; font-size: 14px; color: var(--tenue); }
.noche .fuentes { color: var(--n-tenue); }
.cifras { display: grid; gap: 16px; }
@media (min-width: 760px) { .cifras { grid-template-columns: repeat(2, 1fr); gap: 20px; } }
.cifra { padding: 26px; display: grid; gap: 10px; }
.cifra b { font: 500 clamp(44px, 5vw, 64px)/1 var(--mono); letter-spacing: -.04em; color: var(--petroleo); }
.cifra span { color: var(--texto); font-size: 16.5px; }

/* la cadena del equipo */
.cadena { list-style: none; display: grid; gap: 0; counter-reset: eslabon; }
@media (min-width: 1000px) { .cadena { grid-template-columns: repeat(5, 1fr); } }
.eslabon { counter-increment: eslabon; position: relative; padding: 22px 20px; display: grid; gap: 8px; align-content: start; border-top: 1px solid var(--linea); }
@media (min-width: 1000px) { .eslabon { border-top: 0; border-left: 1px solid var(--linea); } .eslabon:first-child { border-left: 0; } }
.eslabon::before { content: '0' counter(eslabon); font: 500 13px/1 var(--mono); color: var(--petroleo); }
.eslabon b { font-size: 19px; letter-spacing: -.02em; line-height: 1.2; }
.eslabon span { font-size: 15.5px; color: var(--texto); }
.eslabon small { display: inline-block; margin-top: 6px; padding: 4px 10px; border-radius: 999px; background: rgba(35, 87, 97, .07); color: var(--petroleo-hondo); font-size: 12.5px; font-weight: 600; justify-self: start; }
.eslabon.luzpass { background: var(--petroleo); color: #fff; border-radius: 22px; }
.eslabon.luzpass::before { color: var(--aguamarina); }
.eslabon.luzpass span { color: rgba(255, 255, 255, .82); }
.lista-revision { list-style: none; counter-reset: rev; display: grid; gap: 10px; }
.lista-revision li { counter-increment: rev; display: grid; grid-template-columns: 34px 1fr; gap: 12px; padding: 16px 18px; border-radius: 18px; background: rgba(255, 255, 255, .7); border: 1px solid var(--linea); }
.lista-revision li::before { content: counter(rev); display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; border: 1.5px solid var(--petroleo); color: var(--petroleo); font: 600 13px/1 var(--sans); }
.lista-revision b { display: block; font-size: 17px; }
.lista-revision span { display: block; color: var(--texto); font-size: 15.5px; margin-top: 2px; }

/* el teléfono de Llegó a casa: el aviso que llega */
.aviso-tel { justify-self: center; width: min(100%, 330px); }
.aviso-tel .pantalla { background: radial-gradient(90% 60% at 50% 0%, rgba(47, 106, 117, .55), transparent 70%), linear-gradient(#10252a, #070e10); color: var(--n-tinta); color-scheme: dark; padding-top: 70px; justify-content: flex-start; }
.aviso-hora { text-align: center; font: 300 64px/1 var(--sans); letter-spacing: -.04em; }
.aviso-fecha { text-align: center; font-size: 14px; color: var(--n-texto); margin-top: -4px; margin-bottom: 18px; }
.aviso { display: grid; grid-template-columns: 34px 1fr; gap: 10px; padding: 12px 14px; border-radius: 22px; background: rgba(255, 255, 255, .14); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); border: 1px solid rgba(255, 255, 255, .12); }
.aviso img { width: 34px; height: 34px; border-radius: 9px; }
.aviso-de { display: flex; justify-content: space-between; font-size: 12.5px; color: var(--n-texto); }
.aviso p { font-size: 14.5px; line-height: 1.35; color: #fff; }
.aviso + .aviso { margin-top: 8px; }
@media (prefers-reduced-motion: no-preference) { .aviso-llega { animation: aparece .7s var(--suave) 1.1s backwards; } }

/* ---------------------------------------------------------------- 404: la puerta sin su luz */
.vacio { min-height: 100svh; display: grid; place-items: center; text-align: center; padding: 120px var(--orilla) 80px; }
.vacio svg { width: 140px; margin: 0 auto 26px; }
.vacio h1 { font-size: clamp(36px, 5vw, 64px); letter-spacing: -.04em; line-height: 1.04; }
.vacio p { margin-top: 16px; color: var(--n-texto); }
.vacio .acciones { justify-content: center; margin-top: 26px; }

/* ---------------------------------------------------------------- el pie */
.pie { background: var(--negro); color: var(--n-texto); color-scheme: dark; padding: 72px 0 28px; border-top: 1px solid rgba(255, 255, 255, .06); }
.pie-dentro { width: 100%; max-width: calc(var(--ancho) + var(--orilla) * 2); margin-inline: auto; padding-inline: var(--orilla); display: grid; gap: 40px; }
@media (min-width: 860px) { .pie-dentro { grid-template-columns: minmax(0, 6fr) minmax(0, 3fr) minmax(0, 3fr); } }
.pie-marca { display: grid; gap: 14px; align-content: start; }
.pie-marca img { width: 150px; height: auto; }
.pie-lema { font-size: 20px; color: var(--n-tinta); letter-spacing: -.015em; }
.pie-honesto { font-size: 15px; max-width: 44ch; }
.pie-col ul { list-style: none; display: grid; gap: 8px; margin-top: 12px; font-size: 15.5px; }
.pie-col a { color: var(--n-texto); text-decoration: none; }
.pie-col a:hover { color: #fff; text-decoration: underline; }
.pie .etiqueta { color: var(--n-tenue); }
.pie-sub { margin-top: 26px; }
.pie-final { width: 100%; max-width: calc(var(--ancho) + var(--orilla) * 2); margin: 48px auto 0; padding: 22px var(--orilla) 0; border-top: 1px solid rgba(255, 255, 255, .07); font-size: 13.5px; color: var(--n-tenue); }

/* ---------------------------------------------------------------- lo que aparece al entrar (sólo con scroll-timeline; nunca esconde nada) */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .aparece { animation: aparece linear both; animation-timeline: view(); animation-range: entry 0% entry 55%; }
    .revela { background: linear-gradient(90deg, currentColor 50%, rgba(26, 28, 30, .16) 50%) 100% 0 / 200% 100% no-repeat; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; -webkit-box-decoration-break: clone; box-decoration-break: clone;
      animation: revela linear both; animation-timeline: view(); animation-range: entry 30% cover 52%; }
    .revela em { -webkit-text-fill-color: var(--petroleo); }
  }
}
@keyframes revela { to { background-position: 0 0; } }

/* ---------------------------------------------------------------- impresión: /consejo/ como hoja para la junta */
@media print {
  @page { size: letter; margin: 12mm 14mm; }
  body { background: #fff !important; color: #111; font-size: 10pt; line-height: 1.4; }
  *, *::before, *::after { animation: none !important; transition: none !important; box-shadow: none !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
  .cab, .pie, .saltar, .no-imprimir, .preguntas-bloque, .umbral-baja, .noche::before { display: none !important; }
  main section, .portada, .bloque, .seccion { padding: 0 !important; margin: 0 0 6mm !important; background: none !important; color: #111 !important; break-inside: avoid; }
  .ancho { max-width: none; padding: 0; }
  .portada h1 { font-size: 22pt; line-height: 1.05; margin: 2mm 0 2mm; max-width: none; }
  .titular, .titular-m, main h2 { font-size: 13.5pt !important; line-height: 1.2 !important; margin: 0 !important; letter-spacing: -.01em !important; }
  .entrada { font-size: 10.5pt !important; max-width: none; color: #333 !important; }
  .etiqueta { font-size: 7.5pt; color: #555 !important; }
  .bloque-cab, .seccion-cab { gap: 1.5mm; margin-bottom: 3mm !important; }
  .vidrio, .tarjeta, .paso { background: none !important; border: 0 !important; border-radius: 0 !important; padding: 0 !important; }
  .quienes, .dos, .pasos { display: grid !important; grid-template-columns: repeat(2, 1fr) !important; gap: 3mm 7mm !important; }
  .quienes { grid-template-columns: repeat(3, 1fr) !important; }
  .tarjeta, .paso { gap: 1mm; }
  .tarjeta h3, .paso h3 { font-size: 10.5pt; }
  .tarjeta p, .tarjeta li, .paso p { font-size: 9.5pt; color: #333 !important; }
  .tarjeta li::before { background: #235761; }
  .paso::before { width: 15pt; height: 15pt; font-size: 8pt; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .noche { background: none !important; color: #111 !important; }
  .tres li { display: block; padding: 1.6mm 0; border-top: .5pt solid #ccc; }
  .tres li::before { display: none; }
  .tres b { font-size: 10.5pt; color: #111; }
  .tres span { display: inline; margin-left: 1mm; color: #333 !important; font-size: 9.5pt; }
  a { color: #111 !important; text-decoration: none; }
  .solo-impreso { display: block !important; margin-top: 2mm; font-size: 9pt; color: #333; }
}
.solo-impreso { display: none; }
