/* Alsis IoT · componentes (v0). Carga después de tokens.css. Fuente: home v5, 17-09-2026. */
*{box-sizing:border-box}
html,body{background:var(--bg)}
body{margin:0;color:var(--ink);font:400 18px/1.6 var(--font-body);-webkit-font-smoothing:antialiased;overflow-x:clip;transition:background-color .5s ease,color .5s ease}
a{color:inherit}
p{margin:0}
h1,h2,h3{font-family:var(--font-display);margin:0;font-weight:400;text-wrap:balance}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:6px}
.wrap{max-width:1520px;margin:0 auto;padding-inline:var(--gut)}
.mono{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;line-height:1.3}
.num{font-family:var(--font-mono);font-stretch:92%;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.pend{font-style:normal;color:var(--ink-3);border-bottom:1px dashed currentColor}
.sq{display:inline-block;width:6px;height:6px;border-radius:1px;background:var(--c,var(--raw));flex:none}

/* secciones */
.sec{position:relative;isolation:isolate;padding-block:var(--sec)}
.sec.tight-top{padding-top:0}
.deep{background:var(--deep);color:var(--d-ink);transition:background-color .5s ease;--off-rv:var(--d-off);--on-rv:var(--d-ink)}
.gf{position:absolute;inset:0;width:100%;height:100%;z-index:-1;display:block;pointer-events:none;-webkit-mask-image:radial-gradient(75% 70% at 50% 45%,#000 30%,transparent 100%);mask-image:radial-gradient(75% 70% at 50% 45%,#000 30%,transparent 100%)}
.head{text-align:center;max-width:980px;margin:0 auto clamp(64px,7vw,112px)}
.head .mono{display:block;color:var(--ink-3);margin-bottom:28px}
.deep .head .mono{color:var(--d-ink-3)}
.head h2,.h2{font-size:clamp(40px,4.6vw,76px);line-height:1.02;letter-spacing:-.035em}
.head p{color:var(--ink-2);max-width:54ch;margin:28px auto 0}
.deep .head p{color:var(--d-ink-2)}

/* texto que se llena */
[data-reveal] .w{display:inline-block;white-space:nowrap}
[data-reveal] .c{color:var(--off-rv,var(--off));transition:color .2s linear}
[data-reveal] .c.on{color:var(--on-rv,var(--ink))}
[data-reveal] .c.cur{color:var(--sense-l)}

/* botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:0 22px;border-radius:8px;border:0;cursor:pointer;text-decoration:none;white-space:nowrap;font:600 11px/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;transition:background-color .25s ease,color .25s ease}
.btn.accent{background:var(--raw);color:var(--on-raw)}
.btn.accent:hover{background:#1FC0B7}
.btn.ink{background:var(--btn);color:var(--btn-ink)}
.btn.soft{background:var(--btn-2);color:var(--btn-2-ink)}
.btn.soft:hover{background:var(--line-2)}
.btn.glass{background:rgba(255,255,255,.07);color:var(--d-ink);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.btn.glass:hover{background:rgba(255,255,255,.12)}
.btn.block{width:100%}

/* nav */
.navbar{position:fixed;left:0;right:0;top:calc(env(safe-area-inset-top,0px) + 16px);z-index:30;padding-inline:clamp(12px,3vw,40px);pointer-events:none}
.bar{pointer-events:auto;max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:28px;height:66px;padding:0 10px 0 22px;border-radius:12px;background:rgba(14,21,50,.5);-webkit-backdrop-filter:blur(20px) saturate(1.2);backdrop-filter:blur(20px) saturate(1.2);box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);color:var(--d-ink)}
.bar .logo img{height:38px;display:block}
.links{display:flex;gap:28px;font-size:14px;margin-left:12px}
.links a{text-decoration:none;color:rgba(238,241,248,.7);transition:color .2s}
.links a:hover{color:#fff}
.bar .right{margin-left:auto;display:flex;align-items:center;gap:6px}
.bar .btn{min-height:40px;padding:0 16px}
.switch{display:inline-flex;align-items:center;gap:10px;background:none;border:0;color:rgba(238,241,248,.7);cursor:pointer;min-height:44px;padding:0 10px}
.switch .track{width:34px;height:18px;border-radius:5px;background:rgba(255,255,255,.1);position:relative}
.switch .knob{position:absolute;top:3px;left:3px;width:12px;height:12px;border-radius:3px;background:var(--sense-l);transition:transform .4s cubic-bezier(.2,.7,.2,1),background-color .4s}
.switch[aria-checked="true"] .knob{transform:translateX(16px);background:var(--raw-l)}
@media (max-width:1080px){ .links{display:none} }
@media (max-width:520px){ .switch .mono{display:none} .bar{gap:8px;padding-left:14px} .bar .logo img{height:30px} }

/* muesca entre secciones */
.notch{display:block;width:100%;height:18px;margin-top:-1px;position:relative;z-index:2;overflow:hidden}

/* hero */
.hero{padding-top:clamp(150px,16vw,230px);padding-bottom:0;overflow:hidden}
.hero-media{position:absolute;inset:0;z-index:-3;overflow:hidden}
.hero-media video{width:100%;height:100%;object-fit:cover;opacity:.3;filter:saturate(.55) contrast(1.05)}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,color-mix(in srgb,var(--deep) 55%,transparent) 0%,color-mix(in srgb,var(--deep) 72%,transparent) 45%,var(--deep) 88%)}
.hero .gf{z-index:-2}
.hero h1{font-size:clamp(52px,8.4vw,132px);line-height:.93;letter-spacing:-.042em;max-width:13ch}
.hero h1 .ch{color:transparent}
.hero h1 .ch.on{color:inherit}
.hero h1 .ch.on.w-s{color:var(--sense-l)}
.hero h1 .ch.on.w-d{color:var(--raw-l)}
.hero h1 .ch.cur{color:var(--sense-l)!important}
.hero-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:48px;align-items:end;margin-top:clamp(48px,5vw,72px)}
.hero-row p{font-size:clamp(18px,1.35vw,21px);color:var(--d-ink-2);max-width:44ch;line-height:1.55}
.hero-row .cta{display:flex;flex-wrap:wrap;gap:10px}
@media (max-width:860px){ .hero-row{grid-template-columns:1fr} }
.signal{position:relative;margin-top:clamp(96px,10vw,160px)}
.cvw{position:relative;height:clamp(200px,18vw,260px);touch-action:pan-y;cursor:ew-resize}
.cvw canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.readout{position:absolute;top:0;left:0;width:280px;padding:20px 20px 20px;background:rgba(18,26,56,.66);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);pointer-events:none}
.readout .h{font-size:13px;color:var(--d-ink-3);display:flex;justify-content:space-between;gap:10px}
.readout .v{font-size:30px;line-height:1.1;margin:10px 0 12px;color:var(--d-ink)}
.readout .v small{font-family:var(--font-body);font-size:13px;color:var(--d-ink-3);margin-left:8px;letter-spacing:0}
.readout .m{font-size:14px;line-height:1.45;color:var(--d-ink-2)}
.readout .m b{color:var(--d-ink);font-weight:500}
.legend{display:flex;flex-wrap:wrap;gap:12px 32px;color:var(--d-ink-3);font-size:13px;padding-block:28px clamp(72px,8vw,120px)}
.legend span{display:inline-flex;align-items:center;gap:10px}
.legend i{display:inline-block;width:18px;height:1.5px}
@media (max-width:700px){ .readout{position:relative;width:auto;margin:16px 20px 0;transform:none!important} }

