html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    margin: 0 !important;
    padding: 0 !important;
    background: #edf6ff !important;
}

/* Landing page seamless header-to-hero */
.site-header {
    background: transparent !important;
    border-bottom: none !important;
    box-shadow: none !important;
}


a, .btn-link {
    color: #006bb7;
}

.btn-primary {
    color: #fff;
    background-color: #1b6ec2;
    border-color: #1861ac;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

.content {
    padding-top: 0;
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}

/* Slice 21: Enhanced Form Validation Styles */
.form-input.valid,
input.valid:not([type=checkbox]):not([type=radio]) {
    border-color: #38a169 !important;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2338a169' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 1rem;
    padding-right: 2.5rem;
}

.form-input.invalid,
input.invalid:not([type=checkbox]):not([type=radio]) {
    border-color: #e53e3e !important;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23e53e3e'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23e53e3e' stroke='none'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 1rem;
    padding-right: 2.5rem;
}

.validation-message {
    color: #c53030;
    font-size: 0.8125rem;
    margin-top: 0.375rem;
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.validation-message::before {
    content: "⚠";
    font-size: 0.75rem;
}

/* Slice 21: Global Mobile Improvements */
@media (max-width: 480px) {
    html {
        font-size: 15px;
    }

    /* Ensure touch targets are at least 44px */
    button,
    .btn,
    input[type="submit"],
    input[type="button"],
    a.btn {
        min-height: 44px;
        min-width: 44px;
    }

    /* Better input sizing on mobile */
    input[type="text"],
    input[type="email"],
    input[type="tel"],
    input[type="number"],
    input[type="password"],
    select,
    textarea {
        font-size: 16px !important; /* Prevents iOS zoom */
        min-height: 44px;
    }
}

/* Slice 21: Smooth transitions */
* {
    -webkit-tap-highlight-color: transparent;
}

button, input, select, textarea {
    transition: border-color 0.2s, box-shadow 0.2s, background-color 0.2s;
}

/* Slice 21: Focus visible for accessibility */
:focus-visible {
    outline: 2px solid #3182ce;
    outline-offset: 2px;
}

/* Slice 21: Reduced motion support
   U20 (2026-05-22): added scroll-behavior + animation-delay to match admin-a11y.css completeness. */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        animation-delay: 0ms !important;
        transition-duration: 0.01ms !important;
        transition-delay: 0ms !important;
        scroll-behavior: auto !important;
    }
}

/* cust-fix-learn-blazor-error-banner-2026-05-28: Blazor framework error UI.
   Previously scoped to MainLayout.razor.css (#blazor-error-ui[b-m3sjt6y5tp])
   which never matched LearnLayout-served pages because LearnLayout doesn't
   inherit MainLayout's scope attribute. Result: yellow "An unhandled error
   has occurred" banner was permanently visible on every /learn page.
   Now global so it applies regardless of layout. Hidden by default;
   framework toggles visibility on real circuit errors.
   Same pattern as gotcha_blazor_scoped_css_unreliable_2026_05_22 (AdminBreadcrumb). */
#blazor-error-ui {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

/* cust-ee2-2-how-we-wrote-this-footer-2026-05-29:
   "How we made this article" process-visibility module on /learn pages.
   Global (not scoped) per gotcha_blazor_scoped_css_unreliable_2026_05_22 —
   LearnLayout doesn't inherit MainLayout scope attribute, so scoped CSS
   would silently fail (same root cause as the Blazor error banner fix). */
