/* Puzzle Group Law Firm — "The Mountain Brief" — v0.1 (Phase 1 concept) */
:root{
  /* Palette: the DenverDivorce "wax" scheme, applied verbatim (Sept 5, 2026 — "no more orange").
     --orange keeps its variable name for the sake of the stylesheet, but its value is sealing-wax red. */
  --paper:#FFFFFF; --ink:#000000; --ink-2:#000000; --panel:#F1EFEA; --rule:#A6A199; --rule-2:#D8D3CB;
  --orange:#7E2A23; --orange-text:#7E2A23; --orange-ink:#FFFFFF; --orange-hover:#000000;
  --btn-bg:#7E2A23; --btn-fg:#FFFFFF;
  --band:#1C1B1A; --band-fg:#F4F0E9; --band-accent:#CF998A; --alert:#7E2A23;
  --display:'Newsreader',Georgia,'Times New Roman',serif;
  --sans:'Public Sans',-apple-system,'Segoe UI',Helvetica,Arial,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,'SF Mono',Menlo,monospace;
  --max:1120px; --rail:104px; --rail-x:44px; --gutter:72px;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){ --paper:#000000; --ink:#FFFFFF; --ink-2:#FFFFFF; --panel:#161616; --rule:#4A4A4A; --rule-2:#2E2E2E; --orange:#FFA491; --orange-text:#FFA491; --orange-ink:#000000; --orange-hover:#FFFFFF; --btn-bg:#7E2A23; --btn-fg:#FFFFFF; --band:#FFFFFF; --band-fg:#000000; --band-accent:#7E2A23; --alert:#FFA491; } }
:root[data-theme="dark"]{ --paper:#000000; --ink:#FFFFFF; --ink-2:#FFFFFF; --panel:#161616; --rule:#4A4A4A; --rule-2:#2E2E2E; --orange:#FFA491; --orange-text:#FFA491; --orange-ink:#000000; --orange-hover:#FFFFFF; --btn-bg:#7E2A23; --btn-fg:#FFFFFF; --band:#FFFFFF; --band-fg:#000000; --band-accent:#7E2A23; --alert:#FFA491; }

*{box-sizing:border-box; margin:0; padding:0}
html{ scroll-behavior:smooth; background:var(--paper); }
body{ background:var(--paper); color:var(--ink); font-family:var(--sans); font-size:20px; font-weight:450; line-height:1.65; -webkit-font-smoothing:antialiased; }
body::before{ content:""; position:fixed; top:0; bottom:0; left:var(--rail-x); width:6px; border-left:2px solid var(--orange); border-right:2px solid var(--orange); pointer-events:none; z-index:60; }
.page{ padding-left:var(--rail); }
.wrap{ max-width:var(--max); margin:0 auto; padding-left:var(--gutter); padding-right:var(--gutter); }
a{ color:inherit; text-decoration:none; }
.textlink{ color:var(--orange-text); border-bottom:1.5px solid var(--orange-text); }
.textlink:hover{ color:var(--orange-hover); border-color:var(--orange-hover); }
:focus-visible{ outline:2px solid var(--orange); outline-offset:3px; }
img{ max-width:100%; display:block; }

h1,h2,h3,h4{ font-family:var(--display); font-weight:400; text-wrap:balance; line-height:1.1; }
h1{ font-size:clamp(2.9rem,6.4vw,5rem); line-height:1.02; letter-spacing:-.01em; max-width:15ch; }
h1 em, h2 em, blockquote em{ font-style:normal; color:var(--orange); }
h2{ font-size:clamp(2.1rem,4.2vw,3.1rem); max-width:22ch; margin-top:10px; }
h3{ font-size:clamp(1.5rem,2.6vw,2rem); margin-bottom:14px; }
p{ max-width:64ch; }
p + p{ margin-top:18px; }
.lede{ font-size:22px; line-height:1.55; max-width:56ch; }
.eyebrow{ font-family:var(--mono); font-size:13px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-2); }
.eyebrow b{ color:var(--orange-text); font-weight:500; }
.eyebrow::before{ display:none; }
.eyebrow.inline::before{ display:none; }
.cite{ font-family:var(--mono); font-size:.86em; letter-spacing:.01em; color:var(--ink); white-space:nowrap; background:var(--panel); padding:1px 6px; border-radius:2px; }
.num{ font-variant-numeric:tabular-nums; }

/* buttons */
.btn{ display:inline-block; background:var(--btn-bg); color:var(--btn-fg); font-family:var(--sans); font-size:14.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:16px 24px; border-radius:2px; border:1px solid var(--btn-bg); transition:background .18s ease,border-color .18s ease,color .18s ease; cursor:pointer; text-align:center; }
.btn:hover{ background:var(--ink); border-color:var(--ink); color:var(--paper); }
.btn.ghost{ background:transparent; color:var(--ink); border-color:var(--ink); }
.btn.ghost:hover{ background:var(--ink); color:var(--paper); }
.btn.on-ink{ background:var(--band-fg); color:var(--band); border-color:var(--band-fg); }
.btn.on-ink:hover{ background:var(--band-accent); border-color:var(--band-accent); color:var(--band); }
.btn.sm{ padding:11px 16px; font-size:12.5px; letter-spacing:.1em; }
.btn .arrow{ font-family:var(--mono); font-weight:500; margin-left:8px; }
.phone{ font-family:var(--sans); font-weight:700; color:var(--orange-text); white-space:nowrap; letter-spacing:.01em; }
.phone:hover{ text-decoration:underline; text-underline-offset:.2em; }

/* Clio Grow launcher: hidden while the body carries chat-delayed / chat-quiet (see chrome.py); the embed's inline display:block loses to !important */
body.chat-delayed iframe[src*="cliogrow"], body.chat-quiet iframe[src*="cliogrow"]{ display:none !important; }

/* header */
header.site{ position:sticky; top:0; z-index:50; background:var(--paper); border-bottom:1px solid var(--rule); }
.nav{ max-width:none; margin:0; padding:14px 24px 14px 0; display:flex; align-items:center; justify-content:space-between; gap:24px; }
/* logo hard left, the menu justified across the middle, phone + button hard right (Sept 5, 2026) */
.logo{ display:flex; align-items:center; color:var(--ink); }
.logo svg{ height:44px; width:auto; display:block; fill:currentColor; }
.nav-links{ flex:1 1 auto; display:flex; align-items:center; justify-content:space-evenly; gap:18px; list-style:none; }
.nav-links > li{ position:relative; }
.nav-links a, .nav-links button.top{ font-family:var(--sans); font-size:15px; font-weight:600; letter-spacing:.02em; color:var(--ink); background:none; border:0; cursor:pointer; padding:6px 0; white-space:nowrap; }
.nav-links button.top::after{ content:"▾"; font-size:11px; margin-left:6px; color:var(--orange); }
.nav-links .menu{ display:none; position:absolute; top:100%; left:-18px; min-width:300px; background:var(--paper); border:1px solid var(--rule); border-top:2px solid var(--orange); padding:12px 0; list-style:none; box-shadow:0 12px 30px rgba(26,43,61,.10); z-index:70; }
.nav-links li.open > .menu, .nav-links li:hover > .menu, .nav-links li:focus-within > .menu{ display:block; }
.nav-links .menu a{ display:block; padding:9px 18px; font-weight:500; font-size:15px; }
.nav-links .menu a:hover{ background:var(--panel); color:var(--orange-text); }
.nav-links .menu a.hub{ font-family:var(--display); font-size:18px; font-weight:400; border-bottom:1px solid var(--rule-2); margin-bottom:6px; padding-bottom:10px; }
.nav-right{ display:flex; align-items:center; gap:22px; }
.nav-right .btn{ padding:11px 16px; font-size:12.5px; white-space:nowrap; }

.menu-toggle{ display:none; background:none; border:1px solid var(--rule); border-radius:2px; padding:8px 12px; font-family:var(--mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; color:var(--ink); }

/* hero — home */
.hero-photo{ position:relative; height:clamp(200px,24vw,300px); overflow:hidden; border-bottom:1px solid var(--rule); }
.hero-photo img{ width:100%; height:100%; object-fit:cover; object-position:center 18%; }
.hero-photo.tall{ height:clamp(260px,33vw,520px); }
.hero-photo.tall img{ object-position:center; }
/* .arch: the whole antler arch stays in frame — the sharp photo is letterboxed over a blurred copy of itself */
.hero-photo.arch{ height:clamp(300px,44vw,680px); background:#000; }
.hero-photo.arch img.fill{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; filter:blur(26px) brightness(.5) saturate(.85); transform:scale(1.12); }
.hero-photo.arch img:not(.fill){ position:relative; object-fit:contain; object-position:center; }
.hero-photo figcaption{ position:absolute; left:0; right:0; bottom:0; padding:10px var(--gutter); font-family:var(--mono); font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:#fff; background:linear-gradient(transparent, rgba(14,22,32,.55)); }
.hero{ padding-top:64px; padding-bottom:20px; }
.hero h1{ font-size:clamp(2.6rem,4.4vw,3.9rem); max-width:16ch; }
.hero-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:64px; align-items:center; }
.hero .lede{ margin:26px 0 34px; }
.hero-cta{ display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.hero-portrait{ margin:0; max-width:420px; justify-self:end; }
.hero-portrait img{ width:100%; height:auto; border:1px solid var(--ink); border-radius:2px; }
.hero-portrait figcaption{ margin-top:10px; font-family:var(--mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-2); }
.letterhead{ margin-top:48px; border-top:1px solid var(--ink); border-bottom:1px solid var(--rule); display:grid; grid-template-columns:repeat(4,1fr); }
.letterhead > div{ padding:20px 24px 24px 22px; border-right:1px solid var(--rule); }
.letterhead > div:first-child{ padding-left:0; }
.letterhead > div:last-child{ border-right:none; }
.k{ font-family:var(--mono); font-size:12px; font-weight:500; letter-spacing:.15em; text-transform:uppercase; color:var(--orange-text); margin-bottom:6px; }
.letterhead .v{ font-family:var(--display); font-size:2rem; line-height:1.1; }
.letterhead .s{ font-size:14.5px; color:var(--ink-2); margin-top:4px; }

/* sections */
section{ padding-top:88px; }
.sec-head{ margin-bottom:28px; }
.sec-head p{ margin-top:16px; }

/* doors */
.doors{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--ink); border-left:1px solid var(--rule); }
.door{ border-right:1px solid var(--rule); border-bottom:1px solid var(--rule); display:flex; flex-direction:column; }
.door figure{ margin:0; height:190px; overflow:hidden; border-bottom:1px solid var(--rule); }
.door figure img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.door:hover figure img{ transform:scale(1.03); }
.door .body{ padding:22px 24px 26px; display:flex; flex-direction:column; gap:12px; flex:1; }
.door h3{ font-size:1.7rem; margin-bottom:0; }
.door p{ font-size:16.5px; }
.door ul{ list-style:none; margin-top:6px; border-top:1px solid var(--rule-2); }
.door li a{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:8px 0; border-bottom:1px solid var(--rule-2); font-family:var(--display); font-size:18px; }
.door li a:hover{ color:var(--orange-text); }
.door li a .arrow{ font-family:var(--mono); font-size:13px; color:var(--orange-text); }
.door .more{ margin-top:auto; padding-top:16px; }

/* band */
.band{ margin-top:88px; background:var(--band); color:var(--band-fg); }
.band-inner{ max-width:var(--max); margin:0 auto; padding:76px var(--gutter) 84px; }
/* pull-quote band — the DenverDivorce treatment, verbatim: no artwork, 100px of air, the quote on two lines */
.band .eyebrow{ color:var(--band-fg); }
.band blockquote{ font-family:var(--display); font-size:clamp(2.4rem,5.4vw,4.4rem); line-height:1.08; margin:22px 0 34px; max-width:16ch; }
.band blockquote em{ font-style:normal; color:var(--band-accent); }
.band p{ color:var(--band-fg); font-size:20px; line-height:1.65; max-width:60ch; }

/* built for */
.fit{ display:grid; grid-template-columns:1fr 1fr; gap:0; border-top:1px solid var(--ink); margin-top:8px; }
.fit > div{ padding:26px 28px 30px 0; border-bottom:1px solid var(--rule); }
.fit > div:first-child{ border-right:1px solid var(--rule); padding-right:36px; }
.fit > div:last-child{ padding-left:36px; }
.fit ul{ list-style:none; margin-top:10px; }
.fit li{ font-family:var(--display); font-size:1.3rem; line-height:1.35; padding:9px 0; border-bottom:1px solid var(--rule-2); }
.fit li:last-child{ border-bottom:none; }

/* about */
.about-grid{ display:grid; grid-template-columns:300px 1fr; gap:56px; align-items:stretch; }
.pcol{ display:flex; flex-direction:column; }
.pcol .sp1{ flex:1 1 0; }
.pcol .sp3{ flex:3 1 0; }
.portrait{ margin:0; }
.portrait img{ width:100%; height:auto; border:1px solid var(--ink); border-radius:2px; }
.portrait figcaption{ margin-top:10px; font-family:var(--mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-2); }
.creds{ list-style:none; margin-top:22px; border-top:1px solid var(--ink); max-width:64ch; }
.creds li{ display:grid; grid-template-columns:170px 1fr; gap:18px; padding:10px 0; border-bottom:1px solid var(--rule-2); font-size:17px; }
.creds li b{ font-family:var(--mono); font-weight:500; font-size:12.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--orange-text); padding-top:4px; }

/* proof */
.quotes{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--ink); border-left:1px solid var(--rule); margin-top:8px; }
.quotes figure{ margin:0; padding:24px 26px 26px; border-right:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.quotes blockquote{ font-family:var(--display); font-size:1.35rem; line-height:1.4; }
.quotes blockquote .oq{ color:var(--orange); }
.quotes figcaption{ margin-top:14px; font-family:var(--mono); font-size:12.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-2); }
.proof-foot{ display:flex; justify-content:space-between; gap:12px 24px; flex-wrap:wrap; align-items:baseline; margin-top:18px; font-size:15px; color:var(--ink-2); }
.proof-foot .rating{ font-family:var(--mono); color:var(--ink); }

/* consult panel */
.cta-panel{ margin-top:56px; padding-top:0; }
.cta-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:start; }
.cta-actions{ display:flex; gap:22px; align-items:center; flex-wrap:wrap; margin-top:30px; }
.ways{ list-style:none; border-top:1px solid var(--ink); }
.ways li{ display:grid; grid-template-columns:150px 1fr; gap:16px; padding:14px 0; border-bottom:1px solid var(--rule-2); font-size:17px; }
.cta-grid > *, .ways li > *{ min-width:0; overflow-wrap:anywhere; }
.ways li b{ font-family:var(--mono); font-weight:500; font-size:12.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--orange-text); padding-top:4px; }

