/*
Theme Name: FR44 Insurance of Florida
Theme URI: https://floridafr44.net/
Author: Sonic (Ludicrous Local Leads)
Description: Lightweight custom theme for FR44 Insurance of Florida — a 300-page AKA SEO authority site. Navy/crimson, Montserrat/Inter, conversion-first, schema-ready. No page builder.
Version: 0.1.0
Requires at least: 6.4
Requires PHP: 7.4
License: Proprietary
Text Domain: fr44
*/

/* ============================================================
   DESIGN TOKENS (locked — briefs 02 & 06)
   ============================================================ */
:root{
  /* Brand core (client-supplied, locked) */
  --navy-900:#1B2C41;  --slate-600:#4A5565;
  --crimson-600:#C52B3A; --crimson-700:#BE2938;
  --cloud:#F9FAFB;      --paper:#FFFFFF;

  /* Extended ramp (same hue) */
  --navy-950:#11202F; --navy-700:#2A4663; --navy-100:#E7ECF2;
  --crimson-100:#FBE7E9;
  --ink:#111827; --slate-400:#8A94A1; --success:#1F9D63;

  /* Semantic */
  --bg:var(--paper); --bg-alt:var(--cloud);
  --text:var(--navy-900); --text-muted:var(--slate-600);
  --cta:var(--crimson-600); --cta-hover:var(--crimson-700);
  --border:#E3E8EF; --border-navy:rgba(255,255,255,.14);

  /* Type */
  --font-head:"Montserrat","Archivo",system-ui,-apple-system,Segoe UI,sans-serif;
  --font-body:"Inter","Hanken Grotesk",system-ui,-apple-system,Segoe UI,sans-serif;
  --step--1:clamp(.8125rem,.79rem + .1vw,.875rem);
  --step-0:clamp(1rem,.97rem + .15vw,1.0625rem);
  --step-1:clamp(1.2rem,1.13rem + .35vw,1.375rem);
  --step-2:clamp(1.45rem,1.33rem + .6vw,1.75rem);
  --step-3:clamp(1.8rem,1.6rem + 1vw,2.25rem);
  --step-4:clamp(2.2rem,1.85rem + 1.75vw,2.9rem);
  --step-5:clamp(2.7rem,2.1rem + 3vw,3.6rem);

  /* Space (8pt) */
  --s1:.5rem; --s2:1rem; --s3:1.5rem; --s4:2rem; --s5:3rem; --s6:5rem;

  /* Radius / shadow */
  --r-sm:8px; --r-md:14px; --r-lg:22px; --r-pill:999px;
  --shadow-1:0 1px 2px rgba(27,44,65,.06),0 4px 14px rgba(27,44,65,.08);
  --shadow-2:0 6px 28px rgba(27,44,65,.12);
  --shadow-cta:0 6px 20px rgba(197,43,58,.28);

  --container:1160px;
  --header-h:72px;
  --dur:.16s;
  --ease:cubic-bezier(.16,1,.3,1);          /* strong ease-out */
  --ease-drawer:cubic-bezier(.32,.72,0,1);  /* iOS-like drawer curve */

  /* semantic z-index scale */
  --z-dropdown:20; --z-sticky:100; --z-drawer:200; --z-scrim:150; --z-bar:120;
}

/* ============================================================
   RESET / BASE
   ============================================================ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:clip}
/* grid/flex blowout guards */
.grid>*,.problem-grid>*,.link-grid>*,.split>*,.steps>*,.timeline>*,.why-list>li{min-width:0}
.quote-card{max-width:100%}
.quote-card .fluentform{max-width:100%;overflow-x:clip}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;font-family:var(--font-body);font-size:var(--step-0);
  line-height:1.62;color:var(--text);background:var(--bg);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:clip;
}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:var(--crimson-700);text-underline-offset:2px}
a:hover{color:var(--crimson-600)}
h1,h2,h3,h4{font-family:var(--font-head);color:var(--navy-900);line-height:1.1;
  font-weight:700;letter-spacing:-.028em;margin:0 0 .5em;text-wrap:balance}
h1{font-size:var(--step-5);font-weight:800;letter-spacing:-.035em}
h2{font-size:var(--step-4);letter-spacing:-.03em}
h3{font-size:var(--step-2)}
h4{font-size:var(--step-1)}
p{margin:0 0 1em;max-width:68ch;text-wrap:pretty}
strong{font-weight:600}
:focus-visible{outline:3px solid var(--crimson-600);outline-offset:2px;border-radius:4px}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--navy-900);color:#fff;
  padding:.75rem 1rem;z-index:1000}
.skip-link:focus{left:.5rem;top:.5rem}

