/* === GENERATED FILE — DO NOT EDIT DIRECTLY ===
 * This file is concatenated from src/css/*.css by tools/build-css.py
 * To make CSS changes, edit a source module then run:
 *   python3 tools/build-css.py
 * Editing this file directly will be overwritten on the next build.
 */

/* === 00-vars.css === */
/* David Naumann & Associates — Shared Design System */
:root{
  --ink:#0f1d33;--ink-2:#142a47;--ink-3:#1c3a60;--ink-4:#2a517f;
  --paper:#fbfbfa;--paper-2:#f3f5f8;--bone:#ebf0f6;
  --rule:#d8dfe8;--rule-d:#2a3a52;
  --muted:#5e6c80;--muted-l:#8294aa;
  --brass:#5fb6ec;--brass-d:#2f8fc9;--brass-l:#a3d3f0;
  --gold:#c9a56b;
  /* Type — editorial premium */
  --display:'Fraunces','Source Serif 4','Iowan Old Style',Georgia,'Times New Roman',serif;
  /* --stamp and --read now alias --display (Fraunces). Oswald + Crimson Pro removed. */
  --stamp:'Fraunces','Iowan Old Style',Georgia,'Times New Roman',serif;
  --serif:'Fraunces','Iowan Old Style',Georgia,'Times New Roman',serif;
  --read:'Fraunces','Iowan Old Style',Georgia,'Times New Roman',serif;
  --body:'Inter',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI','Helvetica Neue',Helvetica,Arial,sans-serif;
  --mono:'JetBrains Mono',SFMono-Regular,Menlo,Consolas,'Courier New',monospace;
  /* Layout */
  --gutter:clamp(20px,3.5vw,48px);--max:1440px;--max-narrow:1180px;
  /* Motion */
  --ease:cubic-bezier(0.22,1,0.36,1);--ease-out:cubic-bezier(0.16,1,0.3,1);--ease-spring:cubic-bezier(0.34,1.56,0.64,1);
  /* Shadows — layered for depth */
  --shadow-sm:0 1px 2px rgba(15,29,51,0.06),0 1px 3px rgba(15,29,51,0.04);
  --shadow-md:0 2px 4px rgba(15,29,51,0.05),0 8px 24px -8px rgba(15,29,51,0.10);
  --shadow-lg:0 4px 8px rgba(15,29,51,0.06),0 24px 48px -16px rgba(15,29,51,0.16);
  --shadow-xl:0 8px 16px rgba(15,29,51,0.08),0 48px 96px -24px rgba(15,29,51,0.22);
}

/* === 10-base.css === */
*{box-sizing:border-box;margin:0;padding:0}
*:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:2px}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-size:16px;overflow-x:hidden;max-width:100vw;overflow-y:scroll;scrollbar-gutter:stable}
body{font-family:var(--body);color:var(--ink);background:var(--paper);font-size:17px;line-height:1.62;letter-spacing:-0.003em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:hidden;max-width:100vw;font-feature-settings:'cv11','ss01','ss03','kern','zero'}
img,svg,video{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none;transition:color 0.25s var(--ease)}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul,ol{list-style:none}
.practice-bullets{list-style:disc;padding-left:24px;margin:8px 0 0;max-width:74ch}
.practice-bullets li{font-size:17px;line-height:1.7;color:var(--ink-2);margin-bottom:14px;padding-left:6px}
.practice-bullets li::marker{color:var(--brass-d)}
.practice-bullets li strong{color:var(--ink);font-weight:600}
::selection{background:var(--brass);color:var(--ink)}
.container{max-width:var(--max);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.container-n{max-width:var(--max-narrow);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.eyebrow{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:0.22em;text-transform:uppercase;color:var(--brass-d);display:inline-flex;align-items:center;gap:14px;font-feature-settings:"kern"}
.eyebrow::before{content:'';width:32px;height:1px;background:linear-gradient(90deg,transparent,var(--brass))}
.dark .eyebrow{color:var(--brass-l)}
/* Editorial display headlines — Fraunces variable serif */
h1,h2,h3,h4,h5{font-family:var(--display);font-weight:400;line-height:1.04;letter-spacing:-0.022em;font-variation-settings:'opsz' 144,'SOFT' 30,'WONK' 0;font-feature-settings:'ss01'}
h1{font-weight:400;letter-spacing:-0.028em}
h2{font-weight:400;letter-spacing:-0.024em}
h3{font-weight:500;letter-spacing:-0.018em;line-height:1.12}
h4{font-weight:500;letter-spacing:-0.012em;line-height:1.2}
h5{font-weight:500;letter-spacing:-0.005em;line-height:1.3}
/* Stamp — Oswald for SHOUT / labels / brand wordmark / mobile nav */
.stamp,.brand-name,.brand-tag,.mob-nav a{font-family:var(--stamp);text-transform:uppercase}
.serif-em{font-family:var(--serif);font-style:italic;font-weight:300;text-transform:none;letter-spacing:-0.022em;color:var(--brass);font-variation-settings:'opsz' 144,'SOFT' 50}
.lead{font-family:var(--body);font-size:clamp(18px,1.3vw,22px);line-height:1.58;color:var(--muted);font-weight:400;max-width:60ch;letter-spacing:-0.005em}
.dark .lead{color:rgba(235,240,246,0.82)}
/* Animated text-link underline */
.dark .tlink{color:var(--paper)}
p{max-width:70ch}
.scroll-prog{position:fixed;top:0;left:0;height:2px;width:0;background:linear-gradient(90deg,var(--brass-l),var(--brass),var(--brass-d));z-index:9000;pointer-events:none;transition:width 0.08s linear}

/* === 20-layout.css === */
.page-hero{position:relative;background:var(--ink);color:var(--paper);padding:clamp(128px,14vh,148px) 0 clamp(48px,6vw,64px);overflow:hidden;isolation:isolate}
.page-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(900px 500px at 80% 20%,rgba(95,182,236,0.10),transparent 60%),radial-gradient(600px 400px at 5% 80%,rgba(95,182,236,0.05),transparent 70%);pointer-events:none;z-index:1}
.page-hero::after{content:'';position:absolute;top:50%;right:-180px;width:720px;height:720px;background:url('../img/mark-brass.webp') no-repeat center/contain;opacity:0.05;transform:translateY(-50%);pointer-events:none;z-index:1;filter:blur(0.4px)}
@media (max-width:980px){.page-hero::after{right:-260px;width:520px;height:520px;opacity:0.04}}
@media (max-width:600px){.page-hero::after{right:-300px;width:400px;height:400px;opacity:0.02}}
.page-hero > .container{position:relative;z-index:2}
/* Brand seal - large lockup display */
@media (max-width:600px){.brand-seal-card{padding:32px 28px}.brand-seal-card img{max-height:160px}}
/* Decorative section watermark - opt-in via .has-watermark class */
.has-watermark{position:relative;overflow:hidden}
.has-watermark::after{content:'';position:absolute;top:50%;left:-200px;width:680px;height:680px;background:url('../img/mark-brass.webp') no-repeat center/contain;opacity:0.035;transform:translateY(-50%) rotate(-8deg);pointer-events:none;z-index:0}
.has-watermark.right::after{left:auto;right:-200px;transform:translateY(-50%) rotate(8deg)}
.has-watermark > *{position:relative;z-index:1}
@media (max-width:600px){.has-watermark::after{width:480px;height:480px;left:-180px;opacity:0.02}
.has-watermark.right::after{right:-180px}}
.crumbs{font-family:var(--mono);font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:rgba(235,240,246,0.5);display:flex;gap:12px;align-items:center;margin-bottom:32px}
.crumbs a:hover{color:var(--brass-l)}
.crumbs .sep{color:var(--ink-4)}
.page-hero h1{font-family:var(--display);font-size:clamp(52px,8vw,124px);font-weight:400;line-height:0.96;letter-spacing:-0.034em;margin-bottom:32px;font-variation-settings:'opsz' 144,'SOFT' 30}
.page-hero h1 em,.page-hero h1 .serif-em{font-style:italic;font-weight:300;color:var(--brass);letter-spacing:-0.038em}
.page-hero h1 em{font-family:var(--serif);font-style:italic;font-weight:300;text-transform:none;letter-spacing:-0.04em;color:var(--brass);font-size:1.04em}
.page-hero .lead{color:rgba(235,240,246,0.78);font-size:clamp(17px,1.4vw,22px);max-width:56ch}
.section{padding:clamp(48px,5.5vw,80px) 0;position:relative}
.section.dark{background:var(--ink);color:var(--paper)}
.section.bone{background:var(--paper-2)}
.section + .section{padding-top:clamp(36px,4vw,64px)}
.section-head{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,3.2vw,44px);align-items:end;margin-bottom:clamp(28px,3.5vw,48px)}
.section-head:has(> div:only-child){grid-template-columns:1fr;gap:0}
@media (max-width:760px){.section-head{grid-template-columns:1fr}}
.section-head h2{font-family:var(--display);font-size:clamp(40px,5vw,82px);font-weight:400;line-height:1;letter-spacing:-0.028em;margin-top:18px;font-variation-settings:'opsz' 144,'SOFT' 30}
@media (max-width:480px){.section-head h2{font-size:clamp(32px,6vw,40px)}}
.section-head h2 em,.section-head h2 .serif-em{font-style:italic;font-weight:300;letter-spacing:-0.032em}
.section-head h2 em{font-family:var(--serif);font-style:italic;font-weight:300;text-transform:none;letter-spacing:-0.04em;color:var(--brass-d)}
.dark .section-head h2 em{color:var(--brass)}
.cta-section{background:var(--ink);color:var(--paper);padding:clamp(48px,5.5vw,72px) 0;position:relative;overflow:hidden}
.cta-section::before{content:'';position:absolute;inset:0;background:radial-gradient(800px 600px at 50% 50%,rgba(95,182,236,0.16),transparent 60%)}
.cta-inner{position:relative;z-index:1;max-width:var(--max-narrow);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter);text-align:center}
.cta-eb{font-family:var(--mono);font-size:11px;letter-spacing:0.32em;text-transform:uppercase;color:var(--brass);margin-bottom:24px;display:inline-block;font-feature-settings:"kern"}
.cta-h{font-family:var(--display);font-size:clamp(38px,4.6vw,72px);font-weight:400;line-height:1.06;letter-spacing:-0.024em;margin-bottom:28px;font-variation-settings:'opsz' 144,'SOFT' 30}
.cta-h em{font-style:italic;font-weight:300;color:var(--brass-l)}
.cta-h em{font-family:var(--serif);font-style:italic;font-weight:300;text-transform:none;letter-spacing:-0.04em;color:var(--brass)}
.cta-phone{display:block;font-family:var(--body);font-size:clamp(34px,4.2vw,52px);font-weight:700;letter-spacing:-0.018em;color:var(--brass);margin:32px 0 22px;transition:color 0.3s;font-variant-numeric:tabular-nums;font-feature-settings:"tnum","kern"}
.cta-phone:hover{color:var(--brass-l)}
.cta-foot{font-family:var(--mono);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:rgba(235,240,246,0.5);display:flex;justify-content:center;align-items:center;gap:16px}
.cta-foot::before,.cta-foot::after{content:'';width:60px;height:1px;background:rgba(255,255,255,0.18)}
.btn-primary{display:inline-flex;align-items:center;gap:12px;padding:16px 16px 16px 26px;background:var(--brass);color:var(--ink);font-size:14px;font-weight:600;border-radius:100px;transition:background 0.3s,transform 0.3s var(--ease)}
.btn-primary::after{content:'→';display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--ink);color:var(--brass);font-weight:700;transition:transform 0.3s var(--ease)}
.btn-primary:hover{background:var(--brass-l);transform:translateY(-1px)}
.btn-primary:hover::after{transform:translateX(2px) rotate(-8deg)}
.btn-quiet{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--ink);padding:8px 0;border-bottom:1px solid rgba(15,29,51,0.25);transition:border-color 0.3s,color 0.3s}
.btn-quiet:hover{border-color:var(--brass-d);color:var(--brass-d)}
.dark .btn-quiet{color:var(--paper);border-bottom-color:rgba(255,255,255,0.25)}
.dark .btn-quiet:hover{border-color:var(--brass);color:var(--brass-l)}

/* === 30-nav.css === */
/* ============================================================
   Masthead — two-tone navy + paper.
   Top: navy kicker slug (paper text, brass accents).
   Below: paper main row (navy text, brass phone CTA).
   Magazine-cover look: dark slug above white masthead.
   ============================================================ */
.site-header{position:fixed;top:18px;left:0;right:0;z-index:80;background:transparent;transition:top 0.4s var(--ease),transform 0.4s var(--ease);padding:0 clamp(12px,2vw,28px)}
.site-header.scrolled{top:10px}
.site-header.hide{transform:translateY(-160%)}/* Top kicker slug — solid navy ink, paper text, brass accents */
/* Reconstruct kicker as a single inline flex with all content */
@media (max-width:780px){}

/* Main masthead — floating paper bubble (rounded pill). Flex layout so the
 * three sections (brand · nav · cta) each get their natural width and the
 * remaining space distributes around the centered nav. Avoids the grid 1fr
 * shrink behavior that caused the nav to overflow into the brand. */
.header-inner{background:rgba(251,251,250,0.92);max-width:var(--max);margin:0 auto;padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:clamp(24px,3vw,40px);border:1px solid rgba(15,29,51,0.08);border-radius:100px;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);box-shadow:0 1px 0 rgba(255,255,255,0.6) inset,0 10px 32px -14px rgba(15,29,51,0.14);transition:padding 0.4s var(--ease),background 0.4s var(--ease),box-shadow 0.4s var(--ease),border-color 0.4s var(--ease)}
.brand,.header-cta{flex-shrink:0}
.nav-primary{flex-shrink:1;min-width:0}
.site-header.scrolled .header-inner{background:rgba(251,251,250,0.97);padding:10px 12px 10px 18px;box-shadow:0 1px 0 rgba(255,255,255,0.65) inset,0 14px 36px -16px rgba(15,29,51,0.20);border-color:rgba(15,29,51,0.14)}

/* Brand on paper — navy text, brass tag */
.brand{display:flex;align-items:center;gap:16px;text-decoration:none;color:var(--ink)}
.brand-mark{width:42px;height:42px;background:var(--ink);display:grid;place-items:center;flex-shrink:0;border-radius:4px;overflow:hidden;transition:transform 0.3s var(--ease),box-shadow 0.3s var(--ease);position:relative}
.brand-mark::after{content:"";position:absolute;inset:0;border:1px solid rgba(201,166,107,0.40);border-radius:4px;pointer-events:none}
.brand:hover .brand-mark{transform:translateY(-1px);box-shadow:0 6px 18px -8px rgba(15,29,51,0.30)}
.brand:hover .brand-mark::after{border-color:rgba(201,166,107,0.65)}
.brand-mark img{width:30px;height:30px;object-fit:contain}
.brand-mark svg{width:22px;height:22px;object-fit:contain}
.foot-brand .brand-mark{width:42px;height:42px;border-radius:6px;background:var(--ink)}
.foot-brand .brand-mark::after{display:none}
.foot-brand .brand-mark img{width:32px;height:32px}
.foot-brand .brand-name{font-size:12px;color:var(--paper)}
.foot-brand .brand-tag{font-size:9px;color:var(--brass);display:block}
.brand-text{display:flex;flex-direction:column;line-height:1;gap:6px}
.brand-name{font-family:var(--display);font-size:21px;font-weight:500;letter-spacing:-0.018em;text-transform:none;font-variation-settings:'opsz' 96,'SOFT' 30;white-space:nowrap;color:var(--ink);line-height:0.95}
.brand-tag{font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:0.22em;text-transform:uppercase;color:var(--brass-d);line-height:1;display:block}
/* Primary nav on paper — navy labels with vertical hairline between each link */
.nav-primary{display:flex;align-items:center;justify-content:center;gap:0;position:relative;flex-wrap:nowrap;min-width:0}
.nav-primary a{position:relative;padding:9px clamp(8px,0.9vw,13px);font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:0.15em;text-transform:uppercase;color:var(--ink-2);text-decoration:none;transition:color 0.25s var(--ease);white-space:nowrap;line-height:1;border-right:1px solid rgba(15,29,51,0.10)}
.nav-primary a:last-child,.nav-primary a:last-of-type{border-right:0 !important}
.nav-primary a:hover{color:var(--ink)}
.nav-primary a.active{color:var(--ink)}
.nav-primary a::after{content:"";position:absolute;left:50%;right:auto;bottom:-2px;width:0;height:1.5px;background:var(--brass);transform:translateX(-50%);transition:width 0.3s var(--ease),background 0.3s var(--ease);border-radius:1px}
.nav-primary a:hover::after{width:18px}
.nav-primary a.active::after{width:22px;background:var(--brass-d)}
.nav-indicator{display:none}
@media (min-width:1281px){.nav-primary a{padding:9px clamp(10px,1.05vw,15px);font-size:11px;letter-spacing:0.17em}}
@media (max-width:1180px){.nav-primary a{padding:8px clamp(6px,0.75vw,10px);font-size:10px;letter-spacing:0.13em}}
@media (max-width:760px){.nav-primary a{border-right:none}}