/* articles */
.articles{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:8px; }
.article-card{ border-top:1px solid var(--ink); padding-top:0; }
.article-card figure{ margin:0; aspect-ratio:3/2; overflow:hidden; }
.article-card figure img{ width:100%; height:100%; object-fit:cover; }
.article-card .k{ margin:14px 0 6px; }
.article-card h3{ font-size:1.35rem; line-height:1.3; margin-bottom:8px; }
.article-card p{ font-size:15.5px; color:var(--ink-2); }
.article-card a:hover h3{ color:var(--orange-text); }

/* footer */
footer .foot-name{ font-family:var(--display); font-size:19px; margin:-6px 0 10px; color:var(--ink); }
footer.site{ margin-top:88px; background:var(--panel); border-top:1px solid var(--rule); padding:56px 0 64px; font-size:16px; }
.foot-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:40px; }
footer .k{ color:var(--ink); }
footer p{ margin-bottom:6px; max-width:none; }
.foot-logo svg{ height:40px; width:auto; fill:currentColor; margin-bottom:16px; }
.foot-areas{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px 30px; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); margin:36px 0 28px; padding:30px 0 34px; }
.foot-areas a{ display:block; font-size:14.5px; line-height:1.5; padding:2.5px 0; }
.foot-areas a:hover{ color:var(--orange-text); }
.legal{ font-size:14px; line-height:1.7; color:var(--ink-2); max-width:110ch; }
.legal p + p{ margin-top:10px; }
.legal a{ text-decoration:underline; text-underline-offset:.2em; }

