/* ============ tipografías alojadas en el propio servidor ============
   Space Grotesk y JetBrains Mono, licencia SIL Open Font License.
   Se sirven desde este dominio: ninguna llamada a Google, y por tanto
   nada que declarar en la política de cookies por este motivo.
   ================================================================== */
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:400;font-display:swap;
  src:url('/web/assets/fonts/space-grotesk-latin-ext-400-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:400;font-display:swap;
  src:url('/web/assets/fonts/space-grotesk-latin-400-normal.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+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:500;font-display:swap;
  src:url('/web/assets/fonts/space-grotesk-latin-ext-500-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:500;font-display:swap;
  src:url('/web/assets/fonts/space-grotesk-latin-500-normal.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+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:600;font-display:swap;
  src:url('/web/assets/fonts/space-grotesk-latin-ext-600-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:600;font-display:swap;
  src:url('/web/assets/fonts/space-grotesk-latin-600-normal.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+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:700;font-display:swap;
  src:url('/web/assets/fonts/space-grotesk-latin-ext-700-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:700;font-display:swap;
  src:url('/web/assets/fonts/space-grotesk-latin-700-normal.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+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;
  src:url('/web/assets/fonts/jetbrains-mono-latin-ext-400-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;
  src:url('/web/assets/fonts/jetbrains-mono-latin-400-normal.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+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;
  src:url('/web/assets/fonts/jetbrains-mono-latin-ext-500-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;
  src:url('/web/assets/fonts/jetbrains-mono-latin-500-normal.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+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}


:root{
  --bosque:#0B3B2E; --bosque2:#0E4536; --ready:#35D07A; --tinta:#0B1F17;
  --claro:#F4F5F3; --linea:#DDE2DE; --sec:#3D4A44; --blanco:#FFFFFF;
  --lineaOsc:rgba(255,255,255,.16); --secOsc:#A9BDB2; --verdeTxt:#1F7A52; --ocre:#B8791A;
  --r:6px; --r-lg:10px;
  --max:1180px;
  --sans:"Space Grotesk","Helvetica Neue",Arial,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Consolas,monospace;
}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--claro);color:var(--tinta);font-family:var(--sans);
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.032em;text-wrap:balance;line-height:1.08}
p{margin:0}
button{font:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--ready);outline-offset:3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ============ primitivas ============ */
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
.narrow{max-width:900px}
.eyebrow{font-family:var(--mono);font-size:11.5px;font-weight:500;letter-spacing:.16em;
  text-transform:uppercase;color:var(--verdeTxt);margin:0 0 16px}
.dark .eyebrow{color:var(--ready)}
.lead{color:var(--sec);font-size:17.5px;line-height:1.62;max-width:64ch}
.dark .lead{color:#C5D6CC}
.h2{font-size:clamp(29px,4vw,44px);letter-spacing:-.045em}
.center{text-align:center}
.center .lead{margin-left:auto;margin-right:auto}
section{padding:84px 0}
.dark{background:var(--bosque);color:var(--blanco)}
/* dos secciones seguidas del mismo fondo no necesitan doble margen */
section:not([class])+section:not([class]){padding-top:0}
.white{background:var(--blanco);border-top:1px solid var(--linea);border-bottom:1px solid var(--linea)}
.sec-head{margin-bottom:42px}
.grid{display:grid;gap:20px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}

.card{background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r);padding:26px 24px 30px;
  display:flex;flex-direction:column;gap:9px}
.card .lbl{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--sec)}
.card h3{font-size:20px;letter-spacing:-.022em}
.card p{color:var(--sec);font-size:15px;line-height:1.55}
.rule{border-top:3px solid var(--tinta);border-top-left-radius:2px;border-top-right-radius:2px}
.rule-g{border-top:3px solid var(--ready);border-top-left-radius:2px;border-top-right-radius:2px}
.dark .card{background:var(--bosque2);border-color:var(--lineaOsc);color:var(--blanco)}
.dark .card p,.dark .card .lbl{color:var(--secOsc)}
.card.on{background:var(--ready);border-color:var(--ready);color:var(--tinta)}
.card.on p,.card.on .lbl{color:rgba(11,31,23,.78)}
.card.ink{background:var(--tinta);border-color:var(--tinta);color:var(--blanco)}
.card.ink p{color:var(--secOsc)}
.card.ink .lbl{color:var(--ready)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 24px;border-radius:var(--r);
  font-weight:600;font-size:15px;letter-spacing:-.01em;text-decoration:none;border:1px solid transparent;
  transition:background .15s,color .15s,border-color .15s}
.btn-p{background:var(--ready);color:var(--tinta)}
.btn-p:hover{background:#2AB86A}
.btn-o{background:transparent;color:var(--blanco);border-color:var(--lineaOsc)}
.btn-o:hover{border-color:var(--ready);color:var(--ready)}
.btn-d{background:var(--bosque);color:var(--blanco)}
.btn-d:hover{background:var(--bosque2)}
.btn-l{background:transparent;color:var(--bosque);border-color:var(--linea)}
.btn-l:hover{border-color:var(--bosque)}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.center .ctas{justify-content:center}

/* ============ banner + header ============ */
.banner{background:var(--tinta);color:var(--blanco);font-family:var(--mono);font-size:12px;
  letter-spacing:.07em;text-align:center;padding:10px 24px}
.banner b{color:var(--ready);font-weight:500}
.banner a{color:var(--blanco);text-underline-offset:3px}
header{position:sticky;top:0;z-index:80;background:rgba(244,245,243,.95);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--linea)}
.nav{display:flex;align-items:center;gap:26px;height:72px}
.brand img{height:26px;width:auto}
.menu{display:flex;gap:20px;list-style:none;margin:0;padding:0;font-size:14.5px;font-weight:500}
.menu>li{position:relative}
.menu a,.menu button{background:none;border:0;padding:6px 0;font-size:14.5px;font-weight:500;
  color:var(--sec);text-decoration:none;border-bottom:2px solid transparent;display:inline-flex;gap:6px;align-items:center}
.menu a:hover,.menu button:hover{color:var(--bosque);border-color:var(--ready)}
.menu a.on{color:var(--bosque);border-color:var(--ready)}
.caret{font-family:var(--mono);font-size:10px;opacity:.7}
.drop{position:absolute;top:100%;left:-16px;min-width:290px;background:var(--blanco);
  border:1px solid var(--linea);border-radius:var(--r);padding:8px;display:none;box-shadow:0 14px 34px rgba(11,31,23,.09)}
.menu li:hover .drop,.menu li:focus-within .drop{display:block}
.drop a{display:block;padding:11px 12px;border:0;color:var(--tinta);font-weight:500}
.drop a:hover{background:var(--claro);border:0;border-radius:4px}
.drop a span{display:block;font-size:12.5px;font-weight:400;color:var(--sec);margin-top:2px;line-height:1.4}
.navright{margin-left:auto;display:flex;align-items:center;gap:14px}
.navright .btn{padding:11px 18px;font-size:14.5px}
.burger{display:none;background:none;border:1px solid var(--linea);border-radius:var(--r);
  width:44px;height:42px;padding:0;align-items:center;justify-content:center}
.burger:hover{border-color:var(--bosque)}
.burger .bars{display:block;position:relative;width:19px;height:13px}
.burger .bars i{position:absolute;left:0;width:100%;height:2px;border-radius:2px;background:var(--bosque);
  transition:transform .22s ease,opacity .16s ease}
.burger .bars i:nth-child(1){top:0}
.burger .bars i:nth-child(2){top:5.5px}
.burger .bars i:nth-child(3){top:11px}
.burger[aria-expanded="true"] .bars i:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
.burger[aria-expanded="true"] .bars i:nth-child(2){opacity:0}
.burger[aria-expanded="true"] .bars i:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}
@media (prefers-reduced-motion:reduce){.burger .bars i{transition:none}}
.mobile{display:none;border-top:1px solid var(--linea);background:var(--blanco);padding:12px 0 20px}
.mobile.open{display:block}
.mobile a{display:block;padding:12px 24px;text-decoration:none;font-weight:500;border-bottom:1px solid var(--linea)}
.mobile a.sub{padding-left:44px;font-weight:400;color:var(--sec);font-size:15px}

/* ============ page hero ============ */
.phero{background:var(--bosque);color:var(--blanco);padding:74px 0 78px}
.phero h1{font-size:clamp(34px,5vw,54px);letter-spacing:-.045em;margin-bottom:20px}
.phero .lead{font-size:18px;color:#C5D6CC}
.phero .crumb{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--secOsc);margin-bottom:18px}
.phero .crumb a{color:var(--ready);text-decoration:none}
.hero-home{padding:62px 0 0;text-align:center}
.hero-home h1{font-size:clamp(40px,6.4vw,74px);letter-spacing:-.045em;margin:0 auto 22px;text-wrap:initial}
.rot{display:inline-block;color:var(--ready);transition:opacity .28s ease,transform .28s ease}
.rot.out{opacity:0;transform:translateY(-.14em)}
@media (prefers-reduced-motion:reduce){.rot{transition:none}}
.hero-home .lead{color:#C5D6CC;font-size:18.5px;margin:0 auto;max-width:58ch}
.hero-home .ctas{justify-content:center;margin-top:26px}
.hero-media{margin:40px auto 0;max-width:940px;transform:translateY(56px)}
.hero-home{position:relative;overflow:hidden;background-color:var(--bosque);
  background-image:linear-gradient(180deg,rgba(11,59,46,.56) 0%,rgba(11,59,46,.70) 32%,rgba(11,59,46,.88) 70%,rgba(11,59,46,.97) 100%),url(/web/assets/img/hero-entrenamiento.jpg);
  background-size:cover,cover;background-position:center,center 30%;background-repeat:no-repeat}
.hero-home>.wrap{position:relative;z-index:1}
.hero-glow{position:absolute;left:50%;top:-90px;width:1500px;height:900px;transform:translateX(-50%);
  background:radial-gradient(ellipse 48% 42% at 50% 30%,rgba(8,34,25,.52),rgba(8,34,25,.22) 55%,rgba(8,34,25,0) 76%);
  pointer-events:none;z-index:0}
.panel-top .n .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--ready);
  margin-right:7px;vertical-align:middle;animation:blip 2.4s ease-in-out infinite}
@keyframes blip{0%,100%{opacity:1}50%{opacity:.25}}
#heroDemo .row{transition:background .45s ease}
#heroDemo .row.hit{background:rgba(53,208,122,.11)}
#heroDemo .pill{transition:background .3s ease,color .3s ease}
#heroDemo [data-foot],#heroDemo [data-cob],#heroDemo [data-sub]{transition:opacity .25s ease}
#heroDemo .swap{opacity:0}
@media (prefers-reduced-motion:reduce){
  .panel-top .n .dot{animation:none}
  #heroDemo .row,#heroDemo .pill{transition:none}
}
.hero-pad{padding-bottom:56px}

/* ============ mocks ============ */
.panel{background:var(--blanco);color:var(--tinta);border:1px solid var(--linea);border-radius:var(--r-lg);overflow:hidden;text-align:left}
.panel-top{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:13px 18px;border-bottom:1px solid var(--linea)}
.panel-top .t,.panel-top .n{font-family:var(--mono);font-size:11px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--sec)}
.row{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center;
  padding:13px 18px;border-bottom:1px solid var(--linea)}
.row:last-child{border-bottom:0}
.row .who{font-size:14.5px;font-weight:500;letter-spacing:-.01em}
.row .who span{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--sec);font-weight:400;margin-top:3px}
.row .amt{font-family:var(--mono);font-size:13.5px;font-variant-numeric:tabular-nums}
.pill{font-family:var(--mono);font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;
  padding:5px 9px;border-radius:4px;white-space:nowrap}
.pill.ok{background:rgba(53,208,122,.16);color:#14663D}
.pill.wait{background:rgba(184,121,26,.14);color:var(--ocre)}
.pill.info{background:rgba(11,59,46,.09);color:var(--bosque)}
.panel-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;
  padding:13px 18px;background:var(--claro);border-top:1px solid var(--linea);
  font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--sec)}
.panel-foot b{color:var(--bosque);font-weight:500}
.kv{display:grid;grid-template-columns:1fr auto;gap:10px;padding:12px 18px;border-bottom:1px solid var(--linea);font-size:14.5px}
.kv:last-child{border-bottom:0}
.kv span{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--sec)}
.kv b{font-weight:500;font-variant-numeric:tabular-nums}

/* ============ franjas ============ */
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:34px 30px;border-right:1px solid var(--linea)}
.stat:first-child{padding-left:0}
.stat:last-child{border-right:0;padding-right:0}
.stat b{display:block;font-size:clamp(29px,3.5vw,40px);font-weight:700;letter-spacing:-.045em;color:var(--bosque)}
.stat span{display:block;margin-top:6px;font-size:14px;color:var(--sec);max-width:22ch}
.dark .stat{border-color:var(--lineaOsc)}
.dark .stat b{color:var(--ready)}
.dark .stat span{color:var(--secOsc)}

.marq{overflow:hidden;padding:26px 0}
.track{display:flex;gap:48px;width:max-content;animation:slide 58s linear infinite;align-items:center}
.track.rev{animation-name:slideRev;animation-duration:64s}
.marq:hover .track{animation-play-state:paused}
.track img{height:62px;width:auto;opacity:.72;filter:grayscale(1)}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes slideRev{from{transform:translateX(-50%)}to{transform:translateX(0)}}
@media (prefers-reduced-motion:reduce){.track{animation:none;flex-wrap:wrap;width:auto;justify-content:center;gap:32px}}

/* tira enmarcada de logos */
.strip{background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r);overflow:hidden}
.strip+.strip{margin-top:20px}
.strip .cap{font-family:var(--mono);font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;
  color:var(--sec);padding:16px 20px 0}
.strip .marq{padding:18px 0 22px}
.strip .track img{height:58px}


/* ============ filas de solución ============ */
.frow{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;padding:60px 0;
  border-top:1px solid var(--linea)}
.frow:first-child{border-top:0;padding-top:0}
.frow.flip .ftext{order:2}
.frow h3{font-size:clamp(24px,2.9vw,32px);letter-spacing:-.04em;margin-bottom:14px}
.frow p{color:var(--sec);font-size:16.5px;line-height:1.6}
.frow ul{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:10px}
.frow li{display:flex;gap:10px;font-size:15.5px;color:var(--sec)}
.frow li::before{content:"";flex:none;width:7px;height:7px;background:var(--ready);margin-top:8px}
.frow .more{display:inline-flex;margin-top:22px;font-weight:600;font-size:15px;color:var(--bosque);
  text-decoration:none;border-bottom:2px solid var(--ready);padding-bottom:2px}
.dark .frow{border-color:var(--lineaOsc)}
.dark .frow p,.dark .frow li{color:#C5D6CC}
.dark .frow .more{color:var(--ready)}

/* ============ tipos de entidad ============ */
.kinds{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--linea);border:1px solid var(--linea);border-radius:var(--r);overflow:hidden}
.kind{background:var(--blanco);padding:24px 20px 26px;display:flex;flex-direction:column;gap:7px;
  text-decoration:none;color:inherit;transition:background .15s}
a.kind:hover{background:var(--claro)}
.kind b{font-size:16.5px;font-weight:600;letter-spacing:-.015em}
.kind span{font-size:14px;color:var(--sec);line-height:1.5}
.kind .go{margin-top:auto;padding-top:10px;font-family:var(--mono);font-size:10.5px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--verdeTxt)}

