/* sgs-v2.css: sistema del sitio corporativo v2.
   Se carga DESPUÉS de sgs.css y reutiliza sus tokens de marca (--blue, --red, --bg,
   --surface, --text, --border...). Ancho completo (Regla #33): las secciones van de
   borde a borde con gutters; el texto conserva su medida legible. */

:root{
  --gut:clamp(1.3rem,4vw,4rem);
  --nav-h:76px;
  --op:#00e87b;                 /* verde: SOLO señales de operación en vivo */
  --ink-2:var(--text-dim);
  --radius:14px;
}
body.light{ --op:#00a85a; }

.sn-skip{position:absolute;left:-9999px;top:0;z-index:300;background:var(--blue);color:#fff;padding:.7rem 1rem;border-radius:0 0 8px 0}
.sn-skip:focus{left:0}
:focus-visible{outline:2px solid var(--blue-light);outline-offset:3px;border-radius:4px}

/* ── Menú ─────────────────────────────────────────────── */
.sn{position:sticky;top:0;z-index:200;background:rgba(6,8,12,.86);backdrop-filter:blur(18px);border-bottom:1px solid var(--border)}
body.light .sn{background:rgba(255,255,255,.9)}
.sn-inner{display:flex;align-items:center;gap:1.5rem;height:var(--nav-h);padding:0 var(--gut)}
.sn-brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--text);flex-shrink:0}
.sn-logo{width:44px;height:44px;border-radius:10px;background:#fff;padding:2px;object-fit:cover}
/* Logo completo en el hero (arte original del libro de marca, sin recortes) */
.v-hero-logo{display:block;width:clamp(220px,21vw,320px);aspect-ratio:1.43;height:auto;object-fit:cover;object-position:50% 50%;margin:0 0 1.6rem;border-radius:16px;background:#fff}
/* Páginas internas: mismo logo, menor */
.v-hero-logo.sm{width:clamp(170px,14vw,220px);margin-bottom:1.3rem}
body.light .v-hero-logo{padding:0;background:none;border-radius:0}
.sn-brand-text{font-family:'Sora',sans-serif;font-weight:800;font-size:1.02rem;letter-spacing:-.02em;line-height:1.1}
.sn-brand-text span{display:block;font-weight:600;font-size:.78rem;color:var(--text-dim);letter-spacing:0}
.sn-nav{flex:1;display:flex;justify-content:center}
.sn-menu{display:flex;align-items:center;gap:.25rem;list-style:none;margin:0;padding:0}
.sn-menu>li{position:static}
.sn-link{display:inline-flex;align-items:center;gap:.35rem;padding:.55rem .85rem;border-radius:8px;font:500 .95rem 'DM Sans',sans-serif;color:var(--text);text-decoration:none;background:none;border:0;cursor:pointer}
.sn-link:hover,.sn-has:focus-within>.sn-link,.sn-trigger[aria-expanded="true"]{background:var(--bg-card);color:var(--text)}
.sn-trigger::after{content:'';width:7px;height:7px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.6;transition:transform .2s}
.sn-trigger[aria-expanded="true"]::after{transform:rotate(-135deg) translateY(-1px)}
.sn-link[aria-current="page"]{color:var(--blue-light)}

.sn-mega{position:absolute;left:0;right:0;top:var(--nav-h);display:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem 3rem;padding:2rem var(--gut) 2.4rem;background:var(--bg);border-bottom:1px solid var(--border);box-shadow:0 24px 40px rgba(0,0,0,.25)}
body.light .sn-mega{box-shadow:0 24px 40px rgba(12,16,24,.08)}
.sn-mega-wide{grid-template-columns:repeat(5,minmax(0,1fr))}
.sn-mega-narrow{grid-template-columns:minmax(0,22rem)}
.sn-has.open>.sn-mega{display:grid}
@media (hover:hover) and (min-width:1281px){ .sn-has:hover>.sn-mega{display:grid} }
.sn-col{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.sn-col a{color:var(--text-dim);text-decoration:none;font-size:.92rem;padding:.38rem 0;line-height:1.35}
.sn-col a:hover{color:var(--text)}
.sn-col-t{font-family:'Sora',sans-serif;font-weight:700;font-size:.98rem;color:var(--text);margin:.6rem 0 .35rem}
.sn-col-t:first-child{margin-top:0}
.sn-col-t a{color:var(--text);padding:0;font-size:inherit}
.sn-col-t a:hover{color:var(--blue-light)}
.sn-all{grid-column:1/-1;justify-self:start;color:var(--blue-light);font-weight:600;text-decoration:none;padding-top:.4rem;border-top:1px solid var(--border);width:100%}

.sn-actions{display:flex;align-items:center;gap:.55rem;flex-shrink:0}
.sn-icon,.sn-lang{height:38px;min-width:38px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer;font:600 .8rem 'DM Sans',sans-serif;display:inline-flex;align-items:center;justify-content:center;padding:0 .7rem}
.sn-icon:hover,.sn-lang:hover{color:var(--text);border-color:var(--blue)}
.sn-btn{display:inline-flex;align-items:center;justify-content:center;height:42px;padding:0 1.15rem;border-radius:9px;font:600 .92rem 'DM Sans',sans-serif;text-decoration:none;white-space:nowrap;cursor:pointer;border:1px solid transparent}
.sn-btn-primary{background:linear-gradient(135deg,var(--blue),var(--red));color:#fff}
.sn-btn-primary:hover{filter:brightness(1.08)}
.sn-btn-ghost{border-color:var(--border);color:var(--text)}
.sn-btn-ghost:hover{border-color:var(--blue-light)}
.sn-toggle{display:none;height:42px;width:42px;border-radius:9px;border:1px solid var(--border);background:transparent;color:var(--text);font-size:1.1rem;cursor:pointer}

@media (max-width:1280px){
  .sn-actions{margin-left:auto}
  .sn{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--bg)}
  .sn-toggle{display:inline-flex;align-items:center;justify-content:center}
  .sn-nav{position:fixed;inset:var(--nav-h) 0 0 0;display:none;overflow-y:auto;background:var(--bg);padding:1rem var(--gut) 3rem}
  .sn-nav.open{display:block}
  .sn-menu{flex-direction:column;align-items:stretch;gap:0}
  .sn-menu>li{border-bottom:1px solid var(--border)}
  .sn-link{width:100%;justify-content:space-between;padding:1rem 0;font-size:1.05rem;border-radius:0}
  .sn-link:hover,.sn-trigger[aria-expanded="true"]{background:none}
  .sn-mega,.sn-mega-wide,.sn-mega-narrow{position:static;grid-template-columns:1fr 1fr;padding:0 0 1.2rem;box-shadow:none;border:0;background:none}
  .sn-actions .sn-btn-ghost{display:none}
}
@media (max-width:640px){
  .sn-brand-text span{display:none}
  .sn-mega,.sn-mega-wide{grid-template-columns:1fr}
  .sn-actions .sn-lang{display:none}
  .sn-btn-primary{padding:0 .9rem}
}

/* ── Pie ──────────────────────────────────────────────── */
.sf{background:var(--surface);border-top:1px solid var(--border);padding:4rem var(--gut) 2rem;margin-top:0}
.sf-top{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(4,minmax(0,1fr));gap:2.5rem}
.sf-brand p{color:var(--text-dim);font-size:.93rem;line-height:1.65;margin:1.1rem 0 1.4rem;max-width:42ch}
.sf-col{display:flex;flex-direction:column;gap:.2rem}
.sf-t{font-family:'Sora',sans-serif;font-weight:700;font-size:.98rem;margin-bottom:.6rem;color:var(--text)}
.sf-col a{color:var(--text-dim);text-decoration:none;font-size:.9rem;padding:.25rem 0}
.sf-col a:hover{color:var(--text)}
.sf-offices p{font-size:.88rem;color:var(--text-dim);margin-bottom:.6rem;line-height:1.5}
.sf-offices b{color:var(--text);font-weight:600}
.sf-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--border);font-size:.84rem;color:var(--text-muted)}
@media (max-width:1100px){ .sf-top{grid-template-columns:1fr 1fr} .sf-brand{grid-column:1/-1} }
@media (max-width:560px){ .sf-top{grid-template-columns:1fr} }

/* ── Bloques de página ────────────────────────────────── */
.v-sec{padding:6rem var(--gut)}
.v-sec.alt{background:var(--surface)}
.v-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2rem 4rem;align-items:end;margin-bottom:3rem}
.v-head.solo{grid-template-columns:minmax(0,1fr)}
.v-h2{font-family:'Sora',sans-serif;font-weight:800;font-size:clamp(2rem,3.6vw,3.05rem);line-height:1.08;letter-spacing:-.025em;max-width:22ch}
.v-intro{color:var(--text-dim);font-size:1.08rem;line-height:1.7;max-width:62ch}
.v-btn{display:inline-flex;align-items:center;justify-content:center;height:50px;padding:0 1.5rem;border-radius:10px;font:600 1rem 'DM Sans',sans-serif;text-decoration:none;border:1px solid transparent;cursor:pointer}
.v-btn-primary{background:linear-gradient(135deg,var(--blue),var(--red));color:#fff}
.v-btn-primary:hover{filter:brightness(1.08)}
.v-btn-ghost{border-color:var(--border);color:var(--text)}
.v-btn-ghost:hover{border-color:var(--blue-light)}
.v-actions{display:flex;flex-wrap:wrap;gap:.8rem}

/* Hero */
.v-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:4rem;align-items:center;padding:5rem var(--gut) 4.5rem;min-height:calc(88vh - var(--nav-h))}
.v-hero h1{font-family:'Sora',sans-serif;font-weight:800;font-size:clamp(2.6rem,5.4vw,4.9rem);line-height:1.02;letter-spacing:-.035em;max-width:16ch;margin-bottom:1.5rem}
.v-hero .v-lead{font-size:clamp(1.08rem,1.6vw,1.3rem);color:var(--text-dim);line-height:1.65;max-width:56ch;margin-bottom:2.2rem}

