/* ==========================================================
   Grupo Terranova design tokens (Identidad v2, see .claude/CLAUDE.md)
   Load before any other stylesheet. Never hardcode a value that has a token.
========================================================== */

/* ---------- Self-hosted fonts (no Google Fonts at runtime) ---------- */
/* Plus Jakarta Sans, variable latin subset (covers weights 400-800; includes accents, ñ, ¿ ¡). OFL-1.1 */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('../fonts/plus-jakarta-sans/PlusJakartaSans-latin-var.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;
}
/* Material Symbols Rounded, subset with only the 9 icons the site uses. Apache-2.0 */
@font-face {
  font-family: 'Material Symbols Rounded';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url('../fonts/material-symbols/material-symbols-rounded-subset.woff2') format('woff2');
}
.material-symbols-rounded {
  font-family: 'Material Symbols Rounded';
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-feature-settings: 'liga';
  font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
}

:root {
  /* Color (deep navy + gold): one token per role, values from the active palette */
  /* @palette:start (generated by .build/build.mjs from .build/content/palettes.json; edit the JSON, not this block) */
  /* palette: terranova-original */
  --navy: #071833; /* hero, header, footer, text on light */
  --navy-2: #0D2A52; /* raised surfaces on navy */
  --navy-3: #16386A; /* hover of navy surfaces; middle stop of the hero glow */
  --gold: #D39A33; /* accent on navy, gold buttons with navy text; never text on light */
  --gold-hover: #E0AC4B; /* hover of gold buttons */
  --gold-text: #926920; /* gold for text and links on light */
  --white: #FFFFFF; /* main light background; white overlays and hairlines on navy */
  --cool-50: #F3F5F7; /* alternate light sections */
  --cool-100: #E6EAEF; /* decorative hairlines */
  --text-muted: #5B6270; /* secondary text on light */
  --control-border: #848D9D; /* input/select/secondary borders */
  --whatsapp: #117A43; /* WhatsApp buttons only, white text (brand rule: stays green) */
  --whatsapp-hover: #0C6436; /* hover of WhatsApp buttons */
  --on-navy: #FFFFFF; /* text on navy */
  --on-navy-muted: #B8C2D3; /* secondary text on navy */
  --error: #B42318; /* form errors */
  --cream: #F1D5A0; /* logo and seal only */
  --brick: #042A5A; /* hero brick grid (drawn at 50% through the brick-grid.svg mask) */
  --hero-glow: #3466B0; /* inner stop of the radial glow behind the hero house */
  --shadow: #000000; /* neutral shadows (header, floating elements) */
  --shadow-ink: #181B22; /* soft shadows of the mobile bar and the video play button */
  --hc-cool-100: #6B7383; /* high contrast mode: hairlines */
  --hc-text-muted: #3D4350; /* high contrast mode: secondary text on light */
  --hc-on-navy-muted: #E3E8F0; /* high contrast mode: secondary text on navy */
  --navy-rgb: 7 24 51;
  --navy-3-rgb: 22 56 106;
  --white-rgb: 255 255 255;
  --hero-glow-rgb: 52 102 176;
  --shadow-rgb: 0 0 0;
  --shadow-ink-rgb: 24 27 34;
  /* @palette:end */

  /* Legacy aliases used across site.css (same values as the new tokens) */
  --ink: var(--navy);
  --ink-2: var(--navy-3);
  --on-ink: var(--on-navy);
  --on-ink-muted: var(--on-navy-muted);

  /* Type: one family */
  --font-head: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-body: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --weight-head: 800;
  --weight-body: 400;
  --weight-ui: 600;
  --tracking-head: -0.02em;
  --fs-display: clamp(40px, 3.9vw + 8px, 68px);
  --fs-h2: clamp(30px, 25px + 1.3vw, 42px);
  --fs-h3: 22px;
  --fs-lead: 19px;
  --fs-body: 17px;
  --fs-small: 14px;
  --lh-tight: 1.04;
  --lh-head: 1.15;
  --lh-body: 1.6;

  /* Space (4px base) */
  --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;
  --gutter: 16px;
  --container: 1200px;

  /* Shape: one radius for controls, cards and photos; pills only for chips */
  --radius: 6px;
  --radius-pill: 999px;
  --control-h: 48px;
  --shadow-raise: 0 1px 2px rgb(var(--navy-rgb) / 0.06), 0 6px 18px rgb(var(--navy-rgb) / 0.10);
  --shadow-float: 0 18px 40px rgb(var(--shadow-rgb) / 0.28);

  /* Interaction */
  --focus-ring: 3px solid var(--gold-text);
  --focus-ring-on-ink: 3px solid var(--gold);
  --tap-min: 44px;
  --ease: cubic-bezier(0.23, 1, 0.32, 1);   /* strong ease-out: immediate response, soft landing */
  --dur-fast: 150ms;
  --dur: 250ms;

  /* Layers */
  --z-header: 100;
  --z-mobile-bar: 90;
  --z-overlay: 200;
}

@media (min-width: 768px) {
  :root { --gutter: 32px; }
}

@media (prefers-reduced-motion: reduce) {
  :root { --dur-fast: 0ms; --dur: 0ms; }
}