/* ============ planes ============ */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch}
.plan{background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r);padding:30px 26px 32px;display:flex;flex-direction:column;gap:13px}
.plan.hi{background:var(--bosque);border-color:var(--bosque);color:var(--blanco)}
.plan .lbl{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--verdeTxt)}
.plan.hi .lbl{color:var(--ready)}
.price{font-size:44px;font-weight:700;letter-spacing:-.045em;line-height:1}
.price small{font-size:15px;font-weight:500;letter-spacing:-.01em}
.plan .alt{font-family:var(--mono);font-size:12.5px;color:var(--sec)}
.plan.hi .alt{color:var(--secOsc)}
.plan ul{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:9px;font-size:14.5px;color:var(--sec)}
.plan.hi ul{color:#C5D6CC}
.plan li{display:flex;gap:9px;align-items:flex-start}
.plan li::before{content:"";flex:none;width:7px;height:7px;background:var(--ready);margin-top:7px}
.plan .btn{margin-top:auto}
.fine{margin-top:22px;font-family:var(--mono);font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:var(--sec)}

/* ============ pasos / notas ============ */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.step{border-top:3px solid var(--linea);padding-top:18px;display:flex;flex-direction:column;gap:8px}
.step.on{border-top-color:var(--ready)}
.step .n{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--sec)}
.step.on .n{color:var(--verdeTxt)}
.step h3{font-size:19px}
.step p{font-size:14.5px;color:var(--sec);line-height:1.55}
.dark .step{border-top-color:var(--lineaOsc)}
.dark .step p,.dark .step .n{color:var(--secOsc)}
.dark .step.on{border-top-color:var(--ready)}
.dark .step.on .n{color:var(--ready)}
.note{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center;padding:22px 26px;
  background:var(--tinta);color:var(--blanco);border-radius:var(--r);margin-top:26px}