/* Panel "Lía en operación" — el elemento memorable */
.op{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);padding:1.6rem 1.7rem}
.op-head{display:flex;align-items:center;gap:.6rem;font-weight:600;font-size:.92rem;color:var(--text);margin-bottom:1.3rem}
.op-dot{width:9px;height:9px;border-radius:50%;background:var(--op);box-shadow:0 0 0 0 rgba(0,232,123,.5);animation:opPulse 2.4s ease-out infinite}
@keyframes opPulse{0%{box-shadow:0 0 0 0 rgba(0,232,123,.45)}70%{box-shadow:0 0 0 9px rgba(0,232,123,0)}100%{box-shadow:0 0 0 0 rgba(0,232,123,0)}}
.op-big{font-family:'Sora',sans-serif;font-weight:800;font-size:clamp(2.6rem,4.6vw,3.6rem);letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.op-big-l{color:var(--text-dim);font-size:.95rem;margin:.5rem 0 1.4rem}
.op-rows{display:grid;gap:.8rem;margin-bottom:1.4rem}
.op-row{display:grid;grid-template-columns:9.5rem minmax(0,1fr) 4.2rem;align-items:center;gap:.8rem;font-size:.88rem}
.op-row span:first-child{color:var(--text-dim)}
.op-bar{height:8px;border-radius:4px;background:var(--border);overflow:hidden}
.op-bar i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,var(--blue),var(--blue-light))}
.op-row b{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.op-foot{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding-top:1.2rem;border-top:1px solid var(--border)}
.op-foot b{display:block;font-family:'Sora',sans-serif;font-size:1.3rem;font-variant-numeric:tabular-nums}
.op-foot span{font-size:.82rem;color:var(--text-dim)}
.op-src{margin-top:1rem;font-size:.78rem;color:var(--text-muted)}

/* Cifras */
.v-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-block:1px solid var(--border)}
.v-stat{padding:2.2rem var(--gut);border-right:1px solid var(--border)}
.v-stat:last-child{border-right:0}
.v-stat b{display:block;font-family:'Sora',sans-serif;font-weight:800;font-size:clamp(2rem,3.4vw,2.9rem);letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.05}
.v-stat span{color:var(--text-dim);font-size:.95rem}

/* Áreas de servicio */
.v-areas{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--border)}
.v-area{padding:2rem 2rem 2.2rem 0;border-right:1px solid var(--border);display:flex;flex-direction:column}
.v-area+.v-area{padding-left:2rem}
.v-area:last-child{border-right:0}
.v-area h3{font-family:'Sora',sans-serif;font-weight:700;font-size:1.35rem;letter-spacing:-.01em;margin-bottom:.7rem}
.v-area p{color:var(--text-dim);font-size:.96rem;line-height:1.6;margin-bottom:1.2rem}
.v-area ul{list-style:none;margin:0 0 1.4rem;padding:0;display:grid;gap:.45rem}
.v-area li{font-size:.93rem;padding-left:1rem;position:relative}
.v-area li::before{content:'';position:absolute;left:0;top:.62em;width:5px;height:5px;border-radius:50%;background:var(--blue-light)}
.v-area li.own{font-weight:600}
.v-area .v-more{margin-top:auto;color:var(--blue-light);font-weight:600;text-decoration:none;font-size:.95rem}
.v-tag{display:inline-block;font-size:.72rem;font-weight:600;color:var(--op);border:1px solid currentColor;border-radius:999px;padding:.05rem .5rem;margin-left:.35rem;vertical-align:1px}

/* Soluciones */
.v-apps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2.5rem 3rem}
.v-apps h3{font-family:'Sora',sans-serif;font-weight:700;font-size:1.02rem;margin-bottom:.9rem;color:var(--text)}
.v-apps ul{list-style:none;margin:0;padding:0;display:grid;gap:.9rem}
.v-apps a{display:block;text-decoration:none;color:var(--text)}
.v-apps a b{display:block;font-weight:600;font-size:.98rem}
.v-apps a span{display:block;color:var(--text-dim);font-size:.88rem;line-height:1.45;margin-top:.15rem}
.v-apps a:hover b{color:var(--blue-light)}

/* Datacenter + MaxAI */
.v-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4rem;align-items:center}
.v-nums{display:grid;grid-template-columns:1fr 1fr;gap:2rem 2.5rem}
.v-nums b{display:block;font-family:'Sora',sans-serif;font-weight:800;font-size:clamp(1.9rem,3vw,2.6rem);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.v-nums span{color:var(--text-dim);font-size:.93rem;line-height:1.5}

/* Cobertura */
.v-offices{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--border)}
.v-office{padding:1.6rem 1.5rem 1.6rem 0;border-right:1px solid var(--border)}
.v-office+.v-office{padding-left:1.5rem}
.v-office:last-child{border-right:0}
.v-office b{display:block;font-family:'Sora',sans-serif;font-size:1.15rem;margin-bottom:.3rem}
.v-office span,.v-office a{color:var(--text-dim);font-size:.92rem;text-decoration:none}