/* start strip (practice pages) */
.breadcrumb{ font-family:var(--mono); font-size:12.5px; letter-spacing:.1em; text-transform:uppercase; margin-top:34px; color:var(--ink-2); }
.breadcrumb a{ color:var(--orange-text); }
.page-hero{ padding-top:36px; }
.page-hero h1{ font-size:clamp(2.6rem,5.6vw,4.4rem); max-width:22ch; margin:16px 0 22px; }
.start{ display:grid; grid-template-columns:1fr 1fr 1fr; border:1px solid var(--ink); border-radius:2px; margin-top:38px; }
.start > div{ padding:18px 22px 20px; border-right:1px solid var(--rule); }
.start > div:last-child{ border-right:none; }
.start .v{ font-family:var(--display); font-size:1.35rem; line-height:1.3; }
.start .v a:hover{ color:var(--orange-text); }
.start .s{ font-size:14px; color:var(--ink-2); margin-top:4px; }
.start .btn{ margin-top:6px; }
.start > div.warn{ box-shadow:inset 0 4px 0 var(--alert); }
.start .warn .k{ color:var(--alert); font-weight:700; }
.start .warn .v{ font-weight:600; color:var(--ink); font-size:1.5rem; }
.start .warn .s{ color:var(--ink); font-weight:600; }
.triad{ display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--ink); border-bottom:1px solid var(--rule); margin-top:8px; }
.triad > div{ padding:26px 28px 30px 0; border-right:1px solid var(--rule); }
.triad > div:last-child{ border-right:none; }
.triad > div + div{ padding-left:28px; }
.triad p{ font-size:17px; }
.article section{ padding-top:72px; }
.article .body p{ font-size:20px; }
.article .body h3{ margin-top:36px; }
.article .body h3:first-child, .article .body .split > div > h3:first-child{ margin-top:0; }
.article ul.plain{ padding-left:22px; max-width:62ch; margin-top:14px; }
.article ul.plain li{ margin-bottom:10px; }
.split{ display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:start; }
.schedule{ border:1px solid var(--ink); border-radius:2px; }
.schedule-title{ font-family:var(--mono); font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; padding:14px 22px 12px; border-bottom:1px solid var(--ink); display:flex; justify-content:space-between; }
.schedule-title span:last-child{ color:var(--orange-text); }
.schedule ul{ list-style:none; }
.schedule li{ display:flex; gap:16px; align-items:baseline; padding:15px 22px; border-bottom:1px solid var(--rule-2); font-family:var(--display); font-size:19px; line-height:1.35; }
.schedule li:last-child{ border-bottom:none; }
.schedule .idx{ font-family:var(--mono); font-size:12.5px; color:var(--orange-text); min-width:26px; }
figure.graphic{ margin:34px 0 0; border:1px solid var(--rule); border-radius:2px; padding:26px 26px 20px; background:var(--paper); }
figure.graphic svg{ width:100%; height:auto; display:block; }
figure.graphic figcaption{ font-family:var(--mono); font-size:12.5px; color:var(--ink-2); margin-top:12px; line-height:1.5; letter-spacing:.02em; }
.faq{ border-top:1px solid var(--ink); margin-top:8px; }
.faq details{ border-bottom:1px solid var(--rule); }
.faq summary{ font-family:var(--display); font-size:1.35rem; line-height:1.35; padding:18px 0; cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:baseline; gap:16px; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; color:var(--orange); font-family:var(--mono); font-size:22px; flex:none; }
.faq details[open] summary::after{ content:"\2013"; }
.faq .a{ padding:0 0 22px; max-width:62ch; font-size:18px; }
.chapter{ display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--ink); border-left:1px solid var(--rule); margin-top:8px; }
.chapter a{ padding:18px 22px; border-right:1px solid var(--rule); border-bottom:1px solid var(--rule); font-family:var(--display); font-size:19px; display:flex; justify-content:space-between; align-items:center; gap:12px; }
.chapter a:hover{ background:var(--panel); }
.chapter a .arrow{ color:var(--orange-text); font-family:var(--mono); font-size:13px; }
.chapter a.current{ color:var(--orange-text); }
.approach{ background:var(--panel); border-radius:3px; padding:34px 36px; margin-top:8px; }
.approach p{ font-size:19px; }
.callbar{ display:none; }

