/* ==========================================================================
   Standards Law — a foundational.law practice
   Dark coffee variant of the Foundational design system.
   Family DNA: Bricolage Grotesque + IBM Plex, mono dash-eyebrows, 1.5px
   bordered rounded cards, hairline dividers. Identity: dark espresso base +
   espresso/amber accents + the coffee-cup mark.
   ========================================================================== */

:root{
  /* --- warm-tinted neutrals (bone/paper/ink nudged toward coffee) --- */
  --bone:#17100A;        /* page canvas */
  --paper:#2A1E14;       /* cards / raised surfaces */
  --ink:#F3ECE1;         /* text — warm espresso near-black */
  --ink-800:#CFC2B2;
  --stone:#9C8B79;       /* muted text */
  --sand-400:#6F5F4E;
  --sand-300:#3E2D1E;    /* hairlines / borders */
  --sand-200:#211710;    /* subtle fills */

  /* --- coffee identity accents --- */
  --espresso:#0E0906;    /* deep dark bands */
  --espresso-2:#CFC2B2;
  --coffee:#D9843C;      /* primary action (the .law "pine" slot) */
  --coffee-dk:#F0B183;
  --amber:#E8965A;       /* family amber — matches the logo half */
  --amber-700:#E8965A;   /* accent text on light */
  --amber-300:#F0B183;   /* accent on dark */
  --amber-50:#2A1D10;    /* amber tint fill on light */
  --cream:#F3ECE1;       /* text on dark bands */
  --cream-hl:#7A4A24;    /* highlight underline */
  --gold:#D4A574;

  /* legacy aliases (kept so any stray reference still resolves) */
  --rust:var(--amber-700); --rust-dark:var(--coffee-dk);
  --mocha:var(--coffee); --muted:var(--stone); --rule:var(--sand-300);

  --display:"Bricolage Grotesque","Helvetica Neue",Arial,sans-serif;
  --sans:"IBM Plex Sans",system-ui,-apple-system,Segoe UI,sans-serif;
  --serif:"IBM Plex Serif",Georgia,serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;

  --ease:cubic-bezier(.22,.61,.36,1);
  --r-lg:20px; --r-md:12px; --r-sm:8px; --radius:12px;
  --shadow-sm:0 1px 2px rgba(42,29,20,.06);
  --shadow:0 6px 16px rgba(42,29,20,.08);
  --shadow-lg:0 14px 40px rgba(42,29,20,.14);
  --maxw:1200px;
  --content-maxw:720px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
html,body{ margin:0; padding:0; }
body{
  font-family:var(--sans);
  color:var(--ink);
  background:var(--bone);
  line-height:1.6;
  font-size:1rem;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; height:auto; }
svg{ display:block; }
a{ color:var(--amber-700); text-decoration:none; transition:color .15s var(--ease); }
a:hover{ color:var(--coffee-dk); text-decoration:underline; }
:focus-visible{ outline:2px solid var(--coffee); outline-offset:2px; border-radius:2px; }

.skip-link{ position:absolute; left:-9999px; }
.skip-link:focus{ left:1rem; top:1rem; background:var(--espresso); color:var(--cream); padding:.5rem 1rem; border-radius:var(--r-sm); z-index:1000; }

.container{ max-width:var(--maxw); margin:0 auto; padding:0 24px; }

/* ---- shared type ---- */
h1,h2,h3,h4{ font-family:var(--display); letter-spacing:-.02em; color:var(--ink); }
.eyebrow,.hero-eyebrow,.part-eyebrow{
  font-family:var(--mono); font-size:.6875rem; font-weight:500;
  letter-spacing:.14em; text-transform:uppercase; color:var(--amber-700);
  margin:0 0 16px;
}
.eyebrow::before,.part-eyebrow::before{
  content:""; display:inline-block; width:26px; height:2px;
  background:var(--amber); margin-right:10px; vertical-align:.28em;
}
.hl{ box-shadow:inset 0 -.22em 0 var(--cream-hl); }

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(23,16,10,.9);
  backdrop-filter:saturate(120%) blur(8px);
  border-bottom:1.5px solid var(--sand-300);
}
.header-inner{ display:flex; align-items:center; gap:1.5rem; min-height:72px; padding:.6rem 24px; }
.brand{ display:flex; align-items:center; gap:.75rem; color:var(--ink); }
.brand:hover{ text-decoration:none; }
.brand-mark{ color:var(--amber); display:inline-flex; }
.brand-text{ display:flex; flex-direction:column; line-height:1.15; }
.brand-title{ font-family:var(--display); font-weight:700; font-size:1.2rem; letter-spacing:-.03em; }
.brand-sub{ font-family:var(--mono); font-size:.66rem; color:var(--amber-700); letter-spacing:.11em; text-transform:uppercase; }
.top-nav{ margin-left:auto; display:flex; align-items:center; gap:1.75rem; font-family:var(--sans); font-size:.875rem; font-weight:500; }
.top-nav a{ color:var(--ink-800); }
.top-nav a:hover{ color:var(--amber-700); text-decoration:none; }
.menu-toggle{ display:none; background:none; border:none; color:var(--ink); font-size:1.5rem; cursor:pointer; }