/* Clientes y testimonios */
.v-logos{display:flex;flex-wrap:wrap;align-items:center;gap:2.5rem 4rem;margin-bottom:3.5rem}
.v-logos img{box-sizing:content-box;height:72px;width:auto;max-width:200px;object-fit:contain;filter:grayscale(1);opacity:.9;background:#fff;border-radius:10px;padding:14px 22px;transition:filter .2s}
.v-logos img:hover{filter:none}
.v-quotes{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:3rem}
.v-quote blockquote{font-family:'Sora',sans-serif;font-weight:600;font-size:clamp(1.3rem,2.2vw,1.75rem);line-height:1.35;letter-spacing:-.015em;margin:0 0 1.2rem}
.v-quote figcaption{color:var(--text-dim);font-size:.95rem}
.v-quote figcaption b{color:var(--text)}
.v-award{border-left:3px solid var(--blue);padding:.2rem 0 .2rem 1.5rem}
.v-award b{display:block;font-family:'Sora',sans-serif;font-weight:800;font-size:3.4rem;letter-spacing:-.04em;line-height:1}
.v-award p{color:var(--text-dim);margin-top:.6rem;line-height:1.6}

/* Marcas */
.v-brands{display:flex;flex-wrap:wrap;gap:.6rem}
.v-brands span{border:1px solid var(--border);border-radius:999px;padding:.45rem 1rem;font-size:.92rem;color:var(--text-dim)}

/* Preguntas frecuentes */
.v-faq{max-width:900px}
.v-faq details{border-bottom:1px solid var(--border)}
.v-faq summary{cursor:pointer;list-style:none;padding:1.3rem 2.5rem 1.3rem 0;font-weight:600;font-size:1.05rem;position:relative}
.v-faq summary::-webkit-details-marker{display:none}
.v-faq summary::after{content:'';position:absolute;right:.4rem;top:50%;width:9px;height:9px;border-right:2px solid var(--text-dim);border-bottom:2px solid var(--text-dim);transform:translateY(-70%) rotate(45deg);transition:transform .2s}
.v-faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.v-faq details p{color:var(--text-dim);line-height:1.7;padding:0 0 1.4rem;max-width:72ch}

/* Cierre */
.v-close{padding:6rem var(--gut);text-align:center;background:linear-gradient(135deg,rgba(10,102,191,.16),rgba(156,31,66,.14));border-top:1px solid var(--border)}
.v-close h2{font-family:'Sora',sans-serif;font-weight:800;font-size:clamp(2rem,4vw,3.2rem);letter-spacing:-.03em;margin-bottom:1rem}
.v-close p{color:var(--text-dim);font-size:1.1rem;max-width:56ch;margin:0 auto 2rem;line-height:1.65}
.v-close .v-actions{justify-content:center}

@media (max-width:1100px){
  .v-hero,.v-split,.v-quotes,.v-head{grid-template-columns:1fr}
  .v-hero{min-height:0;gap:3rem}
  .v-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .v-stat:nth-child(3){border-right:0}
  .v-areas{grid-template-columns:1fr 1fr}
  .v-area:nth-child(2){border-right:0}
  .v-area:nth-child(3){padding-left:0}
  .v-apps{grid-template-columns:repeat(3,minmax(0,1fr))}
  .v-offices{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:640px){
  .v-sec{padding:4rem var(--gut)}
  .v-areas,.v-apps,.v-offices{grid-template-columns:1fr}
  .v-nums{grid-template-columns:1fr 1fr}
  .v-area,.v-office{border-right:0;border-bottom:1px solid var(--border);padding-left:0}
  .v-stats{grid-template-columns:1fr 1fr}
  .v-stat{padding:1.6rem var(--gut);border-right:0;border-bottom:1px solid var(--border)}
  .v-stat:nth-child(odd){border-right:1px solid var(--border)}
  .v-stat:last-child{grid-column:1/-1;border-right:0;border-bottom:0}
  .v-area+.v-area,.v-office+.v-office{padding-left:0}
  .op-row{grid-template-columns:7.5rem minmax(0,1fr) 3.6rem}
}
@media (prefers-reduced-motion:reduce){ .op-dot{animation:none} }
.v-faq-more{margin-top:1.6rem}.v-faq-more a{color:var(--blue-light);font-weight:600;text-decoration:none}

/* ── Página: ciberseguridad ── */
/* Ciberseguridad (v2): mapa del programa, productos propios, flujo, marcas, emergencias. */
.cs-map{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);padding:1.6rem 1.7rem;display:grid;gap:1.4rem}
.cs-map-t{font-family:'Sora',sans-serif;font-weight:700;font-size:1.05rem}
.cs-map-g{display:grid;gap:.5rem;padding-top:1.2rem;border-top:1px solid var(--border)}
.cs-map-g p{font-size:.85rem;color:var(--text-dim);margin:0}
.cs-map-g ul{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}
.cs-map-g li{font-size:.95rem}
.cs-map-g li b{font-weight:600}
.cs-map-g li span{color:var(--text-dim)}
.cs-map-own li b{color:var(--blue-light)}
.cs-map-chips{display:flex;flex-wrap:wrap;gap:.45rem}
.cs-map-chips span{border:1px solid var(--border);border-radius:999px;padding:.25rem .75rem;font-size:.85rem;color:var(--text-dim)}

/* Productos propios: dos columnas con regla superior, sin cajas */
.cs-own{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3rem 4rem}
.cs-prod{border-top:3px solid var(--blue);padding-top:1.8rem;display:flex;flex-direction:column}
.cs-prod+.cs-prod{border-top-color:var(--red)}
.cs-prod h3{font-family:'Sora',sans-serif;font-weight:800;font-size:clamp(1.7rem,2.6vw,2.2rem);letter-spacing:-.025em;margin-bottom:.8rem}
.cs-prod>p{color:var(--text-dim);font-size:1.05rem;line-height:1.65;margin-bottom:1.4rem;max-width:58ch}
.cs-prod ul{list-style:none;margin:0 0 1.8rem;padding:0;display:grid;gap:.55rem}
.cs-prod li{position:relative;padding-left:1.1rem;font-size:.97rem;line-height:1.5}
.cs-prod li::before{content:'';position:absolute;left:0;top:.6em;width:6px;height:6px;border-radius:50%;background:var(--blue-light)}
.cs-prod .v-actions{margin-top:auto}
.cs-sub{display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;margin:-.6rem 0 1.8rem;font-size:.9rem}
.cs-sub a{color:var(--blue-light);text-decoration:none;font-weight:600}
.cs-sub a:hover{text-decoration:underline}

/* Listas con enlaces dentro de .v-area */
.cs-areas .v-area li a{color:var(--text);text-decoration:none}
.cs-areas .v-area li a:hover{color:var(--blue-light)}

/* Flujo ofensiva → defensa → vigilancia */
.cs-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--border)}
.cs-step{padding:2rem 2rem 0 0;position:relative}
.cs-step+.cs-step{padding-left:2rem;border-left:1px solid var(--border)}
.cs-step h3{font-family:'Sora',sans-serif;font-weight:700;font-size:1.4rem;margin-bottom:.7rem}
.cs-step p{color:var(--text-dim);line-height:1.65;font-size:.98rem}