/* Phone CTA — strong conversion focus: brass-icon + "FREE CONSULTATION" eyebrow + phone number */
.header-tel{display:inline-flex;align-items:center;gap:11px;text-decoration:none;color:var(--paper);padding:8px 18px 8px 8px;background:var(--ink);border:1px solid var(--ink);border-radius:100px;transition:background 0.25s var(--ease),border-color 0.25s var(--ease),transform 0.25s var(--ease),box-shadow 0.3s var(--ease);box-shadow:0 4px 12px -4px rgba(15,29,51,0.30)}
.header-tel:hover{background:#1a2942;border-color:#1a2942;transform:translateY(-1px);box-shadow:0 8px 20px -6px rgba(15,29,51,0.40)}
.header-tel-icon{width:32px;height:32px;border-radius:50%;background:var(--brass);display:inline-flex;align-items:center;justify-content:center;color:var(--ink);flex-shrink:0;transition:background 0.25s var(--ease),transform 0.4s var(--ease)}
.header-tel:hover .header-tel-icon{background:var(--brass-l);transform:rotate(-10deg)}
.header-tel-icon svg{width:14px;height:14px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.header-tel-text{display:flex;flex-direction:column;line-height:1.05;gap:3px}
.header-tel-eb{display:block;font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:0.20em;text-transform:uppercase;color:var(--brass)}
.header-tel-num{display:block;font-family:var(--body);font-size:14.5px;font-weight:700;letter-spacing:-0.01em;color:var(--paper);font-variant-numeric:tabular-nums;font-feature-settings:"tnum","kern";line-height:1}
@media (max-width:1080px){.header-tel-eb{display:none}.header-tel-text{gap:0}}

/* Default desktop spacing for the header CTA group (search button + phone pill) */
.header-cta{display:flex;align-items:center;gap:16px}

/* Mobile toggle on paper */
.nav-toggle{display:none;width:42px;height:42px;border:1px solid rgba(15,29,51,0.18);border-radius:50%;align-items:center;justify-content:center;background:transparent;color:var(--ink);transition:border-color 0.25s,color 0.25s,background 0.25s;flex-shrink:0}
.nav-toggle:hover,.nav-toggle:active{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.nav-toggle svg{width:20px;height:20px}

/* Mobile compact phone — circular brass icon button, visible next to hamburger */
.nav-tel-mobile{display:none;width:42px;height:42px;border-radius:50%;background:var(--brass);color:var(--ink);align-items:center;justify-content:center;text-decoration:none;flex-shrink:0;transition:background 0.25s var(--ease),transform 0.25s var(--ease)}
.nav-tel-mobile:hover,.nav-tel-mobile:active{background:var(--brass-l);transform:scale(1.05)}
.nav-tel-mobile svg{width:16px;height:16px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}

@media (max-width:1180px){.nav-primary{gap:0}}
@media (max-width:1080px){
  .nav-primary,.header-cta .cta-pill,.header-cta .header-tel{display:none}
  .nav-toggle,.nav-tel-mobile{display:inline-flex}
  .header-cta{display:flex;align-items:center;gap:10px}
  /* Switch to flex with space-between at mobile so brand sits left and the
   * right-side button cluster sits right. Grid auto-placement breaks once
   * .nav-primary is display:none (cluster falls into the middle column). */
  .header-inner{display:flex;align-items:center;justify-content:space-between;padding:12px var(--gutter);gap:14px}
  .site-header.scrolled .header-inner{padding:10px var(--gutter)}
  }
@media (max-width:680px){
  /* Kill the kicker strip entirely on small phones — wins real estate for content */
  }
@media (max-width:560px){
  .brand{gap:10px}
  .brand-mark{width:36px;height:36px;border-radius:3px}
  .brand-mark img{width:26px;height:26px}
  .brand-text{gap:4px}
  .brand-name{font-size:15px;letter-spacing:-0.012em}
  .brand-tag{font-size:8px;letter-spacing:0.18em}
  .header-inner{padding:10px 12px;gap:12px}
}
@media (max-width:480px){
  /* Mobile bubble compression */
  .header-inner{gap:10px;padding:9px 10px}
  .nav-primary{display:none}
}
@media (max-width:430px){
  /* Smaller iPhones (SE, Mini, 14 standard) — the firm-name text crowds the
   * right-side button cluster and pushes the hamburger off the white pill.
   * Hide the wordmark on these widths; the logo mark alone carries identity. */
  .brand-text{display:none}
  .brand{gap:0}
}
@media (max-width:380px){
  /* Tightest phones — drop the brand-tag (already hidden via brand-text rule
   * above, but kept here for safety) */
  .brand-tag{display:none}
  .header-cta{gap:8px}
  .nav-toggle,.nav-tel-mobile{width:40px;height:40px}
  .header-inner{padding:8px 9px;gap:8px}
}
@media (max-width:360px){
  /* Ultra-narrow phones */
  .brand-name{font-size:13px;letter-spacing:-0.01em}
  .header-inner{padding:8px 9px;gap:8px}
  .nav-toggle,.nav-tel-mobile{width:38px;height:38px}
}

/* ============================================================
   Mobile drawer — match the new warm dark masthead palette
   ============================================================ */
.mob-nav{position:fixed;inset:0;background:#15120e;color:var(--paper);z-index:200;padding:24px var(--gutter) calc(24px + env(safe-area-inset-bottom));transform:translateX(100%);transition:transform 0.45s var(--ease);display:flex;flex-direction:column;gap:24px;overflow-y:auto}
.mob-nav.open{transform:translateX(0)}
.mob-nav-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,0.08)}
.mob-nav-head .brand-name{font-family:var(--display);font-size:16px;font-weight:500;letter-spacing:-0.012em;text-transform:none;color:var(--paper)}
.mob-nav-close{width:42px;height:42px;border:1px solid rgba(255,255,255,0.15);border-radius:4px;display:grid;place-items:center;color:var(--paper);background:transparent;transition:border-color 0.2s,background 0.2s}
.mob-nav-close:active{background:rgba(255,255,255,0.06);border-color:var(--brass)}
.mob-nav ul{display:flex;flex-direction:column;gap:0;padding:8px 0}
.mob-nav a{display:flex;align-items:center;justify-content:space-between;font-family:var(--display);font-size:clamp(22px,5vw,30px);font-weight:500;letter-spacing:-0.014em;text-transform:none;color:var(--paper);padding:18px 0;border-bottom:1px solid rgba(255,255,255,0.06);transition:color 0.2s,padding-left 0.3s var(--ease);font-variation-settings:'opsz' 60,'SOFT' 30}
.mob-nav a::after{content:"→";color:var(--brass);font-family:var(--body);font-size:18px;opacity:0;transform:translateX(-6px);transition:opacity 0.25s var(--ease),transform 0.25s var(--ease)}
.mob-nav a:active{color:var(--brass-l);padding-left:6px}
.mob-nav a:active::after{opacity:1;transform:translateX(0)}
.mob-nav-foot{margin-top:auto;padding-top:20px;border-top:1px solid rgba(255,255,255,0.10);font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:rgba(235,240,246,0.55);display:flex;flex-direction:column;gap:14px}
.mob-nav-foot a{font-family:var(--body);font-size:24px;font-weight:700;letter-spacing:-0.01em;text-transform:none;color:var(--brass);font-variant-numeric:tabular-nums;font-feature-settings:"tnum","kern"}
.mob-nav-foot span{color:rgba(235,240,246,0.6);font-family:var(--body);font-size:13px;font-weight:400;letter-spacing:0;text-transform:none;line-height:1.5}
.mob-nav{position:fixed;inset:0;background:var(--ink);color:var(--paper);z-index:200;padding:32px var(--gutter);transform:translateX(100%);transition:transform 0.45s var(--ease);display:flex;flex-direction:column;gap:32px}
.mob-nav.open{transform:translateX(0)}
.mob-nav-head{display:flex;align-items:center;justify-content:space-between}
.mob-nav-close{width:42px;height:42px;border:1px solid rgba(255,255,255,0.15);display:grid;place-items:center;color:var(--paper)}
.mob-nav ul{display:flex;flex-direction:column;gap:0}
.mob-nav a{display:block;font-family:var(--display);font-size:clamp(28px,5vw,40px);font-weight:600;letter-spacing:0.005em;text-transform:uppercase;color:var(--paper);padding:14px 0;border-bottom:1px solid rgba(255,255,255,0.08);transition:color 0.2s,padding-left 0.3s var(--ease)}
.mob-nav a:hover{color:var(--brass-l);padding-left:8px}
.mob-nav-foot{margin-top:auto;padding-top:24px;border-top:1px solid rgba(255,255,255,0.08);font-size:14px;color:var(--muted-l);display:flex;flex-direction:column;gap:8px}
.mob-nav-foot a{color:var(--brass-l);font-size:22px;font-family:var(--display);letter-spacing:0.04em}

/* === MOBILE MASTHEAD OPACITY FIX ===
 * On phones the translucent glassmorphism reads as "overlay on top of
 * content" rather than as polish. Force fully opaque background +
 * stronger separation shadow at mobile breakpoints.
 */
@media (max-width:760px){
  .header-inner{
    background:rgba(251,251,250,1);
    border-color:rgba(15,29,51,0.14);
    box-shadow:0 1px 0 rgba(255,255,255,0.65) inset,
               0 8px 24px -8px rgba(15,29,51,0.18),
               0 2px 8px -2px rgba(15,29,51,0.12);
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  .site-header.scrolled .header-inner{
    background:rgba(251,251,250,1);
    box-shadow:0 1px 0 rgba(255,255,255,0.7) inset,
               0 12px 28px -10px rgba(15,29,51,0.24),
               0 3px 10px -2px rgba(15,29,51,0.16);
  }
}

/* Scroll-margin so deep-linked anchors land BELOW the fixed masthead,
 * not under it. ~96px = masthead height (~64-70px) + top offset (18px) +
 * a little breathing room.
 */
:target{scroll-margin-top:96px}
[id]{scroll-margin-top:96px}
@media (max-width:760px){
  :target{scroll-margin-top:84px}
  [id]{scroll-margin-top:84px}
}

/* === MOBILE MASTHEAD RIGHT-EDGE BREATHING ROOM ===
 * On phones, the hamburger button sits too close to the curved bubble
 * edge — the rounded pill terminates near the hamburger's right border,
 * which reads as "the button is being clipped." Add extra right-side
 * padding inside the bubble so all three right-side controls have a
 * clear margin from the curve.
 */
@media (max-width:560px){
  .header-inner{padding:9px 16px 9px 12px}
  .site-header.scrolled .header-inner{padding:8px 16px 8px 12px}
}
@media (max-width:480px){
  .header-inner{padding:9px 14px 9px 10px;gap:10px}
  .site-header.scrolled .header-inner{padding:8px 14px 8px 10px}
  .header-cta{gap:8px}
}
@media (max-width:380px){
  .header-inner{padding:8px 13px 8px 9px}
  .site-header.scrolled .header-inner{padding:7px 13px 7px 9px}
  .header-cta{gap:6px}
  .nav-toggle,.nav-tel-mobile{width:40px;height:40px}
  .nav-search{width:36px;height:36px}
}
@media (max-width:360px){
  .header-inner{padding:7px 12px 7px 8px}
  .header-cta{gap:5px}
  .nav-toggle,.nav-tel-mobile{width:38px;height:38px}
}

/* === 40-components.css === */
.skip{position:absolute;top:-50px;left:0;background:var(--brass);color:var(--ink);padding:10px 16px;z-index:9999;font-size:13px;font-weight:500}
.skip:focus{top:0}
.prose{font-size:18px;line-height:1.72;color:var(--ink-2);max-width:62ch;font-weight:400}
.prose > p + p{margin-top:1.3em}
.prose .first::first-letter{font-family:var(--serif);font-size:4.6em;font-weight:300;float:left;line-height:0.85;margin:0.05em 0.12em 0 0;color:var(--brass-d)}
.prose blockquote{font-family:var(--serif);font-style:italic;font-size:22px;line-height:1.45;color:var(--ink);border-left:3px solid var(--brass);padding:12px 0 12px 24px;margin:32px 0;max-width:50ch}
.prose strong{color:var(--ink);font-weight:600}
.timeline{display:flex;flex-direction:column}
.tl-item{display:grid;grid-template-columns:160px 1fr;gap:40px;padding:32px 0;border-bottom:1px solid var(--rule);align-items:baseline}
.tl-item:last-child{border-bottom:0}
.tl-year{font-family:var(--display);font-size:clamp(28px,3vw,40px);font-weight:500;color:var(--brass-d)}
.tl-title{font-family:var(--display);font-size:18px;font-weight:600;text-transform:uppercase;letter-spacing:0.01em;margin-bottom:8px}
.tl-desc{font-size:15px;color:var(--muted);line-height:1.6;max-width:60ch}
@media (max-width:600px){.tl-item{grid-template-columns:1fr;gap:8px}}
.pa-toc{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid rgba(255,255,255,0.14);border-bottom:1px solid rgba(255,255,255,0.14);margin-top:48px}
.pa-toc a{padding:30px 22px;border-right:1px solid rgba(255,255,255,0.10);font-family:var(--display);font-size:clamp(17px,1.4vw,20px);font-weight:500;letter-spacing:-0.005em;text-transform:none;color:rgba(235,240,246,0.94);display:flex;align-items:center;gap:14px;text-decoration:none;line-height:1.2;font-variation-settings:'opsz' 60,'SOFT' 30;transition:background 0.25s var(--ease),color 0.25s var(--ease),padding 0.25s var(--ease)}
.pa-toc a:last-child{border-right:0}
.pa-toc a .num{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:0.18em;color:var(--brass);flex-shrink:0;transition:color 0.25s var(--ease)}
.pa-toc a:hover{background:rgba(95,182,236,0.08);color:var(--brass-l);padding-left:26px}
.pa-toc a:hover .num{color:var(--brass-l)}
@media (max-width:1080px){.pa-toc{grid-template-columns:repeat(2,1fr)}.pa-toc a:nth-child(2n){border-right:0}.pa-toc a:nth-child(-n+6){border-bottom:1px solid rgba(255,255,255,0.10)}}
@media (max-width:560px){.pa-toc{grid-template-columns:1fr}.pa-toc a{border-right:0;border-bottom:1px solid rgba(255,255,255,0.10);padding:22px 18px;font-size:clamp(16px,4.5vw,20px)}.pa-toc a:last-child{border-bottom:0}}
.pa-detail{display:grid;grid-template-columns:1fr 2fr;gap:clamp(28px,3.5vw,56px);padding:clamp(40px,5vw,72px) 0;border-bottom:1px solid var(--rule)}
.pa-detail:last-child{border-bottom:0}
.pa-side{position:sticky;top:130px;align-self:start}
.pa-side .pa-num{font-family:var(--display);font-size:clamp(56px,6vw,88px);font-weight:400;color:var(--brass);line-height:1;margin-bottom:16px}
.pa-side h2{font-family:var(--display);font-size:clamp(32px,3.5vw,52px);font-weight:500;letter-spacing:-0.005em;line-height:1;margin-bottom:16px}
.pa-side .pa-tagline{font-family:var(--serif);font-style:italic;font-size:19px;color:var(--ink-3);line-height:1.45;font-weight:400;letter-spacing:-0.005em}
.pa-include{display:grid;grid-template-columns:repeat(2,1fr);gap:0 24px;margin-top:36px}
.pa-include li{font-size:16px;padding:16px 0;border-top:1px solid var(--rule);color:var(--ink-2);display:flex;align-items:center;gap:14px;line-height:1.4;font-weight:400}
.pa-include li::before{content:'◆';color:var(--brass);font-size:10px;flex-shrink:0}
.pa-include li.pa-more{grid-column:span 2;border-top:1px solid var(--rule);font-style:italic;font-family:var(--serif);font-size:17px;color:var(--brass-d);font-weight:400;padding:18px 0 4px;letter-spacing:-0.005em}
.pa-include li.pa-more::before{content:'+';color:var(--brass);font-size:18px;font-weight:300;font-style:normal}
@media (max-width:600px){.pa-include{grid-template-columns:1fr;gap:0}.pa-include li.pa-more{grid-column:span 1}}
@media (max-width:800px){.pa-detail{grid-template-columns:1fr}.pa-side{position:static}.pa-include{grid-template-columns:1fr}}
@media (max-width:480px){.pa-side .pa-num{font-size:clamp(44px,7vw,56px)}.pa-side h2{font-size:clamp(22px,4vw,32px)}}
.ratings-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid rgba(255,255,255,0.10);border-bottom:1px solid rgba(255,255,255,0.10);padding:48px 0}
.ratings-bar .rating{padding:0 32px;border-right:1px solid rgba(255,255,255,0.10);display:flex;flex-direction:column;gap:8px}
.ratings-bar .rating:last-child{border-right:0}
.ratings-bar .src{font-family:var(--mono);font-size:10px;letter-spacing:0.22em;text-transform:uppercase;color:rgba(235,240,246,0.5)}
.ratings-bar .score{font-family:var(--display);font-size:clamp(40px,4.5vw,56px);font-weight:400;color:var(--brass);line-height:1}
.ratings-bar .stars{color:var(--brass);font-size:14px;letter-spacing:2px}
.ratings-bar .count{font-size:13px;color:rgba(235,240,246,0.55)}
@media (max-width:760px){.ratings-bar{grid-template-columns:repeat(2,1fr);gap:24px}.ratings-bar .rating{padding:8px 16px;border-right:0}}
.filter-bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:56px}
.filter-bar .chip{padding:10px 18px;border:1px solid var(--rule);font-family:var(--mono);font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-2);background:transparent;cursor:pointer;transition:all 0.2s;border-radius:100px}
.filter-bar .chip:hover{border-color:var(--ink)}
.filter-bar .chip.active{background:var(--ink);color:var(--brass);border-color:var(--ink)}
.stars{display:flex;gap:2px;color:var(--brass);font-size:14px;letter-spacing:2px}
.faq-cat{display:grid;grid-template-columns:1fr 2fr;gap:64px;padding:64px 0;border-bottom:1px solid var(--rule)}
.faq-cat:first-child{border-top:1px solid var(--rule)}
.faq-cat-head{position:sticky;top:130px;align-self:start}
.faq-cat-head h3{font-family:var(--display);font-size:clamp(28px,3vw,40px);font-weight:500;letter-spacing:-0.005em;line-height:1;margin-bottom:12px;text-transform:uppercase}
.faq-cat-head p{font-size:14px;color:var(--muted)}
.faq-list{display:flex;flex-direction:column}
.faq-item{border-top:1px solid var(--rule)}
.faq-item:first-child{border-top:0}
.faq-q{width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 0;text-align:left;font-family:var(--display);font-size:clamp(17px,1.5vw,20px);font-weight:500;color:var(--ink);text-transform:none;line-height:1.35;transition:color 0.2s}
.faq-q:hover{color:var(--brass-d)}
.faq-q > span:first-child{flex:1;min-width:0}
.faq-q .icn{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--rule);color:var(--brass-d);flex-shrink:0;transition:all 0.3s var(--ease);border-radius:50%;font-size:16px;margin-top:-2px}
.faq-item.open .faq-q .icn{background:var(--brass);color:var(--ink);border-color:var(--brass);transform:rotate(45deg)}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows 0.4s var(--ease)}
.faq-item.open .faq-a{grid-template-rows:1fr}
.faq-a > div{overflow:hidden}
.faq-a p{padding-bottom:24px;color:var(--ink-2);line-height:1.65;max-width:65ch;font-size:15px}
@media (max-width:800px){.faq-cat{grid-template-columns:1fr;gap:24px;padding:40px 0}.faq-cat-head{position:static}}
.blog-cats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:56px}
.blog-cats a{padding:10px 18px;border:1px solid var(--rule);font-family:var(--mono);font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-2);border-radius:100px;transition:all 0.2s}
.blog-cats a:hover{background:var(--ink);color:var(--brass-l);border-color:var(--ink)}
.blog-cats a.active{background:var(--ink);color:var(--brass);border-color:var(--ink)}
.blog-feature{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(32px,4vw,56px);align-items:center;padding-bottom:clamp(36px,4.5vw,56px);border-bottom:1px solid var(--rule);margin-bottom:clamp(36px,4.5vw,56px)}
@media (max-width:760px){.blog-feature{grid-template-columns:1fr}}
.blog-img{aspect-ratio:4/3;background:linear-gradient(135deg,var(--ink) 0%,var(--ink-3) 100%);position:relative;overflow:hidden}
.blog-img::after{content:'⚖';position:absolute;inset:0;display:grid;place-items:center;font-size:96px;color:rgba(95,182,236,0.25)}
.blog-meta{display:flex;gap:12px;align-items:center;font-family:var(--mono);font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-bottom:16px}
.blog-meta .tag{color:var(--brass-d)}
.blog-meta .sep{width:18px;height:1px;background:var(--rule)}
.blog-feature h2{font-family:var(--display);font-size:clamp(28px,3.5vw,44px);font-weight:500;letter-spacing:-0.005em;line-height:1.05;text-transform:uppercase;margin-bottom:16px}
.blog-feature h2 em{font-family:var(--serif);font-style:italic;font-weight:300;text-transform:none;letter-spacing:-0.04em;color:var(--brass-d)}
.blog-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 64px}
@media (max-width:760px){.blog-grid{grid-template-columns:1fr}}
.blog-card{display:flex;flex-direction:column;gap:16px;padding:32px 0;border-top:1px solid var(--rule);transition:transform 0.3s var(--ease);pointer-events:auto !important;cursor:pointer;position:relative;z-index:1}
.blog-card:hover{transform:translateY(-2px)}
.blog-card h3{font-family:var(--display);font-size:clamp(20px,1.6vw,24px);font-weight:600;letter-spacing:0.005em;line-height:1.15;text-transform:uppercase;transition:color 0.3s}
@media (max-width:480px){.blog-card h3{font-size:clamp(16px,4vw,20px)}}
.blog-card:hover h3{color:var(--brass-d)}
.blog-card p{font-size:14.5px;color:var(--muted);line-height:1.55}
.glossary-controls{position:sticky;top:70px;z-index:8;background:rgba(251,251,250,0.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:18px 0;border-bottom:1px solid var(--rule);box-shadow:0 4px 20px -10px rgba(15,29,51,0.08)}
.controls-inner{display:grid;grid-template-columns:minmax(0,1.4fr) auto;gap:20px;align-items:center}
@media (max-width:880px){.controls-inner{grid-template-columns:1fr}}
.search-wrap{position:relative}
.search-wrap .icn{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;width:18px;height:18px}
.search{width:100%;padding:13px 44px;border:1px solid var(--rule);border-radius:999px;background:var(--paper);font-family:var(--body);font-size:15px;color:var(--ink);outline:none;transition:border-color 0.2s,box-shadow 0.2s}
.search:focus{border-color:var(--brass);box-shadow:0 0 0 4px rgba(95,182,236,0.15)}
.search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:50%;display:none;align-items:center;justify-content:center;color:var(--muted);background:var(--bone);font-size:18px;line-height:1}
.search-clear.show{display:flex}
.cats{display:flex;gap:6px;flex-wrap:wrap}
.cats button{padding:8px 14px;border:1px solid var(--rule);border-radius:999px;background:transparent;font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-2);cursor:pointer;transition:all 0.15s;white-space:nowrap}
.cats button:hover{border-color:var(--ink)}
.cats button.active{background:var(--ink);color:var(--brass);border-color:var(--ink)}
.alphabet-bar{position:sticky;top:144px;z-index:7;background:rgba(251,251,250,0.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:12px 0;border-bottom:1px solid var(--rule)}
.alphabet-nav{display:flex;gap:2px;flex-wrap:wrap;justify-content:center}
.alphabet-nav a{width:32px;height:32px;display:grid;place-items:center;font-family:var(--display);font-size:14px;font-weight:600;color:var(--muted-l);border-radius:6px;transition:all 0.18s;position:relative}
.alphabet-nav a:hover,.alphabet-nav a.active{color:var(--ink);background:var(--bone)}
.alphabet-nav a.active::after{content:'';position:absolute;bottom:-2px;left:50%;transform:translateX(-50%);width:4px;height:4px;background:var(--brass);border-radius:50%}
.alphabet-nav a.empty{color:var(--rule);pointer-events:none}
.stats-line{font-family:var(--mono);font-size:12px;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);text-align:center;padding:24px 0 8px}
.stats-line .num{color:var(--brass-d);font-weight:700}
.no-results{display:none;text-align:center;padding:80px 0;color:var(--muted)}
.no-results.show{display:block}
.no-results h3{font-family:var(--display);font-size:22px;font-weight:700;margin-bottom:8px;color:var(--ink)}
.glossary{padding:8px 0 48px}
.letter-section{display:grid;grid-template-columns:200px 1fr;gap:clamp(20px,3vw,36px);padding:clamp(28px,3.5vw,48px) 0;border-top:1px solid var(--rule);scroll-margin-top:220px}
.letter-section.hidden{display:none}
.letter-mark{font-family:var(--display);font-size:clamp(80px,10vw,140px);font-weight:700;line-height:0.85;color:var(--brass);letter-spacing:-0.02em;position:sticky;top:220px;align-self:start;padding-top:8px}
.letter-mark::after{content:'';display:block;width:60px;height:1px;background:var(--ink-4);margin-top:24px;opacity:0.3}
.terms{display:flex;flex-direction:column}
.term{padding:24px 0;border-top:1px solid var(--rule);display:grid;grid-template-columns:240px 1fr;gap:clamp(16px,3vw,40px);align-items:baseline;transition:opacity 0.3s}
.term:first-child{border-top:0}
.term.hidden{display:none}
.term-name{font-family:var(--display);font-size:19px;font-weight:600;color:var(--ink);letter-spacing:0.005em;line-height:1.25;position:relative;padding-left:16px;text-transform:none}
.term-name::before{content:'';position:absolute;left:0;top:0.55em;width:8px;height:1px;background:var(--brass);transition:width 0.25s}
.term:hover .term-name::before{width:14px}
.term:hover .term-name{color:var(--brass-d)}
.term-cats{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 0 16px}
.term-cats span{font-family:var(--mono);font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--brass-d);padding:2px 8px;border:1px solid var(--rule);border-radius:999px}
.term-def{font-size:15px;color:var(--ink-2);line-height:1.65;max-width:65ch}
.term mark{background:rgba(95,182,236,0.28);color:var(--ink);padding:1px 3px;border-radius:3px}
@media (max-width:760px){.letter-section{grid-template-columns:1fr}.letter-mark{position:static;font-size:64px;padding-top:0}.letter-mark::after{display:none}.term{grid-template-columns:1fr;gap:8px}.glossary-controls{top:60px}.alphabet-bar{top:130px}}
.contact-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(32px,4vw,56px);align-items:start}
@media (max-width:880px){.contact-grid{grid-template-columns:1fr}}
@media (max-width:480px){.contact-grid{gap:clamp(20px,3vw,32px)}}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:32px}
.form-grid .full{grid-column:1 / -1}
@media (max-width:600px){.form-grid{grid-template-columns:1fr}}
@media (max-width:480px){.form-grid{gap:16px}}
.field{display:flex;flex-direction:column;gap:8px}
.field label{font-family:var(--mono);font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);font-weight:500}
.field input,.field select,.field textarea{font-family:var(--body);font-size:16px;padding:14px 16px;background:var(--paper);border:1px solid var(--rule);color:var(--ink);transition:border-color 0.2s,box-shadow 0.2s;outline:none;border-radius:0}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ink);box-shadow:0 0 0 3px rgba(95,182,236,0.15)}
.field textarea{min-height:140px;resize:vertical}
.consent{font-size:13px;color:var(--muted);display:flex;gap:12px;align-items:flex-start}
.consent input{margin-top:4px;accent-color:var(--brass)}
.form-status{display:none;margin-top:16px;padding:16px;background:var(--paper-2);border-left:3px solid var(--brass);font-size:14px;color:var(--ink)}
.contact-side{display:flex;flex-direction:column;gap:24px}
.info-card{padding:32px;border:1px solid var(--rule);background:var(--paper)}
.info-card h4{font-family:var(--mono);font-size:10px;letter-spacing:0.22em;text-transform:uppercase;color:var(--brass-d);margin-bottom:16px;font-weight:500}
.info-card .big{font-family:var(--display);font-size:clamp(22px,2vw,28px);font-weight:500;letter-spacing:-0.005em;line-height:1.2;margin-bottom:12px}
.info-card p{font-size:14px;color:var(--ink-2);line-height:1.6}
.hours-table{display:flex;flex-direction:column;margin-top:16px}
.hours-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--rule);font-size:14px}
.hours-row:last-child{border-bottom:0}
.hours-row .day{color:var(--ink);font-weight:500}
.hours-row .hrs{color:var(--muted);font-family:var(--mono);font-size:12px}
.hours-row.now .day::before{content:'';display:inline-block;width:8px;height:8px;background:#4a7c59;border-radius:50%;margin-right:8px;vertical-align:1px;animation:pulse 2s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:0.5;transform:scale(1.4)}}
.region-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0;margin-top:48px;border-top:1px solid rgba(255,255,255,0.10)}
.region-list .item{padding:18px 0;border-bottom:1px solid rgba(255,255,255,0.06);display:flex;justify-content:space-between;align-items:baseline;font-family:var(--display);font-size:16px;font-weight:500;letter-spacing:0.04em;text-transform:uppercase;color:var(--paper)}
.region-list .item:nth-child(odd){padding-right:24px;border-right:1px solid rgba(255,255,255,0.06)}
.region-list .item:nth-child(even){padding-left:24px}
.region-list .item .badge{font-family:var(--mono);font-size:9px;letter-spacing:0.16em;color:var(--brass)}

