/* ==========================================================================
   Home Inspection Expert Witness: styles.css (redesign rev. 2026-11-01)
   Requires tokens.css (colors, fonts, radii). Class names from earlier
   versions still work. Mobile-first. System fonts only. No external requests.
   ========================================================================== */

:root{
  --max:1120px;
  --text:720px;
  --shadow:0 1px 2px var(--shadow-1),0 6px 20px var(--shadow-1);
  --shadow-lift:0 2px 4px var(--shadow-2),0 14px 34px var(--shadow-3);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:24px}
body{margin:0;font:17px/1.65 var(--sans);color:var(--ink);background:var(--bg);text-rendering:optimizeLegibility}
img,svg{max-width:100%}
a{color:var(--link);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}

h1,h2,h3{font-family:var(--serif);color:var(--navy);font-weight:600;letter-spacing:-.005em}
h1{font-size:2rem;line-height:1.15;margin:.2em 0 .55em}
h2{font-size:1.5rem;line-height:1.25;margin:1.9em 0 .6em}
h3{font-size:1.2rem;line-height:1.3;margin:0 0 .4em}
p{margin:0 0 1em}

/* ---------- Layout ---------- */
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
.narrow{max-width:var(--text)}

/* ---------- Header ---------- */
header,footer{background:var(--navy);color:var(--on-navy)}
header a,footer a{color:var(--on-navy);text-decoration:none}
header{border-bottom:1px solid var(--brass-line)}
.top{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:14px 20px;max-width:var(--max);margin:0 auto}
.brand{display:inline-flex;align-items:center;gap:12px;font-family:var(--serif);font-weight:600;font-size:1.08rem;letter-spacing:.01em;color:var(--white)}
.brand img{display:block;width:40px;height:40px;flex:0 0 40px}
.logo-slot{display:inline-flex;width:40px;height:40px;flex:0 0 40px}
.logo-slot svg,.logo-slot img{width:40px;height:40px;display:block}
nav{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px}
nav a{font-size:15px;font-weight:500;padding:6px 0;border-bottom:2px solid var(--clear)}
nav a:not(.btn):hover{border-bottom-color:var(--brass)}
nav a[aria-current="page"]{border-bottom-color:var(--brass)}
nav .btn{padding:8px 14px;min-height:38px;font-size:14px;border-bottom:0}

@media(min-width:641px){
  .top{flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px}
  nav{gap:6px 20px}
}
@media(min-width:760px){
  html{scroll-padding-top:90px}
  header{position:sticky;top:0;z-index:50;box-shadow:0 1px 0 var(--shadow-edge),0 6px 18px var(--shadow-header)}
  nav{gap:6px 24px}
}

/* ---------- Main (plain pages) ---------- */
main{padding:40px 0 72px;overflow-wrap:anywhere}
main > .wrap > :where(h1,h2,h3,p,ul,ol,form,details,.lead,.note,.card,.empty-state,.state-filter,.independence){max-width:var(--text)}
main h1::after{content:"";display:block;width:56px;height:3px;background:var(--brass);border-radius:var(--radius-xs);margin-top:.45em}
@media(min-width:700px){main > .wrap > h1{font-size:2.5rem}}

.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:13px;font-weight:600;color:var(--muted);margin:0 0 .4em}
.lead{font-size:1.14rem;line-height:1.6;color:var(--charcoal)}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;background:var(--navy);color:var(--white);padding:12px 22px;border-radius:var(--radius-btn);text-decoration:none;font:600 16px/1.2 var(--sans);border:1.5px solid var(--navy);cursor:pointer;transition:background-color .15s,border-color .15s,color .15s,transform .15s}
.btn:hover{background:var(--navy-deep);border-color:var(--navy-deep);text-decoration:none}
.btn:active{transform:translateY(1px)}
.btn-accent{background:var(--brass);border-color:var(--brass);color:var(--navy)}
.btn-accent:hover{background:var(--brass-soft);border-color:var(--brass-soft);color:var(--navy)}
.btn-ghost{background:var(--clear);color:var(--navy);border-color:currentColor}
.btn-ghost:hover{background:var(--tint-navy);border-color:var(--navy);color:var(--navy)}
.btn-sm{min-height:38px;padding:8px 14px;font-size:14px}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin:1.4em 0 0}