/* Marcas: filas tipo tabla */
.cs-brands{border-top:1px solid var(--border)}
.cs-brand{display:grid;grid-template-columns:minmax(0,12rem) minmax(0,1fr) minmax(0,14rem);gap:1rem 2.5rem;align-items:baseline;padding:1.3rem 0;border-bottom:1px solid var(--border)}
.cs-brand b{font-family:'Sora',sans-serif;font-weight:700;font-size:1.15rem}
.cs-brand p{color:var(--text-dim);line-height:1.55;margin:0}
.cs-brand span,.cs-brand a{font-size:.9rem;color:var(--text-dim);text-decoration:none}
.cs-brand a{color:var(--blue-light);font-weight:600}
.cs-brand a:hover{text-decoration:underline}

/* Emergencias */
.cs-sos{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem 3rem;padding:2.6rem var(--gut);border-block:1px solid var(--border);background:var(--bg-card)}
.cs-sos h2{font-family:'Sora',sans-serif;font-weight:800;font-size:clamp(1.4rem,2.4vw,1.9rem);letter-spacing:-.02em;margin-bottom:.4rem}
.cs-sos p{color:var(--text-dim);margin:0;max-width:60ch;line-height:1.6}
.cs-sos a.v-btn{white-space:nowrap}

@media (max-width:1100px){
  .cs-own{grid-template-columns:1fr}
  .cs-brand{grid-template-columns:minmax(0,10rem) minmax(0,1fr)}
  .cs-brand>:last-child{grid-column:2}
}
@media (max-width:640px){
  .cs-flow{grid-template-columns:1fr}
  .cs-step,.cs-step+.cs-step{padding:1.6rem 0;border-left:0;border-bottom:1px solid var(--border)}
  .cs-brand{grid-template-columns:1fr;gap:.4rem}
  .cs-brand>:last-child{grid-column:auto}
  .cs-sos a.v-btn{white-space:normal;height:auto;min-height:50px;padding:.7rem 1.2rem}
}

/* ── Página: clientes ── */
/* /clientes: cifras, testimonios, logos, países y sectores. */
.cli-hero{padding:5.5rem var(--gut) 3.5rem}
.cli-hero h1{font-family:'Sora',sans-serif;font-weight:800;font-size:clamp(2.4rem,4.8vw,4.2rem);line-height:1.04;letter-spacing:-.035em;max-width:17ch;margin-bottom:1.4rem}
.cli-hero .v-lead{font-size:clamp(1.05rem,1.5vw,1.25rem);color:var(--text-dim);line-height:1.65;max-width:60ch}

.cli-quotes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.5rem 4rem;margin-top:4rem;padding-top:3rem;border-top:1px solid var(--border)}
.cli-quote{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:1.6rem;align-items:start}
.cli-quote img{grid-row:span 2;box-sizing:content-box;width:96px;height:56px;object-fit:contain;background:#fff;border-radius:10px;padding:10px 14px;border:1px solid var(--border)}
.cli-quote blockquote{margin:0 0 .8rem;font-size:1.12rem;line-height:1.55;color:var(--text)}
.cli-quote figcaption{color:var(--text-dim);font-size:.93rem}
.cli-quote figcaption b{color:var(--text)}

.cli-logos{margin-bottom:0}

.cli-countries{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-top:1px solid var(--border)}
.cli-countries li{padding:1.6rem 1.4rem 1.6rem 0;border-right:1px solid var(--border)}
.cli-countries li+li{padding-left:1.4rem}
.cli-countries li:last-child{border-right:0}
.cli-countries b{display:block;font-family:'Sora',sans-serif;font-size:1.12rem;margin-bottom:.35rem}
.cli-countries span{color:var(--text-dim);font-size:.9rem;line-height:1.5}

.cli-sectors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--border)}
.cli-sector{padding:2rem 2rem 2.2rem 0;border-bottom:1px solid var(--border)}
.cli-sector:not(:nth-child(3n)){border-right:1px solid var(--border)}
.cli-sector:not(:nth-child(3n+1)){padding-left:2rem}
.cli-sector h3{font-family:'Sora',sans-serif;font-weight:700;font-size:1.25rem;margin-bottom:.6rem}
.cli-sector p{color:var(--text-dim);font-size:.95rem;line-height:1.6}
.cli-sector-links{display:flex;flex-wrap:wrap;gap:.35rem 1.1rem;margin-top:.9rem}
.cli-sector-links a{color:var(--blue-light);font-weight:600;text-decoration:none;font-size:.93rem}
.cli-sector-links a:hover{text-decoration:underline;text-underline-offset:3px}

.cli-portal-actions{display:flex;flex-direction:column;align-items:flex-start;gap:1.2rem}
.cli-portal-actions p{color:var(--text-dim);font-size:.95rem}
.cli-portal-actions p a{color:var(--blue-light);text-decoration:none;font-weight:600}

@media (max-width:1100px){
  .cli-countries{grid-template-columns:repeat(3,minmax(0,1fr))}
  .cli-countries li:nth-child(3){border-right:0}
  .cli-countries li:nth-child(4){padding-left:0}
  .cli-countries li:nth-child(-n+3){border-bottom:1px solid var(--border)}
  .cli-sectors{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cli-sector{padding:2rem 1.5rem 2.2rem 0;border-right:0!important}
  .cli-sector:nth-child(odd){border-right:1px solid var(--border)!important}
  .cli-sector:nth-child(even){padding-left:1.5rem}
  .cli-sector:nth-child(odd){padding-left:0}
  .cli-quotes{grid-template-columns:1fr}
}
@media (max-width:640px){
  .cli-hero{padding-top:3.5rem}
  .cli-countries{grid-template-columns:1fr 1fr}
  .cli-countries li{padding:1.3rem 1rem 1.3rem 0;border-right:0;border-bottom:1px solid var(--border)}
  .cli-countries li+li{padding-left:0}
  .cli-countries li:nth-child(odd){border-right:1px solid var(--border)}
  .cli-countries li:nth-child(even){padding-left:1rem}
  .cli-sectors{grid-template-columns:1fr}
  .cli-sector,.cli-sector:nth-child(even){padding:1.6rem 0;border-right:0!important}
  .cli-quote{grid-template-columns:1fr}
  .cli-quote img{grid-row:auto;margin-bottom:1rem}
}

/* ── Página: desarrollo ── */
/* desarrollo: panel del flujo de un desarrollo y bloques DBA/soporte. */
.dev-flow{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);padding:1.6rem 1.7rem}
.dev-flow-t{font-weight:600;font-size:.92rem;margin-bottom:1.2rem}
.dev-flow ol{list-style:none;margin:0;padding:0;counter-reset:dev;display:grid;gap:0}
.dev-flow li{counter-increment:dev;display:grid;grid-template-columns:2.2rem minmax(0,1fr);gap:.8rem;padding:.85rem 0;border-top:1px solid var(--border);font-size:.95rem;line-height:1.5}
.dev-flow li:first-child{border-top:0;padding-top:0}
.dev-flow li::before{content:counter(dev);font-family:'Sora',sans-serif;font-weight:800;font-size:1.15rem;color:var(--blue-light);font-variant-numeric:tabular-nums}
.dev-flow li span{color:var(--text-dim);display:block;font-size:.88rem;margin-top:.15rem}

