/* =====================================================================
   p-certificado.css · /certificado-de-fumigacion-cdmx/ · efecto firma «Sello»
   Un certificado de EJEMPLO se arma campo por campo con el scroll (cada campo se
   «escribe» con clip-path) y al final cae un sello de goma que golpea con un leve
   temblor. Prefijos: cer- · sel-. Estado inicial oculto SOLO bajo .fx .sel--viva:
   sin JS o con movimiento reducido, el certificado se ve completo y sellado.
   ===================================================================== */

/* ---------- HERO: documento de ejemplo ---------- */
.cer-mini{position:relative;width:min(100%,400px);margin-inline:auto;aspect-ratio:1/1.12}
.cer-hoja{position:absolute;inset:6% 8% 4% 6%;padding:9% 9% 8%;border-radius:18px;background:#FBFAF6;color:var(--estudio);box-shadow:0 0 0 1px rgba(1,47,74,.12),0 40px 70px -30px rgba(0,0,0,.7);overflow:hidden}
.cer-hoja--atras{inset:2% 2% 10% 14%;transform:rotate(6deg);background:#EAF1F5;padding:0}
.cer-hoja--frente{transform:rotate(-3deg)}
.cer-cinta{position:absolute;left:-12%;top:7%;width:60%;padding:.3rem 0;transform:rotate(-34deg);background:var(--magenta);color:#fff;text-align:center;font-size:.66rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase}
.cer-hoja .cer-logo{display:block;width:44%;height:auto;margin-left:auto}
.cer-hoja b{display:block;margin:9% 0 6%;font:400 clamp(1.4rem,2.6vw,2rem)/.95 var(--f-display);text-transform:uppercase}
.cer-hoja i{display:block;height:8px;border-radius:4px;background:#DCE8EF;margin-top:5%}
.cer-hoja i:nth-of-type(2){width:84%}.cer-hoja i:nth-of-type(3){width:66%}.cer-hoja i:nth-of-type(4){width:76%}
.cer-ok{display:flex;flex-wrap:wrap;gap:.35rem .9rem;margin-top:9%;font-size:.78rem;font-weight:700}
.cer-ok span{display:inline-flex;align-items:center;gap:.3rem}
.cer-ok svg{width:16px;height:16px;fill:none;stroke:var(--magenta);stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}
.cer-mini .sel-sello{position:absolute;right:13%;bottom:9%;width:33%;color:var(--magenta);transform:rotate(-14deg);mix-blend-mode:multiply;opacity:.9}
@media (prefers-reduced-motion:no-preference){.fx .cer-mini .sel-sello{animation:cerGolpe 1s cubic-bezier(.2,.9,.3,1.25) 1.2s both}}
@keyframes cerGolpe{0%{opacity:0;transform:scale(2.2) rotate(-30deg)}60%{opacity:.95;transform:scale(.94) rotate(-12deg)}100%{opacity:.9;transform:scale(1) rotate(-14deg)}}

/* ---------- respuesta / normas ---------- */
.cer-normas{margin-top:clamp(2.2rem,4vw,3.2rem)}
.cer-normas .prose{max-width:none}

/* ---------- «SELLO» ---------- */
.sel-top{align-items:end;margin-bottom:clamp(1.6rem,3vw,2.6rem)}
.sel-top .head{margin-bottom:0}
.sel-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.sel-board{position:sticky;top:calc(var(--hdr) + 2.5vh);z-index:2;order:2}
.sel-escena{position:relative}
.sel-hud{display:flex;justify-content:space-between;gap:.6rem;margin-bottom:.8rem}
.sel-hud span{display:inline-flex;align-items:center;gap:.45rem;padding:.38rem .62rem;border-radius:8px;background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-variant-numeric:tabular-nums}
.sel-hud .rec-dot{width:8px;height:8px}
.sel-hud b{color:var(--cian)}
.sel-wrap{width:min(100%,calc((100vh - var(--hdr) - 9vh - 2.6rem) / 1.32));margin-inline:auto;container-type:inline-size}
.sel-doc{position:relative;aspect-ratio:1/1.32;padding:8cqw 6.5cqw 6cqw;border-radius:2.2cqw;background:#FBFAF6;color:#0B2236;box-shadow:0 0 0 1px rgba(1,47,74,.1),0 40px 80px -30px rgba(0,0,0,.75);overflow:hidden;font-size:2.15cqw;line-height:1.35}
.sel-doc::before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(1,47,74,.025) 0 1px,transparent 1px 5px)}
.sel-banda{position:absolute;left:0;right:0;top:0;padding:1.2cqw 0;background:var(--magenta);color:#fff;text-align:center;font-size:1.9cqw;font-weight:700;letter-spacing:.22em;text-transform:uppercase}
.sel-marca{position:absolute;left:50%;top:54%;margin:0;translate:-50% -50%;rotate:-28deg;font:400 23cqw/1 var(--f-display);color:transparent;-webkit-text-stroke:.35cqw rgba(254,44,85,.16);text-transform:uppercase;pointer-events:none;white-space:nowrap}
.sel-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:3cqw}
.sel-cab img{width:30cqw;height:auto}
.sel-folio{display:grid;grid-template-columns:auto auto;gap:.3cqw 2cqw;padding:1.6cqw 2.2cqw;border:.3cqw solid #0B2236;border-radius:1.2cqw;font-size:1.9cqw}
.sel-folio small{color:#5A7182;text-transform:uppercase;letter-spacing:.1em;font-size:1.6cqw}
.sel-folio b{font-weight:700}
.sel-tit{margin:3.2cqw 0 .6cqw;font:400 4.4cqw/1 var(--f-display);text-transform:uppercase;letter-spacing:.01em}
.sel-sub{margin-bottom:2.4cqw;font-size:1.7cqw;color:#5A7182;letter-spacing:.06em;text-transform:uppercase}
.sel-campos-doc{display:grid;grid-template-columns:1fr 1fr;gap:1.4cqw 3cqw}
.sel-f{position:relative;padding:1.1cqw 1.4cqw;border-radius:1cqw;border-bottom:.25cqw solid #D6E1E8;transition:opacity .45s,transform .55s var(--ease),background-color .4s}
.sel-f.w2{grid-column:1/-1}
.sel-f small{display:block;margin-bottom:.4cqw;font-size:1.55cqw;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#5A7182}
.sel-v{display:block;font-weight:600;color:#0B2236}
.sel-v em{font-style:italic;font-weight:500;color:#5A7182}
.sel-tipos{display:flex;flex-wrap:wrap;gap:.8cqw 2.2cqw;font-weight:500}
.sel-tipos span{display:inline-flex;align-items:center;gap:.8cqw}
.sel-tipos span::before{content:"";width:2cqw;height:2cqw;border:.28cqw solid #0B2236;border-radius:.4cqw}
.sel-tipos .on{font-weight:700}
.sel-tipos .on::before{background:linear-gradient(45deg,transparent 42%,var(--magenta) 42% 58%,transparent 58%),linear-gradient(-45deg,transparent 42%,var(--magenta) 42% 58%,transparent 58%)}
.sel-croq svg{display:block;width:100%;height:auto;margin-top:.6cqw}
.sel-croq rect,.sel-croq path{fill:none;stroke:#0B2236;stroke-width:1.6}
.sel-croq circle{fill:var(--magenta)}
.sel-croq text{font:700 7px/1 var(--f-body);fill:#fff;text-anchor:middle}
.sel-firma svg{display:block;width:72%;height:auto;margin:.4cqw 0 .2cqw}
.sel-firma path{fill:none;stroke:#13406B;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.sel-firma .sel-v{padding-top:.6cqw;border-top:.25cqw solid #0B2236;font-weight:500;font-size:1.7cqw;color:#5A7182}
.sel-doc .sel-sello{position:absolute;right:5cqw;bottom:6cqw;width:34cqw;color:var(--magenta);transform:rotate(-14deg);mix-blend-mode:multiply;opacity:.9}
.sel-sello-arc{font:400 15px/1 var(--f-display);letter-spacing:.05em}
.sel-sello-t{font:400 22px/1 var(--f-display);letter-spacing:.04em}
.sel-sello-e{font:700 12px/1 var(--f-body);letter-spacing:.2em;fill:#FBFAF6}
.sel-pluma{position:absolute;left:0;top:0;width:2.6cqw;height:2.6cqw;border-radius:50% 50% 50% 0;background:var(--magenta);box-shadow:0 0 0 .8cqw rgba(254,44,85,.2);opacity:0;pointer-events:none;transition:transform .55s var(--ease),opacity .3s}
.sel-cap{margin-top:.9rem;font-size:.82rem;color:var(--niebla);text-align:center}
/* pasos */
.sel-pasos{display:grid;gap:1.4rem;order:1}
.sel-paso{position:relative;padding-left:1.4rem;border-left:3px solid rgba(255,255,255,.14);transition:opacity .45s,border-color .45s}
.sel-paso .sel-k{display:inline-flex;align-items:center;gap:.6rem;margin-bottom:.55rem;font-size:.72rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--cian)}
.sel-paso .sel-k b{font:400 2rem/.9 var(--f-display);color:#fff;letter-spacing:0}
.sel-paso h3{font-size:clamp(1.7rem,2.6vw,2.4rem);margin-bottom:.6rem}
.sel-paso p{max-width:46ch;color:var(--muted);font-size:1.02rem;line-height:1.62}
.sel-paso.is-on{border-left-color:var(--magenta)}
.sel-paso--fin h3{color:#FF7A93}
.sel-nota{margin-top:1.6rem}
/* efecto vivo */
.sel--viva .sel-pasos{gap:0;padding-bottom:14vh}
.sel--viva .sel-paso{min-height:36vh;display:flex;flex-direction:column;justify-content:center}
.fx .sel--viva .sel-paso{opacity:.74}
.fx .sel--viva .sel-paso.is-on{opacity:1}
.fx .sel--viva .sel-f{opacity:0;transform:translateY(1.4cqw)}
.fx .sel--viva .sel-f .sel-v,.fx .sel--viva .sel-f svg,.fx .sel--viva .sel-tipos{clip-path:inset(-10% 100% -10% 0);transition:clip-path .8s cubic-bezier(.6,0,.2,1) .18s}
.fx .sel--viva .sel-f.is-on{opacity:1;transform:none}
.fx .sel--viva .sel-f.is-on .sel-v,.fx .sel--viva .sel-f.is-on svg,.fx .sel--viva .sel-f.is-on .sel-tipos{clip-path:inset(-10% -2% -10% 0)}
.fx .sel--viva .sel-f.is-act{background:rgba(254,44,85,.07)}
.fx .sel--viva .sel-doc .sel-sello{opacity:0;transform:scale(2.3) rotate(-32deg);transition:opacity .2s,transform .2s}
.fx .sel--viva .sel-doc.is-sellado .sel-sello{opacity:.9;transform:rotate(-14deg);transition:none;animation:selCae .55s cubic-bezier(.2,.9,.3,1.25)}
.fx .sel--viva .sel-pluma{opacity:1}
.fx .sel--viva .sel-doc.is-sellado .sel-pluma{opacity:0}
.sel-escena.is-golpe{animation:selTiembla .42s linear}
@keyframes selCae{0%{opacity:0;transform:scale(2.3) rotate(-32deg)}70%{opacity:.95;transform:scale(.93) rotate(-12deg)}100%{opacity:.9;transform:rotate(-14deg)}}
@keyframes selTiembla{0%,100%{transform:none}15%{transform:translate(-4px,3px) rotate(-.4deg)}30%{transform:translate(4px,-2px) rotate(.35deg)}45%{transform:translate(-3px,2px)}60%{transform:translate(2px,-1px)}80%{transform:translate(-1px,1px)}}

/* ---------- quién lo pide ---------- */
.cer-quien{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.cer-q{display:flex;flex-direction:column;gap:.6rem;padding:1.5rem;border-radius:24px;background:#fff;box-shadow:0 20px 40px -30px rgba(1,47,74,.5)}
.cer-q svg{width:38px;height:38px;fill:none;stroke:var(--pcd);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cer-q h3{font-size:clamp(1.5rem,2vw,1.8rem);color:var(--estudio)}
.cer-q p{font-size:.97rem;line-height:1.58;color:var(--gris)}
.cer-q .tag{align-self:flex-start;padding:.25rem .55rem;border-radius:7px;font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;background:var(--estudio);color:#fff}
.cer-q .tag--suele{background:var(--hielo);color:var(--pcd);box-shadow:inset 0 0 0 1px rgba(1,101,151,.3)}

/* ---------- legal ---------- */
.cer-alerta{display:flex;gap:1rem;align-items:flex-start;margin-top:1.6rem;padding:1.1rem 1.3rem;border-radius:18px;background:rgba(254,44,85,.12);box-shadow:inset 0 0 0 1.5px rgba(254,44,85,.55)}
.cer-alerta>span{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--magenta);flex:none;font:400 1.5rem/1 var(--f-display)}
.cer-alerta p{font-size:.98rem;line-height:1.6;color:#F2D9DF}
.cer-alerta strong{color:#fff}

/* ---------- proceso ---------- */
.cer-pasos{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.2rem;margin-top:clamp(1.6rem,3vw,2.4rem)}
.cer-pasos::before{content:"";position:absolute;left:4%;right:4%;top:31px;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--pcd),var(--magenta));transform-origin:0 50%}
.cer-p{position:relative;display:flex;flex-direction:column;gap:.55rem}
.cer-p b{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--estudio);color:var(--cian);font:400 1.7rem/1 var(--f-display);box-shadow:0 0 0 6px #fff}
.cer-p h3{margin-top:.5rem;font-size:clamp(1.5rem,2vw,1.85rem);color:var(--estudio)}
.cer-p p{font-size:.97rem;line-height:1.58;color:var(--gris)}
.fx .cer-pasos::before{transform:scaleX(0);transition:transform 1.6s var(--ease) .2s}
.fx .cer-pasos.is-in::before{transform:none}
.cer-iso{display:flex;align-items:center;gap:1rem;margin-top:1.6rem;padding:1.1rem 1.3rem;border-radius:20px;background:var(--estudio);color:#fff}
.cer-iso>span{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:var(--cian);color:var(--estudio);flex:none}
.cer-iso>span svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cer-iso b{display:block;font:400 1.4rem/1.05 var(--f-display);text-transform:uppercase;letter-spacing:.02em}
.cer-iso small{display:block;font-size:.92rem;color:var(--niebla)}

/* ---------- cierre ---------- */
.cer-emp{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:2rem;align-items:center;padding:clamp(1.6rem,3vw,2.6rem);border-radius:32px;background:linear-gradient(125deg,var(--pcd),var(--senal));color:#fff;text-decoration:none;box-shadow:0 40px 80px -40px rgba(0,0,0,.7);transition:transform .45s var(--ease)}
.cer-emp:hover{transform:translateY(-4px)}
.cer-emp small{display:block;font-size:.76rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--cian)}
.cer-emp b{display:block;margin:.6rem 0 .8rem;font:400 clamp(2rem,4vw,3.6rem)/.95 var(--f-display);text-transform:uppercase}
.cer-emp p{color:var(--bruma);max-width:52ch}
.cer-emp>span{justify-self:end;display:inline-flex;align-items:center;gap:.7rem;padding:.9rem 1.4rem;border-radius:999px;background:#fff;color:var(--estudio);font-weight:700}
.cer-emp>span svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2}
.cer-mas{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.4rem}
.cer-fin{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.4rem;margin-top:clamp(2.4rem,5vw,3.6rem)}
.cer-fin p{font:400 clamp(1.7rem,2.8vw,2.6rem)/1.02 var(--f-display);text-transform:uppercase;max-width:22ch}
.cer-fin .ctas{margin-top:0}

/* ---------- responsivo ---------- */
@media (max-width:1023px){
  .phero-grid{grid-template-columns:minmax(0,1fr)}
  .cer-mini{width:min(100%,340px)}
  .cer-quien{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cer-pasos{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cer-pasos::before{display:none}
  .cer-emp{grid-template-columns:1fr}
  .cer-emp>span{justify-self:start}
}
@media (max-width:900px){
  .sel-grid{display:block}
  .sel-board{top:var(--hdr);margin-inline:calc(var(--gut) * -1);padding:.5rem var(--gut) .7rem;background:var(--estudio)}
  .sel-hud{margin-bottom:.5rem}
  .sel-hud span{font-size:.6rem;padding:.3rem .45rem}
  .sel-wrap{width:min(78vw,calc((48vh - 2rem) / 1.32));width:min(78vw,calc((48svh - 2rem) / 1.32))}
  .sel-cap{display:none}
  .sel-pasos{position:relative;z-index:1;margin-top:1.4rem}
  .sel--viva .sel-paso{min-height:46vh;min-height:46svh;justify-content:flex-end;padding-bottom:6vh}
  .sel--viva .sel-pasos{margin-top:0;padding-bottom:8vh}
}
@media (max-width:640px){
  .cer-quien,.cer-pasos{grid-template-columns:1fr}
}