/* chapter directory (national parks) */
.dir{ display:grid; grid-template-columns:1fr 1fr; gap:0 56px; border-top:1px solid var(--ink); margin-top:8px; }
.dir > div{ padding:22px 0 24px; border-bottom:1px solid var(--rule); }
.dir .k{ margin-bottom:6px; }
.dir ul{ list-style:none; }
.dir li a{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; min-width:0; overflow-wrap:anywhere; padding:9px 0; border-bottom:1px solid var(--rule-2); font-family:var(--display); font-size:18.5px; line-height:1.3; }
.dir li:last-child a{ border-bottom:none; }
.dir li a:hover{ color:var(--orange-text); }
.dir li a .arrow{ font-family:var(--mono); font-size:12.5px; color:var(--orange-text); white-space:nowrap; flex:0 0 auto; }
.dir li a .t{ flex:1 1 auto; min-width:0; }
.dir li a.current{ color:var(--orange-text); }
/* courts card + outcomes tables */
.courts{ display:grid; grid-template-columns:1fr; gap:0; border:1px solid var(--ink); border-radius:2px; margin-top:8px; }
.courts > div{ padding:22px 24px 24px; }
.courts > div:first-child{ border-bottom:1px solid var(--rule); }
.courts .name{ font-family:var(--display); font-size:1.4rem; line-height:1.25; margin:4px 0 10px; }
.courts p, .article .body .courts p{ font-size:16px; line-height:1.55; margin:0 0 10px; }
.courts p:last-child{ margin-bottom:0; }
.courts .addr{ font-family:var(--mono); font-size:13px; color:var(--ink-2); line-height:1.6; }
.outcomes{ overflow-x:auto; margin-top:8px; }
.outcomes table{ border-collapse:collapse; width:100%; font-size:16px; }
.article .body .outcomes td{ font-size:16px; line-height:1.5; }
.outcomes th, .outcomes td{ text-align:left; vertical-align:top; padding:12px 14px 12px 0; border-bottom:1px solid var(--rule); }
.outcomes th{ font-family:var(--mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-2); font-weight:500; border-bottom:1px solid var(--ink); }
.outcomes td.r{ font-family:var(--display); font-size:1.05rem; }
.outcomes td.y{ font-family:var(--mono); font-size:13px; color:var(--ink-2); white-space:nowrap; }
.outcomes .note, .article .body .outcomes .note{ font-family:var(--mono); font-size:12.5px; color:var(--ink-2); margin-top:12px; line-height:1.5; letter-spacing:.02em; max-width:none; }

