/* ═══════════════════════════════════════════════════════════
   COSEHTUC — Sistema visual "señalética industrial"
   Amarillo de seguridad · Negro técnico · Tipografía de cartel
   ═══════════════════════════════════════════════════════════ */
:root{
  --paper:#F3EFE7;
  --paper-dim:#E8E3D8;
  --ink:#141412;
  --ink-2:#3E3C38;
  --ink-3:#6B675F;
  --yellow:#FFC400;
  --yellow-dim:#F5B800;
  --cream:#CFC9BD;          /* texto secundario sobre oscuro */
  --line:2px solid var(--ink);
  --mono:'IBM Plex Mono', ui-monospace, monospace;
  --sans:'Archivo', sans-serif;
  --shadow-hard:6px 6px 0 var(--ink);
  --header-h:78px;
}

*{margin:0; padding:0; box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 14px);}
body{
  font-family:var(--sans);
  background:var(--paper);
  color:var(--ink);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{display:block; max-width:100%;}
a{color:inherit;}
::selection{background:var(--yellow); color:var(--ink);}
:focus-visible{outline:3px solid var(--yellow-dim); outline-offset:2px;}

.wrap{max-width:1180px; margin:0 auto; padding:0 26px;}

/* ————— franja de peligro (patrón plano de señalética) ————— */
.hazard{
  height:12px;
  background:repeating-linear-gradient(-45deg, var(--yellow) 0 14px, var(--ink) 14px 28px);
}

/* ————— Cabecera ————— */
header{
  position:sticky; top:0; z-index:60;
  background:var(--paper);
  border-bottom:var(--line);
  transition:box-shadow .25s;
}
.hdr-inner{
  max-width:1180px; margin:0 auto; padding:0 26px;
  height:var(--header-h);
  display:flex; align-items:center; gap:26px;
}
.brand{display:flex; align-items:center; gap:13px; text-decoration:none; flex-shrink:0;}
.brand svg{width:44px; height:44px;}
.brand-txt b{
  display:block; font-weight:800; font-stretch:120%;
  font-size:1.28rem; letter-spacing:.02em; line-height:1;
}
.brand-txt small{
  display:block; font-family:var(--mono); font-size:.6rem;
  letter-spacing:.14em; color:var(--ink-3); margin-top:3px; text-transform:uppercase;
}
nav.desk{margin-left:auto; display:flex; align-items:center; gap:4px;}
nav.desk a{
  text-decoration:none; font-weight:600; font-size:.82rem;
  text-transform:uppercase; letter-spacing:.05em;
  padding:9px 11px; border-bottom:3px solid transparent;
  transition:border-color .15s, background .15s;
}
nav.desk a:hover{border-color:var(--ink);}
nav.desk a.act{border-color:var(--yellow-dim); background:var(--ink); color:var(--yellow);}
.hdr-cta{
  margin-left:8px; text-decoration:none;
  font-weight:800; font-size:.8rem; letter-spacing:.06em; text-transform:uppercase;
  background:var(--yellow); border:2px solid var(--ink);
  padding:10px 16px; box-shadow:3px 3px 0 var(--ink);
  transition:transform .12s, box-shadow .12s;
  white-space:nowrap;
}
.hdr-cta:hover{transform:translate(-2px,-2px); box-shadow:5px 5px 0 var(--ink);}
.hdr-cta:active{transform:translate(1px,1px); box-shadow:1px 1px 0 var(--ink);}
.burger{
  margin-left:auto; display:none; background:none; border:var(--line);
  width:46px; height:46px; cursor:pointer; color:var(--ink);
  align-items:center; justify-content:center;
}
/* menú móvil */
.mnav{
  position:fixed; inset:var(--header-h) 0 0 0; z-index:55;
  background:var(--paper); display:none; flex-direction:column;
  padding:28px 26px; gap:4px; overflow:auto;
  border-top:var(--line);
}
.mnav.open{display:flex;}
.mnav a{
  text-decoration:none; font-weight:800; text-transform:uppercase;
  font-stretch:115%; font-size:1.55rem; padding:14px 6px;
  border-bottom:1px solid var(--ink-3);
}
.mnav a:last-child{border-bottom:none;}
.mnav .mcta{margin-top:18px; justify-content:center; text-align:center;}

/* ————— Hero ————— */
.hero{
  position:relative; overflow:hidden;
  border-bottom:var(--line);
  /* trama de puntos tipo plano técnico */
  background-image:radial-gradient(rgba(20,20,18,.14) 1px, transparent 1.4px);
  background-size:26px 26px;
}
.hero-grid{
  display:grid; grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);
  gap:56px; padding:84px 0 78px; align-items:center;
}
.kicker{
  font-family:var(--mono); font-size:.72rem; letter-spacing:.22em;
  text-transform:uppercase; display:inline-flex; align-items:center; gap:10px;
  background:var(--ink); color:var(--paper); padding:8px 14px;
}
.kicker i, .kicker svg{width:14px; height:14px; color:var(--yellow);}
h1{
  font-stretch:122%; font-weight:800; text-transform:uppercase;
  font-size:clamp(2.9rem, 7.4vw, 6.2rem);
  line-height:.96; letter-spacing:-.015em; margin:26px 0 24px;
}
h1 .hl{background:var(--yellow); padding:0 .1em; box-decoration-break:clone; -webkit-box-decoration-break:clone;}
.hero-sub{
  font-size:clamp(1.02rem,1.6vw,1.2rem); color:var(--ink-2);
  max-width:52ch; margin-bottom:34px;
}
.hero-actions{display:flex; flex-wrap:wrap; gap:18px; align-items:center;}
.btn-x{
  display:inline-flex; align-items:center; gap:12px;
  text-decoration:none; text-transform:uppercase;
  font-weight:800; letter-spacing:.04em; font-size:.92rem;
  background:var(--yellow); color:var(--ink);
  border:var(--line); padding:17px 28px; box-shadow:var(--shadow-hard);
  transition:transform .14s, box-shadow .14s;
}
.btn-x i, .btn-x svg{width:20px; height:20px; transition:transform .18s;}
.btn-x:hover{transform:translate(-3px,-3px); box-shadow:9px 9px 0 var(--ink);}
.btn-x:hover i{transform:translate(3px,-3px);}
.btn-x:active{transform:translate(2px,2px); box-shadow:2px 2px 0 var(--ink);}
.btn-ghost{
  display:inline-flex; align-items:center; gap:10px;
  text-decoration:none; text-transform:uppercase; font-weight:700;
  font-size:.85rem; letter-spacing:.05em;
  border:var(--line); padding:15px 22px; background:transparent;
  transition:background .15s;
}
.btn-ghost i, .btn-ghost svg{width:17px; height:17px;}
.btn-ghost:hover{background:var(--ink); color:var(--yellow);}

