/* ==========================================================================
   Local Public Utilities — Design System
   Subtle, restrained palette in the spirit of category leaders: pale sky-blue
   surfaces, deep navy panels, one confident azure accent, charcoal text,
   editorial serif headlines. No gradients-for-decoration, no bouncy motion.
   ========================================================================== */

:root{
  /* ---- Color tokens ---- */
  --ink:#32313A;         /* primary text — warm charcoal, not blue-black */
  --navy:#002459;        /* dark panels — search card, footer, dark bands */
  --navy-2:#013269;      /* secondary dark, subtle gradient companion */
  --paper:#FFFFFF;
  --mist:#EDF6FF;        /* page/section background — pale sky blue */
  --mist-deep:#DCEBFB;
  --azure:#006AEB;       /* the one signature accent — every action */
  --azure-dark:#0055BD;  /* hover / pressed / text-on-light use */
  --azure-tint:#EDF6FF;
  --slate:#6B6A76;       /* secondary text */
  --slate-light:#9694A0; /* muted text */
  --line:#DCE7F5;        /* hairline borders */
  --line-strong:#C7DAF2;
  --forest:#1F8A4C;      /* semantic success only (form alerts, badges) */
  --rose:#B23A3A;        /* semantic error only */

  /* legacy aliases kept so every component below reads clearly */
  --white:var(--paper);
  --off-white:var(--mist);
  --light-gray:var(--mist-deep);
  --text:var(--ink);
  --text-secondary:var(--slate);
  --text-muted:var(--slate-light);
  --border:var(--line);
  --border-light:var(--line);
  --amber:#C99A3E;
  --green:var(--forest);
  --green-dark:#166B3A;
  --blue:var(--azure);
  --blue-dark:var(--azure-dark);
  --blue-darker:var(--navy);
  --blue-50:var(--mist);
  --blue-100:var(--mist-deep);
  --sky:var(--azure);
  --gold:var(--azure);
  --gold-bright:var(--azure-dark);
  --gold-ink:var(--azure-dark);

  /* ---- Gradients — used only for the handful of dark panels, kept subtle ---- */
  --grad-dark: linear-gradient(160deg,var(--navy) 0%,var(--navy-2) 100%);
  --grad-primary: linear-gradient(135deg,var(--navy) 0%,var(--navy-2) 100%);

  /* ---- Typography ---- */
  --font-display:'Fraunces', 'Times New Roman', serif;
  --font-body:'Inter', -apple-system, sans-serif;
  --font-mono:var(--font-body);

  /* ---- Spacing scale ---- */
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px;
  --space-5:20px; --space-6:24px; --space-8:32px; --space-10:40px;
  --space-12:48px; --space-16:64px; --space-20:80px; --space-24:96px;

  /* ---- Radii — pill buttons, small-radius cards, per category convention ---- */
  --r-sm:8px; --r-md:10px; --r-lg:14px; --r-xl:16px; --r-full:999px;

  /* ---- Shadows — mostly hairline, shadow reserved for true elevation ---- */
  --shadow-xs: 0 1px 2px rgba(0,36,89,.05);
  --shadow-sm: 0 2px 6px rgba(0,36,89,.06);
  --shadow-md: 0 8px 20px rgba(0,36,89,.08);
  --shadow-lg: 0 16px 32px rgba(0,36,89,.12);
  --shadow-xl: 0 24px 48px rgba(0,36,89,.16);
  --shadow-blue: 0 10px 22px rgba(0,106,235,.22);
  --shadow-blue-lg: 0 16px 32px rgba(0,106,235,.28);
  --shadow-gold: var(--shadow-blue);

  /* ---- Layout ---- */
  --container-w: 1240px;
  --header-h: 76px;
  --announce-h: 38px;

  /* ---- Motion ---- */
  --ease: cubic-bezier(.22,1,.36,1);
  --dur-fast: .16s;
  --dur: .3s;
  --dur-slow: .5s;
}

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}

/* ---- Reset ---- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  color:var(--ink);
  background:var(--paper);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; }
button{ font-family:inherit; }
input,select,textarea{ font-family:inherit; font-size:1rem; }
h1,h2,h3,h4{ font-family:var(--font-display); color:var(--ink); line-height:1.15; font-weight:600; letter-spacing:-.01em; }
h1{ font-size:clamp(2.25rem,4.5vw,3.75rem); font-weight:600; }
h2{ font-size:clamp(1.75rem,3vw,2.5rem); font-weight:600; }
h3{ font-size:1.2rem; font-weight:600; font-family:var(--font-body); letter-spacing:0; }
p{ color:var(--slate); }
.container{ width:100%; max-width:var(--container-w); margin:0 auto; padding:0 24px; }
.site-wrapper{ position:relative; }
main{ display:block; }

/* skip link */
.skip-link{
  position:absolute; left:12px; top:-60px; z-index:1000;
  background:var(--navy); color:#fff; padding:10px 18px; border-radius:var(--r-sm);
  transition:top var(--dur-fast) var(--ease);
}
.skip-link:focus{ top:12px; }

:focus-visible{ outline:3px solid var(--azure); outline-offset:2px; border-radius:3px; }