/* reveal */
.reveal{ opacity:1; transform:none; }
.js .reveal{ opacity:0; transform:translateY(12px); transition:opacity .6s ease, transform .6s ease; }
.js .reveal.is-visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .js .reveal{ opacity:1; transform:none; transition:none; } html{ scroll-behavior:auto; } }

/* responsive */
@media (max-width:1000px){
  .hero-grid{ grid-template-columns:1fr; gap:36px; } .hero-portrait{ justify-self:start; max-width:360px; }
  .letterhead{ grid-template-columns:1fr 1fr; } .letterhead > div:nth-child(2){ border-right:none; } .letterhead > div:nth-child(3){ padding-left:0; }
  .doors, .quotes, .chapter, .triad, .articles, .dir{ grid-template-columns:1fr; }
  .triad > div{ border-right:none; border-bottom:1px solid var(--rule); padding:22px 0; } .triad > div + div{ padding-left:0; }
  .about-grid, .cta-grid, .split, .fit{ grid-template-columns:1fr; }
  .fit > div:first-child{ border-right:none; padding-right:0; } .fit > div:last-child{ padding-left:0; }
  .start{ grid-template-columns:1fr; } .start > div{ border-right:none; border-bottom:1px solid var(--rule); } .start > div:last-child{ border-bottom:none; }
  .foot-grid{ grid-template-columns:1fr; gap:28px; } .foot-areas{ grid-template-columns:1fr 1fr; }
}
@media (max-width:1500px){ .nav{ gap:20px; padding:14px 20px 14px 0; } .nav-links{ gap:14px; } .nav-links a, .nav-links button.top{ font-size:14px; } .nav-right{ gap:16px; } .nav-right .btn{ padding:10px 13px; font-size:12px; } .logo svg{ height:40px; } }
@media (max-width:1320px){ .nav-right .phone{ display:none; } }
@media (max-width:1180px){
  .nav{ padding:12px 16px 12px 0; gap:16px; }
  .logo svg{ height:36px; }
  .nav-links{ display:none; position:absolute; top:100%; left:0; right:0; background:var(--paper); border-bottom:1px solid var(--rule); flex-direction:column; align-items:stretch; padding:10px 0 18px; gap:0; box-shadow:0 12px 30px rgba(26,43,61,.10); }
  .nav-links.open{ display:flex; }
  .nav-links > li{ border-bottom:1px solid var(--rule-2); }
  .nav-links > li > a, .nav-links button.top{ display:block; width:100%; text-align:left; padding:14px 22px; font-size:17px; }
  .nav-links .menu{ position:static; display:none; border:0; border-top:1px solid var(--rule-2); box-shadow:none; padding:4px 0 8px; min-width:0; }
  .nav-links li.open > .menu{ display:block; } .nav-links li:hover > .menu{ display:none; } .nav-links li.open:hover > .menu{ display:block; }
  .nav-links .menu a{ padding:10px 22px 10px 40px; }
  .nav-right .btn, .nav-right .phone{ display:none; }
  .menu-toggle{ display:block; }
  .nav-right .phone{ display:inline; }
}
@media (max-width:860px){
  :root{ --rail:48px; --rail-x:12px; --gutter:20px; } body::before{ width:4px; }
  body{ font-size:18px; }
  .hero{ padding-top:40px; }
  section{ padding-top:60px; } .band{ margin-top:60px; } .band-inner{ padding:72px var(--gutter); }
  .cta-panel{ margin-top:36px; } footer.site{ margin-top:60px; }
  .ways li{ grid-template-columns:108px 1fr; gap:12px; font-size:16px; }
  .hero-photo{ height:44vw; min-height:180px; }
  .hero-photo.tall{ height:48vw; }
  .hero-photo.arch{ height:72vw; }
  .nav-right .phone{ display:none; }
  .letterhead{ grid-template-columns:1fr; } .letterhead > div{ border-right:none; border-bottom:1px solid var(--rule); padding-right:0; padding-left:0; } .letterhead > div:last-child{ border-bottom:none; }
  .callbar{ display:grid; grid-template-columns:1fr; position:fixed; left:0; right:112px; bottom:0; z-index:55; background:var(--band); border-top:1px solid var(--band-accent); border-right:1px solid var(--band-accent); }
  .callbar a[data-chat]{ display:none; }
  .callbar a{ display:block; text-align:center; padding:14px 8px; color:var(--band-fg); font-family:var(--sans); font-weight:700; font-size:14px; letter-spacing:.06em; text-transform:uppercase; }
  .callbar a + a{ border-left:1px solid rgba(255,255,255,.15); }
  footer.site{ padding-bottom:110px; }
  .foot-areas{ grid-template-columns:1fr; }
}