.note .k{font-family:var(--mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--ready);white-space:nowrap}
.note p{font-size:15.5px;color:#D6E3DA}
.note.light{background:var(--blanco);color:var(--tinta);border-left:3px solid var(--ready)}
.note.light .k{color:var(--verdeTxt)}
.note.light p{color:var(--sec)}
.dark .note{background:var(--bosque2)}

/* ============ casos / testimonios ============ */
.case{display:grid;grid-template-columns:250px 1fr;gap:36px;padding:38px 0;border-top:1px solid var(--linea);align-items:start}
.cfile{background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r);padding:18px 20px 8px}
.cfile>.n{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.15em;
  text-transform:uppercase;color:var(--verdeTxt);margin-bottom:14px}
.cfile dl{margin:0}
.cfile dl>div{display:grid;gap:3px;padding:11px 0;border-top:1px solid var(--linea)}
.cfile dt{font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--sec)}
.cfile dd{margin:0;font-size:14.5px;font-weight:500;line-height:1.4}
.case h3{font-size:23px;margin-bottom:6px}
.case .meta{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--sec);margin-bottom:14px}
.case p{color:var(--sec);font-size:16px;line-height:1.6;max-width:70ch}
.case .facts{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.case .facts span{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  border:1px solid var(--linea);border-radius:4px;background:var(--blanco);padding:7px 10px;color:var(--sec)}
.ph{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ocre);border:1px dashed rgba(184,121,26,.5);border-radius:4px;padding:3px 7px;display:inline-block;margin-bottom:12px}