/* ---------- Layout: sidebar + content ---------- */
.layout{ max-width:var(--maxw); margin:0 auto; padding:0 24px; display:grid; grid-template-columns:280px 1fr; gap:3rem; align-items:start; }
.page-home .layout, .page-contents .layout{ grid-template-columns:1fr; gap:0; padding:0; max-width:none; }
.page-home .sidebar, .page-contents .sidebar{ display:none; }

.sidebar{ position:sticky; top:88px; max-height:calc(100vh - 88px); overflow-y:auto; padding:2rem 0; font-family:var(--sans); font-size:.9rem; }
.sidebar::-webkit-scrollbar{ width:6px; }
.sidebar::-webkit-scrollbar-thumb{ background:var(--sand-300); border-radius:3px; }
.sidebar-title{ font-family:var(--mono); font-size:.6875rem; letter-spacing:.14em; text-transform:uppercase; color:var(--stone); margin:0 0 1rem; font-weight:500; }
.nav-section{ margin-bottom:1.5rem; }
.nav-section h3{ font-family:var(--mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--amber-700); margin:0 0 .5rem; font-weight:500; }
.nav-section ul{ list-style:none; padding:0; margin:0; }
.nav-section a{
  display:block; padding:.4rem .6rem; color:var(--ink-800);
  border-radius:var(--r-sm); border-left:2px solid transparent;
  font-size:.88rem; line-height:1.4;
}
.nav-section a:hover{ background:var(--sand-200); color:var(--ink); text-decoration:none; }
.nav-section a.active{ background:var(--amber-50); color:var(--coffee-dk); border-left-color:var(--amber); font-weight:600; }
.nav-section .chnum{ display:inline-block; min-width:1.5em; color:var(--stone); font-variant-numeric:tabular-nums; }

/* ---------- Buttons ---------- */
.btn{ display:inline-block; font-family:var(--sans); font-weight:600; font-size:.95rem; padding:13px 26px; border-radius:var(--r-lg); border:1.5px solid transparent; transition:background .14s var(--ease),border-color .14s var(--ease),transform .14s var(--ease),box-shadow .14s var(--ease); cursor:pointer; }
.btn:hover{ text-decoration:none; }
.btn-primary{ background:var(--coffee); color:var(--bone); border-color:var(--coffee); }
.btn-primary:hover{ background:var(--coffee-dk); border-color:var(--coffee-dk); color:var(--bone); }
.btn-outline{ background:transparent; color:var(--ink); border-color:var(--sand-300); }
.btn-outline:hover{ border-color:var(--ink); background:transparent; color:var(--ink); }
.btn-ghost{ background:transparent; color:var(--ink); border-color:var(--sand-300); }
.btn-ghost:hover{ border-color:var(--coffee); color:var(--coffee-dk); }
/* ghost buttons that sit on dark bands */
.contact .btn-ghost, .hero-book .btn-ghost{ color:var(--cream); border-color:rgba(240,220,190,.4); }
.contact .btn-ghost:hover, .hero-book .btn-ghost:hover{ border-color:var(--amber-300); color:var(--amber-300); }

