:root {
  --ink: #101828;
  --muted: #526070;
  --line: #d6dee8;
  --paper: #ffffff;
  --soft: #f6f8fb;
  --soft-2: #eef5f9;
  --brand: #145e7a;
  --brand-dark: #0a2239;
  --brand-2: #0f766e;
  --accent: #b45309;
  --accent-soft: #fff7ed;
  --danger: #b42318;
  --shadow: 0 18px 48px rgba(16, 24, 40, .11);
  --shadow-strong: 0 20px 55px rgba(10, 34, 57, .18);
  --radius: 22px;
  --radius-sm: 14px;
  --max: 1160px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--paper);
  line-height: 1.6;
}
a { color: var(--brand); text-decoration: none; }
a:hover { text-decoration: underline; }
img { max-width: 100%; height: auto; }
.container { width: min(var(--max), calc(100% - 36px)); margin: 0 auto; }
.skip-link { position:absolute; left:-999px; top:auto; width:1px; height:1px; overflow:hidden; }
.skip-link:focus { left: 16px; top: 16px; width:auto; height:auto; padding: 10px 14px; background:#fff; z-index:999; border-radius:10px; box-shadow: var(--shadow); }
.site-header { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.96); backdrop-filter: blur(16px); border-bottom: 1px solid rgba(214,222,232,.9); box-shadow: 0 8px 24px rgba(16,24,40,.045); }
.nav { height: 72px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.brand { display:flex; align-items:center; gap:12px; font-weight: 800; color: var(--ink); letter-spacing: -.02em; }
.brand-mark { width: 42px; height: 42px; border-radius: 14px; display:grid; place-items:center; color:#fff; background: linear-gradient(135deg, var(--brand-dark), var(--brand)); box-shadow: 0 10px 24px rgba(10,34,57,.24); font-weight:900; }
.brand small { display:block; font-size: 12px; color: var(--muted); font-weight: 650; letter-spacing: .02em; margin-top: -4px; }
.nav-links { display:flex; align-items:center; gap: 22px; font-size: 15px; }
.nav-links a { color: #263548; font-weight: 700; }
.nav-links a:hover { color: var(--brand); text-decoration: none; }
.nav-cta, .btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:46px; padding: 0 20px; border-radius: 999px; background: linear-gradient(135deg, var(--brand-dark), var(--brand)); color:#fff; font-weight:800; letter-spacing: .005em; box-shadow: 0 12px 28px rgba(10,34,57,.22); border: 1px solid rgba(255,255,255,.08); transition: transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease; }
.nav-links .nav-cta { color:#fff; padding: 0 22px; }
.nav-links .nav-cta:hover, .btn:hover { background: linear-gradient(135deg, #061a2d, #0f4f70); color:#fff; text-decoration:none; transform: translateY(-1px); box-shadow: 0 16px 34px rgba(10,34,57,.28); }
.btn.primary { background: linear-gradient(135deg, var(--brand-dark), var(--brand)); color:#fff; }
.btn.secondary { background:#fff; color: var(--brand-dark); border-color: #c9d5df; box-shadow: 0 8px 18px rgba(16,24,40,.06); }
.btn.secondary:hover { background: var(--soft); color: var(--brand-dark); border-color:#b8c7d4; box-shadow: 0 12px 24px rgba(16,24,40,.08); }
/* Backward-compatible: older .warning CTA class now uses the primary button style. Amber is reserved for warning/info panels, not action buttons. */
.btn.warning { background: linear-gradient(135deg, var(--brand-dark), var(--brand)); color:#fff; box-shadow: 0 12px 28px rgba(10,34,57,.22); }
.btn.warning:hover { background: linear-gradient(135deg, #061a2d, #0f4f70); color:#fff; box-shadow: 0 16px 34px rgba(10,34,57,.28); }
.mobile-menu { display:none; background:none; border:1px solid var(--line); border-radius:10px; padding:8px 10px; font-weight:700; }
.hero { position:relative; overflow:hidden; padding: 74px 0 58px; background:
  radial-gradient(circle at top right, rgba(20,94,122,.18), transparent 34%),
  radial-gradient(circle at 12% 8%, rgba(15,118,110,.10), transparent 28%),
  linear-gradient(180deg, #f7fafc 0%, #ffffff 100%);
}
.hero::before { content:""; position:absolute; inset: 0; background-image: linear-gradient(rgba(20,94,122,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(20,94,122,.055) 1px, transparent 1px); background-size: 36px 36px; opacity: .55; pointer-events:none; }
.hero-grid { position:relative; display:grid; grid-template-columns: 1.05fr .85fr; gap: 48px; align-items:start; }
.eyebrow { display:inline-flex; align-items:center; gap:8px; padding:8px 12px; border:1px solid #c9dbe7; border-radius:999px; background:#fff; color:var(--brand-dark); font-weight:800; font-size:13px; box-shadow: 0 8px 18px rgba(16,24,40,.05); }
h1 { margin: 18px 0 16px; font-size: clamp(40px, 6vw, 68px); line-height: .98; letter-spacing: -.055em; }
h2 { font-size: clamp(28px, 4vw, 42px); line-height: 1.08; letter-spacing: -.035em; margin: 0 0 16px; }
h3 { font-size: 22px; line-height: 1.18; letter-spacing: -.02em; margin: 0 0 10px; }
p { margin: 0 0 16px; }
.lead { font-size: 20px; color: #475569; max-width: 690px; }
.hero-actions { display:flex; gap: 12px; flex-wrap:wrap; margin: 28px 0; }
.hero-request { display:none; }
.trust-row { display:grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 34px; }
.trust-card { background:#fff; border:1px solid var(--line); border-radius: 16px; padding: 14px; box-shadow: 0 10px 24px rgba(15,36,54,.06); }
.trust-card strong { display:block; font-size: 14px; }
.trust-card span { display:block; font-size: 13px; color: var(--muted); }
.form-card { background: rgba(255,255,255,.98); border: 1px solid rgba(214,222,232,.95); border-top: 4px solid var(--brand); border-radius: var(--radius); box-shadow: var(--shadow-strong); padding: 26px; }
.form-card .form-title { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; margin-bottom: 18px; }
.badge { display:inline-flex; align-items:center; border-radius:999px; padding: 6px 10px; font-size:12px; font-weight:900; background: #e6f4f1; color: #0b5f56; white-space:nowrap; border: 1px solid #cce7e1; }
label { display:block; font-weight: 720; font-size: 14px; margin: 12px 0 6px; }
input, select, textarea { width:100%; font: inherit; border: 1px solid #cfdbe4; border-radius: 12px; padding: 12px 13px; background: #fff; color: var(--ink); }
input:focus, select:focus, textarea:focus { outline: 3px solid rgba(20,94,122,.20); border-color: var(--brand); }
textarea { min-height: 96px; resize: vertical; }
.form-grid { display:grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
.consent { display:flex; align-items:flex-start; gap:10px; margin: 14px 0; font-size:13px; color:var(--muted); }
.consent input { width:auto; margin-top: 4px; }
.form-disclaimer { font-size: 12px; color: var(--muted); margin-top: 12px; }
.section { padding: 72px 0; }
.section.soft { background: var(--soft); }
.section.tint { background: linear-gradient(180deg, var(--soft-2), #fff); }
.section-header { max-width: 790px; margin-bottom: 28px; }
.section-header.center { text-align:center; margin-left:auto; margin-right:auto; }
.grid-3 { display:grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.grid-2 { display:grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.card { background:#fff; border:1px solid var(--line); border-radius: var(--radius-sm); padding: 24px; box-shadow: 0 10px 30px rgba(15,36,54,.06); }
.card.flush { padding:0; overflow:hidden; }
.card .icon { width:44px; height:44px; border-radius: 14px; background: #e6f2f7; color: var(--brand-dark); display:grid; place-items:center; font-weight:900; margin-bottom: 16px; border: 1px solid #c9dbe7; }
.kicker { color: var(--brand); text-transform: uppercase; letter-spacing: .12em; font-weight: 900; font-size: 12px; margin-bottom: 10px; }
.checklist { padding-left:0; margin:0; list-style:none; }
.checklist li { position:relative; padding-left: 28px; margin: 10px 0; }
.checklist li::before { content:"✓"; position:absolute; left:0; top:0; color: var(--brand-2); font-weight:900; }
.warning-box { background:var(--accent-soft); border:1px solid #fed7aa; border-left: 4px solid var(--accent); border-radius: var(--radius-sm); padding: 20px; }
.info-box { background:#eef7fb; border:1px solid #c9dbe7; border-left: 4px solid var(--brand); border-radius: var(--radius-sm); padding: 20px; }
.answer-box { background:#fff; border-left: 5px solid var(--brand); border-radius: 16px; padding: 20px 22px; box-shadow: 0 10px 24px rgba(16,24,40,.06); margin: 22px 0; }
.table-wrap { overflow-x:auto; border:1px solid var(--line); border-radius: 16px; background:#fff; }
table { width:100%; border-collapse: collapse; }
th, td { padding: 14px 16px; border-bottom: 1px solid var(--line); text-align:left; vertical-align:top; }
th { background: #f5f9fc; font-size:13px; color: var(--brand-dark); text-transform: uppercase; letter-spacing: .05em; }
tr:last-child td { border-bottom: none; }
.cta-band { background: linear-gradient(135deg, #0a2239, #145e7a); color:#fff; border-radius: 28px; padding: 34px; display:flex; align-items:center; justify-content:space-between; gap:24px; box-shadow: var(--shadow-strong); }
.cta-band p { color: rgba(255,255,255,.82); margin-bottom:0; }
.cta-band .btn { background:#fff; color: var(--brand-dark); box-shadow:none; }
.cta-band .btn:hover { background:#e7f3f8; }
.breadcrumb { font-size: 14px; color: var(--muted); margin-bottom: 20px; }
.page-hero { padding: 56px 0 38px; background: linear-gradient(180deg, #f7fbfe, #fff); border-bottom:1px solid var(--line); }
.page-grid { display:grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 38px; align-items:start; }
.sidebar { position: sticky; top: 94px; }
.toc { background:#fff; border:1px solid var(--line); border-radius: 18px; padding: 18px; box-shadow: 0 10px 24px rgba(15,36,54,.05); }
.toc a { display:block; padding: 8px 0; border-bottom:1px solid #edf2f5; font-weight:650; color:var(--ink); }
.toc a:last-child { border-bottom:none; }
.source-list { font-size: 14px; color: var(--muted); }
.source-list li { margin-bottom: 8px; }
.county-list { display:grid; grid-template-columns: repeat(4, 1fr); gap:12px; }
.county-list a { display:block; padding: 14px 16px; background:#fff; border:1px solid var(--line); border-radius: 14px; font-weight:750; color:var(--ink); }
.faq details { border:1px solid var(--line); border-radius: 16px; background:#fff; padding: 16px 18px; margin-bottom: 12px; }
.faq summary { cursor:pointer; font-weight: 800; }
.faq p { margin-top: 10px; color: var(--muted); }
.site-footer { background: #0a2239; color:#d7e2e8; padding: 48px 0 24px; }
.footer-grid { display:grid; grid-template-columns: 1.1fr .7fr .7fr; gap: 36px; }
.site-footer a { color:#fff; }
.site-footer .muted { color:#9fb1bd; font-size: 14px; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.14); margin-top: 34px; padding-top: 18px; display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; font-size: 13px; color:#9fb1bd; }
.plan { border: 1px solid var(--line); border-radius: 20px; padding: 24px; background:#fff; box-shadow: 0 10px 30px rgba(15,36,54,.06); }
.price { font-size: 38px; letter-spacing:-.04em; font-weight:900; margin: 8px 0; }
.price span { font-size: 15px; color:var(--muted); font-weight:650; }
.noindex-note { font-size: 13px; color: var(--muted); background:#fff7ed; border:1px solid #fed7aa; padding: 12px 14px; border-radius: 14px; }

.nav-cta:focus-visible, .btn:focus-visible, .mobile-menu:focus-visible {
  outline: 3px solid rgba(146,64,14,.28);
  outline-offset: 3px;
}
.btn:active, .nav-cta:active { transform: translateY(0); }
.card { transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.card:hover { transform: translateY(-2px); border-color:#c9d5df; box-shadow: 0 16px 34px rgba(16,24,40,.085); }
input, select, textarea { box-shadow: inset 0 1px 0 rgba(16,24,40,.02); }
button.btn { cursor:pointer; }

@media (max-width: 920px) {
  .hero-request { display:inline-flex; }
  .hero-grid, .page-grid, .grid-2 { grid-template-columns: 1fr; }
  .grid-3 { grid-template-columns: 1fr 1fr; }
  .trust-row { grid-template-columns: 1fr; }
  .sidebar { position: static; }
  .county-list { grid-template-columns: 1fr 1fr; }
  .footer-grid { grid-template-columns: 1fr; }
}
@media (max-width: 740px) {
  .mobile-menu { display:inline-flex; }
  .nav-links { display:none; position:absolute; left:18px; right:18px; top:72px; background:#fff; border:1px solid var(--line); border-radius:18px; padding:16px; box-shadow:var(--shadow); flex-direction:column; align-items:flex-start; }
  .nav-links.open { display:flex; }
  .nav-cta { width:100%; }
  .form-grid, .grid-3, .county-list { grid-template-columns: 1fr; }
  .section { padding: 54px 0; }
  .cta-band { flex-direction:column; align-items:flex-start; }
  h1 { font-size: 42px; }
}


/* Hidden anti-spam field for form submissions */
.form-honeypot {
  position: absolute;
  left: -10000px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}


/* v8 expanded content components */
.link-strip { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-top:28px; }
.link-strip a { display:inline-flex; padding:10px 14px; border:1px solid var(--line); border-radius:999px; background:#fff; color:var(--brand-dark); font-weight:800; }
.link-strip a:hover { background:#eef7fb; text-decoration:none; }
.guide-links { display:grid; grid-template-columns: repeat(3, 1fr); gap:16px; }
.guide-links a, .guide-card { display:block; background:#fff; border:1px solid var(--line); border-radius:18px; padding:18px; box-shadow: 0 10px 24px rgba(15,36,54,.055); color:var(--ink); }
.guide-links a:hover, .guide-card:hover { border-color:#b9ccda; box-shadow:0 16px 34px rgba(16,24,40,.085); transform:translateY(-1px); text-decoration:none; }
.guide-links strong, .guide-card strong { display:block; color:var(--brand-dark); font-size:17px; margin-bottom:6px; }
.guide-links span, .guide-card span { display:block; color:var(--muted); font-size:14px; }
.guide-library { display:grid; grid-template-columns: repeat(3, 1fr); gap:22px; align-items:start; }
.guide-library h3 { margin:0 0 14px; }
.guide-card { margin-bottom:12px; }
.source-cards { display:grid; grid-template-columns: repeat(2, 1fr); gap:18px; }
.source-url, .source-note { color:var(--muted); font-size:13px; word-break:break-word; }
.muted-card { display:block; padding:14px 16px; color:var(--muted); background:#fff; border:1px dashed var(--line); border-radius:14px; }
article h2:not(:first-child) { margin-top:34px; }
article .checklist { margin-top:10px; }
@media (max-width: 920px) {
  .guide-links, .guide-library, .source-cards { grid-template-columns: 1fr; }
}