/* ============ faq ============ */
.faq{border-top:1px solid var(--linea)}
.faq details{border-bottom:1px solid var(--linea)}
.faq summary{list-style:none;cursor:pointer;padding:22px 40px 22px 0;font-size:17.5px;font-weight:500;
  letter-spacing:-.02em;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:19px;font-family:var(--mono);font-size:20px;color:var(--verdeTxt)}
.faq details[open] summary::after{content:"–"}
.faq .a{padding:0 60px 24px 0;color:var(--sec);font-size:15.5px;line-height:1.6;max-width:74ch}

/* ============ form ============ */
.demo-in{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
form{display:grid;gap:14px}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
label{display:grid;gap:6px;font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--secOsc)}
input,select,textarea{font:inherit;font-size:15px;padding:12px 14px;background:var(--bosque2);
  border:1px solid var(--lineaOsc);color:var(--blanco);width:100%;border-radius:var(--r)}
input::placeholder,textarea::placeholder{color:#6E8C7C}
input:focus,select:focus,textarea:focus{border-color:var(--ready);outline:none}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#A9BDB2 50%),linear-gradient(135deg,#A9BDB2 50%,transparent 50%);
  background-position:calc(100% - 20px) 20px,calc(100% - 14px) 20px;background-size:6px 6px;background-repeat:no-repeat}