/* ---------- Cards / notes ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px;margin:16px 0;box-shadow:var(--shadow)}
.card > :last-child{margin-bottom:0}
.card h3{margin-top:0}
.note{font-size:14.5px;line-height:1.6;color:var(--muted)}
main p.note{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--line-strong);border-radius:var(--radius-md);padding:14px 18px;margin:20px 0}
form p.note,main form .note{background:none;border:0;padding:0}

/* ---------- Icons (inline SVG, currentColor) ---------- */
.icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;flex:0 0 48px;border-radius:var(--radius-lg);background:var(--icon-bg);color:var(--navy);box-shadow:inset 0 0 0 1px var(--icon-ring)}
.icon svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.icon img{width:28px;height:28px}

/* ---------- Forms ---------- */
form label{display:block;margin-top:14px;font-weight:600;font-size:15px;color:var(--charcoal)}
input,select,textarea{width:100%;padding:11px 12px;border:1px solid var(--input-border);border-radius:var(--radius-btn);font:inherit;color:var(--ink);background:var(--surface);transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{border-color:var(--navy);box-shadow:0 0 0 3px var(--focus-halo)}
textarea{min-height:140px;resize:vertical}
form .btn{margin-top:20px}
.check-row{display:flex;align-items:flex-start;gap:10px;margin-top:18px}
.check-row input[type=checkbox]{width:auto;flex:0 0 auto;margin:5px 0 0;padding:0;accent-color:var(--navy)}
form .check-row label{margin-top:0;font-weight:400}

/* ---------- Details ---------- */
details{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-btn);padding:12px 16px;margin:10px 0;box-shadow:0 1px 2px var(--shadow-soft)}
summary{font-weight:600;cursor:pointer;color:var(--navy)}
details[open] summary{margin-bottom:8px}

/* ---------- Home: hero ---------- */
main.home{padding:0}
.hero{background:var(--navy);background-image:radial-gradient(900px 420px at 85% 10%,var(--brass-glow),var(--clear) 60%),linear-gradient(180deg,var(--navy) 0%,var(--navy-mid) 100%);color:var(--on-navy);padding:48px 0 88px}
.hero-grid{display:grid;gap:40px;align-items:center}
.hero .eyebrow{color:var(--brass)}
.hero h1{color:var(--white);font-size:clamp(2.3rem,7vw,3.6rem);line-height:1.05;margin:.1em 0 .4em}
.hero-sub{display:inline-block;font-size:14px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--on-navy);border-left:3px solid var(--brass);padding:2px 0 2px 12px;margin:0 0 1.2em}
.hero .lead{color:var(--on-navy-muted);max-width:60ch}
.hero a:not(.btn){color:var(--white)}
.hero .btn-ghost,.band .btn-ghost{color:var(--on-navy)}
.hero .btn-ghost:hover,.band .btn-ghost:hover{background:var(--tint-white);color:var(--white);border-color:var(--white)}
.hero-art{aspect-ratio:4/3;border-radius:var(--radius-xl);overflow:hidden;background:var(--tint-white-faint);border:1px solid var(--brass-line);box-shadow:0 20px 50px var(--shadow-deep);color:var(--on-navy)}
.hero-art svg,.hero-art img{display:block;width:100%;height:100%;object-fit:cover}
.hero-art .art-accent{color:var(--brass)}
@media(min-width:900px){
  .hero{padding:80px 0 120px}
  .hero-grid{grid-template-columns:1.12fr .88fr;gap:64px}
}

/* ---------- Home: sections ---------- */
.section{padding:56px 0}
.section h2{margin-top:0}
.section-tight{padding-top:8px}
.section-alt{background:var(--bg-alt);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.section-head{max-width:var(--text);margin-bottom:28px}
.section-head h2{font-size:clamp(1.6rem,3.2vw,2.1rem)}
@media(min-width:900px){.section{padding:88px 0}.section-tight{padding-top:16px}}

/* Availability facts card overlapping hero */
.intro{padding-top:0;padding-bottom:40px}
.intro .facts{margin:-56px 0 0;position:relative;padding:26px}
.facts p{margin:0 0 1em;padding-top:14px;border-top:2px solid var(--brass)}
.facts p:last-child{margin-bottom:0}
@media(min-width:900px){
  .intro .facts{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;padding:32px 34px;margin-top:-72px}
  .facts p{margin:0}
}
.intro .note{max-width:var(--text);margin-top:28px}

/* Practice cards */
.practice-grid{display:grid;gap:20px}
.practice-grid .card{margin:0;display:flex;flex-direction:column;gap:14px;padding:26px;transition:box-shadow .2s,transform .2s}
.practice-grid .card:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}
.practice-grid .card p{margin:0}
@media(min-width:760px){.practice-grid{grid-template-columns:1fr 1fr;gap:24px}}

