:root {
  --navy: #1e2947;
  --navy-2: #1f2d53;
  --navy-3: #2b3a60;
  --red: #8e2928;
  --red-dark: #6f1f1e;
  --paper: #f9f7f3;
  --paper-2: #f1ede5;
  --white: #ffffff;
  --ink: #1e2947;
  --ink-soft: #4a5370;
  --rule: #e2ddd5;
  --hi: #f2e28a;
  --measure: 64ch;
  --gutter: clamp(16px, 4vw, 40px);
  --display: "Playfair Display", Georgia, "Times New Roman", serif;
  --text: "Inter", "Segoe UI", Arial, sans-serif;
}

*, *::before, *::after { 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(--text); font-size: 1.125rem; line-height: 1.65; }
img, svg { max-width: 100%; height: auto; }
a { color: var(--ink); text-decoration-color: var(--red); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--red-dark); text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--red); outline-offset: 3px; border-radius: 2px; }
.skip-link { position: absolute; left: 16px; top: -60px; background: var(--navy); color: #fff; padding: 10px 16px; z-index: 50; font-weight: 700; text-decoration: none; }
.skip-link:focus { top: 12px; }

.wrap { max-width: 1240px; margin: 0 auto; padding: 0 var(--gutter); }
.read { max-width: var(--measure); }

h1, h2, h3 { font-family: var(--display); color: var(--ink); font-weight: 700; line-height: 1.12; letter-spacing: -0.01em; }
h1 { font-size: clamp(2.5rem, 5.6vw, 4.4rem); margin: 0 0 26px; max-width: 16ch; }
h2 { font-size: clamp(2rem, 3.8vw, 3rem); margin: 0 0 20px; max-width: 22ch; }
h3 { font-size: 1.35rem; margin: 0 0 8px; line-height: 1.25; }
p { margin: 0 0 18px; }
.eyebrow { display: flex; align-items: center; gap: 14px; font-size: 0.95rem; font-weight: 600; color: var(--red); margin: 0 0 16px; }
.eyebrow::before { content: ""; width: 44px; height: 2px; background: var(--red); flex: none; }

/* Top bar */
.topbar { background: var(--navy); color: #d9deea; font-size: 0.92rem; }
.topbar .wrap { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 42px; flex-wrap: wrap; }
.topbar a { color: #fff; font-weight: 600; text-decoration: none; }
.topbar a:hover { color: var(--hi); }
.topbar :focus-visible { outline-color: #fff; }

/* Header */
.site-header { background: var(--white); border-bottom: 1px solid var(--rule); position: sticky; top: 0; z-index: 40; }
.site-header .wrap { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 84px; }
.brand { font-family: var(--display); font-weight: 700; font-size: 1.85rem; color: var(--navy); text-decoration: none; white-space: nowrap; letter-spacing: -0.01em; }
.brand .amp { color: var(--red); }
.brand:hover { color: var(--navy); }
.nav-toggle { display: none; }
.site-nav > ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 4px; }
.site-nav > ul > li { position: relative; }
.site-nav a, .site-nav .menu-btn { display: inline-flex; align-items: center; gap: 6px; padding: 12px 12px; font: inherit; font-size: 0.98rem; font-weight: 600; color: var(--navy); text-decoration: none; background: none; border: 0; cursor: pointer; border-radius: 4px; }
.site-nav a:hover, .site-nav .menu-btn:hover { color: var(--red); }
.menu-btn svg { width: 12px; height: 12px; transition: transform .15s; }
.menu-btn[aria-expanded="true"] svg { transform: rotate(180deg); }
.submenu { list-style: none; margin: 0; padding: 10px; position: absolute; top: 100%; left: 0; min-width: 280px; background: var(--white); border: 1px solid var(--rule); border-top: 3px solid var(--red); box-shadow: 0 18px 40px rgba(30,41,71,.14); display: none; }
.submenu a { display: block; padding: 10px 12px; font-weight: 500; }
.submenu a:hover { background: var(--paper); }
.has-sub.open .submenu, .no-js .has-sub:hover .submenu, .no-js .has-sub:focus-within .submenu { display: block; }
.nav-cta a { background: var(--red); color: #fff; padding: 13px 22px; margin-left: 10px; }
.nav-cta a:hover { background: var(--red-dark); color: #fff; }

@media (max-width: 1060px) {
  .nav-toggle { display: inline-flex; align-items: center; min-height: 48px; padding: 0 18px; font: inherit; font-weight: 700; color: var(--navy); background: var(--white); border: 2px solid var(--navy); border-radius: 4px; cursor: pointer; }
  .site-header .wrap { flex-wrap: wrap; min-height: 72px; }
  .brand { font-size: 1.45rem; }
  .site-nav { display: none; width: 100%; padding-bottom: 16px; }
  .site-nav.is-open { display: block; }
  .no-js .site-nav { display: block; }
  .site-nav > ul { flex-direction: column; align-items: stretch; gap: 0; }
  .site-nav a, .site-nav .menu-btn { width: 100%; justify-content: space-between; padding: 14px 4px; border-top: 1px solid var(--rule); border-radius: 0; font-size: 1.08rem; }
  .submenu { position: static; box-shadow: none; border: 0; padding: 0 0 8px 12px; min-width: 0; }
  .submenu a { border-top: 0; padding: 10px 4px; }
  .nav-cta a { margin: 14px 0 0; justify-content: center; border-radius: 4px; }
}
@media (max-width: 480px) { .topbar .tb-left { display: none; } .topbar .wrap { justify-content: center; } }

/* Hero */
.hero { background: var(--navy); color: #fff; position: relative; overflow: hidden; }
.hero::after {
  content: "&"; position: absolute; right: -2vw; bottom: -18vw; font-family: var(--display); font-weight: 700;
  font-size: 46vw; line-height: 1; color: var(--red); opacity: .12; pointer-events: none; user-select: none;
}
.hero .wrap { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.9fr); gap: clamp(32px, 6vw, 88px); align-items: center; padding-top: clamp(56px, 8vw, 112px); padding-bottom: clamp(56px, 8vw, 112px); }
.hero h1 { color: #fff; }
.hero .eyebrow { color: #fff; }
.hero .answer { font-size: 1.2rem; line-height: 1.6; color: #e7eaf2; border-left: 3px solid var(--red); padding-left: 22px; max-width: 60ch; margin: 0 0 28px; }
.hero .answer p { margin: 0; }
.actions { display: flex; flex-wrap: wrap; gap: 14px; }
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 56px; padding: 0 28px; font: inherit; font-weight: 700; font-size: 1.05rem; text-decoration: none; border-radius: 4px; border: 2px solid transparent; cursor: pointer; }
.btn-red { background: var(--red); color: #fff; }
.btn-red:hover { background: var(--red-dark); color: #fff; }
.btn-ghost { border-color: rgba(255,255,255,.7); color: #fff; }
.btn-ghost:hover { background: rgba(255,255,255,.08); color: #fff; }
.btn-navy { background: var(--navy); color: #fff; }
.btn-navy:hover { background: var(--navy-3); color: #fff; }
.hero :focus-visible { outline-color: #fff; }

.deadline { background: var(--paper); color: var(--ink); border-radius: 6px; padding: 30px 30px 26px; box-shadow: 0 30px 60px rgba(0,0,0,.28); border-top: 6px solid var(--red); }
.deadline-label { font-weight: 700; color: var(--red); margin: 0 0 6px; font-size: 1rem; }
.deadline-num { display: flex; align-items: baseline; gap: 12px; margin: 0 0 10px; }
.deadline-num strong { font-family: var(--display); font-size: clamp(4.5rem, 8vw, 6.5rem); line-height: .9; color: var(--navy); }
.deadline-num span { font-family: var(--display); font-size: 1.6rem; font-weight: 700; color: var(--navy); }
.deadline p { font-size: 1.02rem; color: var(--ink-soft); }
.deadline .rule { height: 1px; background: var(--rule); margin: 18px 0; }
.deadline a.more { font-weight: 700; }

@media (max-width: 900px) {
  .hero .wrap { grid-template-columns: 1fr; }
  .hero::after { font-size: 90vw; bottom: -40vw; right: -14vw; }
}

/* Credentials strip */
.creds { background: var(--white); border-bottom: 1px solid var(--rule); }
.creds ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); }
.creds li { padding: 26px 18px; border-left: 1px solid var(--rule); font-size: 0.95rem; color: var(--ink-soft); line-height: 1.4; }
.creds li:first-child { border-left: 0; padding-left: 0; }
.creds strong { display: block; font-family: var(--display); font-size: 1.2rem; color: var(--navy); margin-bottom: 4px; line-height: 1.2; }
@media (max-width: 1060px) { .creds ul { grid-template-columns: repeat(3, 1fr); } .creds li { border-top: 1px solid var(--rule); } .creds li:nth-child(3n+1) { border-left: 0; padding-left: 0; } }
@media (max-width: 600px) { .creds ul { grid-template-columns: repeat(2, 1fr); } .creds li { padding: 18px 12px; } .creds li:nth-child(3n+1) { border-left: 1px solid var(--rule); padding-left: 12px; } .creds li:nth-child(2n+1) { border-left: 0; padding-left: 0; } }

/* Sections */
.section { padding: clamp(64px, 9vw, 120px) 0; }
.section.alt { background: var(--white); }
.section-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px 64px; align-items: end; margin-bottom: 48px; }
.section-head p { color: var(--ink-soft); margin: 0; max-width: 52ch; }
@media (max-width: 860px) { .section-head { grid-template-columns: 1fr; } }

/* Practice areas */
.practice { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 2px solid var(--navy); }
.practice a { display: flex; flex-direction: column; gap: 10px; padding: 32px 28px 30px; text-decoration: none; color: var(--ink); border-bottom: 1px solid var(--rule); border-right: 1px solid var(--rule); position: relative; transition: background .15s; min-height: 220px; }
.practice a:nth-child(3n) { border-right: 0; }
.practice a:hover { background: var(--white); }
.practice a::after { content: ""; position: absolute; left: 0; top: -2px; height: 2px; width: 0; background: var(--red); transition: width .25s; }
.practice a:hover::after { width: 100%; }
.practice h3 { font-size: 1.5rem; }
.practice p { margin: 0; color: var(--ink-soft); font-size: 1.02rem; }
.practice .go { margin-top: auto; font-weight: 700; color: var(--red); font-size: 0.98rem; }
.practice .feature { grid-column: span 2; background: var(--navy); color: #fff; border-right: 0; }
.practice .feature h3 { color: #fff; font-size: 2rem; }
.practice .feature p { color: #d7dcea; font-size: 1.1rem; max-width: 52ch; }
.practice .feature .go { color: var(--hi); }
.practice .feature:hover { background: var(--navy-2); }
@media (max-width: 900px) { .practice { grid-template-columns: 1fr 1fr; } .practice a:nth-child(3n) { border-right: 1px solid var(--rule); } .practice a:nth-child(2n+1):not(.feature) { border-right: 0; } }
@media (max-width: 600px) { .practice { grid-template-columns: 1fr; } .practice .feature { grid-column: auto; } .practice a { border-right: 0 !important; min-height: 0; } }
@media (prefers-reduced-motion: reduce) { .practice a::after, .practice a { transition: none; } }

/* Stage track */
.track ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); counter-reset: s; }
.track li { counter-increment: s; position: relative; padding-right: 18px; }
.track li::before { content: counter(s); display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; background: var(--white); border: 2px solid var(--navy); font-family: var(--display); font-weight: 700; font-size: 1.3rem; position: relative; z-index: 1; }
.track li::after { content: ""; position: absolute; top: 25px; left: 52px; right: 0; height: 2px; background: var(--navy); opacity: .3; }
.track li:last-child::after { display: none; }
.track h3 { margin: 16px 0 6px; font-size: 1.25rem; }
.track p { font-size: 1rem; color: var(--ink-soft); margin: 0; }
.track-note { margin-top: 36px; max-width: 70ch; color: var(--ink-soft); font-size: 1rem; }
@media (max-width: 860px) {
  .track ol { grid-template-columns: 1fr; }
  .track li { display: grid; grid-template-columns: 52px 1fr; column-gap: 18px; padding: 0 0 26px; }
  .track li::before { grid-row: 1 / span 2; }
  .track li::after { top: 52px; bottom: 0; left: 25px; right: auto; width: 2px; height: auto; }
  .track h3 { margin-top: 12px; }
}

/* Why */
.why { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.why .lead { font-size: 1.2rem; }
.quote { background: var(--navy); color: #fff; padding: clamp(32px, 4vw, 52px); border-radius: 6px; position: relative; }
.quote blockquote { margin: 0; font-family: var(--display); font-size: clamp(1.8rem, 3vw, 2.4rem); line-height: 1.2; }
.quote blockquote::before { content: "\201C"; display: block; font-size: 5rem; line-height: .6; color: var(--red); margin-bottom: 8px; }
.quote cite { display: block; margin-top: 22px; font-style: normal; font-size: 1rem; color: #cfd5e4; }
.quote .fee { margin-top: 28px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.18); font-size: 1rem; color: #e7eaf2; }
.quote .fee a { color: #fff; }
@media (max-width: 900px) { .why { grid-template-columns: 1fr; } }

/* Home + map */
.home-grid { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(32px, 6vw, 80px); align-items: center; }
@media (max-width: 960px) { .home-grid { grid-template-columns: 1fr; } }
.tilemap { display: grid; grid-template-columns: repeat(11, minmax(0, 1fr)); gap: 5px; }
.tilemap a { aspect-ratio: 1; display: flex; align-items: center; justify-content: center; background: var(--white); border: 1px solid var(--rule); border-radius: 4px; font-size: clamp(0.62rem, 1.1vw, 0.85rem); font-weight: 700; color: var(--navy); text-decoration: none; transition: background .12s, color .12s; }
.tilemap a:hover, .tilemap a:focus-visible { background: var(--navy); color: #fff; border-color: var(--navy); }
.tilemap a.home-state { background: var(--red); color: #fff; border-color: var(--red); }
.map-legend { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 18px; font-size: 0.95rem; color: var(--ink-soft); align-items: center; }
.map-legend span { display: inline-flex; align-items: center; gap: 8px; }
.map-legend i { width: 14px; height: 14px; border-radius: 3px; display: inline-block; }
.sources { font-size: 0.92rem; color: var(--ink-soft); }
.sources a { color: var(--ink-soft); }

/* Reviews */
.reviews { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.review { background: var(--white); border: 1px solid var(--rule); border-radius: 6px; padding: 30px 28px; display: flex; flex-direction: column; }
.review .stars { color: var(--red); letter-spacing: 3px; font-size: 1.05rem; margin: 0 0 14px; }
.review blockquote { margin: 0 0 20px; font-family: var(--display); font-size: 1.22rem; line-height: 1.45; }
.review .who { margin-top: auto; font-weight: 700; margin-bottom: 2px; }
.review .what { color: var(--ink-soft); font-size: 0.95rem; margin: 0; }
.reviews-note { margin-top: 22px; font-size: 0.92rem; color: var(--ink-soft); }
@media (max-width: 900px) { .reviews { grid-template-columns: 1fr; } }

/* Closing */
.closing { background: var(--red); color: #fff; }
.closing .wrap { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr); gap: 40px; align-items: center; padding-top: clamp(56px, 7vw, 96px); padding-bottom: clamp(56px, 7vw, 96px); }
.closing h2 { color: #fff; }
.closing p { color: #f6e3e2; font-size: 1.15rem; max-width: 56ch; }
.closing .eyebrow { color: #fff; }
.closing .eyebrow::before { background: #fff; }
.closing .phone { display: block; font-family: var(--display); font-weight: 700; font-size: clamp(2rem, 4vw, 3rem); color: #fff; text-decoration: none; line-height: 1.1; }
.closing .phone:hover { color: var(--hi); }
.closing .btn-navy { margin-top: 18px; }
.closing :focus-visible { outline-color: #fff; }
@media (max-width: 860px) { .closing .wrap { grid-template-columns: 1fr; } }

/* Footer */
.site-footer { background: var(--navy); color: #c9d0e0; font-size: 0.98rem; padding: 72px 0 40px; }
.site-footer a { color: #fff; text-decoration: none; }
.site-footer a:hover { color: var(--hi); text-decoration: underline; }
.foot-top { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 40px; padding-bottom: 48px; border-bottom: 1px solid rgba(255,255,255,.14); }
.foot-brand { font-family: var(--display); font-size: 1.7rem; font-weight: 700; color: #fff; margin: 0 0 12px; }
.foot-brand .amp { color: #e06a68; }
.site-footer h3 { font-family: var(--text); color: #fff; font-size: 0.95rem; font-weight: 700; margin: 0 0 14px; letter-spacing: .02em; }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer li { margin-bottom: 8px; }
.foot-states { padding: 40px 0; border-bottom: 1px solid rgba(255,255,255,.14); }
.foot-states ul { columns: 5 160px; column-gap: 24px; }
.foot-states li { break-inside: avoid; margin-bottom: 6px; font-size: 0.95rem; }
.foot-legal { padding-top: 32px; font-size: 0.9rem; max-width: 110ch; }
.foot-legal p { margin: 0 0 12px; }
@media (max-width: 900px) { .foot-top { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .foot-top { grid-template-columns: 1fr; } }

@media print {
  .topbar, .site-header, .closing, .site-footer, .hero::after { display: none !important; }
  .hero { background: #fff; color: #000; }
  .hero h1 { color: #000; }
}
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.has-sub { display: flex; align-items: center; }
.has-sub .services-link { padding-right: 2px; }
.has-sub .menu-btn { padding: 12px 8px 12px 2px; }
@media (max-width: 1060px) {
  .has-sub { flex-wrap: wrap; }
  .has-sub .services-link { width: auto; flex: 1; }
  .has-sub .menu-btn { width: auto; padding: 14px 10px; }
  .submenu { width: 100%; }
}
.practice .wide { grid-column: span 2; background: var(--paper-2); border-right: 0; }
.practice .wide:hover { background: var(--white); }
@media (max-width: 900px) { .practice .wide { grid-column: span 2; } }
@media (max-width: 600px) { .practice .wide { grid-column: auto; } }

/* Real U.S. map */
.usmap { position: relative; }
.usmap svg { display: block; width: 100%; height: auto; overflow: visible; }
.usmap .st path { fill: #e8e3d9; stroke: #ffffff; stroke-width: 1; stroke-linejoin: round; transition: fill .12s; }
.usmap .st:hover path, .usmap .st:focus path { fill: var(--navy); }
.usmap .st.home path { fill: var(--red); }
.usmap .st.home:hover path, .usmap .st.home:focus path { fill: var(--red-dark); }
.usmap .st:focus { outline: none; }
.usmap .st:focus-visible path { stroke: var(--hi); stroke-width: 3; }
.usmap .lead { stroke: #b9b2a5; stroke-width: 1; }
.usmap .tag { fill: #ffffff; stroke: #d8d2c6; stroke-width: 1; transition: fill .12s; }
.usmap text { font-family: var(--text); font-size: 13px; font-weight: 700; fill: var(--navy); pointer-events: none; }
.usmap .st:hover .tag, .usmap .st:focus .tag { fill: var(--navy); stroke: var(--navy); }
.usmap .st:hover text, .usmap .st:focus text { fill: #fff; }
.map-readout { position: absolute; left: 0; top: 0; margin: 0; font-family: var(--display); font-weight: 700; font-size: clamp(1.2rem, 2vw, 1.6rem); color: var(--navy); }
@media (prefers-reduced-motion: reduce) { .usmap .st path, .usmap .tag { transition: none; } }
.home-grid { grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr); }
@media (max-width: 960px) { .home-grid { grid-template-columns: 1fr; } }
.usmap text { font-size: 19px; }
.map-readout { position: static; font-size: 1.25rem; min-width: 12ch; color: var(--navy); }
.map-legend { gap: 10px 26px; }
@media (hover: none) { .map-readout { display: none; } }

/* ---------- Migrated content pages ---------- */
.page-hero .wrap { grid-template-columns: 1fr; }
.page-hero .hero-copy { max-width: 900px; }
.page-hero h1 { max-width: 22ch; }
.hero-lede { max-width: 66ch; color: #dfe4ef; font-size: 1.15rem; }
.hero-lede p { margin-bottom: 14px; }
.hero-lede a { color: #fff; }
.hero-lede .embed { color: var(--ink); }
.hero .actions { margin-top: 26px; }
.content { max-width: 1240px; }
.content > h2, .content > p, .content > ul, .content > ol, .content > h3, .content > blockquote, .content > .faq-list, .content > .eyebrow { max-width: 72ch; }
.content h2 { margin-top: 0; }
.content h2 + p, .content h3 + p { margin-top: 0; }
.content h3 { margin: 28px 0 8px; }
.content ul, .content ol { padding-left: 1.3em; margin: 0 0 18px; }
.content li { margin-bottom: 8px; }
.content table { width: 100%; border-collapse: collapse; margin: 18px 0 24px; background: var(--white); font-size: 1rem; }
.content th, .content td { text-align: left; padding: 12px 14px; border-bottom: 1px solid var(--rule); vertical-align: top; }
.content th { background: var(--paper-2); font-weight: 700; }
.content blockquote { margin: 22px 0; padding: 4px 0 4px 22px; border-left: 3px solid var(--red); font-family: var(--display); font-size: 1.3rem; }
.embed { margin: 10px 0 24px; overflow-x: auto; }
.embed :is(h2, h3) { font-family: var(--display); }
.faq-list { margin-top: 12px; border-top: 2px solid var(--navy); }
.faq-list .qa { padding: 22px 0; border-bottom: 1px solid var(--rule); }
.faq-list .qa h3 { margin: 0 0 8px; font-size: 1.25rem; }
.faq-list .qa p:last-child { margin-bottom: 0; }
.city-links { list-style: none; padding: 0 !important; margin: 16px 0 24px; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 0 24px; max-width: none !important; }
.city-links li { border-bottom: 1px solid var(--rule); margin: 0; }
.city-links a { display: block; padding: 12px 0; font-weight: 600; text-decoration: none; }
.city-links a:hover { color: var(--red); }
.loc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 28px 40px; }
.loc-group h3 { font-size: 1.3rem; margin: 0 0 8px; padding-bottom: 8px; border-bottom: 2px solid var(--navy); }
.loc-group h3 a { text-decoration: none; }
.loc-group ul { list-style: none; padding: 0; margin: 0; }
.loc-group li { padding: 6px 0; }
.closing .wrap > div > p { color: #f6e3e2; }
.closing h2 { color: #fff; }
.closing a:not(.btn):not(.phone) { color: #fff; }
.stat-band { background: var(--navy); color: #fff; padding: clamp(28px, 4vw, 48px) 0; }
.stat-band .embed { margin: 0; }
.city-links li span { display: block; padding: 12px 0; font-weight: 600; color: var(--ink-soft); }

/* ---------- Inside pages, v2 ---------- */
.crumbs { background: var(--navy-2); border-bottom: 1px solid rgba(255,255,255,.08); }
.crumbs ol { list-style: none; margin: 0; padding: 12px 0; display: flex; flex-wrap: wrap; gap: 6px; font-size: .9rem; color: #b9c1d6; }
.crumbs li + li::before { content: "/"; margin-right: 6px; color: rgba(255,255,255,.35); }
.crumbs a { color: #dfe4ef; text-decoration: none; }
.crumbs a:hover { color: #fff; text-decoration: underline; }
.crumbs [aria-current] { color: #fff; font-weight: 600; }

.page-hero.has-visual .wrap { grid-template-columns: minmax(0, 1.25fr) minmax(0, .85fr); align-items: start; padding-top: clamp(48px, 6vw, 88px); padding-bottom: clamp(56px, 7vw, 96px); }
.page-hero.has-visual h1 { max-width: 20ch; font-size: clamp(2.2rem, 4.2vw, 3.6rem); }
.page-hero .hero-lede > p:first-child { font-size: 1.22rem; color: #fff; }
.hero-visual { position: sticky; top: 24px; }
.hv { color: var(--ink); }
.hv-label { font-size: .85rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--red); margin: 0 0 14px; }

.hv-map { margin: 0; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.12); border-radius: 8px; padding: 18px 18px 0; }
.hv-map svg { display: block; width: 100%; height: auto; }
.hv-map path { stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.hv-map .ctx { fill: rgba(255,255,255,.07); stroke: rgba(255,255,255,.22); stroke-width: 1; }
.hv-map .tgt { fill: var(--red); stroke: #f3c9c8; stroke-width: 1.5; filter: drop-shadow(0 10px 18px rgba(0,0,0,.35)); }
.hv-map figcaption { display: flex; flex-direction: column; gap: 2px; padding: 16px 4px 18px; border-top: 1px solid rgba(255,255,255,.12); margin-top: 14px; color: #fff; }
.hv-map figcaption strong { font-family: var(--display); font-size: 1.5rem; line-height: 1.2; }
.hv-map figcaption span { font-size: .95rem; color: #b9c1d6; }

.hv-stages, .hv-fee, .hv-contact { background: var(--paper); border-radius: 8px; padding: 28px 28px 24px; border-top: 6px solid var(--red); box-shadow: 0 30px 60px rgba(0,0,0,.28); }
.hv-stages ol { list-style: none; margin: 0; padding: 0; position: relative; }
.hv-stages ol::before { content: ""; position: absolute; left: 17px; top: 18px; bottom: 18px; width: 2px; background: var(--rule); }
.hv-stages li { display: flex; gap: 16px; align-items: flex-start; padding: 9px 0; position: relative; }
.hv-stages .n { flex: none; width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--white); border: 2px solid var(--rule); font-family: var(--display); font-weight: 700; color: var(--ink-soft); position: relative; z-index: 1; }
.hv-stages .t { font-size: .95rem; color: var(--ink-soft); line-height: 1.45; }
.hv-stages .t strong { display: block; color: var(--ink); font-size: 1.05rem; }
.hv-stages li.on .n { background: var(--red); border-color: var(--red); color: #fff; }
.hv-stages li.on .t strong { color: var(--red-dark); }
.hv-stages li:not(.on) { opacity: .72; }

.hv-fee .big { display: flex; align-items: baseline; gap: 12px; margin: 0 0 6px; }
.hv-fee .big strong { font-family: var(--display); font-size: clamp(4rem, 7vw, 5.6rem); line-height: .9; color: var(--navy); }
.hv-fee .big span { font-family: var(--display); font-weight: 700; font-size: 1.35rem; color: var(--navy); }
.hv-fee .or { font-size: 1.05rem; color: var(--ink-soft); margin: 0 0 4px; }
.hv-fee .or strong { color: var(--navy); }
.hv-fee .rule, .hv-contact .rule { height: 1px; background: var(--rule); margin: 16px 0; }
.hv-fee p { font-size: 1rem; }
.hv-fee .src { font-size: .85rem; color: var(--ink-soft); margin: 0; }

.hv-contact .phone { display: block; font-family: var(--display); font-weight: 700; font-size: clamp(1.9rem, 3vw, 2.4rem); color: var(--navy); text-decoration: none; line-height: 1.1; margin-bottom: 8px; }
.hv-contact p { font-size: 1rem; color: var(--ink-soft); }
.hv-contact ul { list-style: none; margin: 16px 0 0; padding: 16px 0 0; border-top: 1px solid var(--rule); }
.hv-contact li { position: relative; padding: 5px 0 5px 26px; font-size: .98rem; }
.hv-contact li::before { content: ""; position: absolute; left: 0; top: .78em; width: 12px; height: 7px; border-left: 2px solid var(--red); border-bottom: 2px solid var(--red); transform: rotate(-45deg); }

/* Split sections */
.split > .wrap, .stack > .wrap { display: grid; gap: 28px clamp(32px, 6vw, 96px); }
.split > .wrap { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); align-items: start; }
.stack > .wrap { grid-template-columns: minmax(0, 1fr); }
.stack .sec-head { max-width: 760px; }
.split .sec-head { position: sticky; top: 28px; }
.sec-num { display: block; font-family: var(--display); font-weight: 700; font-size: clamp(3rem, 5vw, 4.6rem); line-height: 1; color: transparent; -webkit-text-stroke: 1.5px var(--red); margin-bottom: 18px; opacity: .85; }
.sec-head h2 { margin: 0; font-size: clamp(1.7rem, 2.6vw, 2.35rem); line-height: 1.18; }
.sec-head .eyebrow { margin-bottom: 12px; }
.sec-head::after { content: ""; display: block; width: 64px; height: 3px; background: var(--red); margin-top: 22px; }
.faq-section .sec-head::after { display: none; }
.sec-body { max-width: 72ch; }
.stack .sec-body { max-width: none; }
.stack .sec-body > p, .stack .sec-body > ul, .stack .sec-body > h3, .stack .sec-body > h4 { max-width: 72ch; }
.sec-body > p:first-child { font-size: 1.22rem; line-height: 1.6; color: var(--ink); }
.sec-body p { color: #2c3553; }
.sec-body h3 { margin: 30px 0 8px; font-size: 1.3rem; padding-left: 16px; border-left: 3px solid var(--red); }
.sec-body h4 { font-family: var(--text); font-size: 1.1rem; font-weight: 600; color: var(--ink-soft); margin: 0 0 18px; }
.sec-body ul:not(.city-links) { list-style: none; padding: 0; margin: 4px 0 22px; }
.sec-body ul:not(.city-links) > li { position: relative; padding: 6px 0 6px 30px; margin: 0; }
.sec-body ul:not(.city-links) > li::before { content: ""; position: absolute; left: 4px; top: 1em; width: 10px; height: 10px; background: var(--red); transform: rotate(45deg); }
.sec-body ol { padding-left: 1.4em; }
.sec-body table { width: 100%; border-collapse: collapse; margin: 18px 0 24px; background: var(--white); font-size: 1rem; box-shadow: 0 1px 0 var(--rule); }
.sec-body th, .sec-body td { text-align: left; padding: 13px 16px; border-bottom: 1px solid var(--rule); vertical-align: top; }
.sec-body th { background: var(--navy); color: #fff; font-weight: 600; }
.sec-body blockquote { margin: 26px 0; padding: 6px 0 6px 24px; border-left: 3px solid var(--red); font-family: var(--display); font-size: 1.4rem; line-height: 1.4; }
.sec-body .actions { margin-top: 26px; }
.sec-body .city-links { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; }
.sec-body .city-links li, .content .city-links li { border: 1px solid var(--rule); border-radius: 6px; background: var(--white); }
.section.alt .city-links li { background: var(--paper); }
.sec-body .city-links a, .sec-body .city-links span { padding: 14px 40px 14px 16px; position: relative; }
.sec-body .city-links a::after { content: "\2192"; position: absolute; right: 16px; top: 50%; transform: translateY(-50%); color: var(--red); font-weight: 700; transition: transform .15s; }
.sec-body .city-links li:hover { border-color: var(--navy); }
.sec-body .city-links li:hover a::after { transform: translate(4px, -50%); }

/* FAQ */
.faq-help { margin-top: 28px; padding: 22px 22px 18px; background: var(--navy); color: #fff; border-radius: 8px; }
.faq-help p { margin: 0 0 6px; color: #dfe4ef; font-size: 1rem; }
.faq-help .phone { display: block; font-family: var(--display); font-weight: 700; font-size: 1.7rem; color: #fff; text-decoration: none; margin-bottom: 4px; }
.faq-help .small { font-size: .9rem; color: #b9c1d6; margin: 0; }
.faq-section .faq-list { border-top: 0; margin-top: 0; }
details.qa { border: 1px solid var(--rule); border-radius: 8px; background: var(--white); margin-bottom: 12px; padding: 0; }
.section.alt details.qa { background: var(--paper); }
details.qa summary { list-style: none; cursor: pointer; padding: 20px 56px 20px 22px; position: relative; }
details.qa summary::-webkit-details-marker { display: none; }
details.qa summary h3 { margin: 0; font-size: 1.18rem; line-height: 1.35; display: inline; }
details.qa summary::after { content: "+"; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); width: 30px; height: 30px; border-radius: 50%; background: var(--paper-2); color: var(--navy); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 1.2rem; }
details.qa[open] summary::after { content: "\2212"; background: var(--red); color: #fff; }
details.qa[open] { border-color: #cfc8bc; box-shadow: 0 10px 24px rgba(30,41,71,.07); }
details.qa .qa-a { padding: 0 22px 18px; }
details.qa .qa-a p:last-child { margin-bottom: 0; }
details.qa summary:focus-visible { outline: 3px solid var(--red); outline-offset: 2px; border-radius: 8px; }

@media (max-width: 960px) {
  .page-hero.has-visual .wrap, .split > .wrap { grid-template-columns: 1fr; }
  .hero-visual, .split .sec-head { position: static; }
  .hero-visual { max-width: 520px; }
  .sec-num { font-size: 2.6rem; margin-bottom: 10px; }
}
.sec-body details.qa summary h3 { border-left: 0; padding-left: 0; margin: 0; }
/* Section label v3: one quiet line, no outlined numerals, no underline */
.sec-head::after { display: none; }
.sec-label { display: flex; align-items: center; gap: 14px; margin: 0 0 20px; font-family: var(--text); font-size: .8rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-soft); }
.sec-label::after { content: ""; flex: 1; height: 1px; background: var(--rule); min-width: 32px; }
.sec-label .sec-num { display: inline; font-family: var(--text); font-size: .8rem; font-weight: 700; line-height: 1; color: var(--red); -webkit-text-stroke: 0; opacity: 1; margin: 0; letter-spacing: .1em; }
.sec-label .sec-eb::before { content: "\00b7"; margin-right: 14px; color: #b9b2a5; }
.section.alt .sec-label::after { background: #e8e3d9; }
@media (max-width: 960px) { .sec-label .sec-num { font-size: .8rem; margin: 0; } }

/* ---------- Inside pages v3: rotation, key facts, lead ---------- */
main .section { padding: clamp(52px, 7vw, 92px) 0; }
.bg-paper { background: var(--paper); }
.bg-white { background: var(--white); }
.bg-white .city-links li, .bg-white details.qa { background: var(--paper); }
.bg-paper .city-links li, .bg-paper details.qa { background: var(--white); }

/* Lead paragraph in the display face */
.sec-body > p:first-of-type { font-family: var(--display); font-weight: 400; font-size: clamp(1.3rem, 1.9vw, 1.5rem); line-height: 1.5; color: var(--navy); margin-bottom: 22px; }
.sec-body > p:first-of-type a { text-decoration-thickness: 1px; }

/* The sentence that states the rule */
strong.rule { font-weight: 600; color: var(--navy); background-image: linear-gradient(to top, rgba(142,41,40,.13) .42em, transparent .42em); padding: 0 1px; }
.sec-body > p:first-of-type strong.rule { font-weight: 500; }

/* Mirrored split */
.mirror > .wrap { display: grid; gap: 28px clamp(32px, 6vw, 96px); grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); align-items: start; }
.mirror .sec-head { order: 2; position: sticky; top: 28px; }
.mirror .sec-body { order: 1; justify-self: end; }

/* Centered */
.center > .wrap { display: block; max-width: 860px; }
.center .sec-head { text-align: center; margin: 0 auto 30px; max-width: 760px; }
.center .sec-label { justify-content: center; }
.center .sec-label::before { content: ""; flex: 1; height: 1px; background: var(--rule); min-width: 32px; }
.center .sec-body { max-width: 68ch; margin: 0 auto; }
.center .kf { display: flex; align-items: baseline; justify-content: center; gap: 18px; border: 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); padding: 18px 0; margin: 0 0 30px; text-align: center; }
.center .kf .kf-label { order: 2; margin: 0; }
.center .sec-body > p:first-of-type { text-align: left; }

/* Navy band */
.bg-navy { background: var(--navy); color: #dfe4ef; position: relative; overflow: hidden; }
.bg-navy::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse at 85% 0%, rgba(142,41,40,.35), transparent 55%); pointer-events: none; }
.bg-navy .wrap { position: relative; }
.bg-navy h2, .bg-navy .sec-body > p:first-of-type { color: #fff; }
.bg-navy p, .bg-navy li { color: #dfe4ef; }
.bg-navy a { color: #fff; text-decoration-color: #e06a68; }
.bg-navy .sec-label { color: #b9c1d6; }
.bg-navy .sec-label .sec-num { color: #e06a68; }
.bg-navy .sec-label::after { background: rgba(255,255,255,.18); }
.bg-navy strong.rule { color: #fff; background-image: linear-gradient(to top, rgba(224,106,104,.35) .42em, transparent .42em); }
.bg-navy .kf { border-color: #e06a68; }
.bg-navy .kf-big { color: #fff; }
.bg-navy .kf-big span, .bg-navy .kf-label { color: #e8a7a6; }
.bg-navy .pq p { color: #fff; }
.bg-navy .sec-body ul:not(.city-links) > li::before { background: #e06a68; }

/* Key figure */
.kf { margin: 34px 0 0; padding: 4px 0 4px 22px; border-left: 3px solid var(--red); }
.kf-label { margin: 0 0 6px; font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--red); }
.kf-big { margin: 0; font-family: var(--display); font-weight: 700; font-size: clamp(3rem, 5vw, 4.4rem); line-height: 1; color: var(--navy); }
.kf-big span { display: block; font-family: var(--text); font-weight: 600; font-size: 1rem; letter-spacing: .02em; color: var(--ink-soft); margin-top: 8px; }
.center .kf-big span { display: inline; margin: 0 0 0 10px; }

/* Pull quote */
.pq { margin: 34px 0 0; padding: 0 0 0 22px; border-left: 2px solid var(--rule); position: relative; }
.pq::before { content: "\201C"; position: absolute; left: 18px; top: -38px; font-family: var(--display); font-size: 5rem; line-height: 1; color: var(--red); opacity: .25; }
.pq p { margin: 0; font-family: var(--display); font-style: italic; font-size: 1.3rem; line-height: 1.45; color: var(--navy); }

@media (max-width: 960px) {
  .mirror > .wrap { grid-template-columns: 1fr; }
  .mirror .sec-head { order: 0; position: static; }
  .mirror .sec-body { order: 1; justify-self: stretch; }
  .center .sec-head { text-align: left; }
  .center .sec-label { justify-content: flex-start; }
  .center .sec-label::before { display: none; }
  .kf { margin-top: 22px; }
  .pq { display: none; }
}
.kf-src { margin: 10px 0 0; font-size: .85rem; color: var(--ink-soft); }
.bg-navy .kf-src { color: #b9c1d6; }
.center .kf-src { order: 3; margin: 0; }
.sec-body > p:first-of-type { font-family: var(--text); font-weight: 400; font-size: 1.125rem; line-height: 1.65; color: #2c3553; margin-bottom: 18px; }
.sec-body > p.lead { font-family: var(--display); font-weight: 400; font-size: clamp(1.3rem, 1.9vw, 1.5rem); line-height: 1.5; color: var(--navy); margin-bottom: 22px; }
.bg-navy .sec-body > p.lead { color: #fff; }
.bg-navy .sec-body > p:first-of-type:not(.lead) { color: #dfe4ef; }
strong.rule { background-image: linear-gradient(transparent 58%, rgba(242,226,138,.6) 58%); }
.bg-navy strong.rule { background-image: linear-gradient(transparent 62%, rgba(224,106,104,.4) 62%); }
.sec-body > p.lead strong.rule { font-weight: 500; }
.center .sec-head h2 { margin-left: auto; margin-right: auto; }
.center .kf .kf-label { order: 0; }
.center .kf { gap: 14px; }
@media (max-width: 960px) { .center .sec-head h2 { margin-left: 0; margin-right: 0; } .center .kf { justify-content: flex-start; } }
.bg-navy .city-links a { color: var(--navy); }
.bg-navy .city-links li { background: var(--paper); border-color: transparent; }
.stat-band .embed { color: #fff; }

/* ---------- Native components (replacing Squarespace code blocks) ---------- */
.facts-band { background: var(--paper); padding: 0 0 4px; }
.page-hero:has(+ .facts-band) .wrap { padding-bottom: clamp(104px, 11vw, 150px); }
.page-hero + .facts-band .facts { margin-top: clamp(-96px, -7vw, -64px); }
.facts { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); background: var(--white); border-radius: 10px; box-shadow: 0 24px 50px rgba(30,41,71,.14), 0 2px 0 rgba(30,41,71,.04); border-top: 4px solid var(--red); overflow: hidden; }
.facts-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.facts-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fact { padding: clamp(22px, 2.6vw, 34px) clamp(18px, 2.2vw, 30px); border-left: 1px solid var(--rule); }
.fact:first-child { border-left: 0; }
.fact-v { margin: 0 0 8px; font-family: var(--display); font-weight: 700; font-size: clamp(1.9rem, 3vw, 2.7rem); line-height: 1.05; color: var(--navy); }
.fact-l { margin: 0; font-size: .97rem; line-height: 1.45; color: var(--ink-soft); }
@media (max-width: 900px) {
  .facts, .facts-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fact:nth-child(3) { border-left: 0; }
  .fact:nth-child(n+3) { border-top: 1px solid var(--rule); }
}
@media (max-width: 480px) { .facts, .facts-3, .facts-2 { grid-template-columns: 1fr; } .fact { border-left: 0; border-top: 1px solid var(--rule); } .fact:first-child { border-top: 0; } }

.table-wrap { margin: 22px 0 26px; background: var(--white); border: 1px solid var(--rule); border-radius: 10px; overflow-x: auto; }
.bg-white .table-wrap { background: var(--paper); }
.data-table { width: 100%; border-collapse: collapse; font-size: 1rem; margin: 0; box-shadow: none; background: transparent; }
.sec-body .data-table th, .sec-body .data-table td, .data-table th, .data-table td { text-align: left; vertical-align: top; padding: 15px 18px; border-bottom: 1px solid var(--rule); background: transparent; color: var(--ink); }
.data-table thead th, .sec-body .data-table thead th { font-family: var(--text); font-size: .76rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); background: var(--paper-2); border-bottom: 1px solid #ddd6ca; }
.data-table tbody th { font-family: var(--display); font-weight: 700; font-size: 1.05rem; color: var(--navy); white-space: nowrap; }
.data-table tbody tr:last-child > * { border-bottom: 0; }
.data-table tbody tr:hover > * { background: rgba(142,41,40,.035); }
@media (max-width: 700px) {
  .data-table thead { display: none; }
  .data-table tr { display: block; padding: 14px 16px; border-bottom: 1px solid var(--rule); }
  .data-table tbody th, .data-table td { display: block; padding: 3px 0 !important; border: 0 !important; white-space: normal; }
  .data-table td[data-label]::before { content: attr(data-label); display: block; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); margin-top: 8px; }
}

.doc-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 24px 0; }
.doc-card { background: var(--white); border: 1px solid var(--rule); border-radius: 10px; padding: 26px 24px 22px; display: flex; flex-direction: column; gap: 16px; }
.bg-white .doc-card { background: var(--paper); }
.doc-card h3, .sec-body .doc-card h3 { margin: 0; padding: 0 0 14px; border: 0; border-bottom: 2px solid var(--red); font-size: 1.35rem; }
.doc-label { margin: 0 0 4px; font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); }
.doc-sec p:last-child { margin: 0; font-size: 1rem; }
.doc-alt { background: var(--paper-2); border-radius: 6px; padding: 14px 16px; margin-top: auto; }
.bg-white .doc-alt { background: #ece6db; }
.doc-alt .doc-label { color: var(--red); }
@media (max-width: 900px) { .doc-cards { grid-template-columns: 1fr; } }

.directory { margin: 18px 0 8px; }
.dir-tools { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 12px 24px; margin-bottom: 14px; }
.dir-tools label { font-family: var(--display); font-weight: 700; font-size: 1.35rem; color: var(--navy); }
.dir-search { display: flex; align-items: center; gap: 14px; flex: 1 1 420px; max-width: 620px; }
.dir-search input { flex: 1; min-height: 52px; padding: 0 18px 0 46px; font: inherit; font-size: 1rem; color: var(--ink); background: var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%234a5370' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='8' cy='8' r='6'/%3E%3Cpath d='M12.5 12.5L17 17'/%3E%3C/svg%3E") no-repeat 16px center; border: 1px solid #cfc8bc; border-radius: 8px; }
.dir-search input:focus { outline: 3px solid var(--red); outline-offset: 1px; border-color: var(--navy); }
.dir-count { font-size: .9rem; font-weight: 600; color: var(--ink-soft); white-space: nowrap; }
.dir-scroll { max-height: 640px; overflow-y: auto; }
.dir-scroll thead th { position: sticky; top: 0; z-index: 1; }
.dir-empty { padding: 22px 18px; margin: 0; color: var(--ink-soft); }

.state-index { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)) !important; }

/* Conditions */
.hv-listing .big strong { font-size: clamp(3.4rem, 6vw, 5rem); }
.hv-listing .big.long strong { font-size: clamp(2rem, 3.4vw, 2.6rem); line-height: 1.1; }
.hv-listing .or { font-weight: 600; color: var(--navy); }
.hv-listing .src a { color: var(--ink-soft); }
.page-hero .answer { margin: 0 0 22px; }
.page-hero .answer p { font-size: 1.12rem; color: #fff; }
.cond-group { padding: clamp(44px, 6vw, 72px) 0 !important; }
.cond-group:nth-of-type(even) { background: var(--white); }
.cg-head { display: grid; grid-template-columns: minmax(0, 1fr); max-width: 760px; margin-bottom: 26px; }
.cg-head h2 { margin: 0; font-size: clamp(1.7rem, 2.6vw, 2.3rem); }
.cond-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 16px; }
.cond-card { display: flex; flex-direction: column; gap: 6px; height: 100%; padding: 22px 22px 20px; background: var(--white); border: 1px solid var(--rule); border-radius: 10px; text-decoration: none; position: relative; transition: border-color .15s, box-shadow .15s, transform .15s; }
.cond-group:nth-of-type(even) .cond-card { background: var(--paper); }
.cond-card:hover { border-color: var(--navy); box-shadow: 0 14px 30px rgba(30,41,71,.09); transform: translateY(-2px); }
.cc-list { font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--red); }
.cc-name { font-family: var(--display); font-weight: 700; font-size: 1.4rem; line-height: 1.2; color: var(--navy); padding-right: 28px; }
.cc-desc { font-size: .98rem; line-height: 1.5; color: var(--ink-soft); }
.cond-card::after { content: "\2192"; position: absolute; right: 20px; top: 46px; color: var(--red); font-weight: 700; transition: transform .15s; }
.cond-card:hover::after { transform: translateX(4px); }

/* Free case review form */
.fcr-wrap { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 28px clamp(32px, 6vw, 96px); align-items: start; }
.fcr-side { position: sticky; top: 28px; }
.fcr-side h2 { margin: 0 0 18px; font-size: clamp(1.7rem, 2.6vw, 2.35rem); }
.fcr-side p { color: #2c3553; }
.fcr-card { background: var(--white); border: 1px solid var(--rule); border-top: 4px solid var(--red); border-radius: 10px; padding: clamp(22px, 3vw, 36px); box-shadow: 0 24px 50px rgba(30,41,71,.10); }
.fcr-form { display: grid; gap: 18px; }
.f-row.two { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.f { display: flex; flex-direction: column; gap: 7px; border: 0; padding: 0; margin: 0; min-width: 0; }
.f label, .f legend { font-weight: 600; font-size: .97rem; color: var(--navy); padding: 0; }
.opt { font-weight: 400; color: var(--ink-soft); }
.fcr-form input:not([type=radio]):not([type=checkbox]), .fcr-form select, .fcr-form textarea { width: 100%; min-height: 50px; padding: 12px 14px; font: inherit; font-size: 1rem; color: var(--ink); background: var(--paper); border: 1px solid #cfc8bc; border-radius: 8px; box-sizing: border-box; }
.fcr-form textarea { min-height: 130px; resize: vertical; }
.fcr-form input:focus, .fcr-form select:focus, .fcr-form textarea:focus { outline: 3px solid var(--red); outline-offset: 1px; background: var(--white); border-color: var(--navy); }
.radios { display: flex; flex-wrap: wrap; gap: 10px; }
.radios label { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border: 1px solid #cfc8bc; border-radius: 999px; background: var(--paper); font-weight: 500; cursor: pointer; }
.radios label:has(input:checked) { border-color: var(--navy); background: var(--navy); color: #fff; }
.radios input { accent-color: var(--red); }
.check { display: flex; gap: 12px; align-items: flex-start; font-size: .97rem; line-height: 1.5; color: #2c3553; }
.check input { margin-top: 4px; width: 18px; height: 18px; accent-color: var(--red); flex: none; }
.f-note { margin: 0; font-size: .9rem; color: var(--ink-soft); }
.fcr-form .btn { justify-self: start; min-width: 240px; }
@media (max-width: 960px) { .fcr-wrap { grid-template-columns: 1fr; } .fcr-side { position: static; } }
@media (max-width: 600px) { .f-row.two { grid-template-columns: 1fr; } .fcr-form .btn { width: 100%; } }

/* Team */
.team-head { max-width: 780px; margin-bottom: 34px; }
.team-head h2 { margin: 0; font-size: clamp(1.8rem, 2.8vw, 2.5rem); }
.team-head > p:not(.sec-label) { color: var(--ink-soft); margin: 14px 0 0; }
.staff-head { margin-top: clamp(56px, 7vw, 88px); }
.atty-list { display: grid; gap: 22px; }
.atty { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: clamp(24px, 4vw, 48px); align-items: start; background: var(--paper); border: 1px solid var(--rule); border-radius: 12px; padding: clamp(20px, 2.6vw, 32px); }
.atty-photo { margin: 0; position: relative; }
.atty-photo::after { content: ""; position: absolute; inset: auto -10px -10px auto; width: 60%; height: 60%; border-right: 3px solid var(--red); border-bottom: 3px solid var(--red); border-radius: 0 0 10px 0; pointer-events: none; }
.atty-photo img { display: block; width: 100%; height: auto; border-radius: 8px; filter: saturate(.92); }
.atty-role { margin: 0 0 4px; font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--red); }
.atty-body h3 { margin: 0 0 16px; font-size: clamp(1.6rem, 2.4vw, 2.1rem); }
.atty-body p { color: #2c3553; max-width: 70ch; }
.atty-links { margin: 18px 0 0; padding-top: 16px; border-top: 1px solid var(--rule); font-size: .95rem; }
.atty-links span { color: #b9b2a5; margin: 0 8px; }
.staff-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 20px; }
.staff { background: var(--paper); border: 1px solid var(--rule); border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; }
.staff img { display: block; width: 100%; aspect-ratio: 5 / 5.2; object-fit: cover; object-position: center 18%; filter: saturate(.92); }
.staff-body { padding: 18px 20px 20px; border-top: 3px solid var(--red); }
.staff-body h3 { margin: 0 0 4px; font-size: 1.3rem; }
.staff-role { margin: 0 0 12px; font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); }
.staff-body p:last-child { margin: 0; font-size: .95rem; line-height: 1.55; color: #2c3553; }
@media (max-width: 760px) { .atty { grid-template-columns: 1fr; } .atty-photo { max-width: 280px; } }

/* Legal pages */
.legal-hero .wrap { padding-top: clamp(44px, 6vw, 80px); padding-bottom: clamp(44px, 6vw, 80px); }
.legal-dates { font-size: .95rem !important; color: #b9c1d6 !important; }
.legal-wrap { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 8fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
.legal-toc { position: sticky; top: 28px; border-left: 2px solid var(--rule); padding-left: 18px; }
.legal-toc p { margin: 0 0 10px; font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--red); }
.legal-toc ol { list-style: none; margin: 0; padding: 0; }
.legal-toc li { padding: 5px 0; font-size: .95rem; }
.legal-toc a { text-decoration: none; color: var(--ink-soft); }
.legal-toc a:hover { color: var(--red); }
.legal-body { max-width: 74ch; background: var(--white); border: 1px solid var(--rule); border-radius: 12px; padding: clamp(24px, 4vw, 52px); }
.legal-body h2 { font-size: 1.55rem; margin: 40px 0 12px; scroll-margin-top: 20px; }
.legal-body h2:first-child { margin-top: 0; }
.legal-body h3 { font-size: 1.2rem; margin: 26px 0 8px; scroll-margin-top: 20px; }
.legal-body p, .legal-body li { color: #2c3553; font-size: 1.05rem; }
.legal-body ul { padding-left: 1.2em; }
.legal-contact { list-style: none; padding: 18px 20px !important; background: var(--paper); border-radius: 8px; }
.foot-links a { margin-right: 18px; }
@media (max-width: 900px) { .legal-wrap { grid-template-columns: 1fr; } .legal-toc { position: static; } }

/* Answer posts */
.post-hero .wrap { padding-top: clamp(44px, 6vw, 84px); padding-bottom: clamp(44px, 6vw, 84px); }
.post-hero h1 { max-width: 24ch; }
.post-dek { font-family: var(--display); font-size: clamp(1.2rem, 1.8vw, 1.45rem); color: #dfe4ef; max-width: 60ch; margin: 0 0 18px; }
.post-meta { font-size: .92rem; color: #b9c1d6; margin: 0; }
.post-meta span { margin: 0 8px; color: rgba(255,255,255,.3); }
.post-wrap { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 8fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
.post-toc { position: sticky; top: 28px; border-left: 2px solid var(--rule); padding-left: 18px; }
.post-toc p { margin: 0 0 10px; font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--red); }
.post-toc ol { margin: 0; padding-left: 1.1em; }
.post-toc li { padding: 5px 0; font-size: .95rem; color: var(--ink-soft); }
.post-toc a { color: #24418f; text-decoration: underline; text-decoration-color: #24418f; text-underline-offset: 3px; }
.post-toc a:hover { color: var(--red); text-decoration-color: var(--red); }
.post-body { max-width: 72ch; }
.post-answer { background: var(--white); border: 1px solid var(--rule); border-left: 4px solid var(--red); border-radius: 10px; padding: 22px 26px; margin-bottom: 36px; box-shadow: 0 14px 30px rgba(30,41,71,.06); }
.post-answer p { margin: 0; font-family: var(--display); font-size: clamp(1.18rem, 1.7vw, 1.36rem); line-height: 1.55; color: var(--navy); }
.post-sec { padding: 8px 0 18px; border-top: 1px solid var(--rule); margin-top: 18px; }
.post-sec h2 { font-size: clamp(1.5rem, 2.3vw, 2rem); margin: 22px 0 14px; scroll-margin-top: 20px; }
.post-sec p, .post-sec li { color: #2c3553; }
.post-sec ul { list-style: none; padding: 0; }
.post-sec ul > li { position: relative; padding: 5px 0 5px 28px; }
.post-sec ul > li::before { content: ""; position: absolute; left: 4px; top: 1em; width: 9px; height: 9px; background: var(--red); transform: rotate(45deg); }
.post-sec ol { padding-left: 1.3em; }
.post-sec ol > li { padding: 4px 0; }
.post-sec table { width: 100%; border-collapse: collapse; margin: 18px 0 22px; background: var(--white); border: 1px solid var(--rule); font-size: 1rem; }
.post-sec th, .post-sec td { text-align: left; padding: 12px 14px; border-bottom: 1px solid var(--rule); vertical-align: top; }
.post-sec th { background: var(--paper-2); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft); }
.to-toc { margin: 8px 0 0; font-size: .85rem; }
.to-toc a { color: var(--ink-soft); }
.post-faq .faq-list { margin-top: 8px; }
.post-sources { margin-top: 30px; padding: 20px 22px; background: var(--paper-2); border-radius: 10px; }
.post-sources p { margin: 0 0 8px; font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); }
.post-sources ul { margin: 0; padding-left: 1.1em; font-size: .95rem; }
.post-sources li { padding: 3px 0; }
.related h2 { margin: 0 0 24px; }
.post-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.post-card { display: flex; flex-direction: column; gap: 8px; height: 100%; padding: 22px 22px 20px; background: var(--white); border: 1px solid var(--rule); border-radius: 10px; text-decoration: none; transition: border-color .15s, box-shadow .15s, transform .15s; }
.bg-white .post-card, .cond-group:nth-of-type(even) .post-card { background: var(--paper); }
.post-card:hover { border-color: var(--navy); box-shadow: 0 14px 30px rgba(30,41,71,.09); transform: translateY(-2px); }
.pc-cat { font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--red); }
.pc-title { font-family: var(--display); font-weight: 700; font-size: 1.3rem; line-height: 1.25; color: var(--navy); }
.pc-dek { font-size: .97rem; line-height: 1.5; color: var(--ink-soft); }
@media (max-width: 900px) { .post-wrap { grid-template-columns: 1fr; } .post-toc { position: static; } }

/* Glossary */
.g-nav { position: sticky; top: 0; z-index: 3; background: var(--paper); padding: 14px 0; margin-bottom: 22px; border-bottom: 1px solid var(--rule); }
.g-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.g-nav a { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; border: 1px solid var(--rule); border-radius: 6px; background: var(--white); font-weight: 700; text-decoration: none; color: var(--navy); }
.g-nav a:hover { background: var(--navy); color: #fff; }
.g-letter { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 24px; padding: 26px 0; border-bottom: 1px solid var(--rule); scroll-margin-top: 80px; }
.g-big { margin: 0; font-family: var(--display); font-weight: 700; font-size: 3.4rem; line-height: 1; color: var(--red); }
.g-letter dl { margin: 0; }
.g-letter dt { font-family: var(--display); font-weight: 700; font-size: 1.3rem; color: var(--navy); margin: 0 0 6px; scroll-margin-top: 90px; }
.g-letter dd { margin: 0 0 22px; max-width: 72ch; }
.g-letter dd p { margin: 0 0 4px; color: #2c3553; }
.g-see { font-weight: 600; white-space: nowrap; }
.g-src { font-size: .85rem; color: var(--ink-soft) !important; }
.g-src a { color: var(--ink-soft); }
@media (max-width: 700px) { .g-letter { grid-template-columns: 1fr; gap: 6px; } .g-big { font-size: 2.4rem; } }
@media (min-width: 1061px) {
  .site-nav a, .site-nav .menu-btn, .nav-cta { white-space: nowrap; }
  .site-nav a, .site-nav .menu-btn { padding: 12px 9px; font-size: .95rem; }
}
@media (min-width: 1061px) and (max-width: 1200px) {
  .brand { font-size: 1.5rem; }
  .site-nav a, .site-nav .menu-btn { padding: 12px 6px; font-size: .9rem; }
  .nav-cta a { padding: 12px 14px; margin-left: 6px; }
}
.nf-links { list-style: none; padding: 0; margin: 18px 0 0; display: grid; gap: 8px; }
.nf-links a { color: #fff; font-weight: 600; }
.post-wrap > *, .legal-wrap > *, .split > .wrap > *, .mirror > .wrap > * { min-width: 0; }
.post-toc a, .legal-toc a { overflow-wrap: anywhere; }
.dir-search input { min-width: 0; }
@media (max-width: 600px) { .dir-search { flex-wrap: wrap; flex-basis: 100%; } .dir-search input { flex-basis: 100%; } }
@media (max-width: 700px) {
  .post-sec table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .post-sec th, .post-sec td { min-width: 120px; }
}

.foot-credit { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 24px; }