/* overflow guards */
.article, .article *{ min-width:0; }
.article p, .article li, .article h1, .article h2, .article h3, .article .a, .article dd, .article td{ overflow-wrap:break-word; }
.article .cite, .article a{ overflow-wrap:anywhere; }
figure.graphic svg, .article svg{ max-width:100%; height:auto; }
.split > *, .triad > *, .schedule, .outcomes{ min-width:0; }

/* graphics: let the diagram scroll sideways on phones instead of shrinking to illegibility */
@media (max-width:860px){ figure.graphic{ overflow-x:auto; -webkit-overflow-scrolling:touch; padding:12px 12px 6px; } figure.graphic svg{ min-width:760px; height:auto; max-width:none; } figure.graphic figcaption{ min-width:0; } }


/* blog: posts, archives, pagination (appended to site.css) */
.post .page-hero h1{ font-size:clamp(2.2rem,4.4vw,3.4rem); max-width:26ch; }
.post .page-hero.nohero{ padding-top:72px; }
.post .breadcrumb{ line-height:1.7; }
.post-body > .reveal{ max-width:64ch; }
.post-body h2{ font-size:clamp(1.7rem,3vw,2.3rem); max-width:30ch; margin-top:52px; margin-bottom:14px; }
.post-body h3{ font-size:clamp(1.35rem,2.2vw,1.7rem); margin-top:40px; margin-bottom:10px; }
.post-body h4{ font-family:var(--sans); font-size:17px; font-weight:700; letter-spacing:.01em; margin-top:28px; margin-bottom:6px; }
.post-body h2:first-child, .post-body h3:first-child{ margin-top:0; }
.post-body h2 + p, .post-body h3 + p, .post-body h4 + p{ margin-top:0; }
.post-body ul, .post-body ol{ padding-left:24px; margin:16px 0 0; max-width:62ch; }
.post-body li{ margin-bottom:10px; font-size:18.5px; line-height:1.6; }
.post-body li ul, .post-body li ol{ margin-top:8px; }
.post-body li p{ font-size:18.5px; }
.post-body p + ul, .post-body p + ol{ margin-top:12px; }
.post-body ul + p, .post-body ol + p, .post-body .outcomes + p, .post-body img + p{ margin-top:22px; }
.post-body a{ color:var(--orange-text); border-bottom:1.5px solid var(--orange); }
.post-body a:hover{ color:var(--orange-hover); border-color:var(--orange-hover); }
.post-body blockquote{ font-family:var(--display); font-size:1.4rem; line-height:1.4; border-left:3px solid var(--orange); padding:4px 0 4px 22px; margin:26px 0; max-width:56ch; }
.post-body img{ margin:26px 0 0; border:1px solid var(--rule); border-radius:2px; height:auto; }
.post-body sup{ font-family:var(--mono); font-size:.7em; line-height:0; color:var(--orange-text); }
.post-body .outcomes{ margin-top:22px; }
.post-body .outcomes th, .post-body .outcomes td{ padding-right:18px; }
.post-body .note, .article .body .note{ font-family:var(--mono); font-size:13px; line-height:1.65; letter-spacing:.01em; color:var(--ink-2); background:var(--panel); border-left:3px solid var(--orange); padding:14px 18px; border-radius:2px; max-width:64ch; margin-top:26px; }
.post-body .note:first-child{ margin-top:0; margin-bottom:30px; }
.post-body .note a{ color:var(--ink); border-bottom-color:var(--ink); }
.byline{ display:grid; grid-template-columns:96px 1fr; gap:24px; align-items:center; border-top:1px solid var(--ink); border-bottom:1px solid var(--rule); padding:26px 0; margin-top:64px; max-width:64ch; }
.byline img{ width:96px; height:96px; object-fit:cover; border:1px solid var(--ink); border-radius:2px; }
.byline .k{ margin-bottom:2px; }
.byline .name{ font-family:var(--display); font-size:1.55rem; line-height:1.2; }
.byline p{ font-size:15.5px; line-height:1.55; color:var(--ink-2); margin-top:6px; max-width:none; }
.byline p a{ color:var(--orange-text); border-bottom:1.5px solid var(--orange); white-space:nowrap; }
.listing .articles{ margin-top:0; }
.listing .sec-head{ margin-bottom:22px; }
.article-card .k{ color:var(--orange-text); }
.pagination{ display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:44px; padding-top:22px; border-top:1px solid var(--rule); }
.pagination .pg{ font-family:var(--mono); font-size:12.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-2); }
.pagination .arrow.pre{ margin:0 8px 0 0; }
.dir li a .arrow{ min-width:2ch; text-align:right; }
@media (max-width:860px){
  .byline{ grid-template-columns:72px 1fr; gap:18px; } .byline img{ width:72px; height:72px; }
  .post-body li{ font-size:17px; }
}