/* placa-ficha lateral */
.hero-side{position:relative; display:flex; justify-content:flex-end;}
.ficha{
  position:relative; z-index:2; width:100%; max-width:360px;
  background:var(--ink); color:var(--paper);
  border:var(--line); box-shadow:var(--shadow-hard);
}
.ficha-head{
  display:flex; align-items:center; justify-content:space-between;
  background:var(--yellow); color:var(--ink); padding:10px 16px;
  font-family:var(--mono); font-weight:600; font-size:.72rem;
  letter-spacing:.18em; text-transform:uppercase;
}
.ficha-head span:last-child{font-weight:400; opacity:.75;}
.ficha dl{padding:16px 18px 20px;}
.ficha .row{
  display:flex; align-items:baseline; gap:10px;
  font-family:var(--mono); font-size:.8rem; padding:9px 0;
}
.ficha dt{color:var(--cream); text-transform:uppercase; letter-spacing:.06em; white-space:nowrap;}
.ficha .dots{flex:1; border-bottom:2px dotted rgba(207,201,189,.5); transform:translateY(-4px);}
.ficha dd{color:var(--yellow); font-weight:600; white-space:nowrap;}
/* triángulo de advertencia interactivo */
.tri-wrap{
  position:absolute; right:-40px; top:-92px; z-index:1;
  width:min(360px,60vw); pointer-events:none;
}
.tri-wrap svg{width:100%; height:auto; will-change:transform;}
.tri-blink{animation:pulse 2.6s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:1} 50%{opacity:.55}}