.consent{font-family:var(--sans);font-size:12.5px;color:var(--secOsc);letter-spacing:0;text-transform:none;line-height:1.5}
.ok-msg{border:1px solid var(--ready);border-radius:var(--r);background:rgba(53,208,122,.1);padding:22px;display:none}
.ok-msg h3{font-size:19px;margin-bottom:6px}
.ok-msg p{font-size:14.5px;color:#C5D6CC}
.ci{display:grid;grid-template-columns:120px 1fr;gap:16px;padding-top:16px;margin-top:16px;
  border-top:1px solid var(--lineaOsc);font-size:15px;color:#D6E3DA}
.ci .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--secOsc)}

/* ============ mapa (carga bajo consentimiento) ============ */
.map{position:relative;background:var(--claro);border:1px solid var(--linea);border-radius:var(--r);
  overflow:hidden;aspect-ratio:300/158}
.map svg,.map iframe{display:block;width:100%;height:100%;border:0}
.map .blk{fill:#EEF3F0}
.map .hw{fill:none;stroke:#C9D6D0;stroke-width:7}
.map .rd{fill:none;stroke:#FFFFFF;stroke-width:8}
.map .st{fill:none;stroke:#E7F2EC;stroke-width:9}
.map .stc{fill:none;stroke:var(--bosque);stroke-width:1}
.map .pn{fill:var(--bosque)}
.map .tx{fill:#61706A;font-family:var(--mono);font-size:7.5px;letter-spacing:.08em}
.map__gate{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);width:min(88%,420px);
  display:grid;gap:3px;text-align:center;background:var(--blanco);border:1px solid var(--linea);
  border-radius:var(--r);padding:12px 16px;box-shadow:0 8px 22px rgba(11,31,23,.10)}
.map__gate b{font-size:14.5px;font-weight:600;letter-spacing:-.015em}
.map__gate small{font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--sec);line-height:1.4}
.map__gate:hover{border-color:var(--bosque)}
.map-side{display:grid;gap:0;align-content:start}
.map-side .ci{border-top-color:var(--linea);color:var(--sec)}
.map-side .ci .k{color:var(--verdeTxt)}
.map-side .ci:first-child{border-top:0;padding-top:0;margin-top:0}
.map-wrap{display:grid;grid-template-columns:1.35fr 1fr;gap:40px;align-items:start}
.map--sm{margin:18px 0 0;aspect-ratio:300/172}
.map--sm .tx{font-size:9px}
.map--sm .map__gate{bottom:12px;width:auto;left:12px;right:12px;transform:none;padding:9px 12px}
.map--sm .map__gate b{font-size:13px}
.map--sm .map__gate small{display:none}
.fnote{display:block;margin-top:8px;font-family:var(--mono);font-size:9.5px;letter-spacing:.05em;
  line-height:1.5;color:#7E9488}
.faddr{display:block;margin:16px 0 0;font-style:normal;font-size:14px;line-height:1.6;color:var(--secOsc)}
.flink{display:inline-block;margin-top:10px;font-size:14px;font-weight:600;color:var(--ready);text-decoration:none}
.flink:hover{text-decoration:underline;text-underline-offset:3px}
@media(max-width:1020px){.map-wrap{grid-template-columns:1fr;gap:28px}}

/* ============ antispam ============ */
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.check{display:grid;gap:6px}
.check .q{font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--secOsc)}
.err{font-family:var(--sans);font-size:13px;color:#FFB4A2;letter-spacing:0;text-transform:none;display:none}
.err.on{display:block}

/* ============ textos legales ============ */
.legal{max-width:760px}
.legal .upd{font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--sec);margin-bottom:34px;padding-bottom:16px;border-bottom:1px solid var(--linea)}
.legal h2{font-size:21px;letter-spacing:-.025em;margin:40px 0 12px}
.legal h2:first-of-type{margin-top:0}
.legal h3{font-size:16.5px;letter-spacing:-.015em;margin:26px 0 8px}
.legal p{color:var(--sec);font-size:15.5px;line-height:1.7;margin-bottom:14px}
.legal ul,.legal ol{color:var(--sec);font-size:15.5px;line-height:1.7;margin:0 0 16px;padding-left:22px}
.legal li{margin-bottom:8px}
.legal a{color:var(--verdeTxt);overflow-wrap:anywhere}
.legal strong{color:var(--tinta);font-weight:600}
.idtable{width:100%;border-collapse:collapse;border:1px solid var(--linea);background:var(--blanco);
  border-radius:var(--r);overflow:hidden;margin:4px 0 30px}
.idtable td{border-bottom:1px solid var(--linea);padding:12px 15px;font-size:14.5px;vertical-align:top;line-height:1.55}
.idtable tr:last-child td{border-bottom:0}
.idtable td:first-child{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--sec);width:34%;white-space:nowrap}
@media(max-width:680px){
  .idtable td:first-child{width:auto;white-space:normal}
  .idtable,.idtable tbody,.idtable tr,.idtable td{display:block;width:100%}
  .idtable td{border-bottom:0;padding:10px 15px 0}
  .idtable td:last-child{padding-bottom:14px;border-bottom:1px solid var(--linea)}
}

/* ============ footer ============ */
footer{background:var(--tinta);color:var(--blanco);padding:60px 0 34px}
.fgrid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1fr;gap:32px}
.fgrid img{height:26px;width:auto;margin-bottom:16px}
.fgrid>div>p{font-size:14px;color:var(--secOsc);max-width:32ch;line-height:1.6}
.fcol h4{font-family:var(--mono);font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;
  color:var(--ready);font-weight:500;margin-bottom:14px}
.fcol ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.fcol a{font-size:14.5px;color:#C5D6CC;text-decoration:none}
.fcol a:hover{color:var(--blanco)}
.fbot{margin-top:44px;padding-top:20px;border-top:1px solid var(--lineaOsc);display:flex;
  flex-wrap:wrap;gap:14px;justify-content:space-between;font-family:var(--mono);font-size:11px;
  letter-spacing:.08em;color:var(--secOsc)}
.langs{display:flex;gap:14px}
.langs b{color:var(--blanco);font-weight:500}

/* ============ responsive ============ */
@media(max-width:1020px){
  .case{grid-template-columns:1fr;gap:20px}
  .menu{display:none}
  .burger{display:inline-flex}
  .hero-media{transform:translateY(40px)}
  .demo-in,.frow{grid-template-columns:1fr;gap:36px}
  .frow.flip .ftext{order:0}
  .g4,.steps,.kinds,.stats .wrap{grid-template-columns:repeat(2,1fr)}
  .plans{grid-template-columns:1fr}
  .fgrid{grid-template-columns:1fr 1fr 1fr}
  .stat{border-right:0;border-bottom:1px solid var(--linea);padding:26px 0}
  .stat:first-child,.stat:last-child{padding-left:0;padding-right:0}
}
@media(max-width:680px){
  section{padding:58px 0}
  .nav{height:64px;gap:12px}
  .brand img{height:22px}
  .navright{gap:10px}
  .navright .btn{padding:10px 14px;font-size:14px;white-space:nowrap}
  .hero-glow{width:900px}
  .g2,.g3,.g4,.steps,.kinds,.f2{grid-template-columns:1fr}
  .stats .wrap,.fgrid{grid-template-columns:1fr 1fr}
  .note{grid-template-columns:1fr;gap:8px}
  .ci,.case{grid-template-columns:1fr;gap:16px}
  .phero{padding:52px 0 56px}
  .hero-home{padding:56px 0 0}
}


/* ============ aviso de cookies ============ */
.cbar{position:fixed;left:0;right:0;bottom:0;z-index:200;background:var(--tinta);color:var(--blanco);
  border-top:2px solid var(--ready);padding:20px 0;box-shadow:0 -10px 30px rgba(11,31,23,.18)}
.cbar[hidden]{display:none!important}
.cbar .in{display:grid;grid-template-columns:1fr auto;gap:26px;align-items:center}
.cbar p{font-size:14.5px;line-height:1.55;color:#D6E3DA;max-width:74ch}
.cbar p a{color:var(--ready)}
.cbar .btns{display:flex;gap:10px;flex-wrap:wrap}
.cbar .btn{padding:11px 18px;font-size:14px}
@media(max-width:820px){.cbar .in{grid-template-columns:1fr;gap:16px}}
