:root{
  --navy:#0b2747;
  --navy-2:#173f6c;
  --navy-3:#24557f;
  --gold:#c79a46;
  --gold-2:#e2bd70;
  --ink:#172033;
  --muted:#687588;
  --line:#dfe4eb;
  --white:#fff;
  --success:#25824a;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--ink);font-family:Inter,Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit}
.page-shell{min-height:100vh;background:#fff}

/* REGIONAL-STYLE TOP FUNNEL */
.hero{position:relative;padding:13px 16px 23px;background:linear-gradient(180deg,#f8fafc 0%,#fff 92%);border-bottom:1px solid #eef1f4}
.brand-wrap{position:relative;display:flex;align-items:center;justify-content:center;width:min(900px,100%);height:64px;margin:0 auto 8px}
.brand{display:inline-flex;align-items:center;justify-content:center}
.brand-logo{display:block;width:242px;max-width:55vw;height:auto}
.header-phone{position:absolute;right:2px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:flex-end;gap:2px;color:var(--navy);line-height:1.08;text-decoration:none}
.header-phone-label{font-size:10px;color:#6f7c8d;font-weight:650}
.header-phone strong{display:flex;align-items:center;gap:7px;font-size:20px;font-weight:850;letter-spacing:-.025em;color:var(--navy)}
.phone-handset{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex:0 0 20px}
.phone-handset svg{display:block;width:100%;height:100%;fill:#d62828}

.calculator-card{width:min(620px,100%);margin:0 auto;background:#fff;border:1px solid rgba(11,39,71,.10);border-radius:14px;padding:24px 28px 19px;box-shadow:0 11px 30px rgba(24,43,68,.085)}
.calculator-heading{text-align:center}
.kicker{margin:0 0 11px;text-align:center;color:var(--navy-2);font-size:12px;font-weight:750;letter-spacing:.005em}
h1{margin:0;color:var(--navy);text-align:center;font-size:34px;line-height:1.09;letter-spacing:-.038em;font-weight:800}
.subcopy{max-width:500px;margin:9px auto 17px;text-align:center;color:var(--muted);font-size:13px;line-height:1.48}
.step{display:none;animation:fadeIn .18s ease}.step.is-active{display:block}
@keyframes fadeIn{from{opacity:.55;transform:translateY(2px)}to{opacity:1;transform:none}}

.main-input{width:100%;height:56px;padding:0 16px;border:1.5px solid #ccd4de;border-radius:7px;background:#fff;color:var(--ink);font-size:15px;outline:none;transition:border-color .15s,box-shadow .15s}
.main-input::placeholder{color:#939daa}.main-input:focus{border-color:var(--navy-3);box-shadow:0 0 0 3px rgba(36,85,127,.075)}
select.main-input{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#6e7b8e 50%),linear-gradient(135deg,#6e7b8e 50%,transparent 50%);background-position:calc(100% - 19px) 24px,calc(100% - 14px) 24px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:43px}
.field-stack{display:grid;gap:9px}

.quote-count{display:flex;justify-content:center;align-items:center;gap:7px;margin:11px 0 11px;color:#687486;font-size:11.5px}
.quote-count strong{font-weight:650}
.pulse-dot{
  position:relative;
  width:7px;
  height:7px;
  flex:0 0 7px;
  border-radius:50%;
  background:var(--success);
  box-shadow:0 0 0 3px rgba(37,130,74,.11);
}
.pulse-dot::after{
  content:"";
  position:absolute;
  inset:-1px;
  border-radius:50%;
  background:rgba(37,130,74,.45);
  animation:liveTrackerPulse 2.35s ease-out infinite;
  pointer-events:none;
}
@keyframes liveTrackerPulse{
  0%{transform:scale(.8);opacity:.75}
  55%{transform:scale(2.8);opacity:0}
  100%{transform:scale(2.8);opacity:0}
}
@media (prefers-reduced-motion:reduce){
  .pulse-dot::after{animation:none;opacity:0}
}
.actions{display:flex;gap:8px}
.primary-button{flex:1;min-height:52px;border:0;border-radius:7px;background:linear-gradient(180deg,#173f6c 0%,#0b2747 100%);color:#fff;font-size:14.5px;font-weight:800;cursor:pointer;box-shadow:0 5px 13px rgba(11,39,71,.15);transition:transform .15s,box-shadow .15s}
.primary-button:hover{transform:translateY(-1px);box-shadow:0 7px 17px rgba(11,39,71,.19)}.primary-button:active{transform:none}
.back-button{min-width:78px;border:1px solid #d6dde7;border-radius:7px;background:#fff;color:var(--navy);font-size:13px;font-weight:700;cursor:pointer}
.progress{display:flex;align-items:center;gap:9px;margin-top:11px;color:#8b95a4;font-size:10px}
.progress-track{height:3px;flex:1;overflow:hidden;border-radius:999px;background:#edf0f4}.progress-track span{display:block;width:20%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--gold),var(--gold-2));transition:width .22s}
.consent-copy{margin:9px 1px 0;color:#858e9b;font-size:8.6px;line-height:1.42}

/* THREE-COLUMN TRUST BAR */
.trust-strip{width:min(700px,calc(100% - 32px));margin:14px auto 0;display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 5px 16px rgba(29,47,70,.045);overflow:hidden}
.trust-item{display:flex;align-items:center;justify-content:center;gap:7px;min-height:55px;padding:0 8px;color:var(--navy);font-size:12px;border-right:1px solid var(--line)}
.trust-item:last-child{border-right:0}.trust-icon{display:grid;place-items:center;width:23px;height:23px;flex:0 0 23px;border:1px solid #d9e0e9;border-radius:50%;color:var(--gold);font-weight:800;font-size:11px}

/* REVIEWS */
.social-proof{width:min(840px,calc(100% - 32px));margin:25px auto 0;text-align:center}
.rating-line{display:flex;justify-content:center;align-items:center;gap:8px;margin-bottom:11px;font-size:12.5px;color:var(--navy)}
.stars{color:#f5b301;letter-spacing:1.5px;font-size:16px;line-height:1}
.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.review-grid article{min-height:142px;padding:15px 16px 14px;background:#fff;border:1px solid var(--line);border-radius:8px;text-align:left;box-shadow:0 3px 11px rgba(20,42,75,.025)}
.review-stars{font-size:15px;letter-spacing:1.5px;color:#f5b301;margin-bottom:7px;line-height:1}
.review-grid p{margin:0 0 9px;font-size:12.5px;line-height:1.52;color:#344054}
.review-grid span{font-size:10.5px;color:#7a8494}

/* CREDENTIALS + FOOTER */
.credential-row{width:min(700px,calc(100% - 32px));margin:19px auto 0;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.credential{padding:12px 8px;text-align:center;border-right:1px solid var(--line)}.credential:last-child{border-right:0}
.credential small,.credential strong,.credential span{display:block}.credential small{margin-bottom:2px;color:#8b95a4;font-size:8.5px}.credential strong{color:var(--navy);font-size:11.5px;letter-spacing:.045em}.credential span{margin-top:2px;color:#8b95a4;font-size:8.5px}
.satisfaction{width:min(700px,calc(100% - 32px));margin:13px auto 0;text-align:center;color:#6a7586;font-size:10.5px;line-height:1.45}.satisfaction strong{display:block;margin-bottom:1px;color:var(--navy);font-size:12px}
.site-footer{width:min(700px,calc(100% - 32px));margin:18px auto 0;padding:15px 0 24px;border-top:1px solid var(--line);text-align:center;color:#8b95a4;font-size:9px;line-height:1.5}.site-footer p{margin:4px auto}.footer-brand{font-weight:750;color:#697789}.site-footer a{text-decoration:underline;text-underline-offset:2px}.site-footer span{margin:0 6px}.broker-disclosure{max-width:620px}
.thank-you{padding:25px 8px 20px;text-align:center}.thank-you p:last-child{max-width:465px;margin:11px auto 0;color:var(--muted);font-size:13px;line-height:1.55}.success-mark{display:grid;place-items:center;width:52px;height:52px;margin:0 auto 12px;border-radius:50%;background:#eef8f1;color:var(--success);font-size:25px;font-weight:800}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* TABLET */
@media(max-width:760px){
  .hero{padding:10px 12px 18px}
  .brand-wrap{height:58px;margin-bottom:6px}
  .brand-logo{width:215px;max-width:68vw}
  .header-phone{display:none}
  .calculator-card{width:min(590px,100%);padding:20px 16px 16px;border-radius:12px;box-shadow:0 8px 24px rgba(24,43,68,.075)}
  .kicker{margin-bottom:9px;font-size:11.5px}
  h1{font-size:29px;line-height:1.1}
  .subcopy{margin:8px auto 15px;font-size:13px}
  .main-input{height:54px;font-size:16px}
  .primary-button{min-height:51px}
  .quote-count{margin:10px 0}
  .trust-strip{margin-top:11px}
  .review-grid{grid-template-columns:1fr}
  .review-grid article{min-height:0;text-align:center;padding:15px 17px}
  .rating-line{margin-bottom:10px}
}

/* PHONE — preserve the compact, single-purpose funnel */
@media(max-width:520px){
  body{background:#fff;padding-top:58px}
  .hero{padding:7px 9px 14px}
  .brand-wrap{position:fixed;z-index:1000;top:0;left:0;right:0;width:100%;height:58px;margin:0;padding:0 12px;background:rgba(255,255,255,.98);border-bottom:1px solid #e5e9ef;box-shadow:0 2px 10px rgba(20,42,75,.07);backdrop-filter:saturate(180%) blur(10px);-webkit-backdrop-filter:saturate(180%) blur(10px);justify-content:space-between}
  .brand{justify-content:flex-start;min-width:0;flex:1 1 auto}
  .brand-logo{width:142px;max-width:44vw}
  .header-phone{position:static;transform:none;display:flex;flex:0 0 40%;min-width:145px;max-width:180px;height:40px;padding:0 8px;align-items:center;justify-content:center;white-space:nowrap;color:var(--navy);line-height:1;border:2px solid var(--gold);border-radius:9px;background:#fff;box-shadow:0 2px 8px rgba(11,39,71,.08);transition:background .15s,transform .15s,box-shadow .15s}
  .header-phone:active{transform:scale(.985);background:#fffaf0;box-shadow:0 1px 4px rgba(11,39,71,.08)}
  .header-phone-label{display:none}
  .header-phone strong{display:flex;align-items:center;justify-content:center;gap:6px;font-size:15.5px;font-weight:850;letter-spacing:-.025em}
  .phone-handset{width:17px;height:17px;flex-basis:17px}
  .calculator-card{padding:17px 13px 14px;border-radius:11px}
  .kicker{margin-bottom:8px;font-size:10.8px}
  h1{font-size:26px;letter-spacing:-.032em}
  .subcopy{max-width:340px;margin:7px auto 13px;font-size:12.3px;line-height:1.42}
  .main-input{height:52px;padding:0 14px;border-radius:7px}
  .field-stack{gap:8px}
  .quote-count{font-size:10.5px;margin:9px 0}
  .actions{gap:7px}
  .primary-button{min-height:50px;font-size:14px}
  .back-button{min-width:68px;font-size:12px}
  .progress{margin-top:9px;font-size:9.5px}
  .consent-copy{font-size:8px;line-height:1.38}
  .trust-strip{width:calc(100% - 18px);grid-template-columns:repeat(3,1fr);margin-top:10px;border-radius:8px}
  .trust-item{min-height:50px;gap:5px;padding:6px 4px;font-size:10px;text-align:center;line-height:1.15;flex-direction:column}
  .trust-item{border-right:1px solid var(--line);border-bottom:0}.trust-item:last-child{border-right:0}
  .trust-icon{width:20px;height:20px;flex-basis:20px;font-size:9px}
  .social-proof{width:calc(100% - 18px);margin-top:20px}
  .rating-line{flex-direction:column;gap:4px;margin-bottom:9px;font-size:11.5px}
  .stars{font-size:15px}
  .review-grid{gap:8px}
  .review-grid article{padding:13px 14px;border-radius:8px}
  .review-grid p{font-size:12px;line-height:1.48;margin-bottom:8px}
  .review-grid span{font-size:10px}
  .review-stars{font-size:14px;margin-bottom:6px}
  .credential-row{width:calc(100% - 18px);margin-top:16px;grid-template-columns:repeat(3,1fr)}
  .credential{padding:10px 4px;border-right:1px solid var(--line);border-bottom:0}
  .credential small{font-size:7.7px}.credential strong{font-size:9.6px;letter-spacing:.025em}.credential span{font-size:7.5px}
  .satisfaction{width:calc(100% - 22px);margin-top:11px;font-size:9.5px}.satisfaction strong{font-size:11px}
  .site-footer{width:calc(100% - 22px);margin-top:14px;padding:13px 0 20px;font-size:8.5px}
}
@media(max-width:370px){
  .brand-wrap{padding:0 8px}
  .brand-logo{width:128px;max-width:41vw}
  .header-phone{flex-basis:43%;min-width:138px;padding:0 6px}
  .header-phone strong{font-size:14.5px}
}


/* V12 — Granot-safe location entry */
.location-help {
  margin: 9px 0 0;
  font-size: 12px;
  line-height: 1.45;
  color: #718096;
  text-align: left;
}
.location-input.is-valid-location {
  border-color: #2f855a;
  box-shadow: 0 0 0 3px rgba(47, 133, 90, .10);
}
.location-input.is-location-error {
  border-color: #c53030;
  box-shadow: 0 0 0 3px rgba(197, 48, 48, .08);
}
@media (max-width: 720px) {
  .location-help { font-size: 11px; margin-top: 7px; }
  .location-input { font-size: 16px; }
}

/* V13 — ZIP-backed city autocomplete */
.location-autocomplete{position:relative}
.location-suggestions{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:40;background:#fff;border:1px solid #d7dee7;border-radius:9px;box-shadow:0 12px 28px rgba(12,35,66,.14);overflow:hidden;max-height:280px;overflow-y:auto}
.location-suggestion{display:flex;width:100%;flex-direction:column;gap:2px;padding:11px 14px;border:0;border-bottom:1px solid #eef1f5;background:#fff;text-align:left;cursor:pointer;color:var(--ink)}
.location-suggestion:last-child{border-bottom:0}
.location-suggestion:hover,.location-suggestion:focus{background:#f7f9fc;outline:none}
.location-suggestion-main{font-size:14px;font-weight:700;line-height:1.25}
.location-suggestion-secondary{font-size:12px;color:#687588;line-height:1.25}
.location-input.is-location-loading{background-image:linear-gradient(90deg,transparent 0,transparent calc(100% - 40px),rgba(13,35,66,.08) calc(100% - 40px),rgba(13,35,66,.08) 100%)}
@media (max-width:720px){.location-suggestions{max-height:235px}.location-suggestion{padding:12px 13px}.location-suggestion-main{font-size:14px}.location-suggestion-secondary{font-size:12px}}

/* V14 city -> ZIP selection */
.location-suggestion-heading{padding:10px 13px 8px;background:#f5f7fa;border-bottom:1px solid #e3e8ef;color:#31445f;font-size:12px;font-weight:800;letter-spacing:.01em}.zip-suggestion .location-suggestion-main{min-width:62px;color:#0d2342;font-size:16px}.zip-suggestion{display:grid;grid-template-columns:72px 1fr;align-items:center;gap:8px}
@media (max-width:720px){.location-suggestion-heading{font-size:11px;padding:9px 12px 7px}.zip-suggestion{grid-template-columns:64px 1fr}.zip-suggestion .location-suggestion-main{font-size:15px}}


/* V15 Granot test diagnostics — remove/disable after CRM verification */
.granot-test-result,
.form-server-error {
  margin: 20px auto 0;
  padding: 14px 16px;
  max-width: 620px;
  border: 1px solid rgba(13, 35, 66, .18);
  border-radius: 10px;
  background: #f7f9fc;
  color: #0d2342;
  text-align: left;
  font-size: 13px;
  line-height: 1.45;
}
.form-server-error { margin: 0 0 18px; border-color: rgba(185, 28, 28, .28); background: #fff7f7; }
.granot-test-result strong,
.form-server-error strong { display: block; margin-bottom: 5px; }
.granot-test-result span,
.form-server-error span { display: block; font-weight: 700; margin-bottom: 6px; }
.granot-test-result pre,
.form-server-error pre {
  margin: 8px 0;
  padding: 10px;
  border-radius: 7px;
  background: #fff;
  border: 1px solid rgba(13, 35, 66, .1);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font: 12px/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.granot-test-result small { display: block; opacity: .75; }


.thankyou-call{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:20px;
  min-height:50px;
  padding:0 24px;
  border-radius:10px;
  background:#d7a728;
  color:#10223c;
  font-weight:900;
  font-size:18px;
  text-decoration:none;
}
.error-mark{
  width:56px;
  height:56px;
  margin:0 auto 10px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#b42318;
  color:#fff;
  font-size:34px;
  font-weight:900;
}
