@charset "UTF-8";/* Tokens — Dirección B «Editorial sobria» */:root{--c-brand:#3866ff;/* fondos/rellenos; texto solo sobre blanco */--c-brand-text:#2d55e0;/* texto azul sobre cualquier fondo claro (≥4.5:1) */--c-brand-dark:#2d55e0;/* hover de rellenos */--c-brand-on-dark:#6b96ff;/* SOLO sobre fondos oscuros */--c-ink:#0f1630;--c-ink-soft:#4a5470;--c-dark:#0d1533;--c-on-dark:#f2f5ff;--c-on-dark-soft:#c3cdea;--font:'Satoshi',system-ui,-apple-system,'Segoe UI',sans-serif;--fs-body:1.0625rem;--fs-small:.875rem;--lh-body:1.6;--lh-head:1.08;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2.5rem;--space-7:4rem;--space-8:6.5rem;--container:1160px;--pad:clamp(1.25rem,5cqi,2.5rem);--focus:3px solid var(--c-brand-text);--c-bg:#ffffff;--c-bg-alt:#f3f6fb;/* sobre este fondo el azul-texto es #2d55e0 */--c-surface:#ffffff;--c-line:#d5dcea;--c-sprout:#0f1630;--fw-head:700;--track-head:-.035em;--fs-display:clamp(2.75rem,9cqi,6rem);--fs-h2:clamp(2rem,5.5cqi,3.5rem);--fs-h3:1.25rem;--r-card:2px;--r-btn:2px;--r-field:0;--r-tag:2px;--shadow-card:none}/* Satoshi (Fontshare). Served from public/assets/fonts/satoshi. */@font-face{font-family:"Satoshi";src:url("/assets/fonts/satoshi/satoshi-400.woff2") format("woff2");font-weight:400;font-display:swap}@font-face{font-family:"Satoshi";src:url("/assets/fonts/satoshi/satoshi-500.woff2") format("woff2");font-weight:500;font-display:swap}@font-face{font-family:"Satoshi";src:url("/assets/fonts/satoshi/satoshi-700.woff2") format("woff2");font-weight:700;font-display:swap}@font-face{font-family:"Satoshi";src:url("/assets/fonts/satoshi/satoshi-900.woff2") format("woff2");font-weight:900;font-display:swap}/* Componentes compartidos — solo var(--*). Diseño responsive por container queries (.ecc). */*,*::before,*::after{box-sizing:border-box}/* the browser's default 8px body margin showed as a side gutter around the whole page */body{margin:0}.ecc{container-type:inline-size;font-family:var(--font);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--c-ink);background:var(--c-bg);-webkit-font-smoothing:antialiased}.ecc h1,.ecc h2,.ecc h3,.ecc p,.ecc ul,.ecc ol,.ecc dl,.ecc dd,.ecc figure{margin:0;padding:0}.ecc ul,.ecc ol{list-style:none}.ecc a{color:var(--c-brand-text);text-underline-offset:0.2em}.ecc a:hover{color:var(--c-ink)}.ecc :focus-visible{outline:var(--focus);outline-offset:3px}.on-dark :focus-visible{outline-color:var(--c-brand-on-dark)}.ecc h1,.ecc h2,.ecc h3{font-weight:var(--fw-head);letter-spacing:var(--track-head);line-height:var(--lh-head);text-wrap:balance}.ecc p{text-wrap:pretty}.wrap{max-width:var(--container);margin:0 auto;padding:0 var(--pad)}.sec{padding:var(--space-8) 0}.sec--alt{background:var(--c-bg-alt)}.eyebrow{font-size:var(--fs-small);font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--c-brand-text);margin-bottom:var(--space-4)}.h2{font-size:var(--fs-h2)}.lead{font-size:1.25rem;color:var(--c-ink-soft);max-width:38rem}.ic{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex:none}.ic--sm{width:20px;height:20px}/* logo */.logo{font-weight:900;font-size:1.75rem;letter-spacing:-0.04em;color:var(--c-ink);text-decoration:none;line-height:1}.logo i{font-style:normal;color:var(--c-brand)}.on-dark .logo{color:var(--c-on-dark)}.on-dark .logo i{color:var(--c-brand-on-dark)}/* botones */.btn{display:inline-flex;align-items:center;gap:var(--space-3);min-height:48px;padding:0 var(--space-5);font:700 1rem var(--font);background:var(--c-brand);color:#fff;border:2px solid var(--c-brand);border-radius:var(--r-btn);text-decoration:none;cursor:pointer;transition:background 0.15s,border-color 0.15s}.ecc a.btn{color:#fff}.btn:hover,.ecc a.btn:hover{background:var(--c-brand-dark);border-color:var(--c-brand-dark);color:#fff}.btn--sm{min-height:44px;padding:0 var(--space-4)}.btn--block{width:100%;justify-content:center}/* franja lockup (fondo claro fijo) */.strip{background:#fff;border-bottom:1px solid #e3e7f0;color:#0f1630}.lockup{display:flex;align-items:center;padding:var(--space-3) var(--pad);max-width:var(--container);margin:0 auto}.lockup .lk-full{display:block;height:64px;width:auto;max-width:100%}.lk-m{display:none}.lk-row{display:flex;align-items:center;gap:var(--space-5)}.lk-slot{display:inline-flex;align-items:center;justify-content:center;border:1px dashed #8a93ab;color:#4a5470;font-size:0.75rem;line-height:1.2;text-align:center;padding:0 var(--space-2)}.lk-flag{min-width:150px;height:36px}.lk-plan{min-width:150px;height:36px}.lk-kd{min-width:104px;min-height:30px;height:34px}.lk-eu{min-width:110px;height:34px}.lk-note{margin-left:auto;font-size:0.6875rem;color:#4a5470}@container (max-width:760px){.lockup .lk-full {
    display:none}.lk-m{display:grid;gap:var(--space-2)}.lk-m > div{overflow:hidden;max-width:100%}.lk-m img{display:block;max-width:none;height:auto}.lk-r1{width:343px;height:48px}.lk-r1 img{width:520px}.lk-r2{width:206px;height:56px}.lk-r2 img{width:605px;margin-left:-399px}/* navbar */}

