/* Bobby S. Lee, DDS: token values (homepage-spec Section 0.1, verbatim).
   Only genuinely fixed values live here. vh / vw / % / calc / clamp and every flex or grid
   mechanism is authored in css/site.css (Pass 1b law). */
:root {
  /* ---- faces (FLAVOR: house family-one set; no precedent face is ever imported) ---- */
  --font-display: "Open Sans", "Segoe UI", Arial, sans-serif;  /* 300 400 500 600 700 800 */
  --font-body: "Lato", "Segoe UI", Arial, sans-serif;           /* 400, 400 italic, 700 */

  /* ---- hues (FLAVOR, measured from logo-lee.gif) ---- */
  --primary: #0071BC;        /* rgb(0,113,188): wordmark blue. Pills, links, arrows, focus rings. 5.14:1 on white */
  --primary-deep: #005A96;   /* hover/active. White on it 7.23:1 */
  --ink: #0B2A45;            /* deep blue: insurance wash, drawer, legal ribbon, dense headings. 14.67:1 */
  --sky-strong: #BFDBEE;     /* rgb(191,219,238): logo tint. Utility strip, dividers, comfort band */
  --sky: #E4F0F8;            /* diluted canvas: the <main> ground (quincy's lavender role) */
  --grey-logo: #3B3B3B;      /* rgb(59,59,59): logo tagline grey. Nav text, EH-role headings. 11.2:1 */
  --gold: #BD9A5F;           /* house accent, phone chrome only (action-bar Request, drawer pill) */
  --white: #FFFFFF;

  /* ---- structural greys and text (recipe-measured neutrals) ---- */
  --body-ink: rgb(51, 51, 51);          /* EH card title / quincy body / EH contact body. 12.63:1 */
  --card-sub: rgba(51, 51, 51, 0.8);    /* EH card subtitle (renders rgb(92,92,92), 6.69:1) */
  --rev-name: rgb(61, 61, 61);          /* schillingfarms card name. 10.86:1 */
  --rev-quote: rgb(75, 75, 75);         /* schillingfarms card quote. 8.72:1 */
  --field-text: rgb(71, 85, 105);       /* EH input text. 7.58:1 */
  --field-line: #7D90A4;                /* class B: input boundary 3.28:1 on white (EH near-white hairline fails 1.4.11) */
  --error: rgb(192, 43, 10);            /* EH required marker + validation. 5.85:1 on white */
  --error-wash: rgb(255, 249, 249);     /* EH validation boxes */

  /* ---- surfaces ---- */
  --bar-frost: rgba(255, 255, 255, 0.88);         /* EH bar at rest */
  --bar-frost-scrolled: rgba(255, 255, 255, 0.94);/* EH bar from scrollY >= 1 */
  --hero-overlay: rgba(96, 108, 135, 0.25);       /* quincy hero overlay, kept verbatim (neutral slate, not a brand hue) */
  --ins-wash: rgba(11, 42, 69, 0.7);              /* newlife 70% wash with our ink; renders rgb(84,106,125) on white */
  --on-dark-line: rgba(255, 255, 255, 0.14);      /* drawer hairlines */
  --on-dark-soft: rgba(255, 255, 255, 0.78);      /* drawer secondary text, 9.42:1 on ink */
  --on-dark-child: rgba(255, 255, 255, 0.88);     /* drawer child rows, 11.61:1 on ink */

  /* ---- widget-native carve-outs (outside the hue budget; standing owner ruling) ---- */
  --g-star: #fbbc04;
  --g-blue: #4285F4; --g-red: #EA4335; --g-yellow: #FBBC05; --g-green: #34A853;
  --fb-blue: #1877F2;

  /* ---- shadows (recipe-measured; nothing else) ---- */
  --shadow-eh: rgba(0, 0, 0, 0.1) 0 4px 6px;             /* EH bar, mega panel, service card, form card */
  --shadow-eh-dd: rgba(0, 0, 0, 0.1) 0 4px 10px -2px;    /* EH plain dropdown */
  --shadow-eh-card-hover: rgba(0, 0, 0, 0.15) 0 8px 12px;
  --shadow-eh-arrow: rgba(0, 0, 0, 0.05) 0 1px 2px;
  --shadow-field: rgba(0, 0, 0, 0.05) 0 1px 2px;
  --shadow-sf-card: rgba(0, 0, 0, 0.1) 2px 2px 30px;     /* schillingfarms review card */
  --shadow-footer: rgba(0, 0, 0, 0.15) 0 0 5px;          /* quincy footer glow */
  --shadow-mbar: rgba(36, 50, 66, 0.075) 0 2px 10px;     /* EH mobile bar once scrolled */

  /* ---- radii (recipe ladder; pills never equal cards) ---- */
  --radius-pill: 9999px;
  --radius-eh: 36px;         /* EH bar bottom corners, mega and plain panels (2rem at EH's 18px root) */
  --radius-form: 18px;       /* EH form card (1rem at 18px) */
  --radius-eh-card: 8px;     /* EH service card, carousel arrows */
  --radius-field: 4px;
  --radius-error: 5px;

  /* ---- chrome heights (fixed px; verified viewport-independent) ---- */
  --util-h: 44px;            /* EH strip 40 -> 44 (class B, 44px targets) */
  --bar-h: 84px;             /* EH primary bar */
  --header-h: 128px;         /* = util + bar; inside the 125-145 cap */
  --mbar-h: 80px;            /* house bar (EH-mobile 80) */
  --actionbar-h: 56px;
  --chrome-inset: 18px;      /* EH side inset of both desktop tiers (1rem at 18px) */

  /* ---- fixed component px ---- */
  --row-max: 1200px;         /* EH header content row + EH band content */
  --logo-w: 250px;           /* EH logo box width (logo 250 x 46.12) */
  --logo-w-compact: 200px;
  --mega-w: 1200px;          /* = row width at >= 1276, see mechanism */
  --dd-w: 240px;             /* EH plain dropdown default width */
  --svc-gap: 30px;
  --portrait-ratio: 0.8;     /* quincy 4:5 */

  /* ---- focus (house ring = quincy's banked ring, recoloured) ---- */
  --focus-light: 2px dashed var(--primary);
  --focus-dark: 2px dashed #FFFFFF;
  --focus-offset: 3px;

  /* ---- motion ---- */
  --ease-std: cubic-bezier(0.4, 0, 0.2, 1);   /* EH brand transition */
}

/* ---- build additions (build-log.md "Spec corrections" 1): values the spec writes inline in a
   section mechanism, moved here so no raw colour lives outside this file. Nothing new is designed. ---- */
:root {
  --granite-ground: #F2EFE9;                        /* H6: the declared colour under tex-granite.jpg */
  --on-dark-line-soft: rgba(255, 255, 255, 0.08);   /* H0 drawer: child-row hairline */
  --shadow-summary: rgba(0, 0, 0, 0.11) 0 1px 4px;  /* H7: EH validation summary box */
}
