/* Última actualización: 13/11/2026 (hora local) */

:root{--bg:#fff;--surface:#fff;--title:#0B3E78;--line:transparent;--line2:#c4d4e6;--hdr:#e5e7eb;--field:#d1d5db;--azul:#0B3E78;--rojo:#E30613;--cel:#009FE3;--f1:#DCEAF7;--f2:#E8F6FC;--f3:#F2F4F5;--gris:#6B7280;--txt:#252525;
box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
*,*::before,*::after{box-sizing:inherit}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--bg);transition:background .3s,color .3s;color:var(--txt);font:16px/1.65 "Arial Nova",Arial,sans-serif}
h1,h2,h3,.btn,nav a{font-family:Montserrat,"Arial Nova",Arial,sans-serif}
h1,h2,h3{color:var(--title);line-height:1.2;margin:0 0 .6em}
a{color:var(--cel)}
:focus-visible{outline:3px solid var(--cel);outline-offset:3px}
.wrap{max-width:1120px;margin:0 auto;padding:0 22px}
section{padding:84px 0}
h2{font-size:clamp(1.7rem,3.5vw,2.4rem);font-weight:800}
.lead{color:var(--gris);max-width:60ch}
.btn{display:inline-block;background:var(--rojo);color:#fff;border:0;padding:14px 28px;border-radius:8px;font-weight:700;font-size:1rem;text-decoration:none;cursor:pointer;transition:transform .2s,box-shadow .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(227,6,19,.3)}
.btn.sec{background:transparent;border:2px solid #fff;color:#fff}
.btn.sec:hover{box-shadow:none;background:rgba(255,255,255,.12)}
/* nav */
header{position:fixed;inset:0 0 auto 0;background:var(--bg);z-index:50;box-shadow:0 1px 0 var(--hdr);padding-top:env(safe-area-inset-top,0px)}
.bar{display:flex;align-items:center;justify-content:space-between;height:68px}
.logo{font:800 1.7rem Montserrat,Arial,sans-serif;color:var(--title);text-decoration:none;letter-spacing:-.5px}
.logo img{height:44px;width:auto;display:block}
footer .logo img{height:52px}
nav{display:flex;gap:26px;align-items:center}
nav a{color:var(--txt);text-decoration:none;font-weight:600;font-size:.92rem;padding:4px 0;border-bottom:2px solid transparent;transition:.2s}
nav a:hover,nav a.on{color:var(--title);border-color:var(--cel)}
nav .btn{padding:10px 20px;color:#fff;border:0}
.burger{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer;padding:10px}
.burger span{display:block;height:3px;background:var(--title);margin:5px 0;border-radius:2px;transition:.3s}
/* hero */
.hero{background:var(--azul);color:#fff;padding:150px 0 100px;position:relative;overflow:hidden}
.hero h1{color:#fff;font-size:clamp(2.2rem,5.5vw,3.7rem);font-weight:800;max-width:16ch}
.hero p{max-width:52ch;color:#DCEAF7;font-size:1.1rem}
.hero .acts{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}
.hero-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center}
#net{width:100%;height:340px;display:block}
.stats{display:flex;gap:40px;flex-wrap:wrap;margin-top:48px}
.stats div{border-left:3px solid var(--cel);padding-left:14px}
.stats strong{display:block;font:800 1.8rem Montserrat,Arial,sans-serif}
.stats span{color:#DCEAF7;font-size:.9rem}
/* soluciones */
#soluciones{background:var(--f3)}
.tabs{display:flex;gap:10px;flex-wrap:wrap;margin:28px 0 0}
.tab{font:600 .95rem Montserrat,Arial,sans-serif;padding:12px 22px;border-radius:999px;border:2px solid var(--title);background:var(--surface);color:var(--title);cursor:pointer;transition:.2s}
.tab:hover{background:var(--f1)}
.tab[aria-selected=true]{background:var(--azul);color:#fff}
.panel{background:var(--surface);border-radius:14px;padding:36px;margin-top:18px;display:none;grid-template-columns:1fr 1fr;gap:32px;border-top:5px solid var(--cel)}
.panel.on{display:grid;animation:fade .35s}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.panel ul{margin:0;padding:0;list-style:none}
.panel li{padding:8px 0 8px 30px;position:relative}
.panel li::before{content:"";position:absolute;left:0;top:14px;width:16px;height:16px;border-radius:50%;background:var(--cel)}
/* servicios */
#servicios{background:#fff}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:36px}
.card{background:var(--f2);border-radius:14px;padding:28px;transition:transform .25s,background .25s,box-shadow .25s;cursor:default}
.card:hover{transform:translateY(-6px);background:var(--azul);box-shadow:0 14px 30px rgba(11,62,120,.25)}
.card:hover h3,.card:hover p{color:#fff}
.card svg{width:44px;height:44px;stroke:var(--cel);fill:none;stroke-width:1.8;margin-bottom:14px}
.card h3{font-size:1.1rem;transition:color .25s}
.card p{margin:0;color:var(--gris);font-size:.95rem;transition:color .25s}
/* aliados */
#aliados{background:var(--f1)}
.allies{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:36px}
.ally{background:#fff;border-radius:12px;height:120px;display:grid;place-items:center;padding:18px 26px;border:1px solid var(--line2);filter:grayscale(1);opacity:.8;transition:.25s}
.ally img{max-width:100%;max-height:72px;object-fit:contain;display:block}
.ally:hover{filter:none;opacity:1;border-color:var(--cel);transform:scale(1.03);box-shadow:0 10px 24px rgba(11,62,120,.12)}
/* nosotros */
#nosotros{background:#fff}
.two{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.vals{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.vals div{background:var(--f3);border-radius:12px;padding:20px}
.vals b{font-family:Montserrat,Arial,sans-serif;color:var(--title);display:block}
.vals small{color:var(--gris);font-size:.88rem}
/* contacto */
#contacto{background:var(--f2)}
form{background:var(--surface);border-radius:14px;padding:32px;display:grid;gap:16px}
label{font-weight:700;font-size:.9rem;display:block;margin-bottom:5px}
input,select,textarea{width:100%;font:inherit;padding:12px 14px;border:2px solid var(--field);border-radius:8px;background:var(--bg);color:var(--txt)}
input:focus,select:focus,textarea:focus{border-color:var(--cel);outline:none}
.err{color:var(--rojo);font-size:.82rem;min-height:1.1em;display:block}
.bad{border-color:var(--rojo)}
.ok{display:none;background:var(--f2);border-left:5px solid var(--cel);padding:16px;border-radius:8px;color:var(--title);font-weight:700}
.info p{margin:0 0 10px;color:var(--gris)}
.info strong{color:var(--title)}
/* footer */
footer{background:var(--bg);border-top:5px solid var(--azul);padding:40px 0;color:var(--gris);font-size:.9rem}
.foot{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.foot a{margin-right:18px;text-decoration:none;font-weight:600}
#up{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));width:46px;height:46px;border-radius:50%;border:0;background:var(--azul);color:#fff;font-size:1.3rem;cursor:pointer;opacity:0;pointer-events:none;transition:.3s;z-index:40}
#up.show{opacity:1;pointer-events:auto}
.rv{opacity:0;transform:translateY(22px);transition:opacity .6s,transform .6s}
.rv.in{opacity:1;transform:none}
@media(max-width:860px){
 .burger{display:block}
 nav{position:absolute;top:100%;left:0;right:0;background:var(--bg);flex-direction:column;align-items:stretch;gap:0;padding:8px 22px 20px;box-shadow:0 12px 20px rgba(0,0,0,.08);display:none}
 nav.open{display:flex}
 nav a{padding:14px 0;border-bottom:1px solid #eee}
 .hero-grid,.two,.panel{grid-template-columns:1fr}
 #net{height:220px}
 .grid3,.allies{grid-template-columns:1fr 1fr}
 section{padding:64px 0}
}
@media(max-width:520px){.grid3,.allies,.vals{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.rv{opacity:1;transform:none}}

.phero{background:var(--azul);color:#fff;padding:130px 0 60px}.phero h1{color:#fff;font-size:clamp(2rem,4.5vw,3rem);font-weight:800;margin:0 0 .3em}.phero p{color:#DCEAF7;max-width:60ch;margin:0}
.cta{background:var(--azul);color:#fff;text-align:center;padding:64px 0}.cta h2{color:#fff}.cta p{color:#DCEAF7;margin:0 auto 24px;max-width:56ch}
.card a{display:inline-block;margin-top:14px;font-weight:700;font-size:.9rem;text-decoration:none;color:var(--cel);transition:color .25s}.card:hover a{color:#fff}
.svc{display:grid;grid-template-columns:.9fr 1.1fr;gap:32px;padding:36px 0;border-top:1px solid #e5e7eb;align-items:start}
.svc .num{font:800 .9rem Montserrat,Arial,sans-serif;color:var(--cel)}.svc h3{font-size:1.3rem}.svc p{color:var(--gris);margin:0}
.svc ul{margin:0;padding:0;list-style:none}.svc li{padding:6px 0 6px 28px;position:relative}.svc li::before{content:"";position:absolute;left:0;top:12px;width:14px;height:14px;border-radius:50%;background:var(--cel)}
.mv{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:30px}.mv div{background:var(--f2);border-radius:14px;padding:28px;border-top:5px solid var(--cel)}.mv p{margin:0;color:var(--gris)}
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:30px}.member{text-align:center;background:var(--f3);border-radius:14px;padding:28px}.member p{margin:0;color:var(--gris);font-size:.9rem}
.avatar{width:96px;height:96px;border-radius:50%;background:var(--f1);color:var(--title);display:grid;place-items:center;font:800 1.6rem Montserrat,Arial,sans-serif;margin:0 auto 14px}
.member b{font-family:Montserrat,Arial,sans-serif;color:var(--title);display:block}
@media(max-width:860px){.svc,.mv,.team{grid-template-columns:1fr}.phero{padding-top:110px}}
:root[data-theme="dark"]{--bg:#0B1522;--surface:#142A44;--title:#8FD0F5;--txt:#E6EDF5;--gris:#9FB0C3;--f1:#0F2239;--f2:#10243C;--f3:#0D1A2B;--line:#22405F;--line2:#2A4A6B;--hdr:#1d3450;--field:#2A4A6B;color-scheme:dark}
.card,.vals div,.mv div,.member,.panel,form{box-shadow:inset 0 0 0 1px var(--line)}
.logo .lg-d{display:none}[data-theme="dark"] .logo .lg-d{display:block}[data-theme="dark"] .logo .lg-l{display:none}
.theme{order:3;margin-left:18px;width:42px;height:42px;border-radius:50%;border:2px solid var(--line2);background:transparent;color:var(--title);display:grid;place-items:center;cursor:pointer;padding:0;transition:.2s}
.theme:hover{border-color:var(--cel);color:var(--cel)}.theme svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.theme .i-sun{display:none}[data-theme="dark"] .theme .i-sun{display:block}[data-theme="dark"] .theme .i-moon{display:none}
nav{order:2}.burger{order:4}
.soc{display:flex;gap:10px;flex-wrap:wrap}.soc a{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:2px solid var(--line2);color:var(--title);margin:0;transition:.2s}
.soc a:hover{background:var(--cel);border-color:var(--cel);color:#fff}.soc svg{width:20px;height:20px;fill:currentColor}.soc svg.st{fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round}
.info .soc{margin-top:22px}
.sedes{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:36px}
.badge{display:inline-block;background:var(--rojo);color:#fff;font:700 .72rem Montserrat,Arial,sans-serif;padding:3px 10px;border-radius:999px;margin-bottom:10px}
@media(max-width:860px){.theme{margin-left:auto}.burger{margin-left:6px}.sedes{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.sedes{grid-template-columns:1fr}}[data-theme="dark"] .ally{opacity:1}
.sedes .card{position:relative}.sedes .badge{position:absolute;top:16px;right:16px;margin:0}

/* ===== MEJORAS VISUALES ===== */
main{animation:pageIn .6s cubic-bezier(.2,.7,.2,1)}
@keyframes pageIn{from{opacity:0;transform:translateY(14px)}}
html.leaving main,html.leaving footer{opacity:0;transform:translateY(-10px);transition:opacity .25s,transform .25s}
html.tt *,html.tt *::before,html.tt *::after{transition:background-color .5s,color .5s,border-color .5s,box-shadow .5s!important}
#prog{position:fixed;top:0;left:0;height:3px;width:100%;transform-origin:left;transform:scaleX(0);background:linear-gradient(90deg,var(--cel),var(--rojo));z-index:60;pointer-events:none}
#glow{position:fixed;left:0;top:0;width:560px;height:560px;margin:-280px 0 0 -280px;border-radius:50%;background:radial-gradient(circle,rgba(0,159,227,.13),transparent 62%);pointer-events:none;z-index:1;opacity:0;transition:opacity .4s}
header{background:color-mix(in srgb,var(--bg) 85%,transparent);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);transition:box-shadow .3s}
.bar{transition:height .3s}.logo img{transition:height .3s}
header.sc{box-shadow:0 8px 30px rgba(11,62,120,.12)}header.sc .bar{height:58px}header.sc .logo img{height:36px}
nav a:not(.btn){position:relative;border-bottom:0!important}
nav a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:2px;background:linear-gradient(90deg,var(--cel),var(--rojo));transform:scaleX(0);transition:transform .3s}
nav a:not(.btn):hover::after,nav a.on::after{transform:scaleX(1)}
.burger[aria-expanded=true] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.burger[aria-expanded=true] span:nth-child(2){opacity:0}
.burger[aria-expanded=true] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
nav.open{animation:navin .3s}@keyframes navin{from{opacity:0;transform:translateY(-10px)}}
.btn{position:relative;overflow:hidden}
.btn::after{content:"";position:absolute;top:0;left:-75%;width:50%;height:100%;background:linear-gradient(120deg,transparent,rgba(255,255,255,.4),transparent);transform:skewX(-20deg);transition:left .7s}
.btn:hover::after{left:130%}.btn:active{transform:scale(.97)}
/* hero */
.hero,.phero{position:relative;overflow:hidden}
.hero .wrap,.phero .wrap{position:relative;z-index:1}
.hero::before,.phero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse at 70% 40%,#000 5%,transparent 75%);mask-image:radial-gradient(ellipse at 70% 40%,#000 5%,transparent 75%);animation:gridmove 24s linear infinite}
@keyframes gridmove{to{background-position:56px 56px}}
.orb,.phero::after{position:absolute;border-radius:50%;filter:blur(75px);pointer-events:none}
.o1{width:440px;height:440px;background:var(--cel);opacity:.45;top:-140px;right:-60px;animation:f1 14s ease-in-out infinite alternate}
.o2{width:340px;height:340px;background:var(--rojo);opacity:.22;bottom:-160px;left:32%;animation:f2 18s ease-in-out infinite alternate}
.phero::after{content:"";width:380px;height:380px;background:var(--cel);opacity:.35;right:-80px;top:-140px;animation:f1 14s ease-in-out infinite alternate}
@keyframes f1{to{transform:translate(-90px,70px) scale(1.15)}}@keyframes f2{to{transform:translate(100px,-50px) scale(1.2)}}
.hero{padding-bottom:120px}
.hero h1{max-width:18ch}
.w{display:inline-block;overflow:hidden;vertical-align:top;padding:.08em 0 .14em;margin:-.08em 0 -.14em}
.w>span{display:inline-block;opacity:0;transform:translateY(-105%);animation:down .55s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--i)*26ms + 120ms)}
@keyframes down{to{transform:none;opacity:1}}
@keyframes up{to{transform:none}}
.hero .rot{font:600 1.2rem Montserrat,Arial,sans-serif;color:#fff;margin:0 0 6px;max-width:none}
.rot b{color:#5CC8F5;font-weight:800;border-right:3px solid var(--rojo);padding-right:4px;animation:caret .8s steps(1) infinite}
@keyframes caret{50%{border-color:transparent}}
#net{height:430px}
.hero .acts{margin-top:22px}
.cue{position:absolute;left:50%;bottom:26px;margin-left:-13px;width:26px;height:42px;border:2px solid rgba(255,255,255,.6);border-radius:14px;z-index:1}
.cue span{position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:#fff;animation:cue 1.6s infinite}
@keyframes cue{0%{opacity:1;transform:none}80%,100%{opacity:0;transform:translateY(16px)}}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,transparent,var(--cel),var(--rojo),var(--cel),transparent);background-size:200% 100%;animation:slide 4s linear infinite}
@keyframes slide{to{background-position:200% 0}}
/* ticker */
.ticker{overflow:hidden;background:var(--bg);border-bottom:1px solid var(--hdr);padding:18px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.tk{display:flex;width:max-content;animation:tick 45s linear infinite}.ticker:hover .tk{animation-play-state:paused}
.tk span{font:700 .82rem Montserrat,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--gris);white-space:nowrap}
.tk span::after{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--rojo);margin:0 34px;vertical-align:middle}
@keyframes tick{to{transform:translateX(-50%)}}
/* títulos y reveal */
h2::after{content:"";display:block;width:60px;height:4px;border-radius:4px;margin-top:12px;background:linear-gradient(90deg,var(--cel),var(--rojo));transform:scaleX(0);transform-origin:left;transition:transform .9s .25s cubic-bezier(.2,.8,.2,1)}
h2.seen::after{transform:scaleX(1)}.cta h2::after{display:none}
.two>.rv:nth-child(1):not(.in){transform:translateX(-36px) translateY(0)}.two>.rv:nth-child(2):not(.in){transform:translateX(36px) translateY(0)}
/* tarjetas */
.card,.member,.mv div,.vals div{position:relative;overflow:hidden}
.card::before,.member::before,.mv div::before,.vals div::before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),rgba(0,159,227,.17),transparent 60%);opacity:0;transition:opacity .3s;pointer-events:none}
.card:hover::before,.member:hover::before,.mv div:hover::before,.vals div:hover::before{opacity:1}
.card svg *{stroke-dasharray:600;stroke-dashoffset:600;transition:stroke-dashoffset 1.4s .3s ease}.card.seen svg *{stroke-dashoffset:0}
.card:hover svg{animation:bob .8s ease-in-out}@keyframes bob{50%{transform:translateY(-5px) scale(1.08)}}
.ally:hover{transform:translateY(-5px) scale(1.04)}
.sedes .card:first-child svg{animation:ping 2.4s infinite}
@keyframes ping{0%{filter:drop-shadow(0 0 0 rgba(0,159,227,.8))}100%{filter:drop-shadow(0 0 16px rgba(0,159,227,0))}}
.panel.on li{animation:fade .45s both}.panel li:nth-child(2){animation-delay:.08s!important}.panel li:nth-child(3){animation-delay:.16s!important}.panel li:nth-child(4){animation-delay:.24s!important}
.tab{transition:.25s}.tab:hover{transform:translateY(-2px)}
.svc{transition:background .3s}.svc:hover{background:linear-gradient(90deg,var(--f2),transparent)}
.svc .num{font-size:2.8rem;line-height:1;display:block;margin-bottom:6px;background:linear-gradient(135deg,var(--cel),var(--rojo));-webkit-background-clip:text;background-clip:text;color:transparent}
.stats div{transition:transform .3s,border-color .3s}.stats div:hover{transform:translateX(6px);border-color:var(--rojo)}
input:focus,select:focus,textarea:focus{box-shadow:0 0 0 4px rgba(0,159,227,.22)}input,select,textarea{transition:border-color .2s,box-shadow .2s}
.ok[style*="block"]{animation:fade .4s}
#up{transition:.3s}#up:hover{transform:translateY(-4px);background:var(--rojo)}
@media(max-width:860px){nav a:not(.btn){border-bottom:1px solid var(--hdr)!important}nav a:not(.btn)::after{display:none}.cue{display:none}#net{height:260px}.hero{padding-bottom:90px}}
@media(prefers-reduced-motion:reduce){.w>span{transform:none;opacity:1;animation:none}.rot .loop-w{transition:none}.card svg *{stroke-dashoffset:0}main{animation:none}#glow{display:none}.tk{animation:none}}
.svc .num{display:inline-block}

/* ===== AJUSTES PARA CELULAR ===== */
.card a{padding:12px 0;margin-top:2px}
.foot div a{display:inline-block;padding:10px 0}
@media(max-width:860px){
 .hero{padding-top:112px}
 .two{gap:32px}
 .panel{padding:26px}
}
@media(max-width:520px){
 section{padding:56px 0}
 .wrap{padding:0 18px}
 .phero{padding:104px 0 44px}
 .hero .acts .btn,.tabs .tab{flex:1 1 100%;text-align:center}
 .hero .acts{gap:12px}
 .stats{gap:20px;margin-top:36px}
 .allies{grid-template-columns:1fr 1fr;gap:12px}.ally{height:88px;padding:12px 16px}.ally img{max-height:52px}
 .sedes{grid-template-columns:1fr 1fr;gap:14px}.sedes .card{padding:20px}.sedes .badge{position:static;margin-bottom:8px}
 .vals{grid-template-columns:1fr 1fr;gap:12px}.vals div{padding:16px}
 .grid3 .card{padding:22px}
 .panel{padding:22px}form{padding:22px}
 .svc{gap:14px;padding:28px 0}
 .foot{flex-direction:column;align-items:flex-start}
 .cta{padding:52px 0}
}
@media(max-width:360px){.hero h1{font-size:2rem}.sedes{grid-template-columns:1fr}}

.swipe{display:none}
@media(max-width:520px){
 .swipe{display:block;margin:18px 0 0;font-size:.85rem;color:var(--gris);font-weight:600}
 #servicios .grid3{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;margin:12px -22px 0;padding:6px 22px 18px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
 #servicios .grid3::-webkit-scrollbar{display:none}
 #servicios .grid3 .card{flex:0 0 82%;scroll-snap-align:center}
 .hero h1{font-size:2.1rem}.stats{gap:18px}.stats strong{font-size:1.5rem}
 .btn{padding:14px 22px}.acts .btn{width:100%;text-align:center}
 .phero{padding-bottom:44px}.panel{padding:24px}
}
@media(hover:none){.card:hover{transform:none}}
html,body{overflow-x:clip}
@media(max-width:860px){.two>.rv:nth-child(1):not(.in),.two>.rv:nth-child(2):not(.in){transform:translateY(22px)}}
@media(hover:none){.ally{filter:none;opacity:1}}

.langwrap{order:3;position:relative;margin-left:18px}.theme{margin-left:10px}
.lang{height:42px;padding:0 13px;border-radius:21px;border:2px solid var(--line2);background:transparent;color:var(--title);font:700 .8rem Montserrat,Arial,sans-serif;display:flex;align-items:center;gap:7px;cursor:pointer;transition:.2s}
.lang:hover{border-color:var(--cel);color:var(--cel)}.lang svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.langmenu{position:absolute;right:0;top:calc(100% + 10px);background:var(--surface);border:1px solid var(--line2);border-radius:12px;padding:6px;min-width:150px;box-shadow:0 14px 34px rgba(0,0,0,.2);display:none;z-index:70}
.langmenu.open{display:block;animation:fade .2s}
.langmenu button{display:block;width:100%;text-align:left;background:none;border:0;padding:10px 12px;border-radius:8px;font:600 .9rem Montserrat,Arial,sans-serif;color:var(--txt);cursor:pointer}
.langmenu button:hover,.langmenu button[aria-checked=true]{background:var(--f1);color:var(--title)}
.soc a.wa:hover{background:#25D366;border-color:#25D366;color:#fff}
.btn.wa-btn{background:#25D366;display:inline-flex;align-items:center;gap:10px;margin-top:6px}.btn.wa-btn:hover{box-shadow:0 8px 20px rgba(37,211,102,.35)}
.wa-btn svg{width:20px;height:20px;fill:currentColor}
@media(max-width:860px){.langwrap{margin-left:auto}.theme{margin-left:8px}}
@media(max-width:420px){.lang{padding:0 10px}}
.soc a,footer .foot .soc a{display:flex!important;align-items:center;justify-content:center;margin:0!important}

/* ===== ALIADOS: fabricantes vs partners, logos a color ===== */
.ally,[data-theme="dark"] .ally{filter:none;opacity:1}
.ally img{max-height:none;height:auto;max-width:100%}
.allygrp{margin-top:36px;background:var(--surface);border-radius:16px;padding:26px;box-shadow:inset 0 0 0 1px var(--line2)}
.allygrp .allies{margin-top:0}
.allyhd{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.allyhd p{margin:0;color:var(--gris);font-size:.95rem}
.tag{font:800 .78rem Montserrat,Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:var(--azul);padding:7px 14px;border-radius:999px}
.allygrp.pt{border-left:5px solid var(--rojo)}.allygrp.pt .tag{background:var(--rojo)}
.allygrp:not(.pt){border-left:5px solid var(--cel)}
.allies.mk{grid-template-columns:repeat(5,1fr)}
.allygrp.pt .allies{grid-template-columns:repeat(5,1fr)}
@media(max-width:860px){.allies.mk,.allygrp.pt .allies{grid-template-columns:repeat(3,1fr)}}
@media(max-width:520px){.allies.mk,.allygrp.pt .allies{grid-template-columns:1fr 1fr}.allygrp{padding:18px}.ally img{max-width:88%}}

/* ===== EQUIPOS por país con banderas ===== */
.teams{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:30px}
.tphoto{margin:0;background:var(--surface);border-radius:14px;overflow:hidden;box-shadow:inset 0 0 0 1px var(--line2);transition:transform .3s,box-shadow .3s}
.tphoto:hover{transform:translateY(-6px);box-shadow:0 14px 30px rgba(11,62,120,.18)}
.tph{position:relative;aspect-ratio:4/3;background:var(--f1);overflow:hidden}
.tph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s}.tphoto:hover .tph img{transform:scale(1.05)}
.tph .soon{display:none}
.tph.empty{display:grid;place-items:center;background:linear-gradient(135deg,var(--f1),var(--f2))}
.tph.empty .soon{display:block;font:700 .85rem Montserrat,Arial,sans-serif;color:var(--gris);letter-spacing:.06em;text-transform:uppercase}
.tphoto figcaption{display:flex;align-items:center;gap:14px;padding:16px 20px;border-top:4px solid var(--cel)}
.tphoto figcaption b{display:block;font-family:Montserrat,Arial,sans-serif;color:var(--title)}
.tphoto figcaption small{color:var(--gris);font-size:.88rem}
.flag{display:inline-block;flex:none;width:36px;height:24px;border-radius:4px;overflow:hidden;box-shadow:0 0 0 1px rgba(0,0,0,.12),0 3px 8px rgba(0,0,0,.12);vertical-align:middle;transform:rotate(-4deg);transition:transform .3s}
.flag svg{width:100%;height:100%;display:block}
.tphoto:hover .flag,.sedes .card:hover .flag{transform:rotate(0) scale(1.12)}
.sedes .flag{width:28px;height:19px;margin-right:8px}
.team .member{background:var(--surface)}
@media(max-width:860px){.teams{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.teams{grid-template-columns:1fr}}

/* ===== CASOS DE ÉXITO ===== */
#casos{background:var(--bg)}
.cases{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:36px}
.case{background:var(--f2);border-radius:14px;padding:28px;border-top:5px solid var(--cel);display:flex;flex-direction:column;gap:18px;transition:transform .3s,box-shadow .3s;box-shadow:inset 0 0 0 1px var(--line)}
.case:hover{transform:translateY(-6px);box-shadow:0 14px 30px rgba(11,62,120,.18)}
.case-hd{display:flex;flex-direction:column;gap:10px}
.case h3{font-size:1.45rem;margin:0}
.case .who{margin:4px 0 0;color:var(--txt);font-size:.95rem}
.sector{align-self:flex-start;display:inline-flex;align-items:center;font:700 .76rem Montserrat,Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--title);background:var(--surface);border:1px solid var(--line2);border-radius:999px;padding:5px 12px 5px 6px}
.sector .flag{width:24px;height:16px;margin-right:8px;transform:none}
.kpi{display:flex;align-items:center;gap:16px;background:var(--surface);border-radius:12px;padding:16px 18px}
.kpi strong{font:800 2.4rem/1 Montserrat,Arial,sans-serif;background:linear-gradient(135deg,var(--cel),var(--rojo));-webkit-background-clip:text;background-clip:text;color:transparent;flex:none}
.kpi span{color:var(--gris);font-size:.92rem}
.case dl{margin:0;display:grid;gap:10px}.case dt{font:800 .75rem Montserrat,Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--cel)}.case dd{margin:2px 0 0;color:var(--gris);font-size:.94rem}
.chips{margin:auto 0 0;display:flex;flex-wrap:wrap;gap:8px}.chips span{font-size:.8rem;font-weight:700;color:var(--title);background:var(--f1);border-radius:999px;padding:4px 11px}
.case[hidden]{display:none}
.case .gains{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px}
.case .gains li{font:700 .82rem Montserrat,Arial,sans-serif;color:var(--title);display:flex;align-items:center;gap:6px}
.case .gains li::before{content:"";width:8px;height:8px;border-radius:50%;background:linear-gradient(135deg,var(--cel),var(--rojo))}
.cfilter{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cfilter button{display:inline-flex;align-items:center;gap:7px;font:700 .85rem Montserrat,Arial,sans-serif;padding:9px 15px;border-radius:999px;border:2px solid var(--line2);background:var(--surface);color:var(--title);cursor:pointer;transition:.2s}
.cfilter button:hover{border-color:var(--cel)}
.cfilter button.on{background:var(--azul);border-color:var(--azul);color:#fff}
.cfilter button span:not(.flag){background:rgba(255,255,255,.2);border-radius:999px;padding:0 7px;font-size:.75rem}
.cfilter .flag{width:20px;height:14px;transform:none}
.csep{width:1px;height:26px;background:var(--line2);margin:0 4px}
.ccount{margin:18px 0 0;color:var(--gris);font-size:.92rem}.ccount b{color:var(--title)}
@media(max-width:860px){.cases{grid-template-columns:1fr}}
@media(max-width:520px){.csep{display:none}.cfilter button{padding:8px 12px;font-size:.8rem}}
@media(max-width:520px){.case{padding:22px}.kpi strong{font-size:2rem}}

/* ===== MAPA INTERACTIVO DE SEDES Y EQUIPOS ===== */
.sedes-map-sec{background:var(--bg)}
.smap{display:grid;grid-template-columns:.85fr 1.15fr;gap:24px;margin-top:34px;align-items:stretch}
.smap-map{position:relative;background:var(--azul);border-radius:18px;padding:18px 18px 12px;overflow:hidden;color:#fff;min-height:100%}
.smap-map::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:28px 28px;-webkit-mask-image:radial-gradient(ellipse at 50% 45%,#000 20%,transparent 80%);mask-image:radial-gradient(ellipse at 50% 45%,#000 20%,transparent 80%);pointer-events:none}
.smap-map::after{content:"";position:absolute;width:300px;height:300px;border-radius:50%;background:var(--cel);opacity:.3;filter:blur(70px);top:-120px;right:-100px;pointer-events:none}
.smap-hud{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:8px}
.smap-hud span{font:700 .72rem Montserrat,Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;background:rgba(255,255,255,.1);border:1px solid rgba(92,200,245,.4);padding:5px 10px;border-radius:999px}
.smap-hud b{color:#5CC8F5}
.smap-live i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#2ee59d;margin-right:6px;vertical-align:1px;box-shadow:0 0 0 0 rgba(46,229,157,.7);animation:live 1.8s infinite}
@keyframes live{70%{box-shadow:0 0 0 8px rgba(46,229,157,0)}100%{box-shadow:0 0 0 0 rgba(46,229,157,0)}}
#smapSvg{position:relative;z-index:1;width:100%;height:auto;max-height:560px;display:block;margin:6px auto 0;font-family:Montserrat,Arial,sans-serif;overflow:visible}
#smapSvg .land{fill:rgba(255,255,255,.07);stroke:rgba(92,200,245,.55);stroke-width:1.2;stroke-linejoin:round;transition:fill .4s,stroke .4s}
#smapSvg .land.ctx{fill:rgba(255,255,255,.035);stroke:rgba(92,200,245,.2);stroke-dasharray:2 3}
#smapSvg .land.on{fill:rgba(0,159,227,.28);stroke:#5CC8F5;filter:drop-shadow(0 0 8px rgba(0,159,227,.5))}
#smapSvg .cty{fill:rgba(255,255,255,.42);font-size:9px;font-weight:800;letter-spacing:.18em;text-anchor:middle;pointer-events:none}
#smapSvg .lnk{fill:none;stroke:rgba(92,200,245,.35);stroke-width:1.4;stroke-dasharray:3 5;animation:dash 1.6s linear infinite}
#smapSvg .lnk.on{stroke:#ff4d58;stroke-dasharray:none;stroke-width:1.8;filter:drop-shadow(0 0 4px rgba(227,6,19,.7))}
#smapSvg .pkt{fill:#fff;filter:drop-shadow(0 0 4px #5CC8F5)}
#smapSvg .pin{cursor:pointer;outline:none}
#smapSvg .pin .dot{fill:#fff;stroke:var(--cel);stroke-width:3;transition:fill .3s,stroke .3s}
#smapSvg .pin .core{fill:var(--azul)}
#smapSvg .pin .pulse{fill:none;stroke:#5CC8F5;stroke-width:1.5;opacity:0;transform-origin:0 0}
#smapSvg .pin.on .pulse,#smapSvg .pin.main .pulse{animation:pin 2s ease-out infinite}
@keyframes pin{0%{opacity:.9;transform:scale(.4)}100%{opacity:0;transform:scale(1.5)}}
#smapSvg .pin.on .dot{fill:var(--rojo);stroke:#fff}#smapSvg .pin.on .core{fill:#fff}
#smapSvg .plab rect{fill:rgba(11,31,58,.82);stroke:rgba(92,200,245,.45);transition:fill .3s}
#smapSvg .plab text{fill:#fff;font-size:10.5px;font-weight:700;text-anchor:middle}
#smapSvg .pin.on .plab rect{fill:var(--rojo);stroke:#fff}
#smapSvg .pin:hover .dot{stroke:#fff}
.smap-hint{position:relative;z-index:1;margin:2px 0 0;text-align:center;font-size:.78rem;color:#9fc4e4}
.smap-panel{display:flex;flex-direction:column;gap:14px;min-width:0}
.smap-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.smap-tabs button{display:flex;align-items:center;justify-content:center;gap:8px;font:700 .88rem Montserrat,Arial,sans-serif;padding:11px 8px;border-radius:12px;border:2px solid var(--line2);background:var(--surface);color:var(--title);cursor:pointer;transition:.25s}
.smap-tabs button:hover{border-color:var(--cel);transform:translateY(-2px)}
.smap-tabs button[aria-selected=true]{background:var(--azul);border-color:var(--azul);color:#fff}
.smap-tabs .flag{width:22px;height:15px;transform:none}
.smap-card{flex:1;background:var(--surface);border-radius:18px;overflow:hidden;box-shadow:inset 0 0 0 1px var(--line2),0 14px 34px rgba(11,62,120,.1);display:flex;flex-direction:column}
.smap-card.in .smap-ph img,.smap-card.in .smap-soon{animation:smapIn .6s cubic-bezier(.2,.8,.2,1)}
.smap-card.in .smap-body>*{animation:fade .5s both}.smap-card.in .smap-body>*:nth-child(2){animation-delay:.06s}.smap-card.in .smap-body>*:nth-child(3){animation-delay:.12s}.smap-card.in .smap-body>*:nth-child(4){animation-delay:.18s}.smap-card.in .smap-body>*:nth-child(5){animation-delay:.24s}
@keyframes smapIn{from{opacity:0;transform:scale(1.06)}}
.smap-ph{position:relative;aspect-ratio:16/9;background:var(--f1);overflow:hidden}
.smap-ph img{width:100%;height:100%;object-fit:cover;display:block}
.smap-ph.empty{background:linear-gradient(135deg,var(--f1),var(--f2))}
.smap-soon{height:100%;display:grid;place-content:center;justify-items:center;text-align:center;gap:6px;padding:20px;color:var(--gris)}
.smap-soon svg{width:54px;height:54px;fill:none;stroke:var(--cel);stroke-width:1.6;stroke-linecap:round}
.smap-soon b{font-family:Montserrat,Arial,sans-serif;color:var(--title);text-transform:uppercase;letter-spacing:.08em;font-size:.85rem}
.smap-soon small{font-size:.85rem}
.smap-flag{position:absolute;left:18px;bottom:-1px;width:44px;height:30px;border-radius:6px 6px 0 0;transform:none!important}
.smap-body{padding:20px 22px 22px;display:flex;flex-direction:column;gap:8px}
.smap-kicker{margin:0;display:flex;align-items:center;gap:10px;color:var(--gris);font-weight:700;font-size:.85rem}
.smap-kicker .badge{margin:0}.badge.sec{background:var(--cel)}
.smap-body h3{font-size:1.7rem;margin:0}
.smap-team{margin:0;color:var(--txt);font-weight:600}
.smap-facts{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 20px;color:var(--gris);font-size:.9rem}
.smap-facts li{display:flex;align-items:center;gap:7px}.smap-facts svg{width:18px;height:18px;fill:none;stroke:var(--cel);stroke-width:2;stroke-linecap:round}
.smap-facts b{color:var(--title)}
.smap-acts{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:8px}
.smap-nav{display:flex;gap:8px}.smap-nav button{width:42px;height:42px;border-radius:50%;border:2px solid var(--line2);background:transparent;color:var(--title);font-size:1.1rem;cursor:pointer;transition:.2s}
.smap-nav button:hover{border-color:var(--cel);color:var(--cel)}
@media(max-width:860px){.smap{grid-template-columns:1fr}.smap-map{max-width:460px;width:100%;justify-self:center}#smapSvg{max-height:420px}}
@media(max-width:520px){.smap-tabs{grid-template-columns:1fr 1fr}.smap-body h3{font-size:1.4rem}.smap-acts .btn{width:100%;text-align:center}.smap-nav{margin-left:auto}}
@media(prefers-reduced-motion:reduce){#smapSvg .lnk,#smapSvg .pulse,.smap-live i{animation:none!important}}

/* ===== HERO: juego de palabras ===== */
.hero .eyebrow{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px;max-width:none}
.hero .eyebrow span{font:800 .74rem Montserrat,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#fff;border:1px solid rgba(92,200,245,.55);background:rgba(0,159,227,.14);padding:6px 12px;border-radius:999px}
.hero h1 .w:last-child>span{color:#5CC8F5}

/* ===== HERO: robot asistente de IA ===== */
.bot-stage{position:relative;width:100%;max-width:520px;justify-self:center}
@media(min-width:861px){.hero-grid{grid-template-columns:1.05fr .95fr}}
#bot{width:100%;height:auto;display:block;overflow:visible;font-family:Montserrat,Arial,sans-serif}
#bot .lk{fill:none;stroke:rgba(92,200,245,.4);stroke-width:2;stroke-dasharray:5 7;animation:dash 1.6s linear infinite;transition:stroke .3s}
#bot .lk.on{stroke:#ff4d58;stroke-dasharray:none;stroke-width:2.5;filter:drop-shadow(0 0 6px rgba(227,6,19,.7))}
@keyframes dash{to{stroke-dashoffset:-24}}
#bot .pk{fill:#fff;filter:drop-shadow(0 0 5px #5CC8F5)}#bot .pk.hot{fill:#ffd2d5;filter:drop-shadow(0 0 6px #ff4d58)}
#bot .mod{cursor:pointer;outline:none}
#bot .mod>*{transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .3s,fill .3s,stroke .3s}
#bot .mod .halo{opacity:.7}
#bot .mod .ring{fill:none;stroke:#5CC8F5;stroke-width:1.5;stroke-dasharray:4 8;transform-origin:0 0;animation:spin 14s linear infinite}
#bot .mod .core{fill:rgba(11,62,120,.85);stroke:rgba(92,200,245,.9);stroke-width:2}
#bot .mod .ic{fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#bot .mod text{fill:#fff;font-size:14px;font-weight:700;text-anchor:middle;paint-order:stroke;stroke:rgba(11,62,120,.8);stroke-width:4px}
#bot .mod.on .core,#bot .mod:focus-visible .core{fill:var(--rojo);stroke:#fff}
#bot .mod.on .halo{opacity:1;transform:scale(1.25)}#bot .mod.on .ring{stroke:#fff;animation-duration:4s}
#bot .mod.on .core,#bot .mod.on .ic{transform:scale(1.1)}
#bot.focus .mod:not(.on){opacity:.55}
@keyframes spin{to{transform:rotate(360deg)}}
#robot{cursor:pointer;outline:none}#robot:focus-visible .chest{stroke:#fff;stroke-width:4}
#bot .chest{fill:#fff;stroke:#DCEAF7;stroke-width:3;animation:chest 2.6s ease-in-out infinite}
@keyframes chest{50%{stroke:#5CC8F5;filter:drop-shadow(0 0 10px rgba(0,159,227,.75))}}
#bot .ant{fill:var(--rojo);animation:ant 1.8s ease-in-out infinite}
@keyframes ant{50%{filter:drop-shadow(0 0 8px #ff4d58);fill:#ff4d58}}
#bot .eye rect{fill:#5CC8F5;filter:drop-shadow(0 0 5px #5CC8F5);transform-box:fill-box;transform-origin:center;transition:transform .08s}
#bot .thr{animation:thr .25s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:top}
@keyframes thr{to{transform:scaleY(.82);opacity:.8}}
#bot .shadow{fill:rgba(0,0,0,.25);animation:shad 5.6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes shad{50%{transform:scaleX(.85);opacity:.7}}
#say{transition:opacity .3s;pointer-events:none}#say rect,#say path{fill:#fff}
#say text{fill:var(--azul);font-size:14px;font-weight:700;text-anchor:middle}
@media(max-width:860px){.bot-stage{max-width:420px;margin-top:8px}}
@media(max-width:520px){.bot-stage{max-width:270px;margin-top:0}.hero-grid{gap:16px}.stats{margin-top:28px}}
.stats{display:grid;grid-template-columns:repeat(4,auto);justify-content:start;gap:20px 34px}
@media(max-width:520px){.stats{grid-template-columns:1fr 1fr;gap:16px 18px}}
.cta-acts{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.about-home .ab>.rv{max-width:none}
.sedes-line{padding:44px 0}.sedes-line .wrap{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.sedes-line svg{width:30px;height:30px;fill:none;stroke:var(--cel);stroke-width:2;flex:none}
.sedes-line p{margin:0;color:var(--txt)}.sedes-line strong{color:var(--title)}
.sedes-line a{font-weight:700;text-decoration:none;margin-left:auto}
@media(max-width:520px){.sedes-line a{margin-left:0}}
@media(prefers-reduced-motion:reduce){#bot .lk,#bot .ring,#bot .chest,#bot .ant,#bot .thr,#bot .shadow{animation:none}}

/* ===== 1. TRANSICIONES NATIVAS (View Transitions) ===== */
@view-transition{navigation:auto}
html.vt main{animation:none}
header{view-transition-name:site-header}
.ag .ag-launch{view-transition-name:ag-launch}
::view-transition-group(*){animation-duration:.42s;animation-timing-function:cubic-bezier(.2,.8,.2,1)}
::view-transition-old(root){animation:vtOut .2s cubic-bezier(.4,0,1,1) both}
::view-transition-new(root){animation:vtIn .42s cubic-bezier(.2,.8,.2,1) both}
@keyframes vtOut{to{opacity:0;transform:translateY(-6px)}}
@keyframes vtIn{from{opacity:0;transform:translateY(10px)}}
html.theme-vt::view-transition-old(root),html.theme-vt::view-transition-new(root),html.vt-local::view-transition-old(root),html.vt-local::view-transition-new(root){animation:none;mix-blend-mode:normal}
html.theme-vt header,html.theme-vt .ag .ag-launch{view-transition-name:none}
@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}

/* ===== 2. JERARQUÍA EN TARJETAS ===== */
#soluciones .grid3 .card{padding:34px 30px 30px;border-top:5px solid var(--cel)}
#soluciones .grid3 .card:nth-child(2){border-top-color:var(--azul)}
#soluciones .grid3 .card:nth-child(3){border-top-color:var(--rojo)}
[data-theme="dark"] #soluciones .grid3 .card:nth-child(2){border-top-color:#5CC8F5}
#soluciones .grid3 .card svg{width:58px;height:58px;padding:11px;border-radius:16px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line2);transition:background .25s,box-shadow .25s}
#soluciones .grid3 .card:hover svg{background:rgba(255,255,255,.1);box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}
#soluciones .grid3 .card h3{font-size:1.4rem}
.cases .case:not(.feat){background:var(--surface);border-top-width:3px;box-shadow:inset 0 0 0 1px var(--line2);padding:24px}
.cases .case:not(.feat) .kpi{background:var(--f2)}
.case.feat{grid-column:1/-1;display:grid;grid-template-columns:1.1fr .9fr;gap:18px 40px;padding:34px;border-top-width:6px;align-items:start}
.case.feat>*{grid-column:1}
.case.feat .kpi{grid-column:2;grid-row:1/span 3;flex-direction:column;align-items:flex-start;justify-content:center;gap:10px;padding:28px;height:100%}
.case.feat .kpi strong{font-size:3.6rem}
.case.feat .case-more,.case.feat .case-tog{grid-column:1/-1}
@media(max-width:860px){.case.feat{display:flex;padding:26px}.case.feat .kpi{flex-direction:row;align-items:center;height:auto}.case.feat .kpi strong{font-size:2.6rem}}

/* ===== 3. FORMULARIOS ===== */
input.good,textarea.good{border-color:var(--cel)}
.err{transition:opacity .2s}.err:empty{opacity:0}
.btn.busy{cursor:progress;opacity:.85;padding-left:48px}
.btn.busy::before{content:"";position:absolute;left:20px;top:50%;width:16px;height:16px;margin-top:-8px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}
#f.sent>*:not(.sent-ok){display:none}
.sent-ok{display:grid;justify-items:center;text-align:center;gap:10px;padding:26px 8px;outline:none;animation:fade .4s both}
.sent-ok svg,.ag-ok svg{fill:none;stroke:var(--cel);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.sent-ok svg{width:66px;height:66px}
.sent-ok circle,.ag-ok circle{stroke-dasharray:151;stroke-dashoffset:151;animation:draw .6s .1s forwards}
.sent-ok path,.ag-ok path{stroke-dasharray:36;stroke-dashoffset:36;animation:draw .35s .6s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.sent-ok h3{margin:4px 0 0}.sent-ok p{margin:0 0 6px;color:var(--gris)}
.btn.sec2{background:transparent;color:var(--title);border:2px solid var(--line2)}.btn.sec2:hover{border-color:var(--cel);box-shadow:none}
.ok.fail{border-left-color:var(--rojo);color:var(--rojo)}
.ag-ok{display:flex;align-items:center;gap:10px;font:700 .92rem Montserrat,Arial,sans-serif;color:var(--title);margin:0 0 12px}
.ag-ok svg{width:28px;height:28px;flex:none}
.ag :focus-visible{outline:3px solid var(--cel);outline-offset:2px}
@media(prefers-reduced-motion:reduce){.sent-ok circle,.sent-ok path,.ag-ok circle,.ag-ok path{animation:none;stroke-dashoffset:0}}

/* ===== 4. CASOS MÁS VIVOS ===== */
.case-more{height:0;overflow:hidden;margin-top:-18px}
.case-more>div{display:flex;flex-direction:column;gap:14px;padding-top:2px}
.case-more .chips{margin:0}
.case-tog{align-self:flex-start;display:inline-flex;align-items:center;gap:10px;height:36px;padding:0 16px;border-radius:999px;border:1px solid var(--line2);background:var(--surface);font:700 .86rem Montserrat,Arial,sans-serif;color:var(--title);cursor:pointer;transition:background-color .2s,border-color .2s,transform .15s}
.case-tog::after{content:"";width:7px;height:7px;border-right:2px solid var(--cel);border-bottom:2px solid var(--cel);transform:translateY(-2px) rotate(45deg);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.case.open .case-tog::after{transform:translateY(2px) rotate(-135deg)}
.case-tog:active{transform:scale(.97)}
@media(hover:hover){.case-tog:hover{background:var(--f1);border-color:var(--cel)}}
.case.feat .case-tog{justify-self:start}
@media(prefers-reduced-motion:reduce){.case-tog,.case-tog::after{transition:none}}
.rstrip-sec{padding:0;background:var(--bg)}
.rstrip{background:var(--azul);color:#fff;border-radius:18px;padding:30px 34px;display:grid;grid-template-columns:auto 1fr auto;gap:18px 36px;align-items:center;position:relative;overflow:hidden;margin:-30px 0 0}
.rstrip::before{content:"";position:absolute;width:320px;height:320px;border-radius:50%;background:var(--cel);opacity:.25;filter:blur(70px);right:-90px;top:-160px;pointer-events:none}
.rs-t{margin:0;font:800 1.05rem/1.3 Montserrat,Arial,sans-serif;max-width:12ch}
.rstrip ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.rstrip li{display:flex;flex-direction:column;gap:4px;padding-left:18px;border-left:2px solid rgba(92,200,245,.5)}
.rstrip strong{font:800 2.1rem/1 Montserrat,Arial,sans-serif;color:#5CC8F5}
.rstrip span{color:#DCEAF7;font-size:.9rem}.rstrip b{color:#fff;font-family:Montserrat,Arial,sans-serif}
.rs-link{color:#fff;font-weight:700;text-decoration:none;white-space:nowrap;border-bottom:2px solid var(--rojo);padding-bottom:3px;position:relative}
.rs-link:hover{border-color:#fff}
@media(max-width:960px){.rstrip{grid-template-columns:1fr}.rs-t{max-width:none}.rs-link{justify-self:start}}
@media(max-width:620px){.rstrip ul{grid-template-columns:1fr}.rstrip{padding:24px;margin-top:-20px}}

/* ===== 5. ROBOT QUE ACOMPAÑA ===== */
.ag .ag-launch{rotate:var(--tilt,0deg);transition:transform .2s,background .2s,box-shadow .2s,rotate .55s cubic-bezier(.3,1.6,.5,1)}
.ag .ag-launch .ag-eye{transition:translate .15s ease-out}
.ag .ag-launch.party{animation:agJump 1.1s cubic-bezier(.3,1.4,.5,1)}
@keyframes agJump{25%{translate:0 -18px;scale:1.1}50%{translate:0 0;scale:.95}72%{translate:0 -6px;scale:1.03}100%{translate:0 0;scale:1}}
.ag .ag-launch.wave svg{animation:agWave 1.4s ease-in-out;transform-origin:50% 85%}
@keyframes agWave{20%,60%{rotate:-12deg}40%,80%{rotate:12deg}}
.ag-conf{position:fixed;width:7px;height:11px;border-radius:2px;z-index:90;pointer-events:none}
.ag .ag-bub.pop{animation:agPop .45s cubic-bezier(.3,1.5,.5,1)}
@keyframes agPop{from{opacity:0;scale:.85;translate:0 8px}}
@media(prefers-reduced-motion:reduce){.ag .ag-launch{rotate:none}.ag .ag-launch.party,.ag .ag-launch.wave svg,.ag .ag-bub.pop{animation:none}}
/* ===== 06/11/2026: autorización de datos, política y 404 ===== */
.consent{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:start;font-size:.88rem;line-height:1.5;color:var(--gris)}
.consent input{width:20px;height:20px;margin:2px 0 0;padding:0;accent-color:var(--azul);cursor:pointer}
.consent label{display:block;margin:0;font-weight:400;font-size:inherit;color:inherit;cursor:pointer}
.consent .err{grid-column:2}
.consent a,.foot span a{color:var(--cel)}
.foot span a{margin:0 0 0 6px;font-weight:600}
.legal{max-width:760px}
.legal h2{font-size:1.25rem;margin:1.8em 0 .5em}
.legal p,.legal li{color:var(--txt)}
.legal ul{padding-left:1.2em}
.legal li{margin:.35em 0}
.legal-note{font-size:.85rem;color:var(--gris)}
.nf-acts{display:flex;gap:12px;flex-wrap:wrap}
html[lang=es] .legal-note{display:none}
.legal-draft{display:inline-block;font-size:.85rem;font-weight:600;color:var(--title);background:var(--f2);border-radius:8px;padding:6px 12px}

/* ===== 07/11/2026: palabra rotativa del hero (TextLoop) ===== */
.rot b.loop{position:relative;display:inline-block;vertical-align:bottom;height:1.4em;overflow:hidden;border-right:0;padding-right:0;animation:none;transition:width .45s cubic-bezier(.2,.8,.2,1);white-space:nowrap}
.rot .loop-w{position:absolute;left:0;top:0;line-height:1.4em;transition:transform .55s cubic-bezier(.2,.8,.2,1),opacity .55s}
.rot .loop-w.in{transform:translateY(100%);opacity:0;transition:none}
.rot .loop-w.out{transform:translateY(-100%);opacity:0}

/* ===== Equipo directivo (tarjeta con espacio para foto; ícono por cargo mientras no hay foto) ===== */
.leaders{display:flex;flex-wrap:wrap;justify-content:center;gap:22px;margin-top:30px}
.leader{flex:0 1 calc((100% - 44px)/3);min-width:0;padding:0;text-align:left;background:var(--surface);border-radius:16px;box-shadow:inset 0 0 0 1px var(--line2);display:flex;flex-direction:column;transition:transform .3s,box-shadow .3s}
.leader:hover{transform:translateY(-4px);box-shadow:inset 0 0 0 1px var(--line2),0 14px 30px rgba(11,62,120,.1)}
.leader .ph{position:relative;aspect-ratio:4/3;max-width:100%;margin:8px 8px 0;border-radius:12px;overflow:hidden;display:grid;place-items:center;
 background:radial-gradient(circle at 50% 45%,var(--f2),var(--f1) 75%)}
.leader .ph::after{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--line2) 1px,transparent 1px),linear-gradient(90deg,var(--line2) 1px,transparent 1px);background-size:28px 28px;opacity:.35;pointer-events:none}
.leader .ph svg{position:relative;z-index:1;width:76px;height:76px;padding:20px;box-sizing:content-box;border-radius:50%;background:var(--surface);fill:none;stroke:var(--azul);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;box-shadow:0 8px 22px rgba(11,62,120,.12);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.leader:hover .ph svg{transform:scale(1.06)}
.leader .ph img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .35s}
.leader:hover .ph img{transform:scale(1.04)}
.leader .ld{padding:18px 24px 24px;text-align:left;display:flex;flex-direction:column;gap:4px}
.leader .area{align-self:flex-start;font:700 .7rem Montserrat,Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--title);background:var(--f2);border-radius:999px;padding:4px 10px;margin-bottom:8px}
.leader b{font:700 1.08rem Montserrat,Arial,sans-serif;color:var(--title)}
.leader p{margin:0;color:var(--txt);font-size:.92rem;padding-top:8px;border-top:2px solid var(--cel);align-self:flex-start}
:root[data-theme="dark"] .leader .ph svg{stroke:var(--title)}
@media(max-width:860px){.leader{flex-basis:calc((100% - 22px)/2)}}
@media(max-width:520px){.leader{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){.leader,.leader .ph svg,.leader .ph img{transition:none}.leader:hover{transform:none}.leader:hover .ph svg,.leader:hover .ph img{transform:none}}

/* ===== Logos de clientes en Casos (misma placa para todos) ===== */
.case-hd{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px 18px}
.case-hd>.sector{grid-column:1/-1;justify-self:start}
.case-logo{width:112px;height:72px;flex:none;display:flex;align-items:center;justify-content:center;padding:7px 9px;box-sizing:border-box;background:#fff;border-radius:12px;box-shadow:inset 0 0 0 1px var(--line2);overflow:hidden}
.case-logo img{max-width:94px;max-height:58px;width:auto;height:auto;display:block}
.case-logo.fill{padding:0}
.case-logo.fill img{width:112px;height:72px;max-width:none;max-height:none;object-fit:cover}
@media(max-width:520px){.case-logo{width:96px;height:62px;padding:8px}.case-logo img{max-width:80px;max-height:46px}.case-logo.fill img{width:96px;height:62px}.case-hd{grid-template-columns:1fr;gap:12px}}

/* ===== Ajustes del comité (12/11/2026): sin líneas bajo los títulos, sin luz del mouse, cifras en color sólido ===== */
h2::after{content:none!important;display:none!important}
.card::before,.member::before,.mv div::before,.vals div::before{content:none!important}
.kpi strong,.case .kpi strong{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:var(--title);-webkit-text-fill-color:currentColor}

/* ===== Casos: todos iguales, horizontales, logo grande, línea y solución vendida visibles ===== */
.cases{grid-template-columns:1fr}
.cases .case,.cases .case:not(.feat){grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px 40px;align-items:start;padding:32px;background:var(--surface);border-top:5px solid var(--cel);box-shadow:inset 0 0 0 1px var(--line2)}
.cases .case>*{grid-column:1;min-width:0}
.cases .case>.case-side{grid-column:2;grid-row:1/span 4;display:flex;flex-direction:column;gap:14px}
.cases .case .case-more{margin-top:-16px}
.cases .case .case-tog{justify-self:start}
.case-logo{width:168px;height:104px;padding:10px 14px;box-shadow:inset 0 0 0 1px var(--line2),0 6px 18px rgba(11,62,120,.08)}
.case-logo img{max-width:140px;max-height:82px}
.case-logo.fill img{width:168px;height:104px}
.case-hd{grid-template-columns:auto minmax(0,1fr);gap:14px 22px}
.case-hd>.case-tags{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.case-hd>.case-tags .sector{align-self:center}
.case-line{display:inline-flex;align-items:center;gap:10px;background:var(--azul);color:#fff;text-decoration:none;font:800 1rem Montserrat,Arial,sans-serif;padding:8px 18px 8px 12px;border-radius:999px;transition:transform .2s}
.case-line svg{width:22px;height:22px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.case-line:hover{transform:translateY(-2px)}
.case-side .kpi{margin:0;flex-direction:column;align-items:flex-start;gap:8px;padding:22px;border-radius:12px;background:var(--f2)}
.case-side .kpi strong{font-size:3rem}
.case-sol{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px;border-radius:12px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line2);text-decoration:none;color:var(--txt);transition:box-shadow .2s,transform .2s}
.case-sol:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 2px var(--cel)}
.cs-vis{width:64px;height:64px;border-radius:10px;display:grid;place-items:center;background:radial-gradient(circle at 50% 45%,var(--f2),var(--f1) 75%);position:relative;overflow:hidden}
.cs-vis::after{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--line2) 1px,transparent 1px),linear-gradient(90deg,var(--line2) 1px,transparent 1px);background-size:12px 12px;opacity:.35}
.cs-vis svg{position:relative;z-index:1;width:30px;height:30px;fill:none;stroke:var(--azul);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.cs-t{display:flex;flex-direction:column;line-height:1.3;min-width:0}
.cs-t small{font:700 .7rem Montserrat,Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--gris)}
.cs-t b{font:800 1.05rem Montserrat,Arial,sans-serif;color:var(--title)}
.cs-t>span{font-size:.86rem;color:var(--gris)}
.cs-go{font-weight:800;color:var(--cel);font-size:1.2rem}
:root[data-theme="dark"] .cs-vis svg{stroke:var(--title)}
@media(max-width:860px){.cases .case,.cases .case:not(.feat){grid-template-columns:1fr;padding:22px}.cases .case>.case-side{grid-column:1;grid-row:auto}}
@media(max-width:520px){.case-logo{width:136px;height:84px}.case-logo img{max-width:112px;max-height:64px}.case-logo.fill img{width:136px;height:84px}.case-side .kpi strong{font-size:2.4rem}}

/* ===== Micrositios de soluciones ===== */
.crumb{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:.85rem;margin-bottom:18px;color:rgba(255,255,255,.75)}
.crumb a{color:#fff;text-decoration:none;font-weight:700}
.crumb a:hover{text-decoration:underline}
.sol-hero h1{margin-bottom:.25em}
.sol-term{font:600 1.15rem Montserrat,Arial,sans-serif;color:#cfe9fb;margin:0 0 18px}
.sol-line{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:6px 14px;font-size:.85rem}
.sol-line svg{width:18px;height:18px;fill:none;stroke:#fff;stroke-width:1.8}
.sol-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:48px;align-items:start}
.sol-desc{font-size:1.12rem;color:var(--txt);max-width:60ch}
.sol-vis{position:relative;aspect-ratio:4/3;max-width:100%;border-radius:16px;overflow:hidden;display:grid;place-items:center;background:radial-gradient(circle at 50% 45%,var(--f2),var(--f1) 75%);box-shadow:inset 0 0 0 1px var(--line2)}
.sol-vis::after{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--line2) 1px,transparent 1px),linear-gradient(90deg,var(--line2) 1px,transparent 1px);background-size:28px 28px;opacity:.35;pointer-events:none}
.sol-vis svg{position:relative;z-index:1;width:96px;height:96px;padding:28px;box-sizing:content-box;border-radius:50%;background:var(--surface);fill:none;stroke:var(--azul);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;box-shadow:0 8px 22px rgba(11,62,120,.12)}
.sol-vis.sm{aspect-ratio:16/7;margin-bottom:18px}
.sol-vis.sm svg{width:52px;height:52px;padding:18px}
:root[data-theme="dark"] .sol-vis svg{stroke:var(--title)}
.sol-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:22px 0 8px}
.sol-stats div{background:var(--f2);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:4px}
.sol-stats strong{font:800 1.8rem/1.1 Montserrat,Arial,sans-serif;color:var(--title)}
.sol-stats span{font-size:.88rem;color:var(--gris)}
.sol-main h3{margin-top:28px}
.sol-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.sol-list li{position:relative;padding-left:32px}
.sol-list li::before{content:"";position:absolute;left:0;top:3px;width:20px;height:20px;border-radius:50%;background:var(--cel) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12l4 4 8-8'/%3E%3C/svg%3E") center/14px no-repeat}
.sol-para{margin-top:8px}
.sol-para p{margin:0;color:var(--gris)}
.sol-acts,.panel-acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.sol-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;margin-top:26px}
.sol-card{display:flex;flex-direction:column;gap:6px;padding:22px;border-radius:14px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line2);text-decoration:none;color:var(--txt);transition:transform .25s,box-shadow .25s}
.sol-card:hover{transform:translateY(-4px);box-shadow:inset 0 0 0 2px var(--cel),0 12px 26px rgba(11,62,120,.1)}
.sol-ic{width:52px;height:52px;border-radius:12px;display:grid;place-items:center;background:var(--f2);margin-bottom:8px;flex:none}
.sol-ic svg{width:28px;height:28px;fill:none;stroke:var(--cel);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sol-n{font:800 1.08rem Montserrat,Arial,sans-serif;color:var(--title)}
.sol-t{font:600 .85rem Montserrat,Arial,sans-serif;color:var(--cel)}
.sol-d{font-size:.9rem;color:var(--gris);flex:1}
.sol-ds{align-self:flex-start;font:700 .7rem Montserrat,Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--title);background:var(--f2);border-radius:999px;padding:3px 10px}
.sol-go{font-weight:700;font-size:.9rem;color:var(--cel);margin-top:6px}
.sol-more{background:var(--f3)}
.sol-all{margin:22px 0 0}
.sol-all a{font-weight:700;text-decoration:none}
.line-intro{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:40px;align-items:center}
.cat-line{margin-top:40px}
.cat-hd{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.cat-hd h3{margin:0;font-size:1.4rem}
.cat-hd .sol-ic{margin:0}
.cat-hd a{margin-left:auto;font-weight:700;text-decoration:none}
.cat-line .sol-cards{margin-top:16px}
.panel-sols li{padding:0 0 0 30px}
.panel-sols a{display:block;padding:8px 0;text-decoration:none;color:var(--txt)}
.panel-sols a b{color:var(--title);font-family:Montserrat,Arial,sans-serif}
.panel-sols a span{color:var(--gris);font-size:.92rem}
.panel-sols a:hover b{color:var(--cel)}
.cmini-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;margin-top:24px}
.case-mini{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:center;padding:18px;border-radius:14px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line2);text-decoration:none;color:var(--txt);transition:transform .25s}
.case-mini:hover{transform:translateY(-3px)}
.case-mini .case-logo{width:120px;height:76px}
.case-mini .case-logo img{max-width:100px;max-height:58px}
.case-mini .case-logo.fill img{width:120px;height:76px}
.cm-b{display:flex;flex-direction:column;gap:2px;min-width:0}
.cm-b b{font-family:Montserrat,Arial,sans-serif;color:var(--title)}
.cm-b strong{font:800 1.6rem/1.1 Montserrat,Arial,sans-serif;color:var(--title)}
.cm-b>span{font-size:.86rem;color:var(--gris)}
.cm-b .cm-go{color:var(--cel);font-weight:700}
.ds-sec{background:var(--f2)}
.ds-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:start}
.ds-file{display:flex;align-items:center;gap:14px;margin-top:22px;padding:16px;border-radius:12px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line2);max-width:360px}
.ds-file svg{width:40px;height:40px;fill:none;stroke:var(--cel);stroke-width:1.6;flex:none}
.ds-file>span{display:flex;flex-direction:column}
.ds-file b{color:var(--title);font-family:Montserrat,Arial,sans-serif}
.ds-file span span{font-size:.86rem;color:var(--gris)}
.ds-form .ok.show{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.ds-form .ok p{margin:0}
.ds-form .ok .btn{color:#fff}
.qz-more{display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:center;margin:26px 0 0;font-size:.95rem;color:var(--gris)}
.qz-more a{font-weight:700;text-decoration:none}
@media(max-width:860px){.sol-grid,.line-intro,.ds-grid{grid-template-columns:1fr;gap:28px}.sol-vis:not(.sm){max-width:420px}}
@media(max-width:520px){.case-mini{grid-template-columns:1fr}.cat-hd a{margin-left:0;flex-basis:100%}}

/* ===== Momentos (inicio y Nosotros): fotos pendientes ===== */
.moments-sec{background:var(--f3)}
.moments{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,1fr);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 2px 14px;margin-top:26px}
.moment{margin:0;scroll-snap-align:start;display:flex;flex-direction:column;gap:10px}
.moment .ph-empty,.moment img{aspect-ratio:4/3;width:100%;border-radius:14px;object-fit:cover}
.ph-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:var(--surface);border:2px dashed var(--line2);color:var(--gris);font:600 .8rem Montserrat,Arial,sans-serif;letter-spacing:.04em;text-transform:uppercase;height:100%;min-height:150px;border-radius:14px}
.ph-empty svg{width:34px;height:34px;fill:none;stroke:var(--cel);stroke-width:1.6;stroke-linejoin:round}
.moment figcaption,.bento-i figcaption{font:700 .92rem Montserrat,Arial,sans-serif;color:var(--title)}
.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:190px;gap:16px;margin-top:26px}
.bento-i{margin:0;display:flex;flex-direction:column;gap:8px;min-width:0}
.bento-i>.ph-empty,.bento-i>img,.bento-i>.cert-in{flex:1;min-height:0;width:100%;object-fit:cover;border-radius:14px}
.bento-i.big{grid-column:span 2;grid-row:span 2}
.bento-i.wide{grid-column:span 2}
.cert-in{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:var(--azul);color:#fff;text-align:center;padding:12px}
.cert-in svg{width:40px;height:40px;fill:none;stroke:#fff;stroke-width:1.6;margin-bottom:4px}
.cert-in b{font:800 1.3rem Montserrat,Arial,sans-serif}
.cert-in span{font-size:.82rem;opacity:.85}
@media(max-width:860px){.bento{grid-template-columns:1fr 1fr;grid-auto-rows:160px}}
@media(max-width:520px){.bento-i.big{grid-row:span 1}}

/* ===== Nosotros: valores con ícono y línea de tiempo ===== */
.vals.vals5{grid-template-columns:repeat(5,1fr);margin-top:28px}
.vals5>div{display:flex;flex-direction:column;gap:6px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line2)}
.v-ic{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--f2);margin-bottom:6px}
.v-ic svg{width:26px;height:26px;fill:none;stroke:var(--cel);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:960px){.vals.vals5{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){.vals.vals5{grid-template-columns:1fr 1fr}}
@media(max-width:400px){.vals.vals5{grid-template-columns:1fr}}
.mv p+p{margin-top:0}
.tline{list-style:none;margin:36px 0 0;padding:0;display:grid;grid-template-columns:repeat(7,1fr);gap:0;position:relative}
.tline::before{content:"";position:absolute;left:0;right:0;top:15px;height:2px;background:var(--line2)}
.tline li{position:relative;padding:44px 12px 0 0}
.tline li::before{content:"";position:absolute;left:0;top:7px;width:18px;height:18px;border-radius:50%;background:var(--surface);border:4px solid var(--cel)}
.tline li:last-child::before{border-color:var(--rojo)}
.tl-y{display:block;font:800 1.4rem Montserrat,Arial,sans-serif;color:var(--title)}
.tline b{display:block;font-family:Montserrat,Arial,sans-serif;color:var(--txt);font-size:.95rem;margin-top:2px}
.tline p{margin:4px 0 0;font-size:.86rem;color:var(--gris)}
@media(max-width:960px){.tline{grid-template-columns:1fr;gap:18px}.tline::before{left:8px;right:auto;top:0;bottom:0;width:2px;height:auto}.tline li{padding:0 0 0 40px}.tline li::before{top:6px}}
@media(prefers-reduced-motion:reduce){.case-line,.case-sol,.sol-card,.case-mini{transition:none}.case-line:hover,.case-sol:hover,.sol-card:hover,.case-mini:hover{transform:none}}
@media(max-width:520px){.case-hd{grid-template-columns:1fr;gap:12px}}

/* ===== Nuestros valores: lista con letras escalonadas + imagen revelada (animated-slideshow en JS simple) ===== */
.vslider{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:40px;align-items:center;margin-top:30px}
.vs-list{display:flex;flex-direction:column;gap:4px}
.vs-item{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:10px;align-items:baseline;text-align:left;background:none;border:0;padding:10px 0;cursor:pointer;color:var(--title);font:inherit;border-bottom:1px solid var(--line2)}
.vs-item:last-child{border-bottom:0}
.vs-num{font:700 .8rem Montserrat,Arial,sans-serif;color:var(--gris);letter-spacing:.08em}
.vs-item.on .vs-num{color:var(--cel)}
.vs-name{font:800 clamp(1.7rem,3.4vw,2.6rem)/1.15 Montserrat,Arial,sans-serif;text-transform:uppercase;letter-spacing:-.02em;display:block}
.vs-ch{position:relative;display:inline-block;overflow:hidden;vertical-align:top}
.vs-a,.vs-b{display:inline-block;transition:transform .3s cubic-bezier(.25,.46,.45,.94) var(--d)}
.vs-a{opacity:.22}
.vs-b{position:absolute;left:0;top:0;transform:translateY(110%)}
.vs-item.on .vs-a{transform:translateY(-110%)}
.vs-item.on .vs-b{transform:translateY(0)}
.vs-desc{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.vs-item{position:relative}
.vs-side{display:flex;flex-direction:column;gap:14px;min-width:0}
.vs-cap{margin:0;min-height:3em;font-size:1.02rem;color:var(--txt);text-align:center}
.vs-item:focus-visible{outline:3px solid var(--cel);outline-offset:4px;border-radius:6px}
.vs-imgs{display:grid;border-radius:18px;overflow:hidden;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line2);aspect-ratio:3/2;max-width:100%}
.vs-img{grid-area:1/1;width:100%;height:100%;object-fit:cover;clip-path:polygon(0 0,100% 0,100% 0,0 0);transition:clip-path .8s cubic-bezier(.33,1,.68,1)}
.vs-img.on{clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}
@media(max-width:860px){.vslider{grid-template-columns:1fr;gap:22px}.vs-side{order:-1}}
@media(prefers-reduced-motion:reduce){.vs-a,.vs-b,.vs-img{transition:none}}
/* Misión y visión con imagen */
.mv-wrap{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:32px;align-items:stretch;margin-top:30px}
.mv-wrap .mv{margin-top:0}
.mv-img{border-radius:16px;overflow:hidden;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line2);min-height:260px}
.mv-img img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:860px){.mv-wrap{grid-template-columns:1fr}.mv-img{aspect-ratio:3/2;min-height:0}}
.mv-wrap .mv{grid-template-columns:1fr}

/* ===== Imágenes de soluciones (reemplazan a los íconos) ===== */
.sol-vis.img{background:var(--surface)}
.sol-vis.img::after{content:none}
.sol-vis.img img{position:relative;z-index:1;width:100%;height:100%;object-fit:cover;display:block}
.sol-card{padding:0;overflow:hidden}
.sol-card>span:not(.sol-pic){margin-left:22px;margin-right:22px}
.sol-card>.sol-go{margin-bottom:22px}
.sol-pic{display:block;aspect-ratio:3/2;background:var(--surface);border-bottom:1px solid var(--line2);overflow:hidden;margin-bottom:10px}
.sol-pic img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.sol-card:hover .sol-pic img{transform:scale(1.04)}
.sol-qz{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;margin-top:24px;padding:16px 18px;border-radius:14px;background:var(--f2);text-decoration:none;color:var(--txt);box-shadow:inset 0 0 0 1px var(--line2);transition:box-shadow .2s}
.sol-qz:hover{box-shadow:inset 0 0 0 2px var(--cel)}
.sol-qz .sol-ic{margin:0;background:var(--surface)}
.sol-qz b{display:block;color:var(--title);font-family:Montserrat,Arial,sans-serif}
.sol-qz span span{font-size:.9rem;color:var(--gris)}
.cs-vis.img{background:var(--surface)}
.cs-vis.img::after{content:none}
.cs-vis.img img{position:relative;z-index:1;width:100%;height:100%;object-fit:cover;display:block}
@media(prefers-reduced-motion:reduce){.sol-pic img{transition:none}.sol-card:hover .sol-pic img{transform:none}}
.panel-qz{flex-basis:100%;font-weight:700;text-decoration:none;font-size:.95rem}

/* ===== Inicio: diagnóstico en dos columnas y "Sobre ITSTK" con datos e imagen (propuesta del revisor de diseño, 13/11/2026) ===== */
.dx{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-areas:"head quiz" "lines quiz";gap:28px 56px;align-items:start}
.dx-head{grid-area:head}.dx-quiz{grid-area:quiz}.dx-lines{grid-area:lines;display:grid;gap:10px}
.dx:has(.qz-q){grid-template-columns:1fr;grid-template-areas:"head" "quiz" "lines"}
#diagnostico .dx-quiz.qz{margin-top:0}
#diagnostico .dx-quiz .qz-grid{grid-template-columns:1fr}
#diagnostico .dx-quiz .qz-hint{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
#diagnostico .dx-quiz .qz-pick{padding:40px 36px;min-height:300px}
#diagnostico .dx-quiz .qz-t{font-size:1.6rem}
.dx-k{margin:0 0 4px;font:700 .78rem Montserrat,Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--gris)}
.dx-line{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:12px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line2);color:var(--txt);text-decoration:none;transition:box-shadow .2s,transform .2s}
.dx-line:hover,.dx-line:focus-visible{box-shadow:inset 0 0 0 1px var(--cel),0 6px 16px rgba(11,62,120,.08);transform:translateY(-2px)}
.dx-line svg{flex:0 0 32px;height:32px;stroke:var(--cel);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.dx-line span{display:flex;flex-direction:column;flex:1;min-width:0}
.dx-line b{font:700 .98rem/1.3 Montserrat,Arial,sans-serif;color:var(--title)}
.dx-line small{font-size:.82rem;color:var(--gris)}
.dx-line i{font-style:normal;font-weight:700;color:var(--cel)}
@media(max-width:860px){.dx{grid-template-columns:1fr;grid-template-areas:"head" "quiz" "lines";gap:24px}#diagnostico .dx-quiz .qz-pick{min-height:0;padding:26px 22px}#diagnostico .dx-quiz .qz-t{font-size:1.3rem}}
.ab{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:56px;align-items:center}
.ab-facts{list-style:none;margin:28px 0 30px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ab-facts li{padding:18px 20px;border-radius:12px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line2)}
.ab-facts strong{display:block;font:800 1.3rem/1.2 Montserrat,Arial,sans-serif;color:var(--title)}
.ab-facts span{display:block;margin-top:4px;font-size:.88rem;line-height:1.4;color:var(--gris)}
.ab-acts{display:flex;flex-wrap:wrap;gap:12px}
.ab-vis{margin:0;border-radius:20px;overflow:hidden;background:#fff;aspect-ratio:3/2}
.ab-vis img{display:block;width:100%;height:100%;object-fit:cover}
:root[data-theme="dark"] .ab-vis{background:var(--f1)}
@media(max-width:860px){.ab{grid-template-columns:1fr;gap:32px}.ab-vis{aspect-ratio:16/9;max-height:240px}}
@media(max-width:520px){.ab-facts{gap:10px}.ab-facts li{padding:14px}.ab-facts strong{font-size:1.1rem}.ab-acts .btn{width:100%;text-align:center}}
@media(prefers-reduced-motion:reduce){.dx-line{transition:none}.dx-line:hover{transform:none}}
#diagnostico .dx-quiz .qz-pick{min-height:420px}@media(max-width:860px){#diagnostico .dx-quiz .qz-pick{min-height:0}}
/* Líneas con imagen (inicio); subservicios con ícono */
.line-card{padding:0;overflow:hidden;display:flex;flex-direction:column}
.line-card>:not(.lc-pic){margin-left:28px;margin-right:28px}
.line-card>a{margin-bottom:24px}
.lc-pic{display:block;aspect-ratio:3/2;background:#fff;margin-bottom:18px;overflow:hidden}
.lc-pic img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.line-card:hover .lc-pic img{transform:scale(1.04)}
.sol-vis.sm.img{aspect-ratio:3/2}
@media(prefers-reduced-motion:reduce){.lc-pic img{transition:none}.line-card:hover .lc-pic img{transform:none}}
/* Misión y visión: la imagen se ve completa */
.mv-img{display:flex;align-items:center;justify-content:center;background:#fff}
.mv-img img{object-fit:contain;height:auto}
:root[data-theme="dark"] .mv-img{background:#fff}
.grid3 .card.line-card{padding:0}
.mv-wrap{align-items:center}
.mv-img{min-height:0;aspect-ratio:3/2}
.mv-img img{width:100%;height:100%;object-fit:cover}
#soluciones .grid3 .card.line-card{padding:0}