/* ---------- Chapter / prose ---------- */
.content{ padding:2.5rem 0 4rem; min-width:0; }
.chapter{ max-width:var(--content-maxw); }
.chapter-head{ margin-bottom:2.5rem; padding-bottom:1.5rem; border-bottom:1.5px solid var(--sand-300); }
.chapter-number{ font-family:var(--mono); font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:var(--amber-700); margin:0 0 .5rem; }
.chapter-head h1{ font-family:var(--display); font-size:clamp(2rem,4vw,2.7rem); line-height:1.08; margin:0; font-weight:800; letter-spacing:-.02em; }

.prose{ font-family:var(--serif); font-size:1.0625rem; line-height:1.75; }
.prose h1,.prose h2,.prose h3,.prose h4{ font-family:var(--display); color:var(--ink); font-weight:700; line-height:1.2; margin-top:2em; margin-bottom:.55em; letter-spacing:-.02em; }
.prose h1{ font-size:1.9rem; font-weight:800; }
.prose h2{ font-size:1.5rem; border-bottom:1.5px solid var(--sand-300); padding-bottom:.3em; }
.prose h3{ font-size:1.2rem; }
.prose h4{ font-size:1.05rem; color:var(--espresso-2); }
.prose p{ margin:0 0 1.1em; }
.prose ul,.prose ol{ margin:0 0 1.2em 1.3em; padding:0; }
.prose li{ margin-bottom:.4em; }
.prose li::marker{ color:var(--amber); }
.prose hr{ border:0; border-top:1.5px solid var(--sand-300); margin:2.5em 0; }
.prose blockquote{
  border-left:3px solid var(--coffee); padding:.4em 1.2em; margin:1.5em 0;
  color:var(--espresso-2); font-style:italic; background:var(--sand-200);
  border-radius:0 var(--r-md) var(--r-md) 0;
}
.prose strong{ color:var(--ink); font-weight:600; }
.prose em{ color:var(--espresso-2); }
.prose code{ background:var(--sand-200); padding:1px 6px; border-radius:4px; font-size:.9em; font-family:var(--mono); color:var(--coffee-dk); }
.prose pre{ background:var(--espresso); color:var(--cream); padding:1rem 1.2rem; border-radius:var(--r-md); overflow-x:auto; font-size:.9em; font-family:var(--mono); }
.prose pre code{ background:transparent; color:inherit; padding:0; }
.prose table{ width:100%; border-collapse:collapse; margin:1.5em 0; font-size:.94em; }
.prose th,.prose td{ text-align:left; padding:.6em .8em; border-bottom:1.5px solid var(--sand-300); }
.prose th{ background:var(--sand-200); font-family:var(--sans); font-weight:600; color:var(--ink); }
.prose a{ text-decoration:underline; text-underline-offset:2px; text-decoration-color:rgba(167,95,30,.35); }
.prose a:hover{ text-decoration-color:var(--amber-700); }

/* Task lists */
.prose ul:has(input[type="checkbox"]){ list-style:none; padding-left:.25rem; margin-left:0; }
.prose li:has(> input[type="checkbox"]){ list-style:none; padding-left:0; margin-bottom:.55em; display:flex; align-items:flex-start; gap:.7rem; line-height:1.55; }
.prose li > input[type="checkbox"]{ appearance:none; -webkit-appearance:none; width:1.1em; height:1.1em; flex:0 0 auto; margin:.28em 0 0; border:1.5px solid var(--coffee); border-radius:4px; background:var(--paper); cursor:pointer; transition:all .12s; position:relative; }
.prose li > input[type="checkbox"]:hover{ border-color:var(--amber); }
.prose li > input[type="checkbox"]:checked{ background:var(--coffee); border-color:var(--coffee); }
.prose li > input[type="checkbox"]:checked::after{ content:''; position:absolute; left:30%; top:8%; width:30%; height:60%; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg); }

