/* ============================================================
   BMI Constructora — Tokens & fonts (subset for the HOME page)
   Derived from the design system colors_and_type.css.
   ============================================================ */

/* --- Nunito Sans (standard width) --- */
@font-face { font-family:"Nunito Sans"; font-style:normal; font-weight:400; font-display:swap;
  src:url("../assets/fonts/NunitoSans_10pt-Regular.ttf") format("truetype"); }
@font-face { font-family:"Nunito Sans"; font-style:normal; font-weight:500; font-display:swap;
  src:url("../assets/fonts/NunitoSans_10pt-Medium.ttf") format("truetype"); }
@font-face { font-family:"Nunito Sans"; font-style:normal; font-weight:600; font-display:swap;
  src:url("../assets/fonts/NunitoSans_10pt-SemiBold.ttf") format("truetype"); }
@font-face { font-family:"Nunito Sans"; font-style:normal; font-weight:700; font-display:swap;
  src:url("../assets/fonts/NunitoSans_10pt-Bold.ttf") format("truetype"); }
@font-face { font-family:"Nunito Sans"; font-style:normal; font-weight:800; font-display:swap;
  src:url("../assets/fonts/NunitoSans_10pt-ExtraBold.ttf") format("truetype"); }
@font-face { font-family:"Nunito Sans"; font-style:normal; font-weight:900; font-display:swap;
  src:url("../assets/fonts/NunitoSans_10pt-Black.ttf") format("truetype"); }

/* --- Nunito Sans Condensed (tight KPI cintas / labels) --- */
@font-face { font-family:"Nunito Sans Condensed"; font-style:normal; font-weight:700; font-display:swap;
  src:url("../assets/fonts/NunitoSans_10pt_Condensed-Bold.ttf") format("truetype"); }
@font-face { font-family:"Nunito Sans Condensed"; font-style:normal; font-weight:900; font-display:swap;
  src:url("../assets/fonts/NunitoSans_10pt_Condensed-Black.ttf") format("truetype"); }

/* --- Roboto Mono (technical / data) --- */
@import url('https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;500;600&display=swap');

:root {
  /* Brand core */
  --bmi-green:#007236; --bmi-green-700:#00592A; --bmi-green-800:#003F1E;
  --bmi-green-300:#4BA275; --bmi-green-100:#E3F1E9;
  --bmi-orange:#FEA30B; --bmi-orange-600:#E48400; --bmi-orange-100:#FFEFD0;
  /* Semantic exception (compliance / whistleblower channel only — not a decorative brand color) */
  --bmi-alert:#B3261E; --bmi-alert-700:#8C1D17;

  /* Neutrals */
  --bmi-black:#0E0E0E; --bmi-ink:#1A1F1B; --bmi-charcoal:#3A3F3A;
  --bmi-graphite:#595E58; --bmi-steel:#8A8E89; --bmi-mist:#C7CAC4;
  --bmi-paper:#ECEEE9; --bmi-cream:#F6F5F0; --bmi-white:#FFFFFF;

  /* Semantic */
  --bg:var(--bmi-white); --bg-alt:var(--bmi-cream);
  --bg-inverse:var(--bmi-green); --bg-inverse-deep:var(--bmi-ink);
  --fg-1:var(--bmi-ink); --fg-2:var(--bmi-charcoal); --fg-3:var(--bmi-graphite);
  --fg-on-green:var(--bmi-white); --fg-on-orange:var(--bmi-ink);
  --border:rgba(14,14,14,.10); --border-strong:rgba(14,14,14,.22);
  --divider:rgba(255,255,255,.18);
  --focus-ring:0 0 0 3px rgba(254,163,11,.55);

  /* Type families */
  --font-display:"Nunito Sans","Helvetica Neue",Arial,sans-serif;
  --font-body:"Nunito Sans","Helvetica Neue",Arial,sans-serif;
  --font-condensed:"Nunito Sans Condensed","Nunito Sans",sans-serif;
  --font-mono:"Roboto Mono",ui-monospace,Menlo,monospace;

  /* Type scale */
  --fs-display:clamp(48px,6.4vw,88px);
  --fs-h1:clamp(36px,4.4vw,56px);
  --fs-h2:clamp(28px,3.0vw,40px);
  --fs-h3:22px; --fs-h4:18px; --fs-eyebrow:12px;
  --fs-body:16px; --fs-body-lg:18px; --fs-small:14px; --fs-mono:13px;

  /* Weights */
  --fw-regular:400; --fw-medium:500; --fw-semibold:600; --fw-bold:700; --fw-black:900;

  /* Line height & tracking */
  --lh-tight:1.05; --lh-snug:1.20; --lh-normal:1.45; --lh-loose:1.65;
  --tr-display:-0.02em; --tr-eyebrow:0.16em; --tr-button:0.04em;

  /* Spacing (8pt) */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px;
  --sp-6:32px; --sp-7:48px; --sp-8:64px; --sp-9:96px; --sp-10:128px;

  /* Radii */
  --r-none:0; --r-xs:2px; --r-sm:4px; --r-md:6px; --r-lg:10px; --r-pill:999px;

  /* Elevation */
  --shadow-1:0 1px 2px rgba(14,14,14,.06),0 1px 1px rgba(14,14,14,.04);
  --shadow-2:0 4px 14px rgba(14,14,14,.08),0 2px 4px rgba(14,14,14,.05);
  --shadow-3:0 12px 32px rgba(14,14,14,.14),0 4px 8px rgba(14,14,14,.06);

  /* Motion */
  --ease-standard:cubic-bezier(.2,.0,.0,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --dur-fast:120ms; --dur-base:200ms; --dur-slow:400ms;

  /* Tweakable headline scale (overridden by Tweaks panel) */
  --title-scale:1;
}

*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{
  font-family:var(--font-body); font-size:var(--fs-body);
  line-height:var(--lh-normal); color:var(--fg-1); background:var(--bg);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; padding:0; margin:0; }
img{ display:block; max-width:100%; }

h1,h2,h3,h4{
  font-family:var(--font-display); letter-spacing:var(--tr-display);
  line-height:var(--lh-tight); text-wrap:balance; margin:0;
}

.eyebrow{
  font-family:var(--font-display); font-size:var(--fs-eyebrow);
  font-weight:var(--fw-bold); letter-spacing:var(--tr-eyebrow);
  text-transform:uppercase; color:var(--bmi-green);
}
.eyebrow--orange{ color:var(--bmi-orange-600); }
.eyebrow--on-dark{ color:var(--bmi-orange); }

::selection{ background:var(--bmi-orange); color:var(--bmi-ink); }