/* ---- Eyebrow / section heading helpers ---- */
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-body);
  font-size:.75rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--azure-dark); margin-bottom:var(--space-4);
}
.section-head{ max-width:680px; margin:0 auto var(--space-12); text-align:center; }
.section-head h2{ margin-bottom:var(--space-3); }
.section-head p{ font-size:1.05rem; }
.section{ padding:var(--space-20) 0; position:relative; }
.section.tight{ padding:var(--space-12) 0; }
.bg-off{ background:var(--mist); }
.bg-white{ background:var(--paper); }
.bg-dark{ background:var(--grad-dark); color:#fff; }
.bg-dark h2,.bg-dark h3{ color:#fff; }
.bg-dark p{ color:#B9CBE8; }

/* ==========================================================================
   Buttons — pill-shaped, one accent color used consistently everywhere
   ========================================================================== */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--font-body); font-weight:700; font-size:.95rem; padding:14px 28px; border-radius:var(--r-full);
  border:1.5px solid transparent; cursor:pointer; white-space:nowrap;
  transition:transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}
.btn svg,.btn i{ flex-shrink:0; }
.btn-primary{ background:var(--azure); color:#fff; box-shadow:var(--shadow-blue); }
.btn-primary:hover{ background:var(--azure-dark); transform:translateY(-2px); box-shadow:var(--shadow-blue-lg); }
.btn-primary:active{ transform:translateY(0); }
.btn-call{ background:var(--azure); color:#fff; box-shadow:var(--shadow-blue); font-weight:700; }
.btn-call:hover{ background:var(--azure-dark); transform:translateY(-2px); box-shadow:var(--shadow-blue-lg); }
.btn-secondary{ background:#fff; color:var(--navy); border-color:var(--line-strong); box-shadow:none; }
.btn-secondary:hover{ border-color:var(--azure); color:var(--azure-dark); background:var(--mist); transform:translateY(-2px); }
.btn-ghost{ background:transparent; color:var(--navy); border-color:var(--line-strong); }
.btn-ghost:hover{ border-color:var(--azure); color:var(--azure-dark); }
.btn-white{ background:var(--azure); color:#fff; box-shadow:var(--shadow-blue); font-weight:700; }
.btn-white:hover{ background:var(--azure-dark); transform:translateY(-2px); box-shadow:var(--shadow-blue-lg); }
.btn-lg{ padding:17px 34px; font-size:1.05rem; }
.btn-block{ width:100%; }
.btn .pulse-dot{
  width:7px; height:7px; border-radius:50%; background:currentColor; display:inline-block; opacity:.9;
}

/* ==========================================================================
   Announcement bar
   ========================================================================== */
.announce-bar{
  background:var(--navy); color:#CBDCF2; min-height:var(--announce-h);
  display:flex; align-items:center; font-family:var(--font-body); font-size:.8rem; font-weight:600;
  letter-spacing:.01em; position:relative; z-index:120; padding:6px 0;
}
.announce-bar .container{ display:flex; align-items:center; justify-content:center; gap:24px; flex-wrap:wrap; }
.announce-bar a{ color:#fff; display:inline-flex; align-items:center; gap:6px; }
.announce-bar a:hover{ color:#9EC4F5; }
.announce-bar .announce-sep{ opacity:.3; }
.announce-bar .fa-phone-alt{ color:#9EC4F5; }

/* ==========================================================================
   Legal disclaimer strip (below header)
   ========================================================================== */
.legal-strip{ background:var(--mist); border-bottom:1px solid var(--line); padding:6px 0; }
.legal-strip p{ margin:0; text-align:center; font-size:.68rem; color:var(--slate-light); line-height:1.4; }

/* ==========================================================================
   Header / Navigation
   ========================================================================== */
.main-header{
  position:sticky; top:0; z-index:110; background:rgba(255,255,255,.97);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
  transition:box-shadow var(--dur) var(--ease);
}
.main-header.is-scrolled{ box-shadow:var(--shadow-md); }
.header-container{
  display:flex; align-items:center; justify-content:space-between;
  height:var(--header-h); gap:var(--space-6);
}
.logo{ display:flex; align-items:center; gap:11px; font-family:var(--font-display); }
.logo-mark{
  width:38px; height:38px; flex-shrink:0; display:flex; align-items:center; justify-content:center;
}
.logo-mark svg{ width:100%; height:100%; display:block; }
.logo-text{ display:flex; flex-direction:column; line-height:1.15; }
.logo-text .name{ font-family:var(--font-display); font-weight:600; font-size:1.28rem; color:var(--ink); white-space:nowrap; letter-spacing:-.01em; }
.logo-text .tag{ font-family:var(--font-body); font-size:.62rem; color:var(--slate); font-weight:700; letter-spacing:.1em; text-transform:uppercase; }

.main-nav{ display:flex; }
.main-nav > ul{ display:flex; align-items:center; gap:var(--space-1); }
.main-nav > ul > li{ position:relative; }
.main-nav > ul > li > a{
  display:flex; align-items:center; gap:6px; padding:10px 14px; border-radius:var(--r-sm);
  font-family:var(--font-body); font-weight:600; font-size:.92rem; color:var(--ink); transition:background var(--dur-fast), color var(--dur-fast);
}
.main-nav > ul > li > a:hover, .main-nav > ul > li.open > a{ background:var(--mist); color:var(--azure-dark); }
.main-nav .chev{ font-size:.6rem; transition:transform var(--dur-fast) var(--ease); }
.main-nav li.open .chev{ transform:rotate(180deg); }

/* Mega menu */
.mega-menu{
  position:absolute; top:calc(100% + 10px); left:50%; transform:translateX(-50%) translateY(6px);
  width:640px; background:#fff; border-radius:var(--r-lg); box-shadow:var(--shadow-xl);
  border:1px solid var(--line); padding:var(--space-6);
  display:grid; grid-template-columns:repeat(2,1fr); gap:6px;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity var(--dur) var(--ease), transform var(--dur) var(--ease), visibility var(--dur);
}
.main-nav li.open .mega-menu{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); pointer-events:auto; }
.mega-item{
  display:flex; align-items:flex-start; gap:12px; padding:12px; border-radius:var(--r-md);
  transition:background var(--dur-fast);
}
.mega-item:hover{ background:var(--mist); }
.mega-item .mega-icon{
  width:36px; height:36px; border-radius:var(--r-sm); background:var(--mist); color:var(--navy);
  display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:.95rem; border:1px solid var(--line);
}
.mega-item:hover .mega-icon{ background:var(--azure); color:#fff; border-color:var(--azure); }
.mega-item strong{ display:block; font-size:.9rem; color:var(--ink); margin-bottom:2px; font-weight:700; }
.mega-item span{ font-size:.78rem; color:var(--slate); }

.header-cta{ display:flex; align-items:center; gap:16px; }
.header-phone{ display:flex; flex-direction:column; text-align:right; line-height:1.15; }
.header-phone .label{ font-family:var(--font-body); font-size:.66rem; color:var(--slate); font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.header-phone a{ font-weight:700; font-size:1.02rem; color:var(--ink); }
.header-phone a:hover{ color:var(--azure-dark); }

.mobile-toggle{
  display:none; width:44px; height:44px; border-radius:var(--r-sm); border:1px solid var(--line-strong);
  background:#fff; align-items:center; justify-content:center; font-size:1.1rem; cursor:pointer; color:var(--ink);
}

/* Mobile nav drawer */
.mobile-nav-scrim{
  position:fixed; inset:0; background:rgba(0,36,89,.55); z-index:150; opacity:0; visibility:hidden;
  transition:opacity var(--dur) var(--ease), visibility var(--dur);
}
.mobile-nav-scrim.active{ opacity:1; visibility:visible; }
.mobile-nav{
  position:fixed; top:0; right:0; height:100%; width:min(340px,86vw); background:#fff; z-index:151;
  box-shadow:var(--shadow-xl); transform:translateX(100%); transition:transform var(--dur-slow) var(--ease);
  overflow-y:auto; display:flex; flex-direction:column;
}
.mobile-nav.active{ transform:translateX(0); }
.mobile-nav-head{ display:flex; align-items:center; justify-content:space-between; padding:20px; border-bottom:1px solid var(--line); }
.mobile-nav-close{ width:38px; height:38px; border-radius:50%; border:1px solid var(--line-strong); background:#fff; font-size:1rem; cursor:pointer; }
.mobile-nav ul{ padding:12px; }
.mobile-nav li a{ display:flex; align-items:center; justify-content:space-between; padding:16px 12px; font-weight:600; border-bottom:1px solid var(--line); }
.mobile-nav-cta{ margin:16px; padding:16px; background:var(--navy); border-radius:var(--r-md); text-align:center; }
.mobile-nav-cta .phone-big{ font-family:var(--font-body); font-weight:700; font-size:1.3rem; color:#fff; display:block; margin-bottom:12px; }

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{
  position:relative; padding:var(--space-16) 0 var(--space-16); overflow:hidden;
  background:var(--mist);
}
.hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:var(--space-10); align-items:center; position:relative; z-index:2; }
.hero-copy{ max-width:560px; }
.hero h1{ margin-bottom:var(--space-5); }
.hero h1 em{ font-style:italic; color:var(--azure-dark); }
.hero-sub{ font-size:1.15rem; color:var(--slate); max-width:520px; margin:0 0 var(--space-8); }
.hero-cta-row{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:var(--space-8); }
.hero-cta-row.center{ justify-content:center; }
.hero-phone-note{ font-size:.9rem; color:var(--slate); margin-top:10px; }

.trust-badges{ display:flex; gap:var(--space-6); flex-wrap:wrap; font-size:.88rem; color:var(--slate); font-weight:600; }
.trust-badges.center{ justify-content:center; }
.trust-badges span{ display:inline-flex; align-items:center; gap:8px; }
.trust-badges i{ color:var(--azure); }

/* ---- Signature graphic: abstract coverage radar ---- */
.hero-radar{ position:relative; display:flex; align-items:center; justify-content:center; min-height:420px; }
.hero-radar svg{ width:100%; max-width:480px; height:auto; overflow:visible; }
.radar-ring{ fill:none; stroke:var(--azure); stroke-opacity:.2; }
.radar-ring.r1{ animation:radar-pulse 4.5s ease-out infinite; }
.radar-ring.r2{ animation:radar-pulse 4.5s ease-out infinite; animation-delay:1.5s; }
.radar-ring.r3{ animation:radar-pulse 4.5s ease-out infinite; animation-delay:3s; }
@keyframes radar-pulse{
  0%{ opacity:.5; transform:scale(.85); }
  70%{ opacity:0; transform:scale(1.05); }
  100%{ opacity:0; transform:scale(1.05); }
}
.radar-pin{ fill:var(--azure); }
.radar-dot{ fill:var(--navy); opacity:.45; }
.radar-dot.gold{ fill:var(--azure); opacity:.85; }

/* ZIP / Address search card — dark panel per category convention */
.search-card{
  background:var(--navy); border-radius:var(--r-xl); box-shadow:var(--shadow-xl);
  padding:var(--space-8); max-width:560px; margin:0 0 var(--space-8); text-align:left; position:relative; z-index:2;
}
.search-card.centered{ margin-left:auto; margin-right:auto; max-width:640px; }
.search-tabs{ display:flex; gap:6px; margin-bottom:var(--space-5); background:rgba(255,255,255,.08); padding:5px; border-radius:var(--r-full); width:fit-content; }
.search-tab{ padding:9px 18px; border-radius:var(--r-full); font-weight:700; font-size:.85rem; cursor:pointer; border:none; background:transparent; color:#AEC6E8; transition:all var(--dur-fast) var(--ease); }
.search-tab.active{ background:var(--azure); color:#fff; }
.search-panel{ display:none; }
.search-panel.active{ display:block; }
.search-row{ display:flex; gap:10px; flex-wrap:wrap; }
.search-field{ position:relative; flex:1; min-width:200px; }
.search-field i{ position:absolute; left:16px; top:50%; transform:translateY(-50%); color:var(--slate-light); }
.search-field input{
  width:100%; padding:15px 16px 15px 44px; border:1.5px solid transparent; border-radius:var(--r-sm);
  font-size:1rem; background:#fff; color:var(--ink); transition:box-shadow var(--dur-fast);
}
.search-field input::placeholder{ color:var(--slate-light); }
.search-field input:focus{ outline:none; box-shadow:0 0 0 3px rgba(0,106,235,.4); }
.search-row .btn{ padding:15px 26px; border-radius:var(--r-sm); }
.search-error{ color:#F5B3B3; font-size:.85rem; margin-top:8px; display:none; }
.search-error.show{ display:block; }
.search-quicklinks{ display:flex; gap:8px; flex-wrap:wrap; margin-top:var(--space-5); }
.search-quicklinks a{
  font-size:.8rem; font-weight:600; color:#C7D9F0; background:rgba(255,255,255,.06);
  padding:8px 13px; border-radius:var(--r-full); border:1px solid rgba(255,255,255,.14); transition:all var(--dur-fast);
}
.search-quicklinks a:hover{ background:rgba(0,106,235,.25); color:#fff; border-color:rgba(0,106,235,.5); }

/* Provider logo strip */
.logo-strip{ padding:var(--space-10) 0; background:#fff; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.logo-strip-label{ text-align:center; font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--slate-light); margin-bottom:var(--space-6); }
.logo-row{ display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:var(--space-8); }
.logo-row .logo-item{
  width:130px; height:56px; display:flex; align-items:center; justify-content:center; filter:grayscale(1); opacity:.55;
  transition:opacity var(--dur-fast), filter var(--dur-fast), transform var(--dur-fast);
}
.logo-row .logo-item:hover{ filter:grayscale(0); opacity:1; transform:translateY(-3px); }
.logo-row img{ max-height:34px; max-width:100%; object-fit:contain; }

/* ==========================================================================
   Trust / "why trust us" banner
   ========================================================================== */
.trust-cards{ display:grid; grid-template-columns:repeat(2,1fr); gap:var(--space-6); max-width:900px; margin:0 auto; }
.trust-card{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:var(--space-8); text-align:center; transition:transform var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.trust-card:hover{ transform:translateY(-4px); border-color:var(--azure); }
.trust-icon{
  width:60px; height:60px; border-radius:var(--r-md); background:var(--mist); color:var(--navy); border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; margin:0 auto var(--space-5); font-size:1.4rem;
}
.trust-card h3{ margin-bottom:var(--space-3); }

.rating-card{
  max-width:560px; margin:var(--space-10) auto 0; text-align:center; background:var(--paper);
  border:1px solid var(--line); border-radius:var(--r-full); padding:18px 28px; box-shadow:var(--shadow-sm);
}
.rating-stars{ color:var(--azure); letter-spacing:3px; margin-bottom:6px; }
.rating-text{ font-size:1rem; display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:6px; }
.rating-score{ background:var(--mist); color:var(--navy); padding:3px 12px; border-radius:var(--r-full); font-weight:700; font-size:.85rem; }

/* ==========================================================================
   Service cards — hairline, structured, restrained hover
   ========================================================================== */
.service-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-6); }
.service-card{
  position:relative; background:#fff; border:1px solid var(--line); border-radius:var(--r-lg);
  padding:var(--space-8) var(--space-6);
  transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur);
}
.service-card:hover{ box-shadow:var(--shadow-lg); border-color:var(--azure); transform:translateY(-3px); }
.service-icon{
  width:52px; height:52px; border-radius:var(--r-md); display:flex; align-items:center; justify-content:center;
  background:var(--navy); color:#fff; font-size:1.3rem; margin-bottom:var(--space-5);
  transition:background var(--dur) var(--ease);
}
.service-card:hover .service-icon{ background:var(--azure); color:#fff; }
.service-card h3{ margin-bottom:var(--space-2); }
.service-card p{ font-size:.92rem; margin-bottom:var(--space-4); }
.service-avail{ font-size:.76rem; font-weight:700; color:var(--forest); display:flex; align-items:center; gap:6px; margin-bottom:var(--space-5); text-transform:uppercase; letter-spacing:.03em; }
.service-avail i{ font-size:.55rem; }
.service-actions{ display:flex; gap:8px; flex-wrap:wrap; }
.service-actions .btn{ padding:10px 16px; font-size:.82rem; flex:1; }

/* ==========================================================================
   How it works
   ========================================================================== */
.steps-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-6); counter-reset:step; position:relative; }
.step-card{ text-align:center; position:relative; padding:0 var(--space-3); }
.step-num{
  width:44px; height:44px; border-radius:50%; background:var(--navy); color:#fff; font-family:var(--font-body);
  font-weight:700; font-size:1.05rem; display:flex; align-items:center; justify-content:center; margin:0 auto var(--space-5);
}
.step-card h3{ margin-bottom:var(--space-2); font-size:1.05rem; }
.step-card p{ font-size:.92rem; }
.steps-row .step-card:not(:last-child)::after{
  content:''; position:absolute; top:22px; left:calc(50% + 36px); width:calc(100% - 52px); height:1px;
  background:repeating-linear-gradient(90deg,var(--line-strong) 0 6px, transparent 6px 11px);
}

/* ==========================================================================
   Stats band
   ========================================================================== */
.stats-band{ background:var(--grad-dark); border-radius:var(--r-xl); padding:var(--space-12) var(--space-8); color:#fff; position:relative; overflow:hidden; }
.stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-6); text-align:center; position:relative; z-index:1; }
.stat-num{ font-family:var(--font-body); font-size:clamp(1.9rem,4vw,2.5rem); font-weight:700; color:#fff; }
.stat-label{ color:#AEC6E8; font-size:.88rem; margin-top:6px; }

/* ==========================================================================
   Testimonials
   ========================================================================== */
.testimonial-wrap{ position:relative; max-width:760px; margin:0 auto; }
.testimonial-track{ overflow:hidden; }
.testimonial-slides{ display:flex; transition:transform var(--dur-slow) var(--ease); }
.testimonial-slide{ flex:0 0 100%; padding:0 6px; }
.testimonial-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:var(--space-10);
  text-align:center; box-shadow:var(--shadow-sm);
}
.t-stars{ color:var(--azure); margin-bottom:var(--space-4); letter-spacing:2px; }
.t-quote{ font-family:var(--font-display); font-style:italic; font-size:1.25rem; color:var(--ink); margin-bottom:var(--space-6); font-weight:400; line-height:1.5; }
.t-person{ display:flex; align-items:center; justify-content:center; gap:12px; }
.t-avatar{
  width:48px; height:48px; border-radius:50%; background:var(--navy); color:#fff; display:flex;
  align-items:center; justify-content:center; font-weight:700; font-family:var(--font-body); font-size:1rem;
}
.t-name{ font-weight:700; font-size:.92rem; display:flex; align-items:center; gap:6px; font-family:var(--font-body); }
.t-verified{ color:var(--forest); font-size:.85rem; }
.t-loc{ font-size:.8rem; color:var(--slate); }
.testimonial-nav{ display:flex; justify-content:center; gap:10px; margin-top:var(--space-6); }
.t-dot{ width:8px; height:8px; border-radius:50%; background:var(--line-strong); border:none; cursor:pointer; transition:background var(--dur-fast), width var(--dur-fast); }
.t-dot.active{ background:var(--azure); width:22px; border-radius:4px; }
.testimonial-arrow{
  position:absolute; top:50%; transform:translateY(-50%); width:42px; height:42px; border-radius:50%; background:#fff;
  border:1px solid var(--line-strong); display:flex; align-items:center; justify-content:center;
  cursor:pointer; color:var(--navy); transition:all var(--dur-fast);
}
.testimonial-arrow:hover{ background:var(--azure); color:#fff; border-color:var(--azure); }
.testimonial-arrow.prev{ left:-56px; }
.testimonial-arrow.next{ right:-56px; }

/* ==========================================================================
   FAQ accordion
   ========================================================================== */
.faq-list{ max-width:800px; margin:0 auto; display:flex; flex-direction:column; gap:10px; }
.faq-row{ background:#fff; border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden; }
.faq-row.open{ border-color:var(--azure); }
.faq-q{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:19px 24px;
  background:transparent; border:none; text-align:left; cursor:pointer; font-family:var(--font-body); font-weight:700; font-size:.98rem; color:var(--ink);
}
.faq-q .fa-plus{ color:var(--azure); transition:transform var(--dur) var(--ease); flex-shrink:0; }
.faq-row.open .fa-plus{ transform:rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height var(--dur-slow) var(--ease); }
.faq-a-inner{ padding:0 24px 22px; color:var(--slate); }
.faq-row.open .faq-a{ max-height:400px; }

/* ==========================================================================
   CTA banner
   ========================================================================== */
.cta-banner{
  background:var(--grad-dark); border-radius:var(--r-xl); padding:var(--space-16) var(--space-8); text-align:center;
  color:#fff; position:relative; overflow:hidden;
}
.cta-banner > *{ position:relative; z-index:1; }
.cta-banner h2{ color:#fff; margin-bottom:var(--space-3); }
.cta-banner p{ color:#B9CBE8; margin-bottom:var(--space-8); font-size:1.1rem; }
.cta-banner .hours{ font-size:.85rem; color:#8FA9CC; margin-top:var(--space-5); }

/* ==========================================================================
   Footer
   ========================================================================== */
.main-footer{ background:var(--navy); color:#AEC6E8; padding:var(--space-16) 0 0; }
.footer-top{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr 1fr; gap:var(--space-8); padding-bottom:var(--space-12); }
.footer-brand .logo-text .name{ color:#fff; }
.footer-brand .logo-text .tag{ color:#8FA9CC; }
.footer-brand p{ color:#8FA9CC; font-size:.9rem; margin:var(--space-4) 0; max-width:280px; }
.footer-phone-btn{ margin-top:var(--space-2); }
.footer-social{ display:flex; gap:10px; margin-top:var(--space-5); }
.footer-social a{ width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); display:flex; align-items:center; justify-content:center; transition:background var(--dur-fast); }
.footer-social a:hover{ background:var(--azure); color:#fff; border-color:var(--azure); }
.footer-col h4{ color:#fff; font-family:var(--font-body); font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; margin-bottom:var(--space-5); font-weight:700; }
.footer-col ul{ display:flex; flex-direction:column; gap:11px; }
.footer-col a{ color:#8FA9CC; font-size:.9rem; transition:color var(--dur-fast); }
.footer-col a:hover{ color:#fff; }
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.1); padding:var(--space-6) 0 calc(var(--space-6) + 70px);
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; font-size:.8rem; color:#7E9BC2;
}
.footer-bottom a{ color:#8FA9CC; }
.footer-legal-links{ display:flex; gap:16px; flex-wrap:wrap; align-items:center; }
.footer-disclaimer{ font-size:.76rem; color:#7E9BC2; padding-top:var(--space-4); line-height:1.6; }

@media (min-width: 769px){
  .footer-bottom{ padding-bottom: var(--space-6); }
}

/* ==========================================================================
   Sticky mobile CTA + Floating call button
   ========================================================================== */
.sticky-mobile-cta{
  position:fixed; bottom:0; left:0; right:0; z-index:140; display:none;
  background:var(--navy); box-shadow:0 -8px 24px rgba(0,36,89,.2);
  padding:10px 14px; padding-bottom:calc(10px + env(safe-area-inset-bottom));
}
.sticky-mobile-cta a{
  display:flex; align-items:center; justify-content:center; gap:10px; background:var(--azure); color:#fff;
  font-family:var(--font-body); font-weight:700; font-size:1rem; padding:14px; border-radius:var(--r-full);
}
.fab-call{
  position:fixed; bottom:26px; right:26px; z-index:130; width:60px; height:60px; border-radius:50%;
  background:var(--azure); color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.4rem;
  box-shadow:0 10px 26px rgba(0,106,235,.4); border:none; cursor:pointer;
}
.fab-call::before{
  content:''; position:absolute; inset:0; border-radius:50%; background:var(--azure); opacity:.4;
  animation:fab-pulse 2.8s ease-out infinite;
}
@keyframes fab-pulse{ 0%{ transform:scale(1); opacity:.4; } 100%{ transform:scale(1.7); opacity:0; } }
.fab-call i{ position:relative; z-index:1; }

/* ==========================================================================
   Page header (interior pages)
   ========================================================================== */
.page-hero{
  padding:var(--space-16) 0 var(--space-12); text-align:center; position:relative; overflow:hidden;
  background:var(--mist);
}
.page-hero .eyebrow{ margin-bottom:var(--space-4); justify-content:center; }
.page-hero h1{ margin-bottom:var(--space-4); }
.page-hero .accent, .hero h1 .accent{ font-style:italic; color:var(--azure-dark); }
.page-hero p{ font-size:1.1rem; max-width:640px; margin:0 auto; }
.breadcrumbs{ font-size:.8rem; color:var(--slate); margin-bottom:var(--space-5); }
.breadcrumbs a{ color:var(--slate); }
.breadcrumbs a:hover{ color:var(--azure-dark); }

/* ==========================================================================
   Plan / pricing cards
   ========================================================================== */
.plans-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-6); }
.plan-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:var(--space-8);
  position:relative; transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
  display:flex; flex-direction:column;
}
.plan-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.plan-card.popular{ border:2px solid var(--azure); box-shadow:var(--shadow-md); }
.plan-badge{
  position:absolute; top:-13px; left:50%; transform:translateX(-50%); background:var(--azure); color:#fff;
  padding:5px 16px; border-radius:var(--r-full); font-size:.76rem; font-weight:800; white-space:nowrap; letter-spacing:.03em; text-transform:uppercase;
}
.plan-card h3{ margin-bottom:var(--space-3); }
.plan-price{ font-family:var(--font-body); font-size:2.3rem; font-weight:700; color:var(--navy); margin-bottom:var(--space-5); }
.plan-price span{ font-size:.95rem; font-weight:500; color:var(--slate); }
.plan-features{ display:flex; flex-direction:column; gap:12px; margin-bottom:var(--space-6); flex:1; }
.plan-features li{ display:flex; align-items:center; gap:10px; font-size:.92rem; color:var(--slate); }
.plan-features i{ color:var(--azure); flex-shrink:0; }
.plan-disclaimer{ font-size:.76rem; color:var(--slate-light); margin-top:var(--space-3); text-align:center; }

/* Providers grid */
.providers-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-5); }
.provider-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:var(--space-6);
  text-align:center; transition:all var(--dur) var(--ease);
}
.provider-card:hover{ border-color:var(--azure); box-shadow:var(--shadow-md); transform:translateY(-4px); }
.provider-card .p-icon{ width:50px; height:50px; border-radius:var(--r-md); background:var(--mist); color:var(--navy); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; margin:0 auto var(--space-4); font-size:1.2rem; }
.provider-card h3{ margin-bottom:var(--space-2); font-size:1.02rem; }
.provider-card p{ font-size:.85rem; margin-bottom:var(--space-4); }
.provider-link{ color:var(--azure-dark); font-weight:700; font-size:.85rem; }

/* Bundles */
.bundle-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:var(--space-8); max-width:820px; margin:0 auto; }
.bundle-card{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:var(--space-8); text-align:center; box-shadow:var(--shadow-sm); }
.bundle-card.featured{ background:var(--grad-dark); color:#fff; border:none; box-shadow:var(--shadow-lg); }
.bundle-card.featured h3, .bundle-card.featured .bundle-price{ color:#fff; }
.bundle-price{ font-family:var(--font-body); font-size:2.1rem; font-weight:700; color:var(--navy); margin:var(--space-3) 0 var(--space-5); }
.bundle-card ul{ text-align:left; display:flex; flex-direction:column; gap:10px; margin-bottom:var(--space-6); }
.bundle-card li{ display:flex; align-items:center; gap:10px; font-size:.92rem; }
.bundle-card li i{ color:var(--azure); }
.bundle-card.featured li i{ color:#9EC4F5; }

/* Channels grid */
.channels-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-4); }
.channel-card{
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.14); border-radius:var(--r-md);
  padding:var(--space-5); text-align:center; font-weight:600; color:#fff;
}
.channel-card i{ color:#9EC4F5; }

/* Rates table */
.rates-table-wrap{ max-width:600px; margin:0 auto; overflow-x:auto; border-radius:var(--r-md); box-shadow:var(--shadow-sm); border:1px solid var(--line); }
.rates-table{ width:100%; border-collapse:collapse; background:#fff; }
.rates-table th{ background:var(--navy); color:#fff; padding:14px 16px; text-align:left; font-weight:700; font-size:.85rem; text-transform:uppercase; letter-spacing:.04em; }
.rates-table td{ padding:12px 16px; border-bottom:1px solid var(--line); color:var(--slate); font-size:.92rem; }
.rates-table td:first-child{ color:var(--ink); }

/* Feature grid (generic) */
.feature-grid-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-6); }
.feature-tile{ text-align:center; }
.feature-tile .f-icon{ width:56px; height:56px; border-radius:var(--r-md); background:var(--mist); color:var(--navy); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; margin:0 auto var(--space-4); font-size:1.3rem; }
.feature-tile h3{ margin-bottom:var(--space-2); font-size:1.02rem; }
.feature-tile p{ font-size:.9rem; }

/* ==========================================================================
   About / Contact / How it works
   ========================================================================== */
.story-grid{ display:grid; grid-template-columns:1.4fr 1fr; gap:var(--space-10); align-items:start; }
.story-text p{ margin-bottom:var(--space-5); line-height:1.85; }
.story-stats{ display:flex; flex-direction:column; gap:var(--space-4); position:sticky; top:calc(var(--header-h) + 20px); }
.stat-box{ background:var(--mist); border:1px solid var(--line); border-radius:var(--r-lg); padding:var(--space-6); text-align:center; }
.stat-box .stat-number{ display:block; font-family:var(--font-body); font-size:2rem; font-weight:700; color:var(--navy); }
.stat-box .stat-label{ color:var(--slate); font-size:.9rem; }

.owner-card{
  display:grid; grid-template-columns:auto 1fr; gap:var(--space-10); align-items:center; background:#fff;
  border:1px solid var(--line); border-radius:var(--r-xl); padding:var(--space-10); box-shadow:var(--shadow-md);
}
.owner-avatar{ width:130px; height:130px; border-radius:50%; background:var(--navy); display:flex; align-items:center; justify-content:center; color:#fff; font-size:3.2rem; }
.owner-info p{ font-family:var(--font-display); font-size:1.15rem; font-style:italic; line-height:1.7; margin-bottom:var(--space-6); color:var(--ink); font-weight:400; }

.benefits-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-6); }
.benefit-item{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:var(--space-8); text-align:center; transition:transform var(--dur) var(--ease), border-color var(--dur) var(--ease); }
.benefit-item:hover{ transform:translateY(-4px); border-color:var(--azure); }
.benefit-item .b-icon{ width:52px; height:52px; border-radius:var(--r-md); background:var(--mist); color:var(--navy); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; margin:0 auto var(--space-4); font-size:1.2rem; }

.location-card{ display:grid; grid-template-columns:1fr 1.3fr; gap:var(--space-8); background:var(--mist); border-radius:var(--r-xl); padding:var(--space-8); }
.location-details p{ display:flex; gap:12px; margin-bottom:var(--space-5); color:var(--ink); }
.location-details i{ color:var(--azure-dark); width:20px; margin-top:3px; }
.location-map iframe{ border-radius:var(--r-md); width:100%; height:100%; min-height:280px; filter:grayscale(.15) contrast(1.02); }

.contact-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-6); }
.contact-card{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:var(--space-8); text-align:center; transition:transform var(--dur) var(--ease), border-color var(--dur) var(--ease); }
.contact-card:hover{ transform:translateY(-4px); border-color:var(--azure); }
.contact-card .c-icon{ width:56px; height:56px; border-radius:50%; background:var(--navy); color:#fff; display:flex; align-items:center; justify-content:center; margin:0 auto var(--space-5); font-size:1.3rem; }
.contact-number{ font-family:var(--font-body); font-size:1.5rem; font-weight:700; color:var(--navy); margin-bottom:var(--space-3); }

.form-card{ max-width:820px; margin:0 auto; background:#fff; border:1px solid var(--line); border-radius:var(--r-xl); padding:var(--space-10); box-shadow:var(--shadow-md); }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:var(--space-5); }
.form-group{ margin-bottom:var(--space-5); }
.form-group label{ display:block; margin-bottom:8px; font-weight:700; font-size:.88rem; }
.form-group input, .form-group select, .form-group textarea{
  width:100%; padding:13px 16px; border:1.5px solid var(--line-strong); border-radius:var(--r-sm); transition:border-color var(--dur-fast), box-shadow var(--dur-fast);
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus{ outline:none; border-color:var(--azure); box-shadow:0 0 0 3px rgba(0,106,235,.15); }
.form-checkbox{ display:flex; align-items:flex-start; gap:10px; margin:var(--space-5) 0; font-size:.86rem; color:var(--slate); }
.form-checkbox input{ margin-top:3px; }
.form-checkbox a{ color:var(--azure-dark); font-weight:600; }
.form-alert{ padding:14px 18px; border-radius:var(--r-sm); margin-bottom:var(--space-5); font-weight:600; font-size:.9rem; }
.form-alert.success{ background:#EAF6EE; color:#1F6B39; border:1px solid #BEE3C9; }
.form-alert.error{ background:#FBEAEA; color:#8C2C2C; border:1px solid #EAC0C0; }

.steps-timeline{ max-width:820px; margin:0 auto; display:flex; flex-direction:column; gap:var(--space-8); }
.tl-step{ display:flex; gap:var(--space-6); }
.tl-num{
  width:44px; height:44px; border-radius:50%; background:var(--navy); color:#fff; font-family:var(--font-body);
  font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.tl-content h3{ margin-bottom:var(--space-2); }
.tl-content .tl-highlights{ display:flex; gap:16px; flex-wrap:wrap; margin-top:var(--space-3); }
.tl-highlights span{ display:inline-flex; align-items:center; gap:6px; font-size:.85rem; font-weight:600; color:var(--green-dark); }

/* ==========================================================================
   Legal pages
   ========================================================================== */
.legal-card{ background:#fff; border:1px solid var(--line); border-radius:var(--r-xl); padding:var(--space-12); max-width:880px; margin:0 auto; box-shadow:var(--shadow-sm); }
.legal-card h2{ font-size:1.35rem; margin:var(--space-8) 0 var(--space-4); padding-top:var(--space-4); border-top:1px solid var(--line); }
.legal-card h2:first-child{ border-top:none; padding-top:0; margin-top:0; }
.legal-card h3{ color:var(--azure-dark); margin:var(--space-5) 0 var(--space-3); font-size:1.05rem; font-family:var(--font-body); }
.legal-card p, .legal-card li{ color:var(--slate); margin-bottom:var(--space-3); line-height:1.8; }
.legal-card ul, .legal-card ol{ margin-left:var(--space-5); margin-bottom:var(--space-4); }
.legal-card address{ font-style:normal; background:var(--mist); padding:var(--space-5); border-radius:var(--r-md); border-left:3px solid var(--azure); margin:var(--space-4) 0; }
.last-updated{ color:var(--slate); font-style:italic; }

.cookie-category{ background:var(--mist); border:1px solid var(--line); border-radius:var(--r-md); padding:var(--space-5); margin-bottom:var(--space-4); }
.cookie-category h3{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:0; color:var(--ink); flex-wrap:wrap; }
.always-active{ font-size:.76rem; background:var(--forest); color:#fff; padding:4px 12px; border-radius:var(--r-full); font-weight:700; }
.cookie-toggle{ display:flex; align-items:center; margin-top:var(--space-3); font-size:.9rem; gap:8px; }
.cookie-toggle input{ width:20px; height:20px; accent-color:var(--azure); }
.cookie-toggle.disabled{ opacity:.6; }
.cookie-actions{ display:flex; gap:12px; margin:var(--space-6) 0; flex-wrap:wrap; }
.cookie-table{ width:100%; border-collapse:collapse; margin:var(--space-6) 0; }
.cookie-table th{ background:var(--navy); color:#fff; padding:12px; text-align:left; }
.cookie-table td{ padding:12px; border-bottom:1px solid var(--line); font-size:.88rem; color:var(--slate); }

.notice-box{ background:#EAF2FD; border-left:3px solid var(--azure); padding:var(--space-5); border-radius:var(--r-md); margin:var(--space-6) 0; }
.opt-out-methods{ display:grid; grid-template-columns:repeat(2,1fr); gap:var(--space-5); margin:var(--space-6) 0; }
.method-card{ background:var(--mist); border:1px solid var(--line); border-radius:var(--r-md); padding:var(--space-5); }
.method-card .m-icon{ width:42px; height:42px; border-radius:var(--r-sm); background:#fff; border:1px solid var(--line); color:var(--navy); display:flex; align-items:center; justify-content:center; margin-bottom:var(--space-3); }
.opt-out-form{ display:flex; flex-direction:column; gap:12px; }
.opt-out-form input{ padding:10px 14px; border:1px solid var(--line-strong); border-radius:var(--r-sm); }

.service-grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-6); }
.hours-table{ max-width:420px; margin:var(--space-6) auto; width:100%; border-collapse:collapse; }
.hours-table td{ padding:12px; border-bottom:1px solid var(--line); font-size:.92rem; }
.hours-table td:first-child{ font-weight:700; }
.topics-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-4); }
.topic-link{ display:block; padding:16px; background:var(--mist); border:1px solid var(--line); text-align:center; border-radius:var(--r-md); color:var(--navy); font-weight:600; transition:all var(--dur-fast); }
.topic-link:hover{ background:var(--azure); color:#fff; border-color:var(--azure); transform:translateY(-2px); }
.service-guarantee{ text-align:center; padding:var(--space-10); background:var(--mist); border-radius:var(--r-xl); }
.service-guarantee .g-icon{ width:66px; height:66px; border-radius:50%; background:var(--navy); color:#fff; display:flex; align-items:center; justify-content:center; margin:0 auto var(--space-5); font-size:1.7rem; }

/* ==========================================================================
   Reveal-on-scroll utility
   ========================================================================== */
.reveal{ opacity:0; transform:translateY(20px); transition:opacity .6s var(--ease), transform .6s var(--ease); }
.reveal.in{ opacity:1; transform:translateY(0); }
.js-tilt{ will-change:transform; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width:1080px){
  .hero-grid{ grid-template-columns:1fr; }
  .hero-copy{ max-width:100%; }
  .hero-radar{ min-height:220px; max-width:360px; margin:0 auto; }
  .hero-radar svg{ max-width:320px; }
  .search-card{ max-width:100%; }
  .service-grid{ grid-template-columns:repeat(2,1fr); }
  .steps-row{ grid-template-columns:repeat(2,1fr); gap:var(--space-8); }
  .steps-row .step-card::after{ display:none; }
  .stats-grid{ grid-template-columns:repeat(2,1fr); }
  .footer-top{ grid-template-columns:1.4fr 1fr 1fr; }
  .footer-top .footer-col:nth-child(5){ display:none; }
  .plans-grid{ grid-template-columns:repeat(2,1fr); }
  .providers-grid{ grid-template-columns:repeat(2,1fr); }
  .feature-grid-4{ grid-template-columns:repeat(2,1fr); }
  .channels-grid{ grid-template-columns:repeat(3,1fr); }
  .story-grid{ grid-template-columns:1fr; }
  .story-stats{ position:static; flex-direction:row; }
  .story-stats .stat-box{ flex:1; }
  .benefits-grid{ grid-template-columns:repeat(2,1fr); }
}

@media (max-width:860px){
  .main-nav{ display:none; }
  .header-phone{ display:none; }
  .mobile-toggle{ display:flex; }
  .hero{ padding:var(--space-12) 0 var(--space-10); }
  .search-card{ padding:var(--space-6); }
  .search-row{ flex-direction:column; }
  .trust-cards{ grid-template-columns:1fr; }
  .owner-card{ grid-template-columns:1fr; text-align:center; }
  .owner-avatar{ margin:0 auto; }
  .location-card{ grid-template-columns:1fr; }
  .contact-grid{ grid-template-columns:1fr; }
  .form-row{ grid-template-columns:1fr; }
  .bundle-card.featured{ transform:none; }
  .sticky-mobile-cta{ display:block; }
  .fab-call{ bottom:86px; right:18px; width:54px; height:54px; font-size:1.2rem; }
  body{ padding-bottom:0; }
  .testimonial-arrow{ display:none; }
  .mega-menu{ position:static; width:auto; transform:none; box-shadow:none; border:none; padding:8px 0 0 20px; grid-template-columns:1fr; opacity:1; visibility:visible; pointer-events:auto; display:none; }
  .mobile-nav li.open .mega-menu{ display:grid; }
  .mobile-nav .chev{ margin-left:auto; }
}

@media (max-width:640px){
  .hero-radar{ display:none; }
  .service-grid{ grid-template-columns:1fr; }
  .steps-row{ grid-template-columns:1fr; }
  .stats-grid{ grid-template-columns:repeat(2,1fr); gap:var(--space-5); }
  .footer-top{ grid-template-columns:1fr 1fr; gap:var(--space-6); }
  .footer-top .footer-col:nth-child(4){ display:none; }
  .plans-grid{ grid-template-columns:1fr; }
  .providers-grid{ grid-template-columns:1fr; }
  .feature-grid-4{ grid-template-columns:1fr; }
  .channels-grid{ grid-template-columns:repeat(2,1fr); }
  .bundle-grid{ grid-template-columns:1fr; }
  .benefits-grid{ grid-template-columns:1fr; }
  .opt-out-methods{ grid-template-columns:1fr; }
  .topics-grid{ grid-template-columns:repeat(2,1fr); }
  .service-grid-3{ grid-template-columns:1fr; }
  .announce-bar .container{ gap:10px; font-size:.74rem; }
  .legal-card{ padding:var(--space-6); }
}

@media (max-width:480px){
  .announce-bar .announce-msg, .announce-bar .announce-sep{ display:none; }
  .announce-bar .container{ font-size:.72rem; }
  .header-cta .btn-call{ display:none; }
  .logo-text .name{ font-size:1.05rem; }
  .logo-text .tag{ display:none; }
  .header-container{ gap:var(--space-3); }
}