/* Rates on request */
.rates{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;margin:24px 0 0;padding:20px 24px;border-left:4px solid var(--brass)}
.rates-label{display:flex;align-items:center;gap:16px;flex:1 1 240px;margin:0;font:600 1.3rem/1.3 var(--serif);color:var(--navy)}
.rates .btn{flex:0 0 auto}

/* Retention: timeline */
.retention-grid{display:grid;gap:36px;align-items:start}
@media(min-width:960px){.retention-grid{grid-template-columns:1.05fr .95fr;gap:56px}}
.steps{list-style:none;margin:0;padding:0;counter-reset:step}
.steps li{position:relative;counter-increment:step;padding:4px 0 26px 60px;min-height:40px}
.steps li::before{content:counter(step);position:absolute;left:0;top:0;width:40px;height:40px;border-radius:var(--radius-round);background:var(--navy);color:var(--white);font:600 1.05rem/40px var(--serif);text-align:center;box-shadow:0 0 0 4px var(--bg-alt),0 0 0 5px var(--line-strong)}
.steps li::after{content:"";position:absolute;left:19px;top:46px;bottom:4px;width:2px;background:var(--line-strong)}
.steps li:last-child{padding-bottom:0}
.steps li:last-child::after{display:none}
.steps strong{color:var(--navy)}
.terms{font-size:16px}
.terms .card{margin-top:0}

/* Scope */
.scope p:last-child{margin-bottom:0}

/* Secondary (directory) sections */
.secondary .section-head h2{font-size:clamp(1.4rem,2.6vw,1.8rem)}
.directory-start{border-top:3px solid var(--brass)}

/* ---------- Directory: state tile map ---------- */
.state-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(54px,1fr));gap:6px;max-width:860px;margin:8px 0 18px}
.state-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:5/4;min-height:44px;border-radius:var(--radius-md);background:var(--tile-bg);border:1px solid var(--tile-border);color:var(--tile-text);font:600 14px/1 var(--sans);letter-spacing:.04em;text-decoration:none;transition:background-color .15s,color .15s,border-color .15s,transform .15s}
.state-tile:hover{background:var(--surface);border-color:var(--navy);color:var(--navy);text-decoration:none;transform:translateY(-1px)}
.state-tile.has{background:var(--navy);border-color:var(--brass);color:var(--white);box-shadow:0 0 0 2px var(--brass-line),var(--shadow)}
.state-tile.has:hover{background:var(--navy-deep);color:var(--white)}
.state-tile .count{display:block;margin-top:4px;font-size:10.5px;font-weight:600;letter-spacing:.02em;color:var(--brass);white-space:nowrap}
@media(min-width:760px){
  .state-grid{grid-template-columns:repeat(11,1fr)}
  .state-grid .state-tile{grid-column:var(--c);grid-row:var(--r);aspect-ratio:1}
}
.state-legend{list-style:none;padding:0;margin:0 0 8px;display:flex;flex-wrap:wrap;gap:10px 28px;font-size:14.5px;color:var(--muted)}
.state-legend li{display:flex;align-items:center;gap:10px;padding:4px 8px;border-radius:var(--radius-md);transition:background-color .15s}
.state-legend li.is-active{background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}
.state-legend .swatch{display:inline-block;width:26px;height:22px;border-radius:var(--radius-sm);background:var(--tile-bg);border:1px solid var(--tile-border);flex:0 0 auto}
.state-legend .swatch.has{background:var(--navy);border-color:var(--brass)}

