/* pg-cierre: cierre a sangre (isotipo sobre agua oscura), formulario de cristal y pie limpio.
   Paleta: tinta #0A0B10, blanco, cian #A3EFF4. Letra maxima 52 px. */
:root{--cz-i:#0A0B10;--cz-c:#A3EFF4;--cz-e:cubic-bezier(.2,.7,.2,1)}
/* ---------- 1. cierre: pista de scroll + escenario fijo ---------- */
.cz{position:relative;z-index:1;height:112svh;background:var(--cz-i);margin-top:calc(-1*var(--rd-r,0px))}
.cz-st{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;background:var(--cz-i);touch-action:pan-y}
.cz-gl,.cz-fb{position:absolute;inset:0;width:100%;height:100%;display:block}
.cz-gl{opacity:0;transition:opacity 1s}.cz-ok .cz-gl{opacity:1}
/* respaldo sin WebGL: agua oscura con luz cian y reflejo */
.cz-fb{background:radial-gradient(70% 40% at 50% 62%,rgba(163,239,244,.2),transparent 70%),linear-gradient(180deg,var(--cz-i) 0,var(--cz-i) 60%,#0b1a21 78%,var(--cz-i) 100%)}
.cz-fb::before,.cz-fb::after{content:"";position:absolute;left:-10%;right:-10%;height:2px;top:calc(60% + 6%);background:linear-gradient(90deg,transparent,rgba(163,239,244,.5),transparent);opacity:.6}
.cz-fb::after{top:calc(60% + 14%);opacity:.3}
.cz-ok .cz-fb{display:none}
.cz-logo{z-index:1;position:absolute;left:50%;bottom:40%;width:min(88vw,76svh);aspect-ratio:218/135;margin:0;transform:translateX(-50%) scale(var(--s,1));transform-origin:50% 100%;
 -webkit-mask-image:linear-gradient(to top,#000 calc(var(--k,1.15)*100% - 15%),transparent calc(var(--k,1.15)*100%));mask-image:linear-gradient(to top,#000 calc(var(--k,1.15)*100% - 15%),transparent calc(var(--k,1.15)*100%))}
.cz-logo img{display:block;width:100%;height:100%;user-select:none;-webkit-user-drag:none}
.cz-rf{position:absolute;left:50%;top:60%;width:min(88vw,76svh);aspect-ratio:218/135;transform:translateX(-50%) scale(var(--s,1),calc(-1*var(--s,1)));transform-origin:50% 0;opacity:.28;display:none;
 -webkit-mask-image:linear-gradient(to bottom,#000,transparent 70%);mask-image:linear-gradient(to bottom,#000,transparent 70%)}
.cz-rf img{display:block;width:100%;height:100%}
.cz-nogl .cz-rf{display:block}
.cz-nogl .cz-fb::before{animation:cz-sh 7s ease-in-out infinite alternate}
@keyframes cz-sh{to{transform:translateX(6%)}}
.cz-vg{position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 90% at 50% 55%,transparent 55%,rgba(10,11,16,.75))}
.cz-cta{position:absolute;left:0;right:0;top:66%;z-index:2;display:flex;flex-direction:column;align-items:center;gap:22px;padding:0 20px;text-align:center;opacity:clamp(0,calc((var(--k,1.15) - .75)*3),1);transform:translateY(calc((1 - clamp(0,(var(--k,1.15) - .75)*3,1))*24px))}
.cz-q{margin:0;color:#fff;font:700 clamp(28px,3.5vw,52px)/1.08 Manrope,system-ui,sans-serif;letter-spacing:-.035em}
@media(max-width:640px){.cz-cta{top:62%}}
.cz-hint{position:absolute;left:0;right:0;bottom:clamp(18px,4vh,34px);text-align:center;font:600 12px/1 Manrope,system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:rgba(163,239,244,.7);pointer-events:none;opacity:calc(1 - var(--k,1.15)*1.1)}
.cz-hint::after{content:"";display:block;width:1px;height:26px;margin:10px auto 0;background:linear-gradient(var(--cz-c),transparent)}
@media(max-width:640px){.cz{height:112svh}.cz-logo,.cz-rf{width:92vw}}
/* ---------- 2. contacto en oscuro ---------- */
#contacto{background:var(--cz-i)!important;background-image:none!important;animation:none!important;color:#fff;box-shadow:inset 0 1px 0 rgba(163,239,244,.22);overflow:hidden}
#contacto h2{color:#fff;font-size:clamp(34px,4.4vw,52px);line-height:1.04;letter-spacing:-.035em}
#contacto .kick{color:var(--cz-c)}
#contacto .lead2{color:rgba(255,255,255,.72);font-size:clamp(16px,1.3vw,18px)}
#contacto .form{position:relative;gap:20px;background:linear-gradient(155deg,rgba(255,255,255,.1),rgba(255,255,255,.025) 60%);border:1px solid rgba(163,239,244,.2);color:#fff;
 -webkit-backdrop-filter:blur(22px) saturate(1.3);backdrop-filter:blur(22px) saturate(1.3);border-radius:28px;box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 40px 90px -40px rgba(0,0,0,.9),0 0 0 1px rgba(10,11,16,.6)}
#contacto .fld{position:relative}
#contacto .fld::before{content:"";position:absolute;inset:-2px;border-radius:16px;pointer-events:none;opacity:0;transition:opacity .4s;
 background:radial-gradient(70% 140% at var(--lx,50%) 100%,rgba(163,239,244,.42),transparent 70%)}
#contacto .fld:focus-within::before{opacity:1}
#contacto .fld label{color:rgba(255,255,255,.86)}
#contacto .fld label em{color:rgba(255,255,255,.5)}
#contacto .fld input,#contacto .fld textarea{position:relative;z-index:1;color:#fff;caret-color:var(--cz-c);background:rgba(255,255,255,.06);border:1.5px solid rgba(255,255,255,.16);transition:border-color .3s,box-shadow .35s,background .3s}
#contacto .fld input:hover,#contacto .fld textarea:hover{border-color:rgba(163,239,244,.4)}
#contacto .fld input:focus,#contacto .fld textarea:focus{background:rgba(10,11,16,.55);border-color:var(--cz-c);box-shadow:0 0 0 4px rgba(163,239,244,.16),0 0 34px -4px rgba(163,239,244,.5)}
#contacto .fld input:-webkit-autofill{-webkit-text-fill-color:#fff;box-shadow:0 0 0 60px #12202a inset;caret-color:#fff}
#contacto .pg-fl label{color:rgba(255,255,255,.62)}
#contacto .pg-fl:focus-within label,#contacto .pg-fl.on label{color:var(--cz-c)}
#contacto .pg-fl::after{z-index:2}
#contacto .pg-fl.bad label{color:#fff}
#contacto .fld.bad input,#contacto .fld.bad textarea{border-color:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.14)}
#contacto .err{color:#fff;font-weight:600}#contacto .err::before{content:"! ";color:var(--cz-c)}
#contacto .fmsg.bad{color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.35)}
#contacto .priv{color:rgba(255,255,255,.6)}#contacto .priv a{color:var(--cz-c);text-decoration:underline;text-underline-offset:3px}
/* boton magnetico */
#contacto .btn.pri.sub{justify-self:start;width:auto;min-width:min(100%,250px);padding:17px 38px;color:var(--cz-i);font-weight:700;background:var(--cz-c);border:0;position:relative;overflow:hidden;
 box-shadow:0 0 0 1px rgba(163,239,244,.6),0 18px 44px -18px rgba(163,239,244,.8);transform:translate3d(var(--mx,0px),var(--my,0px),0);transition:transform .5s var(--cz-e),box-shadow .35s}
#contacto .btn.pri.sub:not([disabled]):hover{background:var(--cz-c);transform:translate3d(var(--mx,0px),var(--my,0px),0);box-shadow:0 0 0 5px rgba(163,239,244,.22),0 22px 54px -16px rgba(163,239,244,.95)}
#contacto .btn.pri.sub.cz-mag{transition:transform .12s linear,box-shadow .35s}
#contacto .sub .sub-t{position:relative;z-index:1;display:inline-block;transform:translate3d(calc(var(--mx,0px)*.4),calc(var(--my,0px)*.4),0);transition:transform .3s}
#contacto .sub::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.7) 50%,transparent 65%);transform:translateX(-120%);transition:transform .8s var(--cz-e);pointer-events:none}
#contacto .sub:not([disabled]):hover::after{transform:translateX(120%)}
#contacto .sub[disabled]{background:rgba(163,239,244,.7);opacity:1}
#contacto .sub-w{border-color:rgba(10,11,16,.25);border-top-color:var(--cz-i)}
#contacto .sending .sub-t{animation:cz-pl 1.2s ease-in-out infinite}
@keyframes cz-pl{50%{opacity:.55}}
@media(max-width:640px){#contacto .btn.pri.sub{justify-self:stretch;width:100%}}
/* confirmacion */
#contacto .ok{position:relative;background:linear-gradient(155deg,rgba(255,255,255,.1),rgba(255,255,255,.025));color:#fff;border:1px solid rgba(163,239,244,.3);border-radius:28px;
 -webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 0 60px -20px rgba(163,239,244,.6);overflow:hidden;min-height:140px}
#contacto .ok[hidden]{display:none}
#contacto .ok:focus{outline:2px solid var(--cz-c);outline-offset:3px}
#contacto .ok i{position:relative;background:var(--cz-c)}
#contacto .ok i svg{stroke:var(--cz-i)}
#contacto .ok i::before,#contacto .ok i::after{content:"";position:absolute;inset:0;border-radius:50%;border:1.5px solid var(--cz-c);opacity:0;pointer-events:none}
#contacto .ok.cz-in{animation:cz-ok .8s var(--cz-e) both}
#contacto .ok.cz-in i{animation:cz-pop .7s .1s var(--cz-e) both}
#contacto .ok.cz-in i::before{animation:cz-ring 1.8s .3s ease-out 2}
#contacto .ok.cz-in i::after{animation:cz-ring 1.8s .9s ease-out 2}
#contacto .ok.cz-in i svg path{stroke-dasharray:30;stroke-dashoffset:30;animation:pg-ck .6s .5s var(--cz-e) forwards}
#contacto .ok.cz-in p{animation:cz-tx .8s .5s var(--cz-e) both}
@keyframes cz-ok{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}
@keyframes cz-pop{from{transform:scale(.4);opacity:0}60%{transform:scale(1.12)}to{transform:none;opacity:1}}
@keyframes cz-ring{from{transform:scale(1);opacity:.8}to{transform:scale(2.4);opacity:0}}
@keyframes cz-tx{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes pg-ck{to{stroke-dashoffset:0}}
/* ---------- 3. pie limpio ---------- */
html body .foot{background:var(--cz-i);border-top:0;padding:clamp(48px,6vw,84px) 0 0;overflow:hidden;position:relative;box-shadow:inset 0 1px 0 rgba(163,239,244,.16)}
html body .foot .dn-wave{display:none!important}
html body .foot .wrap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(30px,5vw,80px);align-items:start;padding-bottom:0}
html body .foot-t{display:grid;gap:18px;align-content:start}
html body .foot-t img{display:block!important;height:30px;width:auto;max-width:100%}
html body .foot-t p{margin:0;max-width:360px;font-size:15px;line-height:1.55;color:rgba(255,255,255,.62)}
html body .foot-t p b{color:#fff;font-weight:600;font-size:16px}
html body .foot-n{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(18px,3vw,40px);font-size:15px;font-weight:600}
html body .foot-n a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:15px 0;border-bottom:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.78);transition:color .25s,border-color .25s,padding .3s var(--cz-e)}
html body .foot-n a::after{content:"\2192";color:var(--cz-c);opacity:0;transform:translateX(-6px);transition:opacity .25s,transform .3s var(--cz-e)}
html body .foot-n a:hover,html body .foot-n a:focus-visible{color:#fff;border-color:var(--cz-c);padding-left:6px}
html body .foot-n a:hover::after,html body .foot-n a:focus-visible::after{opacity:1;transform:none}
html body .foot-n a:focus-visible{outline:2px solid var(--cz-c);outline-offset:2px}
html body .foot-c{grid-column:1/-1;margin:0;border-top:0;padding-top:4px;font-size:13px;color:rgba(255,255,255,.5)}
html body .foot-big{display:block;width:min(1500px,96%);height:auto;margin:clamp(22px,4vw,56px) auto 0;opacity:.1;pointer-events:none;animation:none;
 -webkit-mask-image:linear-gradient(#000 20%,transparent 92%);mask-image:linear-gradient(#000 20%,transparent 92%);transform:translateY(18%)}
@media(max-width:760px){html body .foot .wrap{grid-template-columns:minmax(0,1fr)}}
@media(max-width:420px){html body .foot-n{grid-template-columns:minmax(0,1fr)}}
/* ---------- movimiento reducido: todo visible y quieto ---------- */
@media(prefers-reduced-motion:reduce){
 .cz{height:auto}.cz-st{position:relative;height:100vh;height:100svh}
 .cz *,#contacto .fld::before,#contacto .btn,#contacto .sub-t,#contacto .sub::after,#contacto .ok,#contacto .ok *,html body .foot-n a,html body .foot-n a::after{transition:none!important;animation:none!important}
 #contacto .ok.cz-in i svg path{stroke-dashoffset:0}
 .cz-logo{--k:1.15;--s:1}.cz-hint{display:none}
}

/* chips de tipo y plazo, y promesa de respuesta */
#contacto .chips{border:0;margin:0;padding:0;min-width:0}
#contacto .chips legend{padding:0;margin:0 0 10px;font-size:14px;font-weight:600;color:rgba(255,255,255,.86)}
#contacto .chips legend em{font-style:normal;color:rgba(255,255,255,.5);font-weight:400}
#contacto .chip{display:inline-block;margin:0 8px 8px 0;cursor:pointer}
#contacto .chip input{position:absolute;opacity:0;width:1px;height:1px}
#contacto .chip span{display:inline-block;padding:10px 16px;min-height:44px;box-sizing:border-box;line-height:24px;border:1px solid rgba(255,255,255,.22);border-radius:99px;font-size:14px;color:rgba(255,255,255,.88);transition:background .2s,border-color .2s,color .2s}
#contacto .chip:hover span{border-color:rgba(163,239,244,.6)}
#contacto .chip input:checked+span{background:var(--cz-c);border-color:var(--cz-c);color:var(--cz-i);font-weight:700}
#contacto .chip input:focus-visible+span{outline:2px solid var(--cz-c);outline-offset:3px}
#contacto .resp24{margin:10px 0 0;font-size:14px;color:var(--cz-c)}

/* Carla 13-nov tg 62094: titular del cierre a escala de titulares de seccion (anula la regla grande de pg-resto) */
html body .cz .cz-q{font-size:clamp(28px,3.5vw,52px);line-height:1.08;letter-spacing:-.03em;max-width:18ch}
