/* ==========================================================================
   SAFEX INSURANCE — 100% PERFECTED SITE-WIDE THEME & PAGE GRIDS (V12.0)
   Pixel-Perfect Layouts for All Public Pages, Auth, Portal & Quote Wizard
   ========================================================================== */

:root {
  --brand: #FA5438;
  --brand-hover: #E03E22;
  --ink: #0B1B3D;
  --ink-light: #142347;
  --ink-dark: #071226;
  --accent: #2563EB;
  --accent-light: #EFF6FF;
  --bg-light: #F8FAFC;
  --border-light: #E2E8F0;
  --text-main: #1E293B;
  --text-muted: #64748B;
  --shadow-sm: 0 4px 12px rgba(11, 27, 61, 0.03);
  --shadow-md: 0 10px 30px rgba(11, 27, 61, 0.06);
  --shadow-lg: 0 20px 50px rgba(11, 27, 61, 0.12);
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --radius-pill: 999px;
}

*{box-sizing:border-box}
html{
  scroll-behavior:auto;
  font-family:'Inter',ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  color:var(--text-main);
  background:#fff;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
body{
  margin:0;
  background:#fff;
  color:var(--text-main);
  line-height:1.65;
  font-size:16px;
  overflow-x:hidden;
}

button,input,select,textarea{font:inherit;box-sizing:border-box}
a{color:inherit;text-decoration:none;transition:color .18s ease,background-color .18s ease,border-color .18s ease}
img{max-width:100%;height:auto;display:block}

/* Headings & Text */
h1, h2, h3, h4, h5, h6 {
  margin: 0;
  color: var(--ink);
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -0.02em;
  word-break: break-word;
}
p {
  margin: 0;
  line-height: 1.65;
  color: var(--text-main);
  word-break: break-word;
}

.container{width:min(1200px,calc(100% - 40px));margin:0 auto}
.narrow{width:min(820px,calc(100% - 40px))}

/* SITE HEADER (Clean White Header matching theme.jpeg) */
.site-header{height:78px;border-bottom:1px solid #E2E8F0;background:#FFFFFF;position:sticky;top:0;z-index:90;box-shadow:var(--shadow-sm)}
.nav-wrap{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:10px;min-width:max-content}
.brand-mark{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(135deg,var(--brand),var(--accent));color:#fff;font-weight:900;box-shadow:0 8px 20px rgba(250,84,56,0.3)}
.brand b{font-size:18px;color:var(--ink);letter-spacing:-0.02em}
.brand small{font-size:11px;color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;display:block}

.main-nav{display:flex;align-items:center;gap:26px;font-size:15px;font-weight:700;color:#334155}
.main-nav>a,.nav-drop>button{transition:color .18s ease,background-color .18s ease,border-color .18s ease;padding:8px 0;background:transparent;border:0;cursor:pointer;font-weight:inherit;font-size:inherit;color:inherit}
.main-nav>a:hover,.nav-drop>button:hover{color:var(--brand)}
.nav-drop{position:relative}
.drop-panel{display:none;position:absolute;top:100%;left:-16px;background:#fff;border:1px solid #E2E8F0;box-shadow:var(--shadow-md);border-radius:var(--radius-md);padding:10px;width:220px;z-index:100}
.nav-drop:hover .drop-panel,.nav-drop.open .drop-panel{display:flex;flex-direction:column;gap:4px}
.drop-panel a{font-size:14px;padding:10px 12px;border-radius:10px;color:var(--text-main);font-weight:600}
.drop-panel a:hover{background:var(--accent-light);color:var(--accent)}

.nav-actions{display:flex;align-items:center;gap:16px}
.nav-phone{font-size:14px;font-weight:700;color:var(--ink);display:inline-flex;align-items:center;gap:6px}

/* BUTTONS */
.btn{border:1px solid var(--border-light);background:#fff;border-radius:12px;padding:11px 20px;font-size:15px;font-weight:700;display:inline-flex;justify-content:center;align-items:center;gap:8px;cursor:pointer;transition:color .18s ease,background-color .18s ease,border-color .18s ease,box-shadow .18s ease;line-height:1.2;white-space:nowrap}
.btn:hover{box-shadow:0 6px 18px rgba(11,27,61,.08)}
.btn.primary{background:linear-gradient(135deg,var(--brand),#E03E22) !important;color:#fff !important;border:none !important;box-shadow:0 8px 24px rgba(250,84,56,0.3)}
.btn.primary:hover{box-shadow:0 10px 24px rgba(250,84,56,.28)}
.btn.outline{background:#FFFFFF !important;border:1.5px solid #CBD5E1 !important;color:var(--ink) !important}
.btn.outline:hover{border-color:var(--accent) !important;color:var(--accent) !important}
.btn.ghost{background:transparent;border-color:transparent;color:var(--ink)}
.btn.pill{border-radius:var(--radius-pill) !important}
.btn.full{width:100% !important}
.btn.xl{padding:14px 28px !important;font-size:16px !important}
.btn.small{padding:8px 14px;font-size:13px;border-radius:10px}

/* LIGHT HERO SECTION (Matching theme.jpeg) */
.hero-light-theme,.hero-section,.hero,.page-hero{background:#F8FAFC !important;padding:75px 0 85px;position:relative;overflow:hidden}
.hero-light-grid,.hero-grid,.page-hero-grid{display:grid;grid-template-columns:1.05fr 0.95fr;gap:50px;align-items:center;position:relative;z-index:2}
.hero-title-dark,.hero-title,.hero h1,.page-hero h1,.hero-content h1{font-size:clamp(34px, 4.2vw, 54px);line-height:1.12;color:var(--ink) !important;margin-bottom:20px;letter-spacing:-0.03em;font-weight:800}
.hero-title-dark span,.hero h1 em{color:var(--ink) !important;font-style:normal}
.hero-subtitle-dark,.hero-subtitle,.hero-copy p,.page-hero p,.hero-content p{font-size:18px;line-height:1.6;color:#475569 !important;margin-bottom:32px;max-width:580px}
.hero-actions,.hero-cta-group{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-bottom:24px}
.hero-canadian-tag,.canadian-pill,.ca-pill-badge,.eyebrow{display:inline-flex;align-items:center;gap:8px;color:#64748B !important;font-size:14px;font-weight:600;background:transparent;border:0}

.hero-light-visual,.hero-visual,.hero-media{position:relative;display:grid;place-items:center}
.hero-backdrop-shape{position:absolute;width:440px;height:440px;border-radius:50% 50% 40% 60% / 60% 40% 60% 40%;background:linear-gradient(135deg,#DBEAFE,#EFF6FF);right:-10px;top:-10px;z-index:1}
.hero-photo-frame,.hero-image-wrapper,.media-frame{position:relative;z-index:2;border-radius:28px;overflow:hidden;box-shadow:var(--shadow-lg);width:100%;max-height:440px}
.hero-photo-frame img,.hero-image-wrapper img,.media-frame img{width:100%;height:100%;object-fit:cover}

/* TRUST STRIP */
.trust-strip{background:#FFFFFF;padding:36px 0;border-bottom:1px solid var(--border-light)}
.trust-strip-title{text-align:center;font-size:16px;font-weight:800;color:var(--ink);margin-bottom:20px;letter-spacing:-0.01em}
.trust-strip-bar{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.rating-badge{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:800;color:var(--ink)}
.rating-badge .stars{color:#F59E0B;font-size:15px}
.trust-logos,.trust-strip-inner{display:flex;align-items:center;gap:28px;flex-wrap:wrap;justify-content:center}
.logo-text,.trust-logo-pill{font-size:17px;font-weight:900;color:#475569;letter-spacing:0.04em}
.trustpilot-badge{display:flex;align-items:center;gap:6px;background:#F1F5F9;padding:8px 14px;border-radius:var(--radius-pill);font-size:13px;color:var(--ink);font-weight:700}
.trustpilot-badge .tp-stars{color:#10B981;font-size:13px}

/* SECTION HEADINGS */
.section{padding:80px 0}
.section.light{background:var(--bg-light)}
.section-head{margin-bottom:40px}
.section-head.center-head{text-align:center}
.section-kicker{color:var(--brand) !important;font-weight:800;font-size:13px;letter-spacing:0.1em;text-transform:uppercase;display:block;margin-bottom:8px}
.section-head h2{font-size:clamp(26px, 3vw, 38px);line-height:1.2;color:var(--ink) !important;margin-bottom:12px;font-weight:800}
.section-head p{font-size:16px;color:var(--text-muted) !important;max-width:640px;margin:0 auto;line-height:1.65}

/* FAQ DIRECTORY 2-COLUMN GRID (Fixing FAQ stretching issue!) */
.faq-directory-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:32px}
.faq-directory{display:grid;grid-template-columns:repeat(2, 1fr);gap:24px;align-items:start}
.faq-service-card{background:#FFFFFF !important;border:1px solid #E2E8F0 !important;border-radius:20px !important;padding:28px !important;box-shadow:0 10px 30px rgba(11,27,61,0.04)}
.faq-accordion details{border-bottom:1px solid #E2E8F0 !important;padding:14px 0 !important;background:transparent !important;box-shadow:none !important;margin-bottom:0 !important}
.faq-accordion summary{font-weight:700;font-size:16px;color:#0B1B3D !important;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;list-style:none}
.faq-accordion summary::-webkit-details-marker{display:none}
.faq-accordion p{color:#475569 !important;font-size:14px;line-height:1.6;margin-top:10px;margin-bottom:4px}

/* ALL OTHER CARD GRIDS */
.coverage-5-grid{display:grid;grid-template-columns:repeat(5, 1fr);gap:18px;margin-top:36px;align-items:stretch}
.coverage-category-grid,.category-grid,.service-grid,.post-grid,.branch-grid,.people-grid,.broker-directory,.coverage-grid,.related-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));gap:24px;align-items:stretch}
.category-card,.service-card,.person-card,.post-card,.branch-card,.broker-profile-card{background:#FFFFFF !important;border:1px solid #E2E8F0 !important;border-radius:20px !important;padding:24px 20px !important;box-shadow:0 8px 24px rgba(11,27,61,0.04);display:flex;flex-direction:column;justify-content:space-between;height:100%;text-align:center;align-items:center;transition:border-color .18s ease,box-shadow .18s ease;position:relative}
.category-card:hover,.service-card:hover,.person-card:hover,.post-card:hover,.branch-card:hover,.broker-profile-card:hover{box-shadow:0 12px 28px rgba(11,27,61,.08);border-color:#2563EB !important}
.cat-icon-box,.service-icon,.visual-symbol,.trust-mark{width:50px;height:50px;border-radius:14px;background:#EFF6FF;color:#2563EB;display:grid;place-items:center;font-size:24px;margin-bottom:16px;flex-shrink:0}
.category-card h3,.service-card h3,.person-card h3,.post-card h3,.branch-card h3{font-size:18px;color:var(--ink) !important;margin-bottom:8px;line-height:1.3;font-weight:800}
.category-card p,.service-card p,.person-card p,.post-card p,.branch-card p{font-size:13px;color:#64748B !important;line-height:1.5;margin-bottom:16px;flex:1}
.cat-link,.text-link{color:#2563EB !important;font-weight:700;font-size:13px}
.center-btn-row{text-align:center;margin-top:36px}

/* PERSONALIZED QUICK QUOTE BANNER */
.dark-quote-section{background:#FFFFFF !important;padding:60px 0;color:#fff}
.quote-navy-banner{background:#0B1B3D !important;border-radius:28px;padding:48px;display:grid;grid-template-columns:1.05fr 0.95fr;gap:40px;align-items:center;box-shadow:0 20px 60px rgba(11,27,61,0.18)}
.navy-copy h2{font-size:30px;font-weight:800;color:#FFFFFF !important;margin-bottom:10px;line-height:1.25}
.navy-copy p.subtitle,.navy-copy .subtitle{font-size:16px;color:#CBD5E1 !important;margin-bottom:24px}
.navy-checklist{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.navy-checklist li{color:#FFFFFF !important;font-size:15px;font-weight:600;display:flex;align-items:center;gap:10px}
.navy-checklist li span{color:#FA5438 !important;font-weight:900}
.navy-form-wrapper{background:transparent !important;border:none !important;padding:0 !important;box-shadow:none !important}
.quick-quote-form .form-row-2,.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.quick-quote-form label{display:block;font-size:13px;font-weight:700;color:#FFFFFF !important;margin-bottom:6px}
.quick-quote-form input,.quick-quote-form select{width:100%;border:1px solid #CBD5E1 !important;border-radius:10px !important;background:#FFFFFF !important;padding:11px 14px !important;color:#0B1B3D !important;font-size:14px !important;font-weight:600;outline:0}
.quick-quote-form input:focus,.quick-quote-form select:focus{border-color:#2563EB !important;box-shadow:0 0 0 3px rgba(37,99,235,0.2) !important}
.navy-privacy{font-size:13px;color:#94A3B8 !important;text-align:center;margin-top:14px}

/* TESTIMONIALS SECTION */
.testimonial-carousel-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:24px}
.testimonial-card{background:#FFFFFF !important;border:1px solid #E2E8F0 !important;border-radius:20px !important;padding:28px !important;box-shadow:0 8px 24px rgba(11,27,61,0.04);display:flex;flex-direction:column;justify-content:space-between;height:100%;position:relative}
.quote-mark{font-size:36px;font-weight:900;color:#2563EB;line-height:1;margin-bottom:8px}
.testimonial-card p{font-size:15px;color:#334155 !important;line-height:1.6;font-style:italic;margin-bottom:20px;flex:1}
.reviewer-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #F1F5F9;padding-top:16px}
.reviewer-footer b{font-size:15px;color:var(--ink) !important;display:block}
.reviewer-footer .stars{color:#F59E0B;font-size:14px}
.reviewer-avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;border:2px solid #EFF6FF}

/* STATS COUNTER STRIP */
.stats-counter-strip{background:#EFF6FF;padding:36px 0;border-top:1px solid #DBEAFE;border-bottom:1px solid #DBEAFE}
.stats-grid{display:grid;grid-template-columns:repeat(4, 1fr);gap:24px;align-items:center}
.stat-item{display:flex;align-items:center;gap:14px}
.stat-item .stat-icon{font-size:32px;flex-shrink:0}
.stat-item b{display:block;font-size:24px;font-weight:900;color:var(--ink) !important;line-height:1.1}
.stat-item span{font-size:14px;color:var(--text-muted) !important;margin-top:2px;display:block}

/* FAQ & BLOG SPLIT */
.faq-blog-split{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.faq-left h3,.blog-right h3{font-size:24px;font-weight:800;color:var(--ink) !important;margin-bottom:20px}

.blog-cards-stack{display:grid;gap:16px}
.blog-mini-card{display:flex;gap:16px;background:#FFFFFF !important;border:1px solid #E2E8F0 !important;border-radius:16px;padding:14px;box-shadow:var(--shadow-sm);align-items:center}
.blog-img{width:90px;height:75px;border-radius:12px;overflow:hidden;background:#E2E8F0;display:grid;place-items:center;flex-shrink:0}
.blog-img img{width:100%;height:100%;object-fit:cover}
.blog-tag{font-size:11px;font-weight:800;color:#2563EB !important;text-transform:uppercase;letter-spacing:0.06em}
.blog-content h4{font-size:15px;margin:2px 0 4px;color:var(--ink) !important;line-height:1.3}
.blog-content small{display:block;font-size:12px;color:var(--text-muted) !important;margin-bottom:6px}
.blog-link{font-size:13px;font-weight:700;color:#2563EB !important}

/* BOTTOM CTA BANNER */
.cta-banner-bottom{padding:84px 0;background-size:cover;background-position:center;color:#fff;text-align:center;position:relative}
.cta-banner-inner h2{font-size:clamp(28px, 4vw, 44px);color:#FFFFFF !important;margin-bottom:14px;line-height:1.2;font-weight:800}
.cta-banner-inner p{font-size:18px;color:#E2E8F0 !important;margin-bottom:32px;max-width:620px;margin-left:auto;margin-right:auto}

/* CONTACT PAGE ALIGNMENT */
.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:48px;align-items:start}
.contact-cards{display:grid;gap:16px;margin-top:24px}
.contact-cards>div{background:#FFFFFF !important;border:1px solid var(--border-light) !important;border-radius:16px !important;padding:20px !important;display:flex;gap:16px;align-items:center;box-shadow:var(--shadow-sm)}
.form-card{background:#FFFFFF !important;border:1px solid var(--border-light) !important;border-radius:var(--radius-lg);padding:32px !important;box-shadow:var(--shadow-lg)}

/* FORM CONTROLS & GENERAL FORM ALIGNMENT */
.form-grid{display:grid;grid-template-columns:repeat(2, 1fr);gap:16px}
.form-grid .full{grid-column:1 / -1}
.form-grid label,.form-card label,.quote-card label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:700;color:var(--ink) !important;margin:0}
.form-grid input,.form-grid select,.form-grid textarea,.form-card input,.form-card select,.form-card textarea,.quote-card input,.quote-card select{width:100%;border:1px solid #CBD5E1 !important;border-radius:12px !important;background:#F8FAFC !important;padding:12px 16px !important;color:var(--ink) !important;font-size:15px !important;outline:0;transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease}
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.form-card input:focus,.form-card select:focus,.form-card textarea:focus{border-color:#2563EB !important;background:#fff !important;box-shadow:0 0 0 3px rgba(37,99,235,0.15) !important}

/* CAREERS JOB LIST */
.jobs-list{display:grid;gap:16px}
.job-row{background:#FFFFFF !important;border:1px solid var(--border-light) !important;border-radius:16px !important;padding:24px !important;display:flex;justify-content:space-between;align-items:center;gap:20px;box-shadow:var(--shadow-sm)}
.job-row h3{font-size:18px;margin-bottom:4px;color:var(--ink) !important}
.job-row p{font-size:14px;color:var(--text-muted) !important}

/* PORTAL & SCOPE VERIFICATION CLASSES */
.portal-side{position:sticky;top:94px;align-self:start;background:#fff;border:1px solid #e6e8f0;border-radius:14px;padding:10px;box-shadow:0 9px 28px rgba(30,35,70,.04)}
.portal-side-title{display:flex;align-items:center;gap:9px;padding:8px 7px 14px;border-bottom:1px solid #eceef4;margin-bottom:6px}
.portal-side-title>span{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(135deg,var(--brand),#865dff);color:#fff;font-weight:900;font-size:14px}
.portal-notify{position:relative;width:34px;height:34px;border:1px solid #e6e8ef;border-radius:99px;display:grid;place-items:center;color:#5f6577}
.portal-notify i{position:absolute;right:-4px;top:-5px;min-width:17px;height:17px;border-radius:99px;display:grid;place-items:center;background:#ef4444;color:#fff;font-size:11px;font-style:normal;border:2px solid #fff}
.notification-list{display:grid;gap:9px}
.notification-item{display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:start;background:#fff;border:1px solid #e6e8ef;border-radius:11px;padding:14px}
.notification-item.unread{border-color:#d8d0ff;background:#fcfbff}
.trust-rail{background:#fff;border-block:1px solid #ececf3;padding:22px 0}
.trust-badge-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.trust-badge-card{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:11px;border:1px solid #e8e9f0;border-radius:13px;padding:15px;background:linear-gradient(180deg,#fff,#fbfaff);min-height:104px}
.trust-mark{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#f0edff;color:var(--brand);font-size:17px;font-weight:900}
.trust-badge-card small{display:block;color:var(--brand);font-size:11px;font-weight:900;letter-spacing:.08em;margin:1px 0 5px}
.trust-badge-card b{display:block;color:#1c2031;font-size:14px;line-height:1.35}
.trust-badge-card p{margin:5px 0 0;color:#767c8f;font-size:12px;line-height:1.45}

/* FOOTER */
.site-footer{background:var(--ink-dark) !important;color:#94A3B8 !important;padding:70px 0 30px}
.footer-grid{display:grid;grid-template-columns:2fr repeat(4, 1fr);gap:40px}
.footer-grid h4{color:#FFFFFF !important;font-size:16px;font-weight:700;margin-bottom:16px}
.footer-grid a{color:#CBD5E1 !important;font-size:14px;display:block;margin-bottom:10px;transition:color .18s ease}
.footer-grid a:hover{color:var(--brand) !important}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.10);padding-top:24px;margin-top:48px;display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#94A3B8 !important}

/* RESPONSIVE MEDIA QUERIES */
@media (max-width: 1024px) {
  .hero-light-grid,.hero-grid,.page-hero-grid,.quote-navy-banner,.contact-grid,.faq-directory{grid-template-columns:1fr;gap:40px}
  .coverage-5-grid{grid-template-columns:repeat(3, 1fr)}
  .testimonial-carousel-grid{grid-template-columns:repeat(2, 1fr)}
  .faq-blog-split{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px}
  .stats-grid{grid-template-columns:repeat(2, 1fr)}
  .choice-grid{grid-template-columns:repeat(3, 1fr)}
}

@media (max-width: 640px) {
  .container{width:calc(100% - 28px)}
  .coverage-5-grid,.quick-quote-form .form-row-2,.form-grid,.form-row-2{grid-template-columns:1fr}
  .testimonial-carousel-grid{grid-template-columns:1fr}
  .site-header{height:68px}
  .hero-light-theme,.hero-section,.hero,.page-hero{padding:50px 0 60px}
  .hero-title-dark,.hero h1,.hero-title,.page-hero h1{font-size:30px}
  .stats-grid{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1fr}
  .footer-bottom{flex-direction:column;gap:12px;text-align:center}
  .job-row{flex-direction:column;align-items:flex-start}
  .trust-strip-bar{justify-content:center}
  .choice-grid{grid-template-columns:1fr 1fr}
}

/* ==========================================================================
   V12.1 COMPLETE THEME + ALIGNMENT REPAIR
   Shared public, auth, quote and portal polish based on the supplied theme.
   ========================================================================== */

:root {
  --radius-card: 8px;
  --radius-control: 10px;
  --page-bg: #f6f9fd;
  --panel-bg: #ffffff;
  --soft-blue: #eef6ff;
  --soft-coral: #fff2ef;
}

*,
*::before,
*::after {
  min-width: 0;
}

html,
body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
a,
button,
input,
select,
textarea,
small,
span {
  letter-spacing: 0 !important;
}

body {
  background: #ffffff;
}

body,
input,
select,
textarea,
button {
  font-family: "Inter", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

.skip-link {
  position: fixed;
  left: 16px;
  top: 12px;
  z-index: 999;
  transform: translateY(-160%);
  background: var(--ink);
  color: #ffffff;
  padding: 10px 14px;
  border-radius: var(--radius-control);
  font-weight: 800;
}

.skip-link:focus {
  transform: translateY(0);
}

.container {
  width: min(1180px, calc(100% - 40px));
}

.narrow {
  width: min(840px, calc(100% - 40px));
}

.center {
  text-align: center;
}

.section {
  padding: 72px 0;
}

.section.light,
.section.soft {
  background: var(--page-bg) !important;
}

.section-head {
  max-width: 760px;
}

.section-head.center-head {
  margin-left: auto;
  margin-right: auto;
}

.section-head h2,
.faq-directory-head h2,
.faq-left h3,
.blog-right h3 {
  font-size: 32px;
}

.section-head p {
  margin-left: 0;
  margin-right: 0;
}

.section-head.center-head p {
  margin-left: auto;
  margin-right: auto;
}

.section-kicker,
.service-cat,
.blog-tag {
  letter-spacing: 0 !important;
}

.site-header {
  min-height: 74px;
  height: auto;
}

.nav-wrap {
  min-height: 74px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
}

.brand img {
  max-height: 44px;
  width: auto;
  object-fit: contain;
}

.brand-mark {
  border-radius: var(--radius-card);
  background: #0b77e3;
}

.brand b,
.brand small {
  line-height: 1.1;
}

.mobile-nav-btn {
  display: none;
  width: 42px;
  height: 42px;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-control);
  background: #ffffff;
  color: var(--ink);
  place-items: center;
  cursor: pointer;
}

.main-nav {
  justify-content: center;
}

.nav-actions {
  justify-content: flex-end;
}

.nav-phone {
  white-space: nowrap;
}

.btn {
  min-height: 42px;
  border-radius: var(--radius-control);
  white-space: normal;
  text-align: center;
}

.btn.pill {
  border-radius: 999px !important;
}

.btn.small {
  min-height: 34px;
  padding: 8px 13px;
}

.btn.xl {
  min-height: 48px;
}

.alert {
  border: 1px solid var(--border-light);
  border-radius: var(--radius-card);
  padding: 13px 16px;
  margin-bottom: 18px;
  font-weight: 700;
}

.alert.success {
  background: #ecfdf3;
  border-color: #c9f2da;
  color: #127a49;
}

.alert.error {
  background: #fff2f2;
  border-color: #ffd6d6;
  color: #b42336;
}

.hero-light-theme,
.hero-section,
.hero,
.page-hero {
  background: linear-gradient(180deg, #f3f9ff 0%, #ffffff 100%) !important;
  padding: 76px 0 78px;
}

.page-hero.compact {
  padding: 58px 0 62px;
}

.hero-light-grid,
.hero-grid,
.page-hero-grid {
  gap: 54px;
}

.hero-title-dark,
.hero-title,
.hero h1,
.page-hero h1,
.hero-content h1,
.quote-page-head h1,
.article-hero h1 {
  font-size: 48px;
  line-height: 1.1;
  font-weight: 850;
}

.page-hero.compact h1 {
  font-size: 40px;
}

.hero-subtitle-dark,
.hero-subtitle,
.hero-copy p,
.page-hero p,
.hero-content p,
.quote-page-head p {
  font-size: 18px;
  color: #475569 !important;
}

.ca-pill-badge,
.hero-canadian-tag,
.eyebrow {
  min-height: 30px;
  font-size: 13px;
  font-weight: 800;
  color: #52627a !important;
}

.eyebrow span {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--brand);
  display: inline-block;
}

.hero-photo-frame,
.hero-image-wrapper,
.media-frame {
  border-radius: 18px;
  box-shadow: 0 18px 48px rgba(11, 27, 61, .14);
}

.media-frame {
  min-height: 260px;
}

.media-frame img {
  min-height: 320px;
}

.floating-badge {
  position: absolute;
  left: 22px;
  bottom: 22px;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 12px;
  max-width: min(360px, calc(100% - 44px));
  padding: 14px 16px;
  border-radius: var(--radius-card);
  background: rgba(255, 255, 255, .95);
  color: var(--ink);
  box-shadow: 0 16px 36px rgba(11, 27, 61, .16);
}

.floating-badge small {
  display: block;
  color: var(--text-muted);
  line-height: 1.35;
}

.badge-icon {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: var(--radius-card);
  background: var(--soft-coral);
  color: var(--brand);
  flex: 0 0 auto;
}

.trust-strip,
.stats-counter-strip {
  background: #ffffff;
}

.trust-strip-bar {
  justify-content: center;
}

.trust-logos {
  flex: 1 1 420px;
}

.trust-logo-pill,
.logo-text {
  border: 1px solid var(--border-light);
  border-radius: var(--radius-card);
  background: #ffffff;
  padding: 12px 16px;
  box-shadow: var(--shadow-sm);
}

.category-card,
.service-card,
.person-card,
.post-card,
.branch-card,
.broker-profile-card,
.testimonial-card,
.faq-service-card,
.form-card,
.visual-card,
.sticky-card,
.portal-card,
.portal-panel,
.policy-card,
.network-map-card,
.empty-state,
.portal-empty,
.auth-card {
  border-radius: var(--radius-card) !important;
}

.category-card,
.service-card,
.person-card,
.branch-card,
.broker-profile-card,
.testimonial-card,
.faq-service-card,
.form-card,
.visual-card,
.sticky-card,
.portal-card,
.portal-panel,
.policy-card,
.network-map-card,
.auth-card {
  border: 1px solid var(--border-light) !important;
  background: #ffffff !important;
  box-shadow: 0 10px 28px rgba(11, 27, 61, .055) !important;
}

.category-card,
.service-card,
.person-card,
.branch-card,
.broker-profile-card {
  text-align: left;
  align-items: flex-start;
}

.coverage-5-grid {
  gap: 16px;
}

.cat-icon-box,
.service-icon,
.visual-symbol,
.trust-mark,
.policy-icon {
  border-radius: var(--radius-card);
  background: var(--soft-blue);
  color: var(--accent);
}

.dark-quote-section {
  background: #ffffff !important;
}

.quote-navy-banner {
  border-radius: var(--radius-card);
  background: linear-gradient(135deg, #071833, #0c2b5c) !important;
}

.quick-quote-form input,
.quick-quote-form select,
.form-grid input,
.form-grid select,
.form-grid textarea,
.form-card input,
.form-card select,
.form-card textarea,
.quote-card input,
.quote-card select {
  min-height: 46px;
}

.faq-accordion details,
.faq-list details {
  border: 1px solid var(--border-light) !important;
  border-radius: var(--radius-card) !important;
  background: #ffffff !important;
  padding: 16px 18px !important;
  margin-bottom: 10px !important;
}

.faq-accordion details:last-child,
.faq-list details:last-child {
  margin-bottom: 0 !important;
}

.faq-accordion summary,
.faq-list summary {
  gap: 18px;
}

.faq-service-title {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
}

.post-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
  gap: 22px !important;
}

.post-grid .post-card {
  padding: 0 !important;
  overflow: hidden;
  text-align: left;
  align-items: stretch;
}

.post-image {
  aspect-ratio: 16 / 10;
  height: auto !important;
  background: var(--soft-blue) !important;
}

.post-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.post-body {
  padding: 22px !important;
}

.article-hero {
  padding: 62px 0;
  background: linear-gradient(180deg, #f3f9ff 0%, #ffffff 100%);
}

.article-meta,
.back-link {
  color: var(--text-muted);
  font-weight: 700;
}

.content-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 34px;
  align-items: start;
}

.prose {
  color: var(--text-main);
}

.prose h2,
.rich-text h2 {
  font-size: 28px;
  margin: 34px 0 14px;
}

.prose h2:first-child,
.rich-text h2:first-child {
  margin-top: 0;
}

.rich-text p,
.prose p,
.rich-text li,
.prose li {
  color: #475569;
  line-height: 1.75;
}

.rich-text ul,
.prose ul {
  padding-left: 22px;
}

.visual-card,
.sticky-card {
  padding: 28px;
}

.visual-card > b,
.sticky-card > b {
  display: block;
  color: var(--ink);
  font-size: 20px;
  line-height: 1.35;
  margin: 10px 0;
}

.visual-card > p,
.sticky-card > p {
  color: #52627a;
}

.visual-list {
  display: grid;
  gap: 10px;
  margin-top: 18px;
}

.visual-list span {
  display: flex;
  gap: 8px;
  color: #334155;
  font-weight: 700;
}

.sticky-card {
  position: sticky;
  top: 98px;
}

.sticky-card ul {
  margin: 12px 0 0;
  padding-left: 20px;
  color: #475569;
}

.mini-separator {
  height: 1px;
  background: var(--border-light);
  margin: 22px 0;
}

.coverage-grid > div,
.broker-profile-meta > div,
.related-grid a {
  border: 1px solid var(--border-light);
  border-radius: var(--radius-card);
  background: #ffffff;
  padding: 18px;
  box-shadow: var(--shadow-sm);
}

.coverage-grid > div span {
  color: var(--brand);
  font-weight: 900;
}

.coverage-grid > div b,
.related-grid a b {
  display: block;
  color: var(--ink);
  margin: 7px 0 5px;
}

.related-grid a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
}

.filter-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  margin-bottom: 24px;
  padding: 12px;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-card);
  background: #ffffff;
  box-shadow: var(--shadow-sm);
}

.filter-bar input {
  width: min(520px, 100%);
  min-height: 44px;
  border: 1px solid #cbd5e1;
  border-radius: var(--radius-control);
  padding: 0 14px;
  outline: 0;
}

.filter-bar input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, .12);
}

.filter-bar span {
  color: var(--text-muted);
  font-weight: 800;
  white-space: nowrap;
}

.branch-grid,
.people-grid,
.broker-directory {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
}

.branch-card {
  padding: 0 !important;
  overflow: hidden;
}

.branch-map-mini {
  min-height: 120px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, var(--soft-blue), #ffffff);
  color: var(--accent);
  font-size: 34px;
}

.branch-body {
  padding: 20px;
}

.branch-contact,
.broker-actions,
.policy-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
}

.broker-expertise {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0;
}

.broker-expertise span {
  border-radius: 999px;
  background: var(--soft-blue);
  color: var(--accent);
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 800;
}

.network-map-card {
  padding: 24px;
  margin-bottom: 24px;
}

.network-map-head {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
  margin-bottom: 18px;
}

.network-map,
.branch-detail-map {
  min-height: 340px;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-card);
  overflow: hidden;
  background: var(--soft-blue);
}

.branch-detail-map iframe {
  width: 100%;
  height: 420px;
  border: 0;
}

.map-status {
  display: block;
  margin-top: 10px;
  color: var(--text-muted);
}

.empty-state,
.portal-empty {
  border: 1px dashed #cbd5e1;
  background: #ffffff;
  padding: 30px;
  color: var(--text-muted);
}

.empty-state h3 {
  margin-bottom: 8px;
}

.quote-page {
  background: linear-gradient(180deg, #f3f9ff 0, #ffffff 220px);
  padding: 62px 0 78px;
}

.quote-page-head {
  max-width: 780px;
  margin: 0 auto 28px;
  text-align: center;
}

.wizard-shell {
  max-width: 980px;
  margin: 0 auto;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-card);
  background: #ffffff;
  box-shadow: 0 18px 48px rgba(11, 27, 61, .09);
  padding: 28px;
}

.wizard-progress {
  margin-bottom: 26px;
}

.progress-track {
  height: 9px;
  border-radius: 999px;
  background: #e2e8f0;
  overflow: hidden;
}

.progress-track i {
  display: block;
  height: 100%;
  width: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--brand), var(--accent));
  transition: width .25s ease;
}

.steps-label {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-top: 12px;
}

.steps-label span {
  color: var(--text-muted);
  font-size: 13px;
  font-weight: 800;
}

.steps-label span.active {
  color: var(--ink);
}

.wizard-step {
  display: none;
}

.wizard-step.active {
  display: block;
}

.step-no {
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: var(--radius-card);
  background: var(--soft-coral);
  color: var(--brand);
  font-weight: 900;
  margin-bottom: 16px;
}

.wizard-step h2 {
  font-size: 30px;
  margin-bottom: 8px;
}

.step-copy {
  color: #52627a;
  margin-bottom: 22px;
}

.choice-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
}

.choice {
  position: relative;
  display: grid;
  gap: 8px;
  align-content: start;
  min-height: 168px;
  padding: 18px;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-card);
  background: #ffffff;
  cursor: pointer;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.choice:hover {
  transform: translateY(-2px);
  border-color: #bfdbfe;
  box-shadow: var(--shadow-md);
}

.choice input {
  position: absolute;
  inset: 12px 12px auto auto;
  accent-color: var(--brand);
}

.choice:has(input:checked) {
  border-color: var(--brand);
  background: #fffaf9;
  box-shadow: 0 0 0 3px rgba(250, 84, 56, .12);
}

.choice-icon {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: var(--radius-card);
  background: var(--soft-blue);
  color: var(--accent);
  font-size: 22px;
}

.choice b {
  color: var(--ink);
}

.choice small {
  color: #64748b;
  line-height: 1.45;
}

.conditional-fields {
  display: none;
}

.conditional-fields.visible {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.conditional-fields.full {
  grid-column: 1 / -1;
}

.field-error,
.wizard-error {
  color: #b42336;
  font-size: 13px;
  font-weight: 700;
  margin-top: 6px;
}

.consent {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin: 20px 0;
  color: #475569;
  font-weight: 700;
}

.consent input {
  margin-top: 4px;
  accent-color: var(--brand);
}

.wizard-actions,
.result-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 24px;
}

.wizard-actions.end {
  justify-content: flex-end;
}

.review-card {
  border: 1px solid var(--border-light);
  border-radius: var(--radius-card);
  background: #f8fafc;
  padding: 18px;
}

.review-card dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
}

.review-card div {
  border-bottom: 1px solid #e2e8f0;
  padding-bottom: 10px;
}

.review-card dt {
  color: var(--text-muted);
  font-size: 12px;
  font-weight: 800;
}

.review-card dd {
  margin: 4px 0 0;
  color: var(--ink);
  font-weight: 800;
}

.quote-result {
  text-align: center;
}

.result-icon {
  width: 64px;
  height: 64px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  margin: 0 auto 18px;
  background: #ecfdf3;
  color: #127a49;
  font-size: 28px;
  font-weight: 900;
}

.rate-results {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
  margin-top: 22px;
}

.rate-card {
  border: 1px solid var(--border-light);
  border-radius: var(--radius-card);
  padding: 18px;
  text-align: left;
}

.rate-card b,
.rate-card strong,
.rate-card small {
  display: block;
}

.rate-card strong {
  color: var(--brand);
  font-size: 24px;
  margin: 8px 0;
}

.rate-rank {
  display: inline-flex;
  border-radius: 999px;
  background: var(--soft-blue);
  color: var(--accent);
  padding: 5px 9px;
  font-size: 12px;
  font-weight: 800;
  margin-bottom: 10px;
}

.auth-body {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 28px 14px;
  background: linear-gradient(135deg, #f3f9ff 0%, #ffffff 58%, #fff3f0 100%);
}

.auth-shell {
  width: min(460px, 100%);
}

.auth-brand {
  justify-content: center;
  margin-bottom: 20px;
}

.auth-card {
  padding: 30px;
}

.auth-heading {
  text-align: center;
  margin-bottom: 22px;
}

.auth-heading h1 {
  font-size: 30px;
  margin: 8px 0;
}

.auth-card form {
  display: grid;
  gap: 14px;
}

.auth-card label {
  display: grid;
  gap: 7px;
  color: var(--ink);
  font-weight: 800;
}

.auth-card input {
  min-height: 46px;
  border: 1px solid #cbd5e1;
  border-radius: var(--radius-control);
  padding: 0 14px;
  outline: 0;
}

.auth-card input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, .12);
}

.auth-foot {
  margin-top: 18px;
  text-align: center;
  color: var(--text-muted);
}

.auth-foot a {
  color: var(--accent);
  font-weight: 800;
}

.portal-body {
  min-height: 100vh;
  background: var(--page-bg);
}

.portal-top {
  position: sticky;
  top: 0;
  z-index: 80;
  background: rgba(255, 255, 255, .94);
  border-bottom: 1px solid var(--border-light);
  
}

.portal-top-inner {
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.portal-user {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--text-muted);
  font-weight: 700;
}

.portal-user form {
  margin: 0;
}

.portal-layout {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
  padding-top: 24px;
  padding-bottom: 56px;
}

.portal-side {
  position: sticky;
  top: 96px;
  display: grid;
  gap: 5px;
  padding: 10px;
  border-radius: var(--radius-card);
}

.portal-side a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding: 10px 11px;
  border-radius: var(--radius-card);
  color: #52627a;
  font-weight: 800;
}

.portal-side a:hover,
.portal-side a.active {
  background: var(--soft-coral);
  color: var(--brand);
}

.side-count {
  min-width: 22px;
  height: 22px;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  background: var(--brand);
  color: #ffffff;
  font-size: 12px;
}

.portal-main {
  display: grid;
  gap: 20px;
}

.portal-head,
.portal-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
}

.portal-head h1,
.portal-heading h1 {
  font-size: 34px;
  margin: 6px 0;
}

.portal-head p,
.portal-heading p,
.muted {
  color: var(--text-muted);
}

.portal-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.portal-stats > div {
  border: 1px solid var(--border-light);
  border-radius: var(--radius-card);
  background: #ffffff;
  padding: 18px;
  box-shadow: var(--shadow-sm);
}

.portal-stats span {
  display: block;
  color: var(--text-muted);
  font-size: 13px;
  font-weight: 800;
}

.portal-stats b {
  display: block;
  margin-top: 8px;
  color: var(--ink);
  font-size: 28px;
}

.portal-card,
.portal-panel {
  padding: 22px;
}

.portal-grid.two,
.portal-two {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.portal-cards,
.policy-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 16px;
}

.policy-card {
  padding: 20px;
}

.policy-top,
.panel-title,
.card-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 14px;
}

.policy-card h3 {
  font-size: 20px;
  margin: 14px 0 5px;
}

.policy-data {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 16px 0;
}

.policy-data span {
  border-radius: var(--radius-card);
  background: #f8fafc;
  padding: 10px;
}

.policy-data small,
.portal-list-row small,
.simple-list small,
.claim-list small {
  display: block;
  color: var(--text-muted);
}

.policy-download,
.text-link,
.card-head a,
.portal-table a {
  color: var(--accent);
  font-weight: 800;
}

.doc-list,
.simple-list,
.claim-list,
.portal-action-grid,
.notification-list {
  display: grid;
  gap: 10px;
}

.doc-list a,
.simple-list > div,
.claim-list > a,
.portal-list-row,
.notification-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-card);
  background: #ffffff;
  padding: 14px;
}

.simple-list > div {
  grid-template-columns: minmax(0, 1fr) auto;
}

.claim-list > a,
.notification-item {
  text-align: left;
}

.notification-item.unread {
  border-color: #fed7cd;
  background: #fffaf9;
}

.notification-dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: var(--brand);
}

.table-scroll {
  overflow-x: auto;
}

.portal-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 680px;
}

.portal-table th,
.portal-table td {
  padding: 13px 12px;
  border-bottom: 1px solid var(--border-light);
  text-align: left;
}

.portal-table th {
  color: var(--text-muted);
  font-size: 13px;
  background: #f8fafc;
}

.status-badge,
.badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 26px;
  border-radius: 999px;
  padding: 5px 10px;
  background: #eef2f7;
  color: #52627a;
  font-size: 12px;
  font-weight: 900;
  text-transform: capitalize;
}

.status-badge.active,
.badge.success,
.status-badge.success,
.status-badge.paid,
.status-badge.resolved,
.status-badge.signed {
  background: #eaf9f1;
  color: #127a49;
}

.status-badge.pending,
.status-badge.submitted,
.status-badge.under_review,
.badge.info {
  background: var(--soft-blue);
  color: var(--accent);
}

.status-badge.failed,
.status-badge.declined,
.badge.error {
  background: #fff0f1;
  color: #b42336;
}

.table-pay-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  border-radius: 999px;
  padding: 7px 12px;
  background: var(--brand);
  color: #ffffff !important;
  font-weight: 800;
}

.portal-form,
.portal-card form {
  display: grid;
  gap: 16px;
}

.portal-form .form-actions,
.portal-card .form-actions {
  margin-top: 0;
}

@media (max-width: 1100px) {
  .nav-wrap {
    gap: 14px;
  }

  .main-nav {
    gap: 16px;
  }

  .nav-phone {
    display: none;
  }

  .choice-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 980px) {
  .site-header {
    position: sticky;
  }

  .nav-wrap {
    grid-template-columns: minmax(0, 1fr) auto;
    padding-top: 10px;
    padding-bottom: 10px;
  }

  .mobile-nav-btn {
    display: grid;
  }

  .main-nav,
  .nav-actions {
    display: none;
  }

  .main-nav.open,
  .main-nav.open + .nav-actions {
    grid-column: 1 / -1;
    display: flex;
    width: 100%;
    align-items: stretch;
    justify-content: flex-start;
  }

  .main-nav.open {
    flex-direction: column;
    gap: 4px;
    padding-top: 10px;
    border-top: 1px solid var(--border-light);
  }

  .main-nav.open > a,
  .main-nav.open .nav-drop > button {
    width: 100%;
    text-align: left;
    padding: 11px 4px;
  }

  .main-nav.open + .nav-actions {
    flex-wrap: wrap;
    gap: 10px;
    padding: 8px 0 4px;
  }

  .drop-panel {
    position: static;
    width: 100%;
    box-shadow: none;
    margin-top: 4px;
  }

  .hero-light-grid,
  .hero-grid,
  .page-hero-grid,
  .quote-navy-banner,
  .contact-grid,
  .faq-blog-split,
  .faq-directory,
  .content-grid,
  .portal-layout,
  .portal-grid.two,
  .portal-two {
    grid-template-columns: 1fr !important;
  }

  .portal-side,
  .sticky-card {
    position: static;
  }

  .portal-side {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .container,
  .narrow {
    width: min(100% - 28px, 1180px);
  }

  .section {
    padding: 54px 0;
  }

  .hero-light-theme,
  .hero-section,
  .hero,
  .page-hero {
    padding: 52px 0 56px;
  }

  .hero-title-dark,
  .hero-title,
  .hero h1,
  .page-hero h1,
  .hero-content h1,
  .quote-page-head h1,
  .article-hero h1,
  .page-hero.compact h1 {
    font-size: 32px;
  }

  .section-head h2,
  .faq-directory-head h2,
  .faq-left h3,
  .blog-right h3,
  .wizard-step h2 {
    font-size: 26px;
  }

  .hero-subtitle-dark,
  .hero-subtitle,
  .hero-copy p,
  .page-hero p,
  .hero-content p,
  .quote-page-head p {
    font-size: 16px;
  }

  .hero-actions,
  .hero-cta-group,
  .portal-head,
  .portal-heading,
  .network-map-head,
  .faq-directory-head,
  .footer-bottom {
    flex-direction: column;
    align-items: stretch;
  }

  .btn {
    width: 100%;
  }

  .coverage-5-grid,
  .testimonial-carousel-grid,
  .stats-grid,
  .portal-stats,
  .choice-grid,
  .conditional-fields.visible,
  .review-card dl,
  .form-grid,
  .quick-quote-form .form-row-2,
  .form-row-2,
  .policy-data,
  .steps-label {
    grid-template-columns: 1fr !important;
  }

  .quote-navy-banner,
  .wizard-shell,
  .auth-card,
  .portal-card,
  .portal-panel,
  .visual-card,
  .sticky-card {
    padding: 20px;
  }

  .filter-bar {
    flex-direction: column;
    align-items: stretch;
  }

  .footer-grid,
  .portal-side {
    grid-template-columns: 1fr;
  }

  .doc-list a,
  .claim-list > a,
  .portal-list-row,
  .notification-item {
    grid-template-columns: 1fr;
    align-items: start;
  }
}

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

/* V12.2 shared-shell fixes */
.footer-brand .brand {
  display: inline-flex;
  align-items: center;
  margin-bottom: 14px;
}

.footer-brand .brand img {
  max-height: 48px;
}

.footer-grid > div,
.footer-bottom > div,
.contact-cards > div > div:last-child,
.portal-user,
.portal-user > span {
  min-width: 0;
}

.contact-cards span,
.contact-cards small,
.portal-user > span,
.rich-text,
.prose {
  overflow-wrap: anywhere;
}

.rich-text img,
.prose img {
  width: auto;
  max-width: 100%;
  border-radius: var(--radius-card);
}

.rich-text table,
.prose table {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  border-collapse: collapse;
}

.rich-text th,
.rich-text td,
.prose th,
.prose td {
  padding: 12px 14px;
  border: 1px solid var(--border-light);
  text-align: left;
}

.draft-status {
  display: block;
  min-height: 20px;
  margin-top: 8px;
  color: var(--text-muted);
  text-align: right;
}

.portal-side-title > span {
  border-radius: var(--radius-card);
  background: var(--accent);
}

@media (max-width: 980px) {
  .site-header .nav-wrap {
    align-content: center;
  }

  .main-nav.open + .nav-actions .btn {
    width: auto;
  }
}

@media (max-width: 720px) {
  .portal-top-inner {
    min-height: auto;
    padding-top: 12px;
    padding-bottom: 12px;
    flex-wrap: wrap;
  }

  .portal-top-inner > .brand {
    max-width: calc(100% - 52px);
  }

  .portal-top-inner > .brand b {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .portal-user {
    width: 100%;
    justify-content: space-between;
    gap: 8px;
  }

  .portal-user > span {
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .portal-user form,
  .portal-user .btn,
  .footer-brand .brand {
    width: auto;
  }

  .footer-bottom > div:last-child {
    justify-content: center;
    flex-wrap: wrap;
  }
}

/* ==========================================================================
   V5.7.0 ENTERPRISE CONTRAST BASELINE
   Legacy forced-black typography removed. Components now retain their intended
   light/dark palette so dark surfaces always render readable light text.
   ========================================================================== */
body,
#main {
  color: var(--text-main);
}

input::placeholder,
textarea::placeholder {
  color: #64748b;
  opacity: 1;
}

.site-footer,
.site-footer :where(h1,h2,h3,h4,h5,h6,p,a,span,b,strong,small) {
  color: #e2e8f0 !important;
}

.site-footer h4,
.site-footer .brand b {
  color: #ffffff !important;
}

.footer-bottom {
  color: #94a3b8 !important;
}

.quote-navy-banner,
.quote-navy-banner :where(h1,h2,h3,h4,h5,h6,li,label,strong,b) {
  color: #f8fafc !important;
}

.quote-navy-banner :where(p,small) {
  color: #cbd5e1 !important;
}

.cta-banner-bottom,
.cta-banner-bottom :where(h1,h2,h3,h4,h5,h6,p,a,span,b,strong) {
  color: #f8fafc !important;
}

body > .site-header,
body > main,
body > .site-footer,
#main {
  visibility: visible !important;
  opacity: 1 !important;
}


/* ==========================================================================
   V5.7.0 PUBLIC RENDER BASELINE
   Keep the document visible without overriding component layout/display modes.
   ========================================================================== */
#main,
.site-footer{
  visibility:visible;
  opacity:1;
}


/* ========================================================================== 
   V5.4.5 TRUE RESPONSIVE FRONTEND HARDENING
   Mobile/tablet rules for the public site, quote/auth/portal shells and home
   page. These rules intentionally live last so older theme rules cannot
   squeeze desktop grids into narrow viewports.
   ========================================================================== */

/* Safe fluid primitives */
html, body { max-width: 100%; overflow-x: clip; }
.site-header, #main, .site-footer, #main > section { max-width: 100%; }
.container, .narrow { max-width: 100%; }
img, video, iframe, svg { max-width: 100%; }
input, select, textarea, button { max-width: 100%; }

/* Home hero quote form was previously unstyled. */
.hero-quote-form {
  width: 100%;
  max-width: 640px;
  margin: 0 0 20px;
}
.hero-quote-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}
.hero-quote-fields .form-group { min-width: 0; }
.hero-quote-fields .form-control {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 46px;
  padding: 11px 13px;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  background: #fff;
  color: #000 !important;
  font-size: 14px;
  line-height: 1.35;
  outline: none;
  box-shadow: none;
}
.hero-quote-fields .form-control:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(37,99,235,.12);
}
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Keep flexible cards and text from forcing horizontal overflow. */
.hero-light-copy,
.hero-light-visual,
.hero-copy,
.hero-visual,
.navy-copy,
.navy-form-wrapper,
.faq-left,
.blog-right,
.footer-grid > *,
.category-card,
.testimonial-card,
.blog-mini-card,
.post-card,
.service-card,
.branch-card,
.broker-profile-card,
.portal-card,
.portal-panel { min-width: 0; }

.hero-title-dark,
.hero-title,
.hero h1,
.page-hero h1,
.section-head h2,
.faq-left h3,
.blog-right h3,
.navy-copy h2,
.cta-banner-inner h2,
.site-footer,
.site-footer * { overflow-wrap: anywhere; }

/* Desktop/tablet transition: prevent cramped five-column and header layouts. */
@media (max-width: 1180px) {
  .site-header .nav-wrap { gap: 12px !important; }
  .site-header .main-nav { gap: 14px !important; font-size: 14px; }
  .site-header .nav-actions { gap: 7px !important; }
  .site-header .nav-phone { display: none !important; }
  .site-header .btn { padding-left: 13px; padding-right: 13px; font-size: 13px; }

  .coverage-5-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .trust-badge-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Tablet/mobile navigation and major section stacking. */
@media (max-width: 980px) {
  .site-header { height: auto !important; min-height: 64px; }
  .site-header .nav-wrap {
    width: min(100% - 30px, 1180px) !important;
    min-height: 64px;
    grid-template-columns: minmax(0,1fr) auto !important;
    gap: 10px !important;
    padding: 9px 0 !important;
    align-items: center;
  }
  .site-header .brand { min-width: 0; max-width: calc(100vw - 90px); }
  .site-header .brand img { max-width: min(210px, 100%); max-height: 42px; }
  .site-header .brand > span:last-child { min-width: 0; }
  .site-header .brand b { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

  .mobile-nav-btn { display: grid !important; justify-self: end; flex: 0 0 auto; }
  .main-nav, .nav-actions { display: none !important; }
  .main-nav.open,
  .main-nav.open + .nav-actions {
    display: flex !important;
    grid-column: 1 / -1 !important;
    width: 100% !important;
  }
  .main-nav.open {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    margin-top: 4px;
    padding: 8px 0 4px !important;
    border-top: 1px solid var(--border-light);
  }
  .main-nav.open > a,
  .main-nav.open .nav-drop > button {
    width: 100% !important;
    min-height: 44px;
    padding: 10px 8px !important;
    text-align: left !important;
    border-radius: 8px;
  }
  .main-nav.open .nav-drop { width: 100%; }
  .main-nav.open .drop-panel {
    position: static !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 6px !important;
    box-shadow: none !important;
    border-radius: 8px;
  }
  .main-nav.open + .nav-actions {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 8px !important;
    padding: 6px 0 8px !important;
  }
  .main-nav.open + .nav-actions .btn,
  .main-nav.open + .nav-actions .nav-phone {
    display: flex !important;
    width: 100% !important;
    justify-content: center;
    white-space: normal;
  }

  .hero-light-grid,
  .hero-grid,
  .page-hero-grid,
  .quote-navy-banner,
  .contact-grid,
  .faq-blog-split,
  .faq-directory,
  .content-grid,
  .portal-layout,
  .portal-grid.two,
  .portal-two {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .hero-light-grid, .hero-grid, .page-hero-grid { gap: 34px !important; }
  .hero-light-copy, .hero-copy, .hero-content { max-width: 760px; }
  .hero-light-visual, .hero-visual, .hero-media { width: 100%; max-width: 760px; margin: 0 auto; }
  .hero-photo-frame, .hero-image-wrapper, .media-frame { max-height: none !important; }
  .hero-photo-frame img, .hero-image-wrapper img, .media-frame img {
    width: 100%;
    height: auto !important;
    aspect-ratio: 16 / 10;
    object-fit: cover;
  }
  .hero-backdrop-shape { width: min(420px, 80vw); height: min(420px, 80vw); right: 0; }

  .coverage-5-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  .testimonial-carousel-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  .stats-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  .footer-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  .faq-blog-split { gap: 34px !important; }
  .quote-navy-banner { gap: 30px !important; }
  .sticky-card, .portal-side { position: static !important; }

  .post-grid,
  .branch-grid,
  .people-grid,
  .broker-directory,
  .coverage-category-grid,
  .category-grid,
  .service-grid,
  .coverage-grid,
  .related-grid {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  }
}

/* Phone / narrow tablet. */
@media (max-width: 720px) {
  html { font-size: 16px; }
  body { font-size: 15px; line-height: 1.6; }
  .container, .narrow, .site-header .nav-wrap {
    width: calc(100% - 28px) !important;
    max-width: none !important;
  }

  .section { padding: 48px 0 !important; }
  .hero-light-theme,
  .hero-section,
  .hero,
  .page-hero,
  #main > .hero-light-theme,
  #main > .hero-section,
  #main > .hero,
  #main > .page-hero {
    padding: 42px 0 48px !important;
  }
  .page-hero.compact { padding: 38px 0 42px !important; }

  .hero-title-dark,
  .hero-title,
  .hero h1,
  .page-hero h1,
  .hero-content h1,
  .quote-page-head h1,
  .article-hero h1,
  .page-hero.compact h1 {
    font-size: clamp(29px, 9vw, 38px) !important;
    line-height: 1.12 !important;
    margin-bottom: 14px;
  }
  .hero-subtitle-dark,
  .hero-subtitle,
  .hero-copy p,
  .page-hero p,
  .hero-content p,
  .quote-page-head p { font-size: 16px !important; margin-bottom: 22px; }

  .section-head { margin-bottom: 28px; }
  .section-head h2,
  .faq-directory-head h2,
  .faq-left h3,
  .blog-right h3,
  .wizard-step h2,
  .navy-copy h2 { font-size: clamp(24px, 7vw, 30px) !important; }

  .hero-quote-form { max-width: none; }
  .hero-quote-fields { grid-template-columns: minmax(0,1fr) !important; gap: 10px; }
  .hero-quote-fields .form-control { min-height: 48px; font-size: 16px; }
  .hero-actions, .hero-cta-group { flex-direction: column; align-items: stretch; gap: 10px; }
  .hero-actions .btn, .hero-cta-group .btn { width: 100% !important; }
  .hero-canadian-tag { align-items: flex-start; line-height: 1.45; }

  .hero-light-grid, .hero-grid, .page-hero-grid { gap: 26px !important; }
  .hero-backdrop-shape { display: none; }
  .hero-photo-frame, .hero-image-wrapper, .media-frame { border-radius: 14px !important; }
  .hero-photo-frame img, .hero-image-wrapper img, .media-frame img { aspect-ratio: 4 / 3; }

  .trust-strip { padding: 28px 0; }
  .trust-strip-bar { flex-direction: column; align-items: stretch; gap: 18px; }
  .rating-badge, .trustpilot-badge { justify-content: center; text-align: center; }
  .trust-logos, .trust-strip-inner { width: 100%; gap: 10px; }
  .logo-text, .trust-logo-pill { flex: 1 1 calc(50% - 10px); text-align: center; font-size: 13px; padding: 10px 8px; }

  .coverage-5-grid,
  .testimonial-carousel-grid,
  .post-grid,
  .branch-grid,
  .people-grid,
  .broker-directory,
  .coverage-category-grid,
  .category-grid,
  .service-grid,
  .coverage-grid,
  .related-grid,
  .trust-badge-grid,
  .portal-stats,
  .choice-grid,
  .conditional-fields.visible,
  .review-card dl,
  .form-grid,
  .quick-quote-form .form-row-2,
  .form-row-2,
  .policy-data,
  .steps-label {
    grid-template-columns: minmax(0,1fr) !important;
  }

  .category-card, .service-card, .person-card, .branch-card, .broker-profile-card,
  .testimonial-card, .faq-service-card, .form-card, .visual-card, .sticky-card,
  .portal-card, .portal-panel, .policy-card, .network-map-card, .auth-card {
    padding: 18px !important;
  }
  .branch-card, .post-card { padding: 0 !important; }

  .quote-navy-banner { padding: 22px !important; gap: 24px !important; }
  .navy-checklist { gap: 9px; }
  .quick-quote-form input, .quick-quote-form select { min-height: 48px; font-size: 16px !important; }
  .quick-quote-form .btn { width: 100% !important; }

  .stats-counter-strip { padding: 28px 0; }
  .stats-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 14px !important; }
  .stat-item { min-width: 0; }

  .faq-blog-split { gap: 30px !important; }
  .faq-accordion details, .faq-list details { padding: 14px !important; }
  .faq-accordion summary, .faq-list summary { font-size: 15px; line-height: 1.4; }

  .cta-banner-bottom { padding: 58px 0 !important; }
  .cta-banner-inner p { font-size: 16px; margin-bottom: 24px; }
  .cta-banner-inner .btn { width: 100%; max-width: 360px; }

  .footer-grid { grid-template-columns: minmax(0,1fr) !important; gap: 28px !important; }
  .site-footer { padding: 50px 0 24px !important; }
  .footer-bottom { flex-direction: column !important; align-items: center !important; text-align: center; gap: 12px; margin-top: 34px; }
  .footer-bottom > div:last-child { justify-content: center; flex-wrap: wrap; }

  .wizard-shell, .auth-card, .portal-card, .portal-panel, .visual-card, .sticky-card { padding: 18px !important; }
  .wizard-actions, .result-actions, .form-actions { flex-direction: column; align-items: stretch; }
  .wizard-actions .btn, .result-actions .btn, .form-actions .btn { width: 100%; }
  .portal-table { min-width: 620px; }
  .table-scroll { width: 100%; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .network-map, .branch-detail-map, .branch-detail-map iframe { min-height: 280px; height: 300px; }
}

/* Small phones. */
@media (max-width: 480px) {
  .container, .narrow, .site-header .nav-wrap { width: calc(100% - 22px) !important; }
  .site-header .brand img { max-width: 165px; }
  .site-header .brand-mark { width: 38px; height: 38px; }
  .mobile-nav-btn { width: 40px; height: 40px; }

  .section { padding: 42px 0 !important; }
  .hero-light-theme,
  .hero-section,
  .hero,
  .page-hero,
  #main > .hero-light-theme,
  #main > .hero-section,
  #main > .hero,
  #main > .page-hero { padding: 34px 0 40px !important; }

  .hero-title-dark,
  .hero-title,
  .hero h1,
  .page-hero h1,
  .hero-content h1,
  .quote-page-head h1,
  .article-hero h1,
  .page-hero.compact h1 { font-size: 29px !important; }

  .logo-text, .trust-logo-pill { flex-basis: 100%; }
  .stats-grid { grid-template-columns: minmax(0,1fr) !important; }
  .stat-item { justify-content: flex-start; }

  .blog-mini-card { flex-direction: column; align-items: stretch; }
  .blog-img { width: 100%; height: auto; aspect-ratio: 16 / 9; }
  .blog-img img { width: 100%; height: 100%; object-fit: cover; }

  .quote-navy-banner { padding: 18px !important; }
  .category-card, .testimonial-card, .faq-service-card { padding: 16px !important; }
  .btn.xl { padding-left: 16px !important; padding-right: 16px !important; font-size: 15px !important; }

  .footer-brand .brand { max-width: 100%; }
  .footer-grid h4 { margin-bottom: 10px; }
}

/* ========================================================================== 
   SAFEX v5.4.6 — HOMEPAGE 21-IMAGE CONTENT IMPLEMENTATION
   Uses local optimized imagery while preserving the responsive v5.4.5 shell.
   ========================================================================== */
.home-image-hero .hero-light-visual{align-self:stretch;min-height:440px}
.home-photo-frame{height:100%;min-height:440px;max-height:none!important}
.home-photo-frame img{width:100%;height:100%!important;aspect-ratio:auto!important;object-fit:cover;object-position:center 42%}
.home-hero-badge{position:absolute;z-index:4;left:22px;right:22px;bottom:22px;background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.9);box-shadow:0 12px 32px rgba(11,27,61,.14);border-radius:14px;padding:13px 16px;display:flex;justify-content:space-between;gap:12px;align-items:center}
.home-hero-badge b{color:#000!important;font-size:14px}
.home-hero-badge span{color:#000!important;font-size:12px;font-weight:700;text-align:right}

.home-coverage-grid{align-items:stretch}
.home-coverage-card{padding:0!important;overflow:hidden!important;align-items:stretch!important;text-align:left!important;justify-content:flex-start!important;display:flex!important;flex-direction:column!important}
.home-card-media{width:100%;aspect-ratio:4/3;overflow:hidden;background:#e9eef5}
.home-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.home-coverage-card:hover .home-card-media img{transform:scale(1.035)}
.home-card-body{padding:18px 18px 20px;display:flex;flex-direction:column;align-items:flex-start;flex:1;width:100%}
.home-card-body .cat-icon-box{width:42px;height:42px;margin:-38px 0 12px;position:relative;z-index:2;background:#fff!important;box-shadow:0 6px 18px rgba(11,27,61,.12);border:1px solid #e2e8f0}
.home-card-body h3,.home-card-body p,.home-card-body span{color:#000!important}
.home-card-body p{margin-bottom:12px!important}
.home-card-body .cat-link{margin-top:auto}

.home-why-section{background:#fff!important}
.home-why-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.home-image-info-card{border:1px solid #e2e8f0;border-radius:16px;background:#fff;overflow:hidden;box-shadow:0 10px 28px rgba(11,27,61,.055);min-width:0}
.home-image-info-media{aspect-ratio:16/10;overflow:hidden;background:#eef3f8}
.home-image-info-media img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.home-image-info-card:hover .home-image-info-media img{transform:scale(1.03)}
.home-image-info-copy{padding:22px}
.home-image-info-copy h3{font-size:20px;margin-bottom:8px;color:#000!important}
.home-image-info-copy p{font-size:14px;color:#000!important;margin:0}

/* v5.4.7 — personalized quote image alignment only */
.home-quote-banner{align-items:start;grid-template-areas:"copy form" "photo photo"}
.home-quote-banner .navy-copy{grid-area:copy;display:flex;flex-direction:column;min-width:0}
.home-quote-banner .navy-form-wrapper{grid-area:form;align-self:start;min-width:0}
.home-quote-photo{grid-area:photo;width:100%;height:clamp(280px,24vw,390px);margin-top:0;border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,.16);background:#10264d}
.home-quote-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 48%}

@media (max-width:1024px){
  .home-quote-banner{grid-template-columns:minmax(0,1fr)!important;grid-template-areas:"copy" "form" "photo";gap:28px!important}
  .home-quote-photo{height:auto;aspect-ratio:16/9}
}

@media (max-width:600px){
  .home-quote-photo{aspect-ratio:4/3}
}

.home-testimonial-card{padding:0!important;overflow:hidden!important;display:flex!important;flex-direction:column!important}
.home-testimonial-media{aspect-ratio:16/10;overflow:hidden;background:#e9eef5}
.home-testimonial-media img{width:100%;height:100%;object-fit:cover}
.home-testimonial-copy{padding:24px;display:flex;flex-direction:column;flex:1}
.home-testimonial-copy p{color:#000!important}
.home-testimonial-copy .reviewer-footer{margin-top:auto}
.home-review-type{font-size:11px!important;font-weight:800;color:#000!important;background:#eef6ff;padding:6px 9px;border-radius:999px;text-align:center}

.home-stats-section{padding:42px 0!important;background:#f8fbff!important}
.stats-showcase{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:28px;align-items:center}
.stats-visual{aspect-ratio:16/10;border-radius:16px;overflow:hidden;box-shadow:0 14px 36px rgba(11,27,61,.1);background:#e9eef5}
.stats-visual img{width:100%;height:100%;object-fit:cover}
.stats-showcase .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important}
.stats-showcase .stat-item{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:18px;min-height:108px;box-shadow:0 8px 20px rgba(11,27,61,.04)}
.stats-showcase .stat-item b,.stats-showcase .stat-item span{color:#000!important}

.home-support-section{background:#fff!important}
.home-support-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.home-support-card{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:0;background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden;box-shadow:0 10px 28px rgba(11,27,61,.055);min-width:0}
.home-support-card>img{width:100%;height:100%;min-height:260px;object-fit:cover}
.home-support-card>div{padding:24px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.home-support-card h3{font-size:20px;margin-bottom:9px;color:#000!important}
.home-support-card p{font-size:14px;margin-bottom:14px;color:#000!important}

.home-faq-blog{align-items:start}
.home-faq-photo{width:100%;aspect-ratio:16/9;border-radius:14px;overflow:hidden;margin-bottom:22px;background:#e9eef5;box-shadow:0 10px 24px rgba(11,27,61,.07)}
.home-faq-photo img{width:100%;height:100%;object-fit:cover}
.home-faq-blog .faq-left>h3,.home-faq-blog .blog-right>h3{color:#000!important}
.home-blog-stack{gap:14px}
.home-blog-card{padding:0!important;overflow:hidden;align-items:stretch!important}
.home-blog-card .blog-img{width:150px;height:auto;min-height:116px;border-radius:0!important;background:#e9eef5}
.home-blog-card .blog-img img{width:100%;height:100%;object-fit:cover}
.home-blog-card .blog-content{padding:15px 16px}
.home-blog-card .blog-content h4,.home-blog-card .blog-content small{color:#000!important}

.home-final-cta{min-height:360px;background-size:cover;background-position:center 42%;display:flex!important;align-items:center}
.home-final-cta:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,18,38,.12),rgba(7,18,38,.06));pointer-events:none}
.home-final-cta .cta-banner-inner{position:relative;z-index:2}

@media (max-width:1180px){
  .home-coverage-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .home-support-card{grid-template-columns:1fr}
  .home-support-card>img{height:auto;min-height:0;aspect-ratio:16/9}
}

@media (max-width:980px){
  .home-image-hero .hero-light-visual{min-height:0}
  .home-photo-frame{min-height:0;height:auto}
  .home-photo-frame img{height:auto!important;aspect-ratio:16/10!important}
  .home-why-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats-showcase{grid-template-columns:1fr;gap:22px}
  .stats-visual{max-width:760px;width:100%;margin:0 auto}
  .home-support-grid{grid-template-columns:1fr}
}

@media (max-width:720px){
  .home-hero-badge{position:relative;left:auto;right:auto;bottom:auto;margin:12px 0 0;flex-direction:column;align-items:flex-start}
  .home-hero-badge span{text-align:left}
  .home-coverage-grid{grid-template-columns:1fr!important}
  .home-card-media{aspect-ratio:16/10}
  .home-card-body{padding:18px!important}
  .home-why-grid{grid-template-columns:1fr}
  .home-image-info-copy{padding:18px}
  .home-testimonial-copy{padding:18px}
  .stats-showcase .stats-grid{grid-template-columns:1fr!important}
  .stats-showcase .stat-item{min-height:0}
  .home-support-card>div{padding:20px}
  .home-blog-card{display:grid!important;grid-template-columns:130px minmax(0,1fr)!important}
  .home-blog-card .blog-img{width:100%!important;min-height:116px;aspect-ratio:auto!important}
  .home-final-cta{min-height:320px;background-position:center}
}

@media (max-width:480px){
  .home-photo-frame img{aspect-ratio:4/3!important}
  .home-card-media,.home-image-info-media,.home-testimonial-media,.stats-visual,.home-faq-photo{aspect-ratio:4/3}
  .home-blog-card{grid-template-columns:1fr!important}
  .home-blog-card .blog-img{aspect-ratio:16/9!important;min-height:0}
  .home-support-card>img{aspect-ratio:4/3}
  .home-review-type{display:none}
}

/* =========================================================
   SAFEX v5.4.8 — Car Insurance 9-image content implementation
   Scoped to service-page image classes; other pages stay unchanged.
   ========================================================= */
.service-hero-photo,
.service-content-photo,
.sticky-service-photo,
.related-card-image {
  overflow: hidden;
  background: #eef4fb;
  border: 1px solid var(--border-light);
}

.service-hero-photo {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 20px;
  box-shadow: 0 18px 48px rgba(11, 27, 61, .14);
}

.service-hero-photo img,
.service-content-photo img,
.sticky-service-photo img,
.related-card-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.service-content-photo {
  width: 100%;
  aspect-ratio: 16 / 9;
  margin: 0 0 22px;
  border-radius: 18px;
  box-shadow: 0 12px 30px rgba(11, 27, 61, .08);
}

.service-content-photo-wide {
  margin-top: 4px;
}

.sticky-service-photo {
  aspect-ratio: 4 / 3;
  border-radius: 14px;
  margin: -8px -8px 20px;
}

.related-card-with-image {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  gap: 0 !important;
  padding: 0 !important;
  overflow: hidden;
  min-width: 0;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.related-card-with-image:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 34px rgba(11, 27, 61, .10);
  border-color: #bfdbfe;
}

.related-card-image {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  border: 0;
  border-radius: 0;
}

.related-card-copy {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 18px;
  min-width: 0;
}

.related-card-copy b {
  margin: 0 !important;
  min-width: 0;
}

.related-card-copy > span {
  flex: 0 0 auto;
  color: var(--accent);
  font-weight: 800;
}

@media (max-width: 980px) {
  .service-hero-photo {
    max-width: 760px;
    margin: 0 auto;
  }
  .sticky-service-photo {
    aspect-ratio: 16 / 9;
    margin: -4px -4px 20px;
  }
}

@media (max-width: 720px) {
  .service-hero-photo,
  .service-content-photo,
  .sticky-service-photo {
    aspect-ratio: 4 / 3;
    border-radius: 14px;
  }
  .service-content-photo {
    margin-bottom: 18px;
  }
  .related-card-image {
    aspect-ratio: 4 / 3;
  }
  .related-card-copy {
    padding: 16px;
  }
}

/* ==========================================================================
   HOME TRUST STRIP — compact premium layout + responsive hardening
   Scoped to .safex-trust-strip so no other page/component is affected.
   ========================================================================== */
.safex-trust-strip {
  background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%) !important;
  padding: 30px 0 34px !important;
  border-top: 1px solid #eef2f7;
  border-bottom: 1px solid #e2e8f0 !important;
}

.safex-trust-strip > .container {
  width: min(1180px, calc(100% - 40px)) !important;
  margin-inline: auto;
}

.safex-trust-strip .trust-strip-title {
  margin: 0 0 17px !important;
  text-align: center;
  color: var(--ink) !important;
  font-size: clamp(18px, 1.55vw, 22px) !important;
  font-weight: 850;
  line-height: 1.25;
  letter-spacing: -0.025em !important;
}

.safex-trust-strip .trust-strip-bar {
  display: grid !important;
  grid-template-columns: minmax(165px, 185px) minmax(0, 1fr) minmax(185px, 205px);
  align-items: center;
  gap: 18px;
  width: 100%;
  padding: 14px;
  border: 1px solid #e2e8f0;
  border-radius: 20px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 12px 34px rgba(11, 27, 61, .055);
}

.safex-trust-strip .rating-badge,
.safex-trust-strip .trustpilot-badge {
  min-height: 58px;
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 10px 12px;
  border-radius: 14px;
  white-space: nowrap;
  line-height: 1;
}

.safex-trust-strip .rating-badge {
  border: 1px solid #fde7be;
  background: #fffaf0;
  color: #111827 !important;
  font-size: 14px !important;
  font-weight: 750;
}

.safex-trust-strip .rating-badge strong {
  color: #0b1b3d !important;
  font-size: 16px;
  font-weight: 900;
}

.safex-trust-strip .trust-rating-label {
  color: #475569 !important;
  font-weight: 700;
}

.safex-trust-strip .rating-badge .stars {
  color: #f59e0b !important;
  font-size: 13px !important;
  letter-spacing: 1px !important;
}

.safex-trust-strip .trust-logos {
  min-width: 0;
  width: 100% !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
  gap: 10px !important;
  flex: none !important;
}

.safex-trust-strip .logo-text {
  min-width: 0;
  min-height: 58px;
  display: flex !important;
  align-items: center;
  justify-content: center;
  padding: 9px 10px !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 14px !important;
  background: #ffffff !important;
  color: #0f172a !important;
  box-shadow: 0 5px 16px rgba(11, 27, 61, .045) !important;
  text-align: center;
  white-space: nowrap;
  line-height: 1;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.safex-trust-strip .logo-text:hover {
  transform: translateY(-2px);
  border-color: #cbd5e1 !important;
  box-shadow: 0 9px 20px rgba(11, 27, 61, .075) !important;
}

.safex-trust-strip .logo-text.intact {
  font-size: 20px !important;
  font-weight: 900;
  letter-spacing: -0.055em !important;
}

.safex-trust-strip .logo-text.economical {
  gap: 4px;
  font-size: 17px !important;
  font-weight: 900;
  letter-spacing: -0.04em !important;
}

.safex-trust-strip .logo-text.economical > span {
  color: inherit !important;
  font: inherit;
  letter-spacing: inherit !important;
}

.safex-trust-strip .logo-text.economical sup {
  position: static;
  align-self: flex-start;
  margin-top: 7px;
  color: #0f172a;
  font-size: 7px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: .02em !important;
}

.safex-trust-strip .logo-text.cooperators {
  font-size: 15px !important;
  font-weight: 900;
  letter-spacing: -0.035em !important;
}

.safex-trust-strip .logo-text.aviva {
  font-size: 19px !important;
  font-weight: 900;
  letter-spacing: .01em !important;
}

.safex-trust-strip .trustpilot-badge {
  border: 1px solid #d8f3e5;
  background: #f2fbf6 !important;
  color: #0f172a !important;
  font-size: 13px !important;
  font-weight: 800;
}

.safex-trust-strip .trustpilot-badge .tp-stars {
  color: #00b67a !important;
  font-size: 12px !important;
  letter-spacing: .8px !important;
}

.safex-trust-strip .trustpilot-badge strong {
  color: #0f172a !important;
  font-size: 13px;
  font-weight: 900;
}

@media (max-width: 1040px) {
  .safex-trust-strip .trust-strip-bar {
    grid-template-columns: minmax(150px, 170px) minmax(0, 1fr) minmax(170px, 190px);
    gap: 12px;
    padding: 12px;
  }

  .safex-trust-strip .trust-logos {
    gap: 8px !important;
  }

  .safex-trust-strip .logo-text {
    min-height: 54px;
    padding-inline: 7px !important;
  }

  .safex-trust-strip .logo-text.intact { font-size: 18px !important; }
  .safex-trust-strip .logo-text.economical { font-size: 14px !important; gap: 2px; }
  .safex-trust-strip .logo-text.cooperators { font-size: 12px !important; }
  .safex-trust-strip .logo-text.aviva { font-size: 17px !important; }
}

@media (max-width: 860px) {
  .safex-trust-strip {
    padding: 26px 0 30px !important;
  }

  .safex-trust-strip .trust-strip-title {
    margin-bottom: 15px !important;
  }

  .safex-trust-strip .trust-strip-bar {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 10px;
  }

  .safex-trust-strip .rating-badge {
    grid-column: 1;
    grid-row: 1;
  }

  .safex-trust-strip .trustpilot-badge {
    grid-column: 2;
    grid-row: 1;
  }

  .safex-trust-strip .trust-logos {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  .safex-trust-strip .logo-text.intact { font-size: 19px !important; }
  .safex-trust-strip .logo-text.economical { font-size: 16px !important; }
  .safex-trust-strip .logo-text.cooperators { font-size: 14px !important; }
  .safex-trust-strip .logo-text.aviva { font-size: 18px !important; }
}

@media (max-width: 640px) {
  .safex-trust-strip > .container {
    width: calc(100% - 28px) !important;
  }

  .safex-trust-strip .trust-strip-title {
    font-size: 18px !important;
    padding-inline: 8px;
  }

  .safex-trust-strip .trust-strip-bar {
    grid-template-columns: minmax(0, 1fr);
    padding: 10px;
    border-radius: 17px;
  }

  .safex-trust-strip .rating-badge,
  .safex-trust-strip .trustpilot-badge,
  .safex-trust-strip .trust-logos {
    grid-column: 1;
  }

  .safex-trust-strip .rating-badge {
    grid-row: 1;
  }

  .safex-trust-strip .trust-logos {
    grid-row: 2;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .safex-trust-strip .trustpilot-badge {
    grid-row: 3;
  }

  .safex-trust-strip .rating-badge,
  .safex-trust-strip .trustpilot-badge {
    min-height: 52px;
  }

  .safex-trust-strip .logo-text {
    min-height: 52px;
    flex-basis: auto !important;
  }
}

@media (max-width: 380px) {
  .safex-trust-strip .rating-badge {
    flex-wrap: wrap;
    row-gap: 5px;
  }

  .safex-trust-strip .trustpilot-badge {
    white-space: normal;
    text-align: center;
  }

  .safex-trust-strip .logo-text.economical {
    font-size: 14px !important;
  }

  .safex-trust-strip .logo-text.cooperators {
    font-size: 12px !important;
  }
}

/* ==========================================================================
   SAFEX v5.7.0 — PREMIUM CORPORATE / ENTERPRISE THEME HARDENING
   High contrast, calm interaction, accessibility, performance and responsive
   safeguards. This intentionally lives last to neutralize old conflicting CSS.
   ========================================================================== */
:root{
  --enterprise-focus:#2563eb;
  --enterprise-focus-ring:rgba(37,99,235,.24);
  --enterprise-dark:#071226;
  --enterprise-dark-2:#0b1b3d;
  --enterprise-light:#f8fafc;
  --enterprise-muted-light:#cbd5e1;
}

html{
  color-scheme:light;
  scroll-behavior:auto !important;
}

body{
  min-width:320px;
  overflow-x:hidden;
}

@supports (overflow:clip){
  html,body{overflow-x:clip}
}

::selection{
  background:#dbeafe;
  color:#0b1b3d;
}

:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:3px solid var(--enterprise-focus-ring) !important;
  outline-offset:2px !important;
}

:where(input,select,textarea){
  min-height:44px;
}

textarea{
  min-height:120px;
  resize:vertical;
}

/* Disable decorative hover movement while keeping subtle color/border feedback. */
#main :where(.btn,[class*="-btn"],[class*="-card"],a,img):hover,
#main :where(.btn,[class*="-btn"],[class*="-card"],a,img):focus-visible{
  transform:none !important;
}

#main :where(img,[class*="-media"] img,[class*="-photo"] img){
  transition:none !important;
}

#main :where([class*="-card"]:hover img,[class*="-media"]:hover img,[class*="-photo"]:hover img){
  transform:none !important;
}

#main :where(.btn,[class*="-btn"],a,button,input,select,textarea,summary){
  transition-property:color,background-color,border-color,box-shadow !important;
  transition-duration:.18s !important;
  transition-timing-function:ease !important;
}

.drop-panel{
  animation:none !important;
}

#main,
#main > section{
  animation:none !important;
}

/* Shared dark surfaces: explicit AA/AAA-friendly light typography. */
.site-footer{
  background:var(--enterprise-dark) !important;
  color:var(--enterprise-muted-light) !important;
}

.site-footer :where(p,a,span,small){
  color:var(--enterprise-muted-light) !important;
}

.site-footer :where(h1,h2,h3,h4,h5,h6,b,strong){
  color:#ffffff !important;
}

.footer-bottom,
.footer-bottom :where(a,span,div){
  color:#94a3b8 !important;
}

.quote-navy-banner{
  background:var(--enterprise-dark-2) !important;
}

.quote-navy-banner :where(h1,h2,h3,h4,h5,h6,b,strong,li,label){
  color:#ffffff !important;
}

.quote-navy-banner :where(p,small){
  color:#cbd5e1 !important;
}

/* Light panels nested inside dark sections stay dark-on-light. */
.quote-navy-banner :where(.quick-quote-form input,.quick-quote-form select,.form-card,.quote-card),
#main :where(.form-card,.quote-card,.auth-card,.portal-card,.portal-panel){
  color:#0f172a !important;
}

#main :where(.form-card,.quote-card,.auth-card,.portal-card,.portal-panel)
  :where(h1,h2,h3,h4,h5,h6,b,strong,label,legend){
  color:#0f172a !important;
}

#main :where(.form-card,.quote-card,.auth-card,.portal-card,.portal-panel)
  :where(p,small,span){
  color:#475569;
}

/* Stable corporate surfaces: flat and calm, no "jumping" cards. */
:where(.category-card,.service-card,.person-card,.post-card,.branch-card,
       .broker-profile-card,.testimonial-card,.faq-service-card,.form-card,
       .portal-card,.portal-panel){
  box-shadow:0 8px 24px rgba(11,27,61,.045) !important;
}

:where(.category-card,.service-card,.person-card,.post-card,.branch-card,
       .broker-profile-card,.testimonial-card,.faq-service-card,.form-card,
       .portal-card,.portal-panel):hover{
  transform:none !important;
  box-shadow:0 10px 26px rgba(11,27,61,.065) !important;
}

/* Remove GPU-heavy blur effects. */
:where(.home-hero-badge,.sbi-float-card){
  -webkit-backdrop-filter:none !important;
  backdrop-filter:none !important;
}

/* Form readability + autofill consistency. */
:where(input,select,textarea){
  color:#0f172a;
  background-color:#ffffff;
  caret-color:#0f172a;
}

:where(input,textarea)::placeholder{
  color:#64748b !important;
  opacity:1 !important;
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
select:-webkit-autofill{
  -webkit-text-fill-color:#0f172a !important;
  box-shadow:0 0 0 1000px #ffffff inset !important;
  transition:background-color 0s !important;
}

/* Tables and long content cannot break the viewport. */
:where(.table-scroll,.table-wrap){
  max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}

:where(td,th,.post-card,.branch-card,.broker-profile-card,.portal-card,.portal-panel){
  overflow-wrap:anywhere;
}

@media (max-width:980px){
  .site-header{
    box-shadow:0 1px 0 rgba(15,23,42,.08) !important;
  }

  .main-nav.open,
  .main-nav.open + .nav-actions{
    background:#ffffff;
  }

  .main-nav.open .drop-panel{
    animation:none !important;
  }
}

@media (max-width:720px){
  .btn,
  [class*="-btn"]{
    min-height:44px;
  }

  .site-footer{
    padding-top:46px !important;
  }
}

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


/* ========================================================================== 
   SAFEX v5.7.1 — DARK BACKGROUND HEADING CONTRAST FIX
   Final high-specificity safeguard for every known dark public surface.
   Keeps light cards/forms untouched while forcing headings on navy/dark
   sections to crisp white across desktop, tablet and mobile.
   ========================================================================== */
#main :where(
  .quote-navy-banner,
  .cta-banner-bottom,
  .home-final-cta,
  .sfx-moment-feature,
  .sfx-quote-panel,
  .sfx-network-card.dark,
  .sfx-final,
  .about-advantage-wrap,
  .about-broker-card,
  .about-cta,
  .bd-hero-panel,
  .bd-cta-card,
  .cr-hero-card,
  .cr-cta-card,
  .sb-hero-card,
  .sb-cta,
  .bn-finder-card,
  .bn-support-copy,
  .pp-hero-card,
  .pp-contact,
  .ai-section.navy,
  .ai-save,
  .ai-final-card,
  .hi-section.navy,
  .hi-guide,
  .hi-final-card,
  .li-section.navy,
  .li-guide,
  .li-final-card,
  .ti-section.navy,
  .ti-check-card,
  .sbi-section.navy,
  .sbi-check-card,
  .sbi-final-card,
  .media-frame[style*="#142347"],
  .media-frame[style*="#0B1B3D"],
  .media-frame[style*="#0b1b3d"]
) :where(h1,h2,h3,h4,h5,h6){
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  text-shadow:none !important;
}

/* Scoped descendants that use their own heading wrappers on dark surfaces. */
#main :where(
  .navy-copy,
  .bd-hero-panel,
  .bd-cta-copy,
  .cr-hero-card,
  .cr-cta-copy,
  .sb-hero-card,
  .sb-cta-inner,
  .bn-finder-card,
  .bn-support-copy,
  .pp-hero-card,
  .pp-contact,
  .sfx-moment-feature,
  .sfx-quote-copy,
  .sfx-network-card.dark,
  .sfx-final-copy,
  .ai-section.navy,
  .ai-save,
  .ai-final-card,
  .hi-section.navy,
  .hi-guide,
  .hi-final-card,
  .li-section.navy,
  .li-guide,
  .li-final-card,
  .ti-section.navy,
  .ti-check-card,
  .sbi-section.navy,
  .sbi-check-card,
  .sbi-final-card,
  .about-advantage-copy,
  .about-broker-card,
  .about-cta
) > :where(h1,h2,h3,h4,h5,h6),
#main :where(
  .navy-copy,
  .bd-hero-panel,
  .bd-cta-copy,
  .cr-hero-card,
  .cr-cta-copy,
  .sb-hero-card,
  .sb-cta-inner,
  .bn-finder-card,
  .bn-support-copy,
  .pp-hero-card,
  .pp-contact,
  .sfx-moment-feature,
  .sfx-quote-copy,
  .sfx-network-card.dark,
  .sfx-final-copy,
  .ai-section.navy,
  .ai-save,
  .ai-final-card,
  .hi-section.navy,
  .hi-guide,
  .hi-final-card,
  .li-section.navy,
  .li-guide,
  .li-final-card,
  .ti-section.navy,
  .ti-check-card,
  .sbi-section.navy,
  .sbi-check-card,
  .sbi-final-card,
  .about-advantage-copy,
  .about-broker-card,
  .about-cta
) :where(h1,h2,h3,h4,h5,h6){
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
}