.dev-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;border-top:1px solid var(--border)}
.dev-two>div{padding:2rem 2.5rem 0 0}
.dev-two>div+div{padding-left:2.5rem;border-left:1px solid var(--border)}
.dev-two h3{font-family:'Sora',sans-serif;font-weight:700;font-size:1.35rem;margin-bottom:.7rem}
.dev-two p{color:var(--text-dim);line-height:1.65;margin-bottom:1.1rem;max-width:60ch}
.dev-two ul{list-style:none;margin:0 0 1.4rem;padding:0;display:grid;gap:.5rem}
.dev-two li{font-size:.95rem;padding-left:1rem;position:relative}
.dev-two li::before{content:'';position:absolute;left:0;top:.62em;width:5px;height:5px;border-radius:50%;background:var(--blue-light)}
.dev-two .v-more{color:var(--blue-light);font-weight:600;text-decoration:none}

@media (max-width:900px){
  .dev-two{grid-template-columns:1fr}
  .dev-two>div,.dev-two>div+div{padding:2rem 0;border-left:0}
  .dev-two>div+div{border-top:1px solid var(--border)}
}
.v-area li a{color:var(--text);text-decoration:none;border-bottom:1px solid var(--border)}
.v-area li a:hover{color:var(--blue-light);border-color:currentColor}

/* ── Página: empresa ── */
/* Empresa (/empresa): hero con ficha de la empresa + filas "cómo trabajamos". */
.emp-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:4rem;align-items:center;padding:5.5rem var(--gut) 4.5rem}
.emp-hero h1{font-family:'Sora',sans-serif;font-weight:800;font-size:clamp(2.4rem,4.8vw,4.4rem);line-height:1.03;letter-spacing:-.035em;max-width:18ch;margin-bottom:1.5rem}
.emp-lead{font-size:clamp(1.05rem,1.5vw,1.25rem);color:var(--text-dim);line-height:1.65;max-width:58ch;margin-bottom:2.2rem}

.emp-ficha{margin:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);padding:.3rem 1.6rem}
.emp-ficha>div{display:grid;grid-template-columns:7.5rem minmax(0,1fr);gap:1rem;padding:1rem 0;border-bottom:1px solid var(--border)}
.emp-ficha>div:last-child{border-bottom:0}
.emp-ficha dt{color:var(--text-dim);font-size:.9rem;padding-top:.1rem}
.emp-ficha dd{margin:0;font-weight:600;line-height:1.45}

.emp-ways{border-top:1px solid var(--border)}
.emp-way{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.2fr) minmax(0,.75fr);gap:1.5rem 4rem;padding:2.6rem 0;border-bottom:1px solid var(--border);align-items:start}
.emp-way h3{font-family:'Sora',sans-serif;font-weight:700;font-size:clamp(1.35rem,2.1vw,1.8rem);letter-spacing:-.02em;line-height:1.15}
.emp-way p{color:var(--text-dim);line-height:1.7;max-width:60ch}
.emp-fig b{display:block;font-family:'Sora',sans-serif;font-weight:800;font-size:clamp(1.9rem,3vw,2.6rem);letter-spacing:-.03em;line-height:1.05;font-variant-numeric:tabular-nums}
.emp-fig span{display:block;color:var(--text-dim);font-size:.92rem;line-height:1.5;margin-top:.35rem;max-width:30ch}

.emp-also{margin-top:2.5rem;color:var(--text-dim);font-size:1.02rem;line-height:1.7;max-width:80ch}
.emp-also a{color:var(--blue-light);font-weight:600;text-decoration:none}
.emp-also a:hover{text-decoration:underline}

@media (max-width:1100px){
  .emp-hero{grid-template-columns:minmax(0,1fr);gap:3rem}
  .emp-way{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}
  .emp-way .emp-fig{grid-column:2}
}
@media (max-width:640px){
  .emp-hero{padding:3.5rem var(--gut) 3rem}
  .emp-way{grid-template-columns:minmax(0,1fr);gap:1rem;padding:2rem 0}
  .emp-way .emp-fig{grid-column:auto}
  .emp-ficha{padding:.2rem 1.1rem}
  .emp-ficha>div{grid-template-columns:minmax(0,1fr);gap:.2rem}
}

/* ── Página: hosting ── */
/* hosting: hero interior compacto y recorrido real de una visita (Cloudflare → servidor → respaldo). */
.hs-hero{min-height:0;padding-top:4.5rem;padding-bottom:4.5rem}
.hs-path{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);padding:1.6rem 1.7rem}
.hs-path-t{font-weight:600;font-size:.92rem;margin-bottom:1.3rem}
.hs-path ol{list-style:none;margin:0;padding:0;display:grid;gap:0;position:relative}
.hs-path li{position:relative;padding:0 0 1.3rem 1.9rem}
.hs-path li:last-child{padding-bottom:0}
.hs-path li::before{content:'';position:absolute;left:0;top:.35em;width:11px;height:11px;border-radius:50%;border:2px solid var(--blue-light);background:var(--bg)}
.hs-path li::after{content:'';position:absolute;left:6px;top:1.25em;bottom:-.1em;width:1px;background:var(--border)}
.hs-path li:last-child::after{display:none}
.hs-path li.hs-cf::before{background:var(--blue-light)}
.hs-path b{display:block;font-family:'Sora',sans-serif;font-weight:700;font-size:1.02rem}
.hs-path span{display:block;color:var(--text-dim);font-size:.9rem;line-height:1.5;margin-top:.15rem}

.hs-layers{list-style:none;margin:0;padding:0;display:grid;gap:0;border-top:1px solid var(--border)}
.hs-layers li{display:grid;grid-template-columns:minmax(0,13rem) minmax(0,1fr);gap:1.5rem;padding:1.15rem 0;border-bottom:1px solid var(--border)}
.hs-layers b{font-weight:600}
.hs-layers span{color:var(--text-dim);line-height:1.6}
.hs-note{margin-top:1.6rem;color:var(--text-dim);line-height:1.7;max-width:62ch}
.hs-note a,.hs-next a{color:var(--blue-light);font-weight:600;text-decoration:none}

.hs-next{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--border)}
.hs-next>div{padding:2rem 2rem 0 0;border-right:1px solid var(--border)}
.hs-next>div+div{padding-left:2rem}
.hs-next>div:last-child{border-right:0}
.hs-next h3{font-family:'Sora',sans-serif;font-weight:700;font-size:1.25rem;margin-bottom:.6rem}
.hs-next p{color:var(--text-dim);line-height:1.6;margin-bottom:1rem}

@media (max-width:900px){
  .hs-next{grid-template-columns:1fr}
  .hs-next>div,.hs-next>div+div{padding:1.6rem 0;border-right:0;border-bottom:1px solid var(--border)}
  .hs-layers li{grid-template-columns:1fr;gap:.3rem}
}

/* ── Página: lia-autonomous ── */
/* lia-autonomous: secuencia real de trabajo y capacidades por frente. */
.lia-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--border);counter-reset:lia}
.lia-steps li{counter-increment:lia;padding:1.8rem 1.6rem 0 0;border-right:1px solid var(--border)}
.lia-steps li+li{padding-left:1.6rem}
.lia-steps li:last-child{border-right:0}
.lia-steps li::before{content:counter(lia);display:block;font-family:'Sora',sans-serif;font-weight:800;font-size:2.2rem;line-height:1;color:var(--blue-light);margin-bottom:1rem;font-variant-numeric:tabular-nums}
.lia-steps h3{font-family:'Sora',sans-serif;font-weight:700;font-size:1.1rem;margin-bottom:.5rem}
.lia-steps p{color:var(--text-dim);font-size:.94rem;line-height:1.6}
.lia-guard{margin-top:2.5rem;padding:1.4rem 0 0;border-top:1px solid var(--border);color:var(--text-dim);max-width:80ch;line-height:1.7}
.lia-guard b{color:var(--text)}