/* About + Contact — appended to site.css by the lead. Uses the existing tokens only. */
.split.bio{ grid-template-columns:320px 1fr; gap:56px; }
.bio figure.portrait{ position:sticky; top:28px; }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px 24px; margin-top:26px; }
.field{ display:flex; flex-direction:column; gap:8px; }
.field.full{ grid-column:1 / -1; }
.field label{ font-family:var(--mono); font-size:12px; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-2); }
.field input, .field textarea{ width:100%; font:inherit; font-size:16px; line-height:1.4; color:var(--ink); background:var(--paper); border:1px solid var(--rule); border-radius:3px; padding:12px 14px; }
.field textarea{ resize:vertical; min-height:140px; }
.field input:focus, .field textarea:focus{ outline:2px solid var(--orange); outline-offset:2px; border-color:var(--orange-text); }
.consent{ display:flex; gap:14px; align-items:flex-start; margin:24px 0 0; max-width:70ch; font-size:15.5px; line-height:1.55; cursor:pointer; color:var(--ink-2); }
.consent input{ width:20px; height:20px; margin-top:3px; accent-color:var(--orange-text); flex:none; }
.consent a{ color:var(--orange-text); border-bottom:1px solid var(--orange); }
.form-privacy{ font-family:var(--mono); font-size:12.5px; letter-spacing:.02em; color:var(--ink-2); margin:22px 0 18px; line-height:1.5; max-width:70ch; }
.form-actions{ display:flex; gap:22px; align-items:center; flex-wrap:wrap; }
fieldset.matter{ border:1px solid var(--rule); border-radius:3px; padding:14px 16px 6px; margin:0; }
fieldset.matter legend{ font-family:var(--mono); font-size:12px; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-2); padding:0 6px; }
.matter-options{ display:flex; flex-direction:column; gap:10px; }
.matter-options label{ display:flex; gap:12px; align-items:flex-start; font-family:var(--sans); font-size:16px; font-weight:400; letter-spacing:0; text-transform:none; color:var(--ink); line-height:1.45; cursor:pointer; }
.matter-options input{ width:20px; height:20px; margin-top:2px; accent-color:var(--orange-text); flex:none; }
button.btn{ font-family:var(--sans); line-height:1.2; }
.contact-ways .btn{ margin-top:22px; }
.contact-ways .ways{ margin-top:18px; }
.map{ margin:8px 0 0; border:1px solid var(--rule); border-radius:2px; overflow:hidden; background:var(--panel); }
.map iframe{ display:block; width:100%; height:400px; border:0; }
.map figcaption{ padding:10px 14px; font-family:var(--mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-2); border-top:1px solid var(--rule); }
@media (max-width:1000px){ .split.bio{ grid-template-columns:1fr; } .bio figure.portrait{ position:static; max-width:360px; } }
@media (max-width:700px){ .form-grid{ grid-template-columns:1fr; } .map iframe{ height:300px; } }