/* socios */
.lwrap{position:relative}
.lwrap::before,.lwrap::after{content:"";position:absolute;top:0;bottom:0;width:var(--gut);border-top:1px solid var(--line);-webkit-mask-image:linear-gradient(90deg,transparent,#000);mask-image:linear-gradient(90deg,transparent,#000)}
.lwrap::before{right:100%}
.lwrap::after{left:100%;transform:scaleX(-1)}
.lgrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.lgrid div{min-height:150px;display:grid;place-content:center;gap:10px;text-align:center;padding:20px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);position:relative;font-family:var(--font-display);font-size:20px;letter-spacing:-.01em;color:var(--ink-2);line-height:1.2;transition:color .3s}
.lgrid div:hover{color:var(--ink)}
.lgrid div small{font:500 10px var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.lgrid i{position:absolute;right:-5px;bottom:-5px;width:9px;height:9px;z-index:1}
.lgrid i::before,.lgrid i::after{content:"";position:absolute;background:var(--line-2)}
.lgrid i::before{left:4px;top:0;width:1px;height:9px}
.lgrid i::after{top:4px;left:0;height:1px;width:9px}
.lgrid .e{min-height:64px}
@media (max-width:900px){ .lgrid{grid-template-columns:repeat(2,minmax(0,1fr))} .lgrid .e{display:none} .lgrid div{min-height:120px} }

/* tarjetas de entrada */
.cards3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.pcard{background:var(--soft);border-radius:24px;padding:clamp(28px,2.8vw,44px);display:flex;flex-direction:column;gap:24px;transition:background-color .5s}
.pcard .mono{color:var(--ink-3)}
.pcard h3{font-size:clamp(24px,1.9vw,30px);line-height:1.15;letter-spacing:-.025em}
.pcard p{color:var(--ink-2);font-size:17px;flex:1}
.media{position:relative;aspect-ratio:16/11;overflow:hidden;background:var(--soft-2);max-width:100%;margin-top:8px}
.media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.pcard:hover .media img{transform:scale(1.03)}
.dash{position:absolute;inset:0;background:var(--deep);color:var(--d-ink);padding:18px;display:grid;grid-template-rows:auto 1fr;gap:12px}
.dash .top{display:flex;justify-content:space-between;color:var(--d-ink-3);font-size:12px}
.dash .sites{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.dash .site{border-top:1px solid var(--d-line);padding-top:10px;display:grid;gap:4px;align-content:start}
.dash .site span{font-size:12px;color:var(--d-ink-3)}
.dash .site b{font:500 17px var(--font-mono);font-stretch:92%;color:var(--d-ink)}
.dash .site svg{width:100%;height:22px;display:block}
@media (max-width:980px){ .cards3{grid-template-columns:1fr} }

/* propuesta */
.say{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:40px}
.say .mono{color:var(--ink-3);padding-top:16px}
.say p{font-family:var(--font-display);font-size:clamp(34px,4.2vw,68px);line-height:1.06;letter-spacing:-.035em;max-width:20ch}
@media (max-width:860px){ .say{grid-template-columns:1fr} }


/* qué medimos */
.frase{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(40px,7vw,120px);align-items:center}
.frase .mono.k{color:var(--ink-3)}
.frase .sayit{font-family:var(--font-display);font-size:clamp(34px,3.8vw,60px);line-height:1.08;letter-spacing:-.035em;margin-top:36px;min-height:4.4em}
.frase .sayit .fx{color:var(--ink-3)}
.frase .sayit .ch{color:transparent}
.frase .sayit .ch.on{color:var(--ink)}
.frase .sayit .ch.cur{color:var(--sense-l)}
.frase .go{margin-block:36px 44px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:16px}
.frase .go .mono{color:var(--ink-3)}
.frase .go a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line-2);padding-bottom:2px;transition:border-color .2s}
.frase .go a:hover{border-color:var(--ink)}
.tabs{display:flex;flex-wrap:wrap;gap:8px}
.tabs button{min-height:38px;padding:0 16px;border-radius:8px;background:transparent;border:0;box-shadow:inset 0 0 0 1px var(--line-2);color:var(--ink-3);cursor:pointer;display:inline-flex;align-items:center;gap:10px;transition:background-color .25s,color .25s}
.tabs button .sq{opacity:.8}
.tabs button[aria-selected="true"]{background:var(--ink);color:var(--bg);box-shadow:none}
.deep .tabs button{box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);color:var(--d-ink-2)}
.deep .tabs button[aria-selected="true"]{background:var(--d-ink);color:var(--deep)}
.photo{position:relative;aspect-ratio:4/5;background:var(--soft);max-width:100%}
.photo img{width:100%;height:100%;object-fit:cover;display:block;transition:opacity .6s ease}
.chip{position:absolute;left:18px;bottom:18px;background:rgba(11,17,43,.7);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:var(--d-ink);padding:14px 18px;display:grid;gap:2px;min-width:200px}
.chip .l{font-size:12px;color:var(--d-ink-2)}
.chip .v{font-size:24px;line-height:1.2}
.chip .s{font-size:12px;color:var(--d-ink-2);display:flex;align-items:center;gap:8px}
@media (max-width:900px){ .frase{grid-template-columns:1fr} .photo{aspect-ratio:4/3} .frase .sayit{min-height:0} }