/* ————— cinta transportadora ————— */
.tape{
  overflow:hidden; background:var(--yellow);
  border-bottom:var(--line);
}
.tape-track{display:flex; width:max-content; animation:tape 30s linear infinite;}
.tape:hover .tape-track{animation-play-state:paused;}
.tape-seg{display:flex; align-items:center; padding:11px 0;}
.tape-seg span{
  font-weight:800; font-stretch:118%; text-transform:uppercase;
  letter-spacing:.06em; font-size:.95rem; white-space:nowrap; padding:0 26px;
}
.tape-seg svg{width:15px; height:15px; flex-shrink:0;}
@keyframes tape{to{transform:translateX(-50%);}}

/* ————— secciones ————— */
section{padding:96px 0;}
section.dark{background:var(--ink); color:var(--paper);}
section.dark h2{color:var(--paper);}
.sec-head{margin-bottom:54px;}
.sec-meta{
  display:flex; align-items:center; gap:16px; margin-bottom:20px;
  font-family:var(--mono); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase;
}
section.dark .sec-meta{color:var(--yellow);}
.sec-meta .rule{flex:1; height:2px; background:currentColor; opacity:.9;}
h2{
  font-stretch:120%; font-weight:800; text-transform:uppercase;
  font-size:clamp(2rem, 4.4vw, 3.4rem); line-height:1.02; letter-spacing:-.01em;
}
.lead{margin-top:18px; max-width:64ch; font-size:clamp(1rem,1.5vw,1.15rem); color:var(--ink-2);}
section.dark .lead{color:var(--cream);}

/* ————— SEC 01 · matriculación ————— */
.mat-grid{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; align-items:start;}
.mat-grid > div:first-child p{margin:18px 0 32px; color:var(--ink-2); max-width:46ch;}
.steps{border-left:3px solid var(--ink); display:flex; flex-direction:column;}
.step{display:grid; grid-template-columns:92px 1fr; gap:20px; padding:26px 0 26px 28px; border-bottom:1px solid var(--ink-3);}
.step:last-child{border-bottom:none;}
.step b{
  font-family:var(--mono); font-weight:600; font-size:2.3rem; line-height:1;
  color:var(--yellow-dim); -webkit-text-stroke:1.5px var(--ink);
  text-shadow:3px 3px 0 var(--ink);
}
.step h3{font-stretch:115%; font-weight:750; text-transform:uppercase; font-size:1.06rem; margin-bottom:6px;}
.step p{font-size:.92rem; color:var(--ink-2);}

/* ————— SEC 02 · aranceles (tarifario) ————— */
.tabs{display:flex; gap:0; flex-wrap:wrap; margin-bottom:8px;}
.tab{
  font-family:var(--mono); font-size:.74rem; letter-spacing:.1em; text-transform:uppercase;
  background:transparent; color:var(--cream); border:2px solid var(--cream);
  padding:13px 22px; cursor:pointer; margin:0 -2px -2px 0;
  transition:background .15s, color .15s;
}
.tab:hover{color:var(--paper); border-color:var(--paper);}
.tab.on{background:var(--yellow); color:var(--ink); border-color:var(--yellow); font-weight:600;}
.tarif{list-style:none; border-top:2px solid var(--paper); margin-top:30px;}
.tarif li{
  display:grid; grid-template-columns:128px auto 1fr auto;
  gap:20px; align-items:baseline; align-content:center;
  padding:27px 8px; border-bottom:1px solid rgba(207,201,189,.28);
  transition:background .15s;
}
.tarif li:hover{background:rgba(255,196,0,.07);}
.t-tag{
  font-family:var(--mono); font-size:.68rem; letter-spacing:.16em;
  color:var(--yellow); text-transform:uppercase;
}
.t-name{font-size:clamp(1.25rem, 2.3vw, 1.8rem); font-weight:750; font-stretch:112%; line-height:1.15;}
.t-name .note{display:block; font-family:var(--mono); font-size:.72rem; font-weight:400; color:var(--cream); margin-top:7px; letter-spacing:.04em;}
.t-dots{border-bottom:2px dotted rgba(207,201,189,.45); align-self:center; height:.75em; min-width:24px;}
.t-price{
  font-family:var(--mono); font-weight:600; font-size:clamp(1.4rem, 3vw, 2.3rem);
  font-variant-numeric:tabular-nums; white-space:nowrap;
}
.tarif.swap{animation:swapin .45s cubic-bezier(.2,.7,.2,1);}
@keyframes swapin{from{opacity:0; transform:translateY(14px)} to{opacity:1; transform:none}}
.legal{
  margin-top:30px; font-family:var(--mono); font-size:.72rem; line-height:1.8;
  color:var(--cream); max-width:70ch; letter-spacing:.02em;
  padding-left:16px; border-left:4px solid var(--yellow);
}