/* Practice Tips callout */
.practice-tips{ margin:3rem 0 1rem; padding:1.6rem 1.8rem; background:var(--amber-50); border:1.5px solid var(--sand-300); border-left:3px solid var(--coffee); border-radius:var(--r-lg); box-shadow:var(--shadow-sm); }
.practice-tips h2{ font-family:var(--display); font-size:1.2rem; margin:0 0 .9rem; color:var(--ink); border:0; padding:0; letter-spacing:-.01em; font-weight:700; }
.practice-tips ol,.practice-tips ul{ margin:0 0 0 1.3rem; padding:0; }
.practice-tips li{ margin-bottom:.55em; font-size:.98rem; line-height:1.55; color:var(--espresso-2); font-family:var(--serif); }
.practice-tips li::marker{ color:var(--amber); font-weight:700; }
.practice-tips p{ margin:0; font-style:italic; color:var(--stone); }

/* Pager */
.pager{ margin-top:4rem; padding-top:2rem; border-top:1.5px solid var(--sand-300); display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.pager a{ display:flex; flex-direction:column; padding:1.1rem 1.3rem; border:1.5px solid var(--sand-300); border-radius:var(--r-lg); background:var(--paper); font-family:var(--sans); transition:border-color .15s,transform .15s,box-shadow .15s; }
.pager a:hover{ border-color:var(--coffee); transform:translateY(-2px); box-shadow:var(--shadow); text-decoration:none; }
.pager a span{ font-family:var(--mono); font-size:.7rem; color:var(--stone); letter-spacing:.1em; text-transform:uppercase; margin-bottom:.35rem; }
.pager a strong{ color:var(--ink); font-weight:700; font-family:var(--display); font-size:1.02rem; letter-spacing:-.01em; }
.pager-next{ text-align:right; }

/* ==========================================================================
   Home / firm / book landing
   ========================================================================== */
.page-home .content, .page-contents .content{ padding:0; max-width:none; }

/* ---- Hero (light, warm, family vertical-line pattern) ---- */
.hero{
  position:relative; overflow:hidden;
  background:var(--bone);
  background-image:repeating-linear-gradient(90deg,transparent 0 86px,rgba(232,150,90,.05) 86px 88px);
  color:var(--ink);
  padding:6rem 24px 4.5rem;
  border-bottom:1.5px solid var(--sand-300);
}
.hero-inner{ max-width:860px; margin:0 auto; position:relative; z-index:2; }
.hero-eyebrow{ margin:0 0 1rem; }
.hero-title{ font-family:var(--display); font-size:clamp(2.6rem,6vw,4.25rem); margin:0; line-height:1.03; font-weight:800; letter-spacing:-.02em; color:var(--ink); }
.hero-subtitle{ font-family:var(--serif); font-size:clamp(1.1rem,2.2vw,1.45rem); margin:1rem 0 1.4rem; color:var(--amber-700); font-weight:400; }
.hero-lede{ max-width:64ch; margin:0 0 2rem; font-family:var(--serif); font-size:1.125rem; color:var(--ink-800); line-height:1.7; }
.hero-ctas{ display:flex; gap:1rem; flex-wrap:wrap; }

/* faint coffee-ring / cup art, tinted warm */
.hero-art{ position:absolute; inset:0; pointer-events:none; opacity:.5; z-index:1; }
.coffee-ring{ position:absolute; border:2px solid var(--amber); border-radius:50%; top:12%; right:-4%; width:320px; height:320px; opacity:.14; }
.coffee-ring.ring-2{ width:170px; height:170px; top:auto; bottom:-6%; left:4%; right:auto; border-color:var(--coffee); opacity:.12; }
.hero-cup{ position:absolute; right:8%; bottom:14%; color:var(--amber); transform:scale(3); opacity:.12; }

/* Firm hero tightened + aligned two-column (practice | book) */
.page-firm .hero{ padding:3.5rem 0 3rem; }
.page-firm .hero-inner{ max-width:1180px; margin:0 auto; padding:0 24px; display:grid; grid-template-columns:1.5fr 1fr; gap:3.5rem; align-items:center; }
.page-firm .hero-title{ font-size:clamp(2.2rem,4.4vw,3.4rem); }
.page-firm .hero-subtitle{ margin:.6rem 0 1rem; }
.page-firm .hero-lede{ margin:0 0 1.5rem; max-width:none; }
.firm-hero-main{ min-width:0; }

/* Book carve-out under the firm hero */
.hero-book{ display:block; margin:2.2rem 0 0; padding:1.7rem 0 0; border-top:1.5px solid var(--sand-300); max-width:640px; }
.hero-book .hero-eyebrow{ margin-bottom:.4rem; }
.hero-book-name{ font-family:var(--display); font-size:clamp(1.6rem,3vw,2.1rem); font-weight:800; color:var(--ink); letter-spacing:-.02em; margin:.1rem 0 .35rem; line-height:1.1; }
.hero-book-tag{ font-family:var(--serif); font-size:1.05rem; color:var(--ink-800); margin:0 0 .8rem; }
.hero-book-link{ color:var(--amber-700); font-family:var(--sans); font-weight:600; font-size:.95rem; }
.hero-book-link:hover{ color:var(--coffee-dk); text-decoration:underline; }

/* Firm hero: book as a horizontal card (text left, cover right) */
.page-firm .hero-book{ display:flex; align-items:center; gap:1.5rem; margin:0; padding:1.6rem 1.7rem; border:1.5px solid var(--sand-300); border-radius:var(--r-lg); background:var(--paper); box-shadow:var(--shadow-sm); max-width:none; align-self:center; position:relative; overflow:hidden; }
.page-firm .hero-book::before{ content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--coffee),var(--amber)); }
.hero-book-text{ flex:1 1 auto; min-width:0; }
.hero-book-cover{ flex:0 0 auto; display:block; margin:0; transition:transform .18s var(--ease); }
.hero-book-cover:hover{ transform:translateY(-3px); }
.hero-book-cover img{ width:104px; height:auto; display:block; border-radius:var(--r-sm); border:1.5px solid var(--sand-300); box-shadow:var(--shadow); }
.page-firm .hero-book .hero-eyebrow{ margin-bottom:.4rem; }
.page-firm .hero-book-name{ font-size:1.4rem; margin:.1rem 0 .3rem; }
.page-firm .hero-book-tag{ font-size:.98rem; margin:0 0 .7rem; }