/* calculadora */
.calc{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,5vw,88px);align-items:stretch}
.calc h2{font-size:clamp(34px,3.2vw,52px);line-height:1.05;letter-spacing:-.035em;margin:28px 0 48px}
.calc .mono.k{color:var(--ink-3)}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:8px 32px}
.field{display:grid;gap:8px;padding-block:16px;border-bottom:1px solid var(--line-2)}
.field label{font-size:14px;color:var(--ink-3)}
.field input{font:400 24px var(--font-mono);font-stretch:92%;color:var(--ink);background:transparent;border:0;padding:0;width:100%;-moz-appearance:textfield}
.field input::-webkit-outer-spin-button,.field input::-webkit-inner-spin-button{-webkit-appearance:none}
.field.full{grid-column:1/-1}
.range{display:grid;gap:14px;padding-top:28px;grid-column:1/-1}
.range .row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.range label{font-size:14px;color:var(--ink-3)}
.range output{font:400 24px var(--font-mono)}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:24px;background:transparent}
input[type=range]::-webkit-slider-runnable-track{height:1px;background:linear-gradient(90deg,var(--ink) var(--p,37.5%),var(--line-2) var(--p,37.5%))}
input[type=range]::-moz-range-track{height:1px;background:var(--line-2)}
input[type=range]::-moz-range-progress{height:1px;background:var(--ink)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:3px;background:var(--ink);margin-top:-6.5px}
input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:3px;background:var(--ink);border:0}
.result{background:var(--deep);color:var(--d-ink);padding:clamp(32px,3.6vw,56px);position:relative;overflow:hidden;display:flex;flex-direction:column;gap:24px}
.result::before{content:"";position:absolute;width:600px;height:600px;right:-240px;top:-300px;background:radial-gradient(circle,rgba(0,176,168,.14),transparent 65%);pointer-events:none}
.result>*{position:relative}
.result .lead{color:var(--d-ink-2)}
.result .lead b{color:var(--d-ink);font-weight:400}
.result .big{font:400 clamp(44px,4.8vw,76px)/1 var(--font-mono);font-stretch:88%;letter-spacing:-.05em}
.result .rows div{display:flex;justify-content:space-between;gap:16px;padding-block:14px;border-top:1px solid var(--d-line);font-size:15px;color:var(--d-ink-2)}
.result .rows b{font:400 17px var(--font-mono);font-stretch:92%;color:var(--d-ink)}
.result .note{font-size:13px;color:var(--d-ink-3);max-width:52ch}
.result form{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end;margin-top:auto}
.result label{grid-column:1/-1;font-size:13px;color:var(--d-ink-3)}
.result input[type=email]{background:transparent;border:0;border-bottom:1px solid rgba(255,255,255,.18);color:var(--d-ink);font:400 16px var(--font-body);padding:10px 2px;min-width:0}
.result input::placeholder{color:var(--d-ink-3)}
@media (max-width:1000px){ .calc{grid-template-columns:1fr} }
@media (max-width:520px){ .fields{grid-template-columns:1fr} .result form{grid-template-columns:1fr} }