/* === 45-ux-upgrades.css === */
/* ========================================================================
   PREMIUM UX UPGRADES — conversion components & microinteractions
   ======================================================================== */

/* Trust Signal Row — sits below page-hero on every page */
.trust-row{background:var(--paper);border-bottom:1px solid var(--rule);padding:20px 0;position:relative;z-index:5}
.trust-row-inner{max-width:var(--max);margin:0 auto;padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap}
.trust-item{display:flex;align-items:center;gap:14px;color:var(--ink-2);font-size:13px;line-height:1.4;letter-spacing:-0.005em}
.trust-item strong{font-family:var(--display);font-weight:500;color:var(--ink);font-size:18px;letter-spacing:-0.018em;display:block;line-height:1;font-variation-settings:"opsz" 144;font-feature-settings:"kern","tnum"}
.trust-item .label{font-family:var(--mono);font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted-l);display:block;margin-top:4px}
.trust-divider{width:1px;height:40px;background:var(--rule)}
@media (max-width:980px){.trust-row{padding:16px 0}.trust-row-inner{justify-content:flex-start;gap:20px;overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap}.trust-row-inner::-webkit-scrollbar{display:none}.trust-divider{display:none}.trust-item{flex-shrink:0;padding:0 12px}}
@media (max-width:480px){.trust-row{padding:12px 0}.trust-row-inner{gap:16px}.trust-item{padding:0 10px}.trust-item strong{font-size:15px}.trust-item .label{font-size:9px}}

/* Floating Call Button — bottom-right, always visible (desktop) */
.fab-call{position:fixed;bottom:32px;right:32px;width:64px;height:64px;background:var(--brass);color:var(--ink);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px -4px rgba(95,182,236,0.5),0 4px 8px -2px rgba(15,29,51,0.2);z-index:90;transition:transform 0.4s var(--ease-spring),box-shadow 0.3s var(--ease),background 0.2s;animation:fabPulse 2.6s 3s var(--ease) infinite}
.fab-call:hover{background:var(--brass-l);transform:scale(1.08) rotate(-8deg);box-shadow:0 12px 32px -4px rgba(95,182,236,0.65),0 6px 12px -2px rgba(15,29,51,0.25)}
.fab-call svg{width:26px;height:26px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.fab-call::after{content:'';position:absolute;inset:-6px;border:2px solid var(--brass);border-radius:50%;opacity:0;animation:fabRing 2.6s 3s var(--ease) infinite}
.fab-call .fab-tip{position:absolute;right:calc(100% + 16px);top:50%;transform:translateY(-50%) translateX(8px);background:var(--ink);color:var(--paper);padding:10px 16px;border-radius:8px;font-family:var(--mono);font-size:11px;letter-spacing:0.16em;text-transform:uppercase;white-space:nowrap;opacity:0;transition:opacity 0.25s var(--ease),transform 0.3s var(--ease);pointer-events:none;box-shadow:var(--shadow-md)}
.fab-call .fab-tip::after{content:'';position:absolute;left:100%;top:50%;transform:translateY(-50%);border:6px solid transparent;border-left-color:var(--ink)}
.fab-call:hover .fab-tip{opacity:1;transform:translateY(-50%) translateX(0)}
@keyframes fabPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}
@keyframes fabRing{0%{transform:scale(1);opacity:0.7}80%,100%{transform:scale(1.5);opacity:0}}
@media (max-width:760px){.fab-call{display:none}}

/* Sticky Mobile CTA Bar — bottom of viewport on mobile */
.mob-cta{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--ink);border-top:1px solid var(--ink-3);padding:12px 16px calc(12px + env(safe-area-inset-bottom));z-index:90;gap:12px;box-shadow:0 -8px 24px -4px rgba(15,29,51,0.4)}
.mob-cta a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 12px;border-radius:8px;font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:0.16em;text-transform:uppercase;transition:background 0.2s,transform 0.2s}
.mob-cta .mob-cta-call{background:var(--brass);color:var(--ink)}
.mob-cta .mob-cta-call:active{background:var(--brass-l);transform:scale(0.97)}
.mob-cta .mob-cta-msg{background:transparent;color:var(--paper);border:1px solid rgba(255,255,255,0.18)}
.mob-cta .mob-cta-msg:active{background:rgba(255,255,255,0.05);transform:scale(0.97)}
.mob-cta svg{width:16px;height:16px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:760px){.mob-cta{display:flex}body{padding-bottom:calc(72px + env(safe-area-inset-bottom))}}
@media (max-width:480px){body{padding-bottom:calc(68px + env(safe-area-inset-bottom))}}

/* Premium button refinement — replaces flat buttons with layered depth */
.btn-primary,.cta-pill{will-change:transform}
.btn-primary{display:inline-flex;align-items:center;gap:14px;padding:18px 28px;background:var(--brass);color:var(--ink);font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;border-radius:8px;transition:transform 0.3s var(--ease),box-shadow 0.3s var(--ease),background 0.2s;box-shadow:var(--shadow-md);position:relative;overflow:hidden}
.btn-primary::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,0.18),transparent 50%);opacity:0;transition:opacity 0.3s}
.btn-primary:hover{background:var(--brass-l);transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.btn-primary:hover::before{opacity:1}
.btn-primary:active{transform:translateY(0);box-shadow:var(--shadow-sm)}
.btn-quiet{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border:1px solid var(--rule);color:var(--ink);font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:0.18em;text-transform:uppercase;border-radius:8px;transition:all 0.25s var(--ease)}
.btn-quiet:hover{border-color:var(--ink);background:var(--ink);color:var(--paper);transform:translateY(-1px)}

/* Refined card hover for practice/result/article cards */
.card-hover{transition:transform 0.4s var(--ease),box-shadow 0.4s var(--ease),border-color 0.3s}
.card-hover:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--brass)}

/* Article reading body — Crimson Pro for blog articles */
.article-body p,.article-body li{font-family:var(--read);font-size:21px;line-height:1.72;color:var(--ink-2);font-weight:400;letter-spacing:-0.005em;font-feature-settings:'kern','liga','onum'}
.article-body h2{font-family:var(--display);font-size:clamp(32px,3.5vw,48px);font-weight:500;letter-spacing:-0.022em;line-height:1.1;margin:48px 0 18px;color:var(--ink);font-variation-settings:'opsz' 144,'SOFT' 30}
@media (max-width:480px){.article-body h2{font-size:clamp(24px,5vw,32px)}}
.article-body h3{font-family:var(--display);font-size:clamp(22px,2vw,28px);font-weight:500;letter-spacing:-0.012em;line-height:1.25;margin:36px 0 14px;color:var(--ink)}
.article-body em{font-family:var(--read);font-style:italic;font-weight:500}
.article-body strong{font-weight:600;color:var(--ink)}
.article-body a{color:var(--brass-d);background:linear-gradient(to right,var(--brass-d),var(--brass-d)) 0 100% / 100% 1px no-repeat;transition:background-size 0.35s var(--ease)}
.article-body a:hover{background-size:100% 2px}
.article-body blockquote{border-left:3px solid var(--brass);padding:8px 0 8px 32px;margin:32px 0;font-family:var(--read);font-style:italic;font-size:24px;line-height:1.5;color:var(--ink-2);font-weight:400}