.nav{position:relative;background:var(--c-bg);border-bottom:1px solid var(--c-line)}.nav-in{display:flex;align-items:center;gap:var(--space-6);min-height:72px}.nav-links{display:flex;align-items:center;gap:var(--space-5);margin-left:var(--space-4)}.nav-links a,.nav-links button{font:500 1rem var(--font);color:var(--c-ink);text-decoration:none;background:none;border:0;padding:var(--space-2) 0;min-height:44px;display:inline-flex;align-items:center;gap:var(--space-2);cursor:pointer}.nav-links a:hover,.nav-links button:hover{color:var(--c-brand-text)}.nav-links [aria-expanded=true]{color:var(--c-brand-text)}.nav-links [aria-expanded=true] .ic{transform:rotate(180deg)}.nav .btn{margin-left:auto}.nav-burger{display:none;margin-left:auto;width:44px;height:44px;place-items:center;background:none;border:1px solid var(--c-line);border-radius:var(--r-field);color:var(--c-ink);cursor:pointer}.mega{position:absolute;left:0;right:0;top:100%;background:var(--c-surface);border-bottom:1px solid var(--c-line);box-shadow:0 24px 40px -28px rgba(15, 22, 48, 0.35);z-index:5}.mega[hidden]{display:none}.mega-in{display:grid;grid-template-columns:repeat(3, 1fr);gap:var(--space-6);padding-block:var(--space-6)}.mg-t{display:flex;align-items:center;gap:var(--space-3);font-weight:700;color:var(--c-sprout);margin-bottom:var(--space-3)}.mg-d{font-size:var(--fs-small);color:var(--c-ink-soft);margin-bottom:var(--space-3)}.mg li a{display:flex;gap:var(--space-3);padding:var(--space-2) 0;min-height:40px;align-items:baseline;color:var(--c-ink);text-decoration:none}.mg li a:hover{color:var(--c-brand-text)}.mg .n{font-size:var(--fs-small);font-weight:700;color:var(--c-ink-soft);width:1.6em;flex:none}.mnav{display:none}@container (max-width:760px){.nav-links, .nav .btn {
    display:none}.nav-burger{display:grid}.mega{display:none}.mnav{display:block;background:var(--c-surface);border-bottom:1px solid var(--c-line)}.mnav[hidden]{display:none}.mnav details{border-bottom:1px solid var(--c-line)}.mnav summary,.mnav > .wrap > a.ml{display:flex;justify-content:space-between;align-items:center;min-height:52px;font-weight:700;color:var(--c-ink);text-decoration:none;cursor:pointer;list-style:none}.mnav summary::-webkit-details-marker{display:none}.mnav details[open] summary .ic{transform:rotate(180deg)}.mnav .mg{padding-bottom:var(--space-4)}.mnav .btn{margin:var(--space-4) 0 var(--space-5)}.mega-in{grid-template-columns:1fr}/* hero */}

.hero{padding:var(--space-7) 0 var(--space-8);position:relative;overflow:hidden}.hero-in{display:grid;grid-template-columns:minmax(0, 1.35fr) minmax(0, 1fr);gap:var(--space-7);align-items:start}.hero h1{font-size:var(--fs-display);margin-bottom:var(--space-5)}.hero .lead{margin-bottom:var(--space-6)}.hero-cta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-5)}.hero-cta small{color:var(--c-ink-soft);font-size:var(--fs-small)}.ficha{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-card);padding:var(--space-5);box-shadow:var(--shadow-card)}.ficha h2{font-size:var(--fs-small);letter-spacing:0.08em;text-transform:uppercase;color:var(--c-ink-soft);margin-bottom:var(--space-4)}.ficha dl{display:grid;gap:0}.ficha div{display:grid;grid-template-columns:7.5rem 1fr;gap:var(--space-4);padding:var(--space-3) 0;border-top:1px solid var(--c-line)}.ficha dt{font-size:var(--fs-small);font-weight:700;color:var(--c-ink-soft);padding-top:0.15em}.ficha dd{font-weight:500}@container (max-width:860px){.hero-in {
    grid-template-columns:1fr;gap:var(--space-6)}}