.lia-caps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--border)}
.lia-cap{padding:2rem 2rem 0 0;border-right:1px solid var(--border)}
.lia-cap+.lia-cap{padding-left:2rem}
.lia-cap:last-child{border-right:0}
.lia-cap h3{font-family:'Sora',sans-serif;font-weight:700;font-size:1.3rem;margin-bottom:1.2rem}
.lia-cap dl{margin:0;display:grid;gap:1.1rem}
.lia-cap dt{font-weight:600;font-size:.98rem}
.lia-cap dd{margin:.2rem 0 0;color:var(--text-dim);font-size:.92rem;line-height:1.55}

.lia-apps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2rem 2.5rem}
.lia-apps a{display:block;text-decoration:none;color:var(--text)}
.lia-apps b{display:block;font-family:'Sora',sans-serif;font-weight:700;font-size:1.05rem;margin-bottom:.4rem}
.lia-apps span{display:block;color:var(--text-dim);font-size:.92rem;line-height:1.55}
.lia-apps a:hover b{color:var(--blue-light)}
.lia-seal{font-family:'Sora',sans-serif;font-weight:600;font-size:clamp(1.15rem,1.8vw,1.4rem);line-height:1.45;max-width:58ch;margin-bottom:2.5rem;padding-left:1.4rem;border-left:3px solid var(--blue)}

@media (max-width:1100px){
  .lia-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lia-steps li,.lia-steps li+li{padding:1.6rem 1.4rem 1.6rem 0;border-right:0;border-bottom:1px solid var(--border)}
  .lia-steps li:nth-child(even){padding-left:1.4rem}
  .lia-caps{grid-template-columns:1fr}
  .lia-cap,.lia-cap+.lia-cap{padding:2rem 0;border-right:0;border-bottom:1px solid var(--border)}
  .lia-apps{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .lia-steps,.lia-apps{grid-template-columns:1fr}
  .lia-steps li:nth-child(even){padding-left:0}
}

/* ── Página: nube ── */
/* Nube y productividad (v2): panel de catálogo, listas de licencias por grupo. */
#microsoft-365,#copilot,#azure,#telefonia{scroll-margin-top:calc(var(--nav-h) + 1rem)}

.nb-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);padding:1.6rem 1.7rem}
.nb-panel-big{font-family:'Sora',sans-serif;font-weight:800;font-size:clamp(2.6rem,4.6vw,3.6rem);letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.nb-panel-l{color:var(--text-dim);font-size:.95rem;margin:.5rem 0 1.3rem}
.nb-panel ul{list-style:none;margin:0;padding:1.2rem 0 0;border-top:1px solid var(--border);display:grid;gap:.1rem}
.nb-panel li a{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;color:var(--text);text-decoration:none;font-size:.97rem;border-bottom:1px solid var(--border)}
.nb-panel li:last-child a{border-bottom:0}
.nb-panel li a span{color:var(--text-dim);font-size:.88rem}
.nb-panel li a:hover{color:var(--blue-light)}

/* Grupos de licencias: filas con etiqueta a la izquierda */
.nb-groups{border-top:1px solid var(--border)}
.nb-group{display:grid;grid-template-columns:minmax(0,11rem) minmax(0,1fr);gap:.4rem 2rem;padding:1.1rem 0;border-bottom:1px solid var(--border)}
.nb-group>p{font-weight:600;color:var(--text);margin:0;font-size:.95rem}
.nb-group ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.45rem}
.nb-group li{border:1px solid var(--border);border-radius:999px;padding:.3rem .85rem;font-size:.9rem;color:var(--text-dim)}

.nb-text p{color:var(--text-dim);font-size:1.05rem;line-height:1.7;max-width:60ch;margin-top:1.3rem}
.nb-text .v-actions{margin-top:2rem}
.nb-link{color:var(--blue-light);font-weight:600;text-decoration:none}
.nb-link:hover{text-decoration:underline}

@media (max-width:640px){
  .nb-group{grid-template-columns:1fr}
}
.nb-h3{font-size:clamp(1.4rem,2.2vw,1.8rem)}

/* ── Página: preguntas-frecuentes ── */
/* Preguntas frecuentes (/preguntas-frecuentes): índice de temas fijo + grupos. */
.pf-hero{padding:5rem var(--gut) 3.5rem;border-bottom:1px solid var(--border)}
.pf-hero h1{font-family:'Sora',sans-serif;font-weight:800;font-size:clamp(2.4rem,4.8vw,4.4rem);line-height:1.03;letter-spacing:-.035em;margin-bottom:1.3rem}
.pf-lead{font-size:clamp(1.05rem,1.5vw,1.25rem);color:var(--text-dim);line-height:1.65;max-width:62ch}

.pf-layout{display:grid;grid-template-columns:minmax(0,17rem) minmax(0,1fr);gap:4rem;padding:3.5rem var(--gut) 6rem}
.pf-index{position:sticky;top:calc(var(--nav-h) + 2rem);align-self:start}
.pf-index-t{font-family:'Sora',sans-serif;font-weight:700;font-size:.98rem;margin-bottom:.8rem}
.pf-index-list{list-style:none;margin:0;padding:0;border-left:1px solid var(--border)}
.pf-index-list a{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0 .5rem 1rem;margin-left:-1px;border-left:2px solid transparent;color:var(--text-dim);text-decoration:none;font-size:.93rem;line-height:1.35}
.pf-index-list a:hover{color:var(--text);border-left-color:var(--blue-light)}
.pf-index-list b{font-weight:500;color:var(--text-muted);font-variant-numeric:tabular-nums}

.pf-groups{min-width:0}
.pf-group{scroll-margin-top:calc(var(--nav-h) + 1.5rem);padding-bottom:3.5rem}
.pf-group+.pf-group{padding-top:3.5rem;border-top:1px solid var(--border)}
.pf-group h2{font-family:'Sora',sans-serif;font-weight:800;font-size:clamp(1.6rem,2.6vw,2.2rem);letter-spacing:-.025em;line-height:1.12;margin-bottom:.6rem}
.pf-desc{color:var(--text-dim);font-size:1.02rem;line-height:1.6;max-width:62ch}
.pf-links{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;margin:.9rem 0 1rem}
.pf-links a{color:var(--blue-light);font-weight:600;font-size:.94rem;text-decoration:none}
.pf-links a:hover{text-decoration:underline}
.pf-group .v-faq details p a{color:var(--blue-light)}

@media (max-width:900px){
  .pf-layout{grid-template-columns:minmax(0,1fr);gap:2rem;padding-top:2rem}
  .pf-index{position:static}
  .pf-index-list{border-left:0;display:flex;flex-wrap:wrap;gap:.5rem}
  .pf-index-list a{border:1px solid var(--border);border-radius:999px;padding:.4rem .9rem;margin:0;gap:.6rem}
  .pf-index-list a:hover{border-color:var(--blue-light)}
}
@media (max-width:640px){
  .pf-hero{padding:3.5rem var(--gut) 2.5rem}
}