/* ————— SEC 03 · requisitos (protocolo) ————— */
.req{list-style:none; border-top:var(--line);}
.req li{
  display:grid; grid-template-columns:74px 54px 1fr auto; gap:22px; align-items:center;
  padding:24px 14px; border-bottom:1px solid var(--ink-3);
  transition:background .16s, color .16s; cursor:default;
}
.req li:hover{background:var(--yellow);}
.req li:hover .rq-n{color:var(--ink); -webkit-text-stroke:0; text-shadow:none;}
.rq-n{
  font-family:var(--mono); font-weight:600; font-size:1.7rem;
  color:var(--yellow-dim); -webkit-text-stroke:1.4px var(--ink); text-shadow:2px 2px 0 var(--ink);
  transition:color .16s;
}
.rq-chk{
  width:40px; height:40px; border:var(--line); display:flex;
  align-items:center; justify-content:center; background:#fff;
}
.rq-chk i, .rq-chk svg{width:22px; height:22px; color:var(--ink);}
.rq-t b{display:block; font-stretch:114%; font-weight:750; text-transform:uppercase; font-size:1.12rem;}
.rq-t span{font-size:.9rem; color:var(--ink-2);}
.req li:hover .rq-t span{color:var(--ink-2);}
.rq-code{font-family:var(--mono); font-size:.66rem; letter-spacing:.18em; color:var(--ink-3);}

/* ————— SEC 04 · contenidos (Drive) ————— */
.doc-bar{display:flex; flex-wrap:wrap; gap:16px; align-items:center; margin-bottom:34px;}
.doc-bar .st{
  display:inline-flex; align-items:center; gap:9px;
  font-family:var(--mono); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase;
  border:1.5px dashed var(--ink-3); padding:9px 14px; color:var(--ink-2);
}
.doc-bar .st i, .doc-bar .st svg{width:14px; height:14px;}
.doc-bar .drive-link{margin-left:auto;}
.docs{list-style:none; border-top:var(--line);}
.doc{
  display:grid; grid-template-columns:52px 1fr auto auto; gap:20px; align-items:center;
  padding:20px 10px; border-bottom:1px solid var(--ink-3);
  transition:background .14s;
}
.doc:hover{background:var(--paper-dim);}
.doc > i, .doc > svg{width:26px; height:26px; color:var(--ink);}
.doc-name{font-weight:700; font-size:1rem; overflow-wrap:anywhere;}
.doc-name .demo{
  font-family:var(--mono); font-weight:600; font-size:.6rem; letter-spacing:.14em;
  background:var(--yellow); border:1.5px solid var(--ink); padding:2px 7px; margin-left:10px;
  vertical-align:2px; text-transform:uppercase;
}
.doc-date{font-family:var(--mono); font-size:.74rem; color:var(--ink-3); white-space:nowrap;}
.doc-link{
  display:inline-flex; align-items:center; gap:7px; text-decoration:none;
  font-family:var(--mono); font-size:.7rem; font-weight:600; letter-spacing:.12em;
  border:var(--line); padding:8px 14px; background:var(--yellow);
  transition:background .14s, color .14s; white-space:nowrap;
}
.doc-link i, .doc-link svg{width:14px; height:14px;}
.doc-link:hover{background:var(--ink); color:var(--yellow);}
.doc-link.is-off{background:transparent; color:var(--ink-3); border-color:var(--ink-3); cursor:default;}
.docs-empty{
  padding:44px 10px; border-bottom:1px solid var(--ink-3);
  font-family:var(--mono); font-size:.82rem; color:var(--ink-2);
}
.admin-note{
  margin-top:26px; border:2px dashed var(--ink-3); padding:18px 20px;
  font-family:var(--mono); font-size:.72rem; line-height:1.9; color:var(--ink-2);
  max-width:78ch;
}
.admin-note b{color:var(--ink); text-transform:uppercase; letter-spacing:.1em;}