.gbc-learn-process {
    background: #f8fafc;
    border: 1px solid #e4eaf2;
    border-radius: 10px;
    padding: 20px 24px;
    margin: 30px 0;
}
.gbc-learn-process h3 {
    margin: 0 0 14px 0;
    font-size: 17px;
    color: #1a2638;
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
}
.gbc-process-check {
    color: #2d8758;
    font-size: 14px;
    background: #d4f0e0;
    width: 24px; height: 24px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    flex-shrink: 0;
}
.gbc-process-list {
    margin: 0;
    padding-left: 0;
    list-style: none;
}
.gbc-process-list li {
    padding: 8px 0;
    border-bottom: 1px solid #edf1f7;
    font-size: 14px;
    line-height: 1.6;
    color: #3a4658;
}
.gbc-process-list li:last-child { border-bottom: none; }
.gbc-process-list li a { color: #1c5fc1; text-decoration: underline; }
.gbc-process-list li strong { color: #1a2638; }
.gbc-process-policy {
    margin: 14px 0 0 0;
    font-size: 13px;
    color: #5f6c80;
    line-height: 1.6;
}
.gbc-process-policy a { color: #1c5fc1; text-decoration: underline; }

/* ════════════════════════════════════════════════════════════════════ */
/* HOMEPAGE — Phase 1.5.1 Path C — cust-phase-1-5-1-homepage-path-c-2026-05-29
   World-class design + SEO foundation. All classes scoped with .home- prefix
   to avoid global namespace collisions per gotcha_blazor_scoped_css_unreliable.
   ════════════════════════════════════════════════════════════════════ */
.home { color:#1a2638; line-height:1.55; -webkit-font-smoothing:antialiased; }

/* cust-phase-1-5-1-final-bundle-2026-05-30: STICKY MOBILE CTA.
   Mobile-only (≤880px). Fixed to viewport bottom. Slides up on load. */
.home .home-sticky-cta { display: none; }
@media (max-width: 880px) {
  .home .home-sticky-cta {
    display: flex; align-items: center; justify-content: center; gap: .55rem;
    position: fixed; left: 12px; right: 12px; bottom: 12px;
    background: #0066d4; color: #fff !important;
    padding: 1rem 1.5rem; border-radius: 12px;
    font-weight: 800; font-size: 1rem;
    text-decoration: none; z-index: 60;
    box-shadow: 0 12px 32px rgba(0, 102, 212, .35);
    animation: home-sticky-slidein .35s ease-out both .4s;
    /* Below the iOS Safari home indicator */
    padding-bottom: calc(1rem + env(safe-area-inset-bottom));
    /* button reset */
    border: none; font-family: inherit; cursor: pointer; width: auto;
  }
  .home .home-sticky-cta:hover, .home .home-sticky-cta:focus {
    background: #0050ad; color: #fff;
  }
  .home .home-sticky-cta-arrow { font-size: 1.15rem; }
}
@keyframes home-sticky-slidein {
  from { opacity: 0; transform: translateY(120%); }
  to   { opacity: 1; transform: translateY(0); }
}

/* cust-phase-1-5-1-a11y-2026-05-30: WCAG 2.4.1 skip-to-content link.
   Visually hidden until Tab-focused; gives keyboard users a way to skip nav. */
.home .home-skip {
  position:absolute; left:-9999px; top:0; z-index:200;
  background:#1a2638; color:#fff; padding:.85rem 1.25rem;
  border-radius:0 0 8px 0; font-weight:700; text-decoration:none;
  font-size:.95rem;
}
.home .home-skip:focus {
  left:0; outline:3px solid #ffd864; outline-offset:2px;
}
.home a { color:#0066d4; text-decoration:none; }
.home a:hover { color:#0050ad; }
.home .home-container { max-width:1200px; margin:0 auto; padding:0 1.5rem; }
.home .home-section-title { font-size:clamp(1.7rem, 3vw, 2.3rem); text-align:center; margin:0 0 .5rem; font-weight:900; letter-spacing:-.7px; color:#1a2638; }
.home .home-section-sub { text-align:center; color:#525c70; font-size:1.02rem; margin:0 auto 2.5rem; max-width:700px; }

/* HERO */
.home .home-hero { padding:4rem 0 3rem; position:relative; overflow:hidden; text-align:center; }
.home .home-hero::before {
  content:''; position:absolute; top:-300px; left:50%; transform:translateX(-50%);
  width:1000px; height:600px;
  background: radial-gradient(circle, #e6f0fc 0%, transparent 65%);
  z-index:0; pointer-events:none;
}
.home .home-hero-inner { position:relative; z-index:1; max-width:880px; margin:0 auto; }
.home a.home-badge, .home .home-badge {
  display:inline-flex; align-items:center; gap:.4rem; background:#fff;
  border:1px solid #e3ebf5; padding:.35rem .8rem; border-radius:999px;
  font-size:.78rem; font-weight:700; color:#0066d4; margin-bottom:1.2rem;
  box-shadow:0 2px 8px rgba(15,24,37,.05); text-decoration:none; transition:all .15s;
}
.home a.home-badge:hover { border-color:#0066d4; transform:translateY(-1px); box-shadow:0 6px 16px rgba(15,24,37,.10); color:#0066d4; }
.home .home-badge-dot { width:6px; height:6px; background:#0a8f4d; border-radius:50%; }
.home .home-hero-title {
  font-size:clamp(2.2rem, 5vw, 3.8rem); line-height:1.02; margin:0 0 1.2rem;
  font-weight:900; letter-spacing:-2px; color:#1a2638;
}
.home .home-hero-title em { color:#0066d4; font-style:normal; }
.home .home-hero-sub {
  font-size:1.2rem; color:#3a4658; margin:0 auto 2rem;
  max-width:700px;
}

/* HERO FORM */
.home .home-hero-form {
  max-width:580px; margin:0 auto;
  background:#fff; padding:1.5rem; border-radius:14px;
  box-shadow:0 24px 60px rgba(15,24,37,.12); border:1px solid #e3ebf5;
}
.home .home-zip-row { display:flex; gap:.55rem; }
.home .home-zip-input {
  flex:1; padding:1.05rem 1.1rem; border:2px solid #e3ebf5; border-radius:10px;
  font-size:1.1rem; font-weight:600; font-family:inherit; color:#1a2638;
}
.home .home-zip-input:focus { outline:none; border-color:#0066d4; box-shadow:0 0 0 4px #e6f0fc; }
.home .home-cta-btn {
  padding:1.05rem 1.8rem; border:none; border-radius:10px;
  font-weight:800; font-size:1rem; cursor:pointer; white-space:nowrap;
  transition: all .15s; font-family:inherit;
}
.home .home-cta-primary { background:#0066d4; color:#fff; box-shadow:0 10px 30px rgba(0,102,212,.25); }
.home .home-cta-primary:hover:not([disabled]) { background:#0050ad; transform:translateY(-1px); box-shadow:0 14px 40px rgba(0,102,212,.35); }
.home .home-cta-primary[disabled] { opacity:.7; cursor:wait; }
.home button.home-cta-onbrand, .home .home-cta-onbrand { background:#fff; color:#0066d4; padding:1.1rem 2rem; display:inline-block; border:none; font-family:inherit; cursor:pointer; }
.home button.home-cta-onbrand:hover, .home .home-cta-onbrand:hover { background:#e6f0fc; }
.home .home-form-error { color:#c53030; font-size:.88rem; margin-top:.6rem; padding:.5rem .7rem; background:#fff5f5; border:1px solid #fed7d7; border-radius:6px; }

.home .home-hero-meta {
  display:inline-flex; align-items:center; gap:.5rem; font-size:.88rem; color:#3a4658;
  background:#fff; padding:.55rem 1.05rem; border-radius:999px;
  border:1px solid #e3ebf5; box-shadow:0 2px 8px rgba(15,24,37,.05);
  margin-top:1.5rem;
}
.home .home-check { color:#0a8f4d; font-weight:900; }

/* STAT STRIP */
.home .home-stat-strip { background:#fff; border-top:1px solid #e3ebf5; border-bottom:1px solid #e3ebf5; padding:1.8rem 0; }
.home .home-stat-row { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; text-align:center; }
.home .home-stat-row > div b { display:block; font-size:2rem; color:#1a2638; font-weight:900; letter-spacing:-.5px; }
.home .home-stat-row > div span { font-size:.85rem; color:#525c70; }
.home .home-src { font-size:.66rem; color:#525c70; margin-top:.15rem; }

/* VERTICAL CARDS */
.home .home-verticals { padding:4rem 0 3rem; background:#f8fbff; }
.home .home-vcard-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.home .home-vcard {
  background:#fff; border-radius:14px; padding:1.35rem;
  transition:all .18s; border:1px solid #e3ebf5; display:block; color:#1a2638;
}
.home .home-vcard:hover { transform:translateY(-3px); border-color:#e6f0fc; box-shadow:0 10px 30px rgba(15,24,37,.08); color:#1a2638; }
.home .home-vicon { width:48px; height:48px; background:#e6f0fc; color:#0066d4; border-radius:12px; display:flex; align-items:center; justify-content:center; margin-bottom:.8rem; font-size:1.4rem; }
.home .home-vcard h3 { font-size:1.02rem; margin:0 0 .25rem; font-weight:800; color:#1a2638; }
.home .home-vcard p { font-size:.82rem; color:#525c70; margin:0 0 .6rem; }
.home .home-vlink { font-size:.85rem; font-weight:700; color:#0066d4; }
.home .home-vcard-more {
  background:linear-gradient(135deg, #0066d4 0%, #1a2638 100%); color:#fff;
  text-align:center; display:flex; align-items:center; justify-content:center; flex-direction:column;
}
.home .home-vcard-more:hover { color:#fff; }
.home .home-vcard-more h3 { color:#fff; }
.home .home-vcard-more p { color:rgba(255,255,255,.8); }
.home .home-vcard-more .home-vlink { color:#fff; }

/* HOW IT WORKS */
.home .home-howitworks { padding:4rem 0; background:#fff; }
.home .home-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:2.5rem; max-width:980px; margin:0 auto; }
.home .home-step { text-align:center; }
.home .home-step-num {
  background:linear-gradient(135deg, #0066d4 0%, #1a2638 100%);
  color:#fff; width:52px; height:52px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  font-size:1.4rem; font-weight:900; margin-bottom:1rem;
  box-shadow:0 10px 30px rgba(15,24,37,.08);
}
.home .home-step h3 { font-size:1.15rem; margin:0 0 .5rem; font-weight:800; }
.home .home-step p { font-size:.95rem; color:#3a4658; margin:0; }

/* TESTIMONIALS */
.home .home-testimonials { padding:4rem 0; background:#edf6ff; }
.home .home-quote-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.home .home-quote-card {
  background:#fff; padding:1.6rem; border-radius:14px;
  border:1px solid #e3ebf5; position:relative;
}
.home .home-quote-card::before {
  content:'"'; position:absolute; top:-12px; left:20px;
  font-size:4rem; line-height:1; color:#0066d4;
  font-family:Georgia, serif;
}
.home .home-qbody { color:#3a4658; font-size:.95rem; line-height:1.5; margin:0 0 1rem; padding-top:.5rem; }
.home .home-qauthor { display:flex; align-items:center; gap:.7rem; padding-top:.8rem; border-top:1px solid #e3ebf5; }
.home .home-qavatar { width:36px; height:36px; border-radius:50%; background:linear-gradient(135deg, #e6f0fc, #0066d4); flex-shrink:0; }
.home .home-qmeta b { font-size:.88rem; color:#1a2638; display:block; }
.home .home-qmeta span { font-size:.78rem; color:#525c70; }
.home .home-quote-disclaim { text-align:center; font-size:.72rem; color:#525c70; margin-top:1.5rem; font-style:italic; }

/* MID CTA */
.home .home-midcta {
  background:linear-gradient(135deg, #0066d4 0%, #1a2638 100%);
  color:#fff; padding:3.5rem 0; text-align:center; position:relative; overflow:hidden;
}
.home .home-midcta::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(circle at 80% 50%, rgba(255,255,255,.08) 0%, transparent 60%);
  pointer-events: none;  /* cust-fix: overlay was blocking the CTA button click 2026-05-30 */
  z-index: 0;
}
.home .home-midcta > .home-container { position: relative; z-index: 1; }
.home .home-midcta h2 { color:#fff; font-size:clamp(1.6rem, 3vw, 2rem); margin:0 0 .5rem; font-weight:900; letter-spacing:-.5px; }
.home .home-midcta p { color:rgba(255,255,255,.85); margin:0 0 1.5rem; }

/* E-E-A-T */
.home .home-eeat { padding:4rem 0; background:#f8fbff; }
.home .home-eeat-grid { display:grid; grid-template-columns:1fr 1.05fr; gap:3rem; align-items:center; }
.home .home-lead { color:#3a4658; font-size:1.02rem; margin:0 0 1.2rem; line-height:1.6; }
.home .home-citelinks { display:flex; gap:1rem; flex-wrap:wrap; font-size:.9rem; font-weight:600; }
.home .home-team-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:.7rem; }
.home a.home-person, .home .home-person { background:#fff; padding:.95rem; border-radius:8px; text-align:center; border:1px solid #e3ebf5; font-size:.78rem; display:block; color:inherit; text-decoration:none; transition:all .15s; }
.home a.home-person:hover { border-color:#0066d4; transform:translateY(-2px); box-shadow:0 10px 30px rgba(15,24,37,.08); color:inherit; }
.home .home-avatar { width:40px; height:40px; border-radius:50%; background:linear-gradient(135deg, #e6f0fc, #0066d4); margin:0 auto .5rem; }
.home .home-person b { display:block; font-size:.88rem; color:#1a2638; }
.home .home-role { color:#525c70; font-size:.72rem; margin-top:.2rem; display:block; }
.home .home-person-licensed { border-color:#0a8f4d; border-width:1.5px; }
.home .home-person-licensed b::after { content:' ✓'; color:#0a8f4d; }

/* LEARN STRIP */
.home .home-learn { padding:4rem 0; background:#fff; }
.home .home-learn-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.home a.home-learn-card {
  background:#f8fbff; padding:1.4rem; border-radius:14px;
  border:1px solid #e3ebf5; transition:all .15s; display:block; color:inherit;
}
.home a.home-learn-card:hover { border-color:#0066d4; transform:translateY(-2px); box-shadow:0 10px 30px rgba(15,24,37,.08); color:inherit; }
.home .home-label { font-size:.7rem; color:#0066d4; font-weight:800; letter-spacing:1px; text-transform:uppercase; }
.home .home-learn-card h3 { margin:.4rem 0 .5rem; font-size:1.05rem; color:#1a2638; }
.home .home-learn-card p { font-size:.88rem; color:#3a4658; margin:0 0 .6rem; }
.home .home-arrow { font-weight:800; color:#0066d4; font-size:.9rem; }

/* FAQ */
.home .home-faq { padding:4rem 0; background:#edf6ff; }
.home .home-faq-list { max-width:820px; margin:0 auto; }
.home .home-faq-item {
  background:#fff; border:1px solid #e3ebf5; border-radius:8px;
  padding:1.1rem 1.3rem; margin-bottom:.6rem; transition:border-color .15s;
}
.home .home-faq-item[open] { border-color:#0066d4; box-shadow:0 2px 8px rgba(15,24,37,.05); }
.home .home-faq-item summary {
  font-weight:800; cursor:pointer; list-style:none;
  display:flex; justify-content:space-between; align-items:center; font-size:1rem;
}
.home .home-faq-item summary::-webkit-details-marker { display:none; }
.home .home-faq-item summary::after { content:'+'; color:#0066d4; font-weight:900; font-size:1.4rem; line-height:1; }
.home .home-faq-item[open] summary::after { content:'−'; }
.home .home-faq-item p { color:#3a4658; margin:.8rem 0 0; font-size:.95rem; }
.home .home-faq-item p cite { font-size:.78rem; color:#525c70; font-style:normal; display:block; margin-top:.4rem; }

/* RESPONSIVE */
@media (max-width: 880px) {
  .home .home-stat-row { grid-template-columns:repeat(2,1fr); }
  .home .home-vcard-grid { grid-template-columns:repeat(2,1fr); }
  .home .home-steps { grid-template-columns:1fr; }
  .home .home-quote-grid { grid-template-columns:1fr; }
  .home .home-eeat-grid { grid-template-columns:1fr; }
  .home .home-learn-grid { grid-template-columns:1fr; }
  .home .home-zip-row { flex-direction:column; }
}
@media (max-width: 480px) {
  .home .home-hero-title { font-size:1.9rem; }
  .home .home-hero-sub { font-size:1rem; }
}

/* cust-phase-1-5-1-a-bundle-2026-05-30: CARRIER BAR + REVIEW STAMP
   Carrier logos are REAL partners (matches our form pages):
   American Family · Answer Financial · ERGO NEXT · Kemper · Progressive Commercial */
.home .home-carrier-bar { padding:2rem 0; background:#fff; border-top:1px solid #e3ebf5; border-bottom:1px solid #e3ebf5; text-align:center; }
.home .home-carrier-h { color:#525c70; font-size:.95rem; font-weight:500; margin:0 auto 1.2rem; max-width:760px; }
.home .home-carrier-logos {
  display:flex; justify-content:center; gap:2.5rem;
  align-items:center; flex-wrap:wrap;
  width:100%; max-width:1100px; margin:0 auto;
}
.home .home-carrier-logo { position:relative; display:inline-flex; align-items:center; }
.home .home-carrier-logo img { width:auto; object-fit:contain; }
.home .home-tm { font-size:7px; color:#4a5568; font-weight:700; line-height:1; align-self:flex-end; margin-bottom:2px; }

/* hero-v2-2026-06-01: per HERO-exact-dropin.md — full dark two-column
   hero replacing the old pale text-center shell. Left: badge + H1 +
   subhead + proof chip + ZIP form + Call CTA. Right: FBQ Rate Index™
   card with live state rows. Bottom strip: 5 quick stats. */
.home .hero-v2 {
  background:linear-gradient(160deg, #0a1f44, #0d2a5e 55%, #10357a);
  color:#fff;
  position:relative;
  overflow:hidden;
}
.home .hero-v2-inner {
  max-width:1140px;
  margin:0 auto;
  padding:54px 22px 0;
  display:grid;
  grid-template-columns:1.25fr .85fr;
  gap:36px;
  align-items:center;
}
.home .hero-v2 .dot {
  display:inline-block;
  width:7px; height:7px;
  border-radius:50%;
  background:#36d07f;
}
.home .hero-v2-badge {
  display:inline-flex;
  gap:8px;
  align-items:center;
  background:rgba(255, 255, 255, 0.1);
  border:1px solid rgba(255, 255, 255, 0.2);
  border-radius:999px;
  padding:6px 14px;
  font-size:12.5px;
  font-weight:700;
  color:#bcd4ff;
  margin-bottom:16px;
  text-decoration:none;
}
.home .hero-v2-badge:hover { background:rgba(255, 255, 255, 0.15); }
.home .hero-v2-title {
  color:#fff;
  font-size:clamp(28px, 4vw, 42px);
  font-weight:900;
  line-height:1.06;
  margin:0 0 12px;
  letter-spacing:-.02em;
}
/* hero-highlight-dark-bg-fix-2026-06-01: 33%-opacity yellow over dark
   navy = muddy gray bar that reads as a strikethrough — not a
   highlight. Switched to gold-text-no-background (audit Option A);
   wraps cleanly across two lines, premium dark-hero look. The
   see-through technique works on LIGHT backgrounds only. */
.home .hero-v2-title .hl {
  background:none;
  color:#ffd27a;
  padding:0;
}
.home .hero-v2-sub {
  font-size:17px;
  color:#c6d8f5;
  max-width:540px;
  margin:0 0 22px;
}
.home .hero-v2-sub strong { color:#fff; }
.home .hero-v2-chip {
  display:flex;
  align-items:center;
  gap:14px;
  background:#fff;
  border-radius:13px;
  padding:14px 16px;
  box-shadow:0 14px 34px rgba(0, 0, 0, 0.28);
  max-width:560px;
  margin:0 0 20px;
  text-align:left;
}
.home .hero-v2-chip-ic { font-size:24px; flex:none; }
.home .hero-v2-chip-body { flex:1; min-width:0; }
.home .hero-v2-chip-ey {
  display:block;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#5a6b82;
}
.home .hero-v2-chip-fact {
  display:block;
  font-size:15px;
  color:#0a1628;
  font-weight:600;
  line-height:1.35;
}
.home .hero-v2-chip-fact .pct {
  display:inline-block;
  font-weight:900;
  font-variant-numeric:tabular-nums;
  padding:1px 9px;
  border-radius:7px;
  margin:0 2px;
}
.home .hero-v2-chip-fact .pct.dn { background:#dcfce7; color:#15803d; }
.home .hero-v2-chip-fact .pct.up { background:#fee2e2; color:#b91c1c; }
.home .hero-v2-chip-body a {
  display:block;
  font-size:13px;
  font-weight:800;
  color:#1f6bff;
  margin-top:3px;
  text-decoration:none;
}
.home .hero-v2-chip-body a:hover { text-decoration:underline; }
.home .hero-v2-chip-live {
  font-size:10px;
  font-weight:800;
  color:#15803d;
  display:flex;
  gap:5px;
  align-items:center;
  white-space:nowrap;
  flex-shrink:0;
}
.home .hero-v2-form {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
  margin-bottom:12px;
}
.home .hero-v2-zip {
  border:0;
  border-radius:10px;
  padding:15px 16px;
  width:148px;
  font-size:16px;
}
.home .hero-v2-form .go {
  background:#1f6bff;
  color:#fff;
  border:0;
  font-weight:800;
  font-size:16px;
  padding:16px 24px;
  border-radius:10px;
  box-shadow:0 8px 20px rgba(31, 107, 255, 0.45);
  cursor:pointer;
}
.home .hero-v2-form .go:hover:not([disabled]) { background:#0050d6; transform:translateY(-1px); }
.home .hero-v2-form .callalt {
  color:#fff;
  font-weight:800;
  font-size:15px;
  border:1.5px solid rgba(255, 255, 255, 0.3);
  padding:14px 18px;
  border-radius:10px;
  display:inline-flex;
  gap:7px;
  align-items:center;
  text-decoration:none;
  background:transparent;
}
.home .hero-v2-form .callalt:hover { background:rgba(255, 255, 255, 0.1); }
.home .hero-v2-error {
  flex-basis:100%;
  color:#ffb3b3;
  font-size:14px;
  background:rgba(255, 30, 30, 0.15);
  border:1px solid rgba(255, 30, 30, 0.35);
  padding:8px 12px;
  border-radius:6px;
}
.home .hero-v2-micro { font-size:12.5px; color:#9fb6da; margin:0; }
.home .hero-v2-card {
  background:rgba(255, 255, 255, 0.07);
  border:1px solid rgba(255, 255, 255, 0.16);
  border-radius:16px;
  padding:18px;
}
.home .hv-dh {
  display:flex;
  justify-content:space-between;
  font-size:12px;
  font-weight:800;
  color:#bcd4ff;
  letter-spacing:.05em;
  margin-bottom:12px;
}
.home .hv-live { color:#7fe0a8; }
.home .hv-idx { display:flex; align-items:baseline; gap:10px; }
.home .hv-idx .n {
  font-size:46px;
  font-weight:900;
  color:#fff;
  font-variant-numeric:tabular-nums;
  line-height:1;
}
.home .hv-idx .t { font-size:13px; color:#9fb6da; }
.home .hv-legend {
  font-size:10.5px;
  color:#bcd4ff;
  margin:8px 0 4px;
  line-height:1.4;
}
.home .hv-legend strong { color:#fff; font-weight:800; }
.home .hv-bar {
  height:7px;
  background:rgba(255, 255, 255, 0.14);
  border-radius:6px;
  margin:10px 0 14px;
  overflow:hidden;
}
.home .hv-bar i {
  display:block;
  height:100%;
  background:linear-gradient(90deg, #36d07f, #7fe0a8);
}
.home .hv-row {
  display:flex;
  gap:9px;
  align-items:center;
  font-size:13.5px;
  color:#dce8fb;
  padding:4px 0;
}
.home .hv-row .ab { font-weight:900; color:#fff; width:26px; }
.home .hv-row-line { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.home .hv-row .v {
  margin-left:auto;
  font-weight:900;
  font-variant-numeric:tabular-nums;
}
.home .hv-row .v.dn { color:#7fe0a8; }
.home .hv-row .v.up { color:#ff9b94; }
.home .hv-foot {
  font-size:11px;
  color:#9fb6da;
  margin-top:12px;
  text-align:center;
}
.home .hero-v2-strip {
  background:#081830;
  margin-top:30px;
  display:flex;
  flex-wrap:wrap;
  max-width:1140px;
  margin-left:auto;
  margin-right:auto;
}

/* hero-premium-2026-06-01 / HERO-premium.html: 2-col hero with glass
   "Rate Intelligence" card on the right. Mesh + grid background, gold-
   gradient H1 highlight, SVG gauge, animated sparkline, floating chip.
   Animations respect prefers-reduced-motion. */
@media (prefers-reduced-motion:reduce) {
  .home .hero-prem * { animation:none !important; }
}
.home .hero-prem { position:relative; overflow:hidden; background:radial-gradient(1100px 600px at 78% 12%,#15336e 0%,#0b1d40 45%,#0a1628 100%); }
.home .hero-prem-mesh { position:absolute; inset:0; background:
  radial-gradient(500px 320px at 82% 22%,rgba(47,118,255,.32),transparent 70%),
  radial-gradient(420px 300px at 12% 80%,rgba(54,208,127,.14),transparent 70%);
  filter:blur(8px); pointer-events:none;
}
.home .hero-prem-grid { position:absolute; inset:0; background:
  repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 72px),
  repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 1px 72px);
  -webkit-mask:radial-gradient(700px 480px at 75% 20%,#000,transparent 75%);
  mask:radial-gradient(700px 480px at 75% 20%,#000,transparent 75%);
  pointer-events:none;
}
.home .hero-prem .hero-v2-title .hl {
  background:linear-gradient(90deg,#ffd27a,#ffb347);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

.home .hero-prem-rightcol { position:relative; }
.home .hero-prem-float {
  position:absolute;
  z-index:6;
  top:-44px;
  left:-12px;
  background:#fff;
  color:#0a1628;
  border-radius:12px;
  padding:9px 13px;
  font-size:12px;
  font-weight:700;
  box-shadow:0 16px 36px rgba(0,0,0,.4);
  display:flex;
  gap:8px;
  align-items:center;
  animation:hero-prem-bob 4s ease-in-out infinite;
}
.home .hero-prem-float .pct {
  font-weight:900;
  color:#0c6e40;
  background:#dcfce7;
  padding:1px 7px;
  border-radius:6px;
}
@keyframes hero-prem-bob { 50% { transform:translateY(-8px); } }
@media (max-width:900px) { .home .hero-prem-float { display:none; } }

.home .hero-prem-card {
  position:relative;
  background:linear-gradient(160deg,rgba(255,255,255,.1),rgba(255,255,255,.03));
  border:1px solid rgba(255,255,255,.16);
  border-radius:22px;
  padding:26px;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  box-shadow:0 40px 80px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.15);
  color:#fff;
}
.home .hero-prem-card:before {
  content:""; position:absolute; inset:0; border-radius:22px; padding:1px;
  background:linear-gradient(160deg,rgba(127,176,255,.5),transparent 40%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude;
  pointer-events:none;
}
.home .hpc-h { display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; }
.home .hpc-t { font-size:12px; font-weight:800; letter-spacing:.1em; color:#bcd4ff; display:flex; gap:8px; align-items:center; }
.home .hpc-live { font-size:10px; font-weight:800; color:#36d07f; display:flex; gap:5px; align-items:center; letter-spacing:.08em; }
.home .hpc-live .dot { width:7px; height:7px; border-radius:50%; background:#36d07f; box-shadow:0 0 0 0 rgba(54,208,127,.6); animation:hero-prem-pulse 1.8s infinite; }
@keyframes hero-prem-pulse { 70% { box-shadow:0 0 0 8px rgba(54,208,127,0); } }

.home .hpc-gauge { display:flex; align-items:center; gap:18px; margin-bottom:18px; }
.home .hpc-gauge svg { flex:none; }
.home .hpc-num { font-size:46px; font-weight:900; line-height:1; letter-spacing:-.02em; color:#fff; }
.home .hpc-cap { font-size:12.5px; color:#9fb6da; }
.home .hpc-pill {
  display:inline-flex; align-items:center; gap:5px; margin-top:6px;
  font-size:12px; font-weight:800; color:#0a1628;
  background:#36d07f; padding:2px 9px; border-radius:7px;
}

.home .hpc-spark { height:60px; margin:4px 0 18px; }
.home .hpc-spark path.l { stroke-dasharray:600; stroke-dashoffset:600; animation:hero-prem-draw 2s ease .3s forwards; }
.home .hpc-spark path.a { opacity:0; animation:hero-prem-fade 1.2s ease 1.6s forwards; }
@keyframes hero-prem-draw { to { stroke-dashoffset:0; } }
@keyframes hero-prem-fade { to { opacity:.3; } }

.home .hpc-rows { border-top:1px solid rgba(255,255,255,.1); padding-top:14px; }
.home .hpc-row {
  display:flex; align-items:center; gap:10px;
  font-size:13.5px; color:#dce8fb; padding:5px 0;
}
.home .hpc-row .ab { font-weight:900; color:#fff; width:28px; }
.home .hpc-row .ln { color:#bcd4ff; }
.home .hpc-row .v { margin-left:auto; font-weight:900; font-variant-numeric:tabular-nums; }
.home .hpc-row .v.dn { color:#7fe0a8; }
.home .hpc-row .v.up { color:#fca5a5; }
.home .hpc-cta {
  display:block; text-align:center; margin-top:16px;
  font-size:13px; font-weight:800; color:#bcd4ff;
  text-decoration:none; padding:10px 14px;
  border-top:1px solid rgba(255,255,255,.08);
}
.home .hpc-cta:hover { color:#fff; }

/* hero-best-practices-2026-06-01: Rate Index dashboard section, relocated
   from inside the hero to below the 5-tile strip. Gets room to shine as
   the first below-fold band. */
.home .home-rate-index-band {
  background:#0a1525;
  color:#dbe6ff;
  padding:36px 20px 40px;
}
.home .home-rate-index-band .home-container { max-width:1100px; margin:0 auto; }
.home .home-rix-grid {
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:30px;
  align-items:start;
}
.home .home-rix-eyebrow {
  font-size:12px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#7da7ff;
  font-weight:700;
  margin-bottom:8px;
  display:flex;
  align-items:center;
  gap:8px;
}
.home .home-rix-live {
  background:#0f8a4f;
  color:#fff;
  font-size:10px;
  padding:2px 6px;
  border-radius:4px;
  letter-spacing:.12em;
}
.home .home-rix-h {
  margin:0 0 8px;
  font-size:18px;
  display:flex;
  flex-direction:column;
  gap:2px;
  color:#fff;
}
.home .home-rix-num { font-size:56px; font-weight:900; letter-spacing:-0.02em; line-height:1; color:#fff; }
.home .home-rix-tag { font-size:14px; font-weight:500; color:#bcd0ff; }
.home .home-rix-legend { font-size:14px; color:#bcd0ff; margin:8px 0 14px; }
.home .home-rix-legend strong { color:#fff; }
.home .home-rix-bar {
  width:100%;
  height:8px;
  background:rgba(255,255,255,.12);
  border-radius:4px;
  overflow:hidden;
  margin-bottom:12px;
}
.home .home-rix-bar i { display:block; height:100%; background:linear-gradient(90deg,#7da7ff,#a8c2ff); }
.home .home-rix-foot { font-size:13px; color:#bcd0ff; margin:0 0 16px; }
.home .home-rix-cta {
  display:inline-block;
  background:#0066ff;
  color:#fff !important;
  padding:10px 16px;
  border-radius:6px;
  font-weight:600;
  text-decoration:none;
  font-size:14px;
}
.home .home-rix-cta:hover { background:#0050cc; }

.home .home-rix-rows-label { font-size:13px; letter-spacing:.08em; text-transform:uppercase; color:#7da7ff; font-weight:600; margin-bottom:10px; }
.home .home-rix-row {
  display:grid;
  grid-template-columns: 50px 1fr 80px;
  align-items:center;
  gap:10px;
  padding:9px 0;
  border-bottom:1px solid rgba(255,255,255,.10);
  font-size:14px;
  color:#dbe6ff;
}
.home .home-rix-row:last-of-type { border-bottom:0; }
.home .home-rix-row .ab { font-weight:700; color:#fff; }
.home .home-rix-row .ln { color:#bcd0ff; }
.home .home-rix-row .v { text-align:right; font-weight:700; font-variant-numeric:tabular-nums; }
.home .home-rix-row .v.dn { color:#86efac; }
.home .home-rix-row .v.up { color:#fca5a5; }
.home .home-rix-rows-cta {
  display:inline-block;
  margin-top:10px;
  color:#7da7ff;
  text-decoration:underline;
  font-size:13px;
}
@media (max-width:760px) {
  .home .home-rix-grid { grid-template-columns: 1fr; gap:24px; }
}
.home .hero-v2-strip > div {
  flex:1;
  min-width:120px;
  color:#9fb6da;
  font-size:12.5px;
  text-align:center;
  padding:16px 8px;
  border-right:1px solid rgba(255, 255, 255, 0.08);
}
.home .hero-v2-strip > div:last-child { border:0; }
.home .hero-v2-strip b {
  display:block;
  color:#fff;
  font-size:20px;
  font-weight:900;
}
@media (max-width:880px) {
  .home .hero-v2-inner { grid-template-columns:1fr; gap:24px; padding-top:32px; }
  .home .hero-v2-title { font-size:clamp(24px, 5vw, 32px); }
  .home .hero-v2-card { order:2; }
}

/* hero-form-mobile-stack-2026-06-01: per FIX-hero-form-spacing-mobile —
   ZIP / Get Free Quotes / Call an Agent rendered ragged on phones
   because each control was content-width with different vertical
   padding. Force full-width stacked column ≤560px so all three are
   same width + same height. Thumb-friendly. Desktop layout unchanged. */
@media (max-width:560px) {
  .home .hero-v2-form {
    flex-direction:column;
    align-items:stretch;
    gap:12px;
  }
  .home .hero-v2-zip { width:100%; }
  .home .hero-v2-form .go {
    width:100%;
    justify-content:center;
    padding:15px 18px;
  }
  /* hero-thin-2026-06-01: drop the inline Call CTA on mobile — the
     sticky bottom bar already carries the Call action. Header has a
     third Call button. Three Calls on a phone is overkill. */
  .home .hero-v2-form .callalt { display:none !important; }
}

/* moat-band-2026-06-01: per ROUND-2-homepage-punchlist Item 2.
   Dark band reinforcing the moat with 4 proof bullets + state-change
   tiles + tracker CTA. Positioned below "How it works". This is the
   "single best section for converting skeptics + getting cited by AI"
   per the audit. */
.home .home-moat-band {
  background:linear-gradient(135deg, #06122a 0%, #0a3a99 100%);
  color:#eaf1fb;
  padding:4rem 0;
  border-top:1px solid #e3ebf5;
}
.home .home-moat-band-eyebrow {
  display:inline-block;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:2.3px;
  text-transform:uppercase;
  color:#9dc0ff;
  margin-bottom:.85rem;
}
.home .home-moat-band-title {
  color:#fff;
  font-size:clamp(1.5rem, 2.8vw, 2.1rem);
  font-weight:900;
  letter-spacing:-.6px;
  line-height:1.2;
  margin:0 0 .9rem;
  max-width:880px;
}
/* highlight-readability-fix-2026-06-01: white-on-solid-yellow rendered
   as a redaction bar (unreadable). Switched to dark-navy-on-solid-yellow
   per FIX-moat-highlight-and-testimonials audit Option A — pops cleanly. */
.home .home-moat-band-title em {
  font-style:normal;
  background:#ffd27a;
  color:#06122a;
  padding:0 5px;
  border-radius:3px;
  text-decoration:none;
  border-bottom:none;
}
.home .home-moat-band-lead {
  color:#cfe0ff;
  font-size:1.05rem;
  line-height:1.55;
  max-width:780px;
  margin:0 0 2rem;
}
.home .home-moat-band-grid {
  display:grid;
  grid-template-columns:minmax(0, 1.1fr) minmax(0, 1fr);
  gap:2rem;
  align-items:start;
}
@media (max-width:880px) {
  .home .home-moat-band-grid { grid-template-columns:1fr; }
}
.home .home-moat-band-bullets {
  display:flex;
  flex-direction:column;
  gap:1rem;
}
.home .home-moat-bullet {
  display:flex;
  gap:.85rem;
  align-items:baseline;
  padding:.7rem 1rem;
  background:rgba(255, 255, 255, 0.06);
  border-left:3px solid #9dc0ff;
  border-radius:6px;
}
.home .home-moat-bullet strong {
  color:#ffd27a;
  font-weight:900;
  font-size:1.1rem;
  flex-shrink:0;
  min-width:80px;
}
.home .home-moat-bullet span {
  color:#cfe0ff;
  font-size:.95rem;
  line-height:1.5;
}
.home .home-moat-band-tiles {
  background:rgba(255, 255, 255, 0.04);
  border:1px solid rgba(157, 192, 255, 0.25);
  border-radius:12px;
  padding:1.25rem;
}
.home .home-moat-band-tiles-label {
  font-size:.78rem;
  font-weight:800;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:#9dc0ff;
  margin-bottom:.85rem;
}
.home .home-moat-band-tiles-grid {
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:.55rem;
}
@media (max-width:520px) {
  .home .home-moat-band-tiles-grid { grid-template-columns:repeat(3, 1fr); }
}
.home .home-moat-tile {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:.85rem .4rem;
  border-radius:8px;
  font-variant-numeric:tabular-nums;
  cursor:default;
}
.home .home-moat-tile-down { background:#0f8a4f; color:#fff; }
.home .home-moat-tile-up   { background:#c2241c; color:#fff; }
.home .home-moat-tile-state {
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.5px;
  opacity:.92;
}
.home .home-moat-tile-pct {
  font-size:1rem;
  font-weight:900;
  margin-top:.1rem;
}
.home .home-moat-band-ctas {
  display:flex;
  gap:1rem;
  margin-top:2.25rem;
  flex-wrap:wrap;
}
.home a.home-moat-band-cta {
  display:inline-block;
  padding:.9rem 1.6rem;
  border-radius:10px;
  font-weight:800;
  font-size:1rem;
  text-decoration:none;
  transition:all .15s;
}
.home a.home-moat-band-cta-primary {
  background:#ffd27a;
  color:#06122a;
}
.home a.home-moat-band-cta-primary:hover { background:#ffc14a; transform:translateY(-1px); }
.home a.home-moat-band-cta-secondary {
  background:transparent;
  color:#fff;
  border:2px solid #9dc0ff;
}
.home a.home-moat-band-cta-secondary:hover { background:rgba(157, 192, 255, 0.15); }
@media (max-width:640px) {
  .home .home-moat-band { padding:2.5rem 0; }
  .home a.home-moat-band-cta { width:100%; text-align:center; }
}

/* hero-2nd-cta-and-sticky-mobile-2026-06-01: pay-per-call business —
   surface the phone next to the ZIP form on desktop, and as a 50/50
   sticky bottom bar on mobile (replaces the prior single-button sticky). */
.home .home-cta-call {
  background:#b4490b;
  color:#fff;
  border:none;
  padding:1rem 1.4rem;
  font-weight:800;
  font-size:1rem;
  border-radius:10px;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  transition:all .15s;
  margin-left:.6rem;
}
.home .home-cta-call:hover { background:#933a08; transform:translateY(-1px); }
@media (max-width:640px) {
  .home .home-cta-call { margin-left:0; margin-top:.6rem; width:100%; justify-content:center; }
}

.home-sticky-mobile-bar {
  position:fixed;
  bottom:0; left:0; right:0;
  z-index:60;
  display:none;
  box-shadow:0 -2px 14px rgba(10, 22, 40, 0.22);
}
.home-sticky-mobile-bar > * {
  flex:1;
  text-align:center;
  padding:0.95rem 0.5rem;
  font-weight:800;
  font-size:.95rem;
  text-decoration:none;
  border:none;
  cursor:pointer;
  font-family:inherit;
}
/* contrast-fix-2026-06-01: `.home a {color:#0066d4}` site-wide rule wins
   specificity battle, painting these as blue-on-orange/dark — eye-hurting
   and fails WCAG. Use !important to lock white. Same pattern needed on
   the hero second CTA + hero-v2 callalt below. */
.home-sticky-mobile-call,
.home a.home-sticky-mobile-call { background:#b4490b; color:#fff !important; }
.home-sticky-mobile-quote,
.home button.home-sticky-mobile-quote { background:#0a1628; color:#fff !important; }
.home a.home-cta-call { color:#fff !important; }
.home a.hero-v2-form .callalt,
.home .hero-v2-form a.callalt { color:#fff !important; }
@media (max-width:820px) {
  .home-sticky-mobile-bar { display:flex; }
  /* leave bottom padding on the page so content isn't hidden behind the bar */
  .home { padding-bottom:64px; }
}

/* gap-1-proof-chip-2026-06-01: live filed-rate proof chip in hero per
   FBQ-Homepage-World-Class-Package-2026-05-31 audit Gap #1 (highest
   leverage). Sits between H1 and sub-text. Pulls the newest filing
   with a visible % from the tracker — claim becomes evidence in the
   first 3 seconds. AI-quotable: a single liftable fact in the hero. */
.home .home-proof-chip {
  display:flex;
  align-items:flex-start;
  gap:.85rem;
  background:#f4f8ff;
  border:1.5px solid #c5dbff;
  border-left:5px solid #0066d4;
  border-radius:12px;
  padding:.85rem 1.1rem;
  max-width:680px;
  margin:0 0 1rem;
}
.home .home-proof-chip-icon {
  font-size:1.35rem;
  line-height:1.25;
  flex-shrink:0;
}
.home .home-proof-chip-body {
  display:flex;
  flex-direction:column;
  gap:.25rem;
  flex:1;
  min-width:0;
}
.home .home-proof-chip-eyebrow {
  font-size:.72rem;
  font-weight:800;
  letter-spacing:1.1px;
  text-transform:uppercase;
  color:#1a4a8a;
}
.home .home-proof-chip-fact {
  font-size:1rem;
  line-height:1.45;
  color:#1a2638;
  display:inline;
}
.home .home-proof-chip-fact strong { font-weight:800; }
.home .home-proof-chip-eff {
  color:#3a4858;
  font-size:.94rem;
}
.home .home-proof-chip-serff {
  font-family:"SF Mono", ui-monospace, Menlo, Consolas, monospace;
  font-size:.8rem;
  color:#525c70;
  margin-left:.4rem;
  white-space:nowrap;
}
.home .home-proof-chip-pct {
  display:inline-block;
  padding:.1rem .45rem;
  border-radius:5px;
  font-weight:800;
  font-size:.95rem;
  letter-spacing:.3px;
  white-space:nowrap;
  margin:0 .25rem;
}
.home .home-proof-chip-pct-decrease { background:#dcfce7; color:#15803d; border:1px solid #86efac; }
.home .home-proof-chip-pct-increase { background:#fee2e2; color:#b91c1c; border:1px solid #fca5a5; }
.home .home-proof-chip-pct-neutral  { background:#f1f5f9; color:#475569; border:1px solid #cbd5e1; }
.home .home-proof-chip-cta {
  display:inline-block;
  color:#0066d4;
  font-weight:700;
  font-size:.92rem;
  text-decoration:none;
  margin-top:.1rem;
}
.home .home-proof-chip-cta:hover { text-decoration:underline; }
@media (max-width:640px) {
  .home .home-proof-chip { padding:.75rem .85rem; gap:.7rem; }
  .home .home-proof-chip-serff { display:block; margin-left:0; margin-top:.15rem; }
}

/* move-4-h-rate-transparency-band-2026-05-31: highest-leverage homepage
   addition per HOMEPAGE-keep-it-light audit. Surface the rate-intelligence
   moat as the homepage's brand differentiator. Sits between carrier bar
   and verticals. Brand-navy gradient + white card to stand out cleanly
   without redesigning anything else. */
.home .home-rate-band {
  padding:3rem 0;
  background:linear-gradient(135deg, #0a2540 0%, #1a4a8a 100%);
  border-top:1px solid #e3ebf5;
  border-bottom:1px solid #e3ebf5;
}
.home .home-rate-band-inner {
  background:#fff;
  border-radius:18px;
  padding:2.25rem 2rem;
  box-shadow:0 8px 32px rgba(10, 37, 64, 0.18);
  max-width:920px;
  margin:0 auto;
  text-align:center;
}
.home .home-rate-band-eyebrow {
  display:inline-block;
  padding:.35rem .85rem;
  background:#e8f1ff;
  color:#1a4a8a;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:1.2px;
  text-transform:uppercase;
  border-radius:99px;
  margin-bottom:1rem;
}
.home .home-rate-band-title {
  font-size:clamp(1.4rem, 2.6vw, 1.95rem);
  font-weight:900;
  color:#0a2540;
  margin:0 0 1rem;
  letter-spacing:-.5px;
  line-height:1.25;
}
.home .home-rate-band-sub {
  color:#3a4858;
  font-size:1.02rem;
  line-height:1.55;
  margin:0 auto 1.6rem;
  max-width:760px;
}
.home .home-rate-band-ctas {
  display:flex;
  justify-content:center;
  gap:1rem;
  flex-wrap:wrap;
}
.home a.home-rate-band-cta {
  display:inline-block;
  padding:.85rem 1.5rem;
  border-radius:10px;
  font-weight:700;
  font-size:.97rem;
  text-decoration:none;
  transition:all .15s;
  border:2px solid transparent;
}
.home a.home-rate-band-cta-primary {
  background:#0a2540;
  color:#fff;
}
.home a.home-rate-band-cta-primary:hover {
  background:#1a4a8a;
  transform:translateY(-1px);
}
.home a.home-rate-band-cta-secondary {
  background:#fff;
  color:#0a2540;
  border-color:#0a2540;
}
.home a.home-rate-band-cta-secondary:hover {
  background:#e8f1ff;
  transform:translateY(-1px);
}
@media (max-width:640px) {
  .home .home-rate-band { padding:2rem 0; }
  .home .home-rate-band-inner { padding:1.75rem 1.25rem; border-radius:14px; }
  .home a.home-rate-band-cta { width:100%; text-align:center; }
}

/* cust-phase-1-5-1-polish-bundle-2-2026-05-30: RECENTLY PUBLISHED feed */
.home .home-recent { padding:4rem 0; background:#fff; border-top:1px solid #e3ebf5; }
.home .home-recent-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.home a.home-recent-card {
  background:#f8fbff; padding:1.5rem; border-radius:14px;
  border:1px solid #e3ebf5; transition:all .15s; display:block; color:inherit;
}
.home a.home-recent-card:hover { border-color:#0066d4; transform:translateY(-2px); box-shadow:0 10px 30px rgba(15,24,37,.08); color:inherit; }
.home .home-recent-date { font-size:.7rem; color:#0066d4; font-weight:800; letter-spacing:1px; text-transform:uppercase; display:block; margin-bottom:.45rem; }
.home .home-recent-card h3 { font-size:1.05rem; margin:0 0 .55rem; color:#1a2638; font-weight:800; line-height:1.3; }
.home .home-recent-card p { font-size:.88rem; color:#3a4658; margin:0 0 .7rem; line-height:1.5; }
@media (max-width: 880px) {
  .home .home-recent-grid { grid-template-columns:1fr; }
}

.home .home-review-stamp {
  max-width:820px; margin:1.5rem auto 0; padding:1rem 1.25rem;
  background:#fff; border:1px solid #e3ebf5; border-radius:8px;
  font-size:.85rem; color:#3a4658; text-align:center; line-height:1.6;
}
.home .home-review-stamp a { color:#0066d4; font-weight:700; }
.home .home-review-stamp span { display:block; margin-top:.35rem; font-size:.78rem; color:#525c70; }

@media (max-width: 880px) {
  .home .home-carrier-logos { gap:1.5rem; }
}

/* cust-phase-1-5-1-a4-scroll-reveal-2026-05-30:
   Scroll-reveal animation for sections below the fold. Default state =
   VISIBLE (no-JS safe). JS adds .home-reveal-arm to hide them, then
   .home-reveal-visible to reveal. Respects prefers-reduced-motion. */
.home .home-reveal { opacity: 1; transform: none; }
.home .home-reveal.home-reveal-arm {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
  will-change: opacity, transform;
}
.home .home-reveal.home-reveal-arm.home-reveal-visible {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .home .home-reveal.home-reveal-arm {
    opacity: 1;
    transform: none;
    transition: none;
  }
}