/* método */
.mwrap{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:clamp(16px,2vw,28px);margin-top:48px}
.chartbox{border-radius:16px;background:var(--deep-2);padding:clamp(16px,2.4vw,36px);overflow-x:auto}
.chartbox svg{display:block;width:100%;height:auto;min-width:560px}
.mtext{background:var(--deep-2);padding:clamp(28px,3vw,44px);display:flex;flex-direction:column;gap:18px}
.mtext .mono{color:var(--d-ink-3)}
.mtext h3{font-size:clamp(26px,2.2vw,34px);line-height:1.1;letter-spacing:-.03em}
.mtext p{color:var(--d-ink-2);font-size:17px}
.mtext .del{margin-top:auto;padding-top:22px;border-top:1px solid var(--d-line);font-size:16px;color:var(--d-ink)}
.mtext .del .mono{display:block;margin-bottom:10px}
@media (max-width:1000px){ .mwrap{grid-template-columns:1fr} }

/* sectores */
.rows{border-top:1px solid var(--line)}
.srow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,4fr) minmax(0,5fr) minmax(0,4fr);gap:32px;padding-block:44px;border-bottom:1px solid var(--line);align-items:baseline;text-decoration:none;position:relative}
.srow::after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:0;background:var(--ink);transition:width .9s cubic-bezier(.2,.7,.2,1)}
.srow:hover::after{width:100%}
.srow .mono{color:var(--ink-3)}
.srow h3{font-size:clamp(30px,2.8vw,46px);line-height:1;letter-spacing:-.035em}
.srow p{color:var(--ink-2);font-size:17px}
.tags{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:14px;color:var(--ink-2)}
.tags span{display:inline-flex;align-items:center;gap:8px}
.float{position:fixed;left:0;top:0;width:240px;aspect-ratio:4/3;pointer-events:none;opacity:0;transform:translate(-50%,-50%);transition:opacity .35s ease;z-index:25}
.float img{width:100%;height:100%;object-fit:cover;display:block}
.float.on{opacity:1}
@media (max-width:900px){ .srow{grid-template-columns:1fr;gap:12px;padding-block:32px} .float{display:none} }

