/* ============================================================
   Top Law Blog - editorial family-law resource (v2, rebuilt)
   Goals over v1: real depth (white cards on neutral ground),
   a hero with a focal point, dark bands for rhythm, bolder
   state cards, refined hierarchy. Keeps the claret brand.
   ============================================================ */

:root{
  --bg:      #F4F3ED;   /* cleaner warm-neutral ground  */
  --bg-2:    #ECEAE1;   /* deeper panel                 */
  --card:    #FFFFFF;   /* cards pop off the ground     */
  --ink:     #18171C;   /* near-black                   */
  --ink-2:   #3A3942;
  --ink-3:   #595862;
  --claret:  #8C2F39;   /* brand accent                 */
  --claret-d:#6E232C;
  --claret-deep:#4C161D;/* dark band                    */
  --gold:    #B6842B;   /* secondary accent (sparing)   */
  --muted:   #75727F;
  --line:    #E2DFD4;
  --line-2:  #EBE8DF;
  --on-dark: #F3F1EA;
  --on-dark-mut: rgba(243,241,234,.70);
  --rose:    #E7B3B8;   /* light accent on dark         */

  --serif: 'Source Serif 4', Georgia, 'Times New Roman', serif;
  --sans: 'Public Sans', system-ui, -apple-system, sans-serif;
  --mono: 'IBM Plex Mono', ui-monospace, monospace;

  --maxw: 1200px;
  --readw: 49rem;
  --gut: clamp(18px, 4vw, 56px);
  --r: 10px;
  --r-sm: 7px;
  --sh: 0 1px 2px rgba(24,23,28,.04), 0 14px 30px -22px rgba(24,23,28,.30);
  --sh-lg: 0 30px 60px -34px rgba(24,23,28,.42);
}

