/* ============================================================
   HOUSE OSBORNE — DESIGN TOKENS (theme build)
   Mirrors the design system's tokens/ for the WordPress theme.
   ============================================================ */
/* Fonts are loaded as a proper enqueued stylesheet in functions.php
   (and via <link> in the standalone previews) — not @import, which
   some hosts/CDNs strip. */

:root {
  /* Brand core */
  --ho-navy: #0A2240; --ho-gold: #C9A55C;
  /* Navy scale */
  --navy-950:#06152C; --navy-900:#081B36; --navy-800:#0A2240; --navy-700:#122E52;
  --navy-600:#1B3A63; --navy-500:#2A4B77; --navy-400:#4A6A93; --navy-300:#7E97B5;
  --navy-200:#B9C7D8; --navy-100:#DEE5EE;
  /* Gold scale */
  --gold-700:#8A6A2E; --gold-600:#A8843E; --gold-500:#C9A55C; --gold-400:#D6B978;
  --gold-300:#E3CF9C; --gold-200:#EFE0BF; --gold-100:#F7EFDC;
  /* Parchment / paper */
  --paper:#FFFFFF; --parchment-50:#FDFBF6; --parchment-100:#F8F4EC; --parchment-200:#F1EBDE;
  --parchment-300:#E7DECC; --sand-400:#D9CDB4; --sand-500:#C4B496;
  /* Ink */
  --ink-900:#0A2240; --ink-700:#2B3340; --ink-600:#495160; --ink-500:#6B7280; --ink-400:#8E96A2;
  /* Heritage accents */
  --maroon-700:#5A1C2A; --maroon-600:#6E2433; --maroon-500:#8A3145;
  --olive-700:#5C6340; --olive-600:#757C52; --olive-500:#8C9266;
  /* Status */
  --success-600:#4F6B3E; --danger-600:#9B2C2C; --info-600:#2A4B77;

  /* Semantic surfaces */
  --surface-base:var(--parchment-100); --surface-raised:var(--paper); --surface-card:var(--paper);
  --surface-sunken:var(--parchment-200); --surface-inverse:var(--navy-800); --surface-inverse-2:var(--navy-900);
  /* Text */
  --text-display:var(--navy-800); --text-heading:var(--navy-800); --text-body:var(--ink-700);
  --text-muted:var(--ink-500); --text-eyebrow:var(--gold-600); --text-on-inverse:var(--parchment-50);
  --text-on-inverse-muted:var(--navy-200); --text-on-gold:var(--navy-900);
  /* Lines */
  --border-hairline:rgba(10,34,64,0.12); --border-default:rgba(10,34,64,0.18);
  --border-strong:var(--navy-800); --border-gold:var(--gold-500); --border-on-inverse:rgba(255,255,255,0.16);
  /* Interactive */
  --accent:var(--gold-500); --accent-hover:var(--gold-600); --accent-press:var(--gold-700);
  --link:var(--navy-700); --link-hover:var(--gold-600); --focus-ring:var(--gold-500);

  /* Fonts */
  --font-serif:"Playfair Display","Iowan Old Style",Georgia,"Times New Roman",serif;
  --font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --font-display:var(--font-serif); --font-body:var(--font-sans);
  /* Weights */
  --fw-regular:400; --fw-medium:500; --fw-semibold:600; --fw-bold:700;
  /* Type scale */
  --fs-display:clamp(3rem,1.6rem + 5.6vw,6rem); --fs-h1:clamp(2.5rem,1.6rem + 3.6vw,4rem);
  --fs-h2:clamp(2rem,1.4rem + 2.4vw,3rem); --fs-h3:clamp(1.5rem,1.2rem + 1.2vw,2rem);
  --fs-h4:1.375rem; --fs-h5:1.125rem; --fs-body-lg:1.1875rem; --fs-body:1.0625rem;
  --fs-body-sm:0.9375rem; --fs-caption:0.8125rem; --fs-eyebrow:0.75rem;
  /* Line heights */
  --lh-tight:1.04; --lh-heading:1.14; --lh-snug:1.35; --lh-body:1.62; --lh-relaxed:1.75;
  /* Letter spacing */
  --ls-display:-0.02em; --ls-heading:-0.01em; --ls-body:0em; --ls-eyebrow:0.22em; --ls-button:0.04em;

  /* Spacing (8px 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; --space-10:128px; --space-11:192px;
  --section-y:var(--space-10); --section-y-sm:var(--space-9);
  --container-max:1280px; --container-wide:1480px; --container-text:720px;
  --gutter:clamp(20px,5vw,64px);

  /* Radii */
  --radius-xs:2px; --radius-sm:4px; --radius-md:8px; --radius-lg:12px; --radius-pill:999px; --radius-card:var(--radius-sm);
  /* Borders */
  --bw-hairline:1px; --bw-accent:2px;
  /* Shadows */
  --shadow-xs:0 1px 2px rgba(10,34,64,0.06); --shadow-sm:0 2px 8px rgba(10,34,64,0.07);
  --shadow-md:0 8px 24px rgba(10,34,64,0.10); --shadow-lg:0 18px 48px rgba(10,34,64,0.14);
  --shadow-gold:0 6px 24px rgba(201,165,92,0.28);
  --ring:0 0 0 3px rgba(201,165,92,0.45);
  /* Motion */
  --ease-out:cubic-bezier(0.22,0.61,0.36,1); --ease-in-out:cubic-bezier(0.45,0,0.25,1);
  --dur-fast:140ms; --dur-base:240ms; --dur-slow:480ms; --dur-cine:720ms;
}

*,*::before,*::after { box-sizing:border-box; }
body {
  margin:0; font-family:var(--font-body); font-size:var(--fs-body); line-height:var(--lh-body);
  font-weight:var(--fw-regular); color:var(--text-body); background:var(--surface-base);
  letter-spacing:var(--ls-body); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
h1,h2,h3,h4,h5 { font-family:var(--font-display); color:var(--text-heading); margin:0 0 .4em;
  font-weight:var(--fw-semibold); line-height:var(--lh-heading); letter-spacing:var(--ls-heading); text-wrap:balance; }
h1{font-size:var(--fs-h1);} h2{font-size:var(--fs-h2);}
h3{font-size:var(--fs-h3);font-weight:var(--fw-medium);} h4{font-size:var(--fs-h4);font-weight:var(--fw-medium);}
h5{font-size:var(--fs-h5);font-weight:var(--fw-medium);}
p{margin:0 0 1em;text-wrap:pretty;}
a{color:var(--link);text-decoration:none;transition:color var(--dur-fast) var(--ease-out);}
a:hover{color:var(--link-hover);}
strong{font-weight:var(--fw-semibold);} em{font-style:italic;}
img{max-width:100%;display:block;}
::selection{background:var(--gold-200);color:var(--navy-900);}
:focus-visible{outline:none;box-shadow:var(--ring);}