/*
Theme Name: SecurityAlarm.ca Child
Description: Child theme for security-alarm.ca — The Canadian Home Security Guide. Editorial-trust design system, phone-first conversion.
Author: David Louis
Template: astra
Version: 3.2.0
*/

:root{
  /* Brand palette v2 — red-forward Canadian (multi-shade maple red +
     light slate mist, deliberately NOT stars-and-stripes navy).
     Logged in DECISIONS.md; do not change without updating there. */
  --sa-red-deep: #7A1024;    /* deep maple — hero band, dark accents */
  --sa-red-rich: #A31335;    /* hero gradient end, emphasis */
  --sa-red: #D7263D;         /* conversion accent — CALL CTAs ONLY */
  --sa-red-hover: #B31237;
  --sa-red-tint: #FBEDEF;    /* light red tint surface */
  --sa-ink: #1D2126;         /* near-black charcoal — call bar, footer, headings */
  --sa-ink-soft: #2A3038;
  --sa-slate: #5B6770;       /* muted text */
  --sa-mist: #EEF3F6;        /* light slate-blue surface (non-USA blue) */
  --sa-mist-deep: #DCE6EC;
  --sa-border: #D8E2E8;
  --sa-bg: #FFFFFF;
  --sa-text: #22262B;

  --sa-font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --sa-radius: 12px;
  --sa-radius-sm: 8px;
  --sa-shadow: 0 1px 2px rgba(29,33,38,.06), 0 8px 24px rgba(29,33,38,.08);
  --sa-shadow-lift: 0 2px 4px rgba(29,33,38,.08), 0 14px 34px rgba(29,33,38,.14);
  --sa-maxw: 1180px;
}

/* ---------- Base typography (bigger, modern) ---------- */
body{
  font-family: var(--sa-font);
  color: var(--sa-text);
  background: var(--sa-bg);
  font-size: 18px;
  line-height: 1.7;
}

h1,h2,h3,h4{
  font-family: var(--sa-font);
  color: var(--sa-ink);
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -0.015em;
}
h1{ font-size: clamp(34px, 5vw, 52px); }
h2{ font-size: clamp(26px, 3.2vw, 34px); margin-top: 1.4em; }
h3{ font-size: clamp(20px, 2.4vw, 24px); }

.entry-content > p{ max-width: 76ch; }

a{ color: var(--sa-red-hover); transition: color .18s ease; }
a:hover{ color: var(--sa-red); }

/* ---------- Logo ---------- */
.site-logo-img .custom-logo{
  max-width: 290px;
  width: 290px;
  height: auto;
}
.ast-desktop .main-header-menu{
  flex-wrap: nowrap;
}
@media (max-width: 680px){
  .site-logo-img .custom-logo{ max-width: 230px; width: 230px; }
}

/* ---------- Masthead logotype ---------- */
.site-title{
  font-weight: 800;
  letter-spacing: -0.02em;
}
.site-title a{ color: var(--sa-ink) !important; text-decoration: none; }
.site-title a:hover{ color: var(--sa-red-hover) !important; }
.site-description{
  color: var(--sa-slate);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 700;
}

/* ---------- Modern nav: animated underline, smooth hover ---------- */
.main-header-menu .menu-link{
  position: relative;
  font-weight: 600;
  font-size: 16px;
  white-space: nowrap;
  transition: color .18s ease;
}
/* Last item ("Get a Quote") as a nav pill so the conversion path is always visible */
.ast-desktop .main-header-menu > .menu-item:last-child{
  display: flex;
  align-items: center;
}
.ast-desktop .main-header-menu > .menu-item:last-child > .menu-link{
  border: 2px solid var(--sa-red);
  border-radius: 999px;
  color: var(--sa-red-hover) !important;
  line-height: 1.2 !important;
  padding: 10px 22px !important;
  margin-left: 8px;
  transition: background .18s ease, color .18s ease;
}
.ast-desktop .main-header-menu > .menu-item:last-child > .menu-link:hover{
  background: var(--sa-red);
  color: #fff !important;
}
.ast-desktop .main-header-menu > .menu-item:last-child > .menu-link::after{
  display: none;
}
.main-header-menu > .menu-item > .menu-link::after{
  content: "";
  position: absolute;
  left: 14px;
  right: 14px;
  bottom: 8px;
  height: 2px;
  background: var(--sa-red);
  border-radius: 2px;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .22s ease;
}
.main-header-menu > .menu-item:hover > .menu-link::after,
.main-header-menu > .menu-item.current-menu-item > .menu-link::after{
  transform: scaleX(1);
}
.main-header-menu > .menu-item:hover > .menu-link,
.main-header-menu > .menu-item.current-menu-item > .menu-link{
  color: var(--sa-red-hover) !important;
}
.ast-primary-header-bar{
  box-shadow: 0 1px 0 var(--sa-border), 0 6px 18px rgba(29,33,38,.05);
}