@container (max-width:420px){.ficha div {
    grid-template-columns:1fr;gap:var(--space-1)}/* tarjeta de categoría */}

.cat-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(min(100%, 300px), 1fr));gap:var(--space-5)}.cat{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5);background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-card);box-shadow:var(--shadow-card);position:relative;color:var(--c-ink);text-decoration:none}.cat:hover{border-color:var(--c-brand)}.cat-top{display:flex;justify-content:space-between;align-items:center;color:var(--c-sprout)}.cat .num{font-weight:900;font-size:var(--fs-small);letter-spacing:0.06em;color:var(--c-ink-soft)}.cat h3{font-size:var(--fs-h3)}.cat h3 a{color:var(--c-ink);text-decoration:none}.cat h3 a::after{content:"";position:absolute;inset:0;border-radius:inherit}.cat p{color:var(--c-ink-soft);font-size:1rem}.cat-foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding-top:var(--space-3)}.tags{display:flex;flex-wrap:wrap;gap:var(--space-2)}.tag{font-size:0.8125rem;font-weight:700;padding:0.2rem 0.65rem;border:1px solid var(--c-line);border-radius:var(--r-tag);color:var(--c-ink-soft);background:var(--c-bg)}.cat .arrow{color:var(--c-brand-text)}/* distribuidora */.dist-head{display:grid;gap:var(--space-4);margin-bottom:var(--space-7);max-width:44rem}.stem{position:relative;padding-left:72px}.stem::before{content:"";position:absolute;left:23px;top:24px;bottom:24px;width:2px;background:var(--c-brand)}.grp{position:relative;padding-bottom:var(--space-7)}.grp:last-child{padding-bottom:0}.grp-mark{position:absolute;left:-72px;top:0;width:48px;height:48px;border-radius:50%;background:var(--c-bg);border:2px solid var(--c-brand);display:grid;place-items:center;color:var(--c-sprout)}.grp-head{min-height:48px;display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2) var(--space-4);margin-bottom:var(--space-5)}.grp-head h3{font-size:var(--fs-h3)}.grp-head p{color:var(--c-ink-soft)}.sols{display:grid;grid-template-columns:repeat(auto-fit, minmax(min(100%, 230px), 1fr));gap:var(--space-4)}.sol{position:relative;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5);background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-card);color:var(--c-ink);min-height:190px}.sol:hover{border-color:var(--c-brand)}.sol .n{font-weight:900;font-size:2rem;letter-spacing:-0.03em;line-height:1;color:var(--c-brand-text)}.sol h3{font-size:1.125rem;line-height:1.2}.sol h3 a{color:var(--c-ink);text-decoration:none}.sol h3 a::after{content:"";position:absolute;inset:0;border-radius:inherit}.sol p{color:var(--c-ink-soft);font-size:0.9375rem}.sol .ic{position:absolute;right:var(--space-4);top:var(--space-4);color:var(--c-sprout);width:28px;height:28px}@container (max-width:640px){.stem {
    padding-left:48px}.stem::before{left:15px}.grp-mark{left:-48px;width:32px;height:32px}.grp-mark .ic{width:20px;height:20px}.grp-head{min-height:32px}/* tabla */}

.tbl-wrap{overflow-x:auto;border:1px solid var(--c-line);border-radius:var(--r-card);background:var(--c-surface)}.tbl{width:100%;border-collapse:collapse;min-width:640px;font-size:1rem}.tbl caption{text-align:left;padding:var(--space-4) var(--space-5);font-size:var(--fs-small);color:var(--c-ink-soft);caption-side:bottom}.tbl th,.tbl td{text-align:left;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--c-line);vertical-align:top}.tbl thead th{font-size:var(--fs-small);letter-spacing:0.06em;text-transform:uppercase;color:var(--c-ink-soft);background:var(--c-bg-alt)}.tbl tbody th{font-weight:700}.tbl tbody tr:last-child > *{border-bottom:0}.seg{display:inline-grid;place-items:center;min-width:2.5rem;height:2rem;padding:0 0.5rem;border-radius:var(--r-tag);background:var(--c-brand);color:#fff;font-weight:900;font-size:0.9375rem}/* proceso */.steps{display:grid;grid-template-columns:repeat(5, 1fr);gap:var(--space-5);counter-reset:s;position:relative;margin-top:var(--space-7)}.steps li{position:relative;padding-top:var(--space-6)}.steps li::before{content:"";position:absolute;top:11px;left:0;right:calc(-1 * var(--space-5));height:2px;background:var(--c-brand)}.steps li:last-child::before{right:0;background:linear-gradient(90deg, var(--c-brand), transparent)}.steps li::after{content:"";position:absolute;top:2px;left:0;width:20px;height:20px;border-radius:50%;background:var(--c-bg);border:2px solid var(--c-brand)}.steps .n{display:block;font-weight:900;font-size:var(--fs-small);letter-spacing:0.06em;color:var(--c-sprout);margin-bottom:var(--space-2)}.steps h3{font-size:1.125rem;margin-bottom:var(--space-2)}.steps p{font-size:0.9375rem;color:var(--c-ink-soft)}@container (max-width:860px){.steps {
    grid-template-columns:1fr;gap:0;padding-left:44px}.steps li{padding:0 0 var(--space-6)}.steps li::before{top:22px;bottom:0;left:-34px;right:auto;width:2px;height:auto}.steps li:last-child::before{background:linear-gradient(var(--c-brand), transparent)}.steps li::after{left:-43px;top:0}/* faq */}