/* ————— SEC 05 · galería ————— */
.gal{columns:3; column-gap:16px;}
.gal figure{
  break-inside:avoid; margin:0 0 16px; position:relative;
  border:var(--line); background:var(--ink); cursor:zoom-in; overflow:hidden;
}
.gal img{
  width:100%; aspect-ratio:var(--ar, 4/3); object-fit:cover;
  filter:grayscale(.92) contrast(1.06);
  transition:filter .4s, transform .4s;
}
.gal figure:hover img, .gal figure:focus-visible img{filter:grayscale(0) contrast(1); transform:scale(1.03);}
.gal figcaption{
  position:absolute; left:0; right:0; bottom:0;
  background:rgba(20,20,18,.88); color:var(--paper);
  font-family:var(--mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase;
  padding:9px 13px; display:flex; justify-content:space-between; align-items:center;
  transform:translateY(100%); transition:transform .3s;
}
.gal figure:hover figcaption, .gal figure:focus-visible figcaption{transform:none;}
.gal figcaption i, .gal figcaption svg{width:13px; height:13px; color:var(--yellow);}
.gal-demo-note{margin-top:22px; font-family:var(--mono); font-size:.7rem; color:var(--ink-3); letter-spacing:.06em;}

/* lightbox */
.lightbox{
  position:fixed; inset:0; z-index:90; background:rgba(12,12,10,.94);
  display:none; align-items:center; justify-content:center; padding:34px;
}
.lightbox.open{display:flex;}
.lightbox figure{max-width:min(1100px,92vw); text-align:center;}
.lightbox img{max-height:78vh; max-width:100%; margin:0 auto; border:2px solid var(--paper);}
.lightbox figcaption{
  margin-top:16px; font-family:var(--mono); font-size:.74rem;
  color:var(--paper); letter-spacing:.14em; text-transform:uppercase;
}
.lb-x{
  position:absolute; top:22px; right:22px; width:52px; height:52px;
  background:var(--yellow); border:var(--line); cursor:pointer;
  display:flex; align-items:center; justify-content:center; color:var(--ink);
}
.lb-x i, .lb-x svg{width:24px; height:24px;}
.lb-prev,.lb-next{
  position:absolute; top:50%; transform:translateY(-50%);
  width:56px; height:56px; background:var(--paper); border:var(--line);
  cursor:pointer; display:flex; align-items:center; justify-content:center;
}
.lb-prev{left:22px;} .lb-next{right:22px;}
.lb-prev i,.lb-next i,.lb-prev svg,.lb-next svg{width:26px; height:26px;}
.lb-count{
  position:absolute; top:34px; left:34px;
  font-family:var(--mono); color:var(--paper); font-size:.76rem; letter-spacing:.2em;
}

/* ————— SEC 06 · contacto ————— */
.con-grid{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:56px; align-items:start;}
.con-row{
  display:flex; gap:18px; align-items:flex-start;
  padding:22px 4px; border-bottom:1px solid var(--ink-3);
}
.con-row > i, .con-row > svg{width:24px; height:24px; color:var(--ink); flex-shrink:0; margin-top:3px;}
.con-row b{display:block; font-stretch:114%; font-weight:750; text-transform:uppercase; font-size:.95rem;}
.con-row span{font-family:var(--mono); font-size:.84rem; color:var(--ink-2);}
.copy-btn{
  margin-top:9px; display:inline-flex; align-items:center; gap:7px;
  font-family:var(--mono); font-size:.66rem; letter-spacing:.14em; text-transform:uppercase;
  border:1.5px solid var(--ink); background:transparent; padding:6px 11px;
  cursor:pointer; transition:background .14s, color .14s;
}
.copy-btn i, .copy-btn svg{width:13px; height:13px;}
.copy-btn:hover{background:var(--yellow);}
.map-box{border:var(--line); box-shadow:var(--shadow-hard); background:#fff;}
.map-box iframe{width:100%; height:380px; display:block; filter:grayscale(1) contrast(1.12); border:0;}
.map-tag{
  display:flex; justify-content:space-between; align-items:center;
  border-top:var(--line); padding:10px 16px;
  font-family:var(--mono); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase;
}
.map-tag b{color:var(--ink);} .map-tag span{color:var(--ink-3);}

/* ————— pie ————— */
footer{background:var(--ink); color:var(--cream);}
.foot-inner{
  max-width:1180px; margin:0 auto; padding:52px 26px 40px;
  display:flex; flex-wrap:wrap; gap:34px; align-items:center;
}
.foot-brand{display:flex; align-items:center; gap:14px; color:var(--paper);}
.foot-brand svg{width:46px; height:46px;}
.foot-brand b{font-stretch:120%; font-weight:800; font-size:1.3rem; letter-spacing:.02em;}
.foot-brand small{display:block; font-family:var(--mono); font-size:.6rem; letter-spacing:.16em; text-transform:uppercase; margin-top:4px; color:var(--cream);}
.foot-meta{margin-left:auto; text-align:right;}
.foot-meta a{font-family:var(--mono); color:var(--yellow); text-decoration:none; letter-spacing:.08em; font-weight:600;}
.foot-meta a:hover{text-decoration:underline;}
.foot-meta p{font-family:var(--mono); font-size:.66rem; margin-top:8px; letter-spacing:.06em;}

/* ————— toast ————— */
.toasts{position:fixed; right:24px; bottom:24px; z-index:120; display:flex; flex-direction:column; gap:10px;}
.toast{
  display:flex; align-items:center; gap:12px;
  background:var(--ink); color:var(--paper);
  border:2px solid var(--ink); border-left:6px solid var(--yellow);
  padding:14px 18px; font-family:var(--mono); font-size:.76rem; letter-spacing:.04em;
  box-shadow:5px 5px 0 rgba(20,20,18,.35);
  animation:tin .3s cubic-bezier(.2,.7,.2,1);
  max-width:320px;
}
.toast i, .toast svg{width:17px; height:17px; color:var(--yellow); flex-shrink:0;}
.toast.out{opacity:0; transform:translateX(20px); transition:.3s;}
@keyframes tin{from{opacity:0; transform:translateY(14px)} to{opacity:1; transform:none}}

/* ————— reveal on scroll ————— */
.reveal{opacity:0; transform:translateY(18px); transition:opacity .65s cubic-bezier(.2,.7,.2,1), transform .65s cubic-bezier(.2,.7,.2,1); transition-delay:var(--d,0ms);}
.reveal.in{opacity:1; transform:none;}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1; transform:none; transition:none;}
  .tape-track{animation:none;}
  .tri-blink{animation:none;}
}

