:root{
  color-scheme: dark;
  --ink:#f4efe6; --ink-2:#d9d0c3; --muted:#9c9488; --hair:#3a352f;
  --bg:#1b1917; --surface:#232120; --surface-2:#2b2825;
  --accent:#f08a44; --accent-deep:#E97132; --accent-soft:#3a2a1f;
  --dark:#121110; --dark-2:#1e1b19; --on-dark:#f6f1e9; --on-dark-muted:#a9a096;
  --sev-alta:#ef8168; --sev-media:#e0a84f; --sev-baja:#93b887;
  --sev-alta-bg:#3a2320; --sev-media-bg:#382c1c; --sev-baja-bg:#24301f;
  --maxw:1120px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);
  font-family:"IBM Plex Sans",-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:Archivo,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700;
  letter-spacing:-.02em;text-wrap:balance;margin:0}
p{margin:0}
a{color:inherit}
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:20px}
.mono{font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  font-variant-numeric:tabular-nums}
.eyebrow{font-family:"IBM Plex Mono",monospace;font-size:11.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted)}
.section{padding-block:clamp(48px,7vw,86px)}
.section+.section{border-top:1px solid var(--hair)}
.lede{font-size:clamp(17px,1.9vw,19px);color:var(--ink-2);max-width:62ch}
:where(a,button,summary):focus-visible{outline:2.5px solid var(--accent);outline-offset:3px;border-radius:2px}

/* header */
.topbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:color-mix(in srgb,var(--bg) 92%,transparent);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--hair)}
.topbar .wrap{display:flex;align-items:center;gap:18px;min-height:60px;flex-wrap:wrap}
.brand{text-decoration:none;color:inherit;display:flex;align-items:baseline;gap:9px;font-family:Archivo,sans-serif;font-weight:700;letter-spacing:-.02em}
.brand span{width:9px;height:9px;background:var(--accent);display:inline-block;border-radius:1px}
.brand small{font-family:"IBM Plex Mono",monospace;font-weight:400;font-size:11px;color:var(--muted);letter-spacing:.06em}
.nav{display:flex;gap:18px;margin-left:auto;flex-wrap:wrap}
.nav a{text-decoration:none;color:var(--ink-2);font-size:14.5px;padding-block:4px;border-bottom:1.5px solid transparent}
.nav a:hover{border-color:var(--accent)}
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:#17130f;text-decoration:none;
  font-weight:600;font-size:15px;padding:11px 18px;border:0;border-radius:2px;transition:background .15s}
