/* Tipografías servidas desde este mismo sitio.
   Antes venían de Google Fonts: dos conexiones a un tercero más una hoja de estilos que
   frena el dibujado de la página hasta que llega. Y desde que los navegadores separan la
   caché por sitio, lo de "ya la tiene cargada de otra web" dejó de ser cierto.
   Son las versiones variables: un archivo por familia con todos los pesos adentro, en vez
   de cuatro archivos sueltos. Y solo el subconjunto `latin`, que ya cubre á é í ó ú ñ ¿ ¡.
   `font-display: swap` viene adentro de cada regla: el texto se ve de entrada con la
   tipografía del sistema y cambia cuando llega la buena, en vez de dejar un hueco en blanco.
   Total: 73 KB. El juego de pesos sueltos pesaba 512 KB. */

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url(/assets/fonts/inter-variable.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 600 700;
  font-display: swap;
  src: url(/assets/fonts/sora-variable.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Estilos compartidos del sitio de Brote Tech.
   Vivían dentro de index.html; se sacaron acá para que las páginas por rubro usen los
   mismos sin copiarlos, y para que el navegador los descargue una sola vez para todo el
   sitio en vez de una vez por página. */

:root{
  --bg:#ffffff; --bg-soft:#f4f7f5; --ink:#0b1410; --ink-soft:#4a5a52;
  --line:#e2e9e4; --brand:#16a34a; --brand-deep:#0f7a37; --brand-tint:#e8f6ed;
  --card:#ffffff; --shadow:0 1px 2px rgba(11,20,16,.05),0 8px 24px -12px rgba(11,20,16,.12);
  --radius:16px;
}
@media (prefers-color-scheme:dark){
  :root{--bg:#0b1410;--bg-soft:#111d17;--ink:#eef4f0;--ink-soft:#9cb0a5;--line:#1e2f26;
  --brand:#34d27b;--brand-deep:#23b767;--brand-tint:#12241a;--card:#101c16;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 12px 32px -16px rgba(0,0,0,.7);}
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);
  font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:Sora,Inter,sans-serif;line-height:1.15;letter-spacing:-.02em;margin:0}
p{margin:0}
a{color:inherit}
.wrap{width:min(1080px,100% - 40px);margin-inline:auto}
.eyebrow{font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--brand-deep)}
@media (prefers-color-scheme:dark){.eyebrow{color:var(--brand)}}

/* nav */
header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 88%,transparent);
  backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0}
.brand{display:flex;align-items:center;gap:10px;font-family:Sora;font-weight:700;letter-spacing:-.01em;text-decoration:none}
.mark{width:30px;height:30px;flex:none}
.nav-links{display:flex;gap:26px;font-size:15px;color:var(--ink-soft)}
.nav-links a{text-decoration:none}
.nav-links a:hover{color:var(--brand-deep)}
@media(max-width:1080px){.nav-links{display:none}}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 22px;border-radius:999px;
  font-weight:600;font-size:15px;text-decoration:none;border:1px solid transparent;transition:.18s ease;white-space:nowrap}
.btn-primary{background:var(--brand-deep);color:#fff}
.btn-primary:hover{background:var(--brand);transform:translateY(-1px)}
@media (prefers-color-scheme:dark){.btn-primary{background:var(--brand);color:#06130c}}
.btn-ghost{border-color:var(--line);color:var(--ink)}
.btn-ghost:hover{border-color:var(--brand);color:var(--brand-deep)}

/* hero */
.hero{padding:88px 0 72px;position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:-40% 40% auto -20%;height:560px;
  background:radial-gradient(closest-side,var(--brand-tint),transparent);pointer-events:none}
.hero-inner{position:relative;max-width:780px}
.hero h1{font-size:clamp(34px,6.2vw,60px);font-weight:700;margin:18px 0 20px}
.hero h1 .hl{color:var(--brand-deep);position:relative;white-space:nowrap}
@media (prefers-color-scheme:dark){.hero h1 .hl{color:var(--brand)}}
.hero p.lead{font-size:clamp(17px,2.2vw,20px);color:var(--ink-soft);max-width:620px}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.hero-note{margin-top:18px;font-size:14px;color:var(--ink-soft)}

/* strip */
.strip{border-block:1px solid var(--line);background:var(--bg-soft)}
.strip ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px 32px;
  list-style:none;margin:0;padding:26px 0;font-size:15px;color:var(--ink-soft)}
.strip li{display:flex;gap:10px;align-items:flex-start}
.strip svg{flex:none;margin-top:3px;color:var(--brand-deep)}
@media (prefers-color-scheme:dark){.strip svg{color:var(--brand)}}

section{padding:80px 0}
.sec-head{max-width:640px;margin-bottom:44px}
.sec-head h2{font-size:clamp(26px,4vw,38px);margin:12px 0 14px}
.sec-head p{color:var(--ink-soft)}

/* cards */
.grid{display:grid;gap:20px}
.g3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:28px;box-shadow:var(--shadow);display:flex;flex-direction:column}
.card h3{font-size:20px;margin-bottom:10px}
.card p{color:var(--ink-soft);font-size:15.5px}
.icon{width:44px;height:44px;border-radius:12px;background:var(--brand-tint);color:var(--brand-deep);
  display:grid;place-items:center;margin-bottom:18px}
@media (prefers-color-scheme:dark){.icon{color:var(--brand)}}

/* precios */
.price-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));align-items:start}
.plan{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:30px;box-shadow:var(--shadow);position:relative;display:flex;flex-direction:column;height:100%}
.plan.featured{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand),0 20px 40px -20px rgba(22,163,74,.4)}
.tag{position:absolute;top:-12px;left:30px;background:var(--brand-deep);color:#fff;font-size:12px;
  font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:5px 12px;border-radius:999px}