.faq-in{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1.6fr);gap:var(--space-7)}.faq details{border-top:1px solid var(--c-line)}.faq details:last-child{border-bottom:1px solid var(--c-line)}.faq summary{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);min-height:64px;padding:var(--space-3) 0;font-weight:700;font-size:1.125rem;cursor:pointer;list-style:none}.faq summary::-webkit-details-marker{display:none}.faq summary .ic{color:var(--c-brand-text);transition:transform 0.2s}.faq details[open] summary .ic{transform:rotate(45deg)}.faq details p{padding:0 var(--space-6) var(--space-5) 0;color:var(--c-ink-soft);max-width:40rem}@container (max-width:860px){.faq-in {
    grid-template-columns:1fr;gap:var(--space-6)}/* formulario */}

.formsec{background:var(--c-dark);color:var(--c-on-dark)}.formsec .eyebrow{color:var(--c-brand-on-dark)}.formsec h2{color:var(--c-on-dark)}.form-in{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1.3fr);gap:var(--space-7);align-items:start}.formsec .lead{color:var(--c-on-dark-soft)}.form{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5) var(--space-5)}.fld{display:grid;gap:var(--space-2)}.fld--full{grid-column:1/-1}.fld label{font-size:var(--fs-small);font-weight:700;color:var(--c-on-dark-soft)}.fld input,.fld select,.fld textarea{font:500 1.0625rem var(--font);color:var(--c-on-dark);background:transparent;border:0;border-bottom:2px solid #7f8bb0;border-radius:var(--r-field) var(--r-field) 0 0;padding:var(--space-3) var(--space-2);min-height:48px;width:100%}.fld textarea{min-height:96px;resize:vertical}.fld select option{color:#0f1630}.fld input:hover,.fld select:hover,.fld textarea:hover{background:rgba(255, 255, 255, 0.05)}.fld input:focus,.fld select:focus,.fld textarea:focus{outline:2px solid var(--c-brand-on-dark);outline-offset:2px;border-bottom-color:var(--c-brand-on-dark)}.fld ::-moz-placeholder{color:#a5b0d0}.fld ::placeholder{color:#a5b0d0}.consent{grid-column:1/-1;display:flex;gap:var(--space-3);align-items:flex-start;font-size:var(--fs-small);color:var(--c-on-dark-soft);line-height:1.5}.consent input{flex:none;width:24px;height:24px;margin:0;accent-color:var(--c-brand);border-radius:4px}.consent a{color:var(--c-brand-on-dark)}.consent a:hover{color:#fff}.form .btn{grid-column:1/-1;justify-self:start}@container (max-width:860px){.form-in {
    grid-template-columns:1fr;gap:var(--space-6)}}
@container (max-width:560px){.form {
    grid-template-columns:1fr}/* Dirección B — Editorial sobria: tipografía grande, blanco, azul solo como acento */}

.ecc h1,.ecc h2{font-weight:900}.hero{padding-top:var(--space-8)}.hero h1{max-width:12ch;margin-bottom:var(--space-6)}.hero .lead{font-size:1.375rem}.eyebrow{color:var(--c-ink);display:flex;align-items:center;gap:var(--space-3)}.eyebrow::before{content:"";width:32px;height:3px;background:var(--c-brand)}.formsec .eyebrow{color:var(--c-on-dark)}.formsec .eyebrow::before{background:var(--c-brand-on-dark)}.ficha{border:0;border-top:3px solid var(--c-ink);padding:var(--space-4) 0 0;background:transparent}.cat,.sol{background:transparent;border:0;border-top:1px solid var(--c-ink);padding:var(--space-5) 0 var(--space-4)}.cat:hover,.sol:hover{border-top-color:var(--c-brand);border-top-width:3px;padding-top:calc(var(--space-5) - 2px)}.sol .n{font-size:3.25rem;color:var(--c-ink);font-weight:900}.sol:hover .n{color:var(--c-brand-text)}.sol .ic{right:0}.sols,.cat-grid{gap:var(--space-6) var(--space-6)}.grp-mark{background:var(--c-bg);border-radius:0}.grp-head h3{font-size:1.75rem;font-weight:900}.stem::before{width:3px;left:22px}.tbl-wrap{border:0;border-top:3px solid var(--c-ink);background:transparent}.tbl thead th{background:transparent;color:var(--c-ink)}.tbl th,.tbl td{padding-inline:0 var(--space-5)}.seg{background:transparent;color:var(--c-ink);box-shadow:inset 0 -3px 0 var(--c-brand);border-radius:0;padding:0}.steps .n{font-size:3rem;letter-spacing:-0.04em;color:var(--c-ink);margin-bottom:var(--space-3)}.steps li::after{border-radius:0}.tag{border:0;border-bottom:2px solid var(--c-ink);border-radius:0;padding:0 0 0.1rem;background:transparent;color:var(--c-ink)}.faq details p{color:var(--c-ink-soft)}.fld input,.fld select,.fld textarea{border-radius:0}.cat-img{aspect-ratio:4/3;background:var(--c-bg-alt);margin-bottom:var(--space-2)}.hero--bg{position:relative;min-height:600px;display:flex;align-items:flex-end;padding:var(--space-8) 0;background:var(--c-dark);color:var(--c-on-dark)}.hero--bg .hero-bg{position:absolute;inset:0}.hero--bg .hero-scrim{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg, rgba(13, 21, 51, 0.92) 0%, rgba(13, 21, 51, 0.72) 45%, rgba(13, 21, 51, 0.15) 100%)}.hero--bg .hero-in{display:block;position:relative;width:100%;pointer-events:none}.hero--bg .hero-in a{pointer-events:auto}.hero--bg h1{color:var(--c-on-dark);max-width:14ch}.hero--bg .lead{color:var(--c-on-dark-soft)}.hero--bg .eyebrow{color:var(--c-on-dark)}.hero--bg .eyebrow::before{background:var(--c-brand-on-dark)}.hero--bg .hero-cta small{color:var(--c-on-dark-soft)}.hero--bg::before{display:none}@container (max-width:640px){.hero--bg {
    min-height:520px}.hero--bg .hero-scrim{background:linear-gradient(0deg, rgba(13, 21, 51, 0.92), rgba(13, 21, 51, 0.6))}/* Additions to the reference board: pieces the board does not define (footer, skip link, form status). */}