/* ---------- Sticky call bar ---------- */
.sa-call-bar{
  position: sticky;
  top: 0;
  z-index: 9999;
  background: var(--sa-ink);
  color: #fff;
  padding: 10px 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  font-weight: 600;
  font-size: 15px;
  letter-spacing: 0.01em;
}
.sa-call-bar a.sa-call-link{
  color: #fff;
  background: var(--sa-red);
  padding: 9px 20px;
  border-radius: 999px;
  text-decoration: none;
  white-space: nowrap;
  font-weight: 700;
  box-shadow: 0 2px 8px rgba(215,38,61,.35);
  transition: background .18s ease, transform .18s ease, box-shadow .18s ease;
}
.sa-call-bar a.sa-call-link:hover{
  background: var(--sa-red-hover);
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(215,38,61,.45);
}

.sa-lang-switch{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-left: 10px;
  font-size: 13px;
  color: rgba(255,255,255,.45);
}
.sa-lang-switch a{
  color: rgba(255,255,255,.65);
  text-decoration: none;
  font-weight: 700;
  letter-spacing: .04em;
  padding: 2px 4px;
  transition: color .18s ease;
}
.sa-lang-switch a:hover{ color: #fff; }
.sa-lang-switch a.active{
  color: #fff;
  border-bottom: 2px solid var(--sa-red);
}

@media (max-width: 680px){
  .sa-call-bar{ font-size: 13px; padding: 8px 10px; }
  .sa-call-bar-fixed-mobile .sa-lang-switch{
    position: fixed;
    top: 10px;
    right: 12px;
    z-index: 10000;
    background: var(--sa-ink);
    border-radius: 999px;
    padding: 5px 10px;
    margin: 0;
  }
  body{ padding-bottom: 64px; }
  .sa-call-bar-fixed-mobile{
    position: fixed; bottom: 0; left: 0; right: 0; top: auto;
    padding: 0;
    box-shadow: 0 -4px 16px rgba(29,33,38,.18);
  }
  .sa-call-bar-fixed-mobile a.sa-call-link{
    display: block; width: 100%; border-radius: 0; padding: 16px 0;
    text-align: center; font-size: 17px;
    transform: none !important;
  }
  .sa-call-bar-fixed-mobile .sa-call-bar-label{ display:none; }
}

/* ---------- Buttons ---------- */
.sa-btn{
  display: inline-block;
  padding: 15px 30px;
  border-radius: 999px;
  font-weight: 700;
  text-decoration: none !important;
  font-size: 17px;
  line-height: 1.3;
  transition: background .18s ease, color .18s ease, transform .18s ease,
              box-shadow .18s ease, border-color .18s ease;
}
.sa-btn-call{
  background: var(--sa-red);
  color: #fff !important;
  box-shadow: 0 2px 10px rgba(215,38,61,.35);
}
.sa-btn-call:hover{
  background: var(--sa-red-hover);
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(215,38,61,.45);
}
.sa-btn-secondary{
  background: #fff;
  color: var(--sa-ink) !important;
  border: 2px solid var(--sa-mist-deep);
}
.sa-btn-secondary:hover{
  border-color: var(--sa-red);
  color: var(--sa-red-hover) !important;
  transform: translateY(-2px);
}

/* ---------- Hero ---------- */
.sa-hero{
  background: linear-gradient(135deg, var(--sa-red-deep) 0%, var(--sa-red-rich) 100%);
  color: #fff;
  padding: 72px 24px 76px;
  text-align: center;
  border-radius: 0;
}
.sa-hero h1{ color: #fff; margin-bottom: 16px; }
.sa-hero p{
  color: #F6DDE1;
  font-size: clamp(18px, 2vw, 21px);
  max-width: 660px;
  margin: 0 auto 30px;
}
.sa-hero .sa-hero-ctas{
  display: flex;
  gap: 14px;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}
/* wpautop can wrap the CTA anchors in <p> — flatten them so flex centering holds */
.sa-hero .sa-hero-ctas p{ display: contents; }
.sa-hero .sa-btn-secondary{
  background: rgba(255,255,255,.12);
  color: #fff !important;
  border-color: rgba(255,255,255,.45);
  backdrop-filter: blur(2px);
}
.sa-hero .sa-btn-secondary:hover{
  background: rgba(255,255,255,.22);
  border-color: #fff;
  color: #fff !important;
}

/* ---------- Provider scorecard ---------- */
.sa-scorecard{
  border: 1px solid var(--sa-border);
  border-radius: var(--sa-radius);
  padding: 28px;
  background: #fff;
  box-shadow: var(--sa-shadow);
  transition: box-shadow .2s ease, transform .2s ease;
}
.sa-scorecard:hover{
  box-shadow: var(--sa-shadow-lift);
  transform: translateY(-2px);
}
.sa-scorecard h3{ margin: 0 0 4px; }
.sa-score{
  display: inline-block;
  background: var(--sa-ink);
  color: #fff;
  font-weight: 800;
  padding: 5px 16px;
  border-radius: 999px;
  font-size: 14px;
  margin-bottom: 10px;
  letter-spacing: .02em;
}
.sa-scorecard .sa-best-for{ color: var(--sa-slate); font-size: 15px; margin-bottom: 12px; }
.sa-scorecard .sa-facts{ list-style:none; margin:0 0 16px; padding:0; font-size:15px; }
.sa-scorecard .sa-facts li{ padding: 6px 0; border-bottom: 1px dashed var(--sa-border); }
.sa-scorecard .sa-cta-row{ display:flex; gap:10px; flex-wrap:wrap; }

/* ---------- Comparison table ---------- */
.sa-compare-table table{ width:100%; border-collapse: separate; border-spacing:0; font-size: 16px; }
.sa-compare-table th, .sa-compare-table td{
  border-bottom: 1px solid var(--sa-border);
  padding: 13px 16px;
  text-align: left;
}
.sa-compare-table thead th{
  background: var(--sa-ink);
  color:#fff;
  font-weight: 700;
  letter-spacing: .01em;
}
.sa-compare-table thead th:first-child{ border-top-left-radius: var(--sa-radius-sm); }
.sa-compare-table thead th:last-child{ border-top-right-radius: var(--sa-radius-sm); }
.sa-compare-table tbody tr:nth-child(even){ background: var(--sa-mist); }
.sa-compare-table tbody tr{ transition: background .15s ease; }
.sa-compare-table tbody tr:hover{ background: var(--sa-red-tint); }
@media (max-width: 680px){
  .sa-compare-table table, .sa-compare-table thead, .sa-compare-table tbody,
  .sa-compare-table th, .sa-compare-table td, .sa-compare-table tr{ display:block; }
  .sa-compare-table thead{ display:none; }
  .sa-compare-table tr{ margin-bottom:14px; border:1px solid var(--sa-border); border-radius:var(--sa-radius-sm); overflow:hidden; }
  .sa-compare-table td{ border:none; border-bottom:1px solid var(--sa-border); position:relative; padding-left:46%; }
  .sa-compare-table td::before{ content: attr(data-label); position:absolute; left:14px; font-weight:700; color:var(--sa-ink); }
}

/* ---------- Inline conversion module ---------- */
.sa-inline-convert{
  background: var(--sa-mist);
  border: 1px solid var(--sa-border);
  border-left: 5px solid var(--sa-red);
  border-radius: var(--sa-radius);
  padding: 26px 30px;
  margin: 40px 0;
  box-shadow: var(--sa-shadow);
}
.sa-inline-convert p{ margin: 0 0 16px; font-size: 18px; }

/* ---------- FAQ ---------- */
.sa-faq details{
  border: 1px solid var(--sa-border);
  border-radius: var(--sa-radius-sm);
  padding: 16px 20px;
  margin-bottom: 10px;
  background: #fff;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.sa-faq details:hover{ border-color: var(--sa-mist-deep); box-shadow: var(--sa-shadow); }
.sa-faq details[open]{ border-color: var(--sa-red); }
.sa-faq summary{
  font-weight:700;
  cursor:pointer;
  color: var(--sa-ink);
  font-size:18px;
  list-style: none;
  position: relative;
  padding-right: 32px;
}
.sa-faq summary::-webkit-details-marker{ display:none; }
.sa-faq summary::after{
  content: "+";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  font-size: 24px;
  font-weight: 400;
  color: var(--sa-red);
  transition: transform .2s ease;
}
.sa-faq details[open] summary::after{ transform: translateY(-50%) rotate(45deg); }
.sa-faq details p{ margin: 12px 0 0; color: var(--sa-slate); }

/* ---------- Disclosure ribbon ---------- */
.sa-disclosure{
  background: #FFF6E9;
  border: 1px solid #F0DDB8;
  color: #6B4E1E;
  font-size: 13px;
  padding: 10px 16px;
  border-radius: var(--sa-radius-sm);
  margin-bottom: 22px;
  line-height: 1.5;
}
.sa-disclosure a{ color: #6B4E1E; text-decoration: underline; }

/* ---------- Author byline ---------- */
.sa-byline{
  display:flex; align-items:center; gap:12px;
  font-size: 15px; color: var(--sa-slate);
  border-top: 1px solid var(--sa-border);
  border-bottom: 1px solid var(--sa-border);
  padding: 14px 0;
  margin: 22px 0;
}
.sa-byline strong{ color: var(--sa-text); }

/* ---------- Quiz ---------- */
.sa-quiz{ max-width: 640px; margin: 0 auto; }
.sa-quiz .sa-quiz-progress{
  color: var(--sa-slate);
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.sa-quiz .sa-quiz-step{ display:none; }
.sa-quiz .sa-quiz-step.active{ display:block; animation: sa-fade-in .25s ease; }
@keyframes sa-fade-in{ from{ opacity:0; transform: translateY(6px);} to{ opacity:1; transform:none;} }
.sa-quiz button.sa-quiz-option{
  display:block; width:100%; text-align:left;
  padding:16px 20px; margin-bottom:12px;
  border:2px solid var(--sa-border);
  border-radius: var(--sa-radius-sm);
  background:#fff;
  color: var(--sa-text);          /* fix: Astra's button style made this white-on-white */
  cursor:pointer;
  font-size:17px;
  font-weight: 600;
  font-family: var(--sa-font);
  line-height: 1.4;
  transition: border-color .18s ease, background .18s ease, transform .18s ease, box-shadow .18s ease;
}
.sa-quiz button.sa-quiz-option:hover{
  border-color: var(--sa-red);
  background: var(--sa-red-tint);
  color: var(--sa-ink);
  transform: translateY(-1px);
  box-shadow: var(--sa-shadow);
}
.sa-quiz .sa-quiz-postal-form input{
  width: 100%;
  padding: 14px 18px;
  border: 2px solid var(--sa-border);
  border-radius: var(--sa-radius-sm);
  font-size: 17px;
  margin-bottom: 14px;
}
.sa-quiz .sa-quiz-postal-form input:focus{
  outline: none;
  border-color: var(--sa-red);
}
.sa-quiz .sa-quiz-postal-form button{ cursor: pointer; }

/* ---------- Quote form ---------- */
.sa-consent{ font-size: 13px; color: var(--sa-slate); }
.fluentform .ff-btn-submit{
  background: var(--sa-red) !important;
  border-color: var(--sa-red) !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  padding: 14px 30px !important;
  transition: background .18s ease, transform .18s ease !important;
}
.fluentform .ff-btn-submit:hover{
  background: var(--sa-red-hover) !important;
  transform: translateY(-1px);
}

/* ---------- Language toggle (bilingual pages, D9 interim) ---------- */
.sa-lang-toggle{
  display: inline-flex;
  gap: 0;
  border: 2px solid var(--sa-mist-deep);
  border-radius: 999px;
  overflow: hidden;
  margin-bottom: 26px;
}
.sa-lang-toggle button{
  border: none;
  background: #fff;
  color: var(--sa-slate);
  font-family: var(--sa-font);
  font-size: 15px;
  font-weight: 700;
  padding: 9px 22px;
  cursor: pointer;
  transition: background .18s ease, color .18s ease;
}
.sa-lang-toggle button.active{
  background: var(--sa-ink);
  color: #fff;
}
.sa-lang{ display: none; }
.sa-lang.active{ display: block; }

/* ---------- Footer ---------- */
.site-footer{
  border-top: 3px solid var(--sa-red);
}

/* ====================================================================
   v3 DESIGN LAYER (09-Jul-2026) — icons, cards, stat tiles, dark footer,
   hero depth. All iconography = inline SVG data-URI masks: zero network
   requests, colors via currentColor, perf budget intact.
   ================================================================== */

:root{
  --sa-i-phone: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.21c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z"/></svg>');
  --sa-i-arrow: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="black" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round" d="M5 12h13M12 6l6 6-6 6"/></svg>');
  --sa-i-shieldcheck: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="black" stroke-width="1.8" d="M12 2.5l7.5 2.8v5.9c0 4.6-3.1 8.7-7.5 10.2-4.4-1.5-7.5-5.6-7.5-10.2V5.3L12 2.5z"/><path fill="none" stroke="black" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" d="M8.4 12.2l2.4 2.4 4.8-5.2"/></svg>');
  --sa-i-pen: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a1 1 0 0 0 0-1.41l-2.34-2.34a1 1 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"/></svg>');
  --sa-i-data: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5 9.2h3V19H5zM10.6 5h2.8v14h-2.8zM16.2 13H19v6h-2.8z"/></svg>');
}

.sa-ic{
  display: inline-block;
  width: 1em; height: 1em;
  background-color: currentColor;
  -webkit-mask: var(--sa-i-phone) no-repeat center / contain;
  mask: var(--sa-i-phone) no-repeat center / contain;
  vertical-align: -0.12em;
}

/* ---------- Phone glyph on every call CTA ---------- */
.sa-btn-call::before,
.sa-call-bar a.sa-call-link::before{
  content: "";
  display: inline-block;
  width: 1.05em; height: 1.05em;
  margin-right: .5em;
  vertical-align: -0.15em;
  background-color: currentColor;
  -webkit-mask: var(--sa-i-phone) no-repeat center / contain;
  mask: var(--sa-i-phone) no-repeat center / contain;
}

/* ---------- Content cards (hub link lists) ---------- */
.entry-content ul.sa-card-list{
  list-style: none;
  margin: 28px 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 18px;
}
.sa-card-list li{
  position: relative;
  margin: 0;
  padding: 24px 24px 56px;
  background: #fff;
  border: 1px solid var(--sa-border);
  border-radius: var(--sa-radius);
  box-shadow: var(--sa-shadow);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  overflow: hidden;
  font-size: 16px;
  color: var(--sa-slate);
  line-height: 1.55;
}
.sa-card-list li::before{           /* top accent, grows on hover */
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--sa-red-deep), var(--sa-red));
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .25s ease;
}
.sa-card-list li:hover{
  transform: translateY(-4px);
  box-shadow: var(--sa-shadow-lift);
  border-color: var(--sa-mist-deep);
}
.sa-card-list li:hover::before{ transform: scaleX(1); }
.sa-card-list li > a{
  display: block;
  font-weight: 800;
  font-size: 19px;
  line-height: 1.3;
  color: var(--sa-ink);
  text-decoration: none !important;
  margin-bottom: 8px;
  letter-spacing: -0.01em;
}
.sa-card-list li > a::after{        /* stretch the whole card */
  content: "";
  position: absolute;
  inset: 0;
}
.sa-card-list li:hover > a{ color: var(--sa-red-hover); }
.sa-card-list li::after{            /* arrow chip, bottom-right */
  content: "";
  position: absolute;
  right: 20px; bottom: 18px;
  width: 30px; height: 30px;
  border-radius: 999px;
  background: var(--sa-mist);
  transition: background .2s ease;
}
.sa-card-list li:hover::after{ background: var(--sa-red-tint); }
/* arrow glyph inside the chip */
.sa-card-list li > a::before{
  content: "";
  position: absolute;
  right: 27px; bottom: 25px;
  width: 16px; height: 16px;
  z-index: 1;
  background-color: var(--sa-slate);
  -webkit-mask: var(--sa-i-arrow) no-repeat center / contain;
  mask: var(--sa-i-arrow) no-repeat center / contain;
  transition: background-color .2s ease, transform .2s ease;
}
.sa-card-list li:hover > a::before{
  background-color: var(--sa-red-hover);
  transform: translateX(3px);
}

/* ---------- Stat tiles (data highlights) ---------- */
.entry-content ul.sa-stat-grid{
  list-style: none;
  margin: 28px 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 18px;
}
.sa-stat-grid li{
  margin: 0;
  padding: 26px 22px 22px;
  background: linear-gradient(180deg, #fff 0%, var(--sa-mist) 140%);
  border: 1px solid var(--sa-border);
  border-radius: var(--sa-radius);
  box-shadow: var(--sa-shadow);
  font-size: 15px;
  color: var(--sa-slate);
  line-height: 1.5;
  position: relative;
}
.sa-stat-grid li::before{
  content: "";
  position: absolute;
  top: 22px; right: 20px;
  width: 22px; height: 22px;
  background-color: var(--sa-mist-deep);
  -webkit-mask: var(--sa-i-data) no-repeat center / contain;
  mask: var(--sa-i-data) no-repeat center / contain;
}
.sa-stat-grid li strong{
  display: block;
  font-size: clamp(28px, 3vw, 38px);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--sa-red-rich);
  line-height: 1.1;
  margin-bottom: 8px;
}

/* ---------- Section rhythm: alternate surface behind H2 blocks ---------- */
.entry-content > h2{
  padding-top: .35em;
}
.entry-content > h2::after{
  content: "";
  display: block;
  width: 52px; height: 4px;
  margin-top: 10px;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--sa-red-deep), var(--sa-red));
}

/* ---------- Comparison table: card container ---------- */
.sa-compare-table{
  border-radius: var(--sa-radius);
  overflow: hidden;
  box-shadow: var(--sa-shadow);
  border: 1px solid var(--sa-border);
}
@media (max-width: 680px){
  .sa-compare-table{ box-shadow: none; border: none; overflow: visible; }
}

/* ---------- Byline: compact meta card ---------- */
.sa-byline{
  border: 1px solid var(--sa-border);
  border-left: 4px solid var(--sa-red-rich);
  border-radius: var(--sa-radius-sm);
  background: var(--sa-mist);
  padding: 12px 18px;
}
.sa-byline p{ margin: 0; }
.sa-byline p::before{
  content: "";
  display: inline-block;
  width: 1em; height: 1em;
  margin-right: .55em;
  vertical-align: -0.12em;
  background-color: var(--sa-red-rich);
  -webkit-mask: var(--sa-i-pen) no-repeat center / contain;
  mask: var(--sa-i-pen) no-repeat center / contain;
}

/* ---------- Inline conversion module v2 ---------- */
.sa-inline-convert{
  position: relative;
  background: linear-gradient(135deg, var(--sa-mist) 0%, #fff 70%);
  border: 1px solid var(--sa-border);
  border-left: 5px solid var(--sa-red);
  padding: 26px 30px 26px 74px;
}
.sa-inline-convert::before{
  content: "";
  position: absolute;
  left: 22px; top: 28px;
  width: 34px; height: 34px;
  background-color: var(--sa-red);
  -webkit-mask: var(--sa-i-shieldcheck) no-repeat center / contain;
  mask: var(--sa-i-shieldcheck) no-repeat center / contain;
}
@media (max-width: 540px){
  .sa-inline-convert{ padding-left: 26px; }
  .sa-inline-convert::before{ display: none; }
}

/* ---------- Hero v3: depth + brand watermark ---------- */
.sa-hero{
  position: relative;
  overflow: hidden;
}
.sa-hero::before{
  content: "";
  position: absolute;
  top: -40%; left: 50%;
  transform: translateX(-50%);
  width: 900px; height: 500px;
  background: radial-gradient(ellipse at center, rgba(255,255,255,.14) 0%, rgba(255,255,255,0) 62%);
  pointer-events: none;
}
.sa-hero::after{
  content: "";
  position: absolute;
  right: -60px; bottom: -80px;
  width: 380px; height: 380px;
  background-color: rgba(255,255,255,.07);
  -webkit-mask: var(--sa-i-shieldcheck) no-repeat center / contain;
  mask: var(--sa-i-shieldcheck) no-repeat center / contain;
  pointer-events: none;
}
.sa-hero > *{ position: relative; z-index: 1; }

/* ---------- Dark footer ---------- */
.site-footer{
  background: var(--sa-ink) !important;
  border-top: 3px solid var(--sa-red);
}
.site-footer [data-section],
.site-footer .ast-builder-grid-row-container,
.site-footer .site-below-footer-wrap,
.site-footer .site-primary-footer-wrap{
  background: transparent !important;
}
.site-footer,
.site-footer p,
.site-footer .ast-footer-copyright{
  color: #AEB8C0;
}
.site-footer a{
  color: #E6EBEF !important;
  text-decoration: none;
}
.site-footer a:hover{ color: #fff !important; }
.site-footer .menu-link{ font-size: 15px; }

/* ---------- Quiz progress bar ---------- */
.sa-quiz-progressbar{
  height: 6px;
  background: var(--sa-mist);
  border-radius: 999px;
  overflow: hidden;
  margin: 6px 0 22px;
}
.sa-quiz-progressbar > span{
  display: block;
  height: 100%;
  width: 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--sa-red-deep), var(--sa-red));
  transition: width .3s ease;
}

/* ---------- FAQ container ---------- */
.sa-faq{
  background: var(--sa-mist);
  border-radius: var(--sa-radius);
  padding: 26px 26px 16px;
  margin: 36px 0;
}
.sa-faq h2{ margin-top: 0; }

/* ---------- Footer nav ---------- */
.sa-footer-nav{ padding: 26px 0 4px; }
.sa-footer-menu{
  list-style: none;
  margin: 0; padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 28px;
}
.sa-footer-menu a{
  color: #E6EBEF !important;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
}
.sa-footer-menu a:hover{ color: #fff !important; }

/* ---------- v3.1: card icon badges (front-page guide cards) ---------- */
:root{
  --sa-i-unlock: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="black" stroke-width="2" stroke-linecap="round" d="M8 10.5V7a4 4 0 0 1 7.8-1.3"/><rect x="4.5" y="10.5" width="15" height="10" rx="2.2" fill="none" stroke="black" stroke-width="2"/><circle cx="12" cy="15" r="1.4"/><path stroke="black" stroke-width="1.8" stroke-linecap="round" d="M12 16.2v1.6"/></svg>');
  --sa-i-rural: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="black" stroke-width="2" stroke-linejoin="round" d="M3.5 20.5v-8.2L12 5l8.5 7.3v8.2h-5.6v-5.1h-5.8v5.1H3.5z"/><path stroke="black" stroke-width="1.6" stroke-linecap="round" d="M1.5 20.5h21"/></svg>');
  --sa-i-lis: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 1.6c1.5 2.5 2.2 4.5 2.2 6.1 0 1.2-.4 2.3-1.3 3.3h2.9c1.8 0 3.1-.9 3.9-2.8.5 3.1-.7 5.1-3.4 5.6h-2.8c.2 1.5 1 2.6 2.4 3.2h-3.1l-.8 3.6-.8-3.6H8.1c1.4-.6 2.2-1.7 2.4-3.2H7.7c-2.7-.5-3.9-2.5-3.4-5.6.8 1.9 2.1 2.8 3.9 2.8h2.9c-.9-1-1.3-2.1-1.3-3.3 0-1.6.7-3.6 2.2-6.1z"/></svg>');
  --sa-i-swap: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="black" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" d="M6.5 8.5h11m0 0-3.2-3.2M17.5 15.5h-11m0 0 3.2 3.2"/></svg>');
}
.sa-card-badge{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 46px; height: 46px;
  border-radius: 12px;
  background: var(--sa-mist);
  margin-bottom: 14px;
  transition: background .2s ease;
}
.sa-card-badge::before{
  content: "";
  width: 24px; height: 24px;
  background-color: var(--sa-red-rich);
  -webkit-mask: var(--sa-i-shieldcheck) no-repeat center / contain;
  mask: var(--sa-i-shieldcheck) no-repeat center / contain;
}
.sa-card-list li:hover .sa-card-badge{ background: var(--sa-red-tint); }
.sa-card-badge[data-ic="lock"]::before{ -webkit-mask-image: var(--sa-i-unlock); mask-image: var(--sa-i-unlock); }
.sa-card-badge[data-ic="rural"]::before{ -webkit-mask-image: var(--sa-i-rural); mask-image: var(--sa-i-rural); }
.sa-card-badge[data-ic="qc"]::before{ -webkit-mask-image: var(--sa-i-lis); mask-image: var(--sa-i-lis); }
.sa-card-badge[data-ic="swap"]::before{ -webkit-mask-image: var(--sa-i-swap); mask-image: var(--sa-i-swap); }
.sa-card-badge[data-ic="data"]::before{ -webkit-mask-image: var(--sa-i-data); mask-image: var(--sa-i-data); }

/* ---------- v3.2: extended icon set + provider scorecards ---------- */
:root{
  --sa-i-star: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2.5l2.9 6 6.6.9-4.8 4.6 1.2 6.5-5.9-3.2-5.9 3.2 1.2-6.5L2.5 9.4l6.6-.9 2.9-6z"/></svg>');
  --sa-i-scale: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="black" stroke-width="2" stroke-linecap="round" d="M12 4v16M5 7h14M8 20h8"/><path fill="none" stroke="black" stroke-width="1.8" stroke-linejoin="round" d="M5 7l-2.6 5.4a3 3 0 0 0 5.2 0L5 7zM19 7l-2.6 5.4a3 3 0 0 0 5.2 0L19 7z"/></svg>');
  --sa-i-building: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="black" stroke-width="2" stroke-linejoin="round" d="M4.5 21V4.5h10V21M14.5 9.5h5V21M2.5 21h19"/><path stroke="black" stroke-width="1.8" stroke-linecap="round" d="M7.5 8h2M7.5 12h2M7.5 16h2"/></svg>');
  --sa-i-bell: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2.8a6 6 0 0 0-6 6v4.4l-1.8 3.3a.7.7 0 0 0 .6 1h14.4a.7.7 0 0 0 .6-1L18 13.2V8.8a6 6 0 0 0-6-6z"/><path d="M10.3 19.5a1.8 1.8 0 0 0 3.4 0h-3.4z"/></svg>');
  --sa-i-alert: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="black" stroke-width="2" stroke-linejoin="round" d="M12 3.5 1.9 20.5h20.2L12 3.5z"/><path stroke="black" stroke-width="2" stroke-linecap="round" d="M12 10v4.5"/><circle cx="12" cy="17.6" r="1.2"/></svg>');
  --sa-i-wrench: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M22.7 19l-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4z"/></svg>');
}
.sa-card-badge[data-ic="shield"]::before{ -webkit-mask-image: var(--sa-i-shieldcheck); mask-image: var(--sa-i-shieldcheck); }
.sa-card-badge[data-ic="star"]::before{ -webkit-mask-image: var(--sa-i-star); mask-image: var(--sa-i-star); }
.sa-card-badge[data-ic="scale"]::before{ -webkit-mask-image: var(--sa-i-scale); mask-image: var(--sa-i-scale); }
.sa-card-badge[data-ic="building"]::before{ -webkit-mask-image: var(--sa-i-building); mask-image: var(--sa-i-building); }
.sa-card-badge[data-ic="bell"]::before{ -webkit-mask-image: var(--sa-i-bell); mask-image: var(--sa-i-bell); }
.sa-card-badge[data-ic="alert"]::before{ -webkit-mask-image: var(--sa-i-alert); mask-image: var(--sa-i-alert); }
.sa-card-badge[data-ic="wrench"]::before{ -webkit-mask-image: var(--sa-i-wrench); mask-image: var(--sa-i-wrench); }

/* ---------- Provider scorecard (review pages) ---------- */
.sa-provider-card{
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 24px 30px;
  align-items: start;
  background: linear-gradient(180deg, #fff 0%, var(--sa-mist) 160%);
  border: 1px solid var(--sa-border);
  border-top: 4px solid var(--sa-red-rich);
  border-radius: var(--sa-radius);
  box-shadow: var(--sa-shadow);
  padding: 28px 30px;
  margin: 26px 0 34px;
}
.sa-pc-scorewrap{ text-align: center; }
.sa-pc-num{
  display: flex;
  align-items: baseline;
  justify-content: center;
  width: 92px; height: 92px;
  border-radius: 999px;
  background: var(--sa-ink);
  color: #fff;
  font-weight: 800;
  padding-top: 24px;
}
.sa-pc-num b{ font-size: 34px; line-height: 1; letter-spacing: -0.02em; }
.sa-pc-num span{ font-size: 15px; color: #AEB8C0; font-weight: 700; }
.sa-pc-scorewrap small{
  display: block;
  margin-top: 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--sa-slate);
}
.sa-pc-bestfor{
  font-size: 16px;
  color: var(--sa-slate);
  margin: 0 0 14px;
}
.sa-pc-bestfor strong{ color: var(--sa-ink); }
.sa-pc-facts{
  list-style: none;
  margin: 0 0 18px;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 8px 22px;
}
.sa-pc-facts li{
  position: relative;
  padding-left: 26px;
  font-size: 15px;
  line-height: 1.5;
  margin: 0;
}
.sa-pc-facts li::before{
  content: "";
  position: absolute;
  left: 0; top: 3px;
  width: 16px; height: 16px;
  background-color: var(--sa-red-rich);
  -webkit-mask: var(--sa-i-shieldcheck) no-repeat center / contain;
  mask: var(--sa-i-shieldcheck) no-repeat center / contain;
}
.sa-pc-facts li.sa-pc-no::before{
  background-color: var(--sa-slate);
  -webkit-mask-image: var(--sa-i-alert);
  mask-image: var(--sa-i-alert);
}
.sa-pc-ctas{ display: flex; gap: 12px; flex-wrap: wrap; }
.sa-pc-ctas .sa-btn{ padding: 12px 24px; font-size: 16px; }
@media (max-width: 620px){
  .sa-provider-card{ grid-template-columns: 1fr; }
  .sa-pc-scorewrap{ display: flex; align-items: center; gap: 14px; text-align: left; }
  .sa-pc-scorewrap small{ margin-top: 0; }
}
