/*! ============================================================================
 *  site.css — carlosmaury.law
 *  Hand-authored, single source of truth. NO Tailwind (no runtime, no build,
 *  no compiled utility blob). One stylesheet, loaded on every page.
 *
 *  Architecture (ITCSS — specificity rises top→bottom):
 *    1. SETTINGS   — design tokens (:root custom properties)
 *    2. GENERIC    — reset / normalize, global guards, reduced-motion
 *    3. ELEMENTS   — bare element defaults (html, body, a, headings, focus)
 *    4. OBJECTS    — layout primitives (o-*) : containers, grids, sections
 *    5. COMPONENTS — UI blocks (c-*) : nav, footer, buttons, cards, hero…
 *    6. UTILITIES  — single-purpose helpers (u-*)
 *
 *  Naming: ITCSS prefixes + BEM  →  c-block__element--modifier
 *  Exception: .font-display / .font-display-tight keep their names (the serif
 *  display rule is referenced site-wide, including from the Rust SSG templates).
 * ========================================================================== */


/* ============================================================================
 *  1. SETTINGS — design tokens
 * ========================================================================== */
:root {
  /* — Base palette (raw values; prefer the semantic tokens below in rules) — */
  --color-ink-950:#071222;   /* designated site black */
  --color-ink-900:#0a0e18;
  --color-ink-800:#0f1524;
  --color-ink-700:#17203a;
  --color-ink-600:#1f2a4a;
  --color-parch-50:#f7f3ea;
  --color-parch-100:#efe7d3;
  --color-parch-200:#e6d9b8;
  --color-brass-300:#e6c789;
  --color-brass-400:#d4aa5c;
  --color-brass-500:#b88a3a;
  --color-brass-600:#8e6a2a;
  --color-oxblood-500:#7b1e2a;
  --color-oxblood-600:#5d1621;
  --color-paper:#e9ecf1;     /* court/article body text on dark */
  --color-danger:#ef4444;

  /* — Semantic text — */
  --text:var(--color-parch-50);
  --text-strong:var(--color-parch-100);
  --text-muted:rgba(247,243,234,.75);
  --text-soft:rgba(247,243,234,.65);
  --text-faint:rgba(247,243,234,.55);
  --text-dim:rgba(247,243,234,.45);
  --text-body:#cfd3da;       /* long-form prose */
  --text-accent:var(--color-brass-400);
  --text-accent-strong:var(--color-brass-300);

  /* — Surfaces & borders — */
  --bg:var(--color-ink-950);
  --bg-raise:var(--color-ink-900);
  --surface-1:rgba(255,255,255,.02);
  --surface-2:rgba(255,255,255,.05);
  --surface-glass:rgba(10,14,24,.95);
  --border-faint:hsla(0,0%,100%,.05);
  --border-subtle:hsla(0,0%,100%,.10);
  --border-strong:hsla(0,0%,100%,.15);
  --border-brass:rgba(212,170,92,.30);
  --border-brass-strong:rgba(212,170,92,.50);

  /* — Typography — */
  --font-serif:'Instrument Serif', ui-serif, Georgia, serif;
  --font-sans:'Inter', ui-sans-serif, system-ui, sans-serif;
  --font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;

  /* — Spacing scale (rem) — */
  --space-1:.25rem; --space-2:.5rem;  --space-3:.75rem; --space-4:1rem;
  --space-5:1.25rem; --space-6:1.5rem; --space-8:2rem;  --space-10:2.5rem;
  --space-12:3rem;  --space-16:4rem;  --space-20:5rem;  --space-24:6rem;

  /* — Radius — */
  --radius-sm:.5rem; --radius:.75rem; --radius-lg:1rem; --radius-pill:9999px;

  /* — Layout — */
  --container:80rem;       /* 1280px wide pages */
  --container-narrow:48rem;/* legal / article reading measure */
  --nav-h:4rem;

  color-scheme: dark;
}


/* ============================================================================
 *  2. GENERIC — reset / normalize, guards, motion
 * ========================================================================== */