/* ── Página: soluciones ── */
/* /soluciones: catálogo de las 25 soluciones propias. */
.sol-hero{padding:5.5rem var(--gut) 3.5rem;border-bottom:1px solid var(--border)}
.sol-hero h1{font-family:'Sora',sans-serif;font-weight:800;font-size:clamp(2.4rem,4.8vw,4.2rem);line-height:1.04;letter-spacing:-.035em;max-width:18ch;margin-bottom:1.4rem}
.sol-hero .v-lead{font-size:clamp(1.05rem,1.5vw,1.25rem);color:var(--text-dim);line-height:1.65;max-width:62ch}
.sol-jump{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:2.4rem}
.sol-jump a{display:inline-flex;align-items:center;gap:.55rem;border:1px solid var(--border);border-radius:999px;padding:.5rem .6rem .5rem 1.05rem;color:var(--text);text-decoration:none;font-size:.95rem;font-weight:500}
.sol-jump a:hover{border-color:var(--blue-light)}
.sol-count{display:inline-grid;place-items:center;min-width:1.7rem;height:1.7rem;border-radius:999px;background:var(--surface);color:var(--text-dim);font-size:.8rem;font-weight:600;font-variant-numeric:tabular-nums}

.sol-area{display:grid;grid-template-columns:minmax(0,.62fr) minmax(0,2fr);gap:2.5rem 4.5rem;align-items:start;scroll-margin-top:var(--nav-h)}
.sol-area-head{position:sticky;top:calc(var(--nav-h) + 2rem)}
.sol-area-head .v-h2{font-size:clamp(1.8rem,2.8vw,2.4rem)}
.sol-area-head .v-intro{margin-top:1rem;font-size:1rem}
.sol-list{border-top:1px solid var(--border)}
.sol-item{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.7fr) minmax(0,1fr);gap:1.2rem 2.5rem;padding:2.1rem 0;border-bottom:1px solid var(--border);scroll-margin-top:calc(var(--nav-h) + 1rem)}
.sol-item:target{background:linear-gradient(90deg,rgba(26,138,237,.08),transparent 70%)}
.sol-name h3{font-family:'Sora',sans-serif;font-weight:700;font-size:1.3rem;letter-spacing:-.01em;line-height:1.2}
.sol-cat{display:block;color:var(--text-muted);font-size:.88rem;margin-top:.35rem}
.sol-desc{color:var(--text);font-size:1.02rem;line-height:1.62}
.sol-inc,.sol-lia,.sol-for{font-size:.92rem;line-height:1.6;color:var(--text-dim)}
.sol-inc{margin-top:.85rem}
.sol-k{display:block;font-weight:600;color:var(--text);font-size:.84rem;margin-bottom:.15rem}
.sol-lia{margin-top:.95rem;padding-left:.9rem;border-left:2px solid var(--blue-light)}
.sol-lia .sol-k{color:var(--blue-light)}
.sol-proof{margin-top:.9rem;font-size:.92rem;color:var(--text);font-weight:500}
.sol-links{display:flex;flex-wrap:wrap;gap:.4rem 1.3rem;margin-top:1rem}
.sol-meta .sol-for+.sol-links{margin-top:1.1rem}
.sol-meta .sol-links:first-child{margin-top:0}
.sol-links a{color:var(--blue-light);font-weight:600;text-decoration:none;font-size:.94rem}
.sol-links a:hover{text-decoration:underline;text-underline-offset:3px}

.sol-liamore{margin-top:1.4rem}
.sol-liamore a{color:var(--blue-light);font-weight:600;text-decoration:none}
.sol-steps{list-style:none;margin:0;padding:0;counter-reset:sol;display:grid;gap:0;border-top:1px solid var(--border)}
.sol-steps li{counter-increment:sol;display:grid;grid-template-columns:2.4rem minmax(0,1fr);column-gap:1rem;padding:1.15rem 0;border-bottom:1px solid var(--border)}
.sol-steps li::before{content:counter(sol);grid-row:span 2;font-family:'Sora',sans-serif;font-weight:800;font-size:1.3rem;color:var(--blue-light);font-variant-numeric:tabular-nums}
.sol-steps b{font-family:'Sora',sans-serif;font-weight:700;font-size:1.05rem}
.sol-steps span{color:var(--text-dim);font-size:.94rem;line-height:1.55}

@media (max-width:1100px){
  .sol-area{grid-template-columns:1fr}
  .sol-area-head{position:static}
}
@media (max-width:760px){
  .sol-hero{padding-top:3.5rem}
  .sol-item{grid-template-columns:1fr;gap:.75rem}
}

/* ── Página: vps ── */
/* vps: hoja de especificación a la medida y guía hosting / VPS / colocation. */
.vp-hero{min-height:0;padding-top:4.5rem;padding-bottom:4.5rem}
.vp-spec{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);padding:1.6rem 1.7rem}
.vp-spec-t{font-weight:600;font-size:.92rem;margin-bottom:1.1rem}
.vp-spec dl{margin:0;display:grid}
.vp-spec dl>div{display:grid;grid-template-columns:minmax(0,9rem) minmax(0,1fr);gap:1rem;padding:.8rem 0;border-top:1px solid var(--border)}
.vp-spec dl>div:first-child{border-top:0;padding-top:0}
.vp-spec dt{color:var(--text-dim);font-size:.9rem}
.vp-spec dd{margin:0;font-weight:600;font-size:.95rem}
.vp-spec-f{margin-top:1.1rem;padding-top:1rem;border-top:1px solid var(--border);color:var(--text-dim);font-size:.86rem;line-height:1.55}

.vp-facts{list-style:none;margin:2rem 0 0;padding:0;display:grid;gap:.55rem}
.vp-facts li{padding-left:1rem;position:relative;color:var(--text-dim);line-height:1.55}
.vp-facts li::before{content:'';position:absolute;left:0;top:.62em;width:5px;height:5px;border-radius:50%;background:var(--blue-light)}
.vp-facts b{color:var(--text);font-weight:600}

.vp-pick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--border)}
.vp-pick>div{padding:2rem 2rem 0 0;border-right:1px solid var(--border)}
.vp-pick>div+div{padding-left:2rem}
.vp-pick>div:last-child{border-right:0}
.vp-pick h3{font-family:'Sora',sans-serif;font-weight:700;font-size:1.25rem;margin-bottom:.6rem}
.vp-pick p{color:var(--text-dim);line-height:1.6;margin-bottom:1rem}
.vp-pick a{color:var(--blue-light);font-weight:600;text-decoration:none}

@media (max-width:900px){
  .vp-pick{grid-template-columns:1fr}
  .vp-pick>div,.vp-pick>div+div{padding:1.6rem 0;border-right:0;border-bottom:1px solid var(--border)}
  .vp-spec dl>div{grid-template-columns:1fr;gap:.2rem}
}

/* ══ FX: movimiento con intención ═══════════════════════════════════════
   Un momento orquestado al cargar (hero), cifras reales que cuentan, barras
   de Lía que se llenan, secciones que entran al hacer scroll y respuesta al
   hover. Todo se apaga con prefers-reduced-motion. */
:root{--fx-ease:cubic-bezier(.2,.7,.2,1);--fx-grid:rgba(255,255,255,.05)}
body.light{--fx-grid:rgba(10,40,80,.07)}
@property --fx-a{syntax:'<angle>';inherits:false;initial-value:0deg}