/* ---- Section headings shared ---- */
.section-title{ font-family:var(--display); font-size:clamp(1.75rem,3vw,2.25rem); margin:0 0 .5rem; color:var(--ink); font-weight:700; letter-spacing:-.02em; }
.section-lede{ color:var(--stone); max-width:64ch; margin:0 0 3rem; font-family:var(--serif); font-size:1.05rem; line-height:1.7; }

/* ---- Blurb band (book landing) ---- */
.blurb{ background:var(--paper); padding:4.5rem 24px; border-top:1.5px solid var(--sand-300); border-bottom:1.5px solid var(--sand-300); }
.blurb-inner{ max-width:680px; margin:0 auto; font-family:var(--serif); font-size:1.08rem; color:var(--ink-800); line-height:1.75; }
.blurb-heading{ font-family:var(--display); font-size:clamp(1.6rem,2.6vw,2rem); text-align:left; margin:0 0 1.6rem; color:var(--ink); font-weight:700; letter-spacing:-.02em; border:0; padding:0; }
.blurb-inner p:first-of-type{ font-size:1.15rem; }

/* ---- Services (firm) ---- */
.services{ max-width:1180px; margin:0 auto; padding:5rem 24px; }
.services-head{ margin-bottom:3rem; max-width:760px; }
.service-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.service-card{
  background:var(--paper); border:1.5px solid var(--sand-300); border-radius:var(--r-lg);
  padding:1.6rem 1.5rem; position:relative; overflow:hidden;
  box-shadow:var(--shadow-sm);
  transition:transform .18s var(--ease),box-shadow .18s var(--ease),border-color .18s var(--ease);
  display:flex; flex-direction:column;
}
.service-card::before{ content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--coffee),var(--amber)); }
.service-card:hover{ transform:translateY(-3px); box-shadow:var(--shadow); border-color:var(--coffee); }
.service-card h3{ font-family:var(--display); font-size:1.1rem; margin:.4rem 0 .5rem; color:var(--ink); font-weight:700; line-height:1.25; letter-spacing:-.01em; }
.service-card p{ margin:0; font-size:.9rem; color:var(--ink-800); line-height:1.55; }