.skip{position:absolute;left:-9999px;top:0;z-index:20;background:var(--c-ink);color:#fff;padding:var(--space-3) var(--space-4)}.skip:focus{left:var(--space-3);top:var(--space-3)}.ecc a.skip{color:#fff}/* footer: 12-column grid (brand 3, solutions 4, Kit Digital 2, contact 3), stacked on small screens */.foot{background:var(--c-bg-alt);border-top:1px solid var(--c-line);padding:var(--space-7) 0 var(--space-5);color:var(--c-ink-soft);font-size:0.9375rem}.foot-in{display:grid;grid-template-columns:repeat(12, minmax(0, 1fr));gap:var(--space-6) var(--space-5)}.foot-brand{grid-column:span 3}.foot-sols{grid-column:span 4}.foot-kd{grid-column:span 2}.foot-contact{grid-column:span 3}.foot h2{margin:0 0 var(--space-3);font-size:0.8125rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--c-ink-soft)}.foot h3{margin:var(--space-4) 0 var(--space-1);font-size:0.9375rem;font-weight:700;letter-spacing:0;color:var(--c-ink)}.foot h2 + h3{margin-top:0}.foot p{margin:var(--space-3) 0 0;color:var(--c-ink-soft)}.foot .logo + p{margin-top:var(--space-3);max-width:24rem}.foot address{margin:var(--space-3) 0 0;font-style:normal;color:var(--c-ink-soft)}.foot a,.foot .link-btn{color:var(--c-ink);text-decoration:none}.foot a:hover,.foot .link-btn:hover{color:var(--c-brand-text)}.foot .link-btn:hover{text-decoration:underline;text-underline-offset:0.2em}.foot li a,.foot .link-btn,.foot .foot-link{display:inline-flex;align-items:center;min-height:32px}.foot .link-btn{padding:0;background:none;border:0;font:inherit;cursor:pointer}.foot .link-btn[hidden]{display:none}.foot-base{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--c-line);display:grid;gap:var(--space-3)}.foot-legal-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-5)}.foot-legal-row p{margin:0;font-size:0.875rem}.foot-legal-row ul{display:flex;flex-wrap:wrap;gap:0 var(--space-5)}.foot-legal-row a,.foot-legal-row .link-btn{font-size:0.875rem}@container (max-width:1000px){.foot-brand, .foot-sols, .foot-kd, .foot-contact {
    grid-column:span 6}}
@container (max-width:640px){.foot-brand, .foot-sols, .foot-kd, .foot-contact {
    grid-column:1/-1}/* form feedback */}

