/* ============================================================
   paragraphs.eu — refined legal-reference / editorial aesthetic.
   Same brand family as auditchecklists.org / avicert.net (palette,
   Spectral + IBM Plex), but composed as a statute book, not a
   storefront: paper ground, generous measure, the § mark as motif.
   ============================================================ */
:root{
  --cobalt:#1D4ED8; --cobalt-deep:#1E3A8A; --navy:#0B2545;
  --ink:#11151C;            /* near-black body text on paper */
  --paper:#FBFAF7;          /* warm off-white, like a printed page */
  --paper-2:#F3F1EA;        /* slightly deeper panel */
  --rule:#DDD8CC;           /* warm hairline */
  --rule-strong:#C7C1B2;
  --muted:#6B6456;          /* warm grey for secondary text */
  --cta:#EAB308;
  --serif:"Spectral","Source Serif Pro",Georgia,serif;
  --sans:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --measure:680px; --wide:1080px; --radius:3px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--serif);font-size:19px;line-height:1.62;
  font-feature-settings:"kern","liga","onum";-webkit-font-smoothing:antialiased;
  /* faint vertical paper rule down the left, like a ledger */
  background-image:linear-gradient(90deg,transparent 0,transparent calc(50% - 540px),rgba(0,0,0,.015) calc(50% - 540px),rgba(0,0,0,.015) calc(50% - 539px),transparent calc(50% - 539px));
}
a{color:var(--cobalt);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:var(--rule-strong)}
h1,h2,h3,h4{font-family:var(--serif);color:var(--navy);font-weight:600;line-height:1.15;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:2.6rem}
h2{font-size:1.7rem;font-weight:500}
h3{font-size:1.2rem;font-weight:600}
p{margin:0 0 1em}
.container{max-width:var(--wide);margin:0 auto;padding:0 2rem}
.measure{max-width:var(--measure)}
.mono{font-family:var(--mono)}
.eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}

/* ---------- header ---------- */
.site-header{background:var(--paper);border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:20;backdrop-filter:saturate(1.1)}
.site-header .container{display:flex;align-items:center;justify-content:space-between;min-height:84px}
.site-header .logo{display:flex;align-items:center;gap:.85rem;color:var(--navy)}
.site-header .logo:hover{text-decoration:none}
.site-header .logo img{height:64px;width:auto;display:block}
.site-header .logo .wordmark{font-family:var(--serif);font-weight:600;font-size:1.9rem;letter-spacing:-.02em;line-height:1;color:var(--navy)}
.site-header .logo .wordmark .dot{color:var(--cobalt)}
@media(min-width:901px){
  .site-header .logo img{height:120px;margin:-28px 0;margin-left:-8px}
  .site-header .logo .wordmark{font-size:2.3rem}
}
.site-header nav ul{list-style:none;margin:0;padding:0;display:flex;gap:1.9rem}
.site-header nav a{font-family:var(--sans);font-size:.86rem;font-weight:500;letter-spacing:.02em;color:var(--ink);text-transform:uppercase}
.site-header nav a:hover{color:var(--cobalt);text-decoration:none}

/* ---------- breadcrumb ---------- */
.breadcrumb-bar{border-bottom:1px solid var(--rule);background:var(--paper)}
.breadcrumb-bar .container{padding:.65rem 2rem;font-family:var(--mono);font-size:.74rem;letter-spacing:.02em}
.breadcrumb-bar a{color:var(--muted)}
.breadcrumb-bar .sep{color:var(--rule-strong);margin:0 .15rem}
.breadcrumb-bar span:last-child{color:var(--navy)}

/* ---------- hero (hub) ---------- */
.hero{position:relative;padding:5.5rem 0 4rem;border-bottom:1px solid var(--rule);overflow:hidden}
/* giant ghost § watermark, the brand motif as atmosphere */
.hero::before{content:"\00A7";position:absolute;right:-2rem;top:50%;transform:translateY(-50%);
  font-family:var(--serif);font-size:30rem;line-height:1;color:var(--navy);opacity:.04;pointer-events:none}