/* ————— responsive ————— */
@media (max-width:980px){
  nav.desk, .hdr-cta{display:none;}
  .burger{display:flex;}
  .hero-grid{grid-template-columns:1fr; gap:40px; padding:58px 0 60px;}
  .hero-side{justify-content:flex-start;}
  .tri-wrap{right:auto; left:-30px; top:-130px; width:min(240px,55vw); opacity:.95;}
  .mat-grid, .con-grid{grid-template-columns:1fr; gap:44px;}
  .gal{columns:2;}
  .tarif li{grid-template-columns:1fr auto; grid-template-rows:auto auto;}
  .t-tag{grid-column:1; margin-bottom:6px;}
  .t-name{grid-column:1;}
  .t-dots{display:none;}
  .t-price{grid-column:2; grid-row:1 / span 2; align-self:center;}
  .foot-meta{margin-left:0; text-align:left;}
}
@media (max-width:600px){
  section{padding:70px 0;}
  .gal{columns:1;}
  .req li{grid-template-columns:56px 44px 1fr; gap:14px;}
  .rq-code{display:none;}
  .step{grid-template-columns:64px 1fr; gap:14px;}
  .step b{font-size:1.7rem;}
  .doc{grid-template-columns:40px 1fr; row-gap:10px;}
  .doc-date{grid-column:2;}
  .doc-link, .doc-link.is-off{grid-column:2; justify-self:start;}
  .doc-bar .drive-link{margin-left:0;}
}

/* ===== CSP: reemplazos de estilos que antes estaban inline ===== */
.block{display:block;}
.reveal-d80{--d:80ms;}
.reveal-d120{--d:120ms;}
.reveal-d160{--d:160ms;}
.reveal-d240{--d:240ms;}
.reveal-d300{--d:300ms;}
.reveal-d320{--d:320ms;}
.reveal-d400{--d:400ms;}
.paper-dim-section{background:var(--paper-dim);}
header.is-scrolled{box-shadow:0 4px 0 rgba(20,20,18,.15);}

/* Relaciones de aspecto usadas por la galería de demostración */
.ar-4-5{--ar:4/5;}
.ar-4-3{--ar:4/3;}
.ar-1-1{--ar:1/1;}
.ar-3-4{--ar:3/4;}
.ar-16-10{--ar:16/10;}