*, *::before, *::after { box-sizing: border-box; border: 0 solid #e5e7eb; }
*::before, *::after { --tw-content: ""; }

html {
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  -moz-tab-size: 4; tab-size: 4;
  font-family: var(--font-sans);
  -webkit-tap-highlight-color: transparent;
  scroll-behavior: smooth;
  scroll-padding-top: 88px;            /* anchor jumps clear the fixed nav */
}
body { margin: 0; line-height: inherit; }
hr { height: 0; color: inherit; border-top-width: 1px; }
abbr:where([title]) { -webkit-text-decoration: underline dotted; text-decoration: underline dotted; }
b, strong { font-weight: bolder; }
code, kbd, pre, samp { font-family: var(--font-mono); font-size: 1em; }
small { font-size: 80%; }
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
sub { bottom: -.25em; } sup { top: -.5em; }
table { text-indent: 0; border-color: inherit; border-collapse: collapse; }
button, input, optgroup, select, textarea { font-family: inherit; font-size: 100%; font-weight: inherit; line-height: inherit; letter-spacing: inherit; color: inherit; margin: 0; padding: 0; }
button, select { text-transform: none; }
button, [type=button], [type=reset], [type=submit] { -webkit-appearance: button; background-color: transparent; background-image: none; }
:-moz-focusring { outline: auto; }
progress { vertical-align: baseline; }
::-webkit-inner-spin-button, ::-webkit-outer-spin-button { height: auto; }
[type=search] { -webkit-appearance: textfield; outline-offset: -2px; }
::-webkit-search-decoration { -webkit-appearance: none; }
::-webkit-file-upload-button { -webkit-appearance: button; font: inherit; }
summary { display: list-item; }
blockquote, dd, dl, figure, p, pre, fieldset { margin: 0; }
fieldset, legend { padding: 0; }
menu, ol, ul { list-style: none; margin: 0; padding: 0; }
dialog { padding: 0; }
textarea { resize: vertical; }
input::placeholder, textarea::placeholder { opacity: 1; color: #9ca3af; }
[role=button], button { cursor: pointer; }
:disabled { cursor: default; }
audio, canvas, embed, iframe, img, object, svg, video { display: block; vertical-align: middle; }
img, video { max-width: 100%; height: auto; }
[hidden]:where(:not([hidden=until-found])) { display: none; }

/* Global overflow guard: nothing forces horizontal scroll. `clip` (not hidden)
   so it never creates a scroll container that would break position:sticky/fixed. */
html, body { max-width: 100%; overflow-x: clip; }
img, picture, video, canvas, svg, iframe, table { max-width: 100%; }

/* Honor reduced-motion site-wide (single canonical rule). */
@media (prefers-reduced-motion: reduce) {
  .c-marquee__track { animation: none !important; }
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}


/* ============================================================================
 *  3. ELEMENTS — bare element defaults
 * ========================================================================== */
html, body { background: var(--bg); color: var(--color-paper); min-height: 100vh; }
body {
  font-feature-settings: "kern" 1, "liga" 1, "calt" 1, "ss01" 1;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; margin: 0; }
h1, h2 { text-wrap: balance; }
p, li { text-wrap: pretty; }
a { color: inherit; text-decoration: inherit; }

:focus { outline: none; }
:focus-visible { outline: 2px solid var(--color-brass-300); outline-offset: 3px; border-radius: 4px; }
::selection { background: var(--color-brass-400); color: var(--color-ink-900); }

/* Display serif (site-wide; also emitted by the SSG). kern+liga+calt, no dlig. */
.font-display, .font-display-tight {
  font-family: var(--font-serif);
  font-weight: 400;
  font-feature-settings: "kern" 1, "liga" 1, "calt" 1;
}
.font-display { letter-spacing: -0.005em; }
.font-display-tight { letter-spacing: -0.02em; }


/* ============================================================================
 *  4. OBJECTS — layout primitives
 * ========================================================================== */
.o-container { max-width: var(--container); margin: 0 auto; padding: 0 var(--space-5); }
.o-container--narrow { max-width: var(--container-narrow); margin: 0 auto; padding: 0 var(--space-5); }

/* Section vertical rhythm + top hairline */
.o-section { padding: var(--space-16) 0; border-top: 1px solid var(--border-faint); }
@media (min-width:1024px){ .o-section { padding: var(--space-20) 0; } }
.o-section--flush { border-top: 0; }
.o-section--dark { background: var(--bg); }

/* 12-column grid (collapses to one column below lg) used by court/footer/contact */
.o-grid-12 { display: grid; gap: var(--space-10); }
@media (min-width:1024px){ .o-grid-12 { grid-template-columns: repeat(12, minmax(0,1fr)); } }
.o-col-4  { grid-column: auto; }
.o-col-8  { grid-column: auto; }
@media (min-width:1024px){
  .o-col-3 { grid-column: span 3 / span 3; }
  .o-col-4 { grid-column: span 4 / span 4; }
  .o-col-5 { grid-column: span 5 / span 5; }
  .o-col-7 { grid-column: span 7 / span 7; }
  .o-col-8 { grid-column: span 8 / span 8; }
}

/* Dark atmospheric backgrounds */
.o-atmosphere {
  background:
    radial-gradient(800px 500px at 80% -10%, rgba(212,170,92,0.08), transparent 60%),
    radial-gradient(700px 400px at 10% 110%, rgba(123,30,42,0.10), transparent 60%),
    var(--bg);
}
.o-atmosphere--hero {
  background:
    radial-gradient(1200px 600px at 85% -10%, rgba(212,170,92,0.10), transparent 60%),
    radial-gradient(900px 500px at 10% 20%, rgba(123,30,42,0.18), transparent 60%),
    radial-gradient(1000px 700px at 50% 110%, rgba(31,42,74,0.45), transparent 60%),
    var(--bg);
}
.o-atmosphere--court {
  background:
    radial-gradient(900px 500px at 85% -10%, rgba(212,170,92,0.08), transparent 60%),
    radial-gradient(700px 400px at 10% 20%, rgba(123,30,42,0.12), transparent 60%),
    var(--bg);
}


/* ============================================================================
 *  5. COMPONENTS
 * ========================================================================== */

/* ---- Skip link (keyboard users) ---- */
.c-skip { position:absolute; top:8px; left:8px; z-index:200; background:var(--bg); color:var(--color-parch-100); padding:.65rem 1rem; border-radius:8px; border:1px solid var(--border-brass-strong); font-size:.85rem; font-weight:500; transform:translateY(-200%); transition:transform .2s ease; }
.c-skip:focus { transform:translateY(0); }

/* ---- Eyebrow / kicker label (was .tag) ---- */
.c-eyebrow { font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--text-accent); }

/* ---- Hairline divider ---- */
.c-rule { height:1px; background:linear-gradient(90deg, transparent, var(--border-brass-strong), transparent); }

/* ---- Buttons ---- */
.c-btn { display:inline-flex; align-items:center; gap:.6rem; padding:.95rem 1.4rem; border-radius:var(--radius-pill); font-weight:600; letter-spacing:.01em; transition:transform .25s ease, background .25s ease, color .25s ease, box-shadow .25s ease; }
.c-btn svg { transition: transform .25s ease; }
.c-btn:hover svg { transform: translateX(3px); }
.c-btn:focus-visible { outline-offset: 4px; }
.c-btn--primary { background:linear-gradient(180deg, var(--color-brass-300), var(--color-brass-500)); color:#1a1308; box-shadow:0 10px 30px -10px rgba(212,170,92,.45); }
.c-btn--primary:hover { transform:translateY(-2px); box-shadow:0 18px 40px -12px rgba(212,170,92,.55); }
.c-btn--ghost { color:var(--color-parch-100); border:1px solid rgba(239,231,211,0.25); }
.c-btn--ghost:hover { border-color:rgba(239,231,211,0.6); background:rgba(239,231,211,0.05); }

/* ---- Animated underline link ---- */
.c-ulink { position:relative; }
.c-ulink::after { content:""; position:absolute; left:0; right:0; bottom:-2px; height:1px; background:currentColor; transform:scaleX(.3); transform-origin:left; transition:transform .4s ease; }
.c-ulink:hover::after { transform:scaleX(1); }

/* ---- Form field ---- */
.c-field { width:100%; background:var(--surface-1); border:1px solid rgba(239,231,211,0.12); color:var(--color-parch-100); border-radius:var(--radius); padding:.9rem 1rem; transition:border-color .2s ease, background .2s ease, box-shadow .2s ease; }
.c-field:hover { border-color: rgba(239,231,211,0.22); background: var(--surface-2); }
.c-field:focus { outline:none; border-color:rgba(212,170,92,0.6); background:rgba(255,255,255,0.05); }
.c-field:focus-visible { outline:none; border-color:rgba(212,170,92,0.85); box-shadow:0 0 0 3px rgba(212,170,92,0.18); }
.c-field::placeholder { color:#7f8598; }

/* ---- Shared nav (fixed bar, stamped on every page by the SSG) ---- */
.c-nav { position:fixed; top:0; left:0; right:0; z-index:50; border-bottom:1px solid var(--border-subtle); background:rgba(7,18,34,.8); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
/* Court/home pages opt the bar into transparent→solid-on-scroll: JS adds
   .is-scroll-aware (the opt-in state) then toggles .is-scrolled on scroll. */
.c-nav.is-scroll-aware { background:rgba(6,8,13,0); border-bottom-color:rgba(255,255,255,0); -webkit-backdrop-filter:blur(0px); backdrop-filter:blur(0px); transition:background-color .35s ease, border-bottom-color .35s ease, backdrop-filter .35s ease; }
.c-nav.is-scroll-aware.is-scrolled { background:rgba(6,8,13,0.72); border-bottom-color:var(--border-faint); -webkit-backdrop-filter:blur(14px) saturate(140%); backdrop-filter:blur(14px) saturate(140%); }
.c-nav__inner { max-width:var(--container); margin:0 auto; padding:0 var(--space-5); height:var(--nav-h); display:flex; align-items:center; justify-content:space-between; }
.c-nav__brand { display:flex; align-items:center; gap:.75rem; }
.c-nav__lockup { line-height:1.25; min-width:0; }
.c-nav__name { font-family:var(--font-serif); font-weight:400; font-size:17px; color:var(--text); white-space:nowrap; letter-spacing:0.02em; line-height:1.15; }
.c-nav__name .accent { color:var(--text-accent); }
.c-nav__subtitle { font-size:11px; letter-spacing:.25em; text-transform:uppercase; color:var(--text-faint); white-space:nowrap; display:none; }
@media (min-width:768px){ .c-nav__subtitle { display:block; } }
.c-nav__actions { display:flex; align-items:center; gap:.5rem; flex-shrink:0; }
@media (min-width:1024px){ .c-nav__actions { gap:1.25rem; } }
.c-nav__call { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; height:2.75rem; width:2.75rem; border-radius:var(--radius-pill); border:1px solid var(--border-strong); font-size:.875rem; color:var(--text-muted); white-space:nowrap; transition:color .15s, border-color .15s; }
.c-nav__call:hover { color:var(--text); border-color:var(--border-brass-strong); }
.c-nav__call-num { display:none; }
@media (min-width:1024px){ .c-nav__call { width:auto; padding:0; border:0; border-radius:0; justify-content:flex-start; } .c-nav__call-num { display:inline; } }
.c-nav__lang { display:inline-flex; align-items:center; justify-content:center; height:2.75rem; padding:0 .75rem; margin-right:.5rem; border-radius:var(--radius-pill); border:1px solid var(--border-strong); font-size:.875rem; font-weight:500; color:var(--text-muted); transition:color .15s, border-color .15s; }
.c-nav__lang:hover { color:var(--text); border-color:var(--border-brass-strong); }
.c-nav__menu { position:relative; }
.c-nav__toggle { display:inline-flex; align-items:center; gap:.5rem; height:2.75rem; padding:0 1rem; border-radius:var(--radius-pill); border:1px solid var(--border-strong); font-size:.875rem; color:var(--text-muted); transition:color .15s, border-color .15s; }
.c-nav__toggle:hover { color:var(--text); border-color:var(--border-brass-strong); }
.c-nav__toggle-label { display:none; }
@media (min-width:640px){ .c-nav__toggle-label { display:inline; } }
.c-nav__panel { position:absolute; right:0; top:calc(100% + 0.6rem); min-width:13rem; z-index:70; border-radius:var(--radius); border:1px solid var(--border-subtle); background:var(--surface-glass); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); padding:.5rem; box-shadow:0 25px 50px -12px rgba(0,0,0,.25); }
.c-nav__link { display:block; padding:.75rem; border-radius:var(--radius-sm); font-size:.875rem; color:var(--text-muted); transition:background-color .15s, color .15s; }
.c-nav__link:hover { background:var(--surface-2); color:var(--text); }
.c-nav__link--cta { font-weight:500; color:var(--text-accent); }
.c-nav__link--cta:hover { color:var(--text-accent-strong); }
.c-nav__sep { margin:.25rem 0; height:1px; background:var(--border-subtle); }
a[aria-current="page"] { color: var(--text-accent-strong); }

/* ---- Footers ---- */
/* Slim footer (legal / utility pages) */
.c-foot { border-top:1px solid var(--border-faint); padding:var(--space-8) 0; }
.c-foot__inner { max-width:var(--container); margin:0 auto; padding:0 var(--space-5); font-size:.75rem; color:var(--text-faint); display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; }
.c-foot__links { display:flex; gap:1.25rem; }
.c-foot a:hover { color:var(--text); }
/* Full footer (4-column; home/about/story + SSG news/court pages) */
.c-foot-full { position:relative; background:var(--bg); border-top:1px solid var(--border-faint); padding:var(--space-16) 0 var(--space-10); }
.c-foot-full__grid { max-width:var(--container); margin:0 auto; padding:0 var(--space-5); display:grid; gap:var(--space-10); }
@media (min-width:1024px){ .c-foot-full__grid { grid-template-columns:repeat(12,minmax(0,1fr)); } .c-foot-full__col--brand { grid-column:span 4 / span 4; } .c-foot-full__col { grid-column:span 3 / span 3; } }
.c-foot-full__brand-row { display:flex; align-items:center; gap:.75rem; }
.c-foot-full__name { font-family:var(--font-serif); font-size:1.25rem; color:var(--text); }
.c-foot-full__name .accent { color:var(--text-accent); }
.c-foot-full__tagline { margin-top:var(--space-6); font-size:.875rem; color:var(--text-soft); max-width:24rem; }
.c-foot-full__label { font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--text-accent); margin-bottom:var(--space-4); }
.c-foot-full__addr { font-style:normal; font-size:.875rem; color:var(--text-muted); line-height:1.625; }
.c-foot-full__appt { color:var(--text-soft); font-size:.75rem; }
.c-foot-full__list { display:flex; flex-direction:column; gap:.5rem; font-size:.875rem; color:var(--text-muted); }
.c-foot-full__list a:hover, .c-foot-full__legal a:hover, .c-foot-full__copy a:hover { color:var(--text); }
.c-foot-full__rule { height:1px; background:linear-gradient(90deg, transparent, var(--border-brass-strong), transparent); margin:var(--space-10) auto; max-width:var(--container); }
.c-foot-full__fine { max-width:var(--container); margin:0 auto; padding:0 var(--space-5); color:#a7adba; font-size:.78rem; display:flex; flex-direction:column; gap:.75rem; }
.c-foot-full__bottom { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem; padding-top:.75rem; }
.c-foot-full__legal { display:flex; gap:1.25rem; }
/* Court footer = fine print only */
.c-foot-court { background:var(--bg); border-top:1px solid var(--border-faint); padding:var(--space-12) 0 var(--space-8); }

/* ---- Chat widget (click-to-call; injected by the SSG) ---- */
.c-chat { position:fixed; right:var(--space-5); bottom:var(--space-6); z-index:80; display:flex; flex-direction:column; align-items:flex-end; }
.c-chat__panel { margin-bottom:.75rem; width:min(20rem,calc(100vw - 2.5rem)); border-radius:var(--radius-lg); border:1px solid var(--border-subtle); background:var(--surface-glass); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); box-shadow:0 25px 50px -12px rgba(0,0,0,.25); overflow:hidden; }
.c-chat__head { padding:.75rem 1rem; border-bottom:1px solid var(--border-subtle); background:rgba(7,18,34,.7); display:flex; align-items:center; gap:.75rem; }
.c-chat__dot { position:relative; display:flex; height:.625rem; width:.625rem; }
.c-chat__dot-ping { position:absolute; display:inline-flex; height:100%; width:100%; border-radius:var(--radius-pill); background:#34d399; opacity:.6; animation:cm-ping 1s cubic-bezier(0,0,.2,1) infinite; }
.c-chat__dot-core { position:relative; display:inline-flex; border-radius:var(--radius-pill); height:.625rem; width:.625rem; background:#34d399; }
.c-chat__title { font-size:.875rem; font-weight:500; color:var(--text); }
.c-chat__sub { font-size:11px; color:var(--text-faint); }
.c-chat__form { padding:1rem; display:flex; flex-direction:column; gap:.75rem; }
.c-chat__hp { display:none; }
.c-chat__label { display:block; }
.c-chat__label-text { font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--text-soft); }
.c-chat__input { margin-top:.25rem; width:100%; border-radius:var(--radius-sm); background:var(--surface-2); border:1px solid var(--border-strong); padding:.625rem .75rem; color:var(--text); font-size:16px; }
.c-chat__input::placeholder { color:var(--text-soft); }
.c-chat__input:focus { outline:none; border-color:rgba(212,170,92,.7); }
.c-chat__submit { width:100%; border-radius:var(--radius-sm); background:linear-gradient(to bottom, var(--color-brass-300), var(--color-brass-500)); color:var(--color-ink-950); font-weight:600; font-size:.875rem; padding:.625rem 0; transition:filter .15s; }
.c-chat__submit:hover { filter:brightness(1.05); }
.c-chat__msg { font-size:11px; color:var(--text-faint); }
.c-chat__toggle { touch-action:manipulation; display:flex; align-items:center; justify-content:center; width:3.5rem; height:3.5rem; border-radius:var(--radius-pill); background:linear-gradient(to bottom, var(--color-brass-300), var(--color-brass-500)); color:var(--color-ink-950); box-shadow:0 25px 50px -12px rgba(0,0,0,.25); transition:filter .15s; }
.c-chat__toggle:hover { filter:brightness(1.05); }
.c-chat__toggle:focus { outline:none; }
.c-chat__toggle:focus-visible { box-shadow:0 0 0 2px var(--color-brass-300); }
.c-chat__ok { text-align:center; margin:.5rem 0; }
.c-chat__ok a { color:var(--text-accent); }
@keyframes cm-ping { 75%,100% { transform:scale(2); opacity:0; } }

/* ---- Long-form prose (legal pages + reusable) ---- */
.c-prose { color:var(--text-body); line-height:1.7; margin-top:var(--space-10); }
.c-prose h2 { font-family:var(--font-serif); font-weight:400; letter-spacing:-0.01em; color:var(--text); font-size:1.6rem; margin:var(--space-10) 0 .75rem; text-wrap:balance; }
.c-prose p { margin:0 0 1rem; text-wrap:pretty; }
.c-prose ul { margin:0 0 1rem 1.1rem; padding:0; list-style:disc; }
.c-prose li { margin:.35rem 0; text-wrap:pretty; }
.c-prose a { color:var(--text-accent); text-decoration:underline; text-underline-offset:2px; }
.c-prose a:hover { color:var(--text-accent-strong); }
.c-prose strong { color:var(--text-strong); }
.c-prose__fine { font-size:.875rem; color:var(--text-faint); }

/* ---- Legal page header ---- */
.c-legal { max-width:var(--container-narrow); margin:0 auto; padding:var(--space-20) var(--space-5); }
.c-legal__eyebrow { font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--text-accent); margin-bottom:var(--space-4); }
.c-legal__title { font-family:var(--font-serif); font-weight:400; letter-spacing:-0.005em; font-size:3rem; line-height:.95; color:var(--text); }
.c-legal__title .accent { font-style:italic; color:var(--text-accent); }
.c-legal__meta { margin-top:var(--space-5); font-size:.875rem; color:var(--text-faint); }
.c-legal__back { margin-top:var(--space-12); }
.c-legal__back a { color:var(--text-accent); text-decoration:underline; text-underline-offset:2px; }
.c-legal__back a:hover { color:var(--text-accent-strong); }

/* ---- Centered message pages (404, thank-you, contact-error) ---- */
.c-msg { max-width:var(--container-narrow); margin:0 auto; padding:var(--space-24) var(--space-5); text-align:center; }
@media (min-width:640px){ .c-msg { padding:var(--space-16) var(--space-5); padding-top:8rem; padding-bottom:8rem; } }
.c-msg__big { font-family:var(--font-serif); font-size:clamp(7.5rem,20vw,11.25rem); line-height:1; color:rgba(247,243,234,.15); -webkit-user-select:none; user-select:none; }
.c-msg__eyebrow { font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--text-accent); margin-bottom:var(--space-4); }
.c-msg__eyebrow--pull { margin-top:-1.5rem; }
.c-msg__title { font-family:var(--font-serif); font-weight:400; letter-spacing:-0.005em; font-size:3rem; line-height:.95; color:var(--text); }
@media (min-width:640px){ .c-msg__title { font-size:3.75rem; } }
.c-msg__title--lg { font-size:3rem; }
@media (min-width:640px){ .c-msg__title--lg { font-size:3.75rem; } }
@media (min-width:1024px){ .c-msg__title--lg { font-size:4.5rem; } }
.c-msg__title .accent { font-style:italic; color:var(--text-accent); }
.c-msg__lede { margin:var(--space-6) auto 0; font-size:1.125rem; color:var(--text-muted); max-width:36rem; line-height:1.625; }
.c-msg__actions { margin-top:var(--space-10); display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:.75rem; }
.c-msg__links { margin-top:var(--space-10); font-size:.875rem; color:var(--text-soft); }
.c-msg__links a { color:var(--text-accent); }
.c-msg__links .muted { color:var(--text-soft); }
.c-msg__check { display:block; margin:0 auto var(--space-8); }
.c-msg__badge { margin:0 auto var(--space-8); width:5rem; height:5rem; border-radius:var(--radius-pill); border:1px solid var(--border-brass-strong); background:rgba(123,30,42,.1); display:flex; align-items:center; justify-content:center; }
.c-msg__fine { margin-top:var(--space-16); font-size:.75rem; letter-spacing:.2em; text-transform:uppercase; color:var(--text-soft); }
/* Animated check-mark (thank-you) */
@keyframes cm-draw-check { from { stroke-dashoffset: 60; } to { stroke-dashoffset: 0; } }
@keyframes cm-draw-ring  { from { stroke-dashoffset: 220; } to { stroke-dashoffset: 0; } }
.c-check__ring { stroke-dasharray: 220; stroke-dashoffset: 220; animation: cm-draw-ring 1.0s cubic-bezier(.2,.7,.2,1) .15s forwards; }
.c-check__mark { stroke-dasharray: 60; stroke-dashoffset: 60; animation: cm-draw-check .55s cubic-bezier(.2,.7,.2,1) 1.0s forwards; }
@media (prefers-reduced-motion: reduce) { .c-check__ring, .c-check__mark { animation: none; stroke-dashoffset: 0; } }

/* ---- Hero (homepage) ---- */
.c-hero { position:relative; overflow:hidden; padding:var(--space-24) 0 3.5rem; }
@media (min-width:640px){ .c-hero { padding-top:7rem; } }
@media (min-width:1024px){ .c-hero { padding:9rem 0 var(--space-24); } }
.c-hero__stars { position:absolute; inset:0; width:100%; height:100%; opacity:.18; }
.c-hero__grid { position:relative; max-width:var(--container); margin:0 auto; padding:0 var(--space-5); display:grid; gap:var(--space-12); align-items:center; }
@media (min-width:1024px){ .c-hero__grid { grid-template-columns:repeat(12,minmax(0,1fr)); padding:0 var(--space-8); } .c-hero__copy { grid-column:span 7 / span 7; } .c-hero__aside { grid-column:span 5 / span 5; position:relative; } }
.c-hero__eyebrow { display:flex; align-items:center; gap:.75rem; margin-bottom:1.75rem; }
.c-hero__eyebrow-dot { width:.5rem; height:.5rem; border-radius:var(--radius-pill); background:var(--color-brass-400); }
.c-hero__h1 { font-size:44px; line-height:1.0; color:var(--text); }
@media (min-width:640px){ .c-hero__h1 { font-size:58px; line-height:.95; } }
@media (min-width:1024px){ .c-hero__h1 { font-size:78px; line-height:.95; } }
.c-hero__h1 .italic { font-style:italic; color:var(--color-brass-400); }
.c-hero__lede { margin-top:1.75rem; font-size:1.125rem; color:var(--text-muted); line-height:1.55; max-width:58ch; }
@media (min-width:1024px){ .c-hero__lede { font-size:1.25rem; } }
.c-hero__actions { margin-top:2.25rem; display:flex; flex-direction:column; gap:1rem; }
@media (min-width:640px){ .c-hero__actions { flex-direction:row; align-items:center; gap:1.25rem; } }
.c-hero__note { font-size:.75rem; color:var(--text-faint); }
@media (min-width:640px){ .c-hero__note { padding-left:1rem; border-left:1px solid var(--border-subtle); } }
.c-hero__aside-inner { position:relative; margin:0 auto; width:100%; max-width:560px; }
.c-hero__scroll { position:absolute; left:50%; transform:translateX(-50%); bottom:1rem; color:var(--text-soft); font-size:11px; letter-spacing:.3em; text-transform:uppercase; display:none; flex-direction:column; align-items:center; gap:.5rem; }
@media (min-width:1024px){ .c-hero__scroll { display:flex; } }
.c-hero__scroll-bar { width:1px; height:1.5rem; background:rgba(247,243,234,.3); }
.c-hero__scroll span:first-child { animation: cm-scroll-cue 2.2s ease-in-out infinite; }
@keyframes cm-scroll-cue { 0%{ transform:translateY(0); opacity:.8;} 50%{opacity:.3;} 100%{transform:translateY(8px); opacity:0;} }

/* Hero headline gradient + pulse + ken-burns + grain */
.c-headline-grad { background:linear-gradient(180deg,#f7f3ea 0%, #efe7d3 45%, #d4aa5c 100%); -webkit-background-clip:text; background-clip:text; color:transparent; }
@keyframes cm-soft-pulse { 0%,100% { box-shadow:0 0 0 0 rgba(212,170,92,0.35);} 50%{ box-shadow:0 0 0 10px rgba(212,170,92,0);} }
.c-pulse-dot { animation: cm-soft-pulse 2.4s ease-out infinite; }
@keyframes cm-kenburns { 0%{ transform:scale(1) translate(0,0);} 100%{ transform:scale(1.08) translate(-1%,-1%);} }
.c-kenburns { animation: cm-kenburns 22s ease-in-out infinite alternate; }
.c-grain::before { content:""; position:absolute; inset:0; pointer-events:none; opacity:.07; mix-blend-mode:overlay; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.6 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"); }

/* ---- Interactive globe (hero) ---- */
.c-globe { position:relative; aspect-ratio:1/1; overflow:visible; z-index:10; min-height:320px; }
@media (min-width:1024px){ .c-globe { min-height:480px; } }
.c-globe__canvas { width:100%; height:100%; display:block; position:relative; z-index:2; }
.c-globe__glow { position:absolute; inset:-14%; border-radius:var(--radius-pill); pointer-events:none; z-index:0; background:radial-gradient(closest-side, rgba(212,170,92,0.18), rgba(123,30,42,0.08) 55%, transparent 72%); filter:blur(16px); }
.c-globe__fallback { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; text-align:center; color:var(--text-soft); font-size:.875rem; padding:2rem; }
.c-globe__fallback a { color:var(--text-accent); }
.c-globe__tip { position:absolute; pointer-events:none; transform:translate(-50%,-120%); background:rgba(10,14,24,0.92); border:1px solid rgba(212,170,92,0.35); color:var(--color-parch-100); padding:.45rem .7rem; border-radius:.6rem; font-size:.8rem; white-space:nowrap; box-shadow:0 10px 30px -10px rgba(0,0,0,0.8); opacity:0; transition:opacity .2s ease; z-index:5; }
.c-globe__tip.show { opacity:1; }

/* ---- Urgent CTA (detained-client entry point; hero + court hero) ---- */
@keyframes cm-urgent { 0%{ border-color:rgba(220,38,38,0.45); box-shadow:0 0 0 0 rgba(220,38,38,0.55), 0 0 0 0 rgba(220,38,38,0.0);} 50%{ border-color:rgba(248,113,113,0.95); box-shadow:0 0 0 8px rgba(220,38,38,0.0), 0 0 32px 4px rgba(220,38,38,0.45);} 100%{ border-color:rgba(220,38,38,0.45); box-shadow:0 0 0 0 rgba(220,38,38,0.0), 0 0 0 0 rgba(220,38,38,0.0);} }
.c-urgent { display:inline-flex; align-items:center; gap:.75rem; margin-top:2rem; border-radius:var(--radius); border:1px solid; background:linear-gradient(to right, rgba(123,30,42,.15), rgba(10,14,24,.6)); padding:.875rem 1rem; font-size:.875rem; transition:color .15s; animation:cm-urgent 2.4s ease-in-out infinite; }
.c-urgent:hover { animation-play-state:paused; border-color:rgba(248,113,113,1) !important; box-shadow:0 0 40px 6px rgba(220,38,38,0.55); }
.c-urgent--block { display:flex; }
.c-urgent__dot { position:relative; display:flex; flex-shrink:0; width:.5rem; height:.5rem; }
.c-urgent__ping { position:absolute; inset:0; border-radius:var(--radius-pill); background:var(--color-danger); opacity:.75; animation:cm-ping 1s cubic-bezier(0,0,.2,1) infinite; }
.c-urgent__core { position:relative; width:.5rem; height:.5rem; border-radius:var(--radius-pill); background:var(--color-danger); }
.c-urgent__text { color:var(--text); font-weight:500; line-height:1.375; }
.c-urgent--block .c-urgent__text { flex:1; }
.c-urgent__arrow { flex-shrink:0; color:var(--text-soft); transition:color .15s, transform .15s; }
.c-urgent:hover .c-urgent__arrow { color:var(--text-accent); transform:translateX(.25rem); }
.c-urgent__note { margin-top:.5rem; font-size:11px; color:var(--text-soft); line-height:1.375; }

/* ---- Mobile sticky CTA ---- */
@keyframes cm-urgent-mobile { 0%{ border-color:rgba(220,38,38,0.55); box-shadow:0 -8px 30px -4px rgba(220,38,38,0.0);} 50%{ border-color:rgba(248,113,113,1); box-shadow:0 -8px 30px -4px rgba(220,38,38,0.55);} 100%{ border-color:rgba(220,38,38,0.55); box-shadow:0 -8px 30px -4px rgba(220,38,38,0.0);} }
.c-sticky-cta { position:fixed; left:0; right:0; bottom:0; z-index:90; padding:env(safe-area-inset-bottom, 0); -webkit-backdrop-filter:blur(14px) saturate(140%); backdrop-filter:blur(14px) saturate(140%); background:linear-gradient(180deg, rgba(10,14,24,0.65), rgba(10,14,24,0.95)); border-top:1px solid rgba(220,38,38,0.5); animation:cm-urgent-mobile 2.4s ease-in-out infinite; transform:translateY(0); transition:transform .35s cubic-bezier(.2,.7,.2,1); }
.c-sticky-cta a { display:flex; align-items:center; gap:.65rem; padding:.85rem 1rem; color:var(--color-parch-100); text-decoration:none; font-weight:500; font-size:.9rem; }
.c-sticky-cta.is-hidden { transform:translateY(110%); }
@media (min-width:1024px){ .c-sticky-cta { display:none; } }

/* ---- Courts marquee ---- */
@keyframes cm-marquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }
.c-marquee { position:relative; border-top:1px solid var(--border-faint); border-bottom:1px solid var(--border-faint); background:var(--bg); }
.c-marquee__inner { max-width:var(--container); margin:0 auto; padding:1.5rem var(--space-5); display:flex; align-items:center; gap:2rem; overflow:hidden; }
.c-marquee__label { flex-shrink:0; }
.c-marquee__viewport { overflow:hidden; flex:1; }
.c-marquee__track { display:flex; align-items:center; gap:2.5rem; white-space:nowrap; color:var(--text-soft); animation:cm-marquee 75s linear infinite; }
.c-marquee__track:hover { animation-play-state:paused; }
/* marquee court link (also emitted by the SSG) */
.c-court-link { font-family:var(--font-serif); font-weight:400; letter-spacing:-0.005em; font-size:1.125rem; color:inherit; white-space:nowrap; display:inline-flex; align-items:baseline; gap:.5rem; padding:.75rem 0; transition:color .15s; }
.c-court-link:hover { color:var(--text-accent); }
.c-court-link__st { font-family:var(--font-sans); font-size:.75rem; letter-spacing:.18em; text-transform:uppercase; color:var(--text-accent); }
.c-court-link__sep { display:inline-block; width:5px; height:5px; border-radius:var(--radius-pill); background:var(--color-brass-500); flex:0 0 auto; -webkit-user-select:none; user-select:none; }

/* ---- Scroll-reveal (fade-up; shared by home + about) ----
   Fail-safe: the hidden start state applies ONLY when <html class="js"> is set
   (an inline head script sets it before paint). With no JS — or if the reveal
   observer never runs — content stays fully visible, so a class rename or script
   error can never hide content again. */
.js .c-reveal { opacity:0; transform:translateY(24px); transition:opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1); }
.js .c-reveal.in { opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce) { .js .c-reveal { opacity:1; transform:none; transition:none; } }
.rv-on .rv-w { will-change:opacity; }
@media (prefers-reduced-motion: reduce){ .rv-w { opacity:1 !important; } }

/* ---- Homepage feature / meet / mission / signature / news sections ---- */
.c-feature { background:var(--bg-raise); border-top:1px solid var(--border-faint); padding:var(--space-20) 0; overflow:hidden; }
.c-feature__inner { width:100%; }
.c-feature__row { display:grid; grid-template-columns:1fr; gap:2rem; align-items:start; }
@media (min-width:900px){ .c-feature__row{ grid-template-columns:1fr 1.25fr 1fr; gap:3rem; } }
.c-feature__text { text-align:center; max-width:34rem; margin:0 auto; padding:0 1.5rem; align-self:center; }
.c-feature__title { font-family:var(--font-serif); font-weight:400; letter-spacing:-.01em; color:var(--text); font-size:clamp(2.2rem,5vw,3.4rem); line-height:1.05; margin:0; text-wrap:balance; }
.c-feature__title .italic { font-style:italic; color:var(--color-brass-400); }
.c-feature__lede { color:var(--text-muted); margin:1.25rem 0 0; line-height:1.7; }
.c-feature__btn { display:inline-flex; align-items:center; gap:.55rem; margin-top:1.8rem; padding:.85rem 1.9rem; border:1px solid var(--text-dim); border-radius:3px; background:transparent; color:var(--text); font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; text-decoration:none; transition:border-color .15s ease,color .15s ease; }
.c-feature__btn:hover { border-color:var(--color-brass-400); color:var(--color-brass-400); }
.c-feature picture { display:block; }
.c-feature__photo { display:block; width:100%; height:auto; aspect-ratio:2/3; object-fit:cover; border-radius:4px; background:var(--surface-1); }
.c-feature__img--left  { margin-top:-1.5rem; }
.c-feature__img--right { margin-top:8rem; }
@media (max-width:899px){ .c-feature__text{ order:-1; padding-top:0; } .c-feature__img--left, .c-feature__img--right{ margin:0 auto; max-width:26rem; } }

.c-meet { background:var(--bg); border-top:1px solid var(--border-faint); padding:7.5rem 1.5rem; }
.c-meet__inner { max-width:64rem; margin:0 auto; text-align:center; }
.c-meet__eyebrow { margin:0 0 2.5rem; font-size:.8rem; letter-spacing:.34em; text-transform:uppercase; color:var(--text-faint); }
.c-meet__title { font-family:var(--font-serif); font-weight:400; letter-spacing:-.01em; color:var(--text); font-size:clamp(2rem,5.2vw,3.9rem); line-height:1.12; margin:0; text-wrap:balance; }
.c-meet__title .italic { font-style:italic; color:var(--color-brass-400); }
.c-meet__lede { max-width:40rem; margin:2.5rem auto 0; color:var(--text-muted); line-height:1.8; font-size:1.05rem; }
@media (max-width:899px){ .c-meet{ padding:5rem 1.25rem; } .c-meet__eyebrow{ margin-bottom:1.75rem; } }

.c-mission { position:relative; overflow:hidden; background:#11161f; }
.c-mission__bg { position:absolute; inset:0; z-index:0; display:block; }
.c-mission__bgimg { width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.c-mission__overlay { position:absolute; inset:0; z-index:0; background:linear-gradient(rgba(7,18,34,.5), rgba(7,18,34,.62)); }
.c-mission__inner { position:relative; z-index:1; max-width:70rem; margin:0 auto; min-height:clamp(520px,82vh,760px); padding:6rem 1.5rem; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.c-mission__eyebrow { margin:0 0 1.75rem; font-size:.8rem; letter-spacing:.34em; text-transform:uppercase; color:rgba(255,255,255,.8); }
.c-mission__title { font-family:var(--font-serif); font-weight:400; color:#fff; font-size:clamp(2.2rem,6vw,4.4rem); line-height:1.06; letter-spacing:.01em; margin:0; text-wrap:balance; text-transform:uppercase; }
.c-mission__title .italic { font-style:italic; text-transform:none; color:var(--color-brass-400); }
.c-mission__lede { max-width:34rem; margin:2rem auto 0; color:rgba(255,255,255,.85); line-height:1.7; font-size:1rem; }
@media (max-width:899px){ .c-mission__inner{ min-height:60vh; padding:4.5rem 1.25rem; } }

.c-signature { display:grid; grid-template-columns:1fr; background:var(--bg-raise); }
@media (min-width:900px){ .c-signature{ grid-template-columns:1fr 1fr; } }
.c-signature__media { position:relative; display:block; min-height:clamp(320px,56vw,520px); background:#11161f; }
@media (min-width:900px){ .c-signature__media{ min-height:100%; } }
.c-signature__img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.c-signature__panel { display:flex; align-items:center; justify-content:center; padding:5.5rem 1.5rem; background:var(--bg-raise); }
.c-signature__content { max-width:34rem; text-align:center; }
.c-signature__eyebrow { margin:0 0 1.75rem; font-size:.8rem; letter-spacing:.32em; text-transform:uppercase; color:var(--text-soft); }
.c-signature__title { font-family:var(--font-serif); font-weight:400; text-transform:uppercase; letter-spacing:.01em; color:var(--text); font-size:clamp(2.3rem,4.6vw,3.9rem); line-height:1.05; margin:0; text-wrap:balance; }
.c-signature__title .accent { color:var(--color-brass-400); }
.c-signature__body { margin:1.9rem 0 0; color:var(--text-muted); line-height:1.8; font-size:1.02rem; }
.c-signature__btn { display:inline-block; margin-top:2.25rem; padding-bottom:.35rem; font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; text-decoration:none; color:var(--text); border-bottom:1px solid rgba(247,243,234,.5); transition:color .15s ease, border-color .15s ease; }
.c-signature__btn:hover { color:var(--color-brass-400); border-color:var(--color-brass-400); }
@media (max-width:899px){ .c-signature__panel{ padding:4rem 1.25rem; } }

.c-news { padding:var(--space-24) 1.5rem; background:var(--bg); border-top:1px solid var(--border-faint); }
.c-news__wrap { max-width:var(--container); margin:0 auto; }
.c-news__head { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin:0 0 2.5rem; }
.c-news__h { font-family:var(--font-serif); font-weight:400; color:var(--text); font-size:clamp(2rem,4vw,3rem); line-height:1.05; margin:0; }
.c-news__all { font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; text-decoration:none; color:var(--text-accent); white-space:nowrap; }
.c-news__all:hover { color:var(--text-accent-strong); }
.c-news__grid { display:grid; grid-template-columns:1fr; gap:1.75rem; }
@media (min-width:760px){ .c-news__grid{ grid-template-columns:repeat(3,1fr); } }
.c-news__card { display:block; text-decoration:none; border:1px solid rgba(212,170,92,.18); border-radius:14px; overflow:hidden; background:var(--surface-1); transition:border-color .2s ease, transform .2s ease; }
.c-news__card:hover { border-color:rgba(212,170,92,.45); transform:translateY(-3px); }
.c-news__media, .c-news__media picture { display:block; }
.c-news__media img { display:block; width:100%; height:auto; aspect-ratio:1200/630; }
.c-news__meta { display:block; padding:1.1rem 1.25rem 0; color:var(--text-accent); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; }
.c-news__title { display:block; padding:.5rem 1.25rem 1.4rem; font-family:var(--font-serif); font-weight:400; color:var(--text); font-size:1.35rem; line-height:1.2; }
.c-news__card:hover .c-news__title { color:var(--text-accent-strong); }

/* ---- Homepage contact section ---- */
.c-home-contact { position:relative; padding:var(--space-24) 0; background:var(--bg); overflow:hidden; }
@media (min-width:1024px){ .c-home-contact { padding:9rem 0; } }
.c-home-contact__decor { position:absolute; inset:0; pointer-events:none; opacity:.4; }
.c-home-contact__blob { position:absolute; border-radius:var(--radius-pill); filter:blur(64px); }
.c-home-contact__blob--brass { top:0; right:0; width:600px; height:600px; background:rgba(184,138,58,.10); }
.c-home-contact__blob--oxblood { bottom:0; left:0; width:500px; height:500px; background:rgba(123,30,42,.10); }
.c-home-contact__grid { position:relative; max-width:var(--container); margin:0 auto; padding:0 var(--space-5); display:grid; gap:var(--space-12); }
@media (min-width:1024px){ .c-home-contact__grid { grid-template-columns:repeat(12,minmax(0,1fr)); } .c-home-contact__intro { grid-column:span 5 / span 5; } .c-home-contact__form { grid-column:span 7 / span 7; } }
.c-home-contact__h2 { font-size:2.25rem; line-height:1.02; color:var(--text); }
@media (min-width:640px){ .c-home-contact__h2 { font-size:3rem; } }
@media (min-width:1024px){ .c-home-contact__h2 { font-size:3.75rem; } }
.c-home-contact__h2 .italic { font-style:italic; color:var(--color-brass-400); }
.c-home-contact__lede { margin-top:1.5rem; color:var(--text-muted); }
.c-home-contact__channels { margin-top:2.5rem; display:flex; flex-direction:column; gap:1.5rem; }
.c-home-contact__channel { display:flex; align-items:flex-start; gap:1rem; }
.c-home-contact__icon { width:2.5rem; height:2.5rem; border-radius:var(--radius-pill); border:1px solid var(--border-brass); display:flex; align-items:center; justify-content:center; color:var(--color-brass-400); flex-shrink:0; }
.c-home-contact__label { font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--text-soft); }
.c-home-contact__val { font-family:var(--font-serif); font-size:1.25rem; color:var(--text); }
.c-home-contact__form { border-radius:var(--radius-lg); border:1px solid var(--border-subtle); background:rgba(10,14,24,.6); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); padding:1.5rem; }
@media (min-width:640px){ .c-home-contact__form { padding:2.5rem; } }
.c-home-contact__hp { position:absolute; left:-9999px; top:-9999px; height:0; overflow:hidden; }
.c-home-contact__fields { display:grid; gap:1rem; }
@media (min-width:640px){ .c-home-contact__fields { grid-template-columns:repeat(2,minmax(0,1fr)); } .c-home-contact__field--full { grid-column:span 2 / span 2; } }
.c-home-contact__field-label { display:block; }
.c-home-contact__field-text { font-size:.75rem; color:var(--text-soft); letter-spacing:.05em; text-transform:uppercase; }
.c-home-contact__consent { display:flex; align-items:flex-start; gap:.75rem; font-size:.75rem; color:var(--text-soft); grid-column:span 2 / span 2; }
.c-home-contact__consent input { margin-top:.25rem; accent-color:var(--color-brass-400); }
.c-home-contact__foot { margin-top:2rem; padding-top:1.5rem; border-top:1px solid var(--border-faint); display:flex; flex-direction:column; gap:1rem; }
@media (min-width:640px){ .c-home-contact__foot { flex-direction:row; align-items:center; justify-content:space-between; } }
.c-home-contact__foot p { font-size:.75rem; color:var(--text-soft); }
.c-home-contact__foot a { color:var(--color-brass-400); }
.c-field--mt { margin-top:.5rem; }

/* ---- Cookie consent banner ---- */
.c-cookie { position:fixed; bottom:5rem; left:1.25rem; right:1.25rem; z-index:9999; pointer-events:none; opacity:0; transform:translateY(1.5rem); transition:opacity .5s, transform .5s; }
@media (min-width:640px){ .c-cookie { bottom:1.25rem; right:auto; max-width:28rem; } }
.c-cookie.is-visible { pointer-events:auto; opacity:1; transform:none; }
.c-cookie__card { border-radius:var(--radius-lg); border:1px solid rgba(212,170,92,.25); background:var(--surface-glass); -webkit-backdrop-filter:blur(24px); backdrop-filter:blur(24px); box-shadow:0 25px 50px -12px rgba(0,0,0,.25); overflow:hidden; }
.c-cookie__body { padding:1.5rem; }
.c-cookie__head { display:flex; align-items:flex-start; gap:.75rem; margin-bottom:1rem; }
.c-cookie__icon { flex-shrink:0; width:2.25rem; height:2.25rem; border-radius:var(--radius-pill); border:1px solid var(--border-brass); background:rgba(184,138,58,.10); display:flex; align-items:center; justify-content:center; color:var(--color-brass-400); }
.c-cookie__title { font-family:var(--font-serif); font-size:1.25rem; color:var(--text); line-height:1.25; }
.c-cookie__text { margin-top:.5rem; font-size:13px; color:var(--text-muted); line-height:1.625; }
.c-cookie__text a { color:var(--color-brass-400); }
.c-cookie__actions { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1rem; }
.c-cookie__btn-sm { font-size:.75rem; padding:.5rem 1rem; }
.c-cookie__link { font-size:.75rem; color:var(--text-muted); padding:.5rem .75rem; }
.c-cookie__link:hover { color:var(--text); }
.c-cookie__prefs { padding:1.5rem; border-top:1px solid var(--border-subtle); }
.c-cookie__prefs-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:1rem; }
.c-cookie__prefs-title { font-family:var(--font-serif); font-size:1.125rem; color:var(--text); }
.c-cookie__list { display:flex; flex-direction:column; gap:.75rem; }
.c-cookie__opt { display:flex; align-items:flex-start; gap:.75rem; padding:.75rem; border-radius:var(--radius-sm); background:var(--surface-2); border:1px solid var(--border-faint); }
.c-cookie__opt--toggle { background:var(--surface-1); cursor:pointer; transition:border-color .15s; }
.c-cookie__opt--toggle:hover { border-color:rgba(212,170,92,.3); }
.c-cookie__opt input { margin-top:.25rem; accent-color:var(--color-brass-400); }
.c-cookie__opt input:disabled { opacity:.6; }
.c-cookie__opt-row { display:flex; align-items:center; justify-content:space-between; }
.c-cookie__opt-name { font-size:.875rem; font-weight:500; color:var(--text); }
.c-cookie__opt-on { font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--color-brass-400); }
.c-cookie__opt-desc { font-size:.75rem; color:var(--text-faint); margin-top:.25rem; }

/* ---- About page ---- */
.c-about__wrap { max-width:72rem; margin:0 auto; padding:0 var(--space-5); }
.c-about__eyebrow { font-size:.78rem; letter-spacing:.3em; text-transform:uppercase; color:var(--text-faint); margin:0 0 1.25rem; }
.c-about__hero { text-align:center; padding:8rem 1.25rem 2rem; }
.c-about__hero-title { font-family:var(--font-serif); font-weight:400; color:var(--text); font-size:clamp(3rem,8vw,6rem); line-height:1; letter-spacing:-.02em; margin:0; text-transform:uppercase; }
.c-about__hero-sub { max-width:40rem; margin:1.5rem auto 0; color:var(--text-muted); line-height:1.7; font-size:1.05rem; }
.c-about__vision { text-align:center; padding:4.5rem 0; }
.c-about__vision-title { font-family:var(--font-serif); font-weight:400; text-transform:uppercase; color:var(--text); font-size:clamp(2.2rem,5.5vw,4rem); line-height:1.05; margin:0 auto; max-width:24ch; }
.c-about__vision-body { max-width:44rem; margin:1.75rem auto 0; color:var(--text-muted); line-height:1.85; font-size:1.08rem; }
.c-about__split { display:grid; grid-template-columns:1fr; gap:3rem; align-items:center; padding:4.5rem 0; border-top:1px solid var(--border-faint); }
@media (min-width:900px){ .c-about__split{ grid-template-columns:0.82fr 1fr; gap:4.5rem; } }
.c-about__portrait { display:block; width:100%; height:auto; aspect-ratio:2/3; object-fit:cover; border-radius:4px; background:var(--surface-1); }
.c-about__h2 { font-family:var(--font-serif); font-weight:400; color:var(--text); font-size:clamp(1.9rem,3.6vw,2.8rem); line-height:1.1; margin:0 0 1.25rem; }
.c-about__split-text p { color:var(--text-muted); line-height:1.85; margin:0 0 1.1rem; max-width:40rem; }
.c-about__note { color:var(--text-faint); font-size:.92rem; }
.c-about__note a, .c-about__split-text a { color:var(--color-brass-400); text-decoration:none; border-bottom:1px solid rgba(212,170,92,.4); }
.c-about__note a:hover { color:var(--text-accent-strong); }
.c-about__quote { text-align:center; padding:5rem 0; border-top:1px solid var(--border-faint); }
.c-about__quote-text { font-family:var(--font-serif); font-style:italic; color:var(--color-parch-100); font-size:clamp(1.6rem,3.6vw,2.6rem); line-height:1.35; margin:0 auto; max-width:30ch; }
.c-about__quote-cite { margin:1.6rem 0 0; font-size:.78rem; letter-spacing:.22em; text-transform:uppercase; color:var(--color-brass-400); }
.c-about__principles { padding:4.5rem 1.25rem; border-top:1px solid var(--border-faint); }
.c-about__center { text-align:center; }
.c-about__list { list-style:none; margin:2.5rem 0 0; padding:0; display:grid; gap:1.5rem; }
@media (min-width:760px){ .c-about__list{ grid-template-columns:1fr 1fr; gap:2rem 3rem; } }
.c-about__list li { display:grid; grid-template-columns:auto 1fr; gap:1.1rem; align-items:start; padding-top:1.4rem; border-top:1px solid rgba(255,255,255,.07); }
.c-about__num { font-family:var(--font-serif); color:var(--color-brass-400); font-size:1.3rem; line-height:1; }
.c-about__list h3 { font-size:1.08rem; color:var(--text); margin:0 0 .35rem; font-weight:600; }
.c-about__list p { color:var(--text-soft); line-height:1.7; margin:0; font-size:.96rem; }
.c-about__grid-sec { padding:4.5rem 1.25rem; border-top:1px solid var(--border-faint); }
.c-about__grid { display:grid; grid-template-columns:1fr; gap:1rem; }
@media (min-width:760px){ .c-about__grid{ grid-template-columns:repeat(3,1fr); gap:1.25rem; } }
.c-about__grid figure { margin:0; position:relative; }
.c-about__grid img { display:block; width:100%; height:auto; aspect-ratio:2/3; object-fit:cover; border-radius:4px; background:var(--surface-1); }
.c-about__grid figcaption { margin-top:.7rem; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--text-faint); }
.c-about__three-sec { padding:4.5rem 1.25rem; border-top:1px solid var(--border-faint); }
.c-about__three { display:grid; grid-template-columns:1fr; gap:2.5rem; margin-top:2.5rem; }
@media (min-width:760px){ .c-about__three{ grid-template-columns:repeat(3,1fr); gap:3rem; } }
.c-about__three h3 { font-family:var(--font-serif); font-weight:400; color:var(--color-brass-400); font-size:1.5rem; margin:0 0 .6rem; }
.c-about__three p { color:var(--text-soft); line-height:1.8; margin:0; font-size:.98rem; }
.c-about__cta-sec { padding:4rem 1.25rem 7rem; border-top:1px solid var(--border-faint); }
.c-about__cta-grid { display:grid; grid-template-columns:1fr; gap:1.25rem; max-width:60rem; margin:0 auto; }
@media (min-width:760px){ .c-about__cta-grid{ grid-template-columns:1fr 1fr; } }
.c-about__cta { display:flex; flex-direction:column; gap:.5rem; padding:2.25rem; border:1px solid var(--border-brass); border-radius:6px; background:var(--bg-raise); text-decoration:none; transition:border-color .15s ease, transform .15s ease; }
.c-about__cta:hover { border-color:var(--color-brass-400); transform:translateY(-2px); }
.c-about__cta-k { font-size:.74rem; letter-spacing:.2em; text-transform:uppercase; color:var(--text-faint); }
.c-about__cta-h { font-family:var(--font-serif); font-size:1.7rem; color:var(--text); }
.c-about__cta:hover .c-about__cta-h { color:var(--text-accent-strong); }
.italic-accent { font-style:italic; color:var(--color-brass-400); }

/* ---- Our Story page ---- */
.c-story__wrap { max-width:72rem; margin:0 auto; padding:0 var(--space-5); }
.c-story__hero { padding:8rem 0 2.5rem; text-align:center; }
.c-story__eyebrow { margin:0 0 1.5rem; font-size:.78rem; letter-spacing:.3em; text-transform:uppercase; color:var(--text-faint); }
.c-story__title { font-family:var(--font-serif); font-weight:400; color:var(--text); font-size:clamp(2.6rem,6vw,4.6rem); line-height:1.02; letter-spacing:-.01em; margin:0; }
.c-story__title .italic { font-style:italic; color:var(--color-brass-400); }
.c-story__lede { max-width:42rem; margin:1.75rem auto 0; color:var(--text-muted); line-height:1.8; font-size:1.1rem; }
.c-story__lead { max-width:46rem; margin:0 auto; padding:1rem 0 2.5rem; text-align:center; }
.c-story__lead p { font-family:var(--font-serif); color:var(--color-parch-100); font-size:clamp(1.35rem,2.7vw,1.95rem); line-height:1.45; margin:0 0 1.4rem; text-wrap:balance; }
.c-story__lead p .accent { color:var(--color-brass-400); font-style:italic; }
.c-story__lead p:last-child { color:var(--text-soft); font-size:clamp(1.05rem,2vw,1.3rem); margin-top:2rem; }
.c-story__split { display:grid; grid-template-columns:1fr; gap:2.5rem; align-items:center; padding:3.5rem 0; }
@media (min-width:900px){ .c-story__split{ grid-template-columns:0.8fr 1fr; gap:4rem; } }
.c-story__img { display:block; width:100%; height:auto; aspect-ratio:2/3; object-fit:cover; border-radius:4px; background:var(--surface-1); }
.c-story__h2 { font-family:var(--font-serif); font-weight:400; color:var(--text); font-size:clamp(1.8rem,3.4vw,2.6rem); line-height:1.1; margin:0 0 1.25rem; }
.c-story__h2--center { text-align:center; }
.c-story__h2 .italic { font-style:italic; color:var(--color-brass-400); }
.c-story__prose p { color:var(--text-muted); line-height:1.85; margin:0 0 1.15rem; max-width:42rem; }
.c-story__prose a { color:var(--color-brass-400); text-decoration:none; border-bottom:1px solid rgba(212,170,92,.4); }
.c-story__prose a:hover { color:var(--text-accent-strong); }
.c-story__section { padding:3.5rem 0; border-top:1px solid var(--border-faint); }
.c-story__time { list-style:none; margin:1.75rem 0 0; padding:0; display:grid; gap:1.1rem; }
.c-story__time li { display:grid; grid-template-columns:5.5rem 1fr; gap:1.25rem; align-items:baseline; }
.c-story__time .yr { font-family:var(--font-serif); color:var(--color-brass-400); font-size:1.15rem; }
.c-story__time .ev { color:var(--text-muted); line-height:1.6; }
@media (max-width:560px){ .c-story__time li{ grid-template-columns:1fr; gap:.2rem; } }
.c-story__cta { text-align:center; padding:3.5rem 0 7rem; }
.c-story__btn { display:inline-flex; align-items:center; gap:.55rem; margin-top:.5rem; padding:.95rem 1.9rem; border:1px solid var(--text-dim); border-radius:3px; background:transparent; color:var(--text); font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; text-decoration:none; transition:border-color .15s ease, color .15s ease; }
.c-story__btn:hover { border-color:var(--color-brass-400); color:var(--color-brass-400); }
.c-story__note { max-width:46rem; margin:2.5rem auto 0; color:var(--text-dim); font-size:.82rem; line-height:1.7; }
.c-story__note--tight { margin-top:1rem; }

/* ---- Contact page ---- */
.c-contact { padding:8rem 0 7rem; }
.c-contact__wrap { max-width:var(--container); margin:0 auto; padding:0 var(--space-5); }
.c-contact__grid { display:grid; grid-template-columns:1fr; gap:3rem; align-items:start; }
@media (min-width:900px){ .c-contact__grid{ grid-template-columns:0.78fr 1fr; gap:4.5rem; align-items:center; } }
.c-contact__img { display:block; width:100%; height:auto; aspect-ratio:2/3; object-fit:cover; border-radius:4px; background:var(--surface-1); }
.c-contact__title { font-family:var(--font-serif); font-weight:400; text-transform:uppercase; color:var(--text); font-size:clamp(2.8rem,6vw,5rem); line-height:.98; letter-spacing:.01em; margin:0; }
.c-contact__title .accent { color:var(--color-brass-400); }
.c-contact__intro { margin:1.75rem 0 2.75rem; color:var(--text-muted); line-height:1.7; font-size:1.05rem; max-width:36rem; }
.c-contact__intro a { color:var(--color-brass-400); text-decoration:none; border-bottom:1px solid rgba(212,170,92,.4); }
.c-contact__intro a:hover { color:var(--text-accent-strong); }
.c-contact__row { margin:0 0 1.75rem; }
.c-contact__field { width:100%; background:transparent; border:0; border-bottom:1px solid rgba(247,243,234,.22); color:var(--text); font-family:var(--font-sans); font-size:1rem; padding:.85rem 0; }
.c-contact__field:focus { outline:none; border-color:var(--color-brass-400); }
.c-contact__field::placeholder { color:rgba(247,243,234,.5); }
.c-contact__field--label::placeholder { text-transform:uppercase; letter-spacing:.18em; font-size:.82rem; }
textarea.c-contact__field { resize:vertical; min-height:7rem; line-height:1.6; }
.c-contact__submit { margin-top:2rem; background:transparent; border:0; padding:0; cursor:pointer; font-family:var(--font-serif); font-style:italic; font-weight:400; font-size:1.7rem; color:var(--text); transition:color .15s ease; }
.c-contact__submit:hover { color:var(--color-brass-400); }
.c-contact__hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
/* structural wrappers (no visual style of their own; named for clarity) */
.c-contact__media, .c-contact__content, .c-about__split-media { display:block; }

/* ---- Court pages (template + 154 generated) ---- */
.c-court-bc { padding:6rem 0 .5rem; }
@media (min-width:1024px){ .c-court-bc { padding-top:7rem; } }
.c-court-bc nav { max-width:var(--container); margin:0 auto; padding:0 var(--space-5); font-size:.75rem; color:var(--text-faint); }
.c-court-bc a { color:inherit; } .c-court-bc a:hover { color:var(--text); }
.c-court-bc__sep { margin:0 .5rem; color:var(--text-soft); }
.c-court-bc__here { color:var(--text-muted); }
.c-court-bc__cur { color:var(--text); }
.c-court-hero { position:relative; padding:1.5rem 0 3.5rem; }
.c-court-hero__h1 { font-size:3rem; line-height:.95; color:var(--text); }
@media (min-width:640px){ .c-court-hero__h1 { font-size:3.75rem; } }
@media (min-width:1024px){ .c-court-hero__h1 { font-size:4.5rem; } }
.c-court-hero__h1 .accent { font-style:italic; color:var(--color-brass-400); }
.c-court-hero__addr { margin-top:1.25rem; color:var(--text-soft); font-size:1.125rem; max-width:42rem; }
.c-court-hero__addr a { color:var(--color-brass-400); }
.c-court-hero__disclaim { margin-top:.75rem; font-size:11px; color:var(--text-soft); line-height:1.375; max-width:28rem; }
.c-court-sec { padding:4rem 0; border-top:1px solid var(--border-faint); }
@media (min-width:1024px){ .c-court-sec { padding:5rem 0; } }
.c-court-sec--dark { background:var(--bg); }
.c-court-sec__grid { max-width:var(--container); margin:0 auto; padding:0 var(--space-5); display:grid; gap:var(--space-10); }
@media (min-width:1024px){ .c-court-sec__grid { grid-template-columns:repeat(12,minmax(0,1fr)); } .c-court-sec__head { grid-column:span 4 / span 4; } .c-court-sec__body { grid-column:span 8 / span 8; } }
.c-court-sec__h2 { font-size:1.875rem; line-height:1.25; color:var(--text); }
@media (min-width:1024px){ .c-court-sec__h2 { font-size:2.25rem; } }
.c-court-sec__note { margin-top:.75rem; font-size:.875rem; color:var(--text-soft); }
.c-court-cards { display:grid; gap:1.25rem; }
@media (min-width:640px){ .c-court-cards { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.c-court-card { border-radius:var(--radius); border:1px solid var(--border-subtle); padding:1.25rem; }
.c-court-card p { font-size:.875rem; color:var(--text-muted); line-height:1.625; }
.c-court-card .muted { color:var(--text-faint); }
.c-court-card a { color:var(--color-brass-400); }
.c-court-judges { display:grid; gap:.75rem; list-style:none; padding:0; margin:0; }
@media (min-width:640px){ .c-court-judges { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.c-court-judge { border-radius:var(--radius-sm); border:1px solid var(--border-subtle); padding:1rem; display:flex; align-items:baseline; justify-content:space-between; }
.c-court-judge--lead { border-color:var(--border-brass); background:rgba(184,138,58,.05); }
.c-court-judge__name { font-family:var(--font-serif); font-size:1.25rem; color:var(--text); }
.c-court-contact { padding:5rem 0; border-top:1px solid var(--border-faint); background:linear-gradient(to bottom, var(--bg), var(--bg-raise)); }
@media (min-width:1024px){ .c-court-contact { padding:7rem 0; } }
.c-court-contact__grid { max-width:var(--container); margin:0 auto; padding:0 var(--space-5); display:grid; gap:3rem; }
@media (min-width:1024px){ .c-court-contact__grid { grid-template-columns:repeat(12,minmax(0,1fr)); } .c-court-contact__intro { grid-column:span 5 / span 5; } .c-court-form { grid-column:span 7 / span 7; } }
.c-court-contact__h2 { font-size:2.25rem; line-height:1.02; color:var(--text); }
@media (min-width:1024px){ .c-court-contact__h2 { font-size:3rem; } }
.c-court-contact__h2 .accent { font-style:italic; color:var(--color-brass-400); }
.c-court-contact__lede { margin-top:1.5rem; color:var(--text-muted); }
.c-court-contact__details { margin-top:2rem; display:flex; flex-direction:column; gap:1rem; font-size:.875rem; }
.c-court-contact__val { font-size:1.25rem; color:var(--text); }
.c-court-form { border-radius:var(--radius-lg); border:1px solid var(--border-subtle); background:rgba(10,14,24,.6); padding:1.5rem; }
@media (min-width:640px){ .c-court-form { padding:2.5rem; } }
.c-court-form__hp { position:absolute; left:-9999px; top:-9999px; height:0; overflow:hidden; }
.c-court-form__grid { display:grid; gap:1rem; }
@media (min-width:640px){ .c-court-form__grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .c-court-form__label--full { grid-column:span 2 / span 2; } }
.c-court-form__label { display:block; }
.c-court-form__label-text { font-size:.75rem; color:var(--text-soft); letter-spacing:.05em; text-transform:uppercase; }
.c-court-form__field { margin-top:.5rem; }
.c-court-form__submit { margin-top:1.5rem; display:flex; justify-content:flex-end; }
/* "Other courts" cross-links (emitted by the SSG) */
.c-other-courts { margin-top:2rem; }
.c-other-courts__list { display:flex; flex-wrap:wrap; gap:.5rem; list-style:none; padding:0; margin:0; }
.c-other-courts__link { display:inline-flex; align-items:center; border-radius:var(--radius-pill); border:1px solid var(--border-subtle); padding:.5rem .75rem; font-size:.875rem; color:var(--text-muted); transition:color .15s, border-color .15s; }
.c-other-courts__link:hover { color:var(--text); border-color:var(--border-brass-strong); }
/* Interactive US map */
.c-map { position:relative; margin-top:2.5rem; border-radius:var(--radius-lg); border:1px solid var(--border-subtle); background:linear-gradient(to bottom, rgba(10,14,24,.4), var(--bg)); padding:1rem; overflow:hidden; }
@media (min-width:640px){ .c-map { padding:1.5rem; } }
.c-map__h2 { max-width:42rem; }
@media (min-width:1024px){ .c-map__h2 { font-size:3rem; } }
.c-map__sub { margin-top:.75rem; color:var(--text-soft); }
.c-map__stage { position:relative; }
.c-map__svg { width:100%; height:auto; -webkit-user-select:none; user-select:none; touch-action:none; cursor:grab; }
.c-map__svg.dragging { cursor:grabbing; }
.c-map__ctrls { position:absolute; top:.75rem; right:.75rem; display:flex; flex-direction:column; border-radius:var(--radius-sm); overflow:hidden; box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1); }
.c-map__ctrl { width:36px; height:36px; display:flex; align-items:center; justify-content:center; background:rgba(10,14,24,0.85); color:var(--color-parch-100); border:1px solid rgba(239,231,211,0.18); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); cursor:pointer; -webkit-user-select:none; user-select:none; transition:border-color .2s ease, color .2s ease, background .2s ease; }
.c-map__ctrl:hover { border-color:rgba(212,170,92,0.6); color:var(--color-brass-300); background:rgba(10,14,24,0.95); }
.c-map__ctrl:first-child { border-top-left-radius:8px; border-top-right-radius:8px; }
.c-map__ctrl:last-child { border-top:none; border-bottom-left-radius:8px; border-bottom-right-radius:8px; }
.c-map__ctrl:not(:first-child):not(:last-child) { border-top:none; }
.c-map__hint { position:absolute; bottom:.75rem; left:.75rem; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--text-soft); pointer-events:none; }
.c-map__legend { margin-top:1.25rem; display:flex; align-items:center; gap:1rem; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--text-faint); }
.c-map__legend-item { display:inline-flex; align-items:center; gap:.5rem; }
.c-map__dot { width:.5rem; height:.5rem; border-radius:var(--radius-pill); }
.c-map__dot--current { background:var(--color-brass-300); box-shadow:0 0 0 2px hsla(40,65%,72%,.4); }
.c-map__dot--other { background:var(--text-soft); }
.c-map__pin { cursor:pointer; transition:filter .2s ease; }
.c-map__pin:hover { filter:drop-shadow(0 0 6px rgba(212,170,92,0.95)); }
.c-map__pin.current { filter:drop-shadow(0 0 12px rgba(230,199,137,1)); }
@keyframes cm-pin-pulse { 0% { r: 6; opacity: .7; } 100% { r: 18; opacity: 0; } }
.c-map__halo { animation:cm-pin-pulse 2s ease-out infinite; transform-origin:center; pointer-events:none; }
.c-map__tooltip { position:absolute; pointer-events:none; background:rgba(10,14,24,0.95); border:1px solid rgba(212,170,92,0.4); color:var(--color-parch-100); padding:.4rem .65rem; border-radius:.5rem; font-size:.75rem; white-space:nowrap; transform:translate(-50%,-130%); box-shadow:0 10px 30px -10px rgba(0,0,0,0.8); opacity:0; transition:opacity .15s ease; z-index:20; }
.c-map__tooltip.show { opacity:1; }

/* ---- News / article shell (rendered by the SSG news_shell) ---- */
.c-post{ max-width:var(--container); margin:0 auto; padding:8rem 1.25rem 4.5rem; line-height:1.8; }
.c-post .kicker{ font-size:.78rem; letter-spacing:.3em; text-transform:uppercase; color:var(--text-faint); margin:0 0 1.25rem; }
.c-post h1{ font-family:var(--font-serif); font-weight:400; font-size:clamp(2.1rem,5vw,3.2rem); line-height:1.05; color:var(--text); margin:0 0 .6rem; letter-spacing:-.01em; text-wrap:balance; }
.c-post h2{ font-family:var(--font-serif); font-weight:400; font-size:clamp(1.6rem,3vw,2rem); line-height:1.15; color:var(--text); margin:2.6rem 0 .75rem; letter-spacing:-.005em; }
.c-post h3{ font-size:1.15rem; color:var(--color-parch-100); margin:1.8rem 0 .4rem; font-weight:600; }
.c-post p, .c-post li{ color:var(--text-body); margin:0 0 1.05rem; }
.c-post a{ color:var(--color-brass-400); text-decoration:underline; text-underline-offset:2px; }
.c-post a:hover{ color:var(--text-accent-strong); }
.c-post strong{ color:var(--color-parch-100); }
.c-post ul,.c-post ol{ margin:0 0 1.05rem 1.1rem; padding:0; }
.c-post li{ margin:.35rem 0; }
.c-post .lede{ font-family:var(--font-serif); font-size:clamp(1.2rem,2.2vw,1.5rem); line-height:1.5; color:var(--color-parch-100); margin:0 0 1.6rem; }
.c-post .cta{ background:rgba(212,170,92,.08); border:1px solid rgba(212,170,92,.25); border-radius:12px; padding:1.15rem 1.35rem; margin:2.25rem 0; }
.c-post .disclaimer{ font-size:.82rem; color:rgba(233,236,241,.5); font-style:italic; }
.c-post hr{ border:none; height:1px; background:linear-gradient(90deg, transparent, var(--border-brass-strong), transparent); margin:2.5rem 0; }
.c-news-back{ display:inline-block; margin-bottom:1.6rem; color:var(--color-brass-400); text-decoration:none; font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; }
.c-news-back:hover{ color:var(--text-accent-strong); }
.c-news-hero{ margin:0 0 1.8rem; }
.c-news-hero picture{ display:block; }
.c-news-hero img{ display:block; width:100%; height:auto; aspect-ratio:1200/630; border-radius:14px; border:1px solid rgba(212,170,92,.22); }
.c-news-meta{ display:flex; flex-wrap:wrap; align-items:center; gap:.5rem .9rem; margin:0 0 1.6rem; color:var(--text-faint); font-size:.8rem; letter-spacing:.02em; }
.c-news-meta .by{ color:var(--color-parch-100); }
.c-news-meta time{ color:var(--text-soft); }
.c-news-meta .dot{ color:rgba(212,170,92,.6); }
.c-news-meta a{ color:var(--color-brass-400); text-decoration:none; } .c-news-meta a:hover{ color:var(--text-accent-strong); }
.c-news-tags{ display:flex; flex-wrap:wrap; gap:.5rem; margin:1.8rem 0 0; padding-top:1.4rem; border-top:1px solid rgba(255,255,255,.08); }
.c-news-tags a, .c-news-tags span{ font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--color-brass-400); border:1px solid var(--border-brass); border-radius:999px; padding:.35rem .8rem; text-decoration:none; }
.c-news-tags a:hover{ border-color:var(--color-brass-300); color:var(--color-brass-300); }
.c-author{ display:flex; gap:1.2rem; align-items:flex-start; margin:2.4rem 0 0; padding:1.5rem 1.6rem; background:linear-gradient(180deg, rgba(212,170,92,.06), rgba(255,255,255,.012)); border:1px solid rgba(212,170,92,.22); border-radius:16px; }
.c-author__img{ flex:none; width:88px; height:88px; border-radius:50%; object-fit:cover; border:2px solid var(--border-brass-strong); }
.c-author__eyebrow{ margin:0 0 .25rem; color:var(--color-brass-400); font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; font-weight:600; }
.c-author__name{ margin:0 0 .5rem; font-family:var(--font-serif); font-size:1.5rem; color:var(--text); line-height:1.1; }
.c-author__name span{ display:block; font-family:var(--font-sans); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--color-brass-400); margin-top:.3rem; }
.c-author__desc{ margin:0 0 .7rem; color:var(--text-muted); font-size:.92rem; line-height:1.7; }
.c-author__link{ color:var(--color-brass-400); text-decoration:none; font-size:.8rem; letter-spacing:.06em; font-weight:600; }
.c-author__link:hover{ color:var(--text-accent-strong); }
.c-share{ display:flex; align-items:center; flex-wrap:wrap; gap:.5rem; margin:2rem 0 0; }
.c-share__label{ font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:var(--text-faint); margin-right:.25rem; }
.c-share__btn{ display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50%; border:1px solid var(--border-brass); color:var(--color-brass-400); background:transparent; cursor:pointer; padding:0; transition:color .15s ease, border-color .15s ease, background .15s ease; }
.c-share__btn:hover{ border-color:var(--color-brass-300); color:var(--color-brass-300); background:rgba(212,170,92,.08); }
.c-share__btn svg{ width:16px; height:16px; fill:currentColor; }
.c-share__btn.copied{ color:#7bbf6a; border-color:#7bbf6a; }
.c-share--compact{ margin:.7rem 0 0; gap:.4rem; }
.c-share--compact .c-share__btn{ width:28px; height:28px; }
.c-share--compact .c-share__btn svg{ width:14px; height:14px; }
@media (max-width:560px){ .c-author{ flex-direction:column; gap:.9rem; } }
.c-tag-group{ margin:2rem 0 0; }
.c-tag-group h2{ font-family:var(--font-serif); font-weight:400; color:var(--text); font-size:1.3rem; margin:1.8rem 0 .8rem; border-top:0; }
.c-tag-cloud{ display:flex; flex-wrap:wrap; gap:.6rem; }
.c-tag-cloud a{ font-size:.8rem; letter-spacing:.03em; color:var(--color-brass-400); border:1px solid var(--border-brass); border-radius:999px; padding:.45rem .95rem; text-decoration:none; }
.c-tag-cloud a:hover{ border-color:var(--color-brass-300); color:var(--color-brass-300); }
.c-tag-count{ color:var(--text-dim); font-variant-numeric:tabular-nums; }
.c-tag-bio{ display:flex; gap:1.5rem; align-items:flex-start; margin:1.5rem 0 0; }
.c-tag-bio img{ width:120px; height:180px; object-fit:cover; border-radius:4px; flex-shrink:0; background:var(--surface-1); }
.c-tag-bio p{ margin:0; color:var(--text-body); line-height:1.8; }
@media (max-width:560px){ .c-tag-bio{ flex-direction:column; } }
.c-crumbs{ font-size:.74rem; letter-spacing:.04em; color:var(--text-faint); margin:0 0 1.1rem; }
.c-crumbs .current{ color:var(--text-muted); }
.c-crumbs a{ color:var(--color-brass-400); text-decoration:none; } .c-crumbs a:hover{ color:var(--color-brass-300); }
.c-news-related{ margin-top:3rem; padding-top:1.4rem; border-top:1px solid rgba(255,255,255,.08); }
.c-news-related h2{ font-family:var(--font-serif); font-weight:400; color:var(--text); font-size:1.4rem; margin:0 0 .4rem; }
.c-news-pn{ display:flex; justify-content:space-between; gap:1.5rem; margin-top:2.5rem; padding-top:1.4rem; border-top:1px solid rgba(255,255,255,.08); }
.c-news-pn a{ color:var(--color-brass-400); text-decoration:none; font-size:.9rem; max-width:48%; line-height:1.4; }
.c-news-pn a:hover{ color:var(--color-brass-300); } .c-news-pn .pn-next{ text-align:right; margin-left:auto; }
.c-news-list{ list-style:none; padding:0; margin:2rem 0 0; }
.c-news-list li{ border-top:1px solid rgba(255,255,255,.08); padding:1.6rem 0; transition:padding-left .2s ease; }
.c-news-list li:hover{ padding-left:.4rem; }
.c-news-list a.title{ font-family:var(--font-serif); font-size:clamp(1.4rem,2.6vw,1.7rem); line-height:1.15; color:var(--text); text-decoration:none; }
.c-news-list a.title:hover{ color:var(--color-brass-300); }
.c-news-list .date{ display:block; color:var(--color-brass-400); font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; margin-bottom:.45rem; }
.c-news-list .desc{ color:var(--text-muted); margin:.5rem 0 0; line-height:1.65; }
.c-news-list--media li{ display:flex; gap:1.4rem; align-items:flex-start; }
.c-news-list--media .thumb{ flex:0 0 36%; max-width:380px; display:block; border-radius:12px; overflow:hidden; border:1px solid rgba(212,170,92,.22); }
.c-news-list--media .thumb picture{ display:block; }
.c-news-list--media .thumb img{ display:block; width:100%; height:auto; aspect-ratio:1200/630; transition:transform .3s ease; }
.c-news-list--media .thumb:hover img{ transform:scale(1.03); }
.c-news-list--media .news-list__text{ flex:1 1 auto; min-width:0; }
@media (max-width:640px){ .c-news-list--media li{ flex-direction:column; gap:.9rem; } .c-news-list--media .thumb{ flex-basis:auto; max-width:none; width:100%; } }


/* ============================================================================
 *  6. UTILITIES — single-purpose helpers
 * ========================================================================== */
.u-tabular { font-variant-numeric: tabular-nums; }   /* phone/figure alignment */
.u-contents { display: contents; }                   /* aria-hidden marquee duplicate */
.italic { font-style: italic; color: var(--color-brass-400); }  /* brass italic accent in serif headings */
.u-disclaim { color:#a7adba; font-size:.78rem; }
.u-mb-1 { margin-bottom: var(--space-1); }
.u-mb-2 { margin-bottom: var(--space-2); }
.u-mb-4 { margin-bottom: var(--space-4); }


/* ============================================================================
 *  PRINT — clean black-on-white article/page body, drop chrome & decoration
 * ========================================================================== */
@media print {
  @page { margin: 1in; }
  *, *::before, *::after { animation: none !important; transition: none !important; box-shadow: none !important; text-shadow: none !important; background: none !important; color: #000 !important; }
  html, body { background: #fff !important; color: #000 !important; }
  header, footer, .c-skip, .c-sticky-cta, .c-urgent, .c-hero__scroll, .c-marquee, .c-grain, .c-globe__canvas, .c-globe__glow, .c-share, .c-news-back, .c-news-pn, .c-news-related, noscript, #cookieBanner { display: none !important; }
  a { color: #000 !important; text-decoration: underline; }
  a[href^="http"]::after, a[href^="tel:"]::after, a[href^="mailto:"]::after { content: " (" attr(href) ")"; font-size: 0.85em; color: #555 !important; }
  a[href^="#"]::after, a[href^="/"]::after { content: ""; }
  h1, h2, h3 { color: #000 !important; page-break-after: avoid; }
  img, svg { max-width: 100% !important; }
  .c-reveal { opacity: 1 !important; transform: none !important; }
  .c-post{ max-width:none; padding:0; }
  .c-news-hero img{ border:1px solid #ccc; }
  .c-author{ background:none !important; border:1px solid #ccc; }
  body::before { content: "Carlos Maury Law  ·  (213) 769-0050  ·  carlos@carlosmaury.law  ·  carlosmaury.law"; display: block; padding: 0 0 .5em; margin-bottom: 1em; border-bottom: 1px solid #999; font-family: var(--font-serif); font-size: 10pt; }
}