.hero h1{font-size:3.4rem;max-width:14ch;margin-bottom:.3em}
.hero .lede{font-size:1.3rem;color:var(--muted);max-width:46ch;margin:0}
@media(max-width:680px){.hero h1{font-size:2.4rem}.hero::before{font-size:18rem;opacity:.03}}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:end;position:relative;z-index:2}
.hero-grid h1{margin:0;max-width:none}
.hero-grid .eyebrow{margin-bottom:.9rem}
.hero-grid .lede{font-size:1.2rem;color:var(--muted);max-width:42ch;margin:0;padding-bottom:.35rem}
.hero-grid .lede strong{color:var(--navy);font-weight:600}
@media(max-width:760px){.hero-grid{grid-template-columns:1fr;gap:1.4rem;align-items:start}}

.section-h{font-family:var(--serif);font-size:1.7rem;font-weight:500;color:var(--navy);margin:3rem 0 1.2rem;padding-bottom:.5rem;border-bottom:1px solid var(--rule)}

/* ---------- hub book cards ---------- */
.book-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0;border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden;background:var(--paper)}
.book-card{display:block;padding:1.8rem 1.9rem;color:inherit;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);position:relative;transition:background .15s}
.book-card:hover{background:var(--paper-2);text-decoration:none}
.book-card h3{font-family:var(--serif);font-size:1.35rem;margin:0 0 .3rem}
.book-card .book-cite{font-family:var(--mono);font-size:.74rem;color:var(--muted);margin:0 0 .9rem}
.book-card .book-desc{font-size:.98rem;line-height:1.5;margin:0 0 1rem;color:var(--ink)}
.book-card .book-meta{font-family:var(--mono);font-size:.74rem;letter-spacing:.04em;color:var(--cobalt);margin:0}
.book-card .book-meta::before{content:"\00A7 ";opacity:.6}
.prose{max-width:var(--measure);font-size:1.05rem;color:var(--ink)}

/* ---------- book landing + TOC ---------- */
.book-hero{border-bottom:1px solid var(--rule);padding:3.4rem 0 2.6rem;position:relative}
.book-hero h1{font-size:2.7rem;max-width:18ch}
.book-hero .book-cite{font-family:var(--mono);font-size:.8rem;color:var(--muted);margin:0 0 1rem}
.book-hero .lede{font-size:1.12rem;color:var(--muted);max-width:var(--measure)}
.source-link{font-family:var(--sans);font-size:.85rem;color:var(--muted);margin-top:1.1rem}

.toc{padding:2.5rem 0}
.toc-chapter{margin:0 0 2.4rem;display:grid;grid-template-columns:minmax(0,1fr);gap:0}
.toc-chapter>h3{font-family:var(--serif);font-size:1.3rem;font-weight:600;color:var(--navy);margin:0 0 .9rem;padding-bottom:.45rem;border-bottom:2px solid var(--navy);display:inline-block}
.toc-section{margin:0 0 1.2rem;padding-left:1.1rem;border-left:2px solid var(--rule)}
.toc-section h4{font-family:var(--mono);font-size:.76rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 .5rem;font-weight:500}
.toc ul{list-style:none;margin:0 0 .4rem;padding:0}
.toc li{padding:.28rem 0;font-size:1.04rem;border-bottom:1px dotted var(--rule)}
.toc li:last-child{border-bottom:0}
.toc li a{color:var(--ink)}
.toc li a:hover{color:var(--cobalt)}