@media (prefers-color-scheme:dark){.tag{background:var(--brand);color:#06130c}}
.plan h3{font-size:19px}
.price{font-family:Sora;font-size:30px;font-weight:700;margin:14px 0 4px;letter-spacing:-.03em}
.price small{font-size:14px;font-weight:400;color:var(--ink-soft);letter-spacing:0}
.plan ul{list-style:none;margin:20px 0 26px;padding:0;display:grid;gap:11px;font-size:15px;color:var(--ink-soft)}
.plan li{display:flex;gap:10px}
.plan li::before{content:"";width:16px;height:16px;flex:none;margin-top:4px;border-radius:50%;
  background:var(--brand-tint);
  background-image:linear-gradient(transparent,transparent);
  box-shadow:inset 0 0 0 1.5px var(--brand)}
.plan .btn{margin-top:auto;justify-content:center}
.price-foot{margin-top:24px;font-size:14.5px;color:var(--ink-soft)}

/* proceso */
.steps{counter-reset:s;display:grid;gap:4px}
.step{display:grid;grid-template-columns:56px 1fr;gap:20px;padding:24px 0;border-top:1px solid var(--line)}
.step:last-child{border-bottom:1px solid var(--line)}
.step .n{counter-increment:s;font-family:Sora;font-weight:700;font-size:15px;color:var(--brand-deep);
  width:40px;height:40px;border-radius:50%;background:var(--brand-tint);display:grid;place-items:center}
.step .n::before{content:"0" counter(s)}
@media (prefers-color-scheme:dark){.step .n{color:var(--brand)}}
.step h3{font-size:18px;margin-bottom:6px}
.step p{color:var(--ink-soft);font-size:15.5px}

/* diferencia */
.split{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}
.vs{border-radius:var(--radius);padding:28px;border:1px solid var(--line)}
.vs.bad{background:var(--bg-soft)}
.vs.good{background:var(--brand-tint);border-color:color-mix(in srgb,var(--brand) 40%,transparent)}
.vs h3{font-size:17px;margin-bottom:16px}
.vs ul{list-style:none;margin:0;padding:0;display:grid;gap:12px;font-size:15.5px;color:var(--ink-soft)}
.vs.good ul{color:var(--ink)}
.vs li{display:flex;gap:10px}
.vs li span{flex:none;font-weight:700}
.vs.bad li span{color:#b4483f}
.vs.good li span{color:var(--brand-deep)}
@media (prefers-color-scheme:dark){.vs.good li span{color:var(--brand)}.vs.bad li span{color:#e8867c}}

/* faq */
details{border-bottom:1px solid var(--line);padding:20px 0}
summary{cursor:pointer;font-weight:600;font-family:Sora;font-size:17px;list-style:none;
  display:flex;justify-content:space-between;gap:16px;align-items:center}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-size:22px;color:var(--brand-deep);font-weight:400;transition:.2s}
details[open] summary::after{transform:rotate(45deg)}
@media (prefers-color-scheme:dark){summary::after{color:var(--brand)}}
details p{color:var(--ink-soft);margin-top:12px;font-size:15.5px;max-width:70ch}

/* cta final */
.final{background:var(--bg-soft);border-block:1px solid var(--line)}
.final .box{text-align:center;max-width:680px;margin-inline:auto}
.final h2{font-size:clamp(26px,4.4vw,40px);margin-bottom:16px}
.final p{color:var(--ink-soft);margin-bottom:28px}

footer{padding:44px 0;font-size:14.5px;color:var(--ink-soft)}
.foot{display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;align-items:center}
.foot a{text-decoration:none}
.foot a:hover{color:var(--brand-deep)}

/* whatsapp flotante */
.fab{position:fixed;right:18px;bottom:18px;z-index:60;width:56px;height:56px;border-radius:50%;
  background:#25D366;color:#fff;display:grid;place-items:center;box-shadow:0 10px 30px -8px rgba(37,211,102,.6);
  text-decoration:none;transition:.18s}
.fab:hover{transform:scale(1.06)}

/* demos */
.demos{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(296px,1fr))}
.demo{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:24px;box-shadow:var(--shadow);display:flex;flex-direction:column;
  text-decoration:none;color:inherit;transition:.18s ease}
.demo:hover,.demo:focus-visible{border-color:var(--brand);transform:translateY(-2px);
  box-shadow:0 14px 34px -18px rgba(22,163,74,.5)}
.demo .rubro{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--brand-deep)}
@media (prefers-color-scheme:dark){.demo .rubro{color:var(--brand)}}
.demo h3{font-size:18px;margin:9px 0 8px}
.demo p{color:var(--ink-soft);font-size:15px;flex:1}
.demo .abrir{margin-top:18px;font-weight:600;font-size:15px;color:var(--brand-deep);
  display:inline-flex;align-items:center;gap:7px}
@media (prefers-color-scheme:dark){.demo .abrir{color:var(--brand)}}
.demo:hover .abrir svg{transform:translate(2px,-2px)}
.demo .abrir svg{transition:transform .18s ease}
.demos-nota{margin-top:26px;font-size:14.5px;color:var(--ink-soft);
  border-left:3px solid var(--brand);padding:2px 0 2px 16px;max-width:700px}
@media (prefers-reduced-motion:reduce){
  .demo,.demo .abrir svg,.btn-primary{transition:none}
  .demo:hover,.demo:focus-visible{transform:none}
}

/* formulario */
.o-bien{margin:26px 0 20px!important;font-size:14.5px;position:relative}
.o-bien::before,.o-bien::after{content:"";position:absolute;top:50%;width:14%;height:1px;background:var(--line)}
.o-bien::before{left:6%}.o-bien::after{right:6%}
.form{display:grid;grid-template-columns:1fr 1fr;gap:16px;text-align:left}
.campo{display:flex;flex-direction:column;gap:7px}
.campo-ancho{grid-column:1/-1}
.form label{font-size:14px;font-weight:600;color:var(--ink)}
.form .opc{font-weight:400;color:var(--ink-soft)}
.form input,.form select,.form textarea{
  font:inherit;font-size:15.5px;color:var(--ink);background:var(--card);
  border:1px solid var(--line);border-radius:11px;padding:12px 14px;width:100%;
  transition:border-color .16s ease,box-shadow .16s ease}
.form textarea{resize:vertical;min-height:84px}
.form input:focus-visible,.form select:focus-visible,.form textarea:focus-visible{
  outline:none;border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 22%,transparent)}
.form input[aria-invalid="true"]{border-color:#c0473c}
.form-pie{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:4px}
.form-pie .btn{width:100%;justify-content:center}
.form-nota{font-size:13.5px;color:var(--ink-soft);margin:0!important}
.form-estado{margin:0!important;font-size:15px;text-align:center;display:none}
.form-estado[data-tipo]{display:block;padding:14px 16px;border-radius:11px}
.form-estado[data-tipo="ok"]{background:var(--brand-tint);color:var(--brand-deep);
  border:1px solid color-mix(in srgb,var(--brand) 40%,transparent)}
@media (prefers-color-scheme:dark){.form-estado[data-tipo="ok"]{color:var(--brand)}}
.form-estado[data-tipo="error"]{background:color-mix(in srgb,#c0473c 10%,transparent);
  color:#b4483f;border:1px solid color-mix(in srgb,#c0473c 35%,transparent)}
@media (prefers-color-scheme:dark){.form-estado[data-tipo="error"]{color:#e8867c}}
/* La trampa para robots: fuera de pantalla, NO display:none — hay robots que saltean
   los campos ocultos con display y llenan todo lo demás. */
.trampa{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
@media(max-width:620px){.form{grid-template-columns:1fr}}

/* enlaces a las páginas por rubro */
.rubros{margin-top:34px;padding-top:28px;border-top:1px solid var(--line)}
.rubros-tit{font-size:15px;color:var(--ink-soft);margin:0 0 14px}
.rubros-links{display:flex;flex-wrap:wrap;gap:10px}
.rubros-links a{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:999px;
  border:1px solid var(--line);background:var(--card);font-size:14.5px;font-weight:600;
  text-decoration:none;color:var(--ink);transition:.16s ease}
.rubros-links a:hover{border-color:var(--brand);color:var(--brand-deep)}
.rubros-links a::after{content:"→";font-weight:400;color:var(--ink-soft)}
.rubros-links a:hover::after{color:var(--brand-deep)}
@media (prefers-color-scheme:dark){.rubros-links a:hover,.rubros-links a:hover::after{color:var(--brand)}}

/* Saltar al contenido: invisible hasta que alguien llega con el teclado. Sin esto, quien
   navega tabulando tiene que pasar por todo el menú en cada página antes de llegar a lo
   que vino a leer. */
.saltar{position:absolute;left:-9999px;top:0;z-index:100;background:var(--brand-deep);
  color:#fff;padding:12px 20px;border-radius:0 0 12px 0;font-weight:600;text-decoration:none}
.saltar:focus{left:0}
@media (prefers-color-scheme:dark){.saltar{background:var(--brand);color:#06130c}}

/* ═══════════════════════════════════════════════════════════════════════════
   Movimiento y secciones nuevas (26 sep 2026)
   Todo con CSS y un poco de JavaScript propio: sin librerías. Cada animación
   respeta "reducir movimiento" del sistema, y ningún contenido depende de que el
   JavaScript cargue — si no carga, la página se ve completa y quieta.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Pantalla de carga ──
   Solo la primera vez de cada visita y dura poco más de un segundo: el logo se dibuja
   y se abre paso a la página. Se esconde sola por CSS aunque el JavaScript falle. */
.cargador{position:fixed;inset:0;z-index:200;display:grid;place-items:center;background:var(--bg);
  animation:cargador-fuera .5s ease 1.25s forwards}
.cargador-in{display:flex;flex-direction:column;align-items:center;gap:16px;color:var(--brand-deep)}
@media (prefers-color-scheme:dark){.cargador-in{color:var(--brand)}}
.cargador svg{width:74px;height:74px}
.cargador .trazo{stroke-dasharray:130;stroke-dashoffset:130;animation:trazar .9s ease forwards}
.cargador .hoja{opacity:0;transform-origin:20px 20px;animation:brotar .5s cubic-bezier(.3,1.5,.5,1) .55s forwards}
.cargador-txt{font-family:Sora,Inter,sans-serif;font-weight:700;letter-spacing:.32em;font-size:14px;color:var(--ink);
  opacity:0;animation:aparecer .5s ease .6s forwards}
.cargador-barra{width:120px;height:3px;border-radius:3px;background:var(--line);overflow:hidden}
.cargador-barra::after{content:"";display:block;height:100%;width:100%;background:var(--brand);
  transform:translateX(-100%);animation:llenar 1.1s ease forwards}
html.ya-visto .cargador{display:none}
@keyframes trazar{to{stroke-dashoffset:0}}
@keyframes brotar{from{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}
@keyframes aparecer{to{opacity:1}}
@keyframes llenar{to{transform:translateX(0)}}
@keyframes cargador-fuera{to{opacity:0;visibility:hidden}}

/* ── Barra de progreso de lectura ── */
.progreso{position:fixed;top:0;left:0;right:0;height:3px;z-index:70;pointer-events:none;
  background:linear-gradient(90deg,var(--brand-deep),var(--brand));
  transform-origin:0 50%;transform:scaleX(var(--p,0))}

/* ── Encabezado que se compacta al bajar ── */
header{transition:box-shadow .25s ease,background-color .25s ease}
header .nav{transition:padding .25s ease}
header.bajo{box-shadow:0 10px 30px -18px rgba(11,20,16,.35)}
header.bajo .nav{padding:9px 0}
.nav-links a{position:relative;padding:4px 0}
.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;border-radius:2px;
  background:var(--brand);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.nav-links a:hover::after,.nav-links a[aria-current="true"]::after{transform:scaleX(1)}
.nav-links a[aria-current="true"]{color:var(--ink)}

/* ── Menú en el celular ──
   Antes, debajo de 860px el menú desaparecía sin reemplazo: en el celular no había
   forma de saltar a Precios o a Contacto. */
.menu-btn{display:none;width:44px;height:44px;border-radius:12px;border:1px solid var(--line);
  background:var(--card);color:var(--ink);cursor:pointer;place-items:center;flex:none}
.menu-btn span{display:block;width:18px;height:2px;border-radius:2px;background:currentColor;position:relative;transition:.25s}
.menu-btn span::before,.menu-btn span::after{content:"";position:absolute;left:0;width:18px;height:2px;border-radius:2px;background:currentColor;transition:.25s}
.menu-btn span::before{top:-6px}.menu-btn span::after{top:6px}
.menu-btn[aria-expanded="true"] span{background:transparent}
.menu-btn[aria-expanded="true"] span::before{top:0;transform:rotate(45deg)}
.menu-btn[aria-expanded="true"] span::after{top:0;transform:rotate(-45deg)}
@media(max-width:1080px){
  .menu-btn{display:grid}
  .nav>.btn-primary{display:none}
  .nav-links{position:absolute;top:100%;left:0;right:0;display:flex;flex-direction:column;gap:0;
    background:var(--bg);border-bottom:1px solid var(--line);padding:8px 20px 20px;
    box-shadow:0 24px 40px -24px rgba(11,20,16,.35);
    clip-path:inset(0 0 100% 0);opacity:0;pointer-events:none;transition:clip-path .3s ease,opacity .3s ease}
  .nav-links.abierto{clip-path:inset(0 0 0 0);opacity:1;pointer-events:auto}
  .nav-links a{padding:14px 0;border-bottom:1px solid var(--line);font-size:17px;color:var(--ink)}
  .nav-links a::after{display:none}
  .nav-links .btn{margin-top:16px;justify-content:center;border-bottom:0;color:#fff}
}
@media(min-width:1081px){.nav-links .solo-movil{display:none}}
@media (prefers-color-scheme:dark){.nav-links .btn{color:#06130c}}

/* ── Aparición al hacer scroll ──
   Solo se esconde lo que el JavaScript va a volver a mostrar (html.js lo pone el propio
   script del <head>). Sin JavaScript, todo se ve de entrada. */
html.js [data-rev]{opacity:0;transform:translateY(26px);
  transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);
  transition-delay:var(--d,0s)}
html.js [data-rev="izq"]{transform:translateX(-30px)}
html.js [data-rev="der"]{transform:translateX(30px)}
html.js [data-rev="zoom"]{transform:scale(.94)}
html.js [data-rev].visto{opacity:1;transform:none}

/* ── Hero con maqueta animada ── */
.hero{padding:72px 0 64px}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center}
.hero-grid .hero-inner{max-width:none}
@media(max-width:920px){.hero-grid{grid-template-columns:1fr}.maqueta{margin-top:12px}}
.hero .eyebrow,.hero h1,.hero .lead,.hero-cta,.hero-note{animation:subir .8s cubic-bezier(.2,.7,.2,1) both}
.hero h1{animation-delay:.08s}.hero .lead{animation-delay:.16s}.hero-cta{animation-delay:.24s}.hero-note{animation-delay:.32s}
html.con-cargador:not(.ya-visto) .hero .eyebrow,html.con-cargador:not(.ya-visto) .hero h1,html.con-cargador:not(.ya-visto) .hero .lead,
html.con-cargador:not(.ya-visto) .hero-cta,html.con-cargador:not(.ya-visto) .hero-note{animation-delay:calc(1.35s + var(--hd,0s))}
.hero h1{--hd:.08s}.hero .lead{--hd:.16s}.hero-cta{--hd:.24s}.hero-note{--hd:.32s}
@keyframes subir{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.hero h1 .hl::after{content:"";position:absolute;left:0;right:0;bottom:.04em;height:.22em;z-index:-1;
  background:color-mix(in srgb,var(--brand) 26%,transparent);border-radius:4px;
  transform:scaleX(0);transform-origin:left;animation:subrayar .8s cubic-bezier(.2,.7,.2,1) .7s forwards}
html.con-cargador:not(.ya-visto) .hero h1 .hl::after{animation-delay:2s}
@keyframes subrayar{to{transform:scaleX(1)}}
.hero::after{content:"";position:absolute;right:-12%;top:-10%;width:520px;height:520px;border-radius:50%;
  background:radial-gradient(closest-side,color-mix(in srgb,var(--brand) 16%,transparent),transparent);
  pointer-events:none;animation:flotar-lento 12s ease-in-out infinite alternate}
@keyframes flotar-lento{to{transform:translate(-60px,50px)}}

.maqueta{position:relative;height:460px;display:grid;place-items:center}
.telefono{position:relative;width:236px;height:450px;border-radius:36px;background:#0b1410;padding:10px;
  box-shadow:0 40px 70px -30px rgba(11,20,16,.55),inset 0 0 0 2px #26352d;animation:flotar 6s ease-in-out infinite}
@keyframes flotar{50%{transform:translateY(-12px)}}
.pantalla{height:100%;border-radius:28px;background:#f6faf7;overflow:hidden;display:flex;flex-direction:column;color:#0b1410}
.pt-top{flex:none;background:linear-gradient(135deg,#0f7a37,#16a34a);color:#fff;padding:26px 16px 14px}
.pt-top b{display:block;font-family:Sora;font-size:15px}
.pt-top small{display:block;font-size:11px;line-height:1.35;opacity:.85;margin-top:2px}
.pt-chat{flex:1;min-height:0;overflow:hidden;padding:14px 12px;display:flex;flex-direction:column;gap:8px;font-size:11.5px;line-height:1.4}
.burbuja{max-width:82%;padding:8px 11px;border-radius:14px;opacity:0;transform:translateY(8px) scale(.96);
  animation:chat 9s ease infinite}
.burbuja.cli{align-self:flex-end;background:#dcf5e4;border-bottom-right-radius:4px}
.burbuja.bot{align-self:flex-start;background:#fff;border:1px solid #e2e9e4;border-bottom-left-radius:4px}
.burbuja:nth-child(1){animation-delay:.2s}.burbuja:nth-child(2){animation-delay:1.3s}
.burbuja:nth-child(3){animation-delay:2.6s}.burbuja:nth-child(4){animation-delay:3.8s}
@keyframes chat{0%{opacity:0;transform:translateY(8px) scale(.96)}6%,86%{opacity:1;transform:none}94%,100%{opacity:0;transform:none}}
.escribiendo{align-self:flex-start;display:flex;gap:4px;padding:10px 12px;background:#fff;border:1px solid #e2e9e4;border-radius:14px;
  opacity:0;animation:chat 9s ease 5s infinite}
.escribiendo i{width:6px;height:6px;border-radius:50%;background:#9cb0a5;animation:punto 1s ease-in-out infinite}
.escribiendo i:nth-child(2){animation-delay:.15s}.escribiendo i:nth-child(3){animation-delay:.3s}
@keyframes punto{50%{transform:translateY(-4px);background:#16a34a}}
.pt-barra{flex:none;margin:0 12px 14px;padding:9px 12px;border-radius:999px;background:#fff;border:1px solid #e2e9e4;font-size:11px;color:#8a9a92}
.aviso{position:absolute;display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);
  border-radius:14px;padding:10px 14px;box-shadow:var(--shadow);font-size:13px;line-height:1.3;white-space:nowrap}
.aviso b{display:block;font-family:Sora;font-size:13px;color:var(--ink)}
.aviso span{color:var(--ink-soft);font-size:12px}
.aviso .ico{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:var(--brand-tint);color:var(--brand-deep);flex:none}
@media (prefers-color-scheme:dark){.aviso .ico{color:var(--brand)}}
.aviso.a1{top:-6px;left:0;animation:asomar 9s ease 2.8s infinite both}
.aviso.a2{bottom:70px;right:0;animation:asomar 9s ease 4.4s infinite both}
@keyframes asomar{0%{opacity:0;transform:translateY(10px) scale(.9)}8%,82%{opacity:1;transform:none}92%,100%{opacity:0;transform:translateY(-6px)}}
@media(max-width:520px){.maqueta{height:420px}.telefono{transform:scale(.92)}.aviso.a1{left:-4px}.aviso.a2{right:-4px}}

/* ── Cinta de rubros en movimiento ── */
.cinta{overflow:hidden;border-bottom:1px solid var(--line);padding:18px 0;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.cinta-pista{display:flex;gap:14px;width:max-content;animation:correr 38s linear infinite}
.cinta:hover .cinta-pista{animation-play-state:paused}
.cinta-pista span{padding:8px 16px;border-radius:999px;border:1px solid var(--line);background:var(--card);
  font-size:14px;font-weight:600;color:var(--ink-soft);white-space:nowrap}
@keyframes correr{to{transform:translateX(-50%)}}

/* ── Números ── */
.numeros{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
@media(max-width:820px){.numeros{grid-template-columns:repeat(2,1fr)}}
.numero{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}
.numero strong{display:block;font-family:Sora;font-size:clamp(30px,4.4vw,42px);letter-spacing:-.03em;color:var(--brand-deep);line-height:1.1}
@media (prefers-color-scheme:dark){.numero strong{color:var(--brand)}}
.numero span{display:block;margin-top:6px;font-size:14.5px;color:var(--ink-soft)}
section.numeros-sec{padding:56px 0 8px}

/* ── Tarjetas con más vida ── */
.card,.plan,.numero,.valor{transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.card:hover,.valor:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--brand) 45%,var(--line));
  box-shadow:0 22px 40px -24px rgba(22,163,74,.45)}
.plan:hover{transform:translateY(-4px)}
.card .icon{transition:transform .35s cubic-bezier(.3,1.6,.5,1),background-color .25s}
.card:hover .icon{transform:rotate(-8deg) scale(1.1)}
.card .mas{margin-top:18px;font-size:14.5px;color:var(--ink-soft);display:grid;gap:7px;padding:0;list-style:none}
.card .mas li{display:flex;gap:9px}
.card .mas li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--brand);margin-top:10px;flex:none}

/* ── Nosotros ── */
.nosotros{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
@media(max-width:880px){.nosotros{grid-template-columns:1fr;gap:36px}}
.nosotros-texto p{color:var(--ink-soft);margin-bottom:16px}
.nosotros-texto p strong{color:var(--ink)}
.historia{position:relative;border-radius:24px;padding:34px;background:linear-gradient(160deg,#0f7a37,#0b3f22);color:#eaf7ef;overflow:hidden}
.historia::before{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;border:34px solid rgba(255,255,255,.06)}
.historia h3{font-size:20px;color:#fff;margin-bottom:22px;position:relative}
.linea{list-style:none;margin:0;padding:0;position:relative;display:grid;gap:20px}
.linea::before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:rgba(255,255,255,.2)}
.linea li{position:relative;padding-left:32px;font-size:15px;line-height:1.55;color:#cfe9d9}
.linea li::before{content:"";position:absolute;left:0;top:5px;width:16px;height:16px;border-radius:50%;background:#34d27b;box-shadow:0 0 0 4px rgba(52,210,123,.22)}
.linea b{display:block;color:#fff;font-family:Sora;font-size:15px;margin-bottom:2px}

.mv{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-top:56px}
.mv article{border-radius:var(--radius);padding:28px;border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow)}
.mv h3{font-size:19px;margin:8px 0 10px}
.mv p{color:var(--ink-soft);font-size:15.5px}
.valores{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:20px}
.valor{border-radius:var(--radius);padding:22px;border:1px solid var(--line);background:var(--bg-soft)}
.valor h4{font-family:Sora;font-size:16px;margin:0 0 6px}
.valor p{font-size:14.5px;color:var(--ink-soft)}

.persona{display:flex;gap:18px;align-items:center;margin-top:26px;padding:20px;border-radius:var(--radius);
  background:var(--bg-soft);border:1px solid var(--line)}
.avatar{width:58px;height:58px;border-radius:50%;flex:none;display:grid;place-items:center;font-family:Sora;font-weight:700;
  font-size:20px;color:#fff;background:linear-gradient(135deg,#16a34a,#0f7a37)}
.persona b{display:block;font-family:Sora}
.persona span{font-size:14.5px;color:var(--ink-soft)}

/* ── Contacto ── */
.contacto{display:grid;grid-template-columns:.9fr 1.1fr;gap:36px;align-items:start}
@media(max-width:900px){.contacto{grid-template-columns:1fr}}
.canales{display:grid;gap:14px}
.canal{display:flex;gap:16px;align-items:center;padding:18px 20px;border-radius:var(--radius);border:1px solid var(--line);
  background:var(--card);text-decoration:none;color:inherit;box-shadow:var(--shadow);transition:transform .2s ease,border-color .2s ease}
a.canal:hover{transform:translateX(4px);border-color:var(--brand)}
.canal .ico{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;flex:none;background:var(--brand-tint);color:var(--brand-deep)}
@media (prefers-color-scheme:dark){.canal .ico{color:var(--brand)}}
.canal .ico.wa{background:#25D366;color:#fff}
.canal b{display:block;font-family:Sora;font-size:15.5px}
.canal span{font-size:14.5px;color:var(--ink-soft);word-break:break-word}
.caja-form{border-radius:24px;padding:30px;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow)}
.caja-form h3{font-size:21px;margin-bottom:6px}
.caja-form>p{color:var(--ink-soft);font-size:15px;margin-bottom:22px}
.pestanas{display:flex;gap:6px;padding:5px;border-radius:999px;background:var(--bg-soft);border:1px solid var(--line);margin-bottom:22px}
.pestanas button{flex:1;font:inherit;font-size:14.5px;font-weight:600;padding:10px 12px;border-radius:999px;border:0;
  background:transparent;color:var(--ink-soft);cursor:pointer;transition:background-color .2s,color .2s}
.pestanas button[aria-selected="true"]{background:var(--card);color:var(--ink);box-shadow:0 2px 8px -3px rgba(11,20,16,.25)}
.panel-form[hidden]{display:none}
.form-correo{display:grid;gap:16px;grid-template-columns:1fr}
.form-correo .fila{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:620px){.form-correo .fila{grid-template-columns:1fr}}
.form-correo .btn{justify-content:center;width:100%}

/* ── Pie ampliado ── */
footer{border-top:1px solid var(--line);padding:56px 0 30px}
.pie{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
@media(max-width:820px){.pie{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.pie{grid-template-columns:1fr}}
.pie h2{font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);margin-bottom:14px;font-family:Inter,sans-serif;font-weight:600}
.pie ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.pie a{text-decoration:none}
.pie a:hover{color:var(--brand-deep)}
.pie .brand{margin-bottom:12px;color:var(--ink)}
.pie-base{margin-top:40px;padding-top:22px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;font-size:13.5px}

/* WhatsApp flotante: un latido suave para que se note sin molestar */
.fab::before{content:"";position:absolute;inset:0;border-radius:50%;background:#25D366;z-index:-1;animation:latido 2.6s ease-out infinite}
@keyframes latido{0%{transform:scale(1);opacity:.55}80%,100%{transform:scale(1.7);opacity:0}}

/* Volver arriba */
.arriba{position:fixed;right:22px;bottom:86px;z-index:60;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);
  background:var(--card);color:var(--ink);display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow);
  opacity:0;transform:translateY(10px);pointer-events:none;transition:.25s ease}
.arriba.ver{opacity:1;transform:none;pointer-events:auto}
.arriba:hover{border-color:var(--brand);color:var(--brand-deep)}

/* FAQ que se abre con suavidad */
details p{animation:subir .35s ease both}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .cargador{display:none}
  html.js [data-rev]{opacity:1;transform:none}
  .burbuja,.escribiendo,.aviso,.hero h1 .hl::after{animation:none!important;opacity:1;transform:none}
  .cinta-pista{animation:none}
}

/* ═══════════════════════════════════════════════════════════════════════════
   Sitio de varias páginas (26 sep 2026)
   Menú con submenús, cabecera de página interna, índices de sección, fichas de
   servicio con barra lateral y bloques de contenido para las páginas especializadas.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Menú con submenús ── */
.nav-item{position:relative;display:flex;align-items:center}
.nav-item>a{display:inline-flex;align-items:center;gap:5px}
.nav-item>a .flecha{width:10px;height:10px;transition:transform .25s ease;opacity:.6}
.sub{position:absolute;top:calc(100% + 14px);left:-18px;min-width:250px;padding:10px;border-radius:16px;
  background:var(--card);border:1px solid var(--line);box-shadow:0 24px 48px -20px rgba(11,20,16,.35);
  display:grid;gap:2px;opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .2s ease,transform .2s ease,visibility .2s}
.sub::before{content:"";position:absolute;left:0;right:0;top:-16px;height:16px}
.sub a{padding:9px 12px!important;border-radius:10px;font-size:14.5px;color:var(--ink);white-space:nowrap}
.sub a::after{display:none}
.sub a:hover,.sub a[aria-current="page"]{background:var(--brand-tint);color:var(--brand-deep)}
@media (prefers-color-scheme:dark){.sub a:hover,.sub a[aria-current="page"]{color:var(--brand)}}
.sub .sub-tit{font-size:11.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);padding:10px 12px 4px;border-top:1px solid var(--line);margin-top:6px}
@media(min-width:1081px){
  .nav-item:hover .sub,.nav-item:focus-within .sub{opacity:1;visibility:visible;transform:none}
  .nav-item:hover>a .flecha,.nav-item:focus-within>a .flecha{transform:rotate(180deg)}
}
.nav-links a[aria-current="page"]{color:var(--ink)}
.nav-links>a[aria-current="page"]::after,.nav-item>a[aria-current="page"]::after{transform:scaleX(1)}
@media(max-width:1080px){
  .nav-links{max-height:calc(100vh - 70px);overflow-y:auto}
  .nav-item{flex-direction:column;align-items:stretch}
  .nav-item>a .flecha{display:none}
  .sub{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;background:transparent;
    padding:0 0 8px 14px;min-width:0;border-left:2px solid var(--line);margin:0 0 6px 2px;border-radius:0}
  .sub::before{display:none}
  .sub a{padding:9px 10px!important;font-size:15.5px;color:var(--ink-soft);border-bottom:0!important}
  .sub .sub-tit{border-top:0;margin-top:0;padding:8px 10px 2px}
}

/* ── Cabecera de las páginas internas ── */
.pagina-hero{position:relative;overflow:hidden;padding:64px 0 56px;border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,var(--bg-soft),var(--bg))}
.pagina-hero::before{content:"";position:absolute;right:-140px;top:-160px;width:460px;height:460px;border-radius:50%;
  border:60px solid color-mix(in srgb,var(--brand) 9%,transparent);animation:girar 40s linear infinite}
.pagina-hero::after{content:"";position:absolute;left:-120px;bottom:-200px;width:380px;height:380px;border-radius:50%;
  background:radial-gradient(closest-side,color-mix(in srgb,var(--brand) 14%,transparent),transparent);animation:flotar-lento 14s ease-in-out infinite alternate}
@keyframes girar{to{transform:rotate(360deg)}}
.pagina-hero .wrap{position:relative;z-index:1}
.pagina-hero h1{font-size:clamp(32px,5.4vw,54px);font-weight:700;margin:14px 0 18px;max-width:860px}
.pagina-hero h1 .hl{color:var(--brand-deep)}
@media (prefers-color-scheme:dark){.pagina-hero h1 .hl{color:var(--brand)}}
.pagina-hero .lead{font-size:clamp(17px,2.1vw,19.5px);color:var(--ink-soft);max-width:700px}
.pagina-hero .hero-cta{margin-top:28px}
.pagina-hero .eyebrow,.pagina-hero h1,.pagina-hero .lead,.pagina-hero .hero-cta,.miga{animation:subir .7s cubic-bezier(.2,.7,.2,1) both}
.pagina-hero h1{animation-delay:.06s}.pagina-hero .lead{animation-delay:.12s}.pagina-hero .hero-cta{animation-delay:.18s}

/* Migas: dónde está uno y cómo volver */
.miga{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;color:var(--ink-soft);margin-bottom:22px;list-style:none;padding:0}
.miga a{text-decoration:none;color:var(--ink-soft)}
.miga a:hover{color:var(--brand-deep)}
.miga li+li::before{content:"/";margin-right:8px;opacity:.5}
.volver{display:inline-flex;align-items:center;gap:7px;font-size:14.5px;font-weight:600;text-decoration:none;color:var(--brand-deep);margin-bottom:18px}
@media (prefers-color-scheme:dark){.volver{color:var(--brand)}}
.volver svg{transition:transform .2s}
.volver:hover svg{transform:translateX(-3px)}

/* Pestañas entre páginas hermanas (Nosotros → Historia, Misión…) */
.hermanas{position:sticky;top:calc(var(--alto-header,68px) - 1px);z-index:40;background:color-mix(in srgb,var(--bg) 92%,transparent);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.hermanas .wrap{display:flex;gap:6px;overflow-x:auto;padding:10px 0;scrollbar-width:none}
.hermanas .wrap::-webkit-scrollbar{display:none}
.hermanas a{flex:none;padding:8px 16px;border-radius:999px;font-size:14.5px;font-weight:600;text-decoration:none;color:var(--ink-soft);border:1px solid transparent;transition:.2s}
.hermanas a:hover{color:var(--ink);border-color:var(--line)}
.hermanas a[aria-current="page"]{background:var(--brand-deep);color:#fff}
@media (prefers-color-scheme:dark){.hermanas a[aria-current="page"]{background:var(--brand);color:#06130c}}

/* ── Índice de una sección: tarjetas que llevan a cada página ── */
.indice{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.puerta{position:relative;display:flex;flex-direction:column;gap:12px;padding:28px;border-radius:20px;border:1px solid var(--line);
  background:var(--card);box-shadow:var(--shadow);text-decoration:none;color:inherit;overflow:hidden;
  transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.puerta::after{content:"";position:absolute;left:28px;right:28px;bottom:0;height:3px;border-radius:3px 3px 0 0;background:var(--brand);
  transform:scaleX(.15);transform-origin:left;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.puerta:hover{transform:translateY(-5px);border-color:color-mix(in srgb,var(--brand) 45%,var(--line));box-shadow:0 24px 44px -24px rgba(22,163,74,.45)}
.puerta:hover::after{transform:scaleX(1)}
.puerta .icon{margin-bottom:4px;transition:transform .35s cubic-bezier(.3,1.6,.5,1)}
.puerta:hover .icon{transform:rotate(-8deg) scale(1.1)}
.puerta h3{font-size:19px}
.puerta p{color:var(--ink-soft);font-size:15px;flex:1}
.puerta .ir{font-weight:600;font-size:14.5px;color:var(--brand-deep);display:inline-flex;align-items:center;gap:6px}
@media (prefers-color-scheme:dark){.puerta .ir{color:var(--brand)}}
.puerta .ir svg{transition:transform .2s}
.puerta:hover .ir svg{transform:translateX(4px)}
.puerta.grande{padding:34px}
.puerta.grande h3{font-size:22px}

/* ── Ficha con barra lateral (servicios) ── */
.ficha{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:48px;align-items:start}
@media(max-width:940px){.ficha{grid-template-columns:minmax(0,1fr)}}
.ficha-main>*+*{margin-top:52px}
.ficha-main h2{font-size:clamp(24px,3.4vw,32px);margin-bottom:14px}
.ficha-main .texto p{color:var(--ink-soft);margin-bottom:14px}
.ficha-main .texto p strong{color:var(--ink)}
.lateral{position:sticky;top:calc(var(--alto-header,68px) + 20px);display:grid;gap:18px}
@media(max-width:940px){.lateral{position:static}}
.caja{border-radius:20px;padding:26px;border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow)}
.caja h3{font-size:17px;margin-bottom:10px}
.caja p{color:var(--ink-soft);font-size:15px}
.caja .price{margin:6px 0 2px}
.caja .btn{width:100%;justify-content:center;margin-top:18px}
.caja.verde{background:linear-gradient(160deg,#0f7a37,#0b3f22);border-color:transparent;color:#eaf7ef}
.caja.verde h3{color:#fff}.caja.verde p{color:#cfe9d9}
.caja.verde .btn{background:#fff;color:#0b3f22}
.caja ul.enlaces{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.caja ul.enlaces a{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:10px;text-decoration:none;font-size:15px;transition:.2s}
.caja ul.enlaces a:hover,.caja ul.enlaces a[aria-current="page"]{background:var(--brand-tint);color:var(--brand-deep)}
@media (prefers-color-scheme:dark){.caja ul.enlaces a:hover,.caja ul.enlaces a[aria-current="page"]{color:var(--brand)}}

.incluye{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}
.incluye li{display:flex;gap:12px;align-items:flex-start;padding:16px 18px;border-radius:14px;background:var(--bg-soft);border:1px solid var(--line);font-size:15.5px}
.incluye li svg{flex:none;margin-top:3px;color:var(--brand-deep)}
@media (prefers-color-scheme:dark){.incluye li svg{color:var(--brand)}}
.incluye li b{display:block;font-family:Sora;font-size:15px;margin-bottom:2px}
.incluye li span{color:var(--ink-soft);font-size:14.5px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips span{padding:8px 15px;border-radius:999px;background:var(--brand-tint);color:var(--brand-deep);font-weight:600;font-size:14px}
@media (prefers-color-scheme:dark){.chips span{color:var(--brand)}}

/* ── Bloques de las páginas de Nosotros ── */
.dos{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
@media(max-width:880px){.dos{grid-template-columns:1fr;gap:32px}}
.texto-largo p{color:var(--ink-soft);margin-bottom:16px;font-size:17px}
.texto-largo p strong{color:var(--ink)}
.cita{margin:0;padding:28px 30px;border-radius:20px;background:var(--brand-tint);border:1px solid color-mix(in srgb,var(--brand) 30%,transparent);
  font-family:Sora;font-size:clamp(19px,2.4vw,24px);line-height:1.4;color:var(--ink);position:relative}
.cita::before{content:"“";position:absolute;top:-22px;left:22px;font-size:80px;line-height:1;color:var(--brand)}
.cita footer,.cita cite{display:block;margin-top:14px;font-family:Inter,sans-serif;font-size:14.5px;font-style:normal;color:var(--ink-soft);border:0;padding:0}

.linea-grande{list-style:none;margin:0;padding:0;position:relative;display:grid;gap:26px}
.linea-grande::before{content:"";position:absolute;left:23px;top:10px;bottom:10px;width:2px;background:linear-gradient(var(--brand),var(--line))}
.linea-grande li{position:relative;padding-left:72px}
.linea-grande .hito{position:absolute;left:0;top:0;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;
  background:var(--card);border:2px solid var(--brand);font-family:Sora;font-weight:700;font-size:13px;color:var(--brand-deep)}
@media (prefers-color-scheme:dark){.linea-grande .hito{color:var(--brand)}}
.linea-grande h3{font-size:19px;margin:10px 0 6px}
.linea-grande p{color:var(--ink-soft)}

.grande-mv{display:grid;grid-template-columns:1fr 1fr;gap:22px}
@media(max-width:820px){.grande-mv{grid-template-columns:1fr}}
.grande-mv article{border-radius:24px;padding:36px;border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow);position:relative;overflow:hidden}
.grande-mv article::after{content:"";position:absolute;right:-50px;bottom:-50px;width:160px;height:160px;border-radius:50%;background:var(--brand-tint)}
.grande-mv article>*{position:relative;z-index:1}
.grande-mv .icon{width:56px;height:56px;border-radius:16px}
.grande-mv h2{font-size:clamp(24px,3vw,30px);margin:6px 0 14px}
.grande-mv p{color:var(--ink-soft);margin-bottom:12px}

.equipo{display:grid;grid-template-columns:320px 1fr;gap:40px;align-items:center;border-radius:28px;padding:36px;border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow)}
@media(max-width:820px){.equipo{grid-template-columns:1fr;padding:26px}}
.retrato{aspect-ratio:1;border-radius:22px;display:grid;place-items:center;position:relative;overflow:hidden;
  background:linear-gradient(150deg,#16a34a,#0b3f22)}
.retrato span{font-family:Sora;font-weight:700;font-size:92px;color:#fff;letter-spacing:-.04em;position:relative}
.retrato::before{content:"";position:absolute;inset:18%;border-radius:50%;border:2px dashed rgba(255,255,255,.25);animation:girar 30s linear infinite}
.equipo h2{font-size:clamp(26px,3.4vw,34px)}
.equipo .rol{color:var(--brand-deep);font-weight:600;margin:6px 0 16px}
@media (prefers-color-scheme:dark){.equipo .rol{color:var(--brand)}}
.equipo p{color:var(--ink-soft);margin-bottom:12px}

.pasos-grandes{counter-reset:p;display:grid;gap:18px}
.paso-g{display:grid;grid-template-columns:auto 1fr;gap:24px;padding:28px;border-radius:20px;border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow)}
.paso-g::before{counter-increment:p;content:"0" counter(p);font-family:Sora;font-weight:700;font-size:34px;line-height:1;color:var(--brand)}
.paso-g h3{font-size:19px;margin-bottom:8px}
.paso-g p{color:var(--ink-soft);font-size:15.5px}
.paso-g .dura{display:inline-block;margin-top:12px;font-size:13px;font-weight:600;padding:5px 12px;border-radius:999px;background:var(--bg-soft);border:1px solid var(--line);color:var(--ink-soft)}

.faq-grupo+.faq-grupo{margin-top:44px}
.faq-grupo h2{font-size:22px;margin-bottom:6px}

/* ── Banda final de llamado ── */
.banda{position:relative;overflow:hidden;border-radius:28px;padding:48px;text-align:center;color:#eaf7ef;
  background:linear-gradient(135deg,#0f7a37,#0b3f22)}
.banda::before,.banda::after{content:"";position:absolute;border-radius:50%;border:40px solid rgba(255,255,255,.05)}
.banda::before{width:300px;height:300px;left:-120px;top:-140px;animation:girar 50s linear infinite}
.banda::after{width:240px;height:240px;right:-80px;bottom:-120px}
.banda>*{position:relative}
.banda h2{font-size:clamp(26px,4vw,38px);color:#fff;margin-bottom:12px}
.banda p{color:#cfe9d9;max-width:560px;margin:0 auto 26px}
.banda .hero-cta{justify-content:center;margin-top:0}
.banda .btn-primary{background:#fff;color:#0b3f22}
.banda .btn-ghost{border-color:rgba(255,255,255,.35);color:#fff}
.banda .btn-ghost:hover{border-color:#fff;color:#fff}
@media(max-width:620px){.banda{padding:34px 22px}}

.ver-mas{display:flex;justify-content:center;margin-top:34px}
.pie{grid-template-columns:1.4fr repeat(4,1fr)}
@media(max-width:980px){.pie{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:620px){.pie{grid-template-columns:1fr 1fr}}
@media(max-width:420px){.pie{grid-template-columns:1fr}}
/* Tarjeta entera clicable sin anidar enlaces: el enlace del título se estira sobre la tarjeta */
.card{position:relative}
.enlace-tarjeta{text-decoration:none;color:inherit}
.enlace-tarjeta::after{content:"";position:absolute;inset:0;border-radius:inherit}
.enlace-tarjeta:focus-visible{outline:none}
.card:has(.enlace-tarjeta:focus-visible){outline:3px solid var(--brand);outline-offset:3px}
.numero.puerta{gap:4px;padding:24px}
.numero.puerta span:first-child{font-weight:600;color:var(--ink);margin:0 0 4px}

/* ── Guías (artículos) ──
   Pensadas para leerse Y para ser citadas: respuesta corta arriba de todo, tablas reales
   (no imágenes de tablas) y las fuentes enlazadas al pie. */
.articulo{max-width:760px}
.articulo>*+*{margin-top:18px}
.articulo h2{font-size:clamp(23px,3.2vw,29px);margin-top:48px}
.articulo h3{font-size:19px;margin-top:30px}
.articulo p,.articulo li{color:var(--ink-soft);font-size:17px}
.articulo p strong,.articulo li strong{color:var(--ink)}
.articulo ul,.articulo ol{padding-left:22px;display:grid;gap:8px}
.articulo a{color:var(--brand-deep);font-weight:600}
@media (prefers-color-scheme:dark){.articulo a{color:var(--brand)}}
.respuesta-corta{border-radius:18px;padding:22px 24px;background:var(--brand-tint);border:1px solid color-mix(in srgb,var(--brand) 35%,transparent)}
.respuesta-corta b{display:block;font-family:Sora;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--brand-deep);margin-bottom:8px}
@media (prefers-color-scheme:dark){.respuesta-corta b{color:var(--brand)}}
.respuesta-corta p{color:var(--ink);font-size:17.5px}
.autor{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:14.5px;color:var(--ink-soft);margin-top:18px}
.autor strong{color:var(--ink)}
.tabla{overflow-x:auto;border:1px solid var(--line);border-radius:16px;margin-top:18px}
.tabla table{border-collapse:collapse;width:100%;min-width:560px;font-size:15px}
.tabla th,.tabla td{padding:13px 16px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
.tabla th{background:var(--bg-soft);font-family:Sora;font-size:14px;color:var(--ink)}
.tabla td{color:var(--ink-soft)}
.tabla tr:last-child td{border-bottom:0}
.tabla tr.nuestro td{background:var(--brand-tint);color:var(--ink)}
.fuentes{font-size:14.5px!important;border-top:1px solid var(--line);padding-top:20px;margin-top:40px!important}
.fuentes li{font-size:14.5px!important}
.articulo details p{font-size:15.5px}

.articulo{min-width:0}
/* Lo que entra deslizándose desde el costado todavía está corrido antes de aparecer, y eso
   ensanchaba la página unos píxeles: en el celular se podía arrastrar de lado. "clip" corta
   ese sobrante sin romper el encabezado pegajoso (que "hidden" sí rompería). */
html,body{overflow-x:clip}