.btn:hover{background:var(--accent-deep)}
.btn.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--hair)}
.btn.ghost:hover{border-color:var(--accent);background:transparent}
.btn.on-dark{background:var(--accent);color:#17130f}
.btn.ghost.on-dark{background:transparent;color:var(--on-dark);border-color:#4a443d}

/* hero */
.hero{position:relative;background:var(--dark);color:var(--on-dark);overflow:hidden}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.5;filter:grayscale(.2) contrast(1.05)}
.hero::after{content:"";position:absolute;inset:0;
  background:linear-gradient(105deg,rgba(16,15,14,.95) 0%,rgba(16,15,14,.84) 46%,rgba(16,15,14,.34) 100%)}
.hero .wrap{position:relative;z-index:2;padding-block:clamp(56px,9vw,104px)}
.hero h1{font-size:clamp(33px,5.4vw,60px);line-height:1.04;max-width:16ch;color:#fff}
.hero .lede{color:var(--on-dark-muted);margin-top:18px;max-width:52ch}
.hero .cta{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}
.hero .eyebrow{color:var(--accent)}
.ficha{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;margin-top:44px;
  background:#3b3630;border:1px solid #3b3630}
.ficha div{background:var(--dark);padding:14px 16px}
.ficha dt{font-family:"IBM Plex Mono",monospace;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--on-dark-muted)}
.ficha dd{margin:4px 0 0;font-family:Archivo,sans-serif;font-weight:700;font-size:21px;color:#fff;font-variant-numeric:tabular-nums}

/* generic grid */
.grid{display:grid;gap:22px}
.g3{grid-template-columns:repeat(auto-fit,minmax(255px,1fr))}
.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.head{display:flex;flex-direction:column;gap:10px;margin-bottom:34px}
.head h2{font-size:clamp(25px,3.2vw,35px)}

/* decision columns */
.dec{border-top:2px solid var(--ink);padding-top:16px}
.dec h3{font-size:19px;margin-bottom:8px}
.dec p{color:var(--ink-2);font-size:15.4px}
.dec .n{font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--accent);letter-spacing:.1em}

/* rubros */
.rubro{background:var(--surface);border:1px solid var(--hair);padding:20px}
.rubro h3{font-size:17.5px;display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.rubro h3 em{font-style:normal;font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--muted);letter-spacing:.08em}
.rubro ul{margin:12px 0 0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:7px}
.rubro li{font-size:14.8px;color:var(--ink-2);padding-left:16px;position:relative}
.rubro li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:1.5px;background:var(--accent)}
.tools{margin-top:14px;padding-top:12px;border-top:1px dashed var(--hair);font-size:12.5px;color:var(--muted)}

/* informe */
.informe{background:var(--surface);border:1px solid var(--hair)}
.informe .doc-h{display:flex;flex-wrap:wrap;gap:14px 26px;justify-content:space-between;
  padding:18px 22px;border-bottom:1px solid var(--hair);background:var(--surface-2)}
.informe .doc-h div{min-width:108px}
.informe .doc-h dt{font-family:"IBM Plex Mono",monospace;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.informe .doc-h dd{margin:3px 0 0;font-size:15px;font-weight:600}
.hall{display:grid;grid-template-columns:auto 1fr auto;gap:12px 16px;align-items:start;
  padding:18px 22px;border-bottom:1px solid var(--hair)}
.hall:last-of-type{border-bottom:0}
.hall .id{font-family:"IBM Plex Mono",monospace;font-size:12.5px;color:var(--muted);padding-top:3px}
.hall h4{margin:0 0 5px;font-family:Archivo,sans-serif;font-size:16.5px;font-weight:700}
.hall p{font-size:14.7px;color:var(--ink-2)}
.hall .accion{margin-top:7px;font-size:13.6px;color:var(--muted)}
.hall .accion b{color:var(--ink-2);font-weight:600}
.chip{font-family:"IBM Plex Mono",monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  padding:4px 9px;border-radius:2px;white-space:nowrap;align-self:start}
.c-alta{background:var(--sev-alta-bg);color:var(--sev-alta)}
.c-media{background:var(--sev-media-bg);color:var(--sev-media)}
.c-baja{background:var(--sev-baja-bg);color:var(--sev-baja)}
.nota{font-size:12.6px;color:var(--muted);padding:13px 22px;background:var(--surface-2);border-top:1px solid var(--hair)}
figure{margin:0}
figure img{width:100%;height:100%;object-fit:cover;display:block;border:1px solid var(--hair);filter:brightness(.92)}
figcaption{font-size:12.6px;color:var(--muted);margin-top:8px}

/* plazos */
.plazos{display:grid;gap:0;border:1px solid var(--hair)}
.plazo{display:grid;grid-template-columns:120px 1fr;gap:20px;padding:20px 22px;border-bottom:1px solid var(--hair);align-items:start}
.plazo:last-child{border-bottom:0}
.plazo .t{font-family:Archivo,sans-serif;font-weight:700;font-size:26px;color:var(--accent);font-variant-numeric:tabular-nums;line-height:1}
.plazo .t small{display:block;font-family:"IBM Plex Mono",monospace;font-size:10.5px;font-weight:400;
  letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.plazo h3{font-size:17px;margin-bottom:5px}
.plazo p{font-size:15px;color:var(--ink-2)}

/* pasos */
.paso{display:grid;grid-template-columns:38px 1fr;gap:16px;align-items:start}
.paso .n{font-family:Archivo,sans-serif;font-weight:700;font-size:15px;color:#fff;background:var(--ink);
  width:30px;height:30px;display:grid;place-items:center;border-radius:2px}
.paso h3{font-size:17px;margin-bottom:5px}
.paso p{font-size:15px;color:var(--ink-2)}

/* garantia */
.garantia{background:var(--dark);color:var(--on-dark);border-top:2px solid var(--accent)}
.garantia h2{color:#fff;font-size:clamp(24px,3.1vw,33px)}
.garantia p{color:var(--on-dark-muted)}
.garantia .box{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:28px;align-items:center}
.garantia .fine{font-size:12.6px;color:var(--muted);margin-top:14px}

/* faq */
details{border-bottom:1px solid var(--hair);padding:15px 0}
details summary{cursor:pointer;font-family:Archivo,sans-serif;font-weight:600;font-size:17px;
  list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center}
details summary::-webkit-details-marker{display:none}
details summary::after{content:"+";font-family:"IBM Plex Mono",monospace;color:var(--accent);font-size:19px}
details[open] summary::after{content:"–"}
details p{margin-top:10px;color:var(--ink-2);font-size:15.2px;max-width:70ch}

/* contacto */
.contacto{background:var(--surface)}
.datos{display:grid;gap:14px}
.datos .row{display:grid;grid-template-columns:96px 1fr;gap:14px;align-items:baseline;
  border-bottom:1px dashed var(--hair);padding-bottom:12px}
.datos .k{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.datos .v{font-size:15.6px;font-weight:500;user-select:all}
footer{background:var(--dark);color:var(--on-dark-muted);padding-block:26px;font-size:13.4px}
footer .wrap{display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between}
footer a{color:var(--on-dark)}
@media (max-width:560px){
  .plazo{grid-template-columns:1fr;gap:8px}
  .hall{grid-template-columns:auto 1fr;}
  .hall .chip{grid-column:2}
}
/* movimiento — discreto y sólo al cargar */
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes drift{from{transform:scale(1.06) translate3d(0,0,0)}to{transform:scale(1.13) translate3d(-1.2%,-1%,0)}}
@keyframes sweep{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.hero img{animation:drift 26s ease-out both}
.hero .eyebrow,.hero h1,.hero .lede,.hero .cta,.hero .ficha{animation:rise .62s cubic-bezier(.2,.7,.3,1) both}
.hero h1{animation-delay:.06s}
.hero .lede{animation-delay:.14s}
.hero .cta{animation-delay:.22s}
.hero .ficha{animation-delay:.3s}
.dec{position:relative}
.dec::after{content:"";position:absolute;top:-2px;left:0;right:0;height:2px;background:var(--accent);
  transform:scaleX(0);transform-origin:left;animation:sweep .7s cubic-bezier(.2,.7,.3,1) both .15s}
.rubro{transition:border-color .18s ease, transform .18s ease}
.rubro:hover{border-color:var(--accent);transform:translateY(-2px)}
.hall{transition:background .18s ease}
.hall:hover{background:var(--surface-2)}
.btn{transition:background .15s ease, transform .15s ease}
.btn:active{transform:translateY(1px)}
details summary::after{transition:transform .18s ease}
details[open] summary::after{transform:rotate(180deg)}
@media (prefers-reduced-motion:reduce){
  .hero img,.hero .eyebrow,.hero h1,.hero .lede,.hero .cta,.hero .ficha,.dec::after{animation:none!important}
  .dec::after{transform:none}
}
/* barra de progreso de lectura */
.progress{position:absolute;left:0;bottom:-1px;height:2px;background:var(--accent);width:0;
  transform-origin:left;will-change:width}
/* reveal: sólo se oculta si el JS lo habilita, así sin JS todo queda visible */
.js-reveal .reveal{opacity:0;transform:translateY(16px)}
.js-reveal .reveal.in{opacity:1;transform:none;
  transition:opacity .6s cubic-bezier(.2,.7,.3,1), transform .6s cubic-bezier(.2,.7,.3,1)}
.js-reveal .reveal.d1{transition-delay:.08s}.js-reveal .reveal.d2{transition-delay:.16s}
.js-reveal .reveal.d3{transition-delay:.24s}.js-reveal .reveal.d4{transition-delay:.32s}
.js-reveal .reveal.d5{transition-delay:.4s}.js-reveal .reveal.d6{transition-delay:.48s}
/* la línea naranja de las tres columnas se dibuja al entrar en pantalla */
.dec::after{animation:none;transform:scaleX(0);transition:transform .7s cubic-bezier(.2,.7,.3,1)}
.dec.in::after{transform:scaleX(1)}
.plazo .t{transition:color .3s ease}
@media (prefers-reduced-motion:reduce){
  .js-reveal .reveal{opacity:1!important;transform:none!important}
  .dec::after{transform:scaleX(1)!important}
  .progress{display:none}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important}}
/* ---------- video de portada ---------- */
.hero img{z-index:0}
.hero::after{z-index:1}
.hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;
  opacity:0;filter:grayscale(.2) contrast(1.05);transition:opacity 1.1s linear}
.hero video.on{opacity:.5}
.hero.playing img{opacity:0;transition:opacity 1.1s linear}

/* ---------- los 200 puntos ---------- */
.puntos{background:#111111;color:var(--on-dark-muted);border-block:1px solid #2a2724}
.puntos h2{color:#fff}
.puntos .lede{color:var(--on-dark-muted)}
.puntos .head{margin-bottom:12px}
.stage{position:relative;width:100%;max-width:1040px;margin:0 auto;aspect-ratio:16/9}
.modelo{position:absolute;inset:0}
.modelo img,.modelo video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 17%,#000 83%,transparent 100%),linear-gradient(180deg,transparent 0,#000 8%,#000 92%,transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,transparent 0,#000 17%,#000 83%,transparent 100%),linear-gradient(180deg,transparent 0,#000 8%,#000 92%,transparent 100%);
  mask-composite:intersect}
.modelo video{opacity:0}
.modelo video.on{opacity:1}
.stage>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.ln{fill:none;stroke:#6f665d;stroke-width:1;vector-effect:non-scaling-stroke;
  transition:stroke-dashoffset .9s cubic-bezier(.2,.7,.3,1),stroke .18s ease}
.pt{fill:var(--accent)}
.halo{fill:none;stroke:var(--accent);stroke-width:1;opacity:.32;vector-effect:non-scaling-stroke;
  transition:opacity .2s ease,stroke-width .2s ease}
.pt,.halo{transition:opacity .45s ease}
.lbl{position:absolute;transform:translateY(-50%);width:23.5%;
  font-size:clamp(11.5px,1.32vw,15px);line-height:1.26;
  transition:opacity .55s ease,transform .55s cubic-bezier(.2,.7,.3,1)}
.lbl.l{right:75.4%;text-align:right}
.lbl.r{left:75.4%}
.lbl i{display:block;font-style:normal;font-family:"IBM Plex Mono",monospace;
  font-size:.76em;letter-spacing:.14em;color:var(--accent);margin-bottom:4px}
.lbl b{display:block;font-family:Archivo,sans-serif;font-weight:600;color:#fff;letter-spacing:-.01em}
.pie{margin:30px auto 0;text-align:center;max-width:60ch;font-size:14.6px;color:var(--on-dark-muted)}
.pie em{font-style:normal;color:var(--on-dark)}
.lista200{display:none}
@media (min-width:861px){.stage{margin-bottom:-28px}}

/* estado inicial de la animación: sólo si el JS lo arma */
.stage.arm .ln{stroke-dasharray:var(--len);stroke-dashoffset:var(--len)}
.stage.arm.go .ln{stroke-dashoffset:0}
.stage.arm .pt,.stage.arm .halo{opacity:0}
.stage.arm.go .pt{opacity:1}
.stage.arm.go .halo{opacity:.32}
.stage.arm .lbl{opacity:0}
.stage.arm .lbl.l{transform:translateY(-50%) translateX(-12px)}
.stage.arm .lbl.r{transform:translateY(-50%) translateX(12px)}
.stage.arm.go .lbl{opacity:1;transform:translateY(-50%)}
.ln,.pt,.halo,.lbl{transition-delay:var(--d,0s)}

@media (max-width:860px){
  .stage{aspect-ratio:1/1;max-width:440px}
  .stage>svg,.stage .lbl{display:none}
  .modelo img,.modelo video{
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 9%,#000 91%,transparent 100%),linear-gradient(180deg,transparent 0,#000 7%,#000 93%,transparent 100%);
    mask-image:linear-gradient(90deg,transparent 0,#000 9%,#000 91%,transparent 100%),linear-gradient(180deg,transparent 0,#000 7%,#000 93%,transparent 100%)}
  .lista200{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:1px;
    background:#3b3630;border:1px solid #3b3630;margin-top:24px}
  .lista200 div{background:var(--dark);padding:11px 13px}
  .lista200 i{display:block;font-style:normal;font-family:"IBM Plex Mono",monospace;
    font-size:10.5px;letter-spacing:.14em;color:var(--accent);margin-bottom:3px}
  .lista200 b{font-family:Archivo,sans-serif;font-weight:600;font-size:14px;color:#fff}
}
@media (prefers-reduced-motion:reduce){
  .stage.arm .ln{stroke-dasharray:none!important;stroke-dashoffset:0!important}
  .stage.arm .pt,.stage.arm .lbl{opacity:1!important;transform:translateY(-50%)!important}
  .stage.arm .halo{opacity:.32!important}
}
.stage:has(.lbl[data-i="1"]:hover) .g1 .ln{stroke:var(--accent)}
.stage:has(.lbl[data-i="1"]:hover) .g1 .halo{opacity:.85;stroke-width:1.6}
.stage:has(.lbl[data-i="2"]:hover) .g2 .ln{stroke:var(--accent)}
.stage:has(.lbl[data-i="2"]:hover) .g2 .halo{opacity:.85;stroke-width:1.6}
.stage:has(.lbl[data-i="3"]:hover) .g3 .ln{stroke:var(--accent)}
.stage:has(.lbl[data-i="3"]:hover) .g3 .halo{opacity:.85;stroke-width:1.6}
.stage:has(.lbl[data-i="4"]:hover) .g4 .ln{stroke:var(--accent)}
.stage:has(.lbl[data-i="4"]:hover) .g4 .halo{opacity:.85;stroke-width:1.6}
.stage:has(.lbl[data-i="5"]:hover) .g5 .ln{stroke:var(--accent)}
.stage:has(.lbl[data-i="5"]:hover) .g5 .halo{opacity:.85;stroke-width:1.6}
.stage:has(.lbl[data-i="6"]:hover) .g6 .ln{stroke:var(--accent)}
.stage:has(.lbl[data-i="6"]:hover) .g6 .halo{opacity:.85;stroke-width:1.6}
.stage:has(.lbl[data-i="7"]:hover) .g7 .ln{stroke:var(--accent)}
.stage:has(.lbl[data-i="7"]:hover) .g7 .halo{opacity:.85;stroke-width:1.6}
.stage:has(.lbl[data-i="8"]:hover) .g8 .ln{stroke:var(--accent)}
.stage:has(.lbl[data-i="8"]:hover) .g8 .halo{opacity:.85;stroke-width:1.6}


:root{color-scheme:dark;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box}
img{max-width:100%}
[hidden]{display:none!important}


/* ================= sitio de cinco páginas ================= */
.nav a[aria-current="page"]{color:var(--ink);border-color:var(--accent)}

/* cabecera de las páginas interiores: la misma familia que el hero, más baja */
.pagehead{position:relative;background:var(--dark);color:var(--on-dark);overflow:hidden}
.pagehead img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.34;
  filter:grayscale(.25) contrast(1.05)}
.pagehead::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(105deg,rgba(16,15,14,.96) 0%,rgba(16,15,14,.86) 50%,rgba(16,15,14,.45) 100%)}
.pagehead .wrap{position:relative;z-index:2;padding-block:clamp(46px,6.5vw,84px)}
.pagehead .eyebrow{color:var(--accent)}
.pagehead h1{font-size:clamp(30px,4.4vw,50px);line-height:1.06;max-width:19ch;color:#fff;margin-top:10px}
.pagehead .lede{color:var(--on-dark-muted);margin-top:16px;max-width:58ch}
.pagehead .fine{font-size:12.8px;color:var(--on-dark-muted);margin-top:12px;opacity:.85}
.pagehead .cta{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap}
.pagehead .eyebrow,.pagehead h1,.pagehead .lede,.pagehead .fine,.pagehead .cta{animation:rise .62s cubic-bezier(.2,.7,.3,1) both}
.pagehead h1{animation-delay:.06s}.pagehead .lede{animation-delay:.14s}
.pagehead .fine,.pagehead .cta{animation-delay:.22s}
@media (prefers-reduced-motion:reduce){
  .pagehead .eyebrow,.pagehead h1,.pagehead .lede,.pagehead .fine,.pagehead .cta{animation:none!important}
}

/* enlace de continuación bajo una sección */
.mas-link{margin-top:24px;text-align:center}
.puntos .mas-link{margin-top:20px}
.mas-link a{color:var(--accent);font-weight:600;text-decoration:none;border-bottom:1.5px solid transparent;
  padding-bottom:2px;transition:border-color .15s}
.mas-link a:hover{border-color:var(--accent)}

/* tarjetas que llevan a otra página */
.teaser{display:flex;flex-direction:column;gap:8px;text-decoration:none;color:inherit;
  background:var(--surface);border:1px solid var(--hair);padding:24px 24px 22px;
  transition:border-color .18s ease,transform .18s ease}
.teaser:hover{border-color:var(--accent);transform:translateY(-2px)}
.teaser h3{font-size:clamp(18px,2vw,21px);line-height:1.25}
.teaser p{color:var(--ink-2);font-size:15.2px}
.teaser .mas{margin-top:auto;padding-top:10px;color:var(--accent);font-weight:600;font-size:14.5px}
.teaser .eyebrow{font-size:11.5px;color:var(--muted)}   /* que .teaser p no lo agrande */

/* franja de pedido al final de cada página */
.cta-band{background:var(--surface);border-top:1px solid var(--hair)}
.cta-band .wrap{display:grid;grid-template-columns:1fr auto;gap:22px 44px;align-items:center;
  padding-block:clamp(40px,6vw,66px)}
.cta-band h2{font-size:clamp(22px,2.8vw,30px);margin-bottom:8px}
.cta-band p{color:var(--ink-2);max-width:56ch}
.cta-band .cta{display:flex;gap:12px;flex-wrap:wrap}
@media (max-width:760px){.cta-band .wrap{grid-template-columns:1fr}}

/* contacto */
.h-sec{font-size:clamp(22px,2.6vw,28px);margin-bottom:14px}
.check{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.check li{position:relative;padding-left:18px;color:var(--ink-2)}
.check li::before{content:"";position:absolute;left:0;top:.72em;width:8px;height:1.5px;background:var(--accent)}
.nota-c{margin-top:16px;color:var(--muted);font-size:14.4px}
.datos .v a{color:inherit;text-decoration:none;border-bottom:1px solid var(--hair)}
.datos .v a:hover{border-color:var(--accent)}

/* pie con las páginas */
.pie-nav{display:flex;flex-wrap:wrap;gap:6px 18px}
.pie-nav a{text-decoration:none;color:var(--on-dark)}
.pie-nav a:hover{color:var(--accent)}



/* =====================================================================
   VERSIÓN CLARA — «más claridad y difusión», como el Instagram de home
   ===================================================================== */
:root{
  color-scheme: light;
  --ink:#454442;          /* gris carbón: títulos */
  --ink-2:#56554f;        /* texto corrido (7,4:1) */
  --muted:#666562;        /* gris medio, un punto más hondo para AA sobre naranja pálido */
  --hair:#e6dfd4;
  --bg:#FFFEFA;           /* blanco hueso */
  --surface:#F5F2EC;      /* zebra */
  --surface-2:#EFE9DF;
  --accent:#E97132;       /* naranja Treo: decorativo */
  --accent-strong:#BA5720;/* fondos con texto blanco: 4,65:1 */
  --accent-text:#A84D1A;  /* texto naranja sobre claros: 4,7 a 5,6:1 */
  --accent-soft:#FBE7D7;  /* naranja pálido */
  --dark:#454442;         /* los oscuros de la marca son carbón, no negro */
  --on-dark:#FFFEFA; --on-dark-muted:#e4ded4;
  --sev-alta:#a8401f; --sev-media:#85570d; --sev-baja:#3d6632;
  --sev-alta-bg:#fbe3da; --sev-media-bg:#f8ebd1; --sev-baja-bg:#e4efdd;
  --sombra:0 22px 44px -30px rgba(69,68,66,.42),0 2px 8px -4px rgba(69,68,66,.12);
  --glow:rgba(251,231,215,.95);
}

/* ---------- rótulo naranja y raya bajo el título, como en el feed ---------- */
.eyebrow,.hero .eyebrow,.pagehead .eyebrow,.puntos .eyebrow{display:inline-block;align-self:flex-start;
  background:var(--accent-strong);color:#FFFEFA;font-family:Archivo,"Helvetica Neue",Arial,sans-serif;
  font-weight:700;font-size:10.5px;letter-spacing:.13em;padding:5px 9px 4px;border-radius:2px;line-height:1.2}
.head h2::after,.pagehead h1::after,.hero h1::after{content:"";display:block;width:48px;height:3px;
  border-radius:2px;background:var(--accent);margin-top:16px}
.hero h1{margin-top:14px}

/* ---------- portada: foto a pleno y degradé carbón sólo donde va el texto ---------- */
.hero img{opacity:1;filter:saturate(.92) brightness(1.08) contrast(1.02)}
.hero video{filter:saturate(.92) brightness(1.08) contrast(1.02)}
.hero video.on{opacity:1}
.hero video:not(.on){transition-delay:1.1s}   /* la que sale espera a que entre la otra: sin bajón de luz */
.hero::after{background:
  radial-gradient(70% 90% at 0% 100%,rgba(233,113,50,.20),rgba(233,113,50,0) 70%),
  linear-gradient(100deg,rgba(69,68,66,.95) 0%,rgba(69,68,66,.84) 36%,rgba(69,68,66,.34) 64%,rgba(69,68,66,0) 88%)}
.ficha{background:rgba(255,254,250,.16);border-color:rgba(255,254,250,.16)}
.ficha div{background:rgba(69,68,66,.74);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}

.pagehead img{opacity:1;filter:saturate(.9) brightness(1.1) contrast(1.02)}
.pagehead::after{background:
  radial-gradient(60% 100% at 0% 100%,rgba(233,113,50,.18),rgba(233,113,50,0) 70%),
  linear-gradient(100deg,rgba(69,68,66,.95) 0%,rgba(69,68,66,.85) 40%,rgba(69,68,66,.32) 72%,rgba(69,68,66,0) 94%)}

/* en pantallas angostas el texto ocupa todo el ancho: velo carbón parejo */
@media (max-width:760px){
  .hero::after,.pagehead::after{background:
    radial-gradient(90% 60% at 0% 100%,rgba(233,113,50,.16),rgba(233,113,50,0) 70%),
    linear-gradient(180deg,rgba(69,68,66,.80) 0%,rgba(69,68,66,.88) 100%)}
}

/* ---------- botones ---------- */
.btn,.btn.on-dark{background:var(--accent-strong);color:#FFFEFA}
.btn:hover,.btn.on-dark:hover{background:#A44B1B}
.btn.ghost{background:transparent;color:var(--ink);border:1.5px solid #cdc4b6}
.btn.ghost:hover{background:transparent;border-color:var(--accent)}
.btn.ghost.on-dark{background:rgba(255,254,250,.07);color:#FFFEFA;border-color:rgba(255,254,250,.5)}
.btn.ghost.on-dark:hover{border-color:#FFFEFA;background:rgba(255,254,250,.12)}

/* ---------- tarjetas: blancas, con sombra difusa ---------- */
.rubro,.teaser,.informe,.plazos{background:#FFFEFA;border-color:var(--hair);box-shadow:var(--sombra)}
.rubro:hover,.teaser:hover{box-shadow:0 26px 50px -30px rgba(69,68,66,.5),0 2px 8px -4px rgba(69,68,66,.14)}
figure img{filter:none;border-color:var(--hair);box-shadow:var(--sombra)}

/* ---------- naranja como texto: el tono con contraste ---------- */
.dec .n,.plazo .t,.teaser .mas{color:var(--accent-text)}
.teaser .eyebrow{margin-bottom:2px;font-size:10.5px;color:#FFFEFA}

/* ---------- la banda del edificio sigue oscura: es la pieza de escena ---------- */
.puntos{border-block:0}
.lista200 div{background:#1a1918}


/* =====================================================================
   VERSIÓN LUMINOSA — portada y cabeceras radiantes, secciones alternadas,
   transiciones suavizadas con curva smootherstep y resplandores compartidos
   ===================================================================== */
:root{
  --hueso:#FFFEFA; --zebra:#F5F2EC; --palido:#FBE7D7; --carbon:#454442; --escena:#111111;
  --f:clamp(150px,17vw,250px);                         /* alto de cada transición */
  --bloom-claro:rgba(251,231,215,.9);
  --bloom-limite:rgba(251,231,215,.6);                  /* resplandor en un límite claro-oscuro */
  --bloom-osc:rgba(251,231,215,.26);                    /* el mismo, más tenue, del lado oscuro */
  --ease-in-out:cubic-bezier(0.77,0,0.175,1);
  --grano:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' 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 .05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
}
.section+.section,.cta-band{border-top:0}   /* ninguna línea corta las transiciones */

/* ---------- el sistema de transiciones ---------- */
section.fx{
  position:relative;
  --vacio:linear-gradient(transparent,transparent);
  --tr:linear-gradient(var(--base),var(--base));
  /* una sola capa opaca (--tr) con la entrada, el base y la salida mezclados con la misma curva;
     encima, sólo capas translúcidas. Si el base fuera otra capa debajo, en un borde que cae
     entre dos píxeles se filtra por el suavizado y dibuja una línea. */
  background:
    radial-gradient(58% var(--f) at var(--bxt,22%) 0,var(--bloom-t,transparent),transparent 100%),
    radial-gradient(58% var(--f) at var(--bxb,78%) 100%,var(--bloom-b,transparent),transparent 100%),
    var(--extra,var(--vacio)),
    var(--tr);
  background-color:transparent;
  background-repeat:no-repeat;
}
section.fx.claro{--base:var(--hueso)}
section.fx.zebra{--base:var(--zebra)}
section.fx.oscuro{--base:var(--carbon);color:var(--on-dark-muted)}   /* sin grano: su primera fila dibujaba una línea en el borde */
section.fx.escena{--base:var(--escena)}
/* el resplandor de un límite tiene la misma intensidad de los dos lados */
.fx.bt{--bloom-t:var(--bloom-limite)}
.fx.bb{--bloom-b:var(--bloom-limite)}
.fx.bt-s{--bloom-t:var(--bloom-osc)}          /* después de una cabecera que ya se fundió en carbón */
/* cada sección monta un píxel sobre la anterior: el límite no queda en una fila compartida */
main > section + section{margin-top:-1px}
section.fx.ft{padding-top:calc(var(--f)*.78 + 18px)}
section.fx.fb{padding-bottom:calc(var(--f)*.78 + 18px)}
.hero.luminoso{--fade-hero:linear-gradient(0deg,color-mix(in oklab,var(--carbon) 100.0%,transparent) calc(var(--f)*0.0000),color-mix(in oklab,var(--carbon) 99.5%,transparent) calc(var(--f)*0.0833),color-mix(in oklab,var(--carbon) 96.5%,transparent) calc(var(--f)*0.1667),color-mix(in oklab,var(--carbon) 89.6%,transparent) calc(var(--f)*0.2500),color-mix(in oklab,var(--carbon) 79.0%,transparent) calc(var(--f)*0.3333),color-mix(in oklab,var(--carbon) 65.3%,transparent) calc(var(--f)*0.4167),color-mix(in oklab,var(--carbon) 50.0%,transparent) calc(var(--f)*0.5000),color-mix(in oklab,var(--carbon) 34.7%,transparent) calc(var(--f)*0.5833),color-mix(in oklab,var(--carbon) 21.0%,transparent) calc(var(--f)*0.6667),color-mix(in oklab,var(--carbon) 10.4%,transparent) calc(var(--f)*0.7500),color-mix(in oklab,var(--carbon) 3.5%,transparent) calc(var(--f)*0.8333),color-mix(in oklab,var(--carbon) 0.5%,transparent) calc(var(--f)*0.9167),color-mix(in oklab,var(--carbon) 0.0%,transparent) calc(var(--f)*1.0000))}
.pagehead.luminoso.a-carbon{--fade-ph:linear-gradient(0deg,color-mix(in oklab,var(--carbon) 100.0%,transparent) calc(var(--f)*0.0000),color-mix(in oklab,var(--carbon) 99.5%,transparent) calc(var(--f)*0.0833),color-mix(in oklab,var(--carbon) 96.5%,transparent) calc(var(--f)*0.1667),color-mix(in oklab,var(--carbon) 89.6%,transparent) calc(var(--f)*0.2500),color-mix(in oklab,var(--carbon) 79.0%,transparent) calc(var(--f)*0.3333),color-mix(in oklab,var(--carbon) 65.3%,transparent) calc(var(--f)*0.4167),color-mix(in oklab,var(--carbon) 50.0%,transparent) calc(var(--f)*0.5000),color-mix(in oklab,var(--carbon) 34.7%,transparent) calc(var(--f)*0.5833),color-mix(in oklab,var(--carbon) 21.0%,transparent) calc(var(--f)*0.6667),color-mix(in oklab,var(--carbon) 10.4%,transparent) calc(var(--f)*0.7500),color-mix(in oklab,var(--carbon) 3.5%,transparent) calc(var(--f)*0.8333),color-mix(in oklab,var(--carbon) 0.5%,transparent) calc(var(--f)*0.9167),color-mix(in oklab,var(--carbon) 0.0%,transparent) calc(var(--f)*1.0000))}
.pagehead.luminoso.a-zebra{--fade-ph:linear-gradient(0deg,color-mix(in oklab,var(--zebra) 100.0%,transparent) calc(var(--f)*0.0000),color-mix(in oklab,var(--zebra) 99.5%,transparent) calc(var(--f)*0.0833),color-mix(in oklab,var(--zebra) 96.5%,transparent) calc(var(--f)*0.1667),color-mix(in oklab,var(--zebra) 89.6%,transparent) calc(var(--f)*0.2500),color-mix(in oklab,var(--zebra) 79.0%,transparent) calc(var(--f)*0.3333),color-mix(in oklab,var(--zebra) 65.3%,transparent) calc(var(--f)*0.4167),color-mix(in oklab,var(--zebra) 50.0%,transparent) calc(var(--f)*0.5000),color-mix(in oklab,var(--zebra) 34.7%,transparent) calc(var(--f)*0.5833),color-mix(in oklab,var(--zebra) 21.0%,transparent) calc(var(--f)*0.6667),color-mix(in oklab,var(--zebra) 10.4%,transparent) calc(var(--f)*0.7500),color-mix(in oklab,var(--zebra) 3.5%,transparent) calc(var(--f)*0.8333),color-mix(in oklab,var(--zebra) 0.5%,transparent) calc(var(--f)*0.9167),color-mix(in oklab,var(--zebra) 0.0%,transparent) calc(var(--f)*1.0000))}

/* ---------- textos en secciones oscuras ---------- */
.oscuro .head h2,.oscuro h2,.oscuro h3,.escena h2{color:#FFFEFA}
.oscuro .lede{color:var(--on-dark-muted)}
.oscuro .dec{border-top-color:rgba(255,254,250,.28)}
.oscuro .dec p{color:var(--on-dark-muted)}
.oscuro .dec .n,.oscuro .plazo .t{color:#F6A36F}
.oscuro .rubro{background:rgba(255,254,250,.05);border-color:rgba(255,254,250,.13);box-shadow:none}
.oscuro .rubro:hover{border-color:var(--accent);box-shadow:none}
.oscuro .rubro li{color:var(--on-dark-muted)}
.oscuro .rubro h3 em,.oscuro .tools{color:#cfc8bd}
.oscuro .tools{border-top-color:rgba(255,254,250,.16)}
.oscuro .plazos{background:rgba(255,254,250,.04);border-color:rgba(255,254,250,.13);box-shadow:none}
.oscuro .plazo{border-bottom-color:rgba(255,254,250,.13)}
.oscuro .plazo p{color:var(--on-dark-muted)}
.oscuro .plazo .t small{color:#cfc8bd}
.oscuro details{border-bottom-color:rgba(255,254,250,.15)}
.oscuro details summary{color:#FFFEFA}
.oscuro details p{color:var(--on-dark-muted)}
.oscuro details a,.oscuro .mas-link a,.escena .mas-link a{color:#F6A36F}
.oscuro .btn.ghost{background:rgba(255,254,250,.06);color:#FFFEFA;border-color:rgba(255,254,250,.45)}

/* ---------- portada luminosa: la foto a pleno, el texto sobre luz ---------- */
.hero.luminoso{background:var(--hueso);color:var(--ink)}
.hero.luminoso img{opacity:1;animation:none;filter:none;object-position:68% 42%}
.hero.luminoso::after{background:
  radial-gradient(58% var(--f) at 22% 100%,var(--bloom-hero,var(--bloom-osc)),transparent 100%),   /* encima del degradé: coincide con el de abajo */
  var(--fade-hero),
  radial-gradient(55% 70% at 6% 8%,rgba(251,231,215,.85),rgba(251,231,215,0) 70%),
  linear-gradient(90deg,rgba(255,254,250,.97) 0%,rgba(255,254,250,.9) 30%,rgba(255,254,250,.5) 47%,rgba(255,254,250,0) 64%)}
.hero.luminoso h1{color:var(--ink)}
.hero.luminoso .lede{color:var(--ink-2)}
.hero.luminoso .btn.ghost{background:rgba(255,254,250,.6);color:var(--ink);border-color:#cdc4b6}
.hero.luminoso .btn.ghost:hover{border-color:var(--accent)}
.hero.luminoso .ficha{background:transparent;border:0;gap:12px}
.hero.luminoso .ficha div{background:rgba(255,254,250,.82);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border:1px solid var(--hair);box-shadow:var(--sombra)}
.hero.luminoso .ficha dt{color:var(--muted)}
.hero.luminoso .ficha dd{color:var(--ink)}
.hero.luminoso .wrap{padding-bottom:calc(var(--f)*.9 + 16px)}

.pagehead.luminoso{background:var(--hueso);color:var(--ink)}
.pagehead.luminoso{min-height:clamp(540px,47vw,740px)}   /* más alta: el fundido queda debajo del personaje */
.pagehead.luminoso img{opacity:1;filter:none;object-position:70% 26%}
.pagehead.luminoso::after{background:
  radial-gradient(58% var(--f) at 22% 100%,var(--bloom-ph,var(--bloom-osc)),transparent 100%),
  var(--fade-ph),
  radial-gradient(55% 80% at 6% 10%,rgba(251,231,215,.85),rgba(251,231,215,0) 70%),
  linear-gradient(90deg,rgba(255,254,250,.97) 0%,rgba(255,254,250,.9) 32%,rgba(255,254,250,.5) 50%,rgba(255,254,250,0) 68%)}
.pagehead.luminoso h1{color:var(--ink)}
.pagehead.luminoso .lede{color:var(--ink-2)}
.pagehead.luminoso .fine{color:var(--muted);opacity:1}
.pagehead.luminoso .wrap{padding-bottom:calc(var(--f)*.8 + 14px)}
.pagehead.luminoso.a-zebra{--bloom-ph:var(--bloom-limite)}
/* la última fila de la foto no debe asomar como línea */
.hero + .section,.pagehead + .section{margin-top:-2px}

@media (max-width:760px){
  .hero.luminoso img,.pagehead.luminoso img{position:relative;display:block;width:100%;height:auto;aspect-ratio:4/3}
  .hero.luminoso::after,.pagehead.luminoso::after{background:
    var(--fade-hero,var(--fade-ph)),
    linear-gradient(180deg,rgba(255,254,250,0) 0,rgba(255,254,250,0) 52vw,var(--hueso) 75vw)}
  .pagehead.luminoso::after{background:var(--fade-ph),
    linear-gradient(180deg,rgba(255,254,250,0) 0,rgba(255,254,250,0) 52vw,var(--hueso) 75vw)}
  .hero.luminoso .wrap,.pagehead.luminoso .wrap{padding-top:6px}
  .pagehead.luminoso{min-height:0}
}

/* ---------- «Cómo trabajamos»: la foto se disuelve hacia el texto ---------- */
.paso-bloque{display:flex;flex-direction:column;gap:14px}
.foto-paso{margin:0;aspect-ratio:4/3;overflow:hidden}
.foto-paso img{width:100%;height:100%;object-fit:cover;display:block;
  -webkit-mask-image:linear-gradient(180deg,#000 0,#000 58%,transparent 100%);
  mask-image:linear-gradient(180deg,#000 0,#000 58%,transparent 100%)}
.js-reveal .foto-paso.reveal{opacity:1;transform:none}
.js-reveal .foto-paso img{clip-path:inset(0 0 100% 0);transition:clip-path 600ms var(--ease-in-out)}
.js-reveal .foto-paso.in img{clip-path:inset(0 0 0 0)}
.paso-bloque:nth-child(2) .foto-paso img{transition-delay:50ms}
.paso-bloque:nth-child(3) .foto-paso img{transition-delay:100ms}
.paso-bloque .paso{margin-top:-34px;position:relative}

/* ---------- instrumental ---------- */
.instr{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center}
.instr-foto{margin:0;aspect-ratio:16/10}
.instr-foto img{width:100%;height:100%;object-fit:cover;display:block;
  -webkit-mask-image:linear-gradient(90deg,#000 45%,transparent 100%),linear-gradient(180deg,transparent 0,#000 16%,#000 84%,transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,#000 45%,transparent 100%),linear-gradient(180deg,transparent 0,#000 16%,#000 84%,transparent 100%);
  mask-composite:intersect}
.instr-texto{display:flex;flex-direction:column;gap:12px;
  padding-inline:clamp(16px,3vw,40px) max(20px,calc((100vw - var(--maxw))/2 + 20px))}
.instr-texto h2{font-size:clamp(25px,3.2vw,35px)}
.instr-texto h2::after{content:"";display:block;width:48px;height:3px;border-radius:2px;background:var(--accent);margin-top:16px}
.instr-lista{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 22px}
.instr-lista li{position:relative;padding-left:16px;font-size:15px;color:var(--on-dark)}
.instr-lista li::before{content:"";position:absolute;left:0;top:.72em;width:8px;height:1.5px;background:var(--accent)}
.mas-link.izq{text-align:left;margin-top:14px}
@media (max-width:860px){
  .instr{grid-template-columns:1fr}
  .instr-foto img{
    -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 12%,#000 70%,transparent 100%);
    mask-image:linear-gradient(180deg,transparent 0,#000 12%,#000 70%,transparent 100%)}
  .instr-texto{padding-inline:20px}
}

/* ---------- el informe de ejemplo: las fotos van dentro del documento ---------- */
.informe-solo{max-width:880px;margin-inline:auto}
.hall-foto{margin:12px 0 0;display:grid;grid-template-columns:150px 1fr;gap:14px;align-items:center}
.hall-foto img{width:150px;aspect-ratio:4/3;object-fit:cover;border-radius:2px;display:block}
.hall-foto figcaption{font-size:12.8px;color:var(--muted);margin:0}
@media (max-width:560px){.hall-foto{grid-template-columns:1fr}.hall-foto img{width:100%}}

/* ---------- franja de pedido: luz de naranja pálido que entra por la izquierda ---------- */
#pedido{--extra:radial-gradient(70% 90% at 0% 45%,rgba(251,231,215,.95),rgba(251,231,215,0) 72%)}
#pedido{padding-top:clamp(56px,8vw,96px)}
#pedido .wrap{padding-block:0}

/* ---------- pie en carbón ---------- */
footer{background:var(--carbon);position:relative;margin-top:-1px}   /* también monta un píxel sobre la franja */


/* ---------- cinta de clientes ---------- */
.hero.luminoso.a-hueso{--fade-hero:linear-gradient(0deg,color-mix(in oklab,var(--hueso) 100.0%,transparent) calc(var(--f)*0.0000),color-mix(in oklab,var(--hueso) 99.5%,transparent) calc(var(--f)*0.0833),color-mix(in oklab,var(--hueso) 96.5%,transparent) calc(var(--f)*0.1667),color-mix(in oklab,var(--hueso) 89.6%,transparent) calc(var(--f)*0.2500),color-mix(in oklab,var(--hueso) 79.0%,transparent) calc(var(--f)*0.3333),color-mix(in oklab,var(--hueso) 65.3%,transparent) calc(var(--f)*0.4167),color-mix(in oklab,var(--hueso) 50.0%,transparent) calc(var(--f)*0.5000),color-mix(in oklab,var(--hueso) 34.7%,transparent) calc(var(--f)*0.5833),color-mix(in oklab,var(--hueso) 21.0%,transparent) calc(var(--f)*0.6667),color-mix(in oklab,var(--hueso) 10.4%,transparent) calc(var(--f)*0.7500),color-mix(in oklab,var(--hueso) 3.5%,transparent) calc(var(--f)*0.8333),color-mix(in oklab,var(--hueso) 0.5%,transparent) calc(var(--f)*0.9167),color-mix(in oklab,var(--hueso) 0.0%,transparent) calc(var(--f)*1.0000));--bloom-hero:var(--bloom-limite)}
.hero + .clientes{margin-top:-2px}
.brand-logo{display:block;line-height:0}
/* ---------- WhatsApp flotante ---------- */
.wa-flotante{position:fixed;right:clamp(16px,2.4vw,28px);bottom:calc(clamp(16px,2.4vw,28px) + env(safe-area-inset-bottom,0px));z-index:60;
  width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--accent-strong);color:#fff;
  box-shadow:0 0 18px 4px rgba(240,138,68,.55),0 0 44px 14px rgba(240,138,68,.30),0 0 80px 26px rgba(246,163,111,.16),0 2px 6px rgba(92,40,12,.18);text-decoration:none;   /* resplandor exterior suave */
  transition:background-color .15s ease,transform .16s cubic-bezier(.23,1,.32,1)}
.wa-flotante:active{transform:scale(.96)}
.wa-flotante:focus-visible{outline:2.5px solid var(--accent-strong);outline-offset:4px;border-radius:50%}
@media (hover:hover) and (pointer:fine){.wa-flotante:hover{background:#A44B1B;transform:translateY(-2px)}}
@media (max-width:760px){.wa-flotante{width:54px;height:54px}}
.brand-logo img{display:block;width:44px;height:40px}
.hero.luminoso video{filter:none;object-position:68% 42%}   /* mismo encuadre que la foto: el cruce no se nota */
@media (max-width:760px){.hero.luminoso video{display:none}.hero.luminoso.playing img{opacity:1}}   /* en celular, la foto apilada */
.hero.luminoso.a-hueso .wrap{padding-bottom:calc(var(--f)*.42 + 18px)}   /* la cinta pegada a la portada, como en la referencia */
section.clientes{padding-block:clamp(26px,3.6vw,40px) clamp(34px,4.6vw,54px)}
.clientes-nota{margin:0 auto clamp(18px,2.4vw,26px);max-width:36em;padding-inline:20px;text-align:center;font-size:14px;line-height:1.5;color:var(--muted);text-wrap:balance}
.clientes-titulo{margin:0 0 8px;text-align:center;font-family:"IBM Plex Mono",ui-monospace,monospace;
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.cinta{overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 11%,#000 89%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 11%,#000 89%,transparent 100%)}
.cinta-pista{display:flex;width:max-content;animation:cinta var(--cinta-dur,110s) linear infinite}   /* movimiento constante: lineal */
.cinta-lista{display:flex;align-items:center;gap:84px;margin:0;padding:0 84px 0 0;list-style:none}
.cinta-lista li{flex:none;display:flex;align-items:center}
.cinta-lista img{display:block;max-width:none;opacity:.7;transition:opacity .2s ease}
@keyframes cinta{to{transform:translateX(-50%)}}
@media (hover:hover) and (pointer:fine){
  .cinta:hover .cinta-pista{animation-play-state:paused}   /* quien quiere leer un logo, lo frena */
  .cinta-lista img:hover{opacity:1}
}
@media (prefers-reduced-motion:reduce){
  .cinta{-webkit-mask-image:none;mask-image:none}
  .cinta-pista{animation:none;width:auto}
  .cinta-lista{flex-wrap:wrap;justify-content:center;gap:22px 40px;padding:0 20px}
  .cinta-lista[aria-hidden]{display:none}
}


/* ---------- nuestra app ---------- */
.app-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(36px,6vw,88px);align-items:center}
.app-texto h2{font-size:clamp(27px,3.6vw,40px);line-height:1.08;margin-top:12px;text-wrap:balance}
.app-texto h2 span,.app-cierre span{color:var(--accent-text)}
.app-texto .lede{margin-top:20px}
.app-texto .lede strong{color:var(--ink);font-weight:600}
.app-lista{list-style:none;margin:26px 0 0;padding:0;display:grid;gap:14px}
.app-lista li{position:relative;padding-left:36px;color:var(--ink-2);font-size:15.5px;line-height:1.55}
.app-lista li b{color:var(--ink);font-weight:600}
.app-lista li::before{content:"";position:absolute;left:0;top:1px;width:24px;height:24px;border-radius:50%;background:var(--accent-soft)}
.app-lista li::after{content:"";position:absolute;left:8px;top:7px;width:8px;height:5px;border-left:2px solid var(--accent-text);border-bottom:2px solid var(--accent-text);transform:rotate(-45deg)}
.app-cierre{margin-top:28px;font-family:Archivo,sans-serif;font-weight:700;font-size:clamp(19px,2vw,22px);color:var(--ink);letter-spacing:-.01em}

/* el celular: la interfaz real de la app, tema oscuro */
.app-movil{position:relative;margin:0;justify-self:center;width:min(100%,330px);
  --m-bg:#211f1d;--m-card:#2c2a27;--m-line:#403e3a;--m-ink:#f2efe9;--m-muted:#a9a49b;--m-treo:#E97132}
.movil{border-radius:44px;padding:11px;background:linear-gradient(160deg,#3a3835,#1c1b19);
  box-shadow:0 30px 60px -18px rgba(69,68,66,.45),0 0 0 1px rgba(69,68,66,.25),0 0 90px 10px rgba(233,113,50,.13)}
.pantalla{position:relative;border-radius:34px;overflow:hidden;background:var(--m-bg);color:var(--m-ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:11px;line-height:1.35;padding-bottom:58px}
.pantalla p{margin:0}
.m-barra{display:flex;align-items:center;gap:9px;padding:30px 14px 11px;background:var(--m-card);border-bottom:2.5px solid var(--m-treo)}
.app-movil .pantalla img{border:0;box-shadow:none;filter:none}   /* anula el borde y la sombra que el sitio pone a toda «figure img» */
.m-barra img{display:block;width:33px;height:30px}
.m-barra b{display:block;font-size:11.5px;letter-spacing:.04em}
.m-barra span{display:block;font-size:10px;color:var(--m-muted)}
.m-cuerpo{padding:11px 10px 0}
.m-card{background:var(--m-card);border:1px solid var(--m-line);border-radius:12px;margin-bottom:8px}
.m-inmueble{padding:10px 11px}
.m-tag{display:inline-block;background:#3a2b20;color:var(--m-treo);font-size:8.5px;font-weight:700;padding:2px 7px;border-radius:20px}
.m-dir{font-weight:700;font-size:12.5px;margin-top:7px!important}
.m-datos{display:flex;gap:6px;margin-top:8px}
.m-datos span{flex:1;background:#34322e;border:1px solid var(--m-line);border-radius:7px;padding:5px 7px;font-weight:600;font-size:10.5px}
.m-datos i{display:block;font-style:normal;font-weight:400;font-size:8.5px;color:var(--m-muted)}
.m-progreso{position:relative;display:flex;align-items:center;gap:11px;padding:9px 11px}
.anillo{width:42px;height:42px;transform:rotate(-90deg);flex:none}
.anillo circle{fill:none;stroke-width:6}
.anillo-pista{stroke:var(--m-line)}
.anillo-fill{stroke:var(--m-treo);stroke-linecap:round;stroke-dasharray:144.5;stroke-dashoffset:41.3}
.m-pct{position:absolute;left:11px;top:9px;width:42px;height:42px;display:grid;place-items:center;font-weight:700;font-size:10px;color:#e98a55}
.m-progreso p{color:var(--m-muted);font-size:10px}
.m-progreso p b{display:block;color:var(--m-ink);font-size:11.5px}
.m-titulo{font-size:9.5px;font-weight:700;color:var(--m-muted);text-transform:uppercase;letter-spacing:.05em;margin:12px 3px 6px!important}
.m-local{display:flex;flex-wrap:wrap;align-items:center;gap:9px;padding:8px 10px}
.m-local>p{flex:1;font-weight:700;font-size:11.5px}
.m-local small{display:block;font-weight:400;font-size:9.5px;color:var(--m-muted)}
.m-ico{width:28px;height:28px;border-radius:50%;background:var(--m-treo);box-shadow:0 2px 6px rgba(233,113,50,.4);flex:none;position:relative}
.m-ico::after{content:"";position:absolute;inset:9px;border:2px solid #fff;border-radius:2px}
.m-local em{font-style:normal;font-size:8.5px;font-weight:700;padding:2px 7px;border-radius:20px}
.m-local em.ok{background:#254a30;color:#7fd79a}
.m-local em.parcial{background:#4a3c1c;color:#f0c058}
.m-item{flex-basis:100%;border-top:1px solid var(--m-line);margin-top:4px;padding-top:9px}
.m-q{font-weight:600;font-size:11px}
.m-estrellas{display:flex;gap:4px;font-size:16px;color:#5a5752;margin:3px 0 7px!important}
.m-estrellas .on{color:var(--m-treo)}
.m-hallazgo{display:flex;gap:8px;align-items:center;background:#34322e;border-radius:8px;padding:6px}
.m-hallazgo img{width:46px;height:46px;border-radius:6px;object-fit:cover;flex:none}
.m-hallazgo p{font-size:9.5px;color:#d9d3c9}
.m-boton{position:absolute;left:10px;right:10px;bottom:12px;background:var(--m-treo);color:#fff;font-weight:700;font-size:11.5px;text-align:center;padding:11px;border-radius:12px}

/* etiquetas flotantes */
.app-movil .chip{position:absolute;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;
  background:rgba(255,254,250,.94);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  border:1px solid #efe4d6;border-radius:12px;padding:9px 13px;font-family:"IBM Plex Sans",system-ui,sans-serif;font-size:13.5px;font-weight:600;
  text-transform:none;letter-spacing:0;color:var(--ink);
  box-shadow:0 10px 26px -10px rgba(69,68,66,.35)}
.app-movil .chip svg{width:17px;height:17px;color:var(--accent-text);flex:none}
.app-movil .c1{right:-27%;top:4.5%}      /* sobre la barra, a la derecha, donde no hay nada */
.app-movil .c2{left:-27%;top:47%}        /* sólo tapa el ícono de un local */
.app-movil .c3{right:-15%;bottom:-2.5%}   /* junto al botón que genera el informe */

/* entrada: el celular sube con el resto de los reveals; el anillo se completa y las etiquetas aparecen de a una */
.js-reveal .app-movil:not(.in) .anillo-fill{stroke-dashoffset:144.5}
.js-reveal .app-movil .anillo-fill{transition:stroke-dashoffset 1.1s cubic-bezier(.23,1,.32,1) .35s}
.js-reveal .app-movil .chip{opacity:0;transform:translateY(8px);transition:opacity .4s ease-out,transform .5s cubic-bezier(.23,1,.32,1)}
.js-reveal .app-movil.in .chip{opacity:1;transform:none}
.js-reveal .app-movil.in .c1{transition-delay:.5s}
.js-reveal .app-movil.in .c2{transition-delay:.62s}
.js-reveal .app-movil.in .c3{transition-delay:.74s}

@media (max-width:900px){
  .app-grid{grid-template-columns:1fr}
  .app-movil{margin-top:8px}
  .app-movil .c1{right:-12%}.app-movil .c2{left:-12%}.app-movil .c3{right:-8%}
}
@media (max-width:480px){
  .app-movil{width:min(100%,300px)}
  .app-movil .chip{font-size:12px;padding:7px 10px}
  .app-movil .c1{right:-6px;top:-1.5%}.app-movil .c2{left:auto;right:-6px;top:33%}.app-movil .c3{right:-6px}
}

/* transiciones de cada sección (generadas) */
section.fx.tr-hueso-carbon-hueso{--tr:linear-gradient(180deg,color-mix(in oklab,var(--hueso) 100.0%,var(--carbon)) calc(var(--f)*0.0000),color-mix(in oklab,var(--hueso) 99.5%,var(--carbon)) calc(var(--f)*0.0833),color-mix(in oklab,var(--hueso) 96.5%,var(--carbon)) calc(var(--f)*0.1667),color-mix(in oklab,var(--hueso) 89.6%,var(--carbon)) calc(var(--f)*0.2500),color-mix(in oklab,var(--hueso) 79.0%,var(--carbon)) calc(var(--f)*0.3333),color-mix(in oklab,var(--hueso) 65.3%,var(--carbon)) calc(var(--f)*0.4167),color-mix(in oklab,var(--hueso) 50.0%,var(--carbon)) calc(var(--f)*0.5000),color-mix(in oklab,var(--hueso) 34.7%,var(--carbon)) calc(var(--f)*0.5833),color-mix(in oklab,var(--hueso) 21.0%,var(--carbon)) calc(var(--f)*0.6667),color-mix(in oklab,var(--hueso) 10.4%,var(--carbon)) calc(var(--f)*0.7500),color-mix(in oklab,var(--hueso) 3.5%,var(--carbon)) calc(var(--f)*0.8333),color-mix(in oklab,var(--hueso) 0.5%,var(--carbon)) calc(var(--f)*0.9167),color-mix(in oklab,var(--hueso) 0.0%,var(--carbon)) calc(var(--f)*1.0000),color-mix(in oklab,var(--hueso) 0.0%,var(--carbon)) calc(100% - var(--f)*1.0000),color-mix(in oklab,var(--hueso) 0.5%,var(--carbon)) calc(100% - var(--f)*0.9167),color-mix(in oklab,var(--hueso) 3.5%,var(--carbon)) calc(100% - var(--f)*0.8333),color-mix(in oklab,var(--hueso) 10.4%,var(--carbon)) calc(100% - var(--f)*0.7500),color-mix(in oklab,var(--hueso) 21.0%,var(--carbon)) calc(100% - var(--f)*0.6667),color-mix(in oklab,var(--hueso) 34.7%,var(--carbon)) calc(100% - var(--f)*0.5833),color-mix(in oklab,var(--hueso) 50.0%,var(--carbon)) calc(100% - var(--f)*0.5000),color-mix(in oklab,var(--hueso) 65.3%,var(--carbon)) calc(100% - var(--f)*0.4167),color-mix(in oklab,var(--hueso) 79.0%,var(--carbon)) calc(100% - var(--f)*0.3333),color-mix(in oklab,var(--hueso) 89.6%,var(--carbon)) calc(100% - var(--f)*0.2500),color-mix(in oklab,var(--hueso) 96.5%,var(--carbon)) calc(100% - var(--f)*0.1667),color-mix(in oklab,var(--hueso) 99.5%,var(--carbon)) calc(100% - var(--f)*0.0833),color-mix(in oklab,var(--hueso) 100.0%,var(--carbon)) calc(100% - var(--f)*0.0000))}
section.fx.tr-hueso-carbon-zebra{--tr:linear-gradient(180deg,color-mix(in oklab,var(--hueso) 100.0%,var(--carbon)) calc(var(--f)*0.0000),color-mix(in oklab,var(--hueso) 99.5%,var(--carbon)) calc(var(--f)*0.0833),color-mix(in oklab,var(--hueso) 96.5%,var(--carbon)) calc(var(--f)*0.1667),color-mix(in oklab,var(--hueso) 89.6%,var(--carbon)) calc(var(--f)*0.2500),color-mix(in oklab,var(--hueso) 79.0%,var(--carbon)) calc(var(--f)*0.3333),color-mix(in oklab,var(--hueso) 65.3%,var(--carbon)) calc(var(--f)*0.4167),color-mix(in oklab,var(--hueso) 50.0%,var(--carbon)) calc(var(--f)*0.5000),color-mix(in oklab,var(--hueso) 34.7%,var(--carbon)) calc(var(--f)*0.5833),color-mix(in oklab,var(--hueso) 21.0%,var(--carbon)) calc(var(--f)*0.6667),color-mix(in oklab,var(--hueso) 10.4%,var(--carbon)) calc(var(--f)*0.7500),color-mix(in oklab,var(--hueso) 3.5%,var(--carbon)) calc(var(--f)*0.8333),color-mix(in oklab,var(--hueso) 0.5%,var(--carbon)) calc(var(--f)*0.9167),color-mix(in oklab,var(--hueso) 0.0%,var(--carbon)) calc(var(--f)*1.0000),color-mix(in oklab,var(--zebra) 0.0%,var(--carbon)) calc(100% - var(--f)*1.0000),color-mix(in oklab,var(--zebra) 0.5%,var(--carbon)) calc(100% - var(--f)*0.9167),color-mix(in oklab,var(--zebra) 3.5%,var(--carbon)) calc(100% - var(--f)*0.8333),color-mix(in oklab,var(--zebra) 10.4%,var(--carbon)) calc(100% - var(--f)*0.7500),color-mix(in oklab,var(--zebra) 21.0%,var(--carbon)) calc(100% - var(--f)*0.6667),color-mix(in oklab,var(--zebra) 34.7%,var(--carbon)) calc(100% - var(--f)*0.5833),color-mix(in oklab,var(--zebra) 50.0%,var(--carbon)) calc(100% - var(--f)*0.5000),color-mix(in oklab,var(--zebra) 65.3%,var(--carbon)) calc(100% - var(--f)*0.4167),color-mix(in oklab,var(--zebra) 79.0%,var(--carbon)) calc(100% - var(--f)*0.3333),color-mix(in oklab,var(--zebra) 89.6%,var(--carbon)) calc(100% - var(--f)*0.2500),color-mix(in oklab,var(--zebra) 96.5%,var(--carbon)) calc(100% - var(--f)*0.1667),color-mix(in oklab,var(--zebra) 99.5%,var(--carbon)) calc(100% - var(--f)*0.0833),color-mix(in oklab,var(--zebra) 100.0%,var(--carbon)) calc(100% - var(--f)*0.0000))}
section.fx.tr-x-carbon-hueso{--tr:linear-gradient(180deg,var(--carbon) 0,color-mix(in oklab,var(--hueso) 0.0%,var(--carbon)) calc(100% - var(--f)*1.0000),color-mix(in oklab,var(--hueso) 0.5%,var(--carbon)) calc(100% - var(--f)*0.9167),color-mix(in oklab,var(--hueso) 3.5%,var(--carbon)) calc(100% - var(--f)*0.8333),color-mix(in oklab,var(--hueso) 10.4%,var(--carbon)) calc(100% - var(--f)*0.7500),color-mix(in oklab,var(--hueso) 21.0%,var(--carbon)) calc(100% - var(--f)*0.6667),color-mix(in oklab,var(--hueso) 34.7%,var(--carbon)) calc(100% - var(--f)*0.5833),color-mix(in oklab,var(--hueso) 50.0%,var(--carbon)) calc(100% - var(--f)*0.5000),color-mix(in oklab,var(--hueso) 65.3%,var(--carbon)) calc(100% - var(--f)*0.4167),color-mix(in oklab,var(--hueso) 79.0%,var(--carbon)) calc(100% - var(--f)*0.3333),color-mix(in oklab,var(--hueso) 89.6%,var(--carbon)) calc(100% - var(--f)*0.2500),color-mix(in oklab,var(--hueso) 96.5%,var(--carbon)) calc(100% - var(--f)*0.1667),color-mix(in oklab,var(--hueso) 99.5%,var(--carbon)) calc(100% - var(--f)*0.0833),color-mix(in oklab,var(--hueso) 100.0%,var(--carbon)) calc(100% - var(--f)*0.0000))}
section.fx.tr-x-carbon-zebra{--tr:linear-gradient(180deg,var(--carbon) 0,color-mix(in oklab,var(--zebra) 0.0%,var(--carbon)) calc(100% - var(--f)*1.0000),color-mix(in oklab,var(--zebra) 0.5%,var(--carbon)) calc(100% - var(--f)*0.9167),color-mix(in oklab,var(--zebra) 3.5%,var(--carbon)) calc(100% - var(--f)*0.8333),color-mix(in oklab,var(--zebra) 10.4%,var(--carbon)) calc(100% - var(--f)*0.7500),color-mix(in oklab,var(--zebra) 21.0%,var(--carbon)) calc(100% - var(--f)*0.6667),color-mix(in oklab,var(--zebra) 34.7%,var(--carbon)) calc(100% - var(--f)*0.5833),color-mix(in oklab,var(--zebra) 50.0%,var(--carbon)) calc(100% - var(--f)*0.5000),color-mix(in oklab,var(--zebra) 65.3%,var(--carbon)) calc(100% - var(--f)*0.4167),color-mix(in oklab,var(--zebra) 79.0%,var(--carbon)) calc(100% - var(--f)*0.3333),color-mix(in oklab,var(--zebra) 89.6%,var(--carbon)) calc(100% - var(--f)*0.2500),color-mix(in oklab,var(--zebra) 96.5%,var(--carbon)) calc(100% - var(--f)*0.1667),color-mix(in oklab,var(--zebra) 99.5%,var(--carbon)) calc(100% - var(--f)*0.0833),color-mix(in oklab,var(--zebra) 100.0%,var(--carbon)) calc(100% - var(--f)*0.0000))}
section.fx.tr-x-hueso-carbon{--tr:linear-gradient(180deg,var(--hueso) 0,color-mix(in oklab,var(--carbon) 0.0%,var(--hueso)) calc(100% - var(--f)*1.0000),color-mix(in oklab,var(--carbon) 0.5%,var(--hueso)) calc(100% - var(--f)*0.9167),color-mix(in oklab,var(--carbon) 3.5%,var(--hueso)) calc(100% - var(--f)*0.8333),color-mix(in oklab,var(--carbon) 10.4%,var(--hueso)) calc(100% - var(--f)*0.7500),color-mix(in oklab,var(--carbon) 21.0%,var(--hueso)) calc(100% - var(--f)*0.6667),color-mix(in oklab,var(--carbon) 34.7%,var(--hueso)) calc(100% - var(--f)*0.5833),color-mix(in oklab,var(--carbon) 50.0%,var(--hueso)) calc(100% - var(--f)*0.5000),color-mix(in oklab,var(--carbon) 65.3%,var(--hueso)) calc(100% - var(--f)*0.4167),color-mix(in oklab,var(--carbon) 79.0%,var(--hueso)) calc(100% - var(--f)*0.3333),color-mix(in oklab,var(--carbon) 89.6%,var(--hueso)) calc(100% - var(--f)*0.2500),color-mix(in oklab,var(--carbon) 96.5%,var(--hueso)) calc(100% - var(--f)*0.1667),color-mix(in oklab,var(--carbon) 99.5%,var(--hueso)) calc(100% - var(--f)*0.0833),color-mix(in oklab,var(--carbon) 100.0%,var(--hueso)) calc(100% - var(--f)*0.0000))}
section.fx.tr-x-zebra-carbon{--tr:linear-gradient(180deg,var(--zebra) 0,color-mix(in oklab,var(--carbon) 0.0%,var(--zebra)) calc(100% - var(--f)*1.0000),color-mix(in oklab,var(--carbon) 0.5%,var(--zebra)) calc(100% - var(--f)*0.9167),color-mix(in oklab,var(--carbon) 3.5%,var(--zebra)) calc(100% - var(--f)*0.8333),color-mix(in oklab,var(--carbon) 10.4%,var(--zebra)) calc(100% - var(--f)*0.7500),color-mix(in oklab,var(--carbon) 21.0%,var(--zebra)) calc(100% - var(--f)*0.6667),color-mix(in oklab,var(--carbon) 34.7%,var(--zebra)) calc(100% - var(--f)*0.5833),color-mix(in oklab,var(--carbon) 50.0%,var(--zebra)) calc(100% - var(--f)*0.5000),color-mix(in oklab,var(--carbon) 65.3%,var(--zebra)) calc(100% - var(--f)*0.4167),color-mix(in oklab,var(--carbon) 79.0%,var(--zebra)) calc(100% - var(--f)*0.3333),color-mix(in oklab,var(--carbon) 89.6%,var(--zebra)) calc(100% - var(--f)*0.2500),color-mix(in oklab,var(--carbon) 96.5%,var(--zebra)) calc(100% - var(--f)*0.1667),color-mix(in oklab,var(--carbon) 99.5%,var(--zebra)) calc(100% - var(--f)*0.0833),color-mix(in oklab,var(--carbon) 100.0%,var(--zebra)) calc(100% - var(--f)*0.0000))}
section.fx.tr-zebra-escena-hueso{--tr:linear-gradient(180deg,color-mix(in oklab,var(--zebra) 100.0%,var(--escena)) calc(var(--f)*0.0000),color-mix(in oklab,var(--zebra) 99.5%,var(--escena)) calc(var(--f)*0.0833),color-mix(in oklab,var(--zebra) 96.5%,var(--escena)) calc(var(--f)*0.1667),color-mix(in oklab,var(--zebra) 89.6%,var(--escena)) calc(var(--f)*0.2500),color-mix(in oklab,var(--zebra) 79.0%,var(--escena)) calc(var(--f)*0.3333),color-mix(in oklab,var(--zebra) 65.3%,var(--escena)) calc(var(--f)*0.4167),color-mix(in oklab,var(--zebra) 50.0%,var(--escena)) calc(var(--f)*0.5000),color-mix(in oklab,var(--zebra) 34.7%,var(--escena)) calc(var(--f)*0.5833),color-mix(in oklab,var(--zebra) 21.0%,var(--escena)) calc(var(--f)*0.6667),color-mix(in oklab,var(--zebra) 10.4%,var(--escena)) calc(var(--f)*0.7500),color-mix(in oklab,var(--zebra) 3.5%,var(--escena)) calc(var(--f)*0.8333),color-mix(in oklab,var(--zebra) 0.5%,var(--escena)) calc(var(--f)*0.9167),color-mix(in oklab,var(--zebra) 0.0%,var(--escena)) calc(var(--f)*1.0000),color-mix(in oklab,var(--hueso) 0.0%,var(--escena)) calc(100% - var(--f)*1.0000),color-mix(in oklab,var(--hueso) 0.5%,var(--escena)) calc(100% - var(--f)*0.9167),color-mix(in oklab,var(--hueso) 3.5%,var(--escena)) calc(100% - var(--f)*0.8333),color-mix(in oklab,var(--hueso) 10.4%,var(--escena)) calc(100% - var(--f)*0.7500),color-mix(in oklab,var(--hueso) 21.0%,var(--escena)) calc(100% - var(--f)*0.6667),color-mix(in oklab,var(--hueso) 34.7%,var(--escena)) calc(100% - var(--f)*0.5833),color-mix(in oklab,var(--hueso) 50.0%,var(--escena)) calc(100% - var(--f)*0.5000),color-mix(in oklab,var(--hueso) 65.3%,var(--escena)) calc(100% - var(--f)*0.4167),color-mix(in oklab,var(--hueso) 79.0%,var(--escena)) calc(100% - var(--f)*0.3333),color-mix(in oklab,var(--hueso) 89.6%,var(--escena)) calc(100% - var(--f)*0.2500),color-mix(in oklab,var(--hueso) 96.5%,var(--escena)) calc(100% - var(--f)*0.1667),color-mix(in oklab,var(--hueso) 99.5%,var(--escena)) calc(100% - var(--f)*0.0833),color-mix(in oklab,var(--hueso) 100.0%,var(--escena)) calc(100% - var(--f)*0.0000))}


/* ---------- pie con datos ---------- */
footer .pie-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:28px 40px;align-items:start}
footer .pie-grid p{margin:0 0 10px}
footer .pie-marca{font-family:Archivo,sans-serif;font-weight:700;font-size:17px;color:#FFFEFA}
footer .pie-titulo{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#F6A36F}
footer .pie-nav{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
footer a{color:#FFFEFA}
@media (max-width:760px){footer .pie-grid{grid-template-columns:1fr}}

/* ---------- formulario a WhatsApp ---------- */
.form-wa{display:grid;gap:14px;margin-top:18px}
.form-wa label{display:grid;gap:6px;font-size:14px;font-weight:600;color:var(--ink)}
.form-wa label i{font-style:normal;font-weight:400;color:var(--muted)}
.contacto .datos{align-self:start}   /* sin estirarse al alto del formulario */
.form-wa input,.form-wa select{font:inherit;font-weight:400;font-size:16px;color:var(--ink);background:#FFFEFA;
  border:1.5px solid #d9cfc1;border-radius:10px;padding:11px 12px;width:100%}
.form-wa input:focus-visible,.form-wa select:focus-visible{outline:2.5px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.form-wa .btn{justify-self:start;margin-top:4px}
.form-wa .form-nota{font-size:13.5px;color:var(--muted);margin:0}

/* ---------- gracias ---------- */
.gracias{padding-block:clamp(90px,14vw,160px)}
.gracias h1{font-size:clamp(30px,4.6vw,46px);margin-top:12px}
.gracias .cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}


/* ---------- contenido ampliado (27/09/2026) ---------- */
#precio .dec,#zonas .rubro,.informe-trae .dec{height:100%}
.informe-trae{margin-bottom:34px}
#zonas .mas-link{margin-top:22px}
#alcance p{color:var(--ink-2);margin:0 0 14px}
#alcance .check{margin:0 0 16px}
#alcance .eyebrow,#vicios .eyebrow{margin-bottom:10px}
.estrenar{margin-top:clamp(40px,6vw,64px);gap:40px}
.estrenar p{color:var(--ink-2);margin:0 0 14px}
.nota-legal{font-size:14px;color:var(--muted)!important;border-left:2px solid var(--accent);padding-left:12px}
#vicios .plazo .t{font-size:21px}
.faq-grupo{font-size:clamp(20px,2.2vw,24px);margin:40px 0 12px}
.faq-grupo:first-child{margin-top:0}
.sigue{margin-top:clamp(40px,6vw,64px)}
.sigue .h-sec{margin-bottom:22px}

.ejemplo{margin-top:30px;border-left:2px solid var(--accent);padding:4px 0 4px 18px;max-width:72ch}
.ejemplo p{margin:0 0 8px}
.oscuro .ejemplo p{color:var(--on-dark-muted)}
#zonas .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:760px){#zonas .grid{grid-template-columns:1fr}}


/* ---------- carrusel de opiniones ---------- */
#opiniones{padding-top:0}
.carrusel{position:relative}
.carrusel-pista{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;
  padding:6px 2px 14px;margin:0 -2px;overscroll-behavior-x:contain}
.carrusel-pista::-webkit-scrollbar{display:none}
.carrusel-pista:focus-visible{outline:2.5px solid var(--accent);outline-offset:4px;border-radius:12px}
.opinion{flex:0 0 calc((100% - 36px) / 3);scroll-snap-align:start;margin:0;background:#FFFEFA;border:1px solid #ece4d8;
  border-radius:14px;padding:22px 22px 20px;display:flex;flex-direction:column;gap:12px;box-shadow:0 10px 24px -18px rgba(69,68,66,.35)}
.opinion .estrellas{margin:0;color:var(--accent);letter-spacing:.14em;font-size:15px}
.opinion blockquote{margin:0;flex:1}
.opinion blockquote p{margin:0;color:var(--ink);font-size:16px;line-height:1.55}
.opinion figcaption{font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.06em;color:var(--muted)}
.carrusel-nav{display:flex;gap:10px;justify-content:flex-end;margin-top:6px}
.carrusel-btn{width:42px;height:42px;border-radius:50%;border:1.5px solid #d9cfc1;background:#FFFEFA;color:var(--ink);
  font-size:18px;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}
.carrusel-btn:active{transform:scale(.96)}
@media (hover:hover) and (pointer:fine){.carrusel-btn:hover{border-color:var(--accent)}}
@media (max-width:900px){.opinion{flex-basis:calc((100% - 18px) / 2)}}
@media (max-width:600px){.opinion{flex-basis:86%}}

/* ---------- equipo ---------- */
.equipo{margin-top:clamp(34px,5vw,52px);border-top:1px solid rgba(255,254,250,.16);padding-top:22px}
.equipo-lista{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px 24px}
.equipo-lista li{display:flex;flex-direction:column;gap:2px}
.equipo-lista b{font-family:Archivo,sans-serif;font-weight:700;font-size:17px;color:#FFFEFA}
.equipo-lista span{font-size:14px;color:var(--on-dark-muted)}


/* ---------- ajustes 28/09/2026 ---------- */
/* sin la cinta debajo, la portada recupera su aire inferior */
.hero.luminoso.a-hueso .wrap{padding-bottom:calc(var(--f)*.9 + 16px)}
/* «Son algunos de los 200 puntos…» y su enlace, del tamaño de la bajada */
.puntos .pie,.puntos .mas-link a{font-size:clamp(17px,1.9vw,19px)}
/* el video de portada también en celular: ocupa el mismo recuadro 4:3 que la foto */
@media (max-width:760px){
  .hero.luminoso video{display:block;top:0;left:0;right:auto;bottom:auto;width:100%;height:auto;aspect-ratio:4/3}
  .hero.luminoso.playing img{opacity:0}
}

/* menú de tres rayas en celular */
.menu-btn{display:none}
@media (max-width:760px){
  .topbar .wrap{flex-wrap:nowrap;min-height:58px}
  .menu-btn{display:grid;align-content:center;gap:5px;width:44px;height:44px;margin-left:auto;padding:0 10px;
    background:transparent;border:0;border-radius:10px;cursor:pointer}
  .menu-btn span{display:block;height:2px;background:var(--ink);border-radius:2px;
    transition:transform .2s cubic-bezier(.23,1,.32,1),opacity .15s ease}
  .menu-btn[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .menu-btn[aria-expanded="true"] span:nth-child(2){opacity:0}
  .menu-btn[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .menu-btn:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px}
  .topbar .nav{position:absolute;left:0;right:0;top:100%;margin:0;flex-direction:column;gap:0;
    background:#FFFEFA;border-bottom:1px solid var(--hair);box-shadow:0 18px 30px -22px rgba(69,68,66,.45);
    padding:6px 20px 14px;opacity:0;transform:translateY(-6px);visibility:hidden;
    transition:opacity .18s ease-out,transform .2s cubic-bezier(.23,1,.32,1),visibility 0s linear .2s}
  .topbar .nav.abierto{opacity:1;transform:none;visibility:visible;transition-delay:0s}
  .topbar .nav a{font-size:17px;padding:13px 0;border-bottom:1px solid var(--hair)}
  .topbar .nav a:last-child{border-bottom:0}
}
@media (max-width:760px) and (prefers-reduced-motion:reduce){
  .topbar .nav,.menu-btn span{transition:none}
}


/* ---------- WhatsApp flotante en celular: no tapa los botones de la portada (28/09/2026) ---------- */
.wa-flotante{transition:background-color .15s ease,transform .2s cubic-bezier(.23,1,.32,1),opacity .2s ease-out}
.wa-flotante.oculto{opacity:0;transform:translateY(14px) scale(.96);pointer-events:none}
@media (prefers-reduced-motion:reduce){.wa-flotante{transition:opacity .15s ease}.wa-flotante.oculto{transform:none}}


/* ---------- ajustes 28/09/2026 (2) ---------- */
/* los rótulos naranjas siempre con letra blanca: las reglas de párrafos no los alcanzan */
#alcance p.eyebrow,.estrenar p.eyebrow,.ejemplo p.eyebrow,.oscuro .ejemplo p.eyebrow{color:#FFFEFA}
/* Garantía: la aclaración, del mismo tamaño que la bajada */
.pagehead .fine{font-size:clamp(17px,1.9vw,19px);line-height:1.55;opacity:1}
.pagehead .fine{max-width:52ch}   /* mismo ancho que la bajada: no se mete sobre la foto */
.datos .row{grid-template-columns:150px 1fr}   /* «Web institucional» entra en una línea */
@media (max-width:480px){.datos .row{grid-template-columns:1fr;gap:2px}}

/* ===== conservacionfachada: agregado ===== */
section.fx.tr-zebra-carbon-hueso{--tr:linear-gradient(180deg,color-mix(in oklab,var(--zebra) 100.0%,var(--carbon)) calc(var(--f)*0.0000),color-mix(in oklab,var(--zebra) 99.5%,var(--carbon)) calc(var(--f)*0.0833),color-mix(in oklab,var(--zebra) 96.5%,var(--carbon)) calc(var(--f)*0.1667),color-mix(in oklab,var(--zebra) 89.6%,var(--carbon)) calc(var(--f)*0.2500),color-mix(in oklab,var(--zebra) 79.0%,var(--carbon)) calc(var(--f)*0.3333),color-mix(in oklab,var(--zebra) 65.3%,var(--carbon)) calc(var(--f)*0.4167),color-mix(in oklab,var(--zebra) 50.0%,var(--carbon)) calc(var(--f)*0.5000),color-mix(in oklab,var(--zebra) 34.7%,var(--carbon)) calc(var(--f)*0.5833),color-mix(in oklab,var(--zebra) 21.0%,var(--carbon)) calc(var(--f)*0.6667),color-mix(in oklab,var(--zebra) 10.4%,var(--carbon)) calc(var(--f)*0.7500),color-mix(in oklab,var(--zebra) 3.5%,var(--carbon)) calc(var(--f)*0.8333),color-mix(in oklab,var(--zebra) 0.5%,var(--carbon)) calc(var(--f)*0.9167),color-mix(in oklab,var(--zebra) 0.0%,var(--carbon)) calc(var(--f)*1.0000),color-mix(in oklab,var(--hueso) 0.0%,var(--carbon)) calc(100% - var(--f)*1.0000),color-mix(in oklab,var(--hueso) 0.5%,var(--carbon)) calc(100% - var(--f)*0.9167),color-mix(in oklab,var(--hueso) 3.5%,var(--carbon)) calc(100% - var(--f)*0.8333),color-mix(in oklab,var(--hueso) 10.4%,var(--carbon)) calc(100% - var(--f)*0.7500),color-mix(in oklab,var(--hueso) 21.0%,var(--carbon)) calc(100% - var(--f)*0.6667),color-mix(in oklab,var(--hueso) 34.7%,var(--carbon)) calc(100% - var(--f)*0.5833),color-mix(in oklab,var(--hueso) 50.0%,var(--carbon)) calc(100% - var(--f)*0.5000),color-mix(in oklab,var(--hueso) 65.3%,var(--carbon)) calc(100% - var(--f)*0.4167),color-mix(in oklab,var(--hueso) 79.0%,var(--carbon)) calc(100% - var(--f)*0.3333),color-mix(in oklab,var(--hueso) 89.6%,var(--carbon)) calc(100% - var(--f)*0.2500),color-mix(in oklab,var(--hueso) 96.5%,var(--carbon)) calc(100% - var(--f)*0.1667),color-mix(in oklab,var(--hueso) 99.5%,var(--carbon)) calc(100% - var(--f)*0.0833),color-mix(in oklab,var(--hueso) 100.0%,var(--carbon)) calc(100% - var(--f)*0.0000))}
section.fx.tr-x-hueso-zebra{--tr:linear-gradient(180deg,var(--hueso) 0,color-mix(in oklab,var(--zebra) 0.0%,var(--hueso)) calc(100% - var(--f)*1.0000),color-mix(in oklab,var(--zebra) 0.5%,var(--hueso)) calc(100% - var(--f)*0.9167),color-mix(in oklab,var(--zebra) 3.5%,var(--hueso)) calc(100% - var(--f)*0.8333),color-mix(in oklab,var(--zebra) 10.4%,var(--hueso)) calc(100% - var(--f)*0.7500),color-mix(in oklab,var(--zebra) 21.0%,var(--hueso)) calc(100% - var(--f)*0.6667),color-mix(in oklab,var(--zebra) 34.7%,var(--hueso)) calc(100% - var(--f)*0.5833),color-mix(in oklab,var(--zebra) 50.0%,var(--hueso)) calc(100% - var(--f)*0.5000),color-mix(in oklab,var(--zebra) 65.3%,var(--hueso)) calc(100% - var(--f)*0.4167),color-mix(in oklab,var(--zebra) 79.0%,var(--hueso)) calc(100% - var(--f)*0.3333),color-mix(in oklab,var(--zebra) 89.6%,var(--hueso)) calc(100% - var(--f)*0.2500),color-mix(in oklab,var(--zebra) 96.5%,var(--hueso)) calc(100% - var(--f)*0.1667),color-mix(in oklab,var(--zebra) 99.5%,var(--hueso)) calc(100% - var(--f)*0.0833),color-mix(in oklab,var(--zebra) 100.0%,var(--hueso)) calc(100% - var(--f)*0.0000))}
section.fx.tr-x-zebra-hueso{--tr:linear-gradient(180deg,var(--zebra) 0,color-mix(in oklab,var(--hueso) 0.0%,var(--zebra)) calc(100% - var(--f)*1.0000),color-mix(in oklab,var(--hueso) 0.5%,var(--zebra)) calc(100% - var(--f)*0.9167),color-mix(in oklab,var(--hueso) 3.5%,var(--zebra)) calc(100% - var(--f)*0.8333),color-mix(in oklab,var(--hueso) 10.4%,var(--zebra)) calc(100% - var(--f)*0.7500),color-mix(in oklab,var(--hueso) 21.0%,var(--zebra)) calc(100% - var(--f)*0.6667),color-mix(in oklab,var(--hueso) 34.7%,var(--zebra)) calc(100% - var(--f)*0.5833),color-mix(in oklab,var(--hueso) 50.0%,var(--zebra)) calc(100% - var(--f)*0.5000),color-mix(in oklab,var(--hueso) 65.3%,var(--zebra)) calc(100% - var(--f)*0.4167),color-mix(in oklab,var(--hueso) 79.0%,var(--zebra)) calc(100% - var(--f)*0.3333),color-mix(in oklab,var(--hueso) 89.6%,var(--zebra)) calc(100% - var(--f)*0.2500),color-mix(in oklab,var(--hueso) 96.5%,var(--zebra)) calc(100% - var(--f)*0.1667),color-mix(in oklab,var(--hueso) 99.5%,var(--zebra)) calc(100% - var(--f)*0.0833),color-mix(in oklab,var(--hueso) 100.0%,var(--zebra)) calc(100% - var(--f)*0.0000))}

/* lugar de imagen pendiente: se ve como un panel de luz, con la descripción de la foto que va */
.pendiente{position:absolute;inset:0;z-index:0;overflow:hidden;
  background:
    radial-gradient(60% 70% at 78% 38%,rgba(233,113,50,.16),rgba(233,113,50,0) 70%),
    repeating-linear-gradient(135deg,rgba(69,68,66,.045) 0 1px,transparent 1px 14px),
    linear-gradient(160deg,#FBE7D7 0%,#F5F2EC 55%,#EFE9DF 100%)}
.pendiente p{position:absolute;right:clamp(16px,4vw,48px);top:clamp(22px,4vw,44px);max-width:min(340px,36%);
  margin:0;padding:12px 14px;border:1.5px dashed rgba(186,87,32,.55);border-radius:6px;background:rgba(255,254,250,.7);
  font-size:12.5px;line-height:1.45;color:var(--muted)}
.pendiente p span{display:block;font-family:"IBM Plex Mono",monospace;font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent-text);margin-bottom:4px}
@media (max-width:760px){
  .hero.luminoso .pendiente,.pagehead.luminoso .pendiente{position:relative;display:block;width:100%;aspect-ratio:4/3;inset:auto}
  .pendiente p{left:16px;right:16px;top:16px;max-width:none}
}

/* párrafos corridos de las secciones de texto */
.texto-2 p{margin:0 0 14px;color:var(--ink-2)}
.texto-2 p:last-child{margin-bottom:0}
.oscuro .texto-2 p{color:var(--on-dark-muted)}
.texto-2 a,.nota-legal a,.tabla-nota a,.calc-nota a{color:var(--accent-text)}
.oscuro .texto-2 a{color:#F6A36F}
.h-sub{font-size:clamp(18px,2vw,21px);margin:26px 0 10px}
.h-sub:first-child{margin-top:0}
.texto-2 .eyebrow{margin-bottom:10px;color:#FFFEFA}

/* calculadora de periodicidad */
.calc-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(24px,4vw,48px);align-items:start}
@media (max-width:860px){.calc-grid{grid-template-columns:1fr}}
.calc{background:#FFFEFA;border:1px solid var(--hair);box-shadow:var(--sombra);padding:clamp(20px,3vw,28px)}
.calc-form label{display:block;font-family:Archivo,sans-serif;font-weight:700;font-size:17px;color:var(--ink);margin-bottom:10px}
.calc-fila{display:flex;gap:10px;flex-wrap:wrap}
.calc-fila input{flex:1 1 150px;min-width:0;font:inherit;font-size:20px;font-family:"IBM Plex Mono",monospace;color:var(--ink);
  background:#FFFEFA;border:1.5px solid #d9cfc1;border-radius:10px;padding:10px 12px}
.calc-fila input:focus-visible{outline:2.5px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.calc-ayuda{font-size:13.5px;color:var(--muted);margin-top:10px}
.calc-resultado{margin-top:20px;padding-top:18px;border-top:1px solid var(--hair)}
.calc-titulo{font-family:Archivo,sans-serif;font-weight:700;font-size:clamp(22px,2.6vw,27px);color:var(--accent-text);line-height:1.15;margin-bottom:8px}
.calc-resultado p{color:var(--ink-2)}
.calc-siguiente{margin-top:6px;font-size:14.5px}
.calc-siguiente:empty{display:none}
.calc-resultado .btn{margin-top:16px}
.calc-nota{font-size:13px;color:var(--muted);margin-top:16px}
@media (prefers-reduced-motion:no-preference){
  .calc-resultado:not([hidden]){animation:rise .35s cubic-bezier(.23,1,.32,1) both}
}

/* tabla de periodicidad y tabla de normas */
.tabla-plazos,.tabla-normas{width:100%;border-collapse:collapse;background:#FFFEFA;box-shadow:var(--sombra);font-size:15.5px}
.tabla-plazos caption{caption-side:bottom;text-align:left;font-size:12.5px;color:var(--muted);padding-top:10px}
.tabla-plazos th,.tabla-normas th{font-family:"IBM Plex Mono",monospace;font-weight:500;font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);text-align:left;padding:12px 16px;border-bottom:1.5px solid var(--hair);background:var(--surface-2)}
.tabla-plazos td,.tabla-normas td{padding:13px 16px;border-bottom:1px solid var(--hair);color:var(--ink);vertical-align:top}
.tabla-plazos tr:last-child td,.tabla-normas tr:last-child td{border-bottom:0}
.tabla-plazos td.mono{white-space:nowrap;font-weight:500;color:var(--accent-text)}
.tabla-plazos tr{transition:background-color .2s ease}
.tabla-plazos tr.activa td{background:var(--accent-soft)}
.tabla-plazos tr.activa td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
.tabla-nota{font-size:13.5px;color:var(--muted);margin-top:14px}
.tabla-normas{font-size:14.5px}
.tabla-normas td:last-child{white-space:nowrap;font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.06em;color:var(--muted)}
.tabla-normas tr.rige td{background:var(--accent-soft)}
.tabla-normas tr.rige td:last-child{color:var(--accent-text);font-weight:500}
.oscuro .tabla-normas{box-shadow:none}
@media (max-width:560px){.tabla-normas{font-size:13.5px}.tabla-normas th,.tabla-normas td{padding:10px 9px}.tabla-normas td:last-child{white-space:normal}}

/* los diez grupos de elementos del art. 5.1.2, sobre carbón */
.elementos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;
  background:rgba(255,254,250,.14);border:1px solid rgba(255,254,250,.14)}
.elementos li{background:var(--carbon);padding:16px 16px 18px;display:flex;flex-direction:column;gap:4px}
.elementos i{font-style:normal;font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.14em;color:#F6A36F}
.elementos b{font-family:Archivo,sans-serif;font-weight:600;font-size:15.5px;line-height:1.3;color:#FFFEFA}
.elementos small{font-size:12.5px;color:var(--on-dark-muted)}
.elementos .nuevo{background:#514f4c}
#que-se-revisa .pie{color:var(--on-dark-muted)}
/* al pasar el cursor, la celda se ilumina en naranja claro con halo (pedido de Maximiliano, 28/09/2026) */
.elementos li{position:relative;transition:background-color .2s ease,box-shadow .2s ease}
.elementos li i,.elementos li b{transition:color .2s ease}
@media (hover:hover) and (pointer:fine){
  .elementos li:hover{z-index:1;background:#5a4a40;
    box-shadow:inset 0 0 0 1px #F4A574,0 0 6px rgba(233,113,50,.7),0 0 22px rgba(233,113,50,.42)}
  .elementos li:hover i{color:#F4A574}
  .elementos li:hover b{color:#FFE9D9}
}
@media (prefers-reduced-motion:reduce){.elementos li,.elementos li i,.elementos li b{transition:none}}
#que-se-revisa .pie em{color:#FFFEFA}

/* listado completo de incisos */
.incisos{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.incisos li{display:grid;grid-template-columns:22px 1fr;gap:8px;font-size:14.8px;color:var(--on-dark-muted);line-height:1.5}
.incisos i{font-style:normal;font-family:"IBM Plex Mono",monospace;color:#F6A36F}
.incisos .nuevo{color:#FFFEFA}
.incisos em{display:block;font-style:normal;color:var(--on-dark-muted);margin-top:4px}

/* seis pasos en dos filas */
.pasos-6{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 28px}
@media (max-width:900px){.pasos-6{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.pasos-6{grid-template-columns:1fr}}
.pasos-6 .paso .n{background:var(--accent-strong)}
/* al pasar el cursor, el paso se resalta con un halo gris (pedido de Maximiliano, 28/09/2026) */
.pasos-6 .paso{padding:14px;margin:-14px;border-radius:10px;transition:background-color .2s ease,box-shadow .2s ease}
@media (hover:hover) and (pointer:fine){
  .pasos-6 .paso:hover{background:#FFFEFA;
    box-shadow:0 0 0 1px rgba(69,68,66,.24),0 0 8px rgba(69,68,66,.22),0 0 30px rgba(69,68,66,.26)}
}
@media (prefers-reduced-motion:reduce){.pasos-6 .paso{transition:none}}
/* el mismo halo gris en los bloques numerados de las secciones claras: una capa detrás del
   contenido, así el texto y la raya naranja no se mueven */
.fx:not(.oscuro) .dec{isolation:isolate}
.fx:not(.oscuro) .dec::before{content:"";position:absolute;inset:-2px -14px -14px;z-index:-1;border-radius:10px;
  background:#FFFEFA;opacity:0;transition:opacity .2s ease;
  box-shadow:0 0 0 1px rgba(69,68,66,.24),0 0 8px rgba(69,68,66,.22),0 0 30px rgba(69,68,66,.26)}
@media (hover:hover) and (pointer:fine){.fx:not(.oscuro) .dec:hover::before{opacity:1}}
@media (prefers-reduced-motion:reduce){.fx:not(.oscuro) .dec::before{transition:none}}
/* y en las tarjetas claras (portales, eximiciones): el mismo halo gris */
.portal,.fx:not(.oscuro) .rubro{transition:box-shadow .2s ease,border-color .2s ease}
@media (hover:hover) and (pointer:fine){
  .portal:hover,.fx:not(.oscuro) .rubro:hover{border-color:rgba(69,68,66,.24);transform:none;
    box-shadow:0 0 0 1px rgba(69,68,66,.24),0 0 8px rgba(69,68,66,.22),0 0 30px rgba(69,68,66,.26)}
  .portal:hover{border-top-color:var(--accent)}
}
@media (prefers-reduced-motion:reduce){.portal,.fx:not(.oscuro) .rubro{transition:none}}
/* filas del paso a paso: al pasar el cursor, naranja claro con halo, como las celdas del art. 5.1.2 */
.fx:not(.oscuro) .plazo{position:relative;transition:background-color .2s ease,box-shadow .2s ease}
@media (hover:hover) and (pointer:fine){
  .fx:not(.oscuro) .plazo:hover{z-index:1;background:#FFF4EC;
    box-shadow:inset 0 0 0 1px #F4A574,0 0 6px rgba(233,113,50,.45),0 0 22px rgba(233,113,50,.28)}
}
@media (prefers-reduced-motion:reduce){.fx:not(.oscuro) .plazo{transition:none}}

/* los dos portales */
.portal{background:#FFFEFA;border:1px solid var(--hair);box-shadow:var(--sombra);padding:24px;border-top:3px solid var(--accent)}
.portal-quien{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-text);margin-bottom:8px}
.portal h3{font-size:clamp(18px,2vw,21px);margin-bottom:8px}
.portal p{color:var(--ink-2);font-size:15.2px}

/* la App sin foto en el hallazgo */
.m-hallazgo-sin-foto{grid-template-columns:1fr}
.plazo .t{font-size:24px}
/* títulos de dos líneas: interlineado de título, no de texto */
.head h2,.h-sec,.cta-band h2,.pagehead h1{line-height:1.14}
.dec h3,.rubro h3,.teaser h3,.portal h3,.paso h3{line-height:1.25}

/* cinta de administraciones: nombres en texto */
.cinta-nombres{gap:56px;padding-right:56px}
.cinta-nombres li{font-family:Archivo,sans-serif;font-weight:600;font-size:18px;color:var(--ink-2);white-space:nowrap;gap:7px;align-items:baseline}
.cinta-nombres li span{font-family:"IBM Plex Mono",monospace;font-weight:400;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
/* fin cinta de administraciones */

/* ---------- verificador de autoprotección (sistemaautoproteccion) ----------
   Mismo marco que la calculadora de fachadas (.calc, .calc-form, .calc-resultado, .tabla-plazos): suma un desplegable,
   un número y tres casillas. */
.verif-form{display:flex;flex-direction:column;gap:6px}
.verif-form label{margin:8px 0 4px}
.verif-form select,.verif-form input[type=number]{width:100%;font:inherit;font-size:16px;color:var(--ink);background:#FFFEFA;
  border:1.5px solid #d9cfc1;padding:10px 12px;border-radius:10px}
.verif-form input[type=number]{font-family:"IBM Plex Mono",monospace;font-size:18px}
.verif-form select:focus-visible,.verif-form input:focus-visible{outline:2.5px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.verif-extra{border:0;margin:10px 0 6px;padding:0;display:flex;flex-direction:column;gap:8px}
.verif-extra legend{font-family:Archivo,sans-serif;font-weight:700;font-size:17px;color:var(--ink);margin-bottom:6px;padding:0}
.verif-form .chk{display:flex;gap:10px;align-items:flex-start;margin:0;font-family:inherit;font-weight:400;font-size:15px;color:var(--ink-2);cursor:pointer}
.verif-form .chk input{width:18px;height:18px;margin-top:2px;flex:none;accent-color:var(--accent-strong)}
.verif-form .btn{align-self:flex-start;margin-top:8px}
/* filas oscuras (plazos sobre carbón): al pasar el cursor, el mismo naranja con halo que las celdas del contenido mínimo
   (pedido de Maximiliano, 30/09/2026) */
.oscuro .plazo{position:relative;transition:background-color .2s ease,box-shadow .2s ease}
.oscuro .plazo h3{transition:color .2s ease}
@media (hover:hover) and (pointer:fine){
  .oscuro .plazo:hover{z-index:1;background:#5a4a40;
    box-shadow:inset 0 0 0 1px #F4A574,0 0 6px rgba(233,113,50,.7),0 0 22px rgba(233,113,50,.42)}
  .oscuro .plazo:hover .t{color:#F4A574}
  .oscuro .plazo:hover h3{color:#FFE9D9}
}
@media (prefers-reduced-motion:reduce){.oscuro .plazo,.oscuro .plazo h3{transition:none}}

/* incendio: ajustes */
/* «¿Qué exige el plano?»: ocho elementos en dos filas de cuatro, sin huecos */
#elementos .elementos{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:900px){#elementos .elementos{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){#elementos .elementos{grid-template-columns:1fr}}
/* ayuda bajo un campo del formulario (el plano se adjunta en el chat de WhatsApp) */
.form-wa .form-ayuda{font-weight:400;font-size:13px;color:var(--muted);line-height:1.45}