*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
@media(prefers-reduced-motion:no-preference){ html{ scroll-behavior:smooth; } }
body{ margin:0; background:var(--bg); color:var(--ink-2);
  font-family:var(--serif); font-size:18px; line-height:1.66;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
img{ max-width:100%; display:block; }
a{ color:var(--claret-d); }
.wrap{ max-width:var(--maxw); margin:0 auto; padding-inline:var(--gut); }
:focus-visible{ outline:3px solid var(--claret); outline-offset:3px; }
.skip{ position:absolute; left:-999px; }
.skip:focus{ left:12px; top:12px; background:var(--ink); color:#fff; padding:.6rem 1rem; border-radius:var(--r-sm); z-index:200; }

h1,h2,h3,h4{ font-family:var(--serif); color:var(--ink); font-weight:600; line-height:1.14; letter-spacing:-.012em; margin:0; }

/* mono labels */
.kick{ font-family:var(--mono); font-weight:500; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--claret-d); }
.kick.muted{ color:var(--muted); }
.meta{ font-family:var(--mono); font-size:.73rem; letter-spacing:.04em; color:var(--muted); text-transform:uppercase; }
.label{ display:inline-flex; align-items:center; gap:.4rem; font-family:var(--mono); font-weight:500; font-size:.66rem; letter-spacing:.09em; text-transform:uppercase;
  color:var(--ink); background:var(--bg-2); border:1px solid var(--line); border-radius:4px; padding:.3rem .56rem; }
.label.claret{ color:#fff; background:var(--claret); border-color:var(--claret); }
.label.gold{ color:#3c2c08; background:#EBD9A8; border-color:#E3CD93; }

/* buttons */
.btn{ display:inline-flex; align-items:center; gap:.5rem; font-family:var(--sans); font-weight:600; font-size:.95rem;
  padding:.78rem 1.4rem; border:1.5px solid transparent; border-radius:var(--r-sm); text-decoration:none; cursor:pointer; transition:background .18s,color .18s,border-color .18s,transform .18s; }
.btn-ink{ background:var(--ink); color:var(--on-dark); }
.btn-ink:hover{ background:var(--claret); transform:translateY(-1px); }
.btn-claret{ background:var(--claret); color:#fff; }
.btn-claret:hover{ background:var(--claret-d); transform:translateY(-1px); }
.btn-line{ border-color:var(--ink); color:var(--ink); background:transparent; }
.btn-line:hover{ background:var(--ink); color:var(--on-dark); transform:translateY(-1px); }
.btn-ghost-light{ border-color:rgba(243,241,234,.4); color:#fff; }
.btn-ghost-light:hover{ background:#fff; color:var(--ink); }

/* ================= MASTHEAD ================= */
.masthead{ background:var(--bg); border-bottom:1px solid var(--line); }
.masthead .accent{ height:4px; background:linear-gradient(90deg,var(--claret),var(--claret-deep)); }
.masthead .top{ display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-block:.45rem; }
.masthead .top .dateline{ font-family:var(--mono); font-size:.68rem; letter-spacing:.07em; text-transform:uppercase; color:var(--muted); }
.masthead .brandrow{ display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-block:.9rem 1rem; }
.brand{ text-decoration:none; color:var(--ink); display:flex; align-items:baseline; gap:.7rem; }
.brand .nm{ font-family:var(--serif); font-weight:700; font-size:clamp(1.55rem,2.7vw,2.1rem); letter-spacing:-.025em; }
.brand .nm b{ color:var(--claret); font-weight:700; }
.brand .tag{ font-family:var(--mono); font-size:.66rem; letter-spacing:.04em; color:var(--muted); text-transform:uppercase; display:none; }
@media(min-width:980px){ .brand .tag{ display:inline; } }
.navrow{ border-top:1px solid var(--line); }
.nav{ display:flex; align-items:center; gap:.1rem; flex-wrap:wrap; }
.nav a{ font-family:var(--sans); font-weight:600; font-size:.9rem; color:var(--ink); text-decoration:none; padding:.7rem .95rem; border-bottom:2px solid transparent; }
.nav a.first{ padding-left:0; }
.nav a:hover{ color:var(--claret-d); border-bottom-color:var(--claret); }
.nav .navcta{ margin-left:auto; }
.nav .navcta a{ color:var(--claret-d); }
.nav-toggle{ display:none; }
@media(max-width:860px){
  .nav{ flex-direction:column; align-items:stretch; gap:0; max-height:0; overflow:hidden; transition:max-height .26s ease; }
  body.nav-open .nav{ max-height:460px; }
  .nav a{ padding:.85rem 0; border-bottom:1px solid var(--line-2); }
  .nav .navcta{ margin-left:0; }
  .nav-toggle{ display:inline-flex; align-items:center; gap:.4rem; background:none; border:1px solid var(--line); border-radius:var(--r-sm); padding:.45rem .7rem; cursor:pointer; color:var(--ink); font-family:var(--sans); font-weight:600; font-size:.85rem; }
}
.subbar{ position:sticky; top:0; z-index:60; background:color-mix(in srgb,var(--bg) 92%,transparent); backdrop-filter:blur(8px); border-bottom:1px solid var(--line); }
.subbar .row{ display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:54px; }
.subbar .b{ font-family:var(--serif); font-weight:700; font-size:1.05rem; text-decoration:none; color:var(--ink); }
.subbar .b b{ color:var(--claret); }
.subbar .lk{ font-family:var(--sans); font-weight:600; font-size:.85rem; text-decoration:none; color:var(--ink); }
.subbar .lk:hover{ color:var(--claret-d); }

/* ================= HERO (focal point, no dead space) ================= */
.hero{ border-bottom:1px solid var(--line); }
.hero .wrap{ padding-block:clamp(36px,5vw,68px); }
.hero-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(28px,4vw,54px); align-items:stretch; }
@media(max-width:880px){ .hero-grid{ grid-template-columns:1fr; gap:1.6rem; } }
.hero-main{ display:flex; flex-direction:column; justify-content:center; }
.hero-main h1{ font-size:clamp(2.3rem,4.7vw,3.6rem); line-height:1.04; letter-spacing:-.025em; margin:.8rem 0 0; }
.hero-main .dek{ font-size:1.2rem; color:var(--ink-2); margin:1.1rem 0 0; max-width:42ch; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.7rem; }
.hero-trust{ display:flex; flex-wrap:wrap; gap:.4rem 1.1rem; margin-top:1.5rem; }
.hero-trust span{ font-family:var(--mono); font-size:.7rem; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); display:inline-flex; align-items:center; gap:.45rem; }
.hero-trust span::before{ content:""; width:5px; height:5px; border-radius:50%; background:var(--claret); }
/* featured guide panel */
.feature-card{ background:var(--claret-deep); color:var(--on-dark); border-radius:var(--r); padding:clamp(22px,2.4vw,32px); display:flex; flex-direction:column; box-shadow:var(--sh-lg); position:relative; overflow:hidden; }
.feature-card::after{ content:"\00A7"; position:absolute; right:-10px; bottom:-30px; font-family:var(--serif); font-size:11rem; line-height:1; color:rgba(255,255,255,.06); }
.feature-card .kick{ color:var(--rose); }
.feature-card h2{ color:#fff; font-size:clamp(1.6rem,2.6vw,2.15rem); line-height:1.1; margin:.7rem 0 .6rem; position:relative; }
.feature-card p{ font-family:var(--sans); color:var(--on-dark-mut); font-size:.98rem; margin:0 0 1.5rem; position:relative; }
.feature-card .chips{ display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:1.6rem; position:relative; }
.feature-card .chips span{ font-family:var(--mono); font-size:.66rem; text-transform:uppercase; letter-spacing:.05em; color:#fff; border:1px solid rgba(255,255,255,.25); border-radius:999px; padding:.3rem .6rem; }
.feature-card .go{ margin-top:auto; font-family:var(--sans); font-weight:700; font-size:.98rem; color:#fff; text-decoration:none; display:inline-flex; align-items:center; gap:.5rem; position:relative; }
.feature-card .go:hover{ color:var(--rose); }

/* ================= SECTION SHELL ================= */
.sec{ padding-block:clamp(40px,5vw,68px); }
.sec.alt{ background:var(--bg-2); }
.sec.tight{ padding-block:clamp(30px,4vw,48px); }
.sec-h{ display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin-bottom:clamp(22px,3vw,34px); }
.sec-h .lhs .kick{ display:block; margin-bottom:.5rem; }
.sec-h h2{ font-size:clamp(1.6rem,3vw,2.25rem); letter-spacing:-.02em; }
.sec-h .more{ font-family:var(--sans); font-weight:600; font-size:.88rem; text-decoration:none; color:var(--claret-d); white-space:nowrap; }
.sec-h .more:hover{ text-decoration:underline; }

/* featured guides row (asymmetric) */
.guides{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,1.8vw,22px); }
@media(max-width:860px){ .guides{ grid-template-columns:1fr 1fr; } }
@media(max-width:560px){ .guides{ grid-template-columns:1fr; } }
.gcard{ display:flex; flex-direction:column; text-decoration:none; color:var(--ink); background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:1.5rem; box-shadow:var(--sh); transition:transform .2s, box-shadow .2s, border-color .2s; }
.gcard:hover{ transform:translateY(-4px); box-shadow:var(--sh-lg); border-color:var(--claret); }
.gcard .em{ display:flex; gap:.5rem; align-items:center; margin-bottom:.9rem; }
.gcard h3{ font-size:1.28rem; line-height:1.2; margin:0 0 .5rem; }
.gcard p{ font-family:var(--sans); font-size:.9rem; color:var(--muted); margin:0 0 1.1rem; }
.gcard .go{ margin-top:auto; font-family:var(--sans); font-weight:600; font-size:.86rem; color:var(--claret-d); }

/* start-here strip */
.startbar{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(12px,1.4vw,16px); }
@media(max-width:760px){ .startbar{ grid-template-columns:1fr 1fr; } }
@media(max-width:420px){ .startbar{ grid-template-columns:1fr; } }
.startcard{ text-decoration:none; color:var(--ink); background:var(--card); border:1px solid var(--line); border-radius:var(--r-sm); padding:1.1rem 1.2rem; display:flex; align-items:center; justify-content:space-between; gap:.8rem; transition:border-color .18s, transform .18s; }
.startcard:hover{ border-color:var(--claret); transform:translateY(-2px); }
.startcard .t{ font-family:var(--serif); font-weight:600; font-size:1.08rem; }
.startcard .n{ font-family:var(--mono); font-size:.72rem; color:var(--claret); }

/* state guide cards (bold, all active) */
.states{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(14px,1.6vw,20px); }
@media(max-width:860px){ .states{ grid-template-columns:1fr 1fr; } }
@media(max-width:440px){ .states{ grid-template-columns:1fr; } }
.statecard{ text-decoration:none; color:var(--ink); background:var(--card); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; box-shadow:var(--sh); transition:transform .2s, box-shadow .2s; display:flex; flex-direction:column; }
.statecard:hover{ transform:translateY(-4px); box-shadow:var(--sh-lg); }
.statecard .ab{ font-family:var(--serif); font-weight:700; font-size:2.6rem; letter-spacing:-.04em; color:#fff; background:var(--ink); padding:1rem 1.2rem .8rem; line-height:1; display:flex; align-items:baseline; justify-content:space-between; }
.statecard .ab .st{ font-family:var(--mono); font-size:.6rem; letter-spacing:.08em; text-transform:uppercase; color:var(--rose); font-weight:500; }
.statecard.primary .ab{ background:var(--claret); }
.statecard .bd{ padding:1.1rem 1.2rem 1.3rem; }
.statecard .bd .nm{ font-family:var(--serif); font-weight:600; font-size:1.15rem; }
.statecard .bd p{ font-family:var(--sans); font-size:.84rem; color:var(--muted); margin:.35rem 0 0; }

/* card-catalog entries (greensboro) */
.entries{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(14px,1.8vw,20px); }
@media(max-width:720px){ .entries{ grid-template-columns:1fr; } }
.entry{ display:block; text-decoration:none; color:var(--ink); background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:1.3rem 1.4rem; box-shadow:var(--sh); transition:transform .18s, border-color .18s; }
.entry:hover{ transform:translateY(-3px); border-color:var(--claret); }
.entry.soon{ background:transparent; box-shadow:none; opacity:.7; }
.entry .em{ display:flex; gap:.5rem; align-items:center; margin-bottom:.6rem; }
.entry h3{ font-size:1.2rem; line-height:1.25; margin:0 0 .3rem; }
.entry:hover h3{ color:var(--claret-d); }
.entry p{ font-family:var(--sans); font-size:.88rem; color:var(--muted); margin:0; }

/* spotlight band (dark) */
.spot{ background:var(--ink); color:var(--on-dark); }
.spot .wrap{ padding-block:clamp(44px,5vw,72px); }
.spot .kick{ color:var(--rose); }
.spot-grid{ display:grid; grid-template-columns:1.25fr .75fr; gap:clamp(26px,4vw,50px); align-items:center; }
@media(max-width:820px){ .spot-grid{ grid-template-columns:1fr; } }
.spot h2{ color:#fff; font-size:clamp(1.6rem,2.8vw,2.2rem); margin:.5rem 0 .8rem; }
.spot p{ font-family:var(--sans); color:var(--on-dark-mut); font-size:1rem; margin:0 0 1rem; max-width:48ch; }
.spot .exact{ font-family:var(--sans); font-size:.95rem; color:#fff; margin:0 0 1.4rem; }
.spot .exact a{ color:var(--rose); font-weight:600; text-underline-offset:3px; }
.spot .card{ background:#211F26; border:1px solid rgba(243,241,234,.16); border-radius:var(--r); padding:1.6rem; }
.spot .card .nm{ font-family:var(--serif); font-weight:700; color:#fff; font-size:1.3rem; }
.spot .card .ro{ font-family:var(--mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; color:var(--rose); margin:.35rem 0 1.1rem; }
.spot .card .creds{ list-style:none; margin:0 0 1.2rem; padding:0; display:grid; gap:.5rem; }
.spot .card .creds li{ font-family:var(--sans); font-size:.86rem; color:var(--on-dark-mut); display:grid; grid-template-columns:auto 1fr; gap:.6rem; }
.spot .card .creds li::before{ content:""; width:6px; height:6px; margin-top:.5rem; background:var(--rose); border-radius:50%; }

/* resources (official court links) */
.res-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(12px,1.6vw,18px); }
@media(max-width:720px){ .res-grid{ grid-template-columns:1fr; } }
.res{ display:flex; align-items:flex-start; gap:.9rem; text-decoration:none; color:var(--ink); background:var(--card); border:1px solid var(--line); border-radius:var(--r-sm); padding:1.1rem 1.2rem; transition:border-color .18s, transform .18s; }
.res:hover{ border-color:var(--claret); transform:translateY(-2px); }
.res .ar{ flex:none; width:34px; height:34px; border-radius:50%; background:var(--bg-2); display:grid; place-items:center; color:var(--claret-d); font-family:var(--sans); }
.res .tx .nm{ font-family:var(--serif); font-weight:600; font-size:1.04rem; }
.res .tx .ds{ font-family:var(--sans); font-size:.84rem; color:var(--muted); margin-top:.15rem; }
.res .tx .src{ font-family:var(--mono); font-size:.66rem; text-transform:uppercase; letter-spacing:.05em; color:var(--claret-d); margin-top:.4rem; }

/* editorial standards */
.std-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(16px,2vw,26px); }
@media(max-width:820px){ .std-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:460px){ .std-grid{ grid-template-columns:1fr; } }
.std .n{ font-family:var(--mono); font-size:.74rem; color:var(--claret-d); display:block; margin-bottom:.6rem; }
.std h4{ font-family:var(--sans); font-weight:700; font-size:.98rem; margin:0 0 .4rem; color:var(--ink); }
.std p{ font-family:var(--sans); font-size:.86rem; color:var(--muted); margin:0; }

/* ================= ARTICLE / GUIDE ================= */
.article{ padding-block:clamp(28px,4vw,52px) clamp(40px,6vw,80px); }
.bc{ font-family:var(--sans); font-size:.82rem; color:var(--muted); margin-bottom:1.2rem; }
.bc a{ color:var(--muted); text-decoration:none; }
.bc a:hover{ color:var(--claret-d); }
.bc span{ color:var(--claret); margin-inline:.4rem; }
.art-head{ max-width:var(--readw); }
.art-head .tags{ display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1rem; }
.art-head h1{ font-size:clamp(2.05rem,4vw,3rem); line-height:1.08; letter-spacing:-.022em; }
.art-head .dek{ font-size:1.25rem; color:var(--ink-2); margin:1.1rem 0 1.4rem; line-height:1.5; }
.byline{ display:flex; flex-wrap:wrap; gap:.5rem 1.2rem; align-items:center; padding:1rem 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); font-family:var(--mono); font-size:.73rem; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); }
.byline b{ color:var(--ink); font-weight:600; }

.art-body{ max-width:var(--readw); margin-top:2rem; }
.art-body > :first-child{ margin-top:0; }
.art-body h2{ font-size:clamp(1.5rem,2.5vw,1.95rem); margin:2.4rem 0 .8rem; scroll-margin-top:80px; }
.art-body h2 .h-no{ font-family:var(--mono); font-size:.8rem; color:var(--claret); font-weight:500; margin-right:.6rem; vertical-align:.18em; }
.art-body h3{ font-size:1.22rem; margin:1.7rem 0 .5rem; color:var(--ink); }
.art-body p{ margin:0 0 1.15rem; }
.art-body ul, .art-body ol{ margin:0 0 1.3rem; padding-left:0; list-style:none; display:grid; gap:.55rem; }
.art-body ul li{ display:grid; grid-template-columns:auto 1fr; gap:.7rem; align-items:start; }
.art-body ul li::before{ content:""; width:7px; height:7px; margin-top:.62rem; background:var(--claret); border-radius:2px; }
.art-body ol{ counter-reset:n; }
.art-body ol li{ display:grid; grid-template-columns:auto 1fr; gap:.8rem; counter-increment:n; }
.art-body ol li::before{ content:counter(n,decimal-leading-zero); font-family:var(--mono); font-size:.78rem; color:var(--claret-d); padding-top:.18rem; }
.art-body a{ color:var(--claret-d); text-underline-offset:3px; }
.art-body strong{ color:var(--ink); }

.toc{ font-family:var(--sans); background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:1.3rem 1.5rem; margin:1.8rem 0 0; box-shadow:var(--sh); }
.toc .kick{ display:block; margin-bottom:.8rem; }
.toc ol{ margin:0; padding:0; list-style:none; counter-reset:t; display:grid; gap:.45rem; }
.toc li{ counter-increment:t; }
.toc a{ display:grid; grid-template-columns:auto 1fr; gap:.7rem; text-decoration:none; color:var(--ink); font-size:.92rem; font-weight:500; }
.toc a::before{ content:counter(t,decimal-leading-zero); font-family:var(--mono); font-size:.74rem; color:var(--claret); }
.toc a:hover{ color:var(--claret-d); }

.pull{ font-family:var(--serif); font-style:italic; font-size:1.35rem; line-height:1.4; color:var(--ink); border-left:3px solid var(--claret); padding:.2rem 0 .2rem 1.3rem; margin:1.8rem 0; }
.note{ background:var(--card); border:1px solid var(--line); border-left:4px solid var(--claret); border-radius:var(--r-sm); padding:1.2rem 1.4rem; margin:1.6rem 0; font-family:var(--sans); font-size:.95rem; box-shadow:var(--sh); }
.note b{ color:var(--claret-d); }

.tbl{ width:100%; border-collapse:collapse; margin:1.4rem 0; font-family:var(--sans); font-size:.9rem; }
.tbl th,.tbl td{ text-align:left; padding:.7rem .8rem; border-bottom:1px solid var(--line); vertical-align:top; }
.tbl th{ font-family:var(--mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); border-bottom:2px solid var(--ink); }

.featured{ background:var(--card); border:1px solid var(--line); border-top:3px solid var(--claret); border-radius:var(--r); padding:1.6rem 1.7rem; margin:2.2rem 0; box-shadow:var(--sh); }
.featured .kick{ display:block; margin-bottom:.6rem; }
.featured .nm{ font-family:var(--serif); font-weight:700; font-size:1.25rem; color:var(--ink); }
.featured p{ font-family:var(--sans); font-size:.95rem; color:var(--ink-2); margin:.5rem 0 .9rem; }
.featured a.go{ font-family:var(--sans); font-weight:600; font-size:.9rem; color:var(--claret-d); text-decoration:none; }
.featured a.go:hover{ text-decoration:underline; }
.featured .disc{ font-family:var(--mono); font-size:.66rem; color:var(--muted); margin-top:.9rem; text-transform:uppercase; letter-spacing:.04em; }

/* resources box inside an article */
.resbox{ background:var(--bg-2); border:1px solid var(--line); border-radius:var(--r); padding:1.4rem 1.6rem; margin:2rem 0; }
.resbox .kick{ display:block; margin-bottom:.8rem; }
.resbox ul{ margin:0; padding:0; list-style:none; display:grid; gap:.7rem; }
.resbox ul li{ display:block; }
.resbox a{ font-family:var(--sans); font-weight:600; font-size:.95rem; color:var(--claret-d); text-decoration:none; }
.resbox a:hover{ text-decoration:underline; }
.resbox .d{ font-family:var(--sans); font-size:.84rem; color:var(--muted); display:block; }

.faq{ max-width:var(--readw); margin-top:2.6rem; }
.faq h2{ border-bottom:2px solid var(--ink); padding-bottom:.6rem; margin-bottom:.6rem; font-size:clamp(1.45rem,2.2vw,1.8rem); }
.faq details{ border-bottom:1px solid var(--line); padding:.3rem 0; }
.faq summary{ font-family:var(--serif); font-weight:600; color:var(--ink); font-size:1.08rem; padding:.9rem 1.8rem .9rem 0; cursor:pointer; list-style:none; position:relative; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; position:absolute; right:.2rem; top:.8rem; font-family:var(--mono); color:var(--claret); font-size:1.2rem; }
.faq details[open] summary::after{ content:"\2013"; }
.faq details p{ margin:0 0 1rem; font-family:var(--sans); font-size:.96rem; color:var(--ink-2); }

.related{ border-top:2px solid var(--ink); margin-top:3rem; padding-top:1.6rem; }
.related .kick{ display:block; margin-bottom:1.1rem; }
.rel-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,1.8vw,22px); }
@media(max-width:760px){ .rel-grid{ grid-template-columns:1fr; } }
.rel{ text-decoration:none; color:var(--ink); background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:1.2rem; box-shadow:var(--sh); transition:border-color .18s, transform .18s; }
.rel:hover{ border-color:var(--claret); transform:translateY(-3px); }
.rel .em{ margin-bottom:.5rem; }
.rel h4{ font-size:1.04rem; line-height:1.3; margin:0; }

.checklist{ max-width:var(--readw); margin-top:1.5rem; }
.check{ border:1px solid var(--line); border-radius:var(--r); padding:1.1rem 1.3rem; margin-bottom:.8rem; background:var(--card); box-shadow:var(--sh); display:grid; grid-template-columns:auto 1fr; gap:1rem; align-items:start; }
.check .box{ width:20px; height:20px; border:2px solid var(--claret); border-radius:5px; margin-top:.2rem; }
.check .t{ font-family:var(--serif); font-weight:600; color:var(--ink); }
.check .d{ font-family:var(--sans); font-size:.9rem; color:var(--muted); margin-top:.2rem; }

.cta-band{ background:var(--claret); color:#fff; border-radius:var(--r); padding:clamp(22px,3vw,34px); margin:2.6rem 0 0; max-width:var(--readw); box-shadow:var(--sh-lg); }
.cta-band h3{ color:#fff; font-size:1.45rem; margin:0 0 .5rem; }
.cta-band p{ font-family:var(--sans); color:rgba(255,255,255,.88); margin:0 0 1.2rem; font-size:.95rem; }
.cta-band .btn{ background:#fff; color:var(--claret-d); }
.cta-band .btn:hover{ background:var(--ink); color:#fff; }

/* state-guide page intro index */
.stateindex{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(12px,1.6vw,18px); margin:1.6rem 0; }
@media(max-width:680px){ .stateindex{ grid-template-columns:1fr; } }

/* ================= FOOTER ================= */
.foot{ background:var(--ink); color:var(--on-dark); padding-block:clamp(42px,5vw,66px) 1.8rem; }
.foot .grid{ display:grid; grid-template-columns:1.8fr 1fr 1fr 1fr; gap:clamp(22px,3vw,40px); }
@media(max-width:780px){ .foot .grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:440px){ .foot .grid{ grid-template-columns:1fr; } }
.foot .nm{ font-family:var(--serif); font-weight:700; font-size:1.45rem; color:#fff; }
.foot .nm b{ color:var(--rose); }
.foot p{ font-family:var(--sans); color:var(--on-dark-mut); font-size:.88rem; margin:.7rem 0 0; max-width:34ch; }
.foot h5{ font-family:var(--mono); font-weight:500; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--rose); margin:0 0 .9rem; }
.foot a{ display:block; font-family:var(--sans); color:var(--on-dark-mut); text-decoration:none; font-size:.9rem; margin-bottom:.5rem; }
.foot a:hover{ color:#fff; }
.foot .legal{ margin-top:clamp(28px,4vw,44px); padding-top:1.3rem; border-top:1px solid rgba(243,241,234,.14); font-family:var(--sans); font-size:.8rem; color:var(--on-dark-mut); line-height:1.6; }

.reveal{ transition:opacity .6s ease, transform .6s ease; }
.js .reveal{ opacity:0; transform:translateY(14px); }
.reveal.in{ opacity:1; transform:none; }
@media(prefers-reduced-motion:reduce){ .js .reveal{ opacity:1!important; transform:none!important; } html{ scroll-behavior:auto; } a.gcard:hover,.entry:hover,.statecard:hover,.rel:hover{ transform:none; } }