.form-status{grid-column:1/-1;margin:0;min-height:1.5em;font-weight:700;color:var(--c-on-dark)}.form-status[data-state=ok]{color:#8fe0b0}.form-status[data-state=error]{color:#ffb4b4}.form .btn[disabled]{opacity:0.6;cursor:progress}.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}@media (prefers-reduced-motion: reduce){.ecc *,.ecc *::before,.ecc *::after{transition:none !important;scroll-behavior:auto !important}}:root{scroll-behavior:smooth;scroll-padding-top:88px}/* solution without a page yet (mega menu / home) */.mg .mg-off{display:flex;gap:var(--space-3);padding:var(--space-2) 0;min-height:40px;align-items:baseline;color:var(--c-ink-soft)}/* testimonials: dark band, one highlighted card at a time. Drag/swipe or use the dots; no buttons. */.testi{background:var(--c-dark);color:var(--c-on-dark)}.testi .eyebrow{color:var(--c-on-dark)}.testi .eyebrow::before{background:var(--c-brand-on-dark)}.testi h2{color:var(--c-on-dark)}.testi .lead{color:var(--c-on-dark-soft)}.quotes-in{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1.3fr);gap:var(--space-7);align-items:center}.quotes-head{display:grid;gap:var(--space-4);justify-items:start}.slider{min-width:0}.ecc .slides{display:flex;gap:var(--space-7);padding:0 var(--space-5) var(--space-5) 0;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;cursor:grab;touch-action:pan-y pinch-zoom}.slides::-webkit-scrollbar{display:none}.is-js .slides{display:block;overflow:hidden;scroll-snap-type:none;cursor:grab;touch-action:pan-y pinch-zoom}.is-js.is-dragging .slides{cursor:grabbing;-webkit-user-select:none;-moz-user-select:none;user-select:none}.track{display:flex;gap:var(--space-7);will-change:transform;transition:transform 0.6s cubic-bezier(0.22, 0.7, 0.2, 1)}@media (prefers-reduced-motion: reduce){.track{transition:none}}.slide{position:relative;isolation:isolate;flex:0 0 100%;scroll-snap-align:start;min-width:0}.slide::before{content:"";position:absolute;inset:var(--space-4) calc(-1 * var(--space-4)) calc(-1 * var(--space-4)) var(--space-4);border:2px solid var(--c-brand-on-dark);border-radius:var(--r-card);z-index:-1}.ecc .quote{display:flex;flex-direction:column;gap:var(--space-4);height:100%;margin:0;padding:var(--space-5) var(--space-6);background:var(--c-brand);color:#fff;border-radius:var(--r-card)}.quote figcaption{display:flex;align-items:center;gap:var(--space-3);font-size:var(--fs-small);color:#fff}.quote figcaption img{width:56px;height:56px;-o-object-fit:contain;object-fit:contain;background:#fff;padding:4px;border-radius:50%;flex:none;pointer-events:none}.quote figcaption b{display:block;font-size:1.0625rem}.quote-mark{margin-left:auto;width:32px;height:32px;opacity:0.7}.quote blockquote{margin:0}.quote blockquote p{font-size:1.125rem;line-height:1.6;color:#fff}.dots{display:flex;gap:var(--space-1);margin-top:var(--space-4)}.dots[hidden]{display:none}.dots button{display:grid;place-items:center;width:28px;height:28px;padding:0;background:none;border:0;cursor:pointer}.dots button::before{content:"";width:10px;height:10px;border-radius:50%;border:2px solid var(--c-on-dark-soft);transition:background 0.15s,border-color 0.15s,transform 0.15s}.dots button:hover::before{border-color:#fff}.dots button[aria-current=true]::before{background:var(--c-brand-on-dark);border-color:var(--c-brand-on-dark);transform:scale(1.25)}@container (max-width:860px){.quotes-in {
    grid-template-columns:1fr;gap:var(--space-6)}.ecc .quote{padding:var(--space-5)}/* logo walls (clients, media): logos come on white backgrounds, so multiply blends them into any surface */}

.logos{display:grid;grid-template-columns:repeat(4, minmax(0, 1fr));gap:var(--space-5) var(--space-6);align-items:center}.logos li{display:grid;place-items:center}.logos img{display:block;width:100%;height:auto;max-height:72px;-o-object-fit:contain;object-fit:contain;mix-blend-mode:multiply;opacity:0.65;transition:opacity 0.3s}.logos img:hover{filter:none;opacity:1}.logos--media{grid-template-columns:repeat(4, minmax(0, 1fr))}.logos--media img{max-height:96px}@container (max-width:860px){.logos {
    grid-template-columns:repeat(2, minmax(0, 1fr))}.logos--media{grid-template-columns:repeat(2, minmax(0, 1fr))}/* Mobile lockup: the reference board uses fixed pixel crops (343px wide), which clip on 375px phones once the
   side padding is applied. Same crops, but proportional to the available width (--lk-w, capped at 343px). */}

@container (max-width:760px){.lk-m {
    --lk-w:min(343px,calc(100cqi - 2 * var(--pad)))}.lk-r1{width:var(--lk-w);height:calc(var(--lk-w) * 0.13994)}.lk-r1 img{width:calc(var(--lk-w) * 1.51603)}.lk-r2{width:calc(var(--lk-w) * 0.60058);height:calc(var(--lk-w) * 0.16327)}.lk-r2 img{width:calc(var(--lk-w) * 1.76385);margin-left:calc(var(--lk-w) * -1.16327)}/* process timeline: icon inside each square marker (44px box, the line runs behind it) */}

.steps li{padding-top:calc(44px + var(--space-4))}.steps li::before{top:21px}.steps li::after{top:0;width:44px;height:44px}.steps .step-ic{position:absolute;top:0;left:0;z-index:1;box-sizing:border-box;width:44px;height:44px;padding:10px;color:var(--c-sprout)}@container (max-width:860px){.ecc .steps {
    padding-left:68px}.steps li{padding:0 0 var(--space-6)}.steps li::before{top:44px;bottom:0;left:-47px;right:auto;width:2px;height:auto}.steps li:last-child::before{background:linear-gradient(var(--c-brand), transparent)}.steps li::after{left:-68px;top:0}.steps .step-ic{left:-68px}.steps li{min-height:44px}/* `.ecc ol{margin:0}` (specificity 0,1,1) was cancelling the intended top margin of .steps: restore it */}