/* Refine page-hero leadtext for editorial feel */
.page-hero .lead{font-family:var(--read);font-size:clamp(20px,1.6vw,26px);line-height:1.55;color:rgba(235,240,246,0.86);font-weight:400;letter-spacing:-0.005em;max-width:62ch}

/* Premium underline link — for ALL anchors inside body content */
.section a:not(.btn-primary):not(.btn-quiet):not(.cta-pill):not(.brand):not(.tlink):not(.cta-phone):not([class*='card']):not(.item):not(nav a):not(.foot-col a):not(.foot-contact a){color:var(--brass-d);transition:color 0.2s}
.dark.section a:not(.btn-primary):not(.btn-quiet){color:var(--brass-l)}

/* Text selection refinement */
::selection{background:var(--brass);color:var(--ink);text-shadow:none}

/* Focus-visible — refined ring */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:4px;box-shadow:0 0 0 6px rgba(95,182,236,0.18)}

/* Smooth image fade-in on lazy load */
img[loading="lazy"]{transition:opacity 0.4s ease}

/* === 46-case-studies.css === */
/* ============================================================
   Case study tiles — results.html "Recent Case Outcomes"
   ============================================================ */
.case-studies-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,2vw,32px);margin-top:48px}
@media (max-width:880px){.case-studies-grid{grid-template-columns:1fr}}
.case-study{background:var(--paper);border:1px solid var(--rule);border-radius:12px;padding:clamp(24px,2.4vw,32px);display:flex;flex-direction:column;gap:18px;transition:border-color 0.25s,box-shadow 0.25s,transform 0.25s;position:relative}
.case-study:hover{border-color:var(--brass);box-shadow:0 12px 28px -12px rgba(15,29,51,0.14);transform:translateY(-2px)}
.case-study-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.case-study-tag{padding:4px 10px;background:rgba(95,182,236,0.12);color:var(--brass-d);border-radius:4px;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase}
.case-study-meta{font-family:var(--mono);font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted)}
.case-study-title{font-family:var(--display);font-size:clamp(20px,1.9vw,24px);font-weight:500;line-height:1.25;letter-spacing:-0.005em;color:var(--ink);margin:0;padding-bottom:14px;border-bottom:1px solid var(--rule)}
.case-study-body{display:flex;flex-direction:column;gap:16px;flex:1}
.case-study-block{display:flex;flex-direction:column;gap:6px}
.case-study-block-eb{font-family:var(--mono);font-size:10px;letter-spacing:0.22em;text-transform:uppercase;color:var(--brass-d);font-weight:600}
.case-study-block p{font-size:15px;line-height:1.6;color:var(--ink-2);margin:0}
.case-study-disclaimer{font-family:var(--mono);font-size:10.5px;letter-spacing:0.10em;color:var(--muted-l);line-height:1.5;margin:0;padding-top:14px;border-top:1px solid var(--rule);font-style:normal}
/* Draft-state — yellow-tinted border + DRAFT eyebrow.
   David removes the .case-study-pending class once a tile is filled in. */
.case-study-pending{border-color:#e8b144;background:linear-gradient(180deg,rgba(232,177,68,0.04) 0%,var(--paper) 60%)}
.case-study-pending::before{content:"DRAFT — NOT FOR PUBLIC";position:absolute;top:-10px;left:20px;background:#e8b144;color:#3a2a00;font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:0.22em;padding:4px 10px;border-radius:3px}
.case-study-pending:hover{border-color:#c98a1a}
.case-study-pending .case-study-block p{color:var(--muted)}

/* Soft padded clickable card (anchor reset) */
.card-soft{display:flex;flex-direction:column;gap:14px;padding:clamp(28px,2.5vw,36px);background:var(--paper);border:1px solid var(--rule);border-radius:14px;color:var(--ink);text-decoration:none;transition:transform 0.35s var(--ease),border-color 0.3s var(--ease),box-shadow 0.3s var(--ease)}
.card-soft:hover{transform:translateY(-3px);border-color:var(--brass);box-shadow:0 14px 32px -16px rgba(15,29,51,0.18),0 4px 12px -6px rgba(95,182,236,0.12)}
.card-soft:hover .card-cta{color:var(--brass-d);padding-left:4px}

.card-eyebrow{font-family:var(--mono);font-size:10.5px;letter-spacing:0.22em;text-transform:uppercase;color:var(--brass);font-weight:600;line-height:1}
.card-title{font-family:var(--display);font-size:clamp(22px,2.2vw,30px);font-weight:500;line-height:1.1;letter-spacing:-0.01em;color:var(--ink);margin:0}
.card-body{font-size:15px;line-height:1.6;color:var(--muted);margin:0;flex:1}
.card-cta{font-family:var(--mono);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--brass-d);font-weight:600;margin-top:8px;padding-top:14px;border-top:1px solid var(--rule);transition:color 0.25s,padding-left 0.25s var(--ease);display:inline-block}

/* Sitemap layout */
.sitemap-section{padding-bottom:clamp(40px,5vw,64px);margin-bottom:clamp(40px,5vw,64px);border-bottom:1px solid var(--rule)}
.sitemap-section:last-child{border-bottom:none;margin-bottom:0}
.sitemap-h{font-family:var(--display);font-size:clamp(28px,3vw,38px);font-weight:500;letter-spacing:-0.01em;line-height:1.1;text-transform:uppercase;color:var(--ink);margin-bottom:32px;padding-bottom:16px;border-bottom:2px solid var(--brass);display:inline-block}
.sitemap-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(24px,3vw,40px)}
@media (max-width:760px){.sitemap-grid{grid-template-columns:1fr}}
.sitemap-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,40px)}
@media (max-width:980px){.sitemap-grid-3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.sitemap-grid-3{grid-template-columns:1fr}}
.sitemap-col{display:flex;flex-direction:column;gap:6px}
.sitemap-col h4{font-family:var(--mono);font-size:11px;letter-spacing:0.20em;text-transform:uppercase;color:var(--brass-d);font-weight:600;margin-bottom:10px}
.sitemap-col ul{list-style:none;padding:0;margin:0}
.sitemap-col li{margin-bottom:6px}
.sitemap-col a{color:var(--ink-2);font-size:14px;line-height:1.5;text-decoration:none;transition:color 0.2s,padding-left 0.2s}
.sitemap-col a:hover{color:var(--brass-d);padding-left:4px}
.sitemap-h-row{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:32px}
.sitemap-h-row .sitemap-h{margin-bottom:0}
.sitemap-count{font-family:var(--mono);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);font-weight:500;padding:4px 10px;border:1px solid var(--rule);border-radius:999px;background:var(--paper-2,transparent)}
.sitemap-subhead{font-family:var(--mono);font-size:11px;letter-spacing:0.20em;text-transform:uppercase;color:var(--brass-d);font-weight:600;margin:24px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--rule)}
.sitemap-subgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,2.5vw,32px);margin-bottom:24px}
@media (max-width:760px){.sitemap-subgrid{grid-template-columns:1fr}}
.sitemap-subgrid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.5vw,32px);margin-bottom:24px}
@media (max-width:980px){.sitemap-subgrid-3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.sitemap-subgrid-3{grid-template-columns:1fr}}
.sitemap-current{color:var(--brass-d);font-weight:600}
.sitemap-current::after{content:" (you are here)";font-family:var(--mono);font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:var(--muted);font-weight:500;margin-left:6px}
.sitemap-file-desc{font-family:var(--body);font-size:12px;color:var(--muted);margin-left:6px}
.sitemap-summary{margin-top:clamp(40px,5vw,56px);padding:24px;border:1px solid var(--rule);border-radius:8px;background:var(--paper-2,transparent);text-align:center}
.sitemap-summary p{font-family:var(--mono);font-size:12px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin:0}
.sitemap-summary strong{color:var(--ink);font-weight:600}

/* FAQ 2-col responsive grid (does not touch .faq-item or accordion) */
.faq-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(24px,3vw,40px);margin-top:32px}
@media (max-width:880px){.faq-grid{grid-template-columns:1fr;gap:20px}}

/* Inline arrow icon for CTAs */
.cta-arrow{display:inline-block;margin-left:8px;transition:transform 0.25s var(--ease)}
a:hover .cta-arrow,button:hover .cta-arrow{transform:translateX(4px)}

/* Review rating line (stars/score) */
.review-rating{font-family:var(--mono);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--brass-d);font-weight:600;display:flex;align-items:center;gap:8px}

/* Category count badge (blog filters) */
.cat-count{display:inline-block;margin-left:6px;padding:2px 8px;background:rgba(15,29,51,0.06);color:var(--muted);font-family:var(--mono);font-size:9.5px;letter-spacing:0.1em;border-radius:10px;font-weight:500;line-height:1.4;font-variant-numeric:tabular-nums}

/* Small section sub-heading */
.sub-h-s{font-family:var(--mono);font-size:12px;letter-spacing:0.22em;text-transform:uppercase;color:var(--brass-d);font-weight:600;margin-bottom:20px}

/* SOL checker step 5 primary call button */


/* === REORG FOOTER additions === */
.foot-brand{display:flex;flex-direction:column;gap:16px}
.foot-brand .foot-tag{margin:0;color:rgba(235,240,246,0.65);font-size:13px;line-height:1.55;max-width:34ch}
.foot-brand-cta{display:inline-flex;align-items:baseline;gap:10px;margin-top:8px;padding:14px 18px;background:rgba(95,182,236,0.08);border:1px solid rgba(95,182,236,0.22);border-radius:100px;text-decoration:none;color:var(--paper);transition:background 0.25s,border-color 0.25s,transform 0.25s;align-self:flex-start;font-variant-numeric:tabular-nums}
.foot-brand-cta:hover{background:rgba(95,182,236,0.14);border-color:rgba(95,182,236,0.40);transform:translateY(-1px)}
.foot-brand-cta-eb{font-family:var(--mono);font-size:9.5px;letter-spacing:0.20em;text-transform:uppercase;color:var(--brass);font-weight:600}
.foot-brand-cta-num{font-family:var(--body);font-size:14.5px;font-weight:700;color:var(--paper);letter-spacing:-0.005em}

/* Google review CTA — sits in .foot-brand under the phone CTA. Modern, quiet,
 * uses the multi-color Google "G" for instant platform recognition. */
.foot-google-review{display:inline-flex;align-items:center;gap:14px;margin-top:10px;padding:12px 18px 12px 14px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.10);border-radius:100px;text-decoration:none;color:var(--paper);transition:background 0.25s,border-color 0.25s,transform 0.25s;align-self:flex-start}
.foot-google-review:hover{background:rgba(255,255,255,0.08);border-color:rgba(255,255,255,0.20);transform:translateY(-1px)}
.foot-google-review .g-mark{display:inline-flex;width:28px;height:28px;border-radius:50%;background:#fff;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 6px -2px rgba(0,0,0,0.30)}
.foot-google-review .g-mark svg{width:16px;height:16px;display:block}
.foot-google-text{display:flex;flex-direction:column;line-height:1.1;gap:2px}
.foot-google-eb{font-family:var(--mono);font-size:9.5px;letter-spacing:0.20em;text-transform:uppercase;color:var(--brass);font-weight:600}
.foot-google-main{font-family:var(--body);font-size:13.5px;font-weight:500;color:var(--paper);letter-spacing:-0.005em}
.foot-google-arrow{font-family:var(--body);font-size:14px;color:var(--brass-l);transition:transform 0.25s var(--ease);margin-left:4px}
.foot-google-review:hover .foot-google-arrow{transform:translateX(3px)}
.foot-sub{padding-left:14px !important;font-size:12.5px !important;color:rgba(235,240,246,0.55) !important;position:relative}
.foot-sub::before{content:'';position:absolute;left:0;top:50%;width:6px;height:1px;background:rgba(255,255,255,0.18);transform:translateY(-50%)}
.foot-sub:hover{color:var(--brass-l) !important}
.foot-more{font-family:var(--mono) !important;font-size:10px !important;letter-spacing:0.18em !important;text-transform:uppercase;color:var(--brass) !important;padding-top:10px !important;margin-top:6px;border-top:1px solid rgba(255,255,255,0.08);display:inline-block !important}
.foot-more:hover{color:var(--brass-l) !important;padding-left:0 !important}
.foot-areas{padding:32px 0 36px;border-top:1px solid rgba(255,255,255,0.08);border-bottom:1px solid rgba(255,255,255,0.08);margin-bottom:24px}
.foot-areas-head{display:flex;justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:24px;flex-wrap:wrap}
.foot-areas-head h5{font-family:var(--mono);font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:var(--brass);font-weight:500;margin:0}
.foot-areas-all{font-family:var(--mono);font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--brass-l);font-weight:600;text-decoration:none;transition:color 0.2s,padding-left 0.25s var(--ease);padding-top:0;border-top:none;display:inline-block}
.foot-areas-all:hover{color:var(--paper);padding-left:4px}
.foot-areas-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,2vw,32px)}
.foot-areas-cols ul{display:flex;flex-direction:column;gap:7px;list-style:none;padding:0;margin:0}
.foot-areas-cols .foot-areas-h{font-family:var(--mono);font-size:9.5px;letter-spacing:0.20em;text-transform:uppercase;color:var(--brass-d);font-weight:600;padding-bottom:8px;margin-bottom:4px;border-bottom:1px solid rgba(255,255,255,0.08)}
.foot-areas-cols a{color:rgba(235,240,246,0.74);font-size:13px;line-height:1.4;text-decoration:none;transition:color 0.2s,padding-left 0.25s var(--ease);display:inline-block}
.foot-areas-cols a:hover{color:var(--paper);padding-left:4px}