/* ---- Parts grid (home/contents book cards) ---- */
.parts-grid{ padding:5rem 24px; max-width:1180px; margin:0 auto; }
.parts{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1.5rem; }
.part-card{
  background:var(--paper); border:1.5px solid var(--sand-300); border-radius:var(--r-lg);
  padding:1.8rem 1.6rem; box-shadow:var(--shadow-sm);
  transition:transform .18s var(--ease),box-shadow .18s var(--ease); position:relative; overflow:hidden;
}
.part-card::before{ content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--coffee),var(--amber)); }
.part-card:hover{ transform:translateY(-3px); box-shadow:var(--shadow); }
.part-eyebrow{ margin:0 0 .5rem; }
.part-card h3{ font-family:var(--display); font-size:1.2rem; margin:0 0 1.1rem; color:var(--ink); line-height:1.25; font-weight:700; letter-spacing:-.01em; }
.part-chapters{ list-style:none; padding:0; margin:0; }
.part-chapters a{ display:flex; gap:.8rem; padding:.55rem 0; border-bottom:1px solid var(--sand-200); color:var(--ink-800); font-family:var(--sans); font-size:.9rem; line-height:1.35; align-items:baseline; }
.part-chapters li:last-child a{ border-bottom:0; }
.part-chapters a:hover{ color:var(--amber-700); text-decoration:none; }
.part-chapters .n{ color:var(--amber-700); font-weight:600; font-variant-numeric:tabular-nums; min-width:1.4em; }
.part-card-appendix .part-chapters .n{ font-style:italic; }

.extras{ margin-top:2.5rem; display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1rem; }
.extra-link{ display:flex; flex-direction:column; padding:1.2rem 1.4rem; background:var(--sand-200); border:1.5px solid var(--sand-300); border-radius:var(--r-lg); color:var(--ink); transition:all .16s var(--ease); }
.extra-link:hover{ background:var(--espresso); color:var(--cream); border-color:var(--espresso); transform:translateY(-2px); text-decoration:none; }
.extra-link strong{ font-family:var(--display); font-size:1.05rem; margin-bottom:.2rem; font-weight:700; }
.extra-link span{ font-family:var(--mono); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; opacity:.8; }

/* ---- Pull quote (dark espresso band) ---- */
.pull-quote{ background:var(--espresso); color:var(--cream); padding:4.5rem 24px; background-image:repeating-linear-gradient(90deg,transparent 0 86px,rgba(251,246,238,.03) 86px 88px); }
.pull-quote blockquote{ max-width:820px; margin:0 auto; font-family:var(--display); font-size:clamp(1.4rem,2.6vw,1.9rem); line-height:1.3; font-style:normal; font-weight:700; letter-spacing:-.02em; text-align:left; border:0; padding:0; background:none; }
.pull-quote cite{ display:block; font-family:var(--mono); font-size:.8rem; color:var(--amber-300); font-style:normal; letter-spacing:.12em; margin-top:1.5rem; text-transform:uppercase; }