.ecc .steps{margin-top:var(--space-7)}/* Cloudflare Turnstile widget inside the dark form */.form .cf-turnstile{min-height:65px}/* "Kit Digital" must never be shown in capitals (the programme manual marks "KIT DIGITAL" as wrong).
   The only exception is the institutional strip, which is an image. */.eyebrow.no-caps,.foot h2.no-caps{text-transform:none;letter-spacing:0}.eyebrow.no-caps{font-size:var(--fs-small)}.foot h2.no-caps{font-size:0.875rem}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}/* home: direct answer block */.answer-text{font-size:1.125rem;line-height:1.65;color:var(--c-ink);max-width:46rem}/* home: solution cards (data line, link label, cards without a page yet) */.sol .sol-data{margin-top:auto;font-size:0.875rem;font-weight:700;color:var(--c-ink)}.sol .sol-more{display:inline-flex;align-items:center;min-height:24px;font-size:0.9375rem;font-weight:700;color:var(--c-brand-text);text-decoration:none}.sol a.sol-more{position:relative;z-index:1;text-decoration:underline;text-underline-offset:0.2em}.sol a.sol-more:hover{color:var(--c-ink)}.grp-note{margin:0 0 var(--space-5);max-width:46rem;font-size:0.9375rem;color:var(--c-ink-soft)}/* No page: no link effect on the card (only the "Solicita información" link inside it is interactive) */.sol--static:hover{border-top-color:var(--c-ink);border-top-width:1px;padding-top:var(--space-5)}.sol--static:hover .n{color:var(--c-ink)}/* home: notes under the segments table */.note{margin:var(--space-3) 0 0;max-width:52rem;font-size:0.875rem;line-height:1.55;color:var(--c-ink-soft)}.tbl-wrap + .note{margin-top:var(--space-4)}/* segments table: "Segmento IV" must not wrap (it broke the underline of the label) */.tbl tbody th{white-space:nowrap}.tbl .seg{white-space:nowrap}/* solution landings (/{key}): breadcrumb, page hero, feature list, AI training block, key-value sheets */.hero--page{padding:var(--space-5) 0 var(--space-7)}.hero--page h1{font-size:clamp(2.25rem, 6.5cqi, 3.75rem);max-width:none;margin-bottom:var(--space-5)}.hero--page .lead{font-size:1.25rem}.crumbs{margin-bottom:var(--space-6)}.crumbs ol{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-2);font-size:var(--fs-small);color:var(--c-ink-soft)}.crumbs li + li::before{content:"›";content:"›"/"";margin-right:var(--space-2)}.crumbs a{display:inline-flex;align-items:center;min-height:24px;color:var(--c-brand-text)}.crumbs [aria-current]{color:var(--c-ink);font-weight:700}.hero-cta .link-more{display:inline-flex;align-items:center;min-height:44px;font-weight:700;color:var(--c-brand-text)}.hero--page .ficha h2{font-size:var(--fs-small)}.feats{display:grid;grid-template-columns:repeat(auto-fit, minmax(min(100%, 300px), 1fr));gap:var(--space-6)}.feat{display:flex;flex-direction:column;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--c-ink)}.feat h3{font-size:1.125rem;line-height:1.2}.feat p{font-size:1rem;color:var(--c-ink-soft)}.feat .tags{margin-top:auto}.ia{display:grid;gap:var(--space-6);border-top:3px solid var(--c-ink);padding-top:var(--space-5)}.ia-stats{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-7)}.ia-stats b{display:block;font-size:var(--fs-display);font-weight:900;letter-spacing:-0.04em;line-height:1;color:var(--c-ink)}.ia-stats span{display:block;margin-top:var(--space-2);font-weight:700;color:var(--c-ink-soft)}.kv{border-top:3px solid var(--c-ink)}.kv > div{display:grid;grid-template-columns:minmax(9rem, 14rem) minmax(0, 1fr);gap:var(--space-4);padding:var(--space-4) 0;border-bottom:1px solid var(--c-line)}.kv dt{font-size:var(--fs-small);font-weight:700;color:var(--c-ink-soft);padding-top:0.2em}.kv dd{max-width:46rem;overflow-wrap:anywhere}@container (max-width:560px){.kv > div {
    grid-template-columns:1fr;gap:var(--space-1)}/* the landing FAQ puts the question in an h3 inside <summary> */}

.faq summary h3{font-size:inherit;font-weight:inherit;letter-spacing:0;line-height:1.3;text-wrap:pretty}/* "Borrador" flag: outside the page flow, only rendered for unpublished landings outside production */.draft-flag{position:fixed;left:var(--space-4);bottom:var(--space-4);z-index:30;padding:var(--space-2) var(--space-4);background:var(--c-ink);color:#fff;border:2px solid #ffd166;border-radius:var(--r-tag);font-size:var(--fs-small);pointer-events:none}.draft-flag strong{color:#ffd166}#bono .tbl caption{padding-inline:0}/* official lockup strip: centred and as wide as the section (same image, only its size changes) */.lockup{justify-content:center}.lockup .lk-full{width:100%;height:auto}.lockup .lk-m{margin-inline:auto}.lockup .lk-m > div{margin-inline:auto}/* FAQ in two columns (each column is its own list, so opening one answer does not move the other column) */.faq-wide{display:grid;gap:var(--space-7)}.faq-cols{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:0 var(--space-7);align-items:start}.faq-cols .faq details p{padding-right:0}@container (max-width:860px){.faq-wide {
    gap:var(--space-6)}.faq-cols{grid-template-columns:1fr}.faq-cols .faq + .faq details:first-child{border-top:0}/* legal pages: the text keeps its own markup (h3, p, ul/ol, dl), only its presentation changes */}