/* ---------- leaf (article) ---------- */
.leaf{padding:3rem 0 4.5rem}
.leaf .container{max-width:var(--measure)}
.leaf-kicker{font-family:var(--mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 .5rem}
.leaf h1{font-size:2.2rem;margin:0 0 .2em;letter-spacing:-.015em}
.leaf h1::first-letter{}
.leaf-rule{width:48px;height:3px;background:var(--cobalt);margin:1.3rem 0 1.8rem}
.leaf-body{font-size:1.12rem;line-height:1.72}
.leaf-body p{margin:0 0 1.05rem}
.leaf-body p:first-child{font-size:1.18rem}
/* hanging § before the first paragraph as a drop-marker */
.leaf-body p:first-child::before{content:"\00A7";font-family:var(--serif);color:var(--cobalt);font-size:1.5rem;font-weight:600;margin-right:.4rem;vertical-align:baseline}
.leaf-source{margin:2rem 0 0;padding:1rem 0;border-top:1px solid var(--rule);font-family:var(--sans);font-size:.92rem}
.leaf-nav{display:flex;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin:1.6rem 0 0;font-family:var(--mono);font-size:.82rem;letter-spacing:.02em}
.leaf-nav a{color:var(--ink)}.leaf-nav a:hover{color:var(--cobalt)}
.leaf-nav .up{color:var(--muted)}
.leaf-aside{margin:2.2rem 0 0;padding:1rem 1.2rem;background:var(--paper-2);border-left:3px solid var(--rule-strong);font-family:var(--sans);font-size:.9rem;color:var(--muted)}
.leaf-aside a{color:var(--cobalt-deep)}

/* ---------- prose / about ---------- */
.prose-page{max-width:var(--measure);padding:3rem 0 4.5rem;font-size:1.06rem}
.prose-page h1{font-size:2.4rem;margin-bottom:.6em}
.prose-page h2{font-family:var(--serif);font-size:1.35rem;font-weight:600;margin:2.2rem 0 .5em;color:var(--navy)}

/* ---------- footer ---------- */
.site-footer{border-top:2px solid var(--navy);background:var(--paper-2);margin-top:4rem;padding:2.8rem 0}
.site-footer .container{max-width:var(--wide)}
.footer-blurb{font-family:var(--serif);font-size:.98rem;color:var(--ink);max-width:62ch;margin:0 0 .8rem}
.footer-legal{font-family:var(--sans);font-size:.8rem;color:var(--muted);margin:0}

@media(max-width:680px){
  body{font-size:18px}
  .container{padding:0 1.25rem}
  .site-header .container{min-height:64px}
}


/* ---------- mobile nav (CSS-only hamburger drawer) ---------- */
.nav-toggle{position:absolute;opacity:0;pointer-events:none}
.nav-burger{display:none}                 /* hidden on desktop */
.site-header nav.site-nav .nav-about{display:none}  /* About is footer-only on desktop */

@media(max-width:760px){
  .site-header .container{position:relative;min-height:64px}
  .site-header .logo img{height:48px}
  .site-header .logo .wordmark{font-size:1.5rem}

  /* burger button */
  .nav-burger{display:flex;flex-direction:column;justify-content:center;gap:5px;
    width:44px;height:44px;cursor:pointer;margin-right:-8px}
  .nav-burger span{display:block;height:2px;width:24px;background:var(--navy);
    border-radius:2px;transition:transform .2s ease,opacity .2s ease}

  /* drawer: full-width panel under the header, hidden until toggled */
  .site-header nav.site-nav{position:absolute;top:100%;left:0;right:0;
    background:var(--paper);border-bottom:1px solid var(--rule);
    box-shadow:0 8px 24px rgba(11,37,69,.08);
    max-height:0;overflow:hidden;transition:max-height .25s ease}
  .site-header nav.site-nav ul{flex-direction:column;gap:0;padding:.25rem 0}
  .site-header nav.site-nav li{border-top:1px solid var(--rule)}
  .site-header nav.site-nav li:first-child{border-top:0}
  .site-header nav.site-nav a{display:block;padding:1rem 1.5rem;font-size:.95rem}
  .site-header nav.site-nav .nav-about{display:block}  /* show About in the drawer */

  /* open state */
  .nav-toggle:checked ~ nav.site-nav{max-height:80vh}
  .nav-toggle:checked ~ .nav-burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav-toggle:checked ~ .nav-burger span:nth-child(2){opacity:0}
  .nav-toggle:checked ~ .nav-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
}


/* ---------- leaf see-also / related ---------- */
.leaf-seealso{margin:2.2rem 0 0;padding-top:1.4rem;border-top:1px solid var(--rule)}
.leaf-seealso h2{font-family:var(--serif);font-size:1.15rem;font-weight:600;color:var(--navy);margin:0 0 .8rem}
.leaf-seealso .seealso-label{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:.9rem 0 .3rem}
.leaf-seealso ul{list-style:none;margin:0;padding:0}
.leaf-seealso li{padding:.2rem 0;font-size:.98rem}