/* ============================================================
   LAYOUT
   ============================================================ */
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:clamp(1rem,4vw,2rem)}
.section{padding-block:clamp(2.75rem,6vw,5rem)}
.section--alt{background:var(--bg-alt)}
.section--tint{background:var(--navy-100)}          /* light blue-gray — 3rd light shade for variety */
.section--navy{background:var(--navy-900);color:#fff}
.section--navy h1,.section--navy h2,.section--navy h3{color:#fff}
.section--navy p{color:#D4DBE4}
.eyebrow{font-family:var(--font-head);font-weight:700;text-transform:uppercase;
  letter-spacing:.09em;font-size:.78rem;color:var(--crimson-700)}
.section--navy .eyebrow{color:#F4A6AE}
.lede{font-size:var(--step-1);color:var(--text-muted);max-width:60ch}
.grid{display:grid;gap:var(--s3)}
@media(min-width:640px){.grid-2{grid-template-columns:repeat(2,1fr)}}
@media(min-width:900px){.grid-3{grid-template-columns:repeat(3,1fr)}
  .grid-4{grid-template-columns:repeat(4,1fr)}}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--font-head);font-weight:700;font-size:1rem;line-height:1;
  padding:.9rem 1.5rem;border-radius:var(--r-pill);border:2px solid transparent;
  cursor:pointer;text-decoration:none;transition:background var(--dur) ease-out,
  transform var(--dur) ease-out,box-shadow var(--dur) ease-out;min-height:48px}
.btn--cta{background:var(--cta);color:#fff}
.btn--cta:hover{background:var(--cta-hover);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-cta)}
.btn:active{transform:scale(.97)}
.btn--cta:active{transform:scale(.97)}
@media (hover:none){.btn--cta:hover{transform:none;box-shadow:none}}
.btn--ghost{background:transparent;color:var(--navy-900);border-color:var(--navy-100)}
.btn--ghost:hover{border-color:var(--navy-700);background:var(--navy-100)}
.btn--phone{background:transparent;color:var(--navy-900);border-color:transparent;font-weight:700}
.section--navy .btn--ghost{color:#fff;border-color:var(--border-navy)}
.section--navy .btn--ghost:hover{background:rgba(255,255,255,.08)}
/* Ghost buttons on dark backgrounds (hero, CTA band, empathy) — keep text visible */
.hero .btn--ghost,.cta-band .btn--ghost,.empathy .btn--ghost,.pagehero .btn--ghost{color:#fff;border-color:rgba(255,255,255,.32)}
.hero .btn--ghost:hover,.cta-band .btn--ghost:hover,.empathy .btn--ghost:hover,.pagehero .btn--ghost:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.55);color:#fff}
.btn--lg{padding:1.05rem 1.9rem;font-size:1.05rem}
.btn--block{width:100%}

/* ============================================================
   HEADER / NAV
   ============================================================ */
.topbar{background:var(--navy-950);color:#CDD6E0;font-size:.82rem}
.topbar .container{display:flex;justify-content:space-between;align-items:center;
  gap:1rem;min-height:38px;padding-block:.35rem}
.topbar a{color:#EAF0F6;text-decoration:none}
.topbar__trust{display:flex;gap:1.1rem;align-items:center;flex-wrap:wrap}
.topbar__stars{color:#FFC24B;letter-spacing:1px}
@media(max-width:720px){.topbar__trust{display:none}}

.site-header{position:sticky;top:0;z-index:var(--z-sticky);background:rgba(255,255,255,.9);
  backdrop-filter:saturate(150%) blur(10px);border-bottom:1px solid var(--border);
  transition:box-shadow .25s var(--ease),background .25s var(--ease),border-color .25s var(--ease)}
.site-header.is-scrolled{box-shadow:0 1px 0 var(--border),0 8px 24px rgba(27,44,65,.09);background:rgba(255,255,255,.97)}
.site-header .container{display:flex;align-items:center;gap:1.25rem;min-height:var(--header-h);
  transition:min-height .25s var(--ease)}
.site-header.is-scrolled .container{min-height:60px}
.brand{display:flex;align-items:center;flex:0 0 auto;margin-right:auto;border-radius:6px}
.brand img{height:44px;width:auto;transition:height .25s var(--ease)}
.site-header.is-scrolled .brand img{height:38px}
.mainnav{display:none;list-style:none;margin:0;padding:0}
.mainnav li{list-style:none}
@media(min-width:980px){.mainnav{display:flex;gap:1.4rem;align-items:center}}
.mainnav a{font-family:var(--font-head);font-weight:600;font-size:.94rem;color:var(--navy-900);
  text-decoration:none;padding:.5rem 0;position:relative;transition:color var(--dur) ease}
.mainnav>.menu-item>a::before{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;
  background:var(--crimson-600);border-radius:2px;transform:scaleX(0);transform-origin:left;
  transition:transform .22s var(--ease)}
.mainnav>.menu-item>a:hover::before,.mainnav>.menu-item.current-menu-item>a::before,
.mainnav>.menu-item>a[aria-current="page"]::before{transform:scaleX(1)}
.mainnav a[aria-current="page"],.mainnav a:hover{color:var(--crimson-700)}
.mainnav .menu-item-has-children>a::after{content:"";display:inline-block;width:.44em;height:.44em;
  margin-left:.4rem;border-right:2px solid var(--slate-400);border-bottom:2px solid var(--slate-400);
  transform:translateY(-2px) rotate(45deg);transition:transform var(--dur) ease}
.mainnav .menu-item-has-children:hover>a::after{transform:translateY(0) rotate(45deg);border-color:var(--crimson-600)}
.header-actions{display:flex;align-items:center;gap:.75rem;flex:0 0 auto}
.header-phone{display:none}
@media(min-width:600px){.header-phone{display:inline-flex;align-items:center;gap:.4rem;
  font-family:var(--font-head);font-weight:700;color:var(--navy-900);text-decoration:none;white-space:nowrap}}
.header-phone{transition:color var(--dur) ease}
.header-phone:hover{color:var(--crimson-700)}
.header-phone>svg{width:36px;height:36px;padding:9px;border-radius:50%;background:var(--crimson-100);
  color:var(--crimson-700);transition:background var(--dur) ease}
.header-phone:hover>svg{background:var(--crimson-600);color:#fff}
.header-phone small{display:block;font-size:.62rem;font-weight:600;color:var(--slate-400);
  text-transform:uppercase;letter-spacing:.06em}
.nav-toggle{display:inline-flex;background:none;border:0;padding:.5rem;cursor:pointer;color:var(--navy-900)}
@media(min-width:980px){.nav-toggle{display:none}}

/* dropdown */
.mainnav .menu-item-has-children{position:relative}
.mainnav .sub-menu{position:absolute;top:calc(100% - 4px);left:-.5rem;min-width:248px;background:#fff;
  border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-2);
  padding:.4rem;list-style:none;margin:0;z-index:var(--z-dropdown);
  opacity:0;visibility:hidden;transform:translateY(-8px) scale(.98);transform-origin:top left;pointer-events:none;
  transition:opacity .18s var(--ease),transform .18s var(--ease),visibility .18s}
.mainnav .menu-item-has-children:hover>.sub-menu,
.mainnav .menu-item-has-children:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none;pointer-events:auto}
.mainnav .sub-menu a{display:block;padding:.6rem .75rem;border-radius:8px;font-weight:500;color:var(--navy-900)}
.mainnav .sub-menu a::before{display:none}
.mainnav .sub-menu a:hover{background:var(--cloud);color:var(--crimson-700)}

/* mobile drawer */
.mobile-drawer{position:fixed;inset:0 0 0 auto;width:min(88vw,360px);background:#fff;
  transform:translateX(100%);transition:transform .34s var(--ease-drawer);z-index:var(--z-drawer);
  padding:1rem 1.25rem 1.5rem;box-shadow:-8px 0 44px rgba(17,32,47,.28);overflow-y:auto;
  display:flex;flex-direction:column}
.mobile-drawer.is-open{transform:translateX(0)}
.mobile-scrim{position:fixed;inset:0;background:rgba(17,32,47,.55);opacity:0;visibility:hidden;
  transition:opacity .3s var(--ease-drawer),visibility .3s;z-index:var(--z-scrim);backdrop-filter:blur(2px)}
.mobile-scrim.is-open{opacity:1;visibility:visible}
.drawer-brand img{height:34px;width:auto}
/* staggered item entrance (gated on JS so items are never hidden without it) */
.has-js .mobile-menu>li{opacity:0;transform:translateX(10px)}
.has-js .mobile-drawer.is-open .mobile-menu>li{opacity:1;transform:none;
  transition:opacity .3s var(--ease),transform .34s var(--ease-drawer)}
.has-js .mobile-drawer.is-open .mobile-menu>li:nth-child(1){transition-delay:.05s}
.has-js .mobile-drawer.is-open .mobile-menu>li:nth-child(2){transition-delay:.09s}
.has-js .mobile-drawer.is-open .mobile-menu>li:nth-child(3){transition-delay:.13s}
.has-js .mobile-drawer.is-open .mobile-menu>li:nth-child(4){transition-delay:.17s}
.has-js .mobile-drawer.is-open .mobile-menu>li:nth-child(5){transition-delay:.21s}
@media (prefers-reduced-motion:reduce){
  .mobile-drawer{transition:opacity .2s ease}
  .has-js .mobile-menu>li,.has-js .mobile-drawer.is-open .mobile-menu>li{opacity:1;transform:none;transition:none}
  .mainnav .sub-menu{transition:opacity .15s ease,visibility .15s}
  .brand img,.site-header .container{transition:none}
}
.mobile-drawer ul{list-style:none;margin:0;padding:0}
.mobile-drawer .close-row{display:flex;justify-content:space-between;align-items:center;
  margin-bottom:.5rem;padding-bottom:.85rem;border-bottom:1px solid var(--border)}
/* Accordion drawer menu — sub-menus collapsed until toggled (flex-wrap row: link + toggle, sub-menu wraps below) */
.mobile-menu>li{display:flex;flex-wrap:wrap;align-items:center;border-bottom:1px solid var(--border)}
.mobile-menu>li>a{flex:1;min-width:0;display:block;padding:.95rem .25rem;font-family:var(--font-head);
  font-weight:600;color:var(--navy-900);text-decoration:none;font-size:1.02rem}
.submenu-toggle{background:none;border:0;padding:.75rem;cursor:pointer;color:var(--slate-600);
  display:grid;place-items:center}
.submenu-toggle svg{transition:transform var(--dur) var(--ease)}
.mobile-menu li.is-open .submenu-toggle svg{transform:rotate(180deg)}
.mobile-menu .sub-menu{flex-basis:100%;width:100%;max-height:0;overflow:hidden;
  transition:max-height .32s var(--ease);padding-left:.5rem}
.mobile-menu li.is-open>.sub-menu{max-height:640px;padding-bottom:.4rem}
.mobile-menu .sub-menu a{display:block;padding:.62rem .25rem;font-weight:500;color:var(--slate-600);
  text-decoration:none;font-size:.95rem}
.mobile-menu .sub-menu a:hover{color:var(--crimson-700)}
/* Drawer CTA buttons — bright crimson, icon spacing fixed */
.drawer-actions{margin-top:1.25rem;display:grid;gap:.6rem}
.drawer-actions .btn{width:100%;padding:1rem 1.25rem;gap:.6rem}
.drawer-actions .btn--cta{background:var(--crimson-600)}
.drawer-actions .btn--cta:hover{background:var(--crimson-700)}
.drawer-actions .btn--ghost{border-color:var(--navy-100);color:var(--navy-900)}
.drawer-actions .btn svg{flex:0 0 auto}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;background:var(--navy-900);color:#fff;overflow:hidden}
.hero__bg{position:absolute;inset:0;object-fit:cover;width:100%;height:100%;opacity:.32}
.hero::after{content:"";position:absolute;inset:0;
  background:linear-gradient(105deg,var(--navy-950) 30%,rgba(17,32,47,.6) 100%)}
.hero .container{position:relative;z-index:2;display:grid;gap:2rem;grid-template-columns:minmax(0,1fr);
  padding-block:clamp(2.5rem,7vw,4.5rem)}
.hero__copy,.hero__form{min-width:0}
@media(min-width:960px){.hero .container{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center}}
.hero h1{color:#fff;max-width:16ch}
.hero__lede{color:#D4DBE4;font-size:var(--step-1);max-width:48ch}
.hero__ticks{display:flex;flex-wrap:wrap;gap:.6rem 1.1rem;margin:1.25rem 0;padding:0;list-style:none}
.hero__ticks li{display:flex;align-items:center;gap:.45rem;font-size:.92rem;color:#EAF0F6}
.hero__ticks svg{color:var(--success);flex:0 0 auto}
.hero__cta{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}

/* ============================================================
   QUOTE FORM
   ============================================================ */
.quote-card{background:#fff;color:var(--navy-900);border-radius:var(--r-lg);
  box-shadow:var(--shadow-2);padding:clamp(1.25rem,3vw,1.75rem)}
.quote-card h2,.quote-card h3{font-size:var(--step-2);margin-bottom:.25rem}
.quote-card .form-sub{color:var(--slate-600);font-size:.9rem;margin-bottom:1rem}
.field{margin-bottom:.85rem}
.field label{display:block;font-size:.82rem;font-weight:600;color:var(--navy-900);margin-bottom:.3rem}
.field .req{color:var(--crimson-700)}
.field input,.field select{width:100%;font:inherit;font-size:1rem;padding:.8rem .9rem;
  min-height:48px;border:1.5px solid var(--border);border-radius:var(--r-sm);background:#fff;color:var(--navy-900)}
.field input:focus,.field select:focus{border-color:var(--crimson-600);outline:none;
  box-shadow:0 0 0 3px var(--crimson-100)}
.field-row{display:grid;gap:.85rem}
@media(min-width:480px){.field-row{grid-template-columns:1fr 1fr}}
.toggle-group{display:flex;gap:.5rem}
.toggle-group input{position:absolute;opacity:0;pointer-events:none}
.toggle-group label{flex:1;text-align:center;padding:.7rem;border:1.5px solid var(--border);
  border-radius:var(--r-sm);cursor:pointer;font-weight:600;margin:0}
.toggle-group input:checked+label{border-color:var(--crimson-600);background:var(--crimson-100);color:var(--crimson-700)}
.form-privacy{font-size:.76rem;color:var(--slate-600);margin-top:.75rem}

/* Fluent Forms — brand skin inside .quote-card */
.quote-card .fluentform .ff-el-group{margin-bottom:.85rem}
.quote-card .fluentform .ff-el-input--label label{font-size:.82rem;font-weight:600;color:var(--navy-900);margin-bottom:.3rem}
.quote-card .fluentform .ff-el-input--label label .ff-el-is-required{color:var(--crimson-700)}
.quote-card .fluentform input[type=text],
.quote-card .fluentform input[type=email],
.quote-card .fluentform input[type=tel],
.quote-card .fluentform select,
.quote-card .fluentform textarea{
  width:100%;font:inherit;font-size:1rem;padding:.8rem .9rem;min-height:48px;
  border:1.5px solid var(--border);border-radius:var(--r-sm);background:#fff;color:var(--navy-900)}
.quote-card .fluentform input:focus,
.quote-card .fluentform select:focus,
.quote-card .fluentform textarea:focus{border-color:var(--crimson-600);outline:none;box-shadow:0 0 0 3px var(--crimson-100)}
.quote-card .fluentform textarea{min-height:110px}
.quote-card .fluentform .ff-el-form-check{display:inline-flex;align-items:center;gap:.4rem;margin-right:1.25rem}
.quote-card .fluentform .ff-el-form-check input{width:auto;min-height:0}
.quote-card .fluentform .ff-btn-submit,
.quote-card .fluentform button[type=submit]{
  width:100%;background:var(--cta);color:#fff;border:0;border-radius:var(--r-pill);
  font-family:var(--font-head);font-weight:700;font-size:1.05rem;padding:1.05rem 1.9rem;min-height:52px;
  cursor:pointer;transition:background var(--dur) ease-out,transform var(--dur) ease-out,box-shadow var(--dur) ease-out}
.quote-card .fluentform .ff-btn-submit:hover,
.quote-card .fluentform button[type=submit]:hover{background:var(--cta-hover);transform:translateY(-1px);box-shadow:var(--shadow-cta)}
.quote-card .fluentform .ff-message-success{background:var(--crimson-100);color:var(--navy-900);padding:1rem;border-radius:var(--r-sm);font-weight:500}
.quote-card .ff-el-is-error .text-danger,.quote-card .fluentform .error{color:var(--crimson-700);font-size:.82rem}

/* ============================================================
   TRUST STRIP / BADGES
   ============================================================ */
.trust-strip{background:var(--navy-950);color:#fff}
.trust-strip .container{display:flex;flex-wrap:wrap;justify-content:center;gap:1.25rem 2.25rem;
  padding-block:1rem;align-items:center}
.trust-item{display:flex;align-items:center;gap:.55rem;font-size:.9rem;color:#EAF0F6;font-weight:500}
.trust-item svg{color:var(--success)}
.badge{display:inline-flex;align-items:center;gap:.4rem;background:var(--crimson-100);
  color:var(--crimson-700);font-family:var(--font-head);font-weight:700;font-size:.78rem;
  padding:.35rem .7rem;border-radius:var(--r-pill)}

/* ============================================================
   CARDS / SERVICE / BENEFIT
   ============================================================ */
.card{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);
  padding:1.5rem;transition:transform var(--dur) ease,box-shadow var(--dur) ease}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-1)}
.card__icon{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;
  background:var(--navy-100);color:var(--crimson-700);margin-bottom:.85rem}
.card h3{font-size:var(--step-1)}
.card p{font-size:.95rem;color:var(--text-muted)}
.service-card{display:flex;flex-direction:column;gap:.75rem}
.service-card ul{margin:.25rem 0 1rem;padding-left:1.1rem;color:var(--text-muted);font-size:.95rem}
.service-card .btn{margin-top:auto}

/* ============================================================
   STEP TIMELINE
   ============================================================ */
.steps{counter-reset:step;display:grid;gap:1.25rem}
@media(min-width:820px){.steps{grid-template-columns:repeat(3,1fr)}}
.step{position:relative;padding-left:3.25rem}
.step::before{counter-increment:step;content:counter(step);position:absolute;left:0;top:0;
  width:2.35rem;height:2.35rem;border-radius:50%;background:var(--crimson-600);color:#fff;
  font-family:var(--font-head);font-weight:800;display:grid;place-items:center}
.step h3{font-size:var(--step-1);margin-bottom:.2rem}
.step p{font-size:.92rem;color:var(--text-muted)}

/* ============================================================
   COVERAGE-LIMIT CALLOUT / TABLE
   ============================================================ */
.limit-callout{background:var(--navy-900);color:#fff;border-radius:var(--r-lg);padding:1.5rem;
  display:grid;gap:1rem}
.limit-callout .limit-num{font-family:var(--font-head);font-weight:800;font-size:var(--step-4);color:#fff}
.data-table{width:100%;border-collapse:collapse;font-size:.95rem}
.data-table caption{text-align:left;font-weight:600;color:var(--slate-600);margin-bottom:.5rem}
.data-table th,.data-table td{padding:.75rem .85rem;text-align:left;border-bottom:1px solid var(--border)}
.data-table thead th{font-family:var(--font-head);background:var(--cloud);font-size:.82rem;
  text-transform:uppercase;letter-spacing:.04em;color:var(--slate-600)}
.data-table td:last-child{font-weight:700;color:var(--crimson-700);font-variant-numeric:tabular-nums}

/* ============================================================
   FAQ ACCORDION
   ============================================================ */
.faq{max-width:820px;margin-inline:auto}
.faq details{border:1px solid var(--border);border-radius:var(--r-md);margin-bottom:.75rem;background:#fff}
.faq summary{cursor:pointer;list-style:none;padding:1.1rem 1.25rem;font-family:var(--font-head);
  font-weight:600;color:var(--navy-900);display:flex;justify-content:space-between;gap:1rem;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.4rem;color:var(--crimson-600);transition:transform var(--dur) ease}
.faq details[open] summary::after{content:"–"}
.faq .faq__body{padding:0 1.25rem 1.2rem;color:var(--text-muted);font-size:.96rem}

/* ============================================================
   REVIEWS
   ============================================================ */
.review-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);padding:1.4rem;display:flex;flex-direction:column;gap:.6rem}
.review-stars{color:#F5A623;letter-spacing:2px;font-size:1rem}
.review-card blockquote{margin:0;font-size:1rem;color:var(--navy-900)}
.review-card cite{font-style:normal;font-weight:600;color:var(--slate-600);font-size:.9rem}
.ask-evan{font-size:.82rem;color:var(--crimson-700);font-weight:600}

/* ============================================================
   REVIEWER BYLINE (E-E-A-T)
   ============================================================ */
.byline{display:flex;gap:.85rem;align-items:center;background:var(--cloud);border:1px solid var(--border);
  border-radius:var(--r-md);padding:.9rem 1.1rem;font-size:.88rem;color:var(--slate-600)}
.byline img{width:46px;height:46px;border-radius:50%;object-fit:cover;flex:0 0 auto;background:var(--navy-100)}
.byline strong{color:var(--navy-900)}
.byline a{font-weight:600}

/* ============================================================
   BREADCRUMBS
   ============================================================ */
.breadcrumbs{font-size:.82rem;color:var(--slate-600);padding-block:.85rem}
.breadcrumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;margin:0;padding:0}
.breadcrumbs li:not(:last-child)::after{content:"›";margin-left:.4rem;color:var(--slate-400)}
.breadcrumbs a{color:var(--slate-600);text-decoration:none}
.breadcrumbs a:hover{color:var(--crimson-700)}

/* ============================================================
   RELATED / CITY GRID
   ============================================================ */
.link-grid{display:grid;gap:.6rem}
@media(min-width:640px){.link-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:960px){.link-grid--3{grid-template-columns:repeat(3,1fr)}}
.link-grid a{display:block;padding:.9rem 1rem;background:#fff;border:1px solid var(--border);
  border-radius:var(--r-sm);text-decoration:none;color:var(--navy-900);font-weight:600;font-size:.94rem;
  transition:border-color var(--dur) ease,transform var(--dur) ease}
.link-grid a:hover{border-color:var(--crimson-600);transform:translateY(-2px);color:var(--crimson-700)}

/* ============================================================
   CTA BAND
   ============================================================ */
.cta-band{background:var(--navy-900);color:#fff;text-align:center}
.cta-band .container{padding-block:clamp(2.5rem,6vw,4rem)}
.cta-band h2{color:#fff;max-width:20ch;margin-inline:auto}
.cta-band .btn-row{display:flex;flex-wrap:wrap;gap:.85rem;justify-content:center;margin-top:1.25rem}

/* ============================================================
   YMYL DISCLAIMER
   ============================================================ */
.disclaimer{font-size:.82rem;color:var(--slate-600);background:var(--cloud);border:1px solid var(--border);
  padding:.9rem 1.1rem;border-radius:var(--r-sm);margin:1.5rem 0;max-width:none}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{background:var(--navy-950);color:#B9C4D1;font-size:.9rem;border-top:3px solid var(--crimson-600)}
.site-footer .container{padding-block:clamp(2.5rem,5vw,3.75rem)}
.footer-grid{display:grid;gap:2rem}
@media(min-width:760px){.footer-grid{grid-template-columns:1.5fr 1fr 1fr 1.25fr;gap:2.5rem}}
.site-footer h4{color:#fff;font-family:var(--font-head);font-size:.78rem;text-transform:uppercase;
  letter-spacing:.11em;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}
.site-footer h4::before{content:"";width:14px;height:2px;background:var(--crimson-600);border-radius:2px}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.site-footer a{color:#B9C4D1;text-decoration:none;transition:color var(--dur) ease}
.site-footer a:hover{color:#fff}
.site-footer ul a{display:inline-block;transition:color var(--dur) ease,transform var(--dur) var(--ease)}
.site-footer ul a:hover{color:#fff;transform:translateX(3px)}
.footer-brand img{height:42px;margin-bottom:.9rem}
.footer-nap{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
.footer-nap li{display:flex;gap:.6rem;align-items:flex-start;line-height:1.4}
.footer-nap a{color:#CBD5E1}
.footer-nap a:hover{color:#fff}
.fnap-ico{flex:0 0 auto;width:30px;height:30px;display:grid;place-items:center;border-radius:8px;
  background:rgba(255,255,255,.06);color:var(--crimson-600)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:2.25rem;padding-top:1.25rem;
  display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;justify-content:space-between;font-size:.8rem;color:#8FA0B3}
.footer-social{display:flex;gap:.6rem}
.fsoc{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;
  background:rgba(255,255,255,.07);color:#CBD5E1;transition:background var(--dur) ease,color var(--dur) ease,transform var(--dur) ease}
.fsoc:hover{background:var(--crimson-600);color:#fff;transform:translateY(-2px)}
.footer-disclaimer{font-size:.76rem;color:#7A8C9F;max-width:70ch;margin-top:1rem}

/* ============================================================
   MOBILE STICKY ACTION BAR
   ============================================================ */
.mobile-bar{position:fixed;left:0;right:0;bottom:0;z-index:120;display:grid;grid-template-columns:1fr 1fr;
  gap:0;background:#fff;border-top:1px solid var(--border);
  padding-bottom:env(safe-area-inset-bottom)}
.mobile-bar a{display:flex;align-items:center;justify-content:center;gap:.45rem;
  padding:.95rem;font-family:var(--font-head);font-weight:700;text-decoration:none;min-height:56px}
.mobile-bar .mb-call{color:var(--navy-900)}
.mobile-bar .mb-quote{background:var(--cta);color:#fff}
@media(min-width:980px){.mobile-bar{display:none}}
@media(max-width:979px){body{padding-bottom:56px}}

/* ============================================================
   PROSE (post/guide body)
   ============================================================ */
.prose{max-width:750px}
.prose h2{margin-top:2rem;font-size:var(--step-3)}
.prose h3{margin-top:1.5rem}
.prose ul,.prose ol{padding-left:1.25rem;color:var(--text)}
.prose li{margin-bottom:.4rem}
.prose a{font-weight:600}
.prose table{margin:1.5rem 0}

/* ============================================================
   CREATIVE HOMEPAGE SECTIONS
   ============================================================ */
/* Proof bar (icon-led claims — not the big-number metric template) */
.statband{background:var(--navy-950);color:#fff;border-block:1px solid rgba(255,255,255,.08)}
.statband .container{display:grid;padding:0;grid-template-columns:1fr}
@media(min-width:760px){.statband .container{grid-template-columns:repeat(4,1fr)}}
.proof{display:flex;gap:.85rem;align-items:center;padding:1.25rem 1.4rem;border-bottom:1px solid rgba(255,255,255,.08)}
@media(min-width:760px){.proof{border-bottom:0;border-right:1px solid rgba(255,255,255,.08)}.proof:last-child{border-right:0}}
.proof .p-ic{flex:0 0 auto;width:40px;height:40px;border-radius:11px;background:rgba(197,43,58,.16);color:#F4A6AE;display:grid;place-items:center}
.proof .p-t{font-family:var(--font-head);font-weight:600;color:#E8EDF3;font-size:.95rem;line-height:1.3}
.proof .p-t b{color:#fff;font-weight:800}

/* Definition callout (AI-citable) — navy-tint card with a crimson tag, no side-stripe */
.define{background:var(--navy-100);border:1px solid #D3DCE6;border-radius:var(--r-lg);padding:1.6rem 1.75rem}
.define .deflabel{display:inline-flex;align-items:center;background:var(--crimson-600);color:#fff;
  padding:.3rem .7rem;border-radius:var(--r-pill);font-family:var(--font-head);font-weight:700;
  text-transform:uppercase;letter-spacing:.07em;font-size:.66rem}
.define p{font-size:1.18rem;line-height:1.5;margin:.85rem 0 0;color:var(--navy-900);max-width:none}
.define p strong{color:var(--navy-900)}

/* Split comparison (FR-44 vs SR-22 / owner vs non-owner) */
.split{display:grid;gap:1rem}
@media(min-width:800px){.split{grid-template-columns:1fr 3rem 1fr;align-items:stretch}}
.split .col{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);padding:1.5rem}
.split .col--hl{border-color:var(--crimson-600);box-shadow:var(--shadow-1)}
.split .col h3{font-size:var(--step-1)}
.split .col ul{margin:.5rem 0 0;padding-left:1.1rem;color:var(--text-muted);font-size:.94rem}
.split .vs{display:grid;place-items:center;font-family:var(--font-head);font-weight:800;color:var(--slate-400);font-size:1.1rem}

/* Horizontal timeline */
.timeline{display:grid;gap:1.5rem 1rem;margin-top:2rem}
@media(min-width:760px){.timeline{grid-template-columns:repeat(4,1fr)}}
.tl-item{position:relative;padding-top:1.75rem;border-top:2px solid var(--border)}
.tl-item::before{content:"";position:absolute;top:-9px;left:0;width:16px;height:16px;border-radius:50%;
  background:var(--crimson-600);box-shadow:0 0 0 4px var(--crimson-100)}
.tl-item .tl-when{font-family:var(--font-head);font-weight:700;color:var(--crimson-700);font-size:.82rem;text-transform:uppercase;letter-spacing:.05em}
.tl-item h4{margin:.15rem 0 .3rem;font-size:1.05rem}
.tl-item p{font-size:.9rem;color:var(--text-muted)}

/* Empathy band */
.empathy{background:var(--navy-950);color:#fff;text-align:center}
.empathy .container{padding-block:clamp(2.5rem,6vw,4rem);max-width:760px}
.empathy h2{color:#fff}
.empathy p{color:#D4DBE4;font-size:var(--step-1);margin-inline:auto}

/* Cost factor chips */
.chips{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.25rem}
.chip{background:var(--navy-100);color:var(--navy-900);border-radius:var(--r-pill);padding:.55rem 1rem;font-weight:600;font-size:.9rem;display:inline-flex;align-items:center;gap:.4rem}
.chip svg{color:var(--crimson-700)}

/* Section intro helper */
.sec-head{max-width:680px;margin-inline:auto;text-align:center;margin-bottom:2.25rem}
.sec-head p{margin-inline:auto}

/* Feature row (image-less alternating info) */
.feature-list{display:grid;gap:1.25rem}
@media(min-width:760px){.feature-list{grid-template-columns:repeat(2,1fr)}}
.feature{display:flex;gap:.9rem;align-items:flex-start;background:#fff;border:1px solid var(--border);border-radius:var(--r-md);padding:1.25rem}
.feature .fico{flex:0 0 auto;width:42px;height:42px;border-radius:11px;background:var(--crimson-100);color:var(--crimson-700);display:grid;place-items:center}
.feature h3{font-size:1.05rem;margin:0 0 .25rem}
.feature p{font-size:.92rem;color:var(--text-muted);margin:0}

/* ============================================================
   MEDIA / IMAGE LAYOUTS (visual sections)
   ============================================================ */
.media{display:grid;gap:clamp(1.5rem,4vw,3rem);align-items:center;grid-template-columns:minmax(0,1fr)}
.media-body,.media-visual{min-width:0}
@media(min-width:900px){
  .media{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch}
  .media--rev .media-visual{order:2}
  .media-visual{display:flex}
  .media-visual .img-wrap{width:100%}
  .media-visual .img-wrap,.media-visual .img-card{height:100%}
  .media-visual .img-card img{height:100%;aspect-ratio:auto}
  .media-body{align-self:center}
}
.img-wrap{position:relative}
.img-wrap::before{content:"";position:absolute;right:-16px;bottom:-16px;width:62%;height:72%;
  background:var(--crimson-100);border-radius:var(--r-lg);z-index:0}
.media--rev .img-wrap::before{right:auto;left:-16px}
.img-card{position:relative;z-index:1;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-2);background:var(--navy-100)}
.img-card img{width:100%;display:block;aspect-ratio:3/2;object-fit:cover}
.img-card--sq img{aspect-ratio:1/1}
.img-badge{position:absolute;z-index:2;left:1rem;bottom:1rem;background:#fff;border-radius:var(--r-md);
  box-shadow:var(--shadow-2);padding:.7rem 1rem;display:flex;align-items:center;gap:.6rem;font-weight:700;font-size:.9rem;color:var(--navy-900)}
.img-badge .ib-star{color:#F5A623}

/* Price-drop callout */
.pricedrop{display:inline-flex;align-items:center;gap:.9rem;background:#fff;border:1px solid var(--border);
  border-radius:var(--r-pill);padding:.7rem 1.25rem;box-shadow:var(--shadow-1);margin-top:1.25rem}
.pricedrop .from{color:var(--slate-400);text-decoration:line-through;font-weight:600}
.pricedrop .arrow{color:var(--crimson-600);font-weight:800}
.pricedrop .to{font-family:var(--font-head);font-weight:800;font-size:1.5rem;color:var(--success);line-height:1}
.pricedrop small{display:block;font-size:.68rem;color:var(--slate-600);font-weight:600;text-transform:uppercase;letter-spacing:.05em}

/* Coverage card (visual table) */
.limit-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-1);color:var(--navy-900)}
.limit-card td{color:var(--navy-900)}
.limit-card .lc-head{background:var(--navy-900);color:#fff;padding:1.1rem 1.5rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem}
.limit-card .lc-head .big{font-family:var(--font-head);font-weight:800;font-size:1.6rem}
.limit-card .lc-head .big em{color:var(--crimson-600);font-style:normal}
.limit-card table{width:100%;border-collapse:collapse}
.limit-card td,.limit-card th{padding:.85rem 1.5rem;text-align:left;border-bottom:1px solid var(--border);font-size:.95rem}
.limit-card thead th{font-family:var(--font-head);font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;color:var(--slate-600);background:var(--cloud)}
.limit-card tbody tr:last-child td{border-bottom:0}
.limit-card td:last-child{font-weight:800;color:var(--crimson-700);font-variant-numeric:tabular-nums}

/* Review avatar head */
.rv-head{display:flex;align-items:center;gap:.6rem;margin-bottom:.2rem}
.rv-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--navy-700),var(--navy-900));
  color:#fff;display:grid;place-items:center;font-family:var(--font-head);font-weight:700;font-size:.9rem;flex:0 0 auto}
.rv-head .rv-name{font-weight:700;color:var(--navy-900);font-size:.92rem}
.rv-head .rv-src{font-size:.74rem;color:var(--slate-600)}

/* Section decorative eyebrow with line */
.eyebrow-line{display:inline-flex;align-items:center;gap:.6rem}
.eyebrow-line::before{content:"";width:28px;height:2px;background:var(--crimson-600)}

/* Icon tile bigger for feature cards on image sections */
.mini-feats{display:grid;gap:.9rem}
.mini-feat{display:flex;gap:.75rem;align-items:flex-start}
.mini-feat .mf-ico{flex:0 0 auto;width:40px;height:40px;border-radius:11px;background:var(--navy-900);color:#fff;display:grid;place-items:center}
.mini-feat h3{font-size:1.02rem;margin:.1rem 0 .2rem}
.mini-feat p{font-size:.9rem;color:var(--text-muted);margin:0}

/* reveal-on-scroll (scoped to .has-js so content is never hidden without JS) */
.has-js .reveal{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease}
.has-js .reveal.is-in{opacity:1;transform:none}
.has-js .reveal.d1{transition-delay:.06s}.has-js .reveal.d2{transition-delay:.12s}.has-js .reveal.d3{transition-delay:.18s}
@media (prefers-reduced-motion:reduce){.has-js .reveal{opacity:1;transform:none;transition:none}}

/* Problem section (Sonic Boom: problem-awareness) */
.problem-grid{display:grid;gap:1rem;margin-top:2rem}
@media(min-width:760px){.problem-grid{grid-template-columns:repeat(2,1fr)}}
.problem{display:grid;grid-template-columns:auto 1fr;gap:.4rem 1rem;background:#fff;border:1px solid var(--border);
  border-radius:var(--r-md);padding:1.25rem 1.4rem;box-shadow:var(--shadow-1)}
.problem .p-ico{grid-row:span 2;width:44px;height:44px;border-radius:12px;background:var(--navy-900);color:#fff;display:grid;place-items:center}
.problem .p-pain{font-family:var(--font-head);font-weight:700;color:var(--navy-900);font-size:1.02rem}
.problem .p-fix{color:var(--text-muted);font-size:.92rem}
.problem .p-fix b{color:var(--crimson-700)}

/* Named process badge */
.process-name{display:inline-block;font-family:var(--font-head);font-weight:800;color:var(--crimson-700);
  letter-spacing:-.01em}

/* ============================================================
   SERVICE-PAGE COMPONENTS (bespoke — distinct from homepage)
   ============================================================ */

/* Explainer: policy + filing = license back */
.explainer{display:grid;gap:1rem;align-items:stretch}
@media(min-width:860px){.explainer{grid-template-columns:1fr 44px 1fr 44px 1.15fr}}
.ex-tile{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:1.6rem 1.4rem;
  text-align:center;box-shadow:var(--shadow-1);display:flex;flex-direction:column;align-items:center}
.ex-tile .ex-ic{width:54px;height:54px;margin-bottom:.85rem;border-radius:15px;background:var(--navy-100);
  color:var(--crimson-700);display:grid;place-items:center}
.ex-tile h3{font-size:1.05rem;margin:0 0 .35rem}
.ex-tile p{font-size:.88rem;color:var(--text-muted);margin:0}
.ex-op{display:grid;place-items:center;font-family:var(--font-head);font-weight:800;font-size:1.9rem;color:var(--crimson-600)}
@media(max-width:859px){.ex-op{padding:.15rem}}
.ex-tile--hl{background:var(--navy-900);color:#fff;border-color:var(--navy-900)}
.ex-tile--hl h3{color:#fff}.ex-tile--hl p{color:#C7D2DE}
.ex-tile--hl .ex-ic{background:rgba(197,43,58,.22);color:#F4A6AE}

/* Coverage comparison bars (replaces plain table) */
.covbars{max-width:760px;margin:0 auto;display:grid;gap:1.75rem}
.covbar h4{font-size:1rem;margin:0 0 .7rem;display:flex;justify-content:space-between;align-items:baseline}
.covbar h4 .mult{font-family:var(--font-head);font-weight:800;color:var(--crimson-600);font-size:.95rem}
.cb-row{display:grid;grid-template-columns:84px 1fr auto;gap:.85rem;align-items:center;margin-bottom:.5rem}
.cb-row:last-child{margin-bottom:0}
.cb-tag{font-size:.76rem;color:var(--slate-600);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.cb-track{height:16px;border-radius:8px;background:rgba(255,255,255,.09);overflow:hidden}
.section--navy .cb-track{background:rgba(255,255,255,.09)}
.cb-fill{height:100%;border-radius:8px;transform-origin:left;animation:cbgrow 1s var(--ease) both}
.cb-fill--std{background:var(--slate-400)}
.cb-fill--fr{background:linear-gradient(90deg,var(--crimson-600),var(--crimson-700))}
.cb-val{font-family:var(--font-head);font-weight:800;font-size:.92rem;font-variant-numeric:tabular-nums;min-width:72px;text-align:right}
@keyframes cbgrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media (prefers-reduced-motion:reduce){.cb-fill{animation:none}}

/* Coverage cards (what it covers) */
.covcards{display:grid;gap:1rem}
@media(min-width:680px){.covcards{grid-template-columns:1fr 1fr}}
.covcard{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);padding:1.3rem;
  display:flex;gap:1rem;align-items:flex-start;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.covcard:hover{transform:translateY(-3px);box-shadow:var(--shadow-1)}
.covcard .cc-ic{flex:0 0 auto;width:46px;height:46px;border-radius:13px;background:var(--navy-900);color:#fff;display:grid;place-items:center}
.covcard h3{font-size:1.02rem;margin:0 0 .2rem;display:flex;align-items:center;gap:.5rem}
.covcard p{font-size:.9rem;color:var(--text-muted);margin:0}
.cc-tag{font-family:var(--font-head);font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;
  padding:.15rem .45rem;border-radius:5px}
.cc-tag--req{background:var(--crimson-100);color:var(--crimson-700)}
.cc-tag--opt{background:var(--navy-100);color:var(--slate-600)}

/* Horizontal connected flow (filing process) */
.flow{display:grid;gap:1.75rem;position:relative}
@media(min-width:760px){.flow{grid-template-columns:repeat(3,1fr)}
  .flow::before{content:"";position:absolute;top:30px;left:16%;right:16%;height:2px;
    background:repeating-linear-gradient(90deg,var(--navy-100) 0 8px,transparent 8px 16px)}}
.flow-step{text-align:center;position:relative}
.flow-num{width:60px;height:60px;margin:0 auto 1rem;border-radius:50%;background:var(--crimson-600);color:#fff;
  font-family:var(--font-head);font-weight:800;font-size:1.4rem;display:grid;place-items:center;
  box-shadow:0 0 0 8px var(--paper),0 6px 18px rgba(197,43,58,.28);position:relative;z-index:1}
.flow-step h3{font-size:1.05rem;margin:0 0 .3rem}
.flow-step p{font-size:.9rem;color:var(--text-muted);margin:0 auto;max-width:30ch}

/* Cost panel */
.pricepanel{background:linear-gradient(160deg,var(--navy-900),var(--navy-950));color:#fff;
  border-radius:var(--r-lg);padding:clamp(1.5rem,4vw,2.5rem);display:grid;gap:1.75rem}
@media(min-width:840px){.pricepanel{grid-template-columns:1.15fr 1fr;align-items:center}}
.pricepanel h3{color:#fff;font-size:var(--step-2);margin:0 0 .6rem}
.pricepanel p{color:#C7D2DE;margin:0 0 1rem}
.pp-pills{display:flex;flex-wrap:wrap;gap:.5rem}
.pp-pill{background:rgba(255,255,255,.08);color:#EAF0F6;border-radius:var(--r-pill);padding:.45rem .85rem;font-size:.85rem;font-weight:600;display:inline-flex;gap:.4rem;align-items:center}
.pp-pill svg{color:#F4A6AE}
.pp-drop{background:#fff;border-radius:var(--r-md);padding:1.5rem;text-align:center;color:var(--navy-900)}
.pp-drop .pp-from{color:var(--slate-400);text-decoration:line-through;font-weight:600}
.pp-drop .pp-to{font-family:var(--font-head);font-weight:800;font-size:2.4rem;color:var(--success);line-height:1;display:block;margin:.25rem 0}
.pp-drop small{color:var(--slate-600);font-size:.78rem}

/* Credential badge wall */
.badgewall{display:grid;gap:1rem}
@media(min-width:640px){.badgewall{grid-template-columns:1fr 1fr}}
@media(min-width:960px){.badgewall{grid-template-columns:repeat(3,1fr)}}
.tbadge{display:flex;gap:.9rem;align-items:center;background:#fff;border:1px solid var(--border);
  border-radius:var(--r-md);padding:1.1rem 1.25rem;transition:border-color var(--dur) var(--ease)}
.tbadge:hover{border-color:var(--crimson-600)}
.tbadge .tb-ic{flex:0 0 auto;width:44px;height:44px;border-radius:12px;background:var(--crimson-100);color:var(--crimson-700);display:grid;place-items:center}
.tbadge strong{display:block;font-family:var(--font-head);font-size:.98rem;color:var(--navy-900)}
.tbadge span{font-size:.83rem;color:var(--text-muted)}

/* Featured testimonial */
.feat-review{background:var(--navy-900);color:#fff;border-radius:var(--r-lg);
  padding:clamp(1.75rem,4vw,2.75rem);position:relative;overflow:hidden}
.feat-review::before{content:"\201C";position:absolute;top:-.5rem;left:1.25rem;font:900 8rem/1 Georgia,serif;color:var(--crimson-600);opacity:.35}
.feat-review .fr-stars{color:#F5A623;letter-spacing:3px;position:relative}
.feat-review blockquote{position:relative;font-size:var(--step-2);font-family:var(--font-head);font-weight:600;line-height:1.35;margin:.75rem 0 1.25rem;color:#fff;max-width:none}
.feat-review cite{font-style:normal;color:#C7D2DE;font-size:.9rem}
.feat-review cite b{color:#fff}

/* Full-bleed image band with overlay text (new imagery treatment) */
.imgband{position:relative;overflow:hidden;border-radius:var(--r-lg);min-height:360px;display:flex;align-items:center}
.imgband img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.imgband::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,32,47,.94) 20%,rgba(17,32,47,.5))}
.imgband .ib-body{position:relative;z-index:1;color:#fff;padding:clamp(1.75rem,5vw,3.25rem);max-width:620px}
.imgband h2{color:#fff}
.imgband p{color:#D4DBE4}
.imgband .il{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:.55rem}
.imgband .il li{display:flex;gap:.55rem;align-items:center;color:#EAF0F6;font-size:.96rem}
.imgband .il svg{color:var(--success);flex:0 0 auto}

/* Comparison matrix (owner vs non-owner etc.) */
.compare{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--border);
  border-radius:var(--r-lg);overflow:hidden;font-size:.95rem}
.compare th,.compare td{padding:.95rem 1.2rem;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}
.compare thead th{background:var(--navy-900);color:#fff;font-family:var(--font-head);font-size:.95rem}
.compare thead th.hl{background:var(--crimson-700)}
.compare td:first-child,.compare th:first-child{font-weight:600;color:var(--slate-600);width:34%}
.compare td.hl{background:var(--crimson-100);font-weight:700;color:var(--navy-900)}
.compare tbody tr:last-child td{border-bottom:0}

/* ============================================================
   LOCATION-PAGE COMPONENTS
   ============================================================ */
/* Local-facts strip */
.localfacts{display:grid;gap:1rem}
@media(min-width:620px){.localfacts{grid-template-columns:repeat(2,1fr)}}
@media(min-width:920px){.localfacts{grid-template-columns:repeat(4,1fr)}}
.lfact{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);padding:1.15rem 1.3rem}
.lfact .lf-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:var(--slate-600);font-weight:700;display:flex;align-items:center;gap:.4rem}
.lfact .lf-label svg{color:var(--crimson-700)}
.lfact .lf-val{font-family:var(--font-head);font-weight:700;color:var(--navy-900);font-size:1.02rem;margin-top:.35rem;line-height:1.25}

/* Reinstatement / local office panel */
.officecard{background:linear-gradient(160deg,var(--navy-900),var(--navy-950));color:#fff;border-radius:var(--r-lg);
  padding:clamp(1.5rem,4vw,2.4rem);display:grid;gap:1.5rem}
@media(min-width:780px){.officecard{grid-template-columns:1fr 1fr}}
.officecard h3{color:#fff;font-size:var(--step-2);margin:0 0 .5rem}
.officecard p{color:#C7D2DE;margin:0 0 1rem}
.oc-list{list-style:none;margin:0;padding:0;display:grid;gap:.9rem}
.oc-list li{display:flex;gap:.75rem;align-items:flex-start}
.oc-list .oc-ic{flex:0 0 auto;width:38px;height:38px;border-radius:11px;background:rgba(197,43,58,.2);color:#F4A6AE;display:grid;place-items:center}
.oc-list strong{display:block;color:#fff;font-family:var(--font-head);font-size:.98rem}
.oc-list span{color:#AEBBC9;font-size:.9rem}

/* Areas-served neighborhood chips */
.areas{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-top:1.25rem}
.area-chip{background:var(--navy-100);color:var(--navy-900);border-radius:var(--r-pill);padding:.5rem 1rem;font-weight:600;font-size:.9rem}

/* Local driving-reality list (icon-led, replaces paragraph blocks) */
.reality-list{list-style:none;margin:1.35rem 0 0;padding:0;display:grid;gap:1rem}
.reality-list li{display:flex;gap:.9rem;align-items:flex-start}
.reality-list .r-ic{flex:0 0 auto;width:46px;height:46px;border-radius:13px;background:var(--crimson-100);
  color:var(--crimson-700);display:grid;place-items:center}
.reality-list strong{display:block;font-family:var(--font-head);color:var(--navy-900);font-size:1.02rem;margin-bottom:.1rem}
.reality-list span{font-size:.92rem;color:var(--text-muted)}

/* Grouped neighborhood columns */
.areacols{display:grid;gap:1.5rem 2.5rem;margin-top:2rem}
@media(min-width:720px){.areacols{grid-template-columns:repeat(3,1fr)}}
.areacol h3{font-size:.82rem;text-transform:uppercase;letter-spacing:.07em;color:var(--crimson-700);
  margin:0 0 .85rem;display:flex;align-items:center;gap:.5rem}
.areacol h3::before{content:"";width:16px;height:2px;background:var(--crimson-600);border-radius:2px}
.areacol ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.areacol li{color:var(--navy-900);font-weight:600;font-size:.96rem;display:flex;align-items:center;gap:.5rem}
.areacol li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--slate-400);flex:0 0 auto}

/* Location snapshot band (visual intro) */
.snapshot{background:linear-gradient(160deg,var(--navy-900),var(--navy-950));color:#fff;border-radius:var(--r-lg);
  padding:clamp(1.75rem,4vw,2.75rem);display:grid;gap:1.75rem;align-items:center}
@media(min-width:820px){.snapshot{grid-template-columns:1.1fr 1fr}}
.snapshot h2{color:#fff;margin:0 0 .6rem}
.snapshot p{color:#C7D2DE;margin:0}
.snap-facts{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}
.snap-fact{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:var(--r-md);padding:.95rem 1.1rem}
.snap-fact .sf-l{font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;color:#9FB0C2;font-weight:700}
.snap-fact .sf-v{font-family:var(--font-head);font-weight:700;color:#fff;font-size:1rem;margin-top:.2rem;line-height:1.2}
.snap-fact .sf-v em{color:var(--crimson-600);font-style:normal}

/* ============================================================
   UTILITY / LEGAL PAGES
   ============================================================ */
.contact-cards{display:grid;gap:1rem}
@media(min-width:640px){.contact-cards{grid-template-columns:repeat(2,1fr)}}
@media(min-width:960px){.contact-cards{grid-template-columns:repeat(4,1fr)}}
.ccard{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);padding:1.5rem 1.25rem;text-align:center;
  transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.ccard:hover{transform:translateY(-3px);box-shadow:var(--shadow-1)}
.ccard .cc-ic{width:50px;height:50px;margin:0 auto .85rem;border-radius:14px;background:var(--crimson-100);color:var(--crimson-700);display:grid;place-items:center}
.ccard .cc-l{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--slate-600);font-weight:700}
.ccard strong,.ccard a{display:block;font-family:var(--font-head);color:var(--navy-900);font-weight:700;margin-top:.3rem;font-size:1.02rem;text-decoration:none}
.ccard a:hover{color:var(--crimson-700)}
.map-embed{border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow-1);aspect-ratio:16/8}
.map-embed iframe{width:100%;height:100%;border:0;display:block}

/* Legal prose */
.legal{max-width:800px;margin-inline:auto}
.legal .updated{color:var(--slate-600);font-size:.9rem;margin-bottom:1.5rem}
.legal h2{margin-top:2.25rem;font-size:var(--step-2)}
.legal h3{margin-top:1.5rem;font-size:1.15rem}
.legal p,.legal li{color:var(--text);font-size:1rem}
.legal ul{padding-left:1.25rem;margin:0 0 1em}
.legal li{margin-bottom:.4rem}

/* Team / About card */
.team-card{display:flex;gap:1.25rem;align-items:center;background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:1.5rem;box-shadow:var(--shadow-1)}
.team-card img{width:96px;height:96px;border-radius:50%;object-fit:cover;flex:0 0 auto;background:var(--navy-100)}
.team-card .ti-avatar{width:96px;height:96px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;
  background:linear-gradient(160deg,var(--navy-900),var(--navy-700));color:#fff;font-family:var(--font-head);font-weight:700;font-size:2.3rem}

/* ===== No-form page hero (utility pages) ===== */
.pagehero{position:relative;background:linear-gradient(160deg,var(--navy-900),var(--navy-950));color:#fff;
  padding:clamp(3.5rem,9vw,6rem) 0;overflow:hidden}
.pagehero::before{content:"";position:absolute;inset:0;
  background:radial-gradient(120% 80% at 82% -10%,rgba(197,43,58,.28),transparent 55%);pointer-events:none}
.pagehero .container{position:relative;max-width:880px;text-align:center}
.pagehero .eyebrow{color:#F4A6AE}
.pagehero h1{color:#fff;margin:.55rem 0 1rem;font-size:var(--step-5);text-wrap:balance}
.pagehero p.ph-sub{color:#C7D2DE;font-size:var(--step-1);max-width:60ch;margin:0 auto 1.85rem}
.pagehero .ph-cta{display:flex;gap:.85rem;justify-content:center;flex-wrap:wrap}
.pagehero .ph-trust{margin-top:1.9rem;color:#9FB0C2;font-size:.9rem;display:flex;gap:.75rem 1.4rem;justify-content:center;flex-wrap:wrap}
.pagehero .ph-trust span{display:inline-flex;align-items:center;gap:.45rem}
.pagehero .ph-trust svg{color:#F4A6AE}

/* ===== About: story + pullquote ===== */
.story{display:grid;gap:1.5rem 3rem;align-items:start}
@media(min-width:860px){.story{grid-template-columns:.85fr 1.15fr}}
.story h2{font-size:var(--step-4);margin:0}
.story .story-body p{margin:0 0 1rem}
.pullquote{border-top:3px solid var(--crimson-600);padding-top:1.2rem;margin:1.6rem 0 0;font-family:var(--font-head);
  font-size:var(--step-2);font-weight:700;color:var(--navy-900);line-height:1.3;text-wrap:balance}

/* ===== About: specialties list ===== */
.speclist{border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;background:#fff}
.specrow{display:flex;gap:1.1rem;align-items:flex-start;padding:1.35rem 1.6rem;border-bottom:1px solid var(--border);
  transition:background var(--dur) var(--ease)}
.specrow:last-child{border-bottom:0}
.specrow:hover{background:var(--cloud)}
.specrow .sp-ic{flex:0 0 auto;width:46px;height:46px;border-radius:12px;background:var(--navy-900);color:#fff;display:grid;place-items:center}
.specrow h3{margin:0 0 .2rem;font-size:1.05rem}
.specrow p{margin:0;color:var(--text-muted);font-size:.94rem}

/* ===== About: promise (numbered) ===== */
.promise{display:grid;gap:1.25rem;counter-reset:pr}
@media(min-width:760px){.promise{grid-template-columns:repeat(3,1fr)}}
.promise-item{position:relative;background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:2.1rem 1.6rem 1.6rem}
.promise-item::before{counter-increment:pr;content:"0" counter(pr);position:absolute;top:1rem;right:1.4rem;
  font-family:var(--font-head);font-weight:800;font-size:1.5rem;color:var(--navy-100)}
.promise-item h3{margin:.2rem 0 .45rem;font-size:1.12rem}
.promise-item p{margin:0;color:var(--text-muted);font-size:.94rem}

/* ===== Credential bar ===== */
.credbar{display:flex;flex-wrap:wrap;gap:1rem 1.75rem;justify-content:center;align-items:center;
  background:var(--navy-900);border-radius:var(--r-lg);padding:1.4rem 2rem;color:#fff}
.credbar span{display:inline-flex;align-items:center;gap:.55rem;font-weight:600;font-size:.95rem}
.credbar svg{color:#F4A6AE}
.credbar i{width:1px;height:22px;background:rgba(255,255,255,.16)}

/* ===== Contact: big action tiles ===== */
.contact-actions{display:grid;gap:1.25rem}
@media(min-width:720px){.contact-actions{grid-template-columns:repeat(3,1fr)}}
.cta-tile{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:1.9rem 1.5rem;text-align:center;
  transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.cta-tile:hover{transform:translateY(-4px);box-shadow:var(--shadow-2)}
.cta-tile .ct-ic{width:56px;height:56px;margin:0 auto 1rem;border-radius:16px;background:var(--crimson-100);color:var(--crimson-700);display:grid;place-items:center}
.cta-tile h3{margin:0 0 .35rem;font-size:1.1rem}
.cta-tile .big{display:block;font-family:var(--font-head);font-weight:700;color:var(--crimson-700);font-size:1.15rem;text-decoration:none;margin-top:.2rem}
.cta-tile a.big:hover{text-decoration:underline}
.cta-tile p{margin:.4rem 0 0;color:var(--text-muted);font-size:.9rem}

/* ===== Horizontal stepper ===== */
.stepper{display:grid;gap:1.75rem;counter-reset:st}
@media(min-width:760px){.stepper{grid-template-columns:repeat(3,1fr)}}
.step-c{position:relative;text-align:center;padding:0 .75rem}
.step-c .st-n{width:54px;height:54px;margin:0 auto 1rem;border-radius:50%;background:var(--navy-900);color:#fff;
  display:grid;place-items:center;font-family:var(--font-head);font-weight:700;font-size:1.3rem;position:relative;z-index:1}
@media(min-width:760px){.step-c:not(:last-child)::after{content:"";position:absolute;top:27px;left:calc(50% + 42px);right:calc(-50% + 42px);height:2px;background:var(--border)}}
.step-c h3{margin:0 0 .35rem;font-size:1.05rem}
.step-c p{margin:0;color:var(--text-muted);font-size:.92rem}

/* ===== Quote: what you'll need ===== */
.needlist{display:grid;gap:.9rem}
@media(min-width:640px){.needlist{grid-template-columns:repeat(2,1fr)}}
.needrow{display:flex;gap:.85rem;align-items:center;background:#fff;border:1px solid var(--border);border-radius:var(--r-md);padding:1.05rem 1.2rem}
.needrow>svg{color:var(--crimson-700);flex:0 0 auto}
.needrow strong{font-family:var(--font-head);color:var(--navy-900);font-weight:700;font-size:.98rem;display:block}
.needrow span{color:var(--text-muted);font-size:.85rem}

/* ===== Service Areas: statewide map ===== */
.statewide{display:grid;gap:2rem;align-items:center}
@media(min-width:820px){.statewide{grid-template-columns:1fr 1fr}}
.statewide img{width:100%;border-radius:var(--r-lg);border:1px solid var(--border);background:#fff}
.statewide h2{margin:0 0 .75rem}
.statewide .big-num{font-family:var(--font-head);font-weight:800;color:var(--crimson-700);font-size:clamp(2.4rem,6vw,3.4rem);line-height:1}
.statewide .big-num small{display:block;font-size:.82rem;font-weight:700;color:var(--slate-600);text-transform:uppercase;letter-spacing:.06em;margin-top:.4rem}

/* ===== Service Areas: region cards ===== */
.regioncards{display:grid;gap:1.25rem}
@media(min-width:680px){.regioncards{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.regioncards{grid-template-columns:repeat(4,1fr)}}
.regcard{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:1.5rem;transition:box-shadow var(--dur) var(--ease)}
.regcard:hover{box-shadow:var(--shadow-1)}
.regcard h3{margin:0 0 .9rem;font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:var(--crimson-700);display:flex;align-items:center;gap:.5rem}
.regcard ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.regcard li a{color:var(--navy-900);font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:.45rem}
.regcard li a::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--slate-400)}
.regcard li a:hover{color:var(--crimson-700)}

/* ===== Blog: featured guide ===== */
.featguide{display:grid;background:linear-gradient(160deg,var(--navy-900),var(--navy-950));border-radius:var(--r-lg);overflow:hidden;color:#fff}
@media(min-width:820px){.featguide{grid-template-columns:1.25fr 1fr}}
.featguide .fg-body{padding:clamp(1.9rem,4vw,3rem)}
.featguide .fg-tag{display:inline-block;background:rgba(197,43,58,.28);color:#F4A6AE;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:.35rem .85rem;border-radius:var(--r-pill);margin-bottom:1rem}
.featguide h2{color:#fff;font-size:var(--step-3);margin:0 0 .75rem}
.featguide p{color:#C7D2DE;margin:0 0 1.6rem}
.featguide .fg-visual{background-size:cover;background-position:center;min-height:200px}

/* ===== Blog: topic grid ===== */
.topicgrid{display:grid;gap:1.1rem}
@media(min-width:640px){.topicgrid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:980px){.topicgrid{grid-template-columns:repeat(3,1fr)}}
.topiccard{display:block;background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:1.6rem;text-decoration:none;
  transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.topiccard:hover{transform:translateY(-4px);box-shadow:var(--shadow-2)}
.topiccard .tc-ic{width:48px;height:48px;border-radius:13px;background:var(--navy-900);color:#fff;display:grid;place-items:center;margin-bottom:1rem}
.topiccard h3{margin:0 0 .35rem;font-size:1.08rem;color:var(--navy-900)}
.topiccard p{margin:0;color:var(--text-muted);font-size:.92rem}
.topiccard .tc-go{margin-top:.95rem;color:var(--crimson-700);font-weight:600;font-size:.9rem;display:inline-flex;align-items:center;gap:.35rem}

/* ============================================================
   EDITORIAL BLOG — single post
   ============================================================ */
.container--narrow{max-width:770px}
.post-hero{padding:clamp(1.75rem,4vw,3rem) 0 0}
.post-kicker{display:inline-block;font-family:var(--font-head);font-weight:700;font-size:.76rem;text-transform:uppercase;letter-spacing:.07em;color:var(--crimson-700);text-decoration:none;margin-bottom:1rem}
.post-kicker:hover{text-decoration:underline}
.post-hero h1{font-size:clamp(1.95rem,4.5vw,2.9rem);line-height:1.13;margin:0 0 1rem;text-wrap:balance}
.post-standfirst{font-size:var(--step-1);color:var(--text-muted);line-height:1.55;margin:0 0 1.6rem;max-width:60ch}
.post-meta{display:flex;align-items:center;gap:.85rem;padding-top:1.1rem;border-top:1px solid var(--border)}
.post-meta .pm-avatar{width:46px;height:46px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;background:linear-gradient(160deg,var(--navy-900),var(--navy-700));color:#fff;font-family:var(--font-head);font-weight:700}
.post-meta .pm-line1{display:block;color:var(--navy-900);font-size:.95rem}
.post-meta .pm-line1 a{color:var(--crimson-700);font-weight:600}
.post-meta .pm-line2{display:block;color:var(--slate-600);font-size:.85rem;margin-top:.1rem}
.post-featured{margin:2rem 0 0}
.post-featured img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r-lg);border:1px solid var(--border)}
.post-featured figcaption{color:var(--slate-600);font-size:.82rem;margin-top:.6rem;text-align:center}

.post-body{padding-block:clamp(1.75rem,4vw,2.75rem)}
.post-body>p{font-size:1.07rem;line-height:1.75;margin:0 0 1.35rem;color:var(--text)}
.post-body h2{font-size:clamp(1.42rem,3vw,1.85rem);margin:2.5rem 0 .85rem;line-height:1.2;scroll-margin-top:90px}
.post-body h3{font-size:1.2rem;margin:1.85rem 0 .55rem;scroll-margin-top:90px}
.post-body ul,.post-body ol{margin:0 0 1.35rem;padding-left:1.3rem}
.post-body li{margin-bottom:.55rem;line-height:1.65}
.post-body a{color:var(--crimson-700);font-weight:600;text-underline-offset:2px}
.post-body strong{color:var(--navy-900)}

/* Answer box — crisp, AI-liftable answer */
.answer-box{background:linear-gradient(160deg,var(--navy-900),var(--navy-950));color:#fff;border-radius:var(--r-lg);padding:1.5rem 1.75rem;margin:0 0 2rem}
.answer-box .ab-label{display:inline-flex;align-items:center;gap:.45rem;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#F4A6AE;margin-bottom:.6rem}
.answer-box p{margin:0;color:#E8EEF4;font-size:1.08rem;line-height:1.6}
.answer-box p strong{color:#fff}

/* Table of contents */
.post-toc{background:var(--cloud);border:1px solid var(--border);border-radius:var(--r-lg);padding:1.35rem 1.6rem;margin:0 0 2.25rem}
.post-toc .toc-h{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--slate-600);margin:0 0 .8rem;font-weight:700}
.post-toc ol{list-style:none;counter-reset:toc;margin:0;padding:0;display:grid;gap:.5rem}
.post-toc li{counter-increment:toc;margin:0}
.post-toc a{display:flex;gap:.7rem;color:var(--navy-900);font-weight:600;text-decoration:none;font-size:.96rem;align-items:baseline}
.post-toc a::before{content:counter(toc,decimal-leading-zero);color:var(--crimson-700);font-family:var(--font-head);font-size:.8rem;flex:0 0 auto}
.post-toc a:hover{color:var(--crimson-700)}

/* Callout */
.callout{display:flex;gap:.95rem;background:var(--cloud);border:1px solid var(--border);border-radius:var(--r-md);padding:1.2rem 1.35rem;margin:1.85rem 0}
.callout .co-ic{flex:0 0 auto;width:40px;height:40px;border-radius:11px;background:var(--crimson-100);color:var(--crimson-700);display:grid;place-items:center}
.callout h4{margin:0 0 .25rem;font-family:var(--font-head);font-size:1rem;color:var(--navy-900)}
.callout p{margin:0!important;font-size:.95rem;color:var(--text-muted)}

/* Key facts box */
.keyfacts{border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;margin:1.85rem 0}
.keyfacts .kf-head{background:var(--navy-900);color:#fff;padding:.85rem 1.35rem;font-family:var(--font-head);font-weight:700;font-size:.95rem}
.keyfacts .kf-row{display:grid;grid-template-columns:1fr 1.2fr;gap:1rem;padding:.85rem 1.35rem;border-bottom:1px solid var(--border)}
.keyfacts .kf-row:last-child{border-bottom:0}
.keyfacts .kf-row span:first-child{color:var(--slate-600);font-size:.9rem}
.keyfacts .kf-row span:last-child{color:var(--navy-900);font-weight:600;font-size:.95rem}

/* Checklist */
.checklist{list-style:none!important;padding-left:0!important;display:grid;gap:.7rem;margin:1.6rem 0!important}
.checklist li{display:flex;gap:.7rem;align-items:flex-start;margin:0!important}
.checklist li svg{flex:0 0 auto;color:var(--crimson-700);margin-top:.2rem}

/* Comparison table */
.ptable{width:100%;border-collapse:collapse;font-size:.94rem;margin:1.85rem 0;border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}
.ptable th,.ptable td{padding:.8rem 1rem;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}
.ptable thead th{background:var(--navy-900);color:#fff;font-family:var(--font-head);font-size:.85rem}
.ptable tbody tr:last-child td{border-bottom:0}
.ptable tbody tr:nth-child(even){background:var(--cloud)}
.ptable td:first-child{font-weight:600;color:var(--navy-900)}

/* Related posts */
.relposts-wrap{background:var(--cloud);border-top:1px solid var(--border);margin-top:clamp(2rem,5vw,3.5rem)}
.relposts{display:grid;gap:1.1rem}
@media(min-width:700px){.relposts{grid-template-columns:repeat(3,1fr)}}
.relcard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;text-decoration:none;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.relcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-2)}
.relcard:hover .rc-img{transform:scale(1.04)}
.relcard .rc-imgwrap{aspect-ratio:16/10;overflow:hidden;background:var(--navy-100)}
.relcard .rc-img{width:100%;height:100%;background-size:cover;background-position:center;transition:transform .5s var(--ease)}
.relcard .rc-body{padding:1.15rem 1.3rem 1.4rem;display:flex;flex-direction:column;flex:1}
.relcard .rc-k{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--crimson-700);font-weight:700}
.relcard h3{margin:.45rem 0 0;font-size:1.03rem;color:var(--navy-900);line-height:1.32}
.relcard .rc-go{margin-top:.9rem;color:var(--crimson-700);font-weight:600;font-size:.88rem}
.post-body .pullquote{margin:2.1rem 0}

/* Blog/guides hub — category card grid */
.guidegrid{display:grid;gap:1.25rem}
@media(min-width:640px){.guidegrid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:980px){.guidegrid{grid-template-columns:repeat(3,1fr)}}
.guidecard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;text-decoration:none;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.guidecard:hover{transform:translateY(-4px);box-shadow:var(--shadow-2)}
.guidecard:hover .gc-img{transform:scale(1.04)}
.guidecard .gc-imgwrap{aspect-ratio:16/10;overflow:hidden;background:var(--navy-100)}
.guidecard .gc-img{width:100%;height:100%;background-size:cover;background-position:center;transition:transform .5s var(--ease)}
.guidecard .gc-body{padding:1.1rem 1.3rem 1.35rem;display:flex;flex-direction:column;flex:1}
.guidecard .gc-k{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--crimson-700);font-weight:700}
.guidecard h3{margin:.4rem 0;font-size:1.02rem;color:var(--navy-900);line-height:1.3}
.guidecard p{margin:0 0 .9rem;font-size:.9rem;color:var(--text-muted);flex:1}
.guidecard .gc-go{color:var(--crimson-700);font-weight:600;font-size:.85rem}

/* Blog/guides hub — compact answer-question list */
.answerlist{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
@media(min-width:640px){.answerlist{grid-template-columns:repeat(2,1fr);gap:.7rem 1.5rem}}
@media(min-width:1000px){.answerlist{grid-template-columns:repeat(3,1fr)}}
.answerlist li{margin:0}
.answerlist a{display:flex;gap:.65rem;align-items:center;color:var(--navy-900);text-decoration:none;font-weight:600;
  font-size:.95rem;padding:.8rem 1rem;border:1px solid var(--border);border-radius:var(--r-md);background:#fff;height:100%;
  transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease),transform var(--dur) var(--ease)}
.answerlist a::before{content:"?";flex:0 0 auto;width:24px;height:24px;border-radius:50%;background:var(--crimson-100);
  color:var(--crimson-700);font-family:var(--font-head);font-weight:700;font-size:.82rem;display:grid;place-items:center}
.answerlist a:hover{border-color:var(--crimson-600);color:var(--crimson-700);transform:translateY(-2px)}
.team-card h3{margin:0 0 .15rem}
.team-card .role{color:var(--crimson-700);font-weight:600;font-size:.9rem;margin-bottom:.4rem}
.team-card p{margin:0;font-size:.94rem;color:var(--text-muted)}

/* Client-confirm marker (staging only — remove before publish) */
.cf{display:inline-block;font-size:.6em;font-weight:700;color:#92510A;background:#FEF3C7;
  padding:.1em .4em;border-radius:5px;vertical-align:super;letter-spacing:.02em;text-transform:uppercase}
.section--navy .cf{background:rgba(254,243,199,.9)}

/* "Important to know" note box (full border, no side-stripe) */
.notebox{background:var(--cloud);border:1px solid var(--border);border-radius:var(--r-md);padding:1.25rem 1.5rem}
.notebox h3{font-size:1.05rem;margin:0 0 .6rem}
.notebox ul{margin:0;padding-left:1.15rem;color:var(--text-muted)}
.notebox li{margin-bottom:.4rem}
.notebox li strong{color:var(--navy-900)}

/* Covers list (two-column checklist for coverage items) */
.covers{display:grid;gap:.7rem 2rem;margin:0;padding:0;list-style:none}
@media(min-width:640px){.covers{grid-template-columns:1fr 1fr}}
.covers li{display:flex;gap:.6rem;align-items:flex-start;font-size:.96rem}
.covers .ck{flex:0 0 auto;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--crimson-100);color:var(--crimson-700);margin-top:.1rem}
.covers .no{background:var(--navy-100);color:var(--slate-600)}
.covers strong{color:var(--navy-900)}

/* Why-us checklist (distinct from card grids) */
.why-list{list-style:none;margin:0;padding:0;display:grid;gap:1.4rem 3rem}
@media(min-width:760px){.why-list{grid-template-columns:1fr 1fr}}
.why-list li{display:flex;gap:.9rem;align-items:flex-start}
.why-ic{flex:0 0 auto;width:28px;height:28px;border-radius:50%;background:var(--crimson-100);
  color:var(--crimson-700);display:grid;place-items:center;margin-top:.15rem}
.why-list strong{color:var(--navy-900);font-family:var(--font-head);font-weight:700;display:block;margin-bottom:.15rem}
.why-list p{color:var(--text-muted);font-size:.95rem;margin:0}

/* utilities */
.text-center{text-align:center}
.text-center p,p.text-center{max-width:none;margin-inline:auto}
.center-cta{text-align:center;margin-top:1.75rem;max-width:none}
.cta-band p{max-width:54ch;margin-inline:auto}
.empathy p,.sec-head p{margin-inline:auto}
.footer-disclaimer{max-width:none !important}
.mx-auto{margin-inline:auto}
.mt-0{margin-top:0}
.stack>*+*{margin-top:var(--s3)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}

/* ============================================================
   RESPONSIVE POLISH (tablet + mobile)
   ============================================================ */
/* Tablet */
@media(max-width:900px){
  .hero .container{gap:1.75rem}
  .hero__form{max-width:520px}
  .split{gap:.85rem}
  .split .vs{padding:.25rem 0;font-size:.9rem}
  .img-wrap::before{right:-10px;bottom:-10px}
  .media--rev .img-wrap::before{left:-10px}
}
/* Mobile */
@media(max-width:600px){
  h1{letter-spacing:-.03em}
  .section{padding-block:clamp(2.25rem,7vw,3rem)}
  .sec-head{margin-bottom:1.5rem}
  .limit-card td,.limit-card th{padding:.7rem .8rem;font-size:.82rem}
  .limit-card .lc-head{padding:.9rem 1rem}
  .limit-card .lc-head .big{font-size:1.25rem}
  .data-table th,.data-table td{padding:.6rem .55rem;font-size:.84rem}
  .define{padding:1.25rem}
  .define p{font-size:1.05rem}
  .steps{gap:1rem}
  .timeline{gap:1.25rem}
  .problem{grid-template-columns:auto 1fr;padding:1.1rem 1.15rem}
  .pricedrop{width:100%;justify-content:center}
  .btn--lg{padding:.95rem 1.4rem;font-size:1rem}
  .hero__cta{gap:.6rem}
  .hero__cta .btn{flex:1;min-width:0}
  .footer-bottom{flex-direction:column;gap:.5rem}
  .topbar__hours a{margin-left:.6rem}
}
@media(max-width:600px){
  .hero__cta{flex-direction:column;align-items:stretch}
  .hero__cta .btn{width:100%;white-space:nowrap}
}
