/* AIGOS · base común (Brand Book AIGOS-BB-2026-0002, cap. 19: tokens).
   Ningún valor visual vive fuera de estos tokens. Lo cargan la página comercial, el conector y el inicio de sesión. */

/* Fuentes propias (cap. 04: woff2 autoalojadas, font-display: swap). Solo el subconjunto latino. */
@font-face { font-family: "Sora"; src: url("/fuentes/sora.woff2") format("woff2"); font-weight: 400 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Inter"; src: url("/fuentes/inter.woff2") format("woff2"); font-weight: 400 600; font-style: normal; font-display: swap; }
@font-face { font-family: "JetBrains Mono"; src: url("/fuentes/jetbrains-mono.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }

:root {
  /* superficie */
  --mesa: #E6E1D6;          --papel: #F4F0E7;
  --papel-alzado: #FBF8F1;  --noche: #162110;
  /* tinta (tinta-2 al .75: con .65 la pareja tinta-2/papel mide 4,2:1 y no pasa AA; ver nota del libro, cap. 10) */
  --tinta: #2F3328;
  --tinta-2: rgb(47 51 40 / .75);  --tinta-3: rgb(47 51 40 / .45);
  --tinta-4: rgb(47 51 40 / .32);
  /* estructura */
  --arena: #CABFA8;  --arena-suave: rgb(202 191 168 / .45);
  /* acción */
  --bosque: #2D4420; --bosque-alzado: #3A5629;
  --bosque-claro: #6F9A54; --bosque-tenue: rgb(45 68 32 / .08);
  /* funcional */
  --exito: #3E5A2E;  --exito-bg: rgb(62 90 46 / .08);
  --advertencia: #7A5B16; --advertencia-acc: #B08228; --advertencia-bg: rgb(176 130 40 / .10);
  --error: #8F3D2A;  --error-acc: #A64B35;
  /* datos (solo cifras y series; jamás decoración) */
  --dato-2: #C29A4B;
  /* sobre noche */
  --greige: #E8E4D8;
  /* forma */
  --radio-control: 8px; --radio-papel: 12px; --radio-modal: 16px;
  --sombra-1: 0 2px 8px -2px rgb(47 51 40 / .08);
  --sombra-2: 0 8px 24px -4px rgb(47 51 40 / .12);
  --glow-ia: 0 0 0 1px rgb(111 154 84 / .28), 0 0 24px -4px rgb(111 154 84 / .38);
  /* motion */
  --t-respuesta: 120ms; --t-local: 200ms; --t-contexto: 320ms;
  --curva-llegar: cubic-bezier(.19, 1, .22, 1);
  --curva-salir: cubic-bezier(.55, 0, .55, .2);
  /* espaciado 8pt */
  --e1: 4px; --e2: 8px; --e3: 12px; --e4: 16px; --e5: 24px; --e6: 32px; --e7: 48px; --e8: 64px; --e9: 96px; --e10: 128px;
  /* tipografía */
  --f-display: "Sora", system-ui, sans-serif;
  --f-texto: "Inter", system-ui, sans-serif;
  --f-mono: "JetBrains Mono", ui-monospace, Consolas, monospace;
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: 80px; }
body {
  margin: 0; min-height: 100vh; overflow-x: hidden;
  background: var(--mesa); color: var(--tinta);
  font: 400 15px/1.6 var(--f-texto);
  -webkit-font-smoothing: antialiased;
}
img, svg { display: block; max-width: 100%; }
h1, h2, h3, p, ul, ol, dl, dd, figure { margin: 0; }
ul, ol { padding: 0; }
button { font: inherit; }

:focus-visible { outline: 2px solid var(--bosque-claro); outline-offset: 2px; }
::selection { background: rgb(45 68 32 / .18); }

/* Con movimiento reducido todo se vuelve un fundido de 80 ms (cap. 09). */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 80ms !important; animation-delay: 0s !important; animation-iteration-count: 1 !important; transition-duration: 80ms !important; transition-delay: 0s !important; scroll-behavior: auto !important; }
}

/* Franja «AIGOS es gratis durante el lanzamiento» (Fase 1 de la membresía): arriba de las tres páginas, con enlace a /planes. */
.franja-gratis { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: center; gap: var(--e1) var(--e3); padding: var(--e2) var(--e4); background: var(--bosque-tenue); border-bottom: 1px solid var(--arena); color: var(--tinta); font: 500 14px/1.4 var(--f-texto); text-align: center; }
.franja-gratis a { color: var(--bosque); font-weight: 500; text-decoration: underline; text-decoration-color: var(--bosque-claro); text-underline-offset: 3px; background: none; padding-bottom: 0; }
.franja-gratis a:hover { text-decoration-color: var(--bosque); }