/* === SOL CHECKER RESULT CTA === */
.sol-result-cta{display:inline-flex;align-items:center;gap:10px;margin-top:18px;padding:14px 22px;background:var(--ink);color:var(--paper);border-radius:100px;text-decoration:none;font-family:var(--display);font-size:14px;font-weight:600;letter-spacing:0.005em;text-transform:uppercase;transition:background 0.2s,transform 0.2s}
.sol-result-cta:hover{background:#1a2942;transform:translateY(-1px)}

.step5-call-btn{display:inline-flex;align-items:center;gap:14px;padding:14px 26px 14px 14px;background:var(--ink);color:var(--paper);border:1px solid rgba(201,166,107,0.45);font-family:var(--display);font-size:19px;font-weight:600;letter-spacing:-0.005em;text-decoration:none;border-radius:100px;transition:background 0.25s,transform 0.25s,box-shadow 0.3s,border-color 0.3s;box-shadow:0 8px 22px -8px rgba(15,29,51,0.35);font-variant-numeric:tabular-nums}
.step5-call-btn:hover{background:#1a2942;border-color:rgba(201,166,107,0.85);transform:translateY(-2px);box-shadow:0 16px 32px -10px rgba(15,29,51,0.45),0 0 0 4px rgba(201,166,107,0.15)}
.step5-call-icon{width:38px;height:38px;border-radius:50%;background:#c9a66b;color:var(--ink);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:background 0.25s,transform 0.4s var(--ease)}
.step5-call-btn:hover .step5-call-icon{background:#d6b87f;transform:rotate(-12deg)}
.step5-call-icon svg{width:18px;height:18px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.step5-call-num{display:inline-block;line-height:1}

/* === 47-cards.css === */
/* ============================================================
   Component & utility classes
   Replaces high-frequency inline style="" patterns sitewide.
   ============================================================ */

/* Light card — primary card pattern, used in most light-bg sections */
.dnl-card{display:block;padding:clamp(28px,2.6vw,36px);background:var(--paper);border:1px solid var(--rule);border-radius:12px;text-decoration:none;color:var(--ink);transition:border-color 0.25s var(--ease),transform 0.25s var(--ease),box-shadow 0.25s var(--ease)}
a.dnl-card:hover{border-color:var(--brass);transform:translateY(-2px);box-shadow:0 12px 32px -16px rgba(15,29,51,0.18)}
.dnl-card .eyebrow{margin-bottom:16px}
.dnl-card h3{font-family:var(--display);font-size:clamp(20px,1.8vw,24px);font-weight:500;letter-spacing:-0.005em;line-height:1.18;margin-bottom:12px;color:var(--ink)}
.dnl-card p{color:var(--muted);line-height:1.65;font-size:15px}

/* Dark card — used inside .section.dark and similar */
.dnl-card-dark{display:block;padding:clamp(26px,2.4vw,32px);background:var(--ink-2);border:1px solid rgba(255,255,255,0.08);border-radius:12px;text-decoration:none;color:var(--paper);transition:border-color 0.25s var(--ease),transform 0.25s var(--ease),background 0.25s var(--ease)}
a.dnl-card-dark:hover{border-color:rgba(201,166,107,0.45);transform:translateY(-2px)}
.dnl-card-dark .eyebrow{margin-bottom:18px;color:var(--brass-l)}
.dnl-card-dark h3{font-family:var(--display);font-size:24px;font-weight:500;letter-spacing:-0.005em;line-height:1.18;margin-bottom:14px;color:var(--paper)}
.dnl-card-dark p{color:rgba(235,240,246,0.7);line-height:1.6;font-size:15px}
.dnl-card-dark a.brass-link,.dnl-card-dark .brass-link{color:var(--brass-l);font-weight:500}

/* Default light/dark section text styles — auto-color for h3/p/blockquote inside */
.section.dark h3,.section.dark h4,.cta-section h3,.cta-section h4{color:var(--paper)}
.section.dark p:not([class]),.cta-section p:not([class]){color:rgba(235,240,246,0.78);line-height:1.75}
.section.dark .eyebrow,.cta-section .eyebrow{color:var(--brass-l)}

/* Brass inline links */
.brass-link{color:var(--brass);font-weight:500;text-decoration:none}
.brass-link:hover{color:var(--brass-d)}
.section.dark .brass-link{color:var(--brass-l)}
.section.dark .brass-link:hover{color:var(--brass)}

/* Common grids */
.dnl-grid-auto{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(20px,2.4vw,32px);margin-top:clamp(28px,3.5vw,48px)}
.dnl-grid-auto-300{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(20px,2.4vw,32px);margin-top:clamp(28px,3.5vw,48px)}
.dnl-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,3.5vw,48px);margin-top:clamp(28px,3.5vw,48px)}
@media (max-width:760px){.dnl-grid-2{grid-template-columns:1fr}}

/* Section-end marker */
.section-end{text-align:center;margin:clamp(36px,4vw,48px) 0 0;font-family:var(--mono);font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:var(--muted-l)}

/* Generic spacing utilities */
.mt-l{margin-top:clamp(28px,3.5vw,48px)}
.mt-m{margin-top:clamp(20px,2.5vw,32px)}
.mb-m{margin-bottom:clamp(20px,2.5vw,32px)}

/* Editorial dark-lead */
.lead-dark{font-family:var(--display);font-style:italic;font-size:clamp(18px,1.6vw,22px);line-height:1.55;color:rgba(235,240,246,0.78);max-width:62ch;font-weight:400}

/* ---- Second pass utility classes ---- */
.t-paper{color:var(--paper)}
.t-brass{color:var(--brass)}
.t-brass-d{color:var(--brass-d)}
.t-muted-7{color:rgba(235,240,246,0.7);line-height:1.7}
.t-muted-l{color:var(--muted);line-height:1.7}

.sub-h{font-size:28px;margin-top:40px;text-transform:uppercase;letter-spacing:0.005em}
.sub-h-light{font-family:var(--display);font-size:22px;text-transform:uppercase;color:var(--ink);margin-bottom:12px}
.sub-h-md-dark{font-family:var(--display);font-size:24px;text-transform:uppercase;color:var(--paper);margin-bottom:12px}

.big-num{font-family:var(--display);font-size:48px;color:var(--brass);font-weight:400;line-height:1;letter-spacing:-0.04em}

.dnl-grid-2t{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:48px}
@media (max-width:600px){.dnl-grid-2t{grid-template-columns:1fr}}

/* Mobile fix: force all inline grids to wrap on mobile */
@media (max-width:760px){
  [style*="grid-template-columns:repeat(auto-fit"]{grid-template-columns:1fr!important}
  [style*="grid-template-columns:repeat(2"]{grid-template-columns:1fr!important}
  [style*="grid-template-columns:repeat(3"]{grid-template-columns:1fr!important}
  [style*="grid-template-columns:80px"]{grid-template-columns:1fr!important}
  [style*="grid-template-columns:160px"]{grid-template-columns:1fr!important}
  [style*="grid-template-columns:240px"]{grid-template-columns:1fr!important}
}

.read-w{margin-top:32px;max-width:62ch}

.mb-12{margin-bottom:12px}.mb-14{margin-bottom:14px}.mb-18{margin-bottom:18px}
.mt-12{margin-top:12px}

/* === 48-search-modal.css === */
/* ============================================================
   Site search — icon button in masthead + modal overlay
   ============================================================ */

/* Icon button — sits in .header-cta next to the phone CTA. Solid ink chip at
 * rest with a white magnifier; on hover the chip flips to white with an ink
 * magnifier so the affordance is unmistakable. */
.nav-search{display:inline-flex;width:42px;height:42px;border-radius:50%;border:1px solid var(--ink);background:var(--ink);color:#fff;align-items:center;justify-content:center;cursor:pointer;transition:border-color 0.25s var(--ease),background 0.25s var(--ease),color 0.25s var(--ease),transform 0.25s var(--ease);flex-shrink:0;padding:0}
.nav-search:hover,.nav-search:focus-visible{background:#fff;border-color:var(--ink);color:var(--ink);transform:translateY(-1px);outline:none;box-shadow:0 6px 16px -6px rgba(15,29,51,0.25)}
.nav-search svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:560px){.nav-search{width:38px;height:38px}.nav-search svg{width:15px;height:15px}}
@media (max-width:380px){.nav-search{width:34px;height:34px}.nav-search svg{width:14px;height:14px}}

/* Social + Maps icon buttons — sit next to .nav-search inside .header-cta.
 * Each one isolates itself in its own stacking context so neighboring
 * box-shadows can't bleed across the cluster and create the appearance of
 * faint lines on the header pill. */
.nav-social,.nav-maps{position:relative;z-index:1;isolation:isolate;overflow:hidden}

/* Facebook — solid blue chip. Shadow only on hover so the rest-state cluster
 * stays visually clean. */
.nav-social{display:inline-flex;width:42px;height:42px;border-radius:50%;border:1px solid #1877F2;background:#1877F2;color:#fff;align-items:center;justify-content:center;text-decoration:none;transition:background 0.25s var(--ease),border-color 0.25s var(--ease),transform 0.25s var(--ease),box-shadow 0.3s var(--ease);flex-shrink:0;padding:0}
.nav-social:hover,.nav-social:focus-visible{background:#166FE5;border-color:#166FE5;transform:translateY(-1px);outline:none;box-shadow:0 8px 20px -6px rgba(24,119,242,0.45)}
.nav-social svg{width:18px;height:18px;display:block;flex-shrink:0}
@media (max-width:560px){.nav-social{width:38px;height:38px}.nav-social svg{width:16px;height:16px}}
@media (max-width:380px){.nav-social{width:34px;height:34px}.nav-social svg{width:15px;height:15px}}
@media (max-width:340px){.nav-social{display:none}}

/* Maps — outlined chip with brass pin. Fills with brand ink on hover. */
.nav-maps{display:inline-flex;width:42px;height:42px;border-radius:50%;border:1px solid rgba(15,29,51,0.14);background:transparent;color:var(--brass-d);align-items:center;justify-content:center;text-decoration:none;transition:background 0.25s var(--ease),border-color 0.25s var(--ease),color 0.25s var(--ease),transform 0.25s var(--ease);flex-shrink:0;padding:0}
.nav-maps:hover,.nav-maps:focus-visible{background:var(--ink);border-color:var(--ink);color:#fff;transform:translateY(-1px);outline:none;box-shadow:0 6px 16px -6px rgba(15,29,51,0.25)}
.nav-maps svg{width:17px;height:17px;display:block;flex-shrink:0}
@media (max-width:560px){.nav-maps{width:38px;height:38px}.nav-maps svg{width:15px;height:15px}}
@media (max-width:380px){.nav-maps{width:34px;height:34px}.nav-maps svg{width:14px;height:14px}}
@media (max-width:340px){.nav-maps{display:none}}

/* Modal overlay — full-screen with backdrop blur */
.search-modal{position:fixed;inset:0;z-index:300;background:rgba(15,29,51,0.55);backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);display:flex;align-items:flex-start;justify-content:center;padding:14vh var(--gutter) 0;opacity:0;pointer-events:none;transition:opacity 0.28s var(--ease)}
.search-modal.open{opacity:1;pointer-events:auto}
.search-modal-inner{width:100%;max-width:680px;background:var(--paper);border-radius:18px;box-shadow:0 30px 80px -20px rgba(15,29,51,0.40),0 1px 0 rgba(255,255,255,0.6) inset;border:1px solid rgba(15,29,51,0.10);transform:translateY(-12px);transition:transform 0.32s var(--ease)}
.search-modal.open .search-modal-inner{transform:translateY(0)}

/* Header strip inside the modal */
.search-modal-head{display:flex;align-items:center;gap:14px;padding:14px 16px 14px 22px;border-bottom:1px solid rgba(15,29,51,0.08)}
.search-modal-eb{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:0.22em;text-transform:uppercase;color:var(--brass-d);flex-shrink:0}
.search-modal-eb-rule{flex:1;height:1px;background:linear-gradient(90deg,rgba(15,29,51,0.12) 0%,transparent 100%)}
.search-modal-close{width:34px;height:34px;border-radius:50%;border:1px solid rgba(15,29,51,0.14);background:transparent;color:var(--ink);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color 0.2s,background 0.2s,color 0.2s;flex-shrink:0}
.search-modal-close:hover{border-color:var(--ink);background:var(--ink);color:var(--paper)}
.search-modal-close svg{width:14px;height:14px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round}

/* The actual search input */
.search-modal-form{display:flex;align-items:center;gap:14px;padding:8px 22px 22px}
.search-modal-icon{flex-shrink:0;color:var(--brass-d);display:inline-flex;align-items:center}
.search-modal-icon svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round}
.search-modal-input{flex:1;border:0;outline:0;background:transparent;font-family:var(--display);font-size:clamp(22px,2.6vw,32px);font-weight:400;letter-spacing:-0.014em;color:var(--ink);padding:14px 0;font-variation-settings:'opsz' 60,'SOFT' 30}
.search-modal-input::placeholder{color:rgba(15,29,51,0.32);font-style:italic}

/* Footer hint inside the modal — quick-jump suggestions */
.search-modal-foot{padding:14px 22px 18px;border-top:1px solid rgba(15,29,51,0.06);display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-family:var(--mono);font-size:10.5px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted)}
.search-modal-foot span{color:var(--ink-3);font-weight:600}
.search-modal-foot a{padding:6px 12px;background:rgba(15,29,51,0.04);border:1px solid rgba(15,29,51,0.10);border-radius:100px;color:var(--ink-2);text-decoration:none;transition:all 0.2s var(--ease);font-weight:600}
.search-modal-foot a:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.search-modal-foot kbd{padding:3px 8px;background:rgba(15,29,51,0.06);border:1px solid rgba(15,29,51,0.10);border-radius:4px;font-family:var(--mono);font-size:10px;color:var(--ink-2);letter-spacing:0;font-weight:600}

@media (max-width:560px){
  .search-modal{padding:8vh 14px 0}
  .search-modal-inner{border-radius:14px}
  .search-modal-head{padding:12px 14px 12px 18px}
  .search-modal-form{padding:8px 18px 18px;gap:10px}
  .search-modal-input{font-size:20px;padding:12px 0}
  .search-modal-foot{padding:12px 18px 14px;gap:8px;font-size:9.5px;letter-spacing:0.14em}
  .search-modal-foot a{padding:5px 10px}
}


/* Search results inside the modal */
.search-results{max-height:50vh;overflow-y:auto;padding:0 8px 14px;display:flex;flex-direction:column;gap:2px}
.search-result{display:grid;grid-template-columns:auto 1fr;gap:14px;padding:14px 14px;border-radius:10px;text-decoration:none;color:inherit;transition:background 0.15s var(--ease)}
.search-result:hover,.search-result.is-active{background:rgba(15,29,51,0.04)}
.search-result-section{font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:0.20em;text-transform:uppercase;color:var(--brass-d);align-self:start;padding-top:3px;min-width:78px}
.search-result-body{display:flex;flex-direction:column;gap:4px;min-width:0}
.search-result-title{font-family:var(--display);font-size:16px;font-weight:500;color:var(--ink);line-height:1.25;letter-spacing:-0.005em;font-variation-settings:'opsz' 36,'SOFT' 30}
.search-result-desc{font-size:13px;line-height:1.5;color:var(--muted);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.search-result mark{background:rgba(201,166,107,0.30);color:var(--ink);padding:0 2px;border-radius:2px}
.search-empty{padding:24px 22px 12px;font-family:var(--display);font-style:italic;font-size:15px;color:var(--muted);text-align:center}
@media (max-width:560px){.search-result{grid-template-columns:1fr;gap:6px;padding:12px 12px}.search-result-section{min-width:0;padding-top:0}}

/* === 49-misc-utils.css === */
/* ============ MISSING UTILITY CLASSES — added in fix sweep ============ */
/* 3-col card grid (locations county hubs, etc.) */
.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2vw,32px);margin-top:48px}
@media (max-width:880px){.cards-3{grid-template-columns:1fr}}

/* Courts grid (city-attorney local courts section) — added 2026-05 */
.courts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2vw,28px);margin-top:40px}
@media (max-width:980px){.courts-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.courts-grid{grid-template-columns:1fr}}
.court-card{display:flex;flex-direction:column;gap:10px;padding:clamp(22px,2vw,28px);background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.10);border-radius:10px;transition:border-color 0.3s,background 0.3s}
.court-card:hover{border-color:rgba(95,182,236,0.30);background:rgba(255,255,255,0.06)}
.court-card-eb{font-family:var(--mono);font-size:10px;letter-spacing:0.22em;text-transform:uppercase;color:var(--brass);font-weight:600;padding:4px 9px;border:1px solid rgba(95,182,236,0.30);border-radius:3px;align-self:flex-start;line-height:1.2}
.court-card-name{font-family:var(--display);font-size:clamp(17px,1.6vw,21px);font-weight:500;line-height:1.2;color:var(--paper);margin:6px 0 4px;letter-spacing:-0.005em}
.court-card-addr{font-family:var(--mono);font-size:11.5px;letter-spacing:0.04em;color:rgba(235,240,246,0.78);font-variant-numeric:tabular-nums;line-height:1.5;margin:0;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,0.06)}
.court-card-body{font-size:14px;line-height:1.6;color:rgba(235,240,246,0.72);margin:0;flex:1}
.court-note{margin-top:36px;padding:24px 28px;border-left:3px solid var(--brass);background:rgba(95,182,236,0.04);border-radius:0 6px 6px 0;max-width:80ch}
.court-note p{font-family:var(--serif);font-style:italic;font-size:17px;line-height:1.55;color:rgba(235,240,246,0.86);margin:0;font-weight:300}


/* ============ LEGAL DISCLAIMER CALLOUTS ============ */
/* Prominent in-page disclaimer block (results, glossary, etc.) */
.legal-callout{margin:24px 0 32px;padding:20px 24px;border-left:3px solid var(--brass);background:rgba(201,166,107,0.06);border-radius:2px}
.legal-callout-eb{display:block;font-family:var(--mono);font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--brass-d);font-weight:600;margin-bottom:8px}
.legal-callout p{margin:0;font-family:var(--body);font-size:13.5px;line-height:1.65;color:var(--ink-2)}
.legal-callout p + p{margin-top:8px}
.legal-callout a{color:var(--brass-d);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}
.legal-callout-tight{margin:14px 0 18px;padding:12px 16px;font-size:12px}
.legal-callout-tight p{font-size:12px;line-height:1.55}
@media (max-width:680px){.legal-callout{padding:16px 18px;margin:18px 0 24px}.legal-callout p{font-size:12.5px}}

/* Court-info currency note on city/county pages */
.court-currency-note{margin:24px 0 0;padding:14px 18px;background:rgba(95,182,236,0.04);border-left:2px solid var(--brass);font-family:var(--body);font-size:12.5px;line-height:1.6;color:rgba(235,240,246,0.78);border-radius:2px}
.court-currency-note span{display:inline-block;font-family:var(--mono);font-size:9.5px;letter-spacing:0.18em;text-transform:uppercase;color:var(--brass);font-weight:600;margin-right:8px}
.court-currency-note strong{color:rgba(235,240,246,0.92);font-weight:600}
.court-currency-note a{color:var(--brass-l);text-decoration:underline}

/* ============ SEO FAQ + Nearby Cities ============ */
.section-faq.seo-faq{padding:clamp(56px,7vw,96px) 0}
.seo-faq-list{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--rule);margin-top:32px}
.faq-q-block{padding:28px 0;border-bottom:1px solid var(--rule)}
.faq-q-h{font-family:var(--display);font-size:clamp(17px,1.6vw,21px);font-weight:600;letter-spacing:-0.005em;line-height:1.25;color:var(--ink);margin:0 0 12px}
.faq-a-p{font-size:15.5px;line-height:1.65;color:var(--ink-2);max-width:72ch;margin:0}
.nearby-cities-section{padding:clamp(40px,5vw,72px) 0}
.nearby-cities-list{margin-top:24px}
.nearby-cities-links{font-family:var(--display);font-size:clamp(16px,1.5vw,18px);line-height:1.7;color:var(--ink);margin:0 0 12px}
.nearby-cities-links a{color:var(--brass-d);text-decoration:none;border-bottom:1px solid transparent;transition:border-color 0.2s}
.nearby-cities-links a:hover{border-bottom-color:var(--brass-d)}
.nearby-cities-county{font-size:13.5px;color:var(--muted);font-family:var(--mono);letter-spacing:0.06em;margin:0}
.nearby-cities-county a{color:var(--brass-d);text-decoration:none}
.nearby-cities-county a:hover{text-decoration:underline}
@media (max-width:640px){.faq-q-h{font-size:17px}.faq-a-p{font-size:15px}.nearby-cities-links{font-size:16px;line-height:1.8}}