/* ---- Book promo band (firm) ---- */
.book-promo{ background:var(--sand-200); padding:5rem 24px; border-top:1.5px solid var(--sand-300); border-bottom:1.5px solid var(--sand-300); }
.book-promo-inner{ max-width:940px; margin:0 auto; display:grid; grid-template-columns:220px 1fr; gap:3rem; align-items:center; }
.book-cover{ display:block; transition:transform .18s var(--ease); }
.book-cover:hover{ transform:translateY(-3px); }
.book-cover img{ width:100%; border-radius:var(--r-sm); box-shadow:var(--shadow-lg); border:1.5px solid var(--sand-300); display:block; }
.book-promo-text .part-eyebrow{ margin-bottom:.5rem; }
.book-promo-text h2{ font-family:var(--display); font-size:clamp(1.7rem,2.6vw,2rem); color:var(--ink); margin:.1rem 0 .8rem; font-weight:800; letter-spacing:-.02em; }
.book-promo-text p{ font-family:var(--serif); font-size:1.08rem; color:var(--ink-800); margin:0 0 1.6rem; line-height:1.65; }

/* ---- About the practice (firm) ---- */
.firm-about{ background:var(--paper); border-top:1.5px solid var(--sand-300); border-bottom:1.5px solid var(--sand-300); padding:5rem 24px; }
.firm-about-inner{ max-width:720px; margin:0 auto; }
.firm-about h2{ font-family:var(--display); font-size:clamp(1.6rem,2.6vw,2rem); color:var(--ink); margin:0 0 1.2rem; font-weight:700; letter-spacing:-.02em; }
.firm-about p{ font-family:var(--serif); font-size:1.1rem; color:var(--ink-800); margin:0 0 1.8rem; line-height:1.7; }

/* ---- Contact (dark espresso band) ---- */
.contact{ background:var(--espresso); color:var(--cream); padding:5rem 24px; background-image:repeating-linear-gradient(90deg,transparent 0 86px,rgba(251,246,238,.03) 86px 88px); }
.contact-inner{ max-width:640px; margin:0 auto; }
.contact h2{ font-family:var(--display); font-size:clamp(1.9rem,3vw,2.4rem); margin:0 0 1rem; color:#fff; font-weight:800; letter-spacing:-.02em; }
.contact p{ font-family:var(--serif); font-size:1.1rem; color:rgba(251,246,238,.85); margin:0 0 2rem; line-height:1.7; }

/* ---- Contents (TOC) page ---- */
.toc-full{ max-width:760px; }
.toc-part{ margin-bottom:2.5rem; }
.toc-part h2{ font-family:var(--display); font-size:1.35rem; color:var(--ink); margin:0 0 .8rem; padding-bottom:.4rem; border-bottom:2px solid var(--coffee); display:flex; align-items:baseline; gap:.8rem; font-weight:700; letter-spacing:-.01em; }
.toc-part-num{ font-family:var(--mono); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--amber-700); font-weight:500; }
.toc-part ol{ list-style:none; padding:0; margin:0; }
.toc-part a{ display:flex; gap:1rem; padding:.7rem .5rem; border-bottom:1px solid var(--sand-200); color:var(--ink-800); border-radius:var(--r-sm); font-family:var(--serif); font-size:1.02rem; }
.toc-part a:hover{ background:var(--sand-200); color:var(--amber-700); text-decoration:none; }
.toc-part .n{ color:var(--amber-700); font-weight:600; min-width:1.6em; font-variant-numeric:tabular-nums; }
.toc-part .t{ flex:1; }

/* ---- About page ---- */
.about-author .prose p{ font-size:1.1rem; }
.author-links{ margin-top:2rem; padding-top:1.5rem; border-top:1.5px solid var(--sand-300); }
.author-links .btn{ display:inline-flex; align-items:center; }

