@charset "UTF-8";
/* ==========================================================================
   DevSociety · Design tokens
   Fuente de verdad: guía de marca (Identidad de marca / Manual de Sistema de
   Identidad Documental DevSociety v1.0, y identidad_marca.md).
   Tipografía: títulos Poppins · cuerpo Lato.
   Paleta: Navy #26243C · Azul #4A3AFF · Verde #03BF6F · Violeta #7E5BBF ·
           Morado #522E93 · grises #848484 / #ECEDED · escala neutra slate.
   ========================================================================== */
/* Fuentes autoalojadas (Google Fonts, licencia SIL OFL 1.1). Tipografía según la guía de marca DevSociety:
   títulos Poppins, cuerpo Lato. Solo subconjuntos latin y latin-ext; font-display: swap. */
@font-face { font-family: 'Lato'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/lato-400-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: 'Lato'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/lato-400-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; }
@font-face { font-family: 'Lato'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/lato-700-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: 'Lato'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/lato-700-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; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/poppins-500-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: 'Poppins'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/poppins-500-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; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/poppins-600-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: 'Poppins'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/poppins-600-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; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/poppins-700-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: 'Poppins'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/poppins-700-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; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 800; font-display: swap; src: url('../fonts/poppins-800-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: 'Poppins'; font-style: normal; font-weight: 800; font-display: swap; src: url('../fonts/poppins-800-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; }
:root {
  /* Color · marca (valores exactos de la guía) */
  --navy: #26243c;
  --navy-deep: #201f33;
  --blue: #4a3aff;
  --green: #03bf6f;
  --violet: #7e5bbf;
  --purple-brand: #522e93;
  --gray-brand: #848484;
  --gray-light: #eceded;

  /* Color · derivados accesibles (contraste AA verificado) */
  --blue-hover: #3a2bd9;
  --blue-50: #eef0ff;
  --blue-100: #dfe3ff;
  --blue-on-dark: #b9b4ff; /* texto de acento sobre navy: 7.9:1 */
  --green-50: #e7f9f1;
  --green-700: #065f3f;
  --amber-700: #b45309;
  --red-700: #b91c1c;

  /* Neutros (escala slate de la guía) */
  --slate-50: #f8fafc;
  --slate-100: #f1f5f9;
  --slate-200: #e2e8f0;
  --slate-300: #cbd5e1;
  --slate-400: #94a3b8;
  --slate-500: #64748b;
  --slate-600: #475569;
  --slate-700: #334155; /* cuerpo de texto */
  --slate-800: #1e293b;
  --white: #ffffff;

  /* Semánticos */
  --bg: var(--slate-50);
  --surface: var(--white);
  --ink: var(--navy);           /* títulos y texto fuerte */
  --text: var(--slate-700);     /* cuerpo */
  --muted: var(--slate-600);    /* secundario (7.5:1 sobre blanco) */
  --line: var(--slate-200);
  --brand: var(--blue);
  --brand-hover: var(--blue-hover);
  --brand-50: var(--blue-50);
  --focus: var(--blue);
  /* alias heredados del CSS anterior */
  --purple: var(--brand);
  --purple-soft: var(--blue-50);
  --purple-hover: var(--brand-hover);
  --blue-soft: var(--blue-50);
  --green-soft: var(--green-50);

  /* Tipografía */
  --font-display: Poppins, "Segoe UI", system-ui, -apple-system, sans-serif;
  --font-body: Lato, "Segoe UI", system-ui, -apple-system, sans-serif;
  --font: var(--font-body);
  --fs-xs: 0.8125rem;
  --fs-sm: 0.9375rem;
  --fs-base: 1.0625rem;
  --fs-lg: 1.1875rem;
  --fs-h3: clamp(1.125rem, 1.6vw, 1.3125rem);
  --fs-h2: clamp(1.75rem, 3vw, 2.5rem);
  --fs-h1: clamp(2.125rem, 5.2vw, 3.875rem);

  /* Espaciado (escala de 4 px) */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;
  --section-y: clamp(64px, 9vw, 112px);

  /* Radios */
  --radius-xs: 8px;
  --radius-sm: 12px;
  --radius: 20px;
  --radius-lg: 28px;
  --radius-pill: 999px;

  /* Sombras (tinte navy) */
  --shadow-sm: 0 1px 2px rgba(38, 36, 60, 0.06), 0 2px 8px rgba(38, 36, 60, 0.04);
  --shadow: 0 1px 2px rgba(38, 36, 60, 0.06), 0 10px 30px rgba(38, 36, 60, 0.07);
  --shadow-lg: 0 2px 4px rgba(38, 36, 60, 0.06), 0 24px 56px rgba(38, 36, 60, 0.16);

  /* Layout y movimiento */
  --header: 76px;
  --wrap: 1200px;
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --dur: 0.5s;
}
