/*
 * Movvi — base
 * Reset mínimo, fuentes locales, keyframes y utilidades de icono.
 * Equivale al bloque <style> del <helmet> del origen.
 */

/* Plus Jakarta Sans — fuente variable local (cubre los pesos 400..800).
   Google Fonts sirve un único archivo variable para los 5 pesos, así que
   bastan dos subsets (latin y latin-ext) en lugar de diez estáticos. */
@font-face{
  font-family:'Plus Jakarta Sans';
  font-style:normal;
  font-weight:400 800;
  font-display:swap;
  src:url('../fonts/plus-jakarta-sans-latin-ext.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:'Plus Jakarta Sans';
  font-style:normal;
  font-weight:400 800;
  font-display:swap;
  src:url('../fonts/plus-jakarta-sans-latin.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;
}

*{box-sizing:border-box}

body{
  margin:0;
  background:var(--mv-surface);
  font-family:var(--mv-font);
  color:var(--mv-ink);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* Los enlaces del origen: verde medio, verde marca al pasar. Los bloques que
   en el origen llevaban color inline (nav, botones del hero) lo neutralizan
   con `color:inherit` en su propia clase, igual que hacía el inline. */
a{color:var(--mv-green-700);text-decoration:none}
a:hover{color:var(--mv-green-500)}

::selection{background:var(--mv-green-500);color:var(--mv-on-dark)}

/* Iconos Lucide: el SVG toma su tamaño del font-size heredado. */
.lc svg{width:1em;height:1em;stroke-width:2;display:block}

/* Utilidades de tamaño/color de icono (sustituyen a los style="font-size:.." del origen) */
.mv-i-8{font-size:8px}
.mv-i-13{font-size:13px}
.mv-i-14{font-size:14px}
.mv-i-15{font-size:15px}
.mv-i-16{font-size:16px}
.mv-i-17{font-size:17px}
.mv-i-18{font-size:18px}
.mv-i-22{font-size:22px}
.mv-i-24{font-size:24px}
.mv-i-26{font-size:26px}
.mv-i-44{font-size:44px}
.mv-i-green{color:var(--mv-green-500)}
.mv-i-green-700{color:var(--mv-green-700)}
.mv-i-green-300{color:var(--mv-green-300)}
.mv-i-amber{color:var(--mv-amber-500)}

/* --- Keyframes del origen ------------------------------------------- */
@keyframes mv-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes mv-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes mv-pulse{0%{transform:scale(1);opacity:.5}70%{transform:scale(2.4);opacity:0}100%{opacity:0}}
@keyframes mv-cue{0%,100%{transform:translateY(0);opacity:.4}50%{transform:translateY(9px);opacity:1}}

/* --- Accesibilidad (añadido: el origen no lo traía) ------------------ */
:where(a,button,[tabindex]):focus-visible{
  outline:2px solid var(--mv-green-500);
  outline-offset:2px;
  border-radius:4px;
}
.mv-surface-dark :where(a,button,[tabindex]):focus-visible{
  outline-color:var(--mv-on-dark);
}
/* El nav cambia de fondo al hacer scroll: el foco toma el color del texto
   para mantener contraste tanto sobre el hero como sobre el blanco. */
.mv-nav :where(a,button):focus-visible{outline-color:currentColor}
.mv-skip{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--mv-surface-2);color:var(--mv-green-900);
  font-family:var(--mv-font);font-size:var(--mv-fs-meta);font-weight:var(--mv-fw-bold);
  padding:12px 18px;border-radius:0 0 var(--mv-r-sm) 0;
  box-shadow:var(--mv-sh-nav);
}
.mv-skip:focus{left:0}
.mv-sr{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* Sin movimiento: se apagan las animaciones decorativas y las transiciones.
   El secuenciador sigue cambiando de pantalla (es contenido), pero sin
   interpolación: lo gestiona movvi.js. */
@media (prefers-reduced-motion:reduce){
  .mv-marquee__track,
  .mv-hero__phone,
  .mv-cue__chev,
  .mv-s4__ping,
  .mv-s5__ping{animation:none!important}
  .mv-scr,.mv-step,.mv-bar__fill,[data-rv]{transition:none!important}
}

/* Utilidad: la columna que crece dentro de una fila flex (el origen usaba
   style="flex:1" suelto en varios sitios). */
.mv-flex-1{flex:1}