/* producto */
.prod{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(40px,7vw,120px);align-items:center}
.annot{position:relative;aspect-ratio:3/2;max-width:100%;background:var(--soft)}
.annot img{width:100%;height:100%;object-fit:cover;display:block}
.annot svg{position:absolute;inset:0;width:100%;height:100%}
.callout{position:absolute;background:rgba(11,17,43,.7);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:10px 14px;font-size:12px;line-height:1.4;color:var(--d-ink-2)}
.callout b{display:block;font:400 15px var(--font-body);color:var(--d-ink);white-space:nowrap;margin-top:2px}
.prod h2,.pry h2{font-size:clamp(36px,3.6vw,60px);line-height:1.02;letter-spacing:-.035em;margin:28px 0 24px}
.prod .lead,.pry .lead{color:var(--ink-2)}
.specs{margin:40px 0 0}
.specs div{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:16px;padding-block:14px;border-top:1px solid var(--line);font-size:16px}
.specs dt{color:var(--ink-3)}
.specs dd{margin:0}
.btns{margin-top:40px;display:flex;gap:10px;flex-wrap:wrap}
@media (max-width:900px){ .prod{grid-template-columns:1fr} .callout,.annot svg{display:none} }

/* proyecto */
.pry{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,7vw,120px);align-items:center}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:0 32px;margin-top:40px}
.facts div{padding-block:14px;border-top:1px solid var(--line)}
.facts dt{font-size:13px;color:var(--ink-3)}
.facts dd{margin:4px 0 0}
.pchart{border-radius:16px;background:var(--soft);padding:clamp(20px,3vw,44px);overflow-x:auto;transition:background-color .5s}
.pchart svg{display:block;width:100%;height:auto;min-width:460px}
@media (max-width:1000px){ .pry{grid-template-columns:1fr} }