/* ---------- Directory: listing criteria ---------- */
.criteria-grid{list-style:none;margin:0;padding:0;display:grid;gap:16px}
.criteria-card{display:flex;align-items:center;gap:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow);font-weight:500;color:var(--charcoal);line-height:1.45}
@media(min-width:640px){.criteria-grid{grid-template-columns:1fr 1fr}}
@media(min-width:960px){.criteria-grid{grid-template-columns:repeat(3,1fr);gap:20px}}
.criteria-grid + .note{max-width:var(--text)}

.listing-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px 28px;margin-top:28px;padding:24px 26px}
.listing-cta p{margin:0;max-width:56ch;font-weight:500;color:var(--charcoal)}

/* ---------- CTA band ---------- */
.band{background:var(--navy);background-image:radial-gradient(700px 300px at 10% 100%,var(--brass-glow-strong),var(--clear) 60%);color:var(--on-navy);padding:56px 0}
.band .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px 40px}
.band h2{color:var(--white);margin:0 0 .25em;font-size:clamp(1.6rem,3vw,2.1rem)}
.band p{margin:0;color:var(--on-navy-muted)}
.band .btn-row{margin:0}

/* ---------- Legal notes ---------- */
.closing{padding:40px 0 64px;border-top:1px solid var(--line)}
.closing .note{max-width:var(--text);margin:0 0 16px}
.closing .note:last-child{margin-bottom:0}

/* ---------- Footer ---------- */
footer{background:var(--navy-deep);padding:40px 0;font-size:14.5px;border-top:3px solid var(--brass)}
footer p{margin:.4em 0}
footer .footer-brand{font-family:var(--serif);font-size:1.1rem;color:var(--white);font-weight:600}
footer .note{color:var(--on-navy-muted)}
.footer-links{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 0}
.footer-links li{display:flex;align-items:center}
.footer-links li + li::before{content:"";width:4px;height:4px;border-radius:var(--radius-round);background:var(--brass);margin:0 12px}
footer a:hover{text-decoration:underline}

/* ---------- Expert directory (other pages) ---------- */
.state-filter{margin:20px 0 6px}
.state-filter label{display:block;margin-bottom:6px;font-weight:600;font-size:15px}
.state-filter select{max-width:340px;background:var(--surface)}
.experts-grid{display:grid;grid-template-columns:1fr;gap:16px;margin:16px 0}
.experts-grid .card{margin:0}
.experts-grid[hidden]{display:none}
.expert-card{border-top:3px solid var(--navy)}
.expert-card h2{margin:0 0 .3em;font-size:1.2rem}
.expert-card p{margin:.5em 0}
.expert-card [hidden]{display:none}
.expert-meta{font-size:14px;font-weight:600;color:var(--muted)}
.expert-links a{display:inline-block;margin-right:18px;font-weight:600}
@media(min-width:700px){.experts-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}}
.owner-label{display:inline-block;font-size:13px;font-weight:600;color:var(--label-text);background:var(--label-bg);border:1px solid var(--label-border);border-radius:var(--radius-sm);padding:2px 8px}
.badge{display:inline-block;font-size:13px;font-weight:600;color:var(--badge-text);background:var(--surface);border:1px solid var(--badge-border);border-radius:var(--radius-sm);padding:2px 8px}
.empty-state{background:var(--surface);border:1px dashed var(--badge-border);border-radius:var(--radius);padding:20px;margin:16px 0}
.empty-state[hidden]{display:none}
.independence{border-top:1px solid var(--line);margin-top:32px;padding-top:4px}

/* ---------- Draft banner ---------- */
.draft-banner{background:var(--draft-bg);color:var(--draft-text);border-bottom:2px solid var(--draft-border);padding:10px 20px;text-align:center;font-size:15px}

/* ---------- A11y ---------- */
.skip{position:absolute;left:8px;top:-60px;z-index:100;background:var(--white);color:var(--link);padding:8px 14px;border-radius:var(--radius-sm);font-weight:600}
.skip:focus{top:8px}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid var(--link);outline-offset:2px}
header :focus-visible,footer :focus-visible,.hero :focus-visible,.band :focus-visible{outline-color:var(--white)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}
.hero-name{display:block}.hero-h1{display:block;font-family:var(--sans);font-size:clamp(1.05rem,2.6vw,1.3rem);font-weight:500;line-height:1.35;color:var(--on-navy);margin-top:.5em;letter-spacing:0}