/* ---------- Footer ---------- */
.site-footer{ background:var(--bone); border-top:1.5px solid var(--sand-300); color:var(--stone); padding:2.75rem 0; margin-top:4rem; }
.footer-inner{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; font-family:var(--sans); font-size:.85rem; }
.footer-inner p{ margin:0; }
.footer-inner a{ color:var(--amber-700); }
.footer-links{ margin:0; }
.footer-links a{ display:inline-flex; align-items:center; gap:.45rem; color:var(--amber-700); font-family:var(--sans); font-size:.85rem; padding:.4rem .85rem; border:1.5px solid var(--sand-300); border-radius:var(--r-lg); transition:all .15s; }
.footer-links a:hover{ background:var(--espresso); color:var(--cream); border-color:var(--espresso); text-decoration:none; }

/* ---- inline foundational links + coming-soon badge ---- */
.flink{ color:var(--amber-700); text-decoration:underline; text-underline-offset:2px; }
.flink:hover{ color:var(--coffee-dk); }
.soon{ display:inline-block; vertical-align:middle; font-family:var(--mono); font-size:.7rem; font-weight:500; letter-spacing:.08em; text-transform:uppercase; color:var(--amber-700); border:1.5px solid var(--sand-300); border-radius:999px; padding:.25rem .7rem; margin-left:.6rem; }

/* ---- header nav extras ---- */
.top-nav .top-nav-linkedin{ display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50%; background:var(--amber-50); color:var(--amber-700); margin-left:.25rem; transition:background .15s,color .15s; }
.top-nav .top-nav-linkedin:hover{ background:var(--amber); color:#fff; }
.visually-hidden{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* ---- cover page ---- */
.covers-page .cover-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:3rem; margin:2.5rem 0 2rem; align-items:start; }
.covers-page .cover-figure{ margin:0; text-align:center; }
.covers-page .cover-figure img{ width:100%; max-width:460px; height:auto; border-radius:var(--r-sm); box-shadow:var(--shadow-lg); border:1.5px solid var(--sand-300); background:var(--espresso); display:block; margin:0 auto; }
.covers-page .cover-figure figcaption{ font-family:var(--mono); font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; color:var(--stone); margin-top:1rem; }
.covers-page .cover-downloads{ display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; margin-top:1.5rem; }
.covers-page .cover-spec{ margin-top:1.5rem; font-family:var(--serif); font-size:.95rem; color:var(--stone); font-style:italic; text-align:center; max-width:720px; margin-left:auto; margin-right:auto; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media(max-width:960px){
  .layout{ grid-template-columns:1fr; gap:0; }
  .sidebar{ position:fixed; top:72px; left:0; right:0; bottom:0; background:var(--paper); padding:1.5rem; z-index:40; max-height:none; transform:translateX(-100%); transition:transform .2s; border-right:1.5px solid var(--sand-300); width:85%; max-width:340px; box-shadow:var(--shadow-lg); }
  body.nav-open .sidebar{ transform:translateX(0); }
  .menu-toggle{ display:block; }
  .content{ padding:2rem 0 3rem; }
  .service-grid{ grid-template-columns:repeat(2,1fr); }
  .book-promo-inner{ grid-template-columns:1fr; gap:1.8rem; }
  .book-cover{ max-width:200px; }
  .pager{ grid-template-columns:1fr; }
  .pager-next{ text-align:left; }
  .header-inner{ flex-wrap:wrap; }
  .top-nav{ order:3; width:100%; margin:.5rem 0 0; gap:1rem 1.25rem; flex-wrap:wrap; justify-content:flex-start; }
  .page-home .menu-toggle, .page-book .menu-toggle, .page-contents .menu-toggle{ display:none; }
}
@media(max-width:860px){
  .page-firm .hero-inner{ grid-template-columns:1fr; gap:2rem; }
  .page-firm .hero-book{ max-width:420px; }
}
@media(max-width:600px){
  .service-grid{ grid-template-columns:1fr; }
}
@media(max-width:520px){
  .brand-sub{ display:none; }
  .brand-title{ font-size:1.05rem; }
  .hero{ padding:3.5rem 24px; }
  .page-firm .hero-book{ flex-direction:column; align-items:flex-start; }
  .page-firm .hero-book .hero-book-cover{ order:-1; }
}
@media(prefers-reduced-motion:reduce){ *{ animation:none!important; transition:none!important; } }