/* faq */
/* guías */
.guides{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.gcard{display:flex;flex-direction:column;gap:20px;text-decoration:none;color:inherit}
.gcard .media{aspect-ratio:4/3;margin:0}
.gcard .mono{color:var(--ink-3);display:flex;align-items:center;gap:10px}
.gcard h3{font-size:clamp(20px,1.5vw,24px);line-height:1.2;letter-spacing:-.02em}
.gcard .more{margin-top:auto;display:flex;align-items:center;gap:10px;font-size:15px;color:var(--ink-2)}
.gcard .more i{font-style:normal;transition:transform .3s}
.gcard:hover .media img{transform:scale(1.03)}
.gcard:hover .more i{transform:translateX(4px)}
.gcard:hover h3{color:var(--ink)}
.gfoot{display:flex;justify-content:center;margin-top:clamp(48px,5vw,72px)}
@media (max-width:1100px){ .guides{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:600px){ .guides{grid-template-columns:1fr} }

.two{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(40px,7vw,120px)}
.two .side .mono{color:var(--ink-3)}
.two h2{font-size:clamp(36px,3.4vw,56px);line-height:1.04;letter-spacing:-.035em;margin:28px 0 20px}
.two .side p{color:var(--ink-2)}
.faq .tabs{margin-bottom:32px}
.qa{border-top:1px solid var(--line)}
.qa summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;padding-block:26px;font-size:clamp(18px,1.4vw,21px)}
.qa summary::-webkit-details-marker{display:none}
.qa summary .pl{flex:none;width:14px;height:14px;position:relative;margin-top:7px}
.qa summary .pl::before,.qa summary .pl::after{content:"";position:absolute;background:var(--ink-3);left:0;top:6.5px;width:14px;height:1px;transition:transform .35s}
.qa summary .pl::after{transform:rotate(90deg)}
.qa[open] summary .pl::after{transform:rotate(0)}
.qa p{color:var(--ink-2);padding-bottom:28px;max-width:60ch}
@media (max-width:1000px){ .two{grid-template-columns:1fr} }

/* cierre */
.final{padding-top:calc(var(--sec) + 20px);padding-bottom:0;overflow:hidden}
.final-in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,7vw,120px);align-items:start}
.final h2{font-size:clamp(40px,4.6vw,76px);line-height:1.02;letter-spacing:-.035em}
.final .sub{color:var(--d-ink-2);margin-top:32px;max-width:40ch}
.fcard{background:var(--deep-2);padding:clamp(28px,3.4vw,52px);display:grid;grid-template-columns:1fr 1fr;gap:6px 28px}
.ff{display:grid;gap:6px;padding-block:12px}
.ff.full{grid-column:1/-1}
.ff label{font-size:13px;color:var(--d-ink-3)}
.ff label span{color:var(--sense-l)}
.ff input,.ff textarea{font:400 17px/1.5 var(--font-body);color:var(--d-ink);background:transparent;border:0;border-bottom:1px solid rgba(255,255,255,.18);padding:8px 2px;width:100%;transition:border-color .2s}
.ff input:focus,.ff textarea:focus{outline:none;border-color:var(--raw-l)}
.ff textarea{min-height:96px;resize:vertical}
.ff ::placeholder{color:var(--d-ink-3)}
.checks{grid-column:1/-1;display:grid;gap:12px;padding-top:18px}
.check{display:grid;grid-template-columns:20px 1fr;gap:12px;align-items:start;font-size:14px;color:var(--d-ink-2);line-height:1.5;cursor:pointer}
.check input{appearance:none;-webkit-appearance:none;width:18px;height:18px;margin:2px 0 0;border-radius:4px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.3);display:grid;place-content:center;cursor:pointer;transition:background-color .2s}
.check input:checked{background:var(--raw)}
.check input:checked::after{content:"";width:8px;height:4px;border-left:2px solid var(--on-raw);border-bottom:2px solid var(--on-raw);transform:rotate(-45deg) translate(1px,-1px)}
.check a{color:var(--d-ink)}
.legalinfo{grid-column:1/-1;font-size:12px;line-height:1.55;color:var(--d-ink-3);border-top:1px solid var(--d-line);padding-top:16px;margin-top:6px}
.legalinfo a{color:var(--d-ink-2)}
.fcard .actions{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin-top:18px}
.fcard .actions small{color:var(--d-ink-3);font-size:14px}
.fcard .actions small a{color:var(--d-ink)}
.fcard .ok{grid-column:1/-1;color:var(--raw-l);font-size:14px;min-height:1.5em}
@media (max-width:560px){ .fcard{grid-template-columns:1fr} }
@media (max-width:900px){ .final-in{grid-template-columns:1fr} }
.foot{display:grid;grid-template-columns:minmax(0,4fr) repeat(3,minmax(0,2fr));gap:40px;padding-top:96px;margin-top:var(--sec);border-top:1px solid var(--d-line);font-size:15px;color:var(--d-ink-2)}
.foot .mono{color:var(--d-ink-3);margin-bottom:18px;display:block}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.foot a{text-decoration:none;transition:color .2s}
.foot a:hover{color:var(--d-ink)}
.foot img{height:48px;display:block;margin-bottom:28px}
.social{display:flex;gap:10px;margin-top:28px}
.social a{width:40px;height:40px;border-radius:8px;display:grid;place-items:center;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);color:var(--d-ink-2);transition:background-color .2s,color .2s}
.social a:hover{background:rgba(255,255,255,.08);color:var(--d-ink)}
.social svg{width:18px;height:18px;fill:currentColor}
.meta a{text-decoration:none}
.meta a:hover{color:var(--d-ink)}
.meta nav{display:flex;gap:20px;flex-wrap:wrap}
.meta{margin-top:80px;padding-bottom:36px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;color:var(--d-ink-3);font-size:12px}
@media (max-width:900px){ .foot{grid-template-columns:1fr 1fr} }
@media (prefers-reduced-motion: reduce){ *,*::before,*::after{animation:none!important;transition:none!important} }

/* ── Añadidos del sistema (v0) ── */
.sq.t-sol{--c:var(--tipo-solucion)}.sq.t-pro{--c:var(--tipo-producto)}.sq.t-pry{--c:var(--tipo-proyecto)}.sq.t-con{--c:var(--tipo-conocimiento)}
.typelabel{display:inline-flex;align-items:center;gap:10px;color:var(--ink-3)}
.deep .typelabel{color:var(--d-ink-3)}
.legend-tipos{display:flex;gap:24px;flex-wrap:wrap;color:var(--ink-3)}
.legend-tipos span{display:inline-flex;gap:8px;align-items:center}
.notch path{transition:fill .5s}
[data-shape]{clip-path:inset(0 round 16px)}
.mtext{color:var(--d-ink)}

/* Rejilla fija (v1.1): el contenido sube y la rejilla se queda; cambia al cambiar de franja */
.gf-host{clip-path:inset(0)}
.gf-host .gf{position:fixed;inset:0;width:100vw;height:100vh;height:100lvh}
@media (prefers-reduced-motion:reduce){.gf-host{clip-path:none}.gf-host .gf{position:absolute;width:100%;height:100%}}