/* === 50-footer.css === */
/* Site footer — tight, premium, 5-column grid */
.site-footer{background:var(--ink);color:var(--paper);padding:64px 0 28px;position:relative;border-top:1px solid rgba(255,255,255,0.06)}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 0.85fr 1fr 1.3fr;gap:clamp(28px,3vw,44px);padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,0.08);margin-bottom:32px;align-items:start}
@media (max-width:1100px){.foot-grid{grid-template-columns:1.5fr 1fr 1fr;gap:36px}.foot-brand{grid-column:span 3}.foot-contact{grid-column:span 3;border-top:1px solid rgba(255,255,255,0.08);padding-top:28px;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;font-variant-numeric:tabular-nums}}
@media (max-width:760px){.foot-grid{grid-template-columns:1fr 1fr;gap:28px}.foot-brand{grid-column:span 2}.foot-contact{grid-column:span 2;grid-template-columns:1fr}}
@media (max-width:480px){.foot-grid{grid-template-columns:1fr}.foot-brand,.foot-contact{grid-column:span 1}.foot-contact{grid-template-columns:1fr 1fr;gap:18px}}
.foot-brand .brand-name{color:var(--paper)}
.foot-brand .brand-tag{color:var(--brass)}
.foot-tag{font-family:var(--serif);font-style:italic;font-size:15px;font-weight:300;color:rgba(235,240,246,0.66);margin-top:14px;max-width:30ch;line-height:1.45;letter-spacing:-0.005em}
.foot-col h5{font-family:var(--mono);font-size:10px;letter-spacing:0.22em;text-transform:uppercase;color:var(--brass);margin-bottom:14px;font-weight:500}
.foot-col ul{display:flex;flex-direction:column;gap:8px}
.foot-col a{color:rgba(235,240,246,0.74);font-size:13px;line-height:1.4;transition:color 0.2s,padding-left 0.25s var(--ease);display:inline-block}
.foot-col a:hover{color:var(--brass-l);padding-left:4px}
.foot-col-areas{grid-column:span 1}
.foot-areas-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 24px;margin-bottom:14px}
.foot-areas-grid ul{display:flex;flex-direction:column;gap:8px}
.foot-areas-all{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--brass);padding-top:12px;border-top:1px solid rgba(255,255,255,0.08);transition:color 0.2s}
.foot-areas-all:hover{color:var(--brass-l)}
.foot-areas-more{color:rgba(235,240,246,0.45) !important;font-family:var(--mono);font-size:10px;letter-spacing:0.14em;text-transform:uppercase;font-style:italic;padding-top:4px;display:inline-block}
.foot-areas-more:hover{color:var(--brass-l) !important;padding-left:4px}
@media (max-width:760px){.foot-areas-grid{grid-template-columns:1fr}}
.foot-contact{display:flex;flex-direction:column;gap:14px;font-size:13px;color:rgba(235,240,246,0.74);font-style:normal;line-height:1.5}
.foot-contact h5{font-family:var(--mono);font-size:10px;letter-spacing:0.22em;text-transform:uppercase;color:var(--brass);margin-bottom:0;font-weight:500}
.foot-contact > div{display:flex;flex-direction:column;gap:2px}
.foot-contact strong{display:block;font-size:10.5px;font-weight:600;font-family:var(--body);letter-spacing:0.16em;text-transform:uppercase;margin-bottom:4px;color:rgba(235,240,246,0.55);font-feature-settings:"cv11","kern"}
.foot-contact a{color:rgba(235,240,246,0.85)}
.foot-contact a:hover{color:var(--brass-l)}
.foot-bottom{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;font-family:var(--mono);font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:rgba(235,240,246,0.38);padding-top:0}
.foot-bottom p{max-width:70ch;margin:0}
@media (max-width:600px){.foot-bottom{flex-direction:column;gap:8px;text-align:left}}

/* === 60-page-specific.css === */
/* ============================================================
   Quick-route section — fast triage for visitors
   ============================================================ */
.quick-route{padding:clamp(40px,5vw,68px) 0;background:linear-gradient(180deg,var(--bone) 0%,var(--paper-2) 100%);position:relative}
.quick-route::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(15,29,51,0.08),transparent)}
.qr-head{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,3.2vw,44px);align-items:end;margin-bottom:clamp(24px,3vw,40px)}
@media (max-width:880px){.qr-head{grid-template-columns:1fr;gap:18px;align-items:start}}
.qr-h{font-family:var(--display);font-size:clamp(36px,4.5vw,60px);font-weight:400;line-height:1.05;letter-spacing:-0.024em;text-transform:uppercase;color:var(--ink);margin-top:10px}
.qr-h em{font-family:var(--serif);font-style:italic;font-weight:300;text-transform:none;letter-spacing:-0.04em}
.qr-lead{font-family:var(--body);font-size:clamp(16px,1.15vw,18px);line-height:1.62;color:var(--muted);max-width:46ch;font-weight:400}
.qr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.4vw,20px);margin-bottom:32px}
@media (max-width:980px){.qr-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.qr-grid{grid-template-columns:1fr}}
.qr-card{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;padding:clamp(24px,2.4vw,32px) clamp(22px,2vw,28px);background:var(--paper);border:1px solid var(--rule);border-radius:14px;transition:border-color 0.3s var(--ease),transform 0.3s var(--ease),box-shadow 0.3s var(--ease),background 0.3s;cursor:pointer;position:relative;overflow:hidden;color:var(--ink);min-height:110px}
.qr-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--brass);transform:scaleY(0);transform-origin:top;transition:transform 0.4s var(--ease)}
.qr-card:hover{border-color:var(--brass);transform:translateY(-3px);box-shadow:0 12px 28px -12px rgba(15,29,51,0.18),0 4px 8px -4px rgba(95,182,236,0.12);background:var(--paper)}
.qr-card:hover::before{transform:scaleY(1)}
.qr-card:hover .qr-arrow{color:var(--brass-d);transform:translateX(4px)}
.qr-card:hover .qr-icon{color:var(--brass-d);background:rgba(95,182,236,0.10);border-color:var(--brass)}
.qr-icon{width:48px;height:48px;display:grid;place-items:center;background:var(--paper-2);border:1px solid var(--rule);border-radius:10px;color:var(--ink-3);transition:color 0.3s,background 0.3s,border-color 0.3s;flex-shrink:0}
.qr-icon svg{width:24px;height:24px;display:block}
.qr-text{display:flex;flex-direction:column;gap:6px;min-width:0}
.qr-label{font-family:var(--display);font-size:clamp(16px,1.15vw,19px);font-weight:600;letter-spacing:-0.005em;text-transform:uppercase;line-height:1.15;color:var(--ink)}
.qr-desc{font-family:var(--body);font-size:13.5px;line-height:1.45;color:var(--muted);font-weight:400;letter-spacing:0}
.qr-arrow{font-family:var(--display);font-size:22px;color:var(--muted-l);transition:color 0.3s,transform 0.3s var(--ease);flex-shrink:0}
.qr-foot{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-bottom:32px;flex-wrap:wrap}
.qr-foot-text{font-family:var(--body);font-size:14px;color:var(--muted);max-width:60ch;line-height:1.55;font-weight:400}
.qr-foot-link{font-family:var(--mono);font-size:12px;letter-spacing:0.18em;text-transform:uppercase;color:var(--brass-d);font-weight:500;display:inline-flex;align-items:center;gap:8px;transition:gap 0.3s var(--ease),color 0.2s;white-space:nowrap}
.qr-foot-link:hover{gap:12px;color:var(--ink)}
.qr-urgent{display:flex;align-items:center;gap:clamp(16px,2vw,28px);padding:clamp(20px,2vw,28px) clamp(24px,3vw,36px);background:var(--ink);color:var(--paper);border-radius:12px;flex-wrap:wrap}
.qr-urgent-label{font-family:var(--mono);font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:var(--brass);font-weight:600;flex-shrink:0}
.qr-urgent-text{font-family:var(--body);font-size:15px;color:rgba(235,240,246,0.86);line-height:1.45;flex:1 1 200px}
.qr-urgent-cta{font-family:var(--display);font-size:clamp(18px,1.6vw,22px);font-weight:600;letter-spacing:-0.005em;color:var(--brass);background:rgba(95,182,236,0.12);padding:12px 22px;border-radius:100px;border:1px solid rgba(95,182,236,0.35);transition:background 0.25s,color 0.25s,border-color 0.25s;white-space:nowrap}
.qr-urgent-cta:hover{background:var(--brass);color:var(--ink);border-color:var(--brass)}
@media (max-width:680px){.qr-urgent{flex-direction:column;align-items:flex-start;text-align:left}}

/* ============================================================
   Reviews section — verified Google/Avvo excerpts
   ============================================================ */
.reviews-section{background:var(--paper-2);position:relative}
.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,1.5vw,24px);margin-bottom:48px}
@media (max-width:980px){.reviews-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.reviews-grid{grid-template-columns:1fr}}
.review-card{background:var(--paper);border:1px solid var(--rule);border-radius:12px;padding:clamp(24px,2.4vw,32px);display:flex;flex-direction:column;gap:18px;transition:border-color 0.25s,box-shadow 0.25s,transform 0.25s;position:relative}
.review-card:hover{border-color:var(--brass);box-shadow:0 12px 28px -12px rgba(15,29,51,0.14);transform:translateY(-2px)}
.review-stars{color:#e8b144;font-size:18px;letter-spacing:1px}
.review-card blockquote{font-family:var(--read);font-size:17px;line-height:1.6;color:var(--ink);margin:0;font-weight:400;letter-spacing:-0.005em;position:relative;flex:1}
.review-card blockquote::before{content:'\201C';position:absolute;left:-8px;top:-12px;font-family:var(--display);font-size:48px;color:var(--brass-l);line-height:1;font-weight:400;opacity:0.4}
.review-card blockquote{padding-left:14px;padding-top:6px}
.review-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:14px;border-top:1px solid var(--rule);flex-wrap:wrap}
.review-source{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:var(--muted)}
.review-source svg{flex-shrink:0}
.review-cat{padding:2px 8px;background:rgba(95,182,236,0.12);color:var(--brass-d);border-radius:4px;font-size:9.5px;letter-spacing:0.14em}
.review-platform-badge{font-family:var(--display);font-weight:600;font-size:13px;color:#1a73e8;letter-spacing:-0.01em;text-transform:none}
.reviews-cta{text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}
.reviews-google-cta{display:inline-flex;align-items:center;background:var(--paper);color:var(--ink);border:1px solid var(--rule);font-weight:600;font-size:14px;padding:14px 28px;border-radius:100px;transition:border-color 0.25s,background 0.25s}
.reviews-google-cta:hover{border-color:var(--brass);background:var(--paper-2)}
.reviews-disclaimer{font-family:var(--mono);font-size:11px;letter-spacing:0.14em;color:var(--muted-l);max-width:50ch;text-align:center;line-height:1.6}

/* ============================================================
   Mobile optimization — responsive grids, touch targets,
   safe-area insets, form-input zoom prevention.
   ============================================================ */
/* Responsive grid utilities used by inline practice-page grids */
@media (max-width:800px){
  .reveal-stagger[style*="grid-template-columns:repeat(2,1fr)"],
  div[style*="grid-template-columns:repeat(2,1fr)"]{
    grid-template-columns:1fr !important;
  }
  .reveal-stagger[style*="grid-template-columns:repeat(3,1fr)"],
  div[style*="grid-template-columns:repeat(3,1fr)"]{
    grid-template-columns:1fr !important;
  }
}
@media (min-width:801px) and (max-width:1024px){
  .reveal-stagger[style*="grid-template-columns:repeat(3,1fr)"],
  div[style*="grid-template-columns:repeat(3,1fr)"]{
    grid-template-columns:repeat(2,1fr) !important;
  }
}
/* SOL tool — stack state toggle on phones */
@media (max-width:560px){
  .sol-state-toggle{grid-template-columns:1fr;gap:8px}
  .sol-tool select{font-size:16px}  /* prevent iOS auto-zoom */
  .sol-tool{padding:24px}
  .sol-result-deadline{font-size:32px}
  .sol-result{padding:24px}
}
/* Related-card grids on practice pages — stack on small screens */
@media (max-width:600px){
  .related-grid,
  div[style*="grid-template-columns:repeat(2,1fr)"]{
    grid-template-columns:1fr !important;
  }
}
/* Touch targets — ensure 44px minimum on key interactive elements */
@media (max-width:760px){
  .btn-primary,.btn-quiet,.cta-pill,.btn-quiet,.cta-phone,.faq-q,
  .pa-row,.qr-card,.review-card,.related-card,.qr-card,.qr-foot-link,
  .qr-urgent-cta,.fab-call,.mob-cta-call,.mob-cta-msg{min-height:44px}
  .btn-primary,.btn-quiet,.cta-pill{padding:14px 26px}
  /* Slightly larger nav-toggle hit area */
  .nav-toggle{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
}
@media (max-width:480px){
  .btn-primary,.cta-pill{padding:13px 20px;font-size:10px}
  .btn-quiet{padding:12px 18px;font-size:10px}
}
/* iOS auto-zoom prevention — all form inputs must be ≥16px on mobile */
@media (max-width:760px){
  input[type="text"],input[type="email"],input[type="tel"],input[type="search"],
  input[type="url"],input[type="number"],textarea,select{font-size:16px !important}
}
/* Safe-area insets for iPhone notch + home bar */
@supports(padding:env(safe-area-inset-bottom)){
  .mob-cta{padding-bottom:calc(12px + env(safe-area-inset-bottom))}
  body{padding-bottom:calc(72px + env(safe-area-inset-bottom)) !important}
  @media (min-width:761px){
    body{padding-bottom:0 !important}
  }
  .fab-call{bottom:calc(24px + env(safe-area-inset-bottom))}
}
/* Hero — tighten typography on phones so headlines don't crash */
@media (max-width:560px){
  .hero{padding:140px 0 48px;min-height:auto}
  .hero-grid{min-height:auto}
  .hero-side{display:grid;grid-template-columns:1fr 1fr;gap:20px}
  .hero-stat .n{font-size:28px}
  .hero-stat .l{font-size:9.5px}
  .hero-actions{gap:12px}
  .hero-actions .btn-primary,.hero-actions .btn-quiet{flex:1 1 auto}
}
/* Page hero — reduce padding on phones */
@media (max-width:600px){
  .page-hero{padding:120px 0 56px}
}
/* Reviews — slightly tighter on phone */
@media (max-width:600px){
  .review-card{padding:24px 22px}
  .review-card blockquote{font-size:16px}
  .reviews-google-cta{width:100%;justify-content:center}
}
/* Quick-route urgent strip — stack content cleanly on phones */
@media (max-width:600px){
  .qr-urgent-cta{width:100%;justify-content:center;text-align:center}
  .qr-urgent-text{font-size:14px}
}
/* Headers — tighten the floating header pill on phones */
@media (max-width:760px){
  .site-header{top:8px;padding:0 10px}
  .site-header.scrolled{top:0}
  .header-inner{border-radius:22px}
  .brand-tag{letter-spacing:0.22em}
}
/* ============================================================
 * CANONICAL MOBILE HEADER RULES (highest priority, single source of truth)
 * Brand pinned to left edge, full cluster (Search · FB · Maps · Phone · Menu)
 * pinned to right edge. Use !important to defeat any earlier conflicting
 * declarations that may have crept in across releases.
 * ============================================================ */
@media (max-width:1080px){
  .header-inner{
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:space-between !important;
    flex-wrap:nowrap !important;
  }
  .header-cta{
    display:flex !important;
    align-items:center !important;
    margin-left:auto !important;  /* belt + suspenders push to the right */
    flex-wrap:nowrap !important;
  }
  .nav-search,.nav-social,.nav-maps,.nav-tel-mobile,.nav-toggle{display:inline-flex !important}
}
@media (max-width:480px){.header-cta{gap:6px !important}}
@media (max-width:380px){.header-cta{gap:5px !important}}
@media (max-width:340px){
  .brand{gap:7px}
  .brand-mark{width:32px;height:32px}
  .brand-mark img{width:22px;height:22px}
  .brand-name{font-size:12px}
  .nav-tel-mobile,.nav-toggle{width:36px;height:36px}
  .header-inner{padding:7px 8px !important;gap:7px}
  /* Only at this ultra-narrow size do FB/Maps drop. */
  .nav-social,.nav-maps{display:none !important}
}
/* Topbar — keep phone number prominent on mobile */
@media (max-width:480px){
  .topbar{padding:8px 0;font-size:11px;letter-spacing:0.10em}
  .topbar-l{gap:14px}
}
/* Article body — tighter prose on phone */
@media (max-width:600px){
  .article-body{padding:48px 0}
  .article-body p,.article-body li{font-size:18px;line-height:1.65}
  .article-body h2{font-size:26px;margin:36px 0 14px}
  .article-body h3{font-size:20px;margin:28px 0 12px}
  .article-body blockquote{padding:8px 0 8px 18px;font-size:18px;margin:24px 0}
  .article-body p:first-of-type::first-letter{font-size:3.6em}
}
/* Body — prevent any horizontal overflow on mobile */
@media (max-width:600px){
  body{overflow-x:hidden}
  .container,.container-n{max-width:100%}
}
/* Glossary alphabet bar — keep usable on phone */
@media (max-width:600px){
  .alphabet-bar{padding:8px 0;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}
  .alphabet-bar a{padding:6px 10px;font-size:12px}
}


/* Numeric display: tabular-nums + kerning everywhere digits matter */
[data-counter],[data-counter] *,.num,.cta-phone,.hero-call-num,.foot-contact,.foot-contact a,.tl-year,.pa-num,.hero-stat .n,address{font-feature-settings:"tnum","kern";font-variant-numeric:tabular-nums}

/* Footer legal block — clean stacked hierarchy (replaces inline-styled foot-disclaimer + foot-bottom) */
.foot-legal{margin-top:8px;padding-top:28px;border-top:1px solid rgba(235,240,246,0.10);display:flex;flex-direction:column;gap:20px}
.foot-legal-fineprint{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:20px}
.foot-legal-eb{font-family:var(--mono);font-size:9.5px;letter-spacing:0.22em;text-transform:uppercase;color:var(--brass);font-weight:700;padding:6px 12px;border:1px solid rgba(95,182,236,0.32);border-radius:3px;line-height:1;white-space:nowrap;align-self:start;margin-top:2px}
.foot-legal-fineprint p{margin:0;font-family:var(--body);font-size:12.5px;color:rgba(235,240,246,0.62);line-height:1.65;font-weight:400;max-width:100ch}
.foot-legal-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding-top:18px;border-top:1px solid rgba(235,240,246,0.06)}
.foot-legal-copy{font-family:var(--mono);font-size:10.5px;letter-spacing:0.16em;text-transform:uppercase;color:rgba(235,240,246,0.58);font-weight:500;font-feature-settings:"kern"}
.foot-legal-links{font-family:var(--mono);font-size:10.5px;letter-spacing:0.16em;text-transform:uppercase;display:flex;gap:10px;align-items:center;font-feature-settings:"kern"}
.foot-legal-links a{color:rgba(235,240,246,0.72);text-decoration:none;transition:color 0.2s,transform 0.2s;display:inline-block}
.foot-legal-links a:hover{color:var(--brass-l)}
.foot-legal-links .sep{color:rgba(235,240,246,0.22)}
.foot-legal-resp{margin:0;font-family:var(--mono);font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--brass);opacity:0.72;font-weight:500;line-height:1.6;padding-top:4px}
@media (max-width:680px){.foot-legal-fineprint{grid-template-columns:1fr;gap:14px}.foot-legal-bar{flex-direction:column;align-items:flex-start;gap:14px}.foot-legal-resp{font-size:9.5px;letter-spacing:0.12em}}