/* ---- Ghost-only additions (the rest is the site stylesheet, verbatim) ---- */
.post-body .kg-card{ margin:26px 0 0; }
.post-body .kg-image-card img, .post-body .kg-gallery-image img{ border:1px solid var(--rule); border-radius:2px; }
.post-body figcaption{ font-family:var(--mono); font-size:12.5px; letter-spacing:.02em; color:var(--ink-2); margin-top:8px; }
.post-body .kg-callout-card{ background:var(--panel); border-left:3px solid var(--orange); border-radius:2px; padding:16px 20px; }
.post-body .kg-callout-card .kg-callout-text{ font-size:18px; }
.post-body .kg-button-card .kg-btn{ display:inline-block; background:var(--btn-bg); color:var(--btn-fg); font-family:var(--sans); font-size:14.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:14px 22px; border-radius:2px; border:0; }
.post-body .kg-bookmark-card a{ border-bottom:0; }
.post-body .kg-bookmark-container{ border:1px solid var(--rule); border-radius:2px; color:var(--ink); }
.post-body .kg-embed-card iframe{ max-width:100%; }
.post-body hr{ border:0; border-top:1px solid var(--rule); margin:34px 0; }
.post-body table{ border-collapse:collapse; width:100%; font-size:16px; margin-top:22px; }
.post-body th, .post-body td{ text-align:left; vertical-align:top; padding:12px 14px 12px 0; border-bottom:1px solid var(--rule); }
.post-body th{ font-family:var(--mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-2); font-weight:500; border-bottom:1px solid var(--ink); }
.post-body h2:first-child, .post-body h3:first-child{ margin-top:0; }
.post-body > p:first-child{ margin-top:0; }
.blog-note{ font-family:var(--mono); font-size:13px; line-height:1.65; letter-spacing:.01em; color:var(--ink-2); background:var(--panel); border-left:3px solid var(--orange); padding:14px 18px; border-radius:2px; max-width:64ch; margin-top:26px; }
.blog-note a{ color:var(--ink); border-bottom:1px solid var(--ink); }
.tag-list{ list-style:none; display:flex; flex-wrap:wrap; gap:10px 14px; margin-top:12px; }
.tag-list a{ font-family:var(--mono); font-size:12.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--orange-text); border:1px solid var(--rule); border-radius:2px; padding:6px 10px; }
.tag-list a:hover{ background:var(--panel); }
.gh-portal-triggerbtn-iframe{ display:none !important; }
/* Ghost editor width options */
.post-body .kg-width-wide{ max-width:none; width:calc(100% + 120px); margin-left:-60px; }
.post-body .kg-width-full{ max-width:none; width:calc(100vw - var(--rail)); margin-left:calc(-1 * (100vw - var(--rail) - 100%) / 2); }
@media (max-width:1000px){ .post-body .kg-width-wide{ width:100%; margin-left:0; } .post-body .kg-width-full{ width:100%; margin-left:0; } }