.legal{max-width:52rem}.legal h3{margin:var(--space-6) 0 var(--space-3);font-size:1.5rem}.legal > h3:first-child{margin-top:0}.legal p,.legal li{margin:0 0 var(--space-4);font-size:1rem;line-height:1.7;color:var(--c-ink)}.legal ul,.legal ol{margin:0 0 var(--space-4);padding-left:var(--space-5)}.legal ul{list-style:disc}.legal ol{list-style:decimal}.legal dl{margin:0 0 var(--space-5)}.legal dt{margin-top:var(--space-3);font-weight:700}.legal dd{margin:0 0 var(--space-2);overflow-wrap:anywhere}/* back to top: fixed square button, bottom right, shown after scrolling */.to-top{position:fixed;right:var(--space-4);bottom:var(--space-4);z-index:30;display:grid;place-items:center;width:48px;height:48px;padding:0;background:var(--c-ink);color:#fff;border:0;border-bottom:3px solid var(--c-brand);border-radius:var(--r-btn);cursor:pointer;transition:background 0.15s}.to-top[hidden]{display:none}.to-top:hover{background:var(--c-brand-dark)}.to-top .ic{transform:rotate(-90deg)}.on-dark .to-top:focus-visible,.to-top:focus-visible{outline:3px solid var(--c-brand-on-dark);outline-offset:3px}/* Links: an underline that draws itself on hover. Not on buttons, the logo, the skip link, or links with .nl
   (navbar and menus, solution cards: the whole card is the link there). It uses currentColor, so it also works on
   dark backgrounds; on hover-out the line retracts to the right (the position resets after the size transition).
   Keep the selector to simple chained :not(): the build's clean-css 4 mangles selector lists and descendant
   selectors inside :not(), which silently broke the minified stylesheet in production. */.ecc a:not(.btn):not(.logo):not(.skip):not(.nl){padding-bottom:2px;background-image:linear-gradient(currentColor 0 0);background-repeat:no-repeat;background-position:0 90%;background-size:0% 2px;transition:background-size 0.3s,background-position 0s 0.3s;text-decoration:none}.ecc a:not(.btn):not(.logo):not(.skip):not(.nl):hover{background-position:100% 90%;background-size:100% 2px}@media (prefers-reduced-motion: reduce){.ecc a:not(.btn):not(.logo):not(.skip):not(.nl){transition:none}}/* group icons are images (webp), not SVG symbols: keep them proportional */.ic--img{display:block;-o-object-fit:contain;object-fit:contain}/* the images have built-in padding, so they are drawn larger than the old line icons */.sol .ic--img{width:48px;height:48px;top:var(--space-3)}.grp-mark .ic--img{width:44px;height:44px}.mg-t .ic--img{width:32px;height:32px}@container (max-width:640px){.grp-mark .ic--img {
    width:30px;height:30px}}
.steps .step-ic.ic--img{padding:4px}/* home hero: decorative background video under the scrim; with reduced motion only the dark fallback remains */.hero--bg .hero-bg video{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;pointer-events:none}@media (prefers-reduced-motion: reduce){.hero--bg .hero-bg{display:none}}/* Floating labels (CSS only). The label sits over the field like a placeholder (the fields carry placeholder=" "
   so :placeholder-shown tells empty from filled) and moves up, smaller, on focus or when the field has a value.
   Selects always show a value, so their label is always up. Motion is switched off by the reduced-motion rule. */.form .fld{position:relative}.form .fld input,.form .fld select,.form .fld textarea{padding:1.375rem var(--space-2) 0.375rem;min-height:56px}.form .fld textarea{min-height:120px}.form .fld label{position:absolute;left:var(--space-2);top:0;max-width:calc(100% - 2 * var(--space-2));overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:56px;font-size:1.0625rem;font-weight:500;color:#a5b0d0;transform-origin:left top;pointer-events:none;transition:transform 0.25s ease,color 0.25s ease}.form .fld:focus-within label,.form .fld:has(input:not(:placeholder-shown)) label,.form .fld:has(textarea:not(:placeholder-shown)) label,.form .fld:has(input:-webkit-autofill) label,.form .fld:has(select) label{transform:translateY(-0.5rem) scale(0.75);font-weight:700;color:var(--c-on-dark-soft)}.form .fld:focus-within label{color:var(--c-brand-on-dark)}/* navbar logo: same colours as the footer one. `.ecc a` (blue) outranks `.logo`, so the letters came out blue; they
   are ink at rest and turn brand blue on hover (the dot is always blue). */.nav .logo{color:var(--c-ink)}.nav .logo:hover{color:var(--c-brand-text)}