/* ================================================================
   Bozeman Real Estate Group — Design Tokens
   Field Report Direction A
   ================================================================ */

/* Google Fonts: Jost, League Spartan, Nunito Sans, Sacramento, Carlito */
@import url('https://fonts.googleapis.com/css2?family=Carlito:ital,wght@0,400;0,700;1,400;1,700&family=Jost:wght@300;400;500;600;700&family=League+Spartan:wght@400;500;600;700;800&family=Nunito+Sans:wght@300;400;600;700;800&family=Sacramento&display=swap');

:root {
  /* ---- Primary brand colors ---- */
  --breg-slate:        #435b72;
  --breg-green:        #6faf59;
  --breg-gray:         #595959;

  /* ---- Secondary brand colors ---- */
  --breg-midnight:     #001e29;
  --breg-ink:          #0d1f29;
  --breg-cream:        #f3e8da;
  --breg-bone:         #fcf8f0;
  --breg-peach:        #ffc071;
  --breg-white:        #ffffff;

  /* ---- Semantic surfaces ---- */
  --bg-page:           var(--breg-bone);
  --bg-page-warm:      var(--breg-cream);
  --bg-page-dark:      var(--breg-midnight);
  --bg-page-slate:     var(--breg-slate);
  --bg-card:           var(--breg-white);
  --bg-card-warm:      var(--breg-cream);

  /* ---- Semantic foreground ---- */
  --fg-strong:         var(--breg-midnight);
  --fg-default:        var(--breg-ink);
  --fg-muted:          var(--breg-gray);
  --fg-on-dark:        var(--breg-white);
  --fg-on-dark-muted:  rgba(255,255,255,0.72);

  /* ---- Borders & dividers ---- */
  --border-subtle:     rgba(13, 31, 41, 0.10);
  --border-default:    rgba(13, 31, 41, 0.18);
  --border-strong:     var(--breg-slate);
  --divider-on-dark:   rgba(255,255,255,0.18);

  /* ---- CTA accents ---- */
  --cta-primary-bg:    var(--breg-green);
  --cta-primary-fg:    var(--breg-white);
  --cta-accent-bg:     var(--breg-peach);
  --cta-accent-fg:     var(--breg-midnight);

  /* ---- Focus ---- */
  --focus-ring:        color-mix(in srgb, var(--breg-slate) 60%, transparent);

  /* ---- Font families ---- */
  --font-display: "Jost", "League Spartan", "Avenir Next", system-ui, sans-serif;
  --font-heading: var(--font-display);
  --font-accent:  "Nunito Sans", "Avenir Next", "Avenir", system-ui, sans-serif;
  --font-body:    "Carlito", "Calibri", system-ui, sans-serif;
  --font-script:  "Sacramento", cursive;

  /* ---- Type scale ---- */
  --fs-xs:    12px;
  --fs-sm:    14px;
  --fs-base:  16px;
  --fs-md:    18px;
  --fs-lg:    20px;
  --fs-xl:    24px;
  --fs-2xl:   32px;
  --fs-3xl:   40px;
  --fs-4xl:   56px;
  --fs-5xl:   72px;

  /* ---- Line heights ---- */
  --lh-tight: 1.05;
  --lh-snug:  1.2;
  --lh-base:  1.5;
  --lh-loose: 1.7;

  /* ---- Tracking ---- */
  --tr-tight:   -0.01em;
  --tr-normal:  0;
  --tr-wide:    0.04em;
  --tr-wider:   0.12em;
  --tr-widest:  0.18em;

  /* ---- Weights ---- */
  --fw-light:   300;
  --fw-regular: 400;
  --fw-medium:  500;
  --fw-semi:    600;
  --fw-bold:    700;

  /* ---- Spacing ---- */
  --sp-0:  0;
  --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;

  /* ---- Radii ---- */
  --radius-none: 0;
  --radius-sm:   2px;
  --radius-md:   4px;
  --radius-lg:   8px;
  --radius-pill: 999px;

  /* ---- Shadows ---- */
  --shadow-xs: 0 1px 2px rgba(0, 30, 41, 0.06);
  --shadow-sm: 0 2px 6px rgba(0, 30, 41, 0.08);
  --shadow-md: 0 8px 20px rgba(0, 30, 41, 0.10);
  --shadow-lg: 0 20px 40px rgba(0, 30, 41, 0.14);

  /* ---- Containers ---- */
  --container-sm: 640px;
  --container-md: 880px;
  --container-lg: 1120px;
  --container-xl: 1320px;
}

/* Base resets */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; min-height: 100%; background: var(--breg-bone); }
body {
  font-family: var(--font-body);
  font-size: var(--fs-base);
  line-height: var(--lh-base);
  color: var(--fg-default);
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