/* === 65-home-hero.css === */
/* ============================================================
   Homepage (index.html) — hero, intro, practice, numbers,
   process, testify. Consolidated from inline block.
   ============================================================ */
/* Hero — centered minimalism. Premium through restraint. */
.hero{position:relative;background:var(--ink);color:var(--paper);min-height:100vh;display:flex;align-items:center;justify-content:center;padding:clamp(120px,15vh,160px) 0 clamp(64px,8vh,96px);overflow:hidden;isolation:isolate}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(1100px 600px at 50% 30%,rgba(95,182,236,0.08),transparent 60%),radial-gradient(700px 400px at 50% 95%,rgba(201,166,107,0.05),transparent 70%);pointer-events:none;z-index:1}
.hero-grid{position:relative;z-index:2;width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--gutter);text-align:center;display:flex;flex-direction:column;align-items:center;gap:clamp(28px,4vw,48px)}

/* Brand wordmark at the top — small, mono caps, brass */
.hero-wordmark{font-family:var(--mono);font-size:11px;letter-spacing:0.4em;text-transform:uppercase;color:var(--brass);font-weight:700;font-feature-settings:"kern";opacity:0;transform:translateY(8px);transition:opacity 1s var(--ease-out) 0.4s,transform 1s var(--ease-out) 0.4s;display:inline-flex;align-items:center;gap:18px}
.hero.go .hero-wordmark{opacity:1;transform:translateY(0)}
.hero-wordmark::before,.hero-wordmark::after{content:"";width:32px;height:1px;background:var(--brass);opacity:0.5}

/* H1 — the centerpiece. Massive Fraunces. */
.hero-h{font-family:var(--display);font-size:clamp(54px,8.5vw,128px);font-weight:400;line-height:0.98;letter-spacing:-0.038em;color:var(--paper);font-variation-settings:"opsz" 144,"SOFT" 30;margin:0;max-width:20ch;opacity:0;transition:opacity 0.9s var(--ease-out) 0.2s}
@media (max-width:480px){.hero-h{font-size:clamp(38px,9vw,52px);max-width:11ch}}
@media (max-width:360px){.hero-h{font-size:clamp(32px,8vw,42px);max-width:10ch;letter-spacing:-0.036em}}
.hero-h .row{display:block;padding-bottom:0.04em}
.hero-h .w{display:inline-block}
.hero.go .hero-h{opacity:1}
.hero-h .em{font-family:var(--serif);font-style:italic;font-weight:300;letter-spacing:-0.045em;color:var(--brass);font-size:1.05em;font-variation-settings:"opsz" 144,"SOFT" 50}

/* Editorial dateline — italic Crimson Pro */
.hero-dateline{font-family:var(--read);font-style:italic;font-size:clamp(17px,1.5vw,22px);line-height:1.55;color:rgba(235,240,246,0.82);max-width:46ch;font-weight:400;opacity:0;transform:translateY(20px);transition:opacity 1s var(--ease-out) 1.1s,transform 1s var(--ease-out) 1.1s;margin:0}
.hero.go .hero-dateline{opacity:1;transform:translateY(0)}

/* Centered brass rule */
.hero-rule{display:block;width:48px;height:1px;background:var(--brass);opacity:0;transition:opacity 1s var(--ease-out) 1.3s,width 0.6s var(--ease-out) 1.3s;margin:8px 0}
.hero.go .hero-rule{opacity:0.85;width:80px}

/* Phone number — single CTA, centered, restrained but readable */
.hero-phone{display:inline-flex;flex-direction:column;align-items:center;gap:14px;text-decoration:none;color:inherit;padding:14px 20px;margin-top:clamp(16px,2.5vw,32px);opacity:0;transform:translateY(16px);transition:opacity 1s var(--ease-out) 1.5s,transform 1s var(--ease-out) 1.5s}
.hero.go .hero-phone{opacity:1;transform:translateY(0)}
.hero-phone-eb{font-family:var(--mono);font-size:10.5px;letter-spacing:0.32em;text-transform:uppercase;color:rgba(235,240,246,0.55);font-weight:600;transition:color 0.3s var(--ease-out);font-feature-settings:"kern";display:inline-flex;align-items:center;gap:12px}
.hero-phone:hover .hero-phone-eb{color:var(--brass)}
.hero-phone-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid rgba(201,166,107,0.45);border-radius:50%;color:var(--brass);background:rgba(201,166,107,0.05);transition:border-color 0.3s var(--ease-out),background 0.3s var(--ease-out),color 0.3s var(--ease-out),transform 0.3s var(--ease-out);flex-shrink:0}
.hero-phone-icon svg{width:13px;height:13px;display:block}
.hero-phone:hover .hero-phone-icon{border-color:var(--brass);background:rgba(201,166,107,0.14);color:var(--brass-l);transform:rotate(-8deg) scale(1.05)}
.hero-phone-num{font-family:var(--body);font-size:clamp(28px,3.2vw,38px);font-weight:600;line-height:1;letter-spacing:-0.02em;color:var(--paper);font-variant-numeric:tabular-nums;font-feature-settings:"tnum","kern";transition:color 0.3s var(--ease-out)}
.hero-phone:hover .hero-phone-num{color:var(--brass-l)}

/* Subtle scroll cue at bottom of hero */

@media (max-width:760px){
  .hero{min-height:auto;padding:clamp(96px,12vh,120px) 0 clamp(56px,7vh,80px)}
  .hero-h{font-size:clamp(46px,11vw,72px)}
  .hero-phone-num{font-size:clamp(26px,7vw,34px)}
  .hab-divider{width:auto;height:1px}
  .hab-call,.hab-cta{padding:24px 22px}
  .hab-num{font-size:clamp(30px,8vw,40px)}
  .hab-cta{grid-template-columns:1fr auto}
  .hab-cta-text{font-size:18px}
  .hab-arrow{font-size:30px}
}

/* Lead-capture form — sits below the call card, single visual unit */

@media (max-width:880px){
  .hero-call{padding:18px 22px 20px}
  .hero-call-num{font-size:32px}
        }
.intro-block{padding:clamp(60px,7vw,112px) 0}
.intro-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,96px);align-items:start}
@media (max-width:880px){.intro-grid{grid-template-columns:1fr}}
.intro-statement{font-family:var(--display);font-size:clamp(28px,3.4vw,52px);font-weight:500;line-height:1.05;letter-spacing:-0.01em;text-transform:uppercase}
.intro-statement em{font-family:var(--serif);font-style:italic;font-weight:300;text-transform:none;letter-spacing:-0.035em;color:var(--brass-d)}
.practice{padding:clamp(56px,6.5vw,96px) 0;background:var(--paper);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.practice-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(32px,5vw,80px)}
@media (max-width:880px){.practice-grid{grid-template-columns:1fr}}
.practice-list{display:flex;flex-direction:column}
.pa-row{display:grid;grid-template-columns:56px 1fr auto;align-items:center;gap:clamp(16px,3vw,32px);padding:clamp(18px,2vw,28px) 0;border-bottom:1px solid var(--rule);position:relative;text-decoration:none;color:inherit;transition:all 0.5s var(--ease)}
.pa-row::before{content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform 0.5s var(--ease)}
.pa-row:hover::before{transform:scaleX(1)}
.pa-row:hover{padding-left:12px;padding-right:12px}
.pa-row:hover .pa-num{color:var(--brass-d)}
.pa-row:hover .pa-arrow{transform:translateX(8px);color:var(--brass-d)}
.pa-num{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:0.18em;color:var(--muted)}
.pa-title{font-family:var(--display);font-size:clamp(28px,3.5vw,48px);font-weight:500;letter-spacing:-0.005em;text-transform:uppercase;line-height:1;color:var(--ink-2)}
@media (max-width:480px){.pa-title{font-size:clamp(20px,5vw,28px)}}
.pa-row:hover .pa-title{color:var(--ink)}
.pa-arrow{font-size:22px;color:var(--muted-l);transition:transform 0.4s var(--ease),color 0.4s}
.practice-preview{position:sticky;top:120px;align-self:start;min-height:460px;background:var(--ink);color:var(--paper);padding:clamp(32px,3vw,48px);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;gap:24px}
.practice-preview::before{content:'';position:absolute;inset:0;background:radial-gradient(500px 300px at 80% 20%,rgba(95,182,236,0.14),transparent 60%);pointer-events:none}
.preview-num{font-family:var(--mono);font-size:11px;letter-spacing:0.22em;color:var(--brass);text-transform:uppercase;position:relative;z-index:1}
.preview-title{font-family:var(--display);font-size:clamp(32px,3.4vw,48px);font-weight:500;letter-spacing:-0.005em;text-transform:uppercase;line-height:1.05;margin:16px 0 24px;position:relative;z-index:1;hyphens:none;word-break:normal;overflow-wrap:break-word}
.preview-desc{font-size:15px;line-height:1.6;color:rgba(235,240,246,0.78);position:relative;z-index:1;max-width:38ch}
/* Smooth swap when hovering a different practice row */
.preview-num,.preview-title,.preview-desc{transition:opacity 0.16s var(--ease)}
.practice-preview.pv-fading .preview-num,
.practice-preview.pv-fading .preview-title,
.practice-preview.pv-fading .preview-desc{opacity:0.15}
.preview-foot{display:flex;justify-content:space-between;align-items:end;position:relative;z-index:1;font-family:var(--mono);font-size:10px;letter-spacing:0.22em;color:var(--muted-l);text-transform:uppercase}
.preview-cta{color:var(--brass);border-bottom:1px solid rgba(95,182,236,0.4);padding-bottom:4px}
@media (max-width:880px){.practice-preview{position:static;height:auto}}
.numbers{background:var(--ink);color:var(--paper);padding:clamp(56px,6.5vw,96px) 0;position:relative;overflow:hidden}
.numbers-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid rgba(255,255,255,0.10);border-bottom:1px solid rgba(255,255,255,0.10)}
@media (max-width:480px){.numbers-grid{grid-template-columns:1fr}}
.num-cell{padding:clamp(32px,4vw,56px) clamp(20px,3vw,40px);border-right:1px solid rgba(255,255,255,0.10)}
.num-cell:last-child{border-right:0}
.num-eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:0.24em;text-transform:uppercase;color:rgba(235,240,246,0.45);margin-bottom:18px}
.num-big{font-family:var(--display);font-size:clamp(56px,7vw,108px);font-weight:400;line-height:0.95;letter-spacing:-0.015em;color:var(--brass);margin-bottom:14px}
.num-cap{font-size:14px;line-height:1.4;color:rgba(235,240,246,0.6);max-width:22ch}
.process{padding:clamp(56px,6.5vw,96px) 0;background:var(--paper)}
.process-list{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--rule)}
@media (max-width:880px){.process-list{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.process-list{grid-template-columns:1fr}}
.process-step{padding:clamp(24px,3vw,40px) clamp(20px,2vw,32px) clamp(32px,4vw,56px) 0;border-right:1px solid var(--rule);position:relative}
.process-step:last-child{border-right:0}
.process-step:not(:first-child){padding-left:clamp(20px,2vw,32px)}
.step-num{font-family:var(--display);font-size:clamp(56px,7vw,96px);font-weight:400;line-height:1;color:var(--brass-d);margin-bottom:32px;letter-spacing:-0.02em}
.step-title{font-family:var(--display);font-size:clamp(18px,1.5vw,22px);font-weight:600;text-transform:uppercase;letter-spacing:0.005em;margin-bottom:16px;line-height:1.2;color:var(--ink)}
.step-desc{font-size:14.5px;line-height:1.6;color:var(--muted);max-width:28ch}
.testify{padding:clamp(56px,6.5vw,96px) 0;background:var(--paper-2)}
.tq{display:grid;grid-template-columns:auto 1fr;gap:clamp(24px,4vw,64px);max-width:1100px;margin:0 auto;align-items:start}
@media (max-width:720px){.tq{grid-template-columns:1fr;gap:16px}}
.tq-mark{font-family:var(--serif);font-size:clamp(120px,16vw,220px);line-height:0.65;font-weight:300;color:var(--brass);font-style:italic}
.tq-body blockquote{font-family:var(--serif);font-size:clamp(22px,2.6vw,38px);font-weight:300;font-style:italic;line-height:1.32;letter-spacing:-0.018em;color:var(--ink);margin-bottom:40px}
.tq-cite{display:flex;align-items:center;gap:14px;padding-top:24px;border-top:1px solid var(--rule)}
.tq-cite-av{width:44px;height:44px;background:var(--ink);color:var(--brass);display:grid;place-items:center;font-family:var(--display);font-weight:600}
.tq-cite-meta{display:flex;flex-direction:column;gap:3px}
.tq-cite-name{font-size:15px;font-weight:600;color:var(--ink)}
.tq-cite-detail{font-family:var(--mono);font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:var(--muted)}
/* === HERO ABOVE-FOLD PHONE PILL ===
 * Phone CTA placed BEFORE the H1 so it is the first conversion surface
 * a visitor sees, without scrolling. No fade-in delay — appears
 * immediately with hero load. Brand-blue (no gold) for consistency.
 */
.hero-phone-top{
  display:inline-flex;
  align-items:center;
  gap:16px;
  text-decoration:none;
  padding:9px 26px 9px 9px;
  border-radius:100px;
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(95,182,236,0.32);
  color:var(--paper);
  transition:background 0.25s var(--ease),border-color 0.25s var(--ease),transform 0.25s var(--ease),box-shadow 0.3s var(--ease);
  margin-top:8px;
  box-shadow:0 8px 24px -10px rgba(95,182,236,0.20);
  font-variant-numeric:tabular-nums;
  font-feature-settings:"tnum","kern";
}
.hero-phone-top:hover{
  background:rgba(95,182,236,0.10);
  border-color:rgba(95,182,236,0.55);
  transform:translateY(-2px);
  box-shadow:0 14px 32px -10px rgba(95,182,236,0.32);
}
.hero-phone-top-icon{
  width:44px;height:44px;
  border-radius:50%;
  background:var(--brass);
  color:var(--ink);
  display:inline-flex;align-items:center;justify-content:center;
  flex-shrink:0;
  transition:background 0.25s,transform 0.4s var(--ease);
}
.hero-phone-top:hover .hero-phone-top-icon{
  background:var(--brass-l);
  transform:rotate(-12deg);
}
.hero-phone-top-icon svg{width:18px;height:18px}
.hero-phone-top-text{
  display:flex;flex-direction:column;line-height:1.1;gap:3px;align-items:flex-start;
}
.hero-phone-top-eb{
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--brass);
  font-weight:600;
}
.hero-phone-top-num{
  font-family:var(--body);
  font-size:clamp(23px,2.76vw,30px);
  font-weight:700;
  color:var(--paper);
  letter-spacing:-0.005em;
  line-height:1;
}
@media (max-width:480px){
  .hero-phone-top{padding:8px 21px 8px 8px;gap:12px;margin-top:6px}
  .hero-phone-top-icon{width:39px;height:39px}
  .hero-phone-top-icon svg{width:16px;height:16px}
  .hero-phone-top-eb{font-size:9px;letter-spacing:0.18em}
  .hero-phone-top-num{font-size:20px}
}

/* Tighten hero height so the wordmark + phone pill + H1 fit above the fold
 * on a typical phone (812px viewport iPhone, 800px Android).
 */
.hero{min-height:auto;padding:clamp(110px,13vh,140px) 0 clamp(56px,7vh,80px)}
@media (min-width:1024px){
  .hero{min-height:88vh}
}

/* === 70-animations.css === */
.reveal{opacity:0;transform:translateY(28px);transition:opacity 1s var(--ease-out),transform 1s var(--ease-out)}
.reveal.in{opacity:1;transform:translateY(0)}
.reveal-stagger > *{opacity:0;transform:translateY(24px);transition:opacity 0.85s var(--ease-out),transform 0.85s var(--ease-out)}
.reveal-stagger.in > *{opacity:1;transform:translateY(0)}
.reveal-stagger.in > *:nth-child(1){transition-delay:0ms}
.reveal-stagger.in > *:nth-child(2){transition-delay:80ms}
.reveal-stagger.in > *:nth-child(3){transition-delay:160ms}
.reveal-stagger.in > *:nth-child(4){transition-delay:240ms}
.reveal-stagger.in > *:nth-child(5){transition-delay:320ms}
.reveal-stagger.in > *:nth-child(6){transition-delay:400ms}
.reveal-stagger.in > *:nth-child(7){transition-delay:480ms}
.reveal-stagger.in > *:nth-child(8){transition-delay:560ms}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.001s !important;transition-duration:0.001s !important}.reveal,.reveal-stagger > *{opacity:1 !important;transform:none !important}}

/* === 75-timeline.css === */
/* ============================================================
   Career Timeline (about.html). Consolidated from inline block.
   ============================================================ */
/* ---------- Career Timeline · scroll-linked premium animation ----------
   Failsafe principle: ALL content is FULLY VISIBLE by default.
   Animation only kicks in when JS adds .tl-ready to .timeline.
   No blur filters anywhere. */
.timeline{position:relative;padding:24px 0 0;margin-top:48px;counter-reset:tl}

