/* Embed mode: modal shows only the estimator card */
html.estimator-embed,
body.estimator-page.estimator-embed{
  background:#fff!important;
  margin:0;
  min-height:100%;
}
/* Kill the sitewide fixed hero canvas so it can’t show through the modal iframe. */
html.estimator-embed:before,
html.estimator-embed:after,
body.estimator-page:before,
body.estimator-page:after,
body.estimator-page.estimator-embed:before,
body.estimator-page.estimator-embed:after{
  content:none!important;
  display:none!important;
  background:none!important;
  opacity:0!important;
  visibility:hidden!important;
}
body.estimator-page.estimator-embed > header,
body.estimator-page.estimator-embed > footer,
body.estimator-page.estimator-embed .home-final-cta,
body.estimator-page.estimator-embed .hero,
body.estimator-page.estimator-embed .why,
body.estimator-page.estimator-embed .estimator-disclaimer{
  display:none!important;
}
body.estimator-page.estimator-embed .shell{
  min-height:auto;
  margin:0;
  padding:0;
}
body.estimator-page.estimator-embed .estimator-card{
  max-width:none;
  margin:0;
  border-radius:0;
  box-shadow:none;
  border:0;
}

/* Estimator tool styles — aligned with financing calculator formatting */
body.estimator-page{
  --black:#121212;
  --gold:#f5bd27;
  --gold2:#ffd44a;
  --paper:#efeee9;
  --ink:#1d1f21;
  --muted:#5a5c5f;
  --line:#e2ddd4;
  --green:#20764a;
  --red:#a83e32;
  background:var(--paper);
  color:var(--ink);
}
body.estimator-page button,
body.estimator-page input{font:inherit}
body.estimator-page .shell{min-height:calc(100vh - 120px)}
body.estimator-page .hero{
  background:#171717;
  color:#fff;
  padding:clamp(54px,8vw,96px) max(22px,calc((100vw - 860px)/2));
  position:relative;
  overflow:hidden;
}
body.estimator-page .hero:after{
  content:"";
  position:absolute;
  width:460px;
  height:460px;
  border:70px solid rgba(245,189,39,.08);
  transform:rotate(35deg);
  right:-190px;
  top:-180px;
}
body.estimator-page .eyebrow,
body.estimator-page .step-count{
  font-size:11px;
  letter-spacing:.14em;
  font-weight:750;
  color:#856009;
}
body.estimator-page .hero .eyebrow{color:#f5bd27}
body.estimator-page .hero h1{
  font-size:clamp(30px,4vw,48px);
  letter-spacing:-.025em;
  line-height:1.12;
  margin:12px 0 14px;
  max-width:720px;
}
body.estimator-page .hero p{
  font-size:clamp(16px,1.5vw,19px);
  line-height:1.65;
  color:#c5c5c5;
  max-width:42rem;
  margin:0;
}
body.estimator-page .trust-row{
  display:flex;
  gap:24px;
  flex-wrap:wrap;
  margin-top:28px;
  font-size:13px;
  color:#ddd;
}
body.estimator-page .trust-row span::first-letter{color:var(--gold)}

body.estimator-page .estimator-card{
  max-width:860px;
  margin:-38px auto 42px;
  background:#fff;
  position:relative;
  z-index:2;
  border:3px solid #f5bd27;
  border-radius:4px;
  box-shadow:0 24px 60px rgba(0,0,0,.18);
  overflow:visible;
  padding:clamp(18px,2.5vw,28px);
}

body.estimator-page .estimator-progress{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:22px;
}
body.estimator-page .estimator-progress-step{
  width:28px;
  height:28px;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:12px;
  font-weight:800;
  background:#eceae4;
  color:#6a6a6a;
  flex:none;
}
body.estimator-page .estimator-progress-step.is-active,
body.estimator-page .estimator-progress-step.is-done{
  background:#f5bd27;
  color:#111;
}
body.estimator-page .estimator-progress-bar{
  flex:1;
  height:2px;
  background:#e4dfd6;
}

body.estimator-page .step{display:none;padding:4px 2px 8px}
body.estimator-page .step.active{display:block}
body.estimator-page .step h2{
  font-size:clamp(22px,2.6vw,30px);
  letter-spacing:-.02em;
  margin:0 0 8px;
  color:#151515;
}
body.estimator-page .sub{
  color:var(--muted);
  font-size:15px;
  line-height:1.55;
  margin:0 0 22px;
}
body.estimator-page .est-known-contact{margin:0 0 22px}
body.estimator-page .est-known-contact .known-contact-card.is-selected{
  border-color:#f5bd27;
  background:#fff8e6;
  box-shadow:inset 0 0 0 1px #f5bd27;
}
body.estimator-page .est-known-contact .known-contact-card.is-selected .known-contact-check{
  opacity:1;
  transform:scale(1);
}
body.estimator-page #estAddressEntry[hidden]{display:none!important}
body.estimator-page .step[data-step="4"].is-auto-calc .contact-step-title,
body.estimator-page .step[data-step="4"].is-auto-calc .contact-step-copy,
body.estimator-page .step[data-step="4"].is-auto-calc .form-grid,
body.estimator-page .step[data-step="4"].is-auto-calc .consent,
body.estimator-page .step[data-step="4"].is-auto-calc .actions,
body.estimator-page .step[data-step="4"].is-auto-calc .known-contact-shell,
body.estimator-page .step[data-step="4"].is-auto-calc .field-error{
  display:none!important;
}
body.estimator-page .step[data-step="4"].is-auto-calc .auto-calc-copy{
  display:block!important;
  margin:8px 0 18px;
}
body.estimator-page .step[data-step="4"].is-auto-calc #status{
  display:block!important;
}
body.estimator-page .estimator-card label{
  display:block;
  font-size:13px;
  letter-spacing:0;
  font-weight:750;
  margin:0 0 7px;
  color:#333;
  text-transform:none;
}
body.estimator-page .estimator-card input{
  width:100%;
  box-sizing:border-box;
  border:1px solid #c9c8c4;
  background:#f7f7f5;
  padding:13px 14px;
  font-size:16px;
  outline:none;
  border-radius:5px;
}
body.estimator-page .estimator-card input:focus{
  outline:2px solid #b48c4e;
  outline-offset:1px;
  border-color:#b48c4e;
  box-shadow:none;
}
body.estimator-page .primary,
body.estimator-page .secondary{
  border:0;
  padding:15px 19px;
  font-weight:800;
  cursor:pointer;
  border-radius:4px;
}
body.estimator-page .primary{
  background:var(--gold);
  color:#111;
  min-width:190px;
}
body.estimator-page .primary:hover{background:var(--gold2)}
body.estimator-page .primary:disabled{opacity:.55;cursor:not-allowed}
body.estimator-page .secondary{
  background:transparent;
  color:#333;
  border:1px solid #cfc9bd;
}
body.estimator-page .secondary:hover{
  border-color:#f5bd27;
  color:#111;
}
body.estimator-page .step[data-step="1"] .primary{
  width:100%;
  margin-top:18px;
}
body.estimator-page .service-grid .choice{min-height:88px;text-align:left}
body.estimator-page .service-grid .choice strong{font-size:18px}
body.estimator-page .form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px 12px;
}
body.estimator-page .actions{
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin-top:20px;
  flex-wrap:wrap;
}
body.estimator-page .consent{
  font-size:12px;
  line-height:1.55;
  color:#777;
  margin:16px 0 0;
}
body.estimator-page .field-error{
  background:#fff0ee;
  color:#8e2e25;
  border-left:3px solid var(--red);
  padding:10px 12px;
  font-size:13px;
  margin-top:12px;
}
body.estimator-page .hidden{display:none!important}
body.estimator-page .status{
  margin-top:14px;
  background:#fff8e6;
  border-left:3px solid var(--gold);
  padding:11px 13px;
  color:#555;
  font-size:13px;
}
body.estimator-page .result{text-align:center}
body.estimator-page .result-check{
  width:58px;
  height:58px;
  border-radius:50%;
  background:#e4f4e9;
  color:var(--green);
  display:grid;
  place-items:center;
  margin:0 auto 15px;
  font-size:30px;
  font-weight:1000;
}
body.estimator-page .result-address{color:#777;margin-top:-3px}
body.estimator-page .estimate-panel{
  background:#111;
  color:#fff;
  padding:clamp(22px,3vw,32px);
  margin:26px 0 20px;
  border-radius:4px;
  text-align:left;
}
body.estimator-page .estimate-panel span,
body.estimator-page .estimate-panel small{display:block}
body.estimator-page .estimate-panel span{
  font-size:11px;
  letter-spacing:.08em;
  color:#bdbdbd;
  font-weight:750;
}
body.estimator-page .estimate-panel strong{
  display:block;
  color:var(--gold);
  font-size:clamp(34px,7vw,52px);
  letter-spacing:-.02em;
  margin:8px 0;
  line-height:1.05;
}
body.estimator-page .estimate-panel small{color:#bbb}
body.estimator-page .result-copy{
  font-size:14px;
  line-height:1.6;
  color:#555;
  max-width:620px;
  margin:0 auto 18px;
}
body.estimator-page .big{width:100%;font-size:15px}
body.estimator-page .manual-icon{
  width:62px;
  height:62px;
  background:var(--gold);
  display:grid;
  place-items:center;
  margin:0 auto 18px;
  font-weight:1000;
  font-size:22px;
  border-radius:4px;
}
body.estimator-page .manual-panel{
  background:#fff8e6;
  border-left:3px solid #f5bd27;
  border-top:0;
  border-right:0;
  border-bottom:0;
  padding:18px 16px;
  margin:24px 0;
  text-align:left;
}
body.estimator-page .manual-panel strong{display:block;font-size:18px}
body.estimator-page .manual-panel p{color:#555;line-height:1.55;margin-bottom:0}
body.estimator-page .text-button{
  border:0;
  background:none;
  color:#634910;
  text-decoration:underline;
  text-decoration-color:#f5bd27;
  text-underline-offset:4px;
  margin-top:18px;
  cursor:pointer;
  font-weight:700;
}
body.estimator-page .why{
  max-width:860px;
  margin:0 auto 40px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
}
body.estimator-page .why>div{
  background:#fff;
  border:1px solid var(--line);
  padding:22px;
  border-radius:4px;
}
body.estimator-page .why strong,
body.estimator-page .why span{display:block}
body.estimator-page .why strong{font-size:15px;margin-bottom:7px}
body.estimator-page .why span{font-size:13px;line-height:1.55;color:#666}
body.estimator-page .estimator-disclaimer{
  max-width:860px;
  margin:0 auto 28px;
  padding:0 22px;
  font-size:12px;
  line-height:1.55;
  color:#777;
}
@media(max-width:700px){
  body.estimator-page .hero{padding:48px 20px 72px}
  body.estimator-page .estimator-card{margin:-28px 12px 28px;padding:18px}
  body.estimator-page .form-grid{grid-template-columns:1fr}
  body.estimator-page .actions{flex-direction:column-reverse}
  body.estimator-page .actions button{width:100%}
  body.estimator-page .why{grid-template-columns:1fr;margin:0 12px 28px}
}

body.estimator-page .required-mark{color:#856009}
body.estimator-page .question-block{margin:0 0 22px}
body.estimator-page .question-block>label{
  margin-bottom:10px;
  font-size:13px;
  letter-spacing:0;
  font-weight:750;
}
body.estimator-page .choice-grid{display:grid;gap:12px}
body.estimator-page .choice-grid.four,
body.estimator-page .choice-grid.complexity{grid-template-columns:repeat(2,minmax(0,1fr))}
body.estimator-page .choice-grid.timeline{grid-template-columns:repeat(2,minmax(0,1fr))}
body.estimator-page .choice{
  appearance:none;
  text-align:center;
  background:#faf9f6;
  border:1px solid #d5d0c6;
  border-radius:4px;
  padding:16px 14px;
  min-height:0;
  cursor:pointer;
  color:#1d1f21;
  font-weight:750;
  transition:border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
body.estimator-page .choice:hover{
  border-color:#f5bd27;
  background:#fff;
}
body.estimator-page .choice.selected{
  border-color:#f5bd27;
  background:#fff8e6;
  box-shadow:inset 0 0 0 1px #f5bd27;
  padding:16px 14px;
}
body.estimator-page .choice strong,
body.estimator-page .choice span{display:block}
body.estimator-page .choice strong{font-size:17px;font-weight:750}
body.estimator-page .choice span{
  font-size:12px;
  color:#666;
  line-height:1.4;
  margin-top:5px;
  font-weight:500;
}
body.estimator-page .service-grid .choice,
body.estimator-page .choice-grid.four .choice,
body.estimator-page .choice-grid.complexity .choice{text-align:left}
@media(max-width:700px){
  body.estimator-page .choice-grid.four,
  body.estimator-page .choice-grid.complexity,
  body.estimator-page .choice-grid.timeline{grid-template-columns:1fr}
}

body.estimator-page .insurance-result-note{
  text-align:left;
  background:#f7f4ec;
  border:1px solid #e4dfd2;
  border-left:3px solid var(--gold);
  padding:16px 18px;
  margin:0 0 18px;
  border-radius:4px;
}
body.estimator-page .insurance-result-kicker{
  display:block;
  font-size:11px;
  letter-spacing:.08em;
  font-weight:750;
  color:#777;
  margin-bottom:6px;
}
body.estimator-page .insurance-result-note strong{
  display:block;
  font-size:17px;
  color:#111;
  margin-bottom:8px;
}
body.estimator-page .insurance-result-note p{
  margin:0;
  font-size:14px;
  line-height:1.55;
  color:#555;
}
body.estimator-page .payment-next{
  margin:0 auto 16px;
  max-width:620px;
}
body.estimator-page .payment-next .secondary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  text-decoration:none;
  box-sizing:border-box;
}

body.estimator-page .address-wrap{position:relative;z-index:40}
body.estimator-page .address-suggestions{
  position:absolute;
  left:0;
  right:0;
  top:calc(100% + 4px);
  z-index:50;
  background:#fff;
  border:1px solid #c9c8c4;
  border-radius:5px;
  box-shadow:0 12px 30px rgba(0,0,0,.18);
  max-height:290px;
  overflow:auto;
}
body.estimator-page .estimator-alt-link{
  margin:14px 0 0;
  font-size:14px;
}
body.estimator-page .estimator-alt-link .text-button{
  margin-top:0;
  font-size:14px;
}
body.estimator-page .address-suggestion{
  display:block;
  width:100%;
  border:0;
  border-bottom:1px solid #eceae4;
  background:#fff;
  text-align:left;
  padding:12px 14px;
  cursor:pointer;
}
body.estimator-page .address-suggestion:hover{background:#fff8e6}
body.estimator-page .address-suggestion strong,
body.estimator-page .address-suggestion span{display:block}
body.estimator-page .address-suggestion strong{font-size:14px}
body.estimator-page .address-suggestion span{font-size:12px;color:#666;margin-top:3px}
body.estimator-page .google-attribution{
  text-align:right;
  padding:7px 11px;
  font-size:10px;
  font-weight:700;
  color:#777;
  background:#faf9f6;
}

body.estimator-page .step[data-step="3"] label{font-size:13px;letter-spacing:0}
body.estimator-page .step[data-step="1"] > label[for="address"]{font-size:13px;letter-spacing:0}