/* Hero vivo: auras de marca que derivan + retícula que se desvanece */
.v-hero,.cli-hero,.emp-hero,.pf-hero,.sol-hero{position:relative;isolation:isolate;overflow:hidden}
.v-hero::before,.cli-hero::before,.emp-hero::before,.pf-hero::before,.sol-hero::before{
  content:'';position:absolute;inset:-25%;z-index:-2;pointer-events:none;
  background:
    radial-gradient(34% 42% at 20% 32%,rgba(10,102,191,.32),transparent 70%),
    radial-gradient(28% 38% at 80% 68%,rgba(156,31,66,.26),transparent 70%),
    radial-gradient(22% 28% at 62% 18%,rgba(26,138,237,.20),transparent 70%);
  filter:blur(24px);animation:fxDrift 24s ease-in-out infinite alternate}
body.light .v-hero::before,body.light .cli-hero::before,body.light .emp-hero::before,body.light .pf-hero::before,body.light .sol-hero::before{opacity:.55}
.v-hero::after,.cli-hero::after,.emp-hero::after,.pf-hero::after,.sol-hero::after{
  content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:linear-gradient(var(--fx-grid) 1px,transparent 1px),linear-gradient(90deg,var(--fx-grid) 1px,transparent 1px);
  background-size:56px 56px;
  -webkit-mask-image:radial-gradient(ellipse 70% 65% at 35% 45%,#000 25%,transparent 75%);
          mask-image:radial-gradient(ellipse 70% 65% at 35% 45%,#000 25%,transparent 75%)}
@keyframes fxDrift{0%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(4%,-3%,0) scale(1.08)}100%{transform:translate3d(-3%,4%,0) scale(1)}}

/* Entrada orquestada del hero (una sola vez, al cargar) */
@keyframes fxUp{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes fxFade{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
.v-hero>div>*,.cli-hero>*,.emp-hero>*>*,.pf-hero>*,.sol-hero>*,.l-hero .l-inner>*{animation:fxUp .85s var(--fx-ease) both}
.v-hero>div>:nth-child(2),.cli-hero>:nth-child(2),.emp-hero>*>:nth-child(2),.pf-hero>:nth-child(2),.sol-hero>:nth-child(2),.l-hero .l-inner>:nth-child(2){animation-delay:.12s}
.v-hero>div>:nth-child(3),.cli-hero>:nth-child(3),.emp-hero>*>:nth-child(3),.pf-hero>:nth-child(3),.sol-hero>:nth-child(3),.l-hero .l-inner>:nth-child(3){animation-delay:.24s}
.v-hero>div>:nth-child(4),.cli-hero>:nth-child(4),.emp-hero>*>:nth-child(4),.pf-hero>:nth-child(4),.sol-hero>:nth-child(4),.l-hero .l-inner>:nth-child(4){animation-delay:.36s}
.v-hero>div>:nth-child(n+5),.l-hero .l-inner>:nth-child(n+5){animation-delay:.48s}
.v-hero>aside,.v-hero>div+div{animation:fxFade 1s var(--fx-ease) .35s both}

/* Panel de Lía: borde con un haz de luz que recorre el contorno */
.op{position:relative;border:1px solid transparent;
  background:linear-gradient(var(--bg-card),var(--bg-card)) padding-box,
             linear-gradient(var(--bg),var(--bg)) padding-box,
             conic-gradient(from var(--fx-a),var(--border) 0 62%,var(--blue-light) 75%,var(--red) 85%,var(--border) 96%) border-box;
  animation:fxSpin 7s linear infinite;box-shadow:0 30px 80px -30px rgba(10,102,191,.35)}
@keyframes fxSpin{to{--fx-a:360deg}}
.op-bar i{position:relative;overflow:hidden;transition:width 1.5s var(--fx-ease)}
.op-bar i::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transform:translateX(-100%);animation:fxShine 3.2s ease-in-out 1.8s infinite}
@keyframes fxShine{0%{transform:translateX(-100%)}45%,100%{transform:translateX(100%)}}

/* Revelado al hacer scroll (la clase la pone sgs-chrome.js; sin JS todo se ve) */
.fx-r{opacity:0;transform:translateY(24px);transition:opacity .75s var(--fx-ease),transform .75s var(--fx-ease);transition-delay:var(--fx-d,0s)}
.fx-r.fx-on{opacity:1;transform:none}

/* Respuesta al hover: un filo de marca aparece sobre el bloque */
.v-area,.v-apps>div,.v-office,.v-stat,.l-cards>*{position:relative}
.v-area::after,.v-apps>div::after,.v-office::after,.v-stat::after{content:'';position:absolute;left:0;right:0;top:-1px;height:2px;background:linear-gradient(90deg,var(--blue),var(--blue-light),var(--red));transform:scaleX(0);transform-origin:left;transition:transform .5s var(--fx-ease)}
.v-area:hover::after,.v-apps>div:hover::after,.v-office:hover::after,.v-stat:hover::after{transform:scaleX(1)}
.v-area,.v-office{transition:background .4s}
.v-area:hover,.v-office:hover{background:linear-gradient(180deg,rgba(26,138,237,.06),transparent 70%)}
.v-apps li a{transition:transform .25s var(--fx-ease)}
.v-apps li a:hover{transform:translateX(4px)}
.l-cards>*{transition:transform .35s var(--fx-ease),box-shadow .35s,border-color .35s}
.l-cards>*:hover{transform:translateY(-4px);box-shadow:0 18px 40px -18px rgba(10,102,191,.45);border-color:var(--blue-light)}

/* Botones principales: el degradado se desplaza y el botón se eleva */
.v-btn-primary,.sn-btn-primary{background:linear-gradient(120deg,var(--blue),var(--red) 50%,var(--blue));background-size:200% 100%;transition:background-position .6s var(--fx-ease),transform .25s var(--fx-ease),box-shadow .25s}
.v-btn-primary:hover,.sn-btn-primary:hover{background-position:100% 0;transform:translateY(-2px);box-shadow:0 12px 30px -10px rgba(10,102,191,.6);filter:none}
.v-btn-ghost{transition:border-color .25s,transform .25s var(--fx-ease)}
.v-btn-ghost:hover{transform:translateY(-2px)}

/* Menú: sombra al hacer scroll y despliegue suave */
.sn{transition:box-shadow .3s}
.sn.scrolled{box-shadow:0 10px 30px -12px rgba(0,0,0,.45)}
body.light .sn.scrolled{box-shadow:0 10px 30px -14px rgba(12,16,24,.18)}
.sn-has.open>.sn-mega{animation:fxDrop .22s var(--fx-ease)}
@media (hover:hover) and (min-width:1281px){ .sn-has:hover>.sn-mega{animation:fxDrop .22s var(--fx-ease)} }
@keyframes fxDrop{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

/* Cierre: el degradado de marca respira */
.v-close{background-size:220% 220%;background-image:linear-gradient(135deg,rgba(10,102,191,.20),rgba(156,31,66,.16),rgba(26,138,237,.14),rgba(156,31,66,.16));animation:fxBreath 16s ease-in-out infinite alternate}
@keyframes fxBreath{from{background-position:0% 50%}to{background-position:100% 50%}}

@media (prefers-reduced-motion:reduce){
  .v-hero::before,.cli-hero::before,.emp-hero::before,.pf-hero::before,.sol-hero::before,.op,.op-bar i::after,.v-close{animation:none}
  .v-hero>div>*,.cli-hero>*,.emp-hero>*>*,.pf-hero>*,.sol-hero>*,.l-hero .l-inner>*,.v-hero>aside,.v-hero>div+div{animation:none}
  .fx-r{opacity:1;transform:none;transition:none}
  .op-bar i{transition:none}
}