/* Spine track (always visible faint line) */
.timeline::before{content:"";position:absolute;left:48px;top:0;bottom:0;width:2px;background:rgba(15,29,51,0.10);border-radius:2px;z-index:1}
/* Spine fill — visible at full height by default; JS overrides with --tl-progress when ready */
.timeline::after{content:"";position:absolute;left:48px;top:0;width:2px;height:100%;background:linear-gradient(180deg,var(--brass-l) 0%,var(--brass) 50%,var(--brass-d) 100%);box-shadow:0 0 10px rgba(201,166,107,0.45);border-radius:2px;z-index:2}
.timeline.tl-ready::after{height:calc(var(--tl-progress,0) * 100%);will-change:height;transition:height 0.2s linear}
@media (max-width:760px){.timeline::before,.timeline::after{left:24px}}

/* Item base — fully visible by default */
.tl-item{position:relative;padding-left:96px;padding-bottom:56px}
.tl-item:last-child{padding-bottom:0}
@media (max-width:760px){.tl-item{padding-left:72px}}

/* Numbered marker (always-visible final state by default) */
.tl-item::before{counter-increment:tl;content:counter(tl,decimal-leading-zero);position:absolute;left:30px;top:6px;width:38px;height:38px;border-radius:50%;background:var(--ink);border:2px solid var(--brass);color:var(--brass);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:0.04em;box-shadow:0 0 0 6px rgba(201,166,107,0.10),0 8px 20px -6px rgba(15,29,51,0.35);z-index:4;box-sizing:border-box;transition:box-shadow 0.45s ease,transform 0.45s cubic-bezier(0.34,1.56,0.64,1)}
@media (max-width:760px){.tl-item::before{left:6px;width:34px;height:34px;font-size:10px}}

/* (Pulse ring removed — quieter active state) */

/* Horizontal brass connector (always visible) */
.tl-connector{position:absolute;left:68px;top:25px;height:1px;width:24px;background:var(--brass);z-index:2;transform-origin:left}
@media (max-width:760px){.tl-connector{left:42px;width:18px}}

/* Year */
.tl-year{display:inline-block;font-family:var(--mono);font-size:11px;letter-spacing:0.28em;text-transform:uppercase;color:var(--brass-d);font-weight:700;margin-bottom:10px;padding:4px 10px 4px 0}

/* Title with always-visible brass underline */
.tl-title{display:inline-block;font-family:var(--display);font-size:clamp(22px,2.2vw,28px);font-weight:500;letter-spacing:-0.012em;line-height:1.18;color:var(--ink);margin-bottom:12px;font-variation-settings:"opsz" 144,"SOFT" 30}
/* Brass underline removed — was visually noisy under every title */

/* Description */
.tl-desc{font-size:15.5px;line-height:1.7;color:var(--ink-2);max-width:62ch;font-weight:400}

/* ---- Animated states (only apply when .timeline.tl-ready exists) ---- */
.tl-ready .tl-item{opacity:0;transform:translateY(28px);transition:opacity 0.8s cubic-bezier(0.16,1,0.3,1),transform 0.8s cubic-bezier(0.16,1,0.3,1)}
.tl-ready .tl-item.tl-in{opacity:1;transform:translateY(0)}

.tl-ready .tl-item::before{transform:scale(0.4) rotate(-15deg);box-shadow:none;background:var(--paper);border-color:rgba(15,29,51,0.15);color:transparent;transition:transform 0.65s cubic-bezier(0.34,1.56,0.64,1) 0.18s,background 0.4s ease 0.18s,border-color 0.4s ease 0.18s,color 0.3s ease 0.4s,box-shadow 0.45s ease}
.tl-ready .tl-item.tl-in::before{transform:scale(1) rotate(0);background:var(--ink);border-color:var(--brass);color:var(--brass);box-shadow:0 0 0 6px rgba(201,166,107,0.10),0 8px 20px -6px rgba(15,29,51,0.35)}
.tl-ready .tl-item.tl-active::before{box-shadow:0 0 0 8px rgba(201,166,107,0.20),0 0 24px rgba(201,166,107,0.40),0 8px 20px -6px rgba(15,29,51,0.4);transform:scale(1.06)}

.tl-ready .tl-connector{transform:scaleX(0);transition:transform 0.55s cubic-bezier(0.16,1,0.3,1) 0.35s}
.tl-ready .tl-item.tl-in .tl-connector{transform:scaleX(1)}

/* Title-underline scroll-in animation removed (the underline itself was removed above) */

/* Reduced motion — kill all animation, content is already visible by default */
@media (prefers-reduced-motion:reduce){
  .timeline.tl-ready::after{transition:none;height:100%}
  .tl-ready .tl-item,.tl-ready .tl-item::before,.tl-ready .tl-connector{transition:none;transform:none;opacity:1}
  .tl-ready .tl-item::before{background:var(--ink);border-color:var(--brass);color:var(--brass);box-shadow:0 0 0 6px rgba(201,166,107,0.10)}
  .tl-ready .tl-item::after{animation:none}
}

/* === 80-misc.css === */
/* ============================================================
   Practice-area sub-pages (criminal, DWI, workers comp, traffic,
   expungement, license, estate). Consolidated from inline blocks.
   ============================================================ */
.pa-item-card{display:flex;gap:24px;padding:28px 32px;background:var(--paper);border:1px solid var(--rule);border-radius:8px;transition:border-color 0.25s,transform 0.25s;text-decoration:none;color:inherit;cursor:pointer}
.pa-item-card:hover{border-color:var(--brass);transform:translateY(-2px)}
.pa-item-num{font-family:var(--mono);font-size:11px;letter-spacing:0.18em;color:var(--brass-d);font-weight:600;flex-shrink:0;padding-top:6px}
.pa-item-card h3{font-family:var(--display);font-size:18px;font-weight:600;letter-spacing:-0.005em;text-transform:uppercase;margin-bottom:8px;color:var(--ink)}
.pa-item-card p{font-size:14.5px;line-height:1.55;color:var(--muted)}
.why-card{padding:28px;border-left:2px solid var(--brass);margin-bottom:20px}
.why-num{font-family:var(--mono);font-size:10px;letter-spacing:0.22em;color:var(--brass);font-weight:600;text-transform:uppercase}
.why-card h3{font-family:var(--display);font-size:22px;font-weight:500;letter-spacing:-0.01em;text-transform:uppercase;color:var(--paper);margin:8px 0 12px}
.why-card p{font-size:15px;line-height:1.65;color:rgba(235,240,246,0.78)}
.faq-list{max-width:920px;margin:0 auto}
/* Dark-section FAQ overrides — scoped so they don't break the light-bg FAQ on faq.html */
.section.dark .faq-item{border-bottom:1px solid rgba(255,255,255,0.10);border-top:0}
.section.dark .faq-q{color:var(--paper)}
.section.dark .faq-q .icn{color:var(--brass);border-color:rgba(201,166,107,0.40)}
.section.dark .faq-q:hover{color:var(--brass-l)}
.section.dark .faq-a p{color:rgba(235,240,246,0.78)}
.related-card{padding:24px;background:var(--paper);border:1px solid var(--rule);transition:border-color 0.2s;display:block}
.related-card:hover{border-color:var(--ink-3)}
.related-card .ttl{font-family:var(--display);font-size:16px;font-weight:600;letter-spacing:0.005em;line-height:1.2;text-transform:uppercase;color:var(--ink);margin-bottom:8px}
.related-card .desc{font-size:13.5px;color:var(--muted);line-height:1.5}
/* article-foot back-link container */
.article-foot-back{margin-top:48px;text-align:center}
/* typography utility - bold weight without colour override */
.t-bold{font-weight:600}

/* === 85-pi-vertical.css === */
/* ============================================================
   Long-form blog articles — hero, body, foot, prose styles.
   Consolidated from inline blocks across blog/*.html.
   ============================================================ */
.article-hero{padding:clamp(132px,15vh,160px) 0 56px;background:var(--ink);color:var(--paper);position:relative;overflow:hidden}
.article-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(900px 500px at 80% 20%,rgba(95,182,236,0.10),transparent 60%);pointer-events:none}
.article-hero::after{content:'';position:absolute;top:50%;right:-160px;width:560px;height:560px;background:url('../img/mark-brass.webp') no-repeat center/contain;opacity:0.05;transform:translateY(-50%);pointer-events:none;z-index:0}
@media (max-width:980px){.article-hero::after{right:-220px;width:420px;height:420px;opacity:0.04}}
.article-hero > .container{position:relative;z-index:1;max-width:880px}
.article-meta{font-family:var(--mono);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--brass);display:flex;gap:14px;align-items:center;margin-bottom:32px;flex-wrap:wrap}
.article-meta .sep{width:24px;height:1px;background:rgba(255,255,255,0.2)}
.article-meta .meta-light{color:rgba(235,240,246,0.55)}
.article-hero h1{font-family:var(--display);font-size:clamp(36px,5.5vw,72px);font-weight:500;line-height:1.05;letter-spacing:-0.012em;text-transform:uppercase;margin-bottom:32px}
.article-hero h1 em{font-family:var(--serif);font-style:italic;font-weight:300;text-transform:none;letter-spacing:-0.04em;color:var(--brass)}
.article-hero .lede{font-family:var(--serif);font-style:italic;font-size:clamp(20px,1.8vw,26px);line-height:1.5;color:rgba(235,240,246,0.85);max-width:640px;font-weight:300}
.article-byline{display:flex;align-items:center;gap:14px;margin-top:48px;padding-top:32px;border-top:1px solid rgba(255,255,255,0.10)}
.article-byline .av{width:40px;height:40px;background:var(--brass);color:var(--ink);display:grid;place-items:center;font-family:var(--display);font-weight:600;font-size:16px}
.article-byline .name{font-size:14px;font-weight:600;color:var(--paper)}
.article-byline .role{font-family:var(--mono);font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:rgba(235,240,246,0.6)}
.article-body{padding:56px 0;background:var(--paper)}
.article-body .container{max-width:780px}
.article-body h2{font-family:var(--display);font-size:clamp(28px,3.5vw,42px);font-weight:500;line-height:1.1;letter-spacing:-0.01em;text-transform:uppercase;margin:48px 0 18px;color:var(--ink)}
.article-body h2:first-child{margin-top:0}
.article-body h3{font-family:var(--display);font-size:clamp(20px,2vw,26px);font-weight:600;letter-spacing:0.005em;text-transform:uppercase;margin:40px 0 16px;color:var(--ink)}
.article-body p{font-size:18px;line-height:1.7;color:var(--ink-2);margin-bottom:24px;max-width:none}
.article-body p:first-of-type::first-letter{font-family:var(--serif);font-size:5em;font-weight:300;float:left;line-height:0.85;margin:0.05em 0.12em 0 0;color:var(--brass-d)}
.article-body a{color:var(--brass-d);border-bottom:1px solid rgba(47,143,201,0.3);transition:border-color 0.2s}
.article-body a:hover{border-bottom-color:var(--brass-d)}
.article-body strong{font-weight:600;color:var(--ink)}
.article-body ul,.article-body ol{margin:24px 0;padding-left:24px}
.article-body li{font-size:18px;line-height:1.7;color:var(--ink-2);margin-bottom:12px}
.article-body blockquote{font-family:var(--serif);font-style:italic;font-size:24px;line-height:1.45;color:var(--ink);border-left:3px solid var(--brass);padding:16px 0 16px 32px;margin:48px 0;font-weight:300}
.article-body table{width:100%;border-collapse:collapse;margin:32px 0;font-size:15px}
.article-body th{font-family:var(--mono);font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--brass-d);text-align:left;padding:16px 12px;border-bottom:2px solid var(--ink);font-weight:500}
.article-body td{padding:18px 12px;border-bottom:1px solid var(--rule);color:var(--ink-2);line-height:1.5;vertical-align:top}
.article-body td:first-child{font-weight:600;color:var(--ink);font-family:var(--display);text-transform:uppercase;letter-spacing:0.01em;font-size:13px;width:34%}
.article-callout{background:var(--paper-2);border-left:3px solid var(--brass);padding:32px 40px;margin:48px 0}
.article-callout .label{font-family:var(--mono);font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:var(--brass-d);margin-bottom:12px;display:block}
.article-callout p{font-size:17px;line-height:1.6;color:var(--ink-2);margin-bottom:0}
.article-foot{padding:48px 0;background:var(--paper-2);border-top:1px solid var(--rule)}
.article-foot .container{max-width:780px}
.article-foot h3{font-family:var(--mono);font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:var(--brass-d);margin-bottom:32px;font-weight:500}
.related-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
@media (max-width:600px){.related-grid{grid-template-columns:1fr}}
.related-card{padding:24px;background:var(--paper);border:1px solid var(--rule);transition:border-color 0.2s}
.related-card:hover{border-color:var(--ink-3)}
.related-card .ttl{font-family:var(--display);font-size:18px;font-weight:600;letter-spacing:0.005em;line-height:1.2;text-transform:uppercase;color:var(--ink);margin-bottom:8px}
.related-card .desc{font-size:14px;color:var(--muted);line-height:1.5}


/* ============================================================
   Personal Injury hub — urgency strip, hero CTAs, recovery ranges
   ============================================================ */

/* Urgency strip — sits above the page-hero, brass left border */
.pi-urgency{background:linear-gradient(90deg,rgba(201,166,107,0.10) 0%,rgba(201,166,107,0.04) 100%);border-top:3px solid var(--brass);border-bottom:1px solid rgba(201,166,107,0.20);position:relative;z-index:1}
.pi-urgency-inner{max-width:var(--max);margin:0 auto;padding:14px var(--gutter);display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.pi-urgency-icon{flex-shrink:0;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;color:var(--brass-d)}
.pi-urgency-icon svg{width:22px;height:22px}
.pi-urgency-text{flex:1 1 380px;font-family:var(--body);font-size:14.5px;line-height:1.5;color:var(--ink);font-weight:400}
.pi-urgency-text strong{color:var(--brass-d);font-weight:700;letter-spacing:-0.005em}
.pi-urgency-cta{flex-shrink:0;font-family:var(--mono);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--ink);font-weight:700;border:1px solid var(--ink);padding:10px 18px;border-radius:100px;text-decoration:none;transition:background 0.2s,color 0.2s,transform 0.2s}
.pi-urgency-cta:hover{background:var(--ink);color:var(--brass);transform:translateX(2px)}
@media (max-width:700px){.pi-urgency-inner{padding:12px var(--gutter);gap:12px}.pi-urgency-text{font-size:13.5px;flex:1 1 100%}.pi-urgency-cta{align-self:flex-start;font-size:10px}}
@media (max-width:480px){.pi-urgency-inner{flex-direction:column;gap:8px}.pi-urgency-text{font-size:13px}.pi-urgency-cta{width:100%;text-align:center}}

/* Hero CTA pair — primary call button + secondary message link */
.pi-hero-cta{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:32px}
.pi-cta-primary{display:inline-flex;align-items:center;gap:14px;background:var(--brass);color:var(--ink);text-decoration:none;padding:14px 22px;border-radius:8px;transition:background 0.2s,transform 0.2s,box-shadow 0.25s;box-shadow:0 8px 22px -8px rgba(201,166,107,0.45)}
.pi-cta-primary:hover{background:var(--brass-l);transform:translateY(-2px);box-shadow:0 14px 28px -8px rgba(201,166,107,0.55)}
.pi-cta-icon{width:38px;height:38px;border-radius:50%;background:rgba(15,29,51,0.10);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.pi-cta-icon svg{width:18px;height:18px}
.pi-cta-text{display:flex;flex-direction:column;gap:2px;line-height:1.05}
.pi-cta-label{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:0.22em;text-transform:uppercase;color:rgba(15,29,51,0.65)}
.pi-cta-num{font-family:var(--body);font-size:22px;font-weight:700;letter-spacing:-0.01em;color:var(--ink);font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
.pi-cta-secondary{font-family:var(--mono);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:rgba(255,255,255,0.78);font-weight:600;text-decoration:none;border:1px solid rgba(255,255,255,0.20);padding:14px 22px;border-radius:8px;transition:border-color 0.2s,color 0.2s,background 0.2s}
.pi-cta-secondary:hover{border-color:var(--brass);color:var(--brass);background:rgba(201,166,107,0.08)}
@media (max-width:600px){.pi-hero-cta{flex-direction:column;align-items:stretch}.pi-cta-primary,.pi-cta-secondary{justify-content:center}}

/* Recovery ranges grid */
.pi-ranges{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-top:28px}
.pi-range{padding:28px;background:var(--paper);border:1px solid var(--rule);border-left:3px solid var(--brass);border-radius:8px;transition:border-color 0.2s,box-shadow 0.2s}
.pi-range:hover{border-left-color:var(--brass-d);box-shadow:0 12px 32px -16px rgba(15,29,51,0.18)}
.pi-range-label{font-family:var(--mono);font-size:10.5px;letter-spacing:0.20em;text-transform:uppercase;color:var(--brass-d);font-weight:700;margin-bottom:10px}
.pi-range-amt{font-family:var(--display);font-size:clamp(28px,3vw,38px);font-weight:500;letter-spacing:-0.012em;color:var(--ink);line-height:1.05;margin-bottom:12px;font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
.pi-range-note{font-size:13.5px;line-height:1.55;color:var(--muted)}
.pi-disclaimer{margin-top:24px;padding:16px 20px;background:var(--paper-2);border-radius:6px;font-size:12px;line-height:1.55;color:var(--muted-l);font-style:italic;max-width:none}
.pi-disclaimer em{color:var(--ink-2);font-style:italic}

/* === 90-utilities.css === */
/* === Safety nets — added in click-bug fix === */
/* Hide draft case-study tiles entirely until David flips the class. */
.case-study-pending{display:none !important}

/* Fallback for .reveal — if main.js fails or IntersectionObserver never fires,
   the elements still appear after 500ms so users can read and click content.
   pointer-events:auto is forced so clicks land even during the fade-in window. */
/* Keep .reveal elements clickable even at opacity:0 (defense against any
 * pointer-events misalignment); rely on main.js's IntersectionObserver to add
 * .in for the natural fade-up transition. No animation override here — the
 * transition on .reveal handles the visual reveal smoothly.
 */
.reveal{pointer-eve