*,
*::before,
*::after{
  box-sizing:border-box;
  margin:0;
  padding:0;
}

:root{
  --css-orange:#f97316;
  --css-orange-dark:#ea580c;
  --css-black:#050505;
  --css-charcoal:#101214;
  --css-panel:#ffffff;
  --css-off-white:#f7f4ee;
  --css-text:#111827;
  --css-muted:#6b7280;
  --css-border:#d7dce2;
  --css-blue:#0393ca;
  --css-shadow:0 20px 60px rgba(0,0,0,0.12);
  --font-display:"Staatliches", Impact, "Arial Black", sans-serif;
  --font-heading:"Barlow Condensed", Impact, "Arial Black", sans-serif;
  --font-body:"Inter", Arial, sans-serif;
  --estimate-shell:1180px;
  --estimate-gutter:clamp(1rem, 4vw, 2.75rem);
  --touch-target:44px;
}

html{
  min-height:100%;
  scroll-behavior:smooth;
  overflow-x:hidden;
}

body{
  min-height:100vh;
  overflow-x:hidden;
  background:
    radial-gradient(circle at 88% 8%, rgba(249,115,22,0.14), transparent 28%),
    linear-gradient(180deg, #050505 0%, #0a0b0c 34%, #f7f4ee 34%, #f7f4ee 100%);
  color:var(--css-text);
  font-family:var(--font-body);
  line-height:1.5;
}

button,
input,
select,
textarea{
  font:inherit;
}

img,
picture,
video,
canvas,
svg{
  display:block;
  max-width:100%;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
  outline:2px solid var(--css-blue);
  outline-offset:3px;
}

h1,
h2,
h3{
  text-wrap:balance;
}

p,
li{
  text-wrap:pretty;
}

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

a{
  color:inherit;
}

.skip-link{
  position:absolute;
  top:14px;
  left:14px;
  z-index:20;
  padding:10px 14px;
  border-radius:7px;
  background:var(--css-orange);
  color:#fff;
  font-weight:800;
  transform:translateY(-160%);
  transition:transform 160ms ease;
}

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

.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;
}

.estimate-shell{
  width:min(var(--estimate-shell), calc(100% - var(--estimate-gutter) * 2));
  margin-inline:auto;
}

.estimate-brand-strip{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  width:min(var(--estimate-shell), calc(100% - var(--estimate-gutter) * 2));
  margin:0 auto;
  padding:20px 0 10px;
  color:#fff;
}

.estimate-logo-link{
  display:inline-flex;
  align-items:center;
  width:min(290px, 58vw);
}

.estimate-logo-link img{
  display:block;
  width:100%;
  height:auto;
}

.estimate-brand-strip__meta{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:10px 18px;
  color:rgba(255,255,255,0.76);
  font-size:15px;
  font-weight:700;
}

.estimate-brand-strip__meta span{
  color:var(--css-orange);
  font-family:var(--font-heading);
  font-size:18px;
  letter-spacing:0.08em;
  text-transform:uppercase;
}

.estimate-brand-strip__meta a{
  text-decoration:none;
  transition:color 160ms ease;
}

.estimate-brand-strip__meta a:hover,
.estimate-brand-strip__meta a:focus-visible{
  color:var(--css-blue);
}

.estimate-intro{
  color:#fff;
}

.estimate-intro__inner{
  padding:28px 0 42px;
}

.estimate-eyebrow{
  margin-bottom:10px;
  color:var(--css-orange);
  font-family:var(--font-heading);
  font-size:22px;
  font-weight:800;
  letter-spacing:0.085em;
  text-transform:uppercase;
}

.estimate-intro h1{
  max-width:720px;
  margin-bottom:14px;
  font-family:var(--font-display);
  font-size:clamp(4.1rem, 8vw, 7.25rem);
  font-weight:400;
  line-height:0.88;
  letter-spacing:0.035em;
  text-transform:uppercase;
  text-shadow:0 4px 0 rgba(0,0,0,0.72), 0 18px 42px rgba(0,0,0,0.45);
}

.estimate-intro__copy{
  max-width:760px;
  color:rgba(255,255,255,0.88);
  font-size:20px;
}

.estimate-trust-list{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:22px;
  list-style:none;
}

.estimate-trust-list li{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:36px;
  padding:8px 12px;
  border:1px solid rgba(255,255,255,0.18);
  border-radius:999px;
  background:rgba(255,255,255,0.06);
  color:rgba(255,255,255,0.86);
  font-size:14px;
  font-weight:800;
}

.estimate-trust-list li::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:999px;
  background:var(--css-orange);
}

.estimate-main{
  padding:0 0 48px;
}

.estimate-main__grid{
  display:grid;
  grid-template-columns:minmax(0, 1.85fr) minmax(320px, 0.95fr);
  gap:28px;
  align-items:start;
}

.estimate-form-column{
  min-width:0;
}

.estimate-stepper{
  margin-bottom:16px;
}

.estimate-stepper__list{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:8px;
  list-style:none;
}

.estimate-stepper__item{
  position:relative;
  display:flex;
  align-items:center;
  gap:10px;
  min-height:54px;
  padding:10px 12px;
  border:1px solid rgba(255,255,255,0.16);
  border-radius:8px;
  background:rgba(16,18,20,0.9);
  color:rgba(255,255,255,0.7);
}

.estimate-stepper__item span{
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  flex:0 0 30px;
  border:1px solid rgba(255,255,255,0.2);
  border-radius:999px;
  font-family:var(--font-heading);
  font-weight:800;
}

.estimate-stepper__item strong{
  font-family:var(--font-heading);
  font-size:18px;
  letter-spacing:0.055em;
  text-transform:uppercase;
}

.estimate-stepper__item.is-active,
.estimate-stepper__item.is-complete{
  border-color:rgba(249,115,22,0.74);
  color:#fff;
}

.estimate-stepper__item.is-active span,
.estimate-stepper__item.is-complete span{
  border-color:var(--css-orange);
  background:var(--css-orange);
  color:#fff;
}

.estimate-stepper__mobile{
  display:none;
}

.estimate-form-card{
  overflow:hidden;
  border:1px solid rgba(17,24,39,0.12);
  border-radius:10px;
  background:#fff;
  box-shadow:var(--css-shadow);
}

.estimate-honeypot{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  overflow:hidden;
}

.estimate-form-card__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:56px;
  padding:18px 24px 0;
}

.estimate-form-card__kicker{
  color:var(--css-orange);
  font-family:var(--font-heading);
  font-size:18px;
  font-weight:800;
  letter-spacing:0.08em;
  text-transform:uppercase;
}

.estimate-step{
  padding:18px 24px 4px;
}

.estimate-step[hidden]{
  display:none;
}

.estimate-step__header{
  margin-bottom:22px;
  padding-bottom:16px;
  border-bottom:1px solid rgba(17,24,39,0.1);
}

.estimate-step__header h2{
  margin-bottom:6px;
  color:#090b0d;
  font-family:var(--font-heading);
  font-size:34px;
  line-height:1;
  letter-spacing:0.045em;
  text-transform:uppercase;
}

.estimate-step__header p{
  color:var(--css-muted);
  font-size:16px;
}

.estimate-field-grid{
  display:grid;
  gap:16px;
}

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

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

.estimate-field,
.estimate-choice-group{
  margin-bottom:18px;
}

.estimate-field label,
.estimate-choice-group legend{
  display:block;
  margin-bottom:8px;
  color:#111827;
  font-weight:800;
}

.estimate-field__helper{
  margin:-2px 0 8px;
  color:var(--css-muted);
  font-size:13px;
  line-height:1.35;
}

.estimate-field-grid--investment .estimate-field__helper{
  min-height:36px;
}

.estimate-field label span,
.estimate-choice-group legend span{
  color:var(--css-orange);
}

.estimate-field input,
.estimate-field select,
.estimate-field textarea{
  width:100%;
  min-height:52px;
  border:1px solid var(--css-border);
  border-radius:8px;
  background:#fff;
  color:#111827;
  padding:12px 14px;
  transition:border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.estimate-field textarea{
  min-height:116px;
  resize:vertical;
}

.estimate-field input:focus,
.estimate-field select:focus,
.estimate-field textarea:focus,
.estimate-choice-group input:focus-visible + span,
.estimate-consent input:focus-visible + span{
  border-color:var(--css-orange);
  box-shadow:0 0 0 3px rgba(249,115,22,0.16);
  outline:0;
}

.estimate-field input[aria-invalid="true"],
.estimate-field select[aria-invalid="true"],
.estimate-choice-group[aria-invalid="true"] .estimate-choice-grid,
.estimate-consent input[aria-invalid="true"] + span{
  border-color:#dc2626;
}

.field-error{
  min-height:20px;
  margin-top:6px;
  color:#b42318;
  font-size:13px;
  font-weight:700;
}

.conditional-details{
  margin:8px 0 20px;
  padding:18px;
  border:1px solid rgba(249,115,22,0.22);
  border-radius:8px;
  background:#fff8f2;
}

.conditional-details[hidden]{
  display:none;
}

.conditional-details h3{
  margin-bottom:14px;
  color:var(--css-orange-dark);
  font-family:var(--font-heading);
  font-size:24px;
  letter-spacing:0.055em;
  text-transform:uppercase;
}

.estimate-plans-upload{
  margin-top:-2px;
}

.estimate-file-list{
  display:grid;
  gap:6px;
  margin-top:10px;
  padding:10px 12px;
  border:1px solid rgba(249,115,22,0.18);
  border-radius:8px;
  background:#fff;
  color:#374151;
  font-size:13px;
  font-weight:700;
  list-style:none;
}

.estimate-file-list[hidden]{
  display:none;
}

.estimate-slot-picker{
  min-width:0;
  margin-bottom:18px;
  padding:18px;
  border:1px solid rgba(249,115,22,0.18);
  border-radius:10px;
  background:#fffdfb;
}

.estimate-slot-picker[aria-invalid="true"]{
  border-color:#dc2626;
}

.estimate-slot-picker legend{
  display:block;
  margin-bottom:8px;
  color:#111827;
  font-weight:800;
}

.estimate-slot-picker__days{
  display:grid;
  gap:12px;
  margin-top:12px;
}

.estimate-slot-day{
  padding:14px;
  border:1px solid rgba(17,24,39,0.1);
  border-radius:10px;
  background:#fff;
}

.estimate-slot-day__heading{
  margin-bottom:10px;
  color:#111827;
  font-family:var(--font-heading);
  font-size:20px;
  font-weight:800;
  letter-spacing:0.045em;
  text-transform:uppercase;
}

.estimate-slot-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(112px, 1fr));
  gap:8px;
}

.estimate-slot-button{
  min-height:46px;
  border:1px solid var(--css-border);
  border-radius:8px;
  background:#fff;
  color:#111827;
  cursor:pointer;
  font-weight:800;
  padding:10px 12px;
  transition:border-color 160ms ease, background 160ms ease, color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.estimate-slot-button:hover:not(:disabled),
.estimate-slot-button:focus-visible{
  border-color:var(--css-orange);
  box-shadow:0 0 0 3px rgba(249,115,22,0.14);
  outline:0;
}

.estimate-slot-button:hover:not(:disabled){
  transform:translateY(-1px);
}

.estimate-slot-button.is-selected{
  border-color:var(--css-orange);
  background:var(--css-orange);
  color:#fff;
  box-shadow:0 12px 24px rgba(249,115,22,0.22);
}

.estimate-slot-button:disabled{
  background:#f3f4f6;
  color:#9ca3af;
  cursor:not-allowed;
  opacity:0.72;
}

.estimate-selected-summary{
  display:grid;
  gap:3px;
  margin-top:12px;
  padding:12px 14px;
  border:1px solid rgba(249,115,22,0.28);
  border-radius:8px;
  background:#fff1e7;
  color:#111827;
}

.estimate-selected-summary[hidden]{
  display:none;
}

.estimate-selected-summary strong{
  color:var(--css-orange-dark);
  font-family:var(--font-heading);
  font-size:18px;
  letter-spacing:0.05em;
  text-transform:uppercase;
}

.estimate-selected-summary small{
  color:var(--css-muted);
  font-weight:700;
}

.estimate-alternate-time{
  margin-bottom:18px;
}

.estimate-alternate-time__toggle{
  display:block;
}

.estimate-alternate-time__toggle input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.estimate-alternate-time__toggle span{
  display:flex;
  align-items:center;
  min-height:48px;
  width:max-content;
  max-width:100%;
  border:1px solid var(--css-border);
  border-radius:8px;
  background:#fff;
  color:#111827;
  cursor:pointer;
  font-weight:800;
  line-height:1.2;
  padding:11px 14px;
  transition:border-color 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

.estimate-alternate-time__toggle span::before{
  content:"";
  width:14px;
  height:14px;
  flex:0 0 14px;
  margin-right:8px;
  border:1px solid #aab2bf;
  border-radius:4px;
  background:#fff;
}

.estimate-alternate-time__toggle input:checked + span{
  border-color:var(--css-orange);
  background:#fff1e7;
  box-shadow:inset 0 0 0 1px rgba(249,115,22,0.3);
}

.estimate-alternate-time__toggle input:checked + span::before{
  border-color:var(--css-orange);
  background:var(--css-orange);
  box-shadow:inset 0 0 0 3px #fff;
}

.estimate-alternate-time__toggle input:focus-visible + span{
  border-color:var(--css-orange);
  box-shadow:0 0 0 3px rgba(249,115,22,0.16);
}

.estimate-fallback-fields{
  margin-top:14px;
  padding:16px;
  border:1px solid rgba(249,115,22,0.22);
  border-left:4px solid var(--css-orange);
  border-radius:8px;
  background:#fff8f2;
}

.estimate-fallback-fields[hidden]{
  display:none;
}

.estimate-choice-group{
  min-width:0;
  border:0;
}

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

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

.estimate-choice-grid label{
  min-width:0;
}

.estimate-choice-grid input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.estimate-choice-grid span,
.estimate-consent span{
  display:flex;
  align-items:center;
  min-height:46px;
  width:100%;
  border:1px solid var(--css-border);
  border-radius:8px;
  background:#fff;
  color:#1f2937;
  cursor:pointer;
  font-size:14px;
  font-weight:800;
  line-height:1.2;
  padding:10px 12px;
  transition:border-color 160ms ease, background 160ms ease, color 160ms ease, box-shadow 160ms ease;
}

.estimate-choice-grid input:checked + span{
  border-color:var(--css-orange);
  background:#fff1e7;
  color:#111827;
  box-shadow:inset 0 0 0 1px rgba(249,115,22,0.3);
}

.estimate-choice-grid span::before{
  content:"";
  width:14px;
  height:14px;
  flex:0 0 14px;
  margin-right:8px;
  border:1px solid #aab2bf;
  border-radius:4px;
  background:#fff;
}

.estimate-choice-grid input[type="radio"] + span::before{
  border-radius:999px;
}

.estimate-choice-grid input:checked + span::before{
  border-color:var(--css-orange);
  background:var(--css-orange);
  box-shadow:inset 0 0 0 3px #fff;
}

.estimate-consent{
  display:block;
  margin-top:4px;
}

.estimate-consent input{
  position:absolute;
  opacity:0;
}

.estimate-consent span{
  align-items:flex-start;
  min-height:0;
  padding:14px;
}

.estimate-consent span::before{
  content:"";
  width:16px;
  height:16px;
  flex:0 0 16px;
  margin:2px 10px 0 0;
  border:1px solid #aab2bf;
  border-radius:4px;
  background:#fff;
}

.estimate-consent input:checked + span{
  border-color:var(--css-orange);
  background:#fff1e7;
}

.estimate-consent input:checked + span::before{
  border-color:var(--css-orange);
  background:var(--css-orange);
  box-shadow:inset 0 0 0 3px #fff;
}

.estimate-privacy-note{
  margin-top:8px;
  color:var(--css-muted);
  font-size:14px;
}

.estimate-review{
  margin-top:20px;
  padding:18px;
  border:1px solid rgba(17,24,39,0.1);
  border-radius:8px;
  background:#f8fafc;
}

.estimate-review h3{
  margin-bottom:10px;
  color:#111827;
  font-family:var(--font-heading);
  font-size:22px;
  letter-spacing:0.045em;
  text-transform:uppercase;
}

.estimate-review dl{
  display:grid;
  gap:8px;
}

.estimate-review dl div{
  display:grid;
  grid-template-columns:minmax(120px, 0.6fr) minmax(0, 1fr);
  gap:12px;
}

.estimate-review dt{
  color:var(--css-muted);
  font-size:13px;
  font-weight:800;
  text-transform:uppercase;
}

.estimate-review dd{
  color:#111827;
  font-weight:700;
}

.estimate-form-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:12px;
  padding:20px 24px 24px;
  border-top:1px solid rgba(17,24,39,0.1);
}

.estimate-submit-error{
  flex:1 0 100%;
  min-height:20px;
  margin:0;
}

.estimate-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:54px;
  border-radius:7px;
  cursor:pointer;
  font-family:var(--font-heading);
  font-size:20px;
  font-weight:800;
  letter-spacing:0.06em;
  line-height:1;
  padding:14px 24px;
  text-decoration:none;
  text-transform:uppercase;
  transition:transform 160ms ease, border-color 160ms ease, background 160ms ease, color 160ms ease, box-shadow 160ms ease;
}

.estimate-button:hover,
.estimate-button:focus-visible{
  transform:translateY(-2px);
}

.estimate-button--primary{
  border:1px solid var(--css-orange);
  background:linear-gradient(180deg, var(--css-orange), var(--css-orange-dark));
  box-shadow:0 16px 32px rgba(249,115,22,0.22);
  color:#fff;
}

.estimate-button--secondary{
  border:1px solid rgba(17,24,39,0.2);
  background:#fff;
  color:#111827;
}

.estimate-button--secondary:hover,
.estimate-button--secondary:focus-visible{
  border-color:var(--css-orange);
  color:var(--css-orange);
}

.estimate-button--dark{
  border:1px solid rgba(255,255,255,0.24);
  background:rgba(5,5,5,0.22);
  color:#fff;
}

.estimate-button[hidden]{
  display:none;
}

.estimate-support-card{
  position:sticky;
  top:22px;
}

.estimate-support-card__inner{
  border:1px solid rgba(17,24,39,0.1);
  border-radius:10px;
  background:#fff;
  box-shadow:var(--css-shadow);
  padding:28px;
}

.estimate-support-card__eyebrow{
  margin-bottom:8px;
  color:var(--css-orange);
  font-family:var(--font-heading);
  font-size:17px;
  font-weight:800;
  letter-spacing:0.08em;
  text-transform:uppercase;
}

.estimate-support-card h2{
  margin-bottom:18px;
  color:#111827;
  font-family:var(--font-heading);
  font-size:34px;
  line-height:0.95;
  letter-spacing:0.045em;
  text-transform:uppercase;
}

.estimate-support-list{
  display:grid;
  gap:11px;
  list-style:none;
}

.estimate-support-list li{
  position:relative;
  padding-left:28px;
  color:#1f2937;
  font-weight:700;
}

.estimate-support-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:0.15em;
  width:18px;
  height:18px;
  border:2px solid var(--css-orange);
  border-radius:999px;
}

.estimate-support-list li::after{
  content:"";
  position:absolute;
  left:6px;
  top:0.45em;
  width:5px;
  height:9px;
  border:solid var(--css-orange);
  border-width:0 2px 2px 0;
  transform:rotate(45deg);
}

.estimate-support-card__local{
  margin-top:24px;
  padding-top:22px;
  border-top:1px solid rgba(17,24,39,0.12);
}

.estimate-support-card__local h3{
  margin-bottom:8px;
  color:#111827;
  font-family:var(--font-heading);
  font-size:26px;
  letter-spacing:0.05em;
  text-transform:uppercase;
}

.estimate-support-card__local p{
  color:var(--css-muted);
}

.estimate-support-card__phone{
  display:grid;
  gap:2px;
  margin-top:22px;
  padding:16px;
  border:1px solid rgba(249,115,22,0.36);
  border-radius:8px;
  background:#fff7ed;
  color:#111827;
  text-decoration:none;
  transition:border-color 160ms ease, background 160ms ease, color 160ms ease;
}

.estimate-support-card__phone span{
  color:var(--css-orange-dark);
  font-size:13px;
  font-weight:900;
  text-transform:uppercase;
}

.estimate-support-card__phone strong{
  font-size:18px;
}

.estimate-support-card__phone:hover,
.estimate-support-card__phone:focus-visible{
  border-color:var(--css-blue);
  color:var(--css-blue);
}

.estimate-help-strip{
  padding:0 0 30px;
}

.estimate-help-strip__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:22px 24px;
  border:1px solid rgba(249,115,22,0.32);
  border-radius:10px;
  background:
    radial-gradient(circle at 0% 50%, rgba(249,115,22,0.16), transparent 30%),
    linear-gradient(180deg, #111315, #070809);
  color:#fff;
}

.estimate-help-strip h2{
  margin-bottom:4px;
  font-family:var(--font-heading);
  font-size:30px;
  letter-spacing:0.045em;
  text-transform:uppercase;
}

.estimate-help-strip p{
  color:rgba(255,255,255,0.78);
}

.estimate-bottom-note{
  width:min(var(--estimate-shell), calc(100% - var(--estimate-gutter) * 2));
  margin:0 auto 26px;
  color:#4b5563;
  font-size:14px;
  text-align:center;
}

.estimate-footer{
  display:flex;
  justify-content:center;
  gap:12px;
  padding:18px 22px 26px;
  color:#4b5563;
  font-size:14px;
}

.estimate-footer a{
  text-decoration:none;
  transition:color 160ms ease;
}

.estimate-footer a:hover,
.estimate-footer a:focus-visible{
  color:var(--css-orange);
}

.estimate-success{
  padding:30px 24px 28px;
}

.estimate-success__icon{
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  margin-bottom:18px;
  border-radius:999px;
  background:var(--css-orange);
  color:#fff;
  font-family:var(--font-heading);
  font-size:32px;
}

.estimate-success h2{
  max-width:620px;
  margin-bottom:12px;
  color:#111827;
  font-family:var(--font-heading);
  font-size:38px;
  line-height:0.98;
  letter-spacing:0.045em;
  text-transform:uppercase;
}

.estimate-success p{
  max-width:720px;
  color:#4b5563;
  font-size:18px;
}

.estimate-success__summary{
  display:grid;
  gap:10px;
  margin:22px 0;
  padding:18px;
  border:1px solid rgba(17,24,39,0.1);
  border-radius:8px;
  background:#f8fafc;
}

.estimate-success__summary div{
  display:grid;
  grid-template-columns:180px minmax(0, 1fr);
  gap:12px;
}

.estimate-success__summary dt{
  color:#6b7280;
  font-size:13px;
  font-weight:900;
  text-transform:uppercase;
}

.estimate-success__summary dd{
  color:#111827;
  font-weight:800;
}

.estimate-success__actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}

@media (max-width:1100px){
  body{
    background:
      radial-gradient(circle at 88% 8%, rgba(249,115,22,0.14), transparent 28%),
      linear-gradient(180deg, #050505 0%, #0a0b0c 28%, #f7f4ee 28%, #f7f4ee 100%);
  }

  .estimate-main__grid{
    grid-template-columns:minmax(0, 1fr);
  }

  .estimate-support-card{
    position:static;
  }

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

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

@media (max-width:760px){
  body{
    background:
      radial-gradient(circle at 88% 6%, rgba(249,115,22,0.14), transparent 28%),
      linear-gradient(180deg, #050505 0%, #0a0b0c 660px, #f7f4ee 660px, #f7f4ee 100%);
  }

  .estimate-shell,
  .estimate-brand-strip,
  .estimate-bottom-note{
    width:min(100% - 28px, 1180px);
  }

  .estimate-brand-strip{
    display:grid;
    gap:12px;
    padding-top:14px;
  }

  .estimate-brand-strip__meta{
    justify-content:flex-start;
  }

  .estimate-intro__inner{
    padding:22px 0 28px;
  }

  .estimate-intro h1{
    max-width:7.8em;
    font-size:clamp(3.4rem, 16vw, 4.6rem);
  }

  .estimate-intro__copy{
    font-size:17px;
  }

  .estimate-trust-list{
    display:grid;
    grid-template-columns:minmax(0, 1fr);
  }

  .estimate-stepper__list{
    display:none;
  }

  .estimate-stepper__mobile{
    display:grid;
    gap:8px;
    padding:14px;
    border-radius:8px;
    background:#101214;
    color:#fff;
    font-weight:800;
  }

  .estimate-progress-track{
    height:7px;
    overflow:hidden;
    border-radius:999px;
    background:rgba(255,255,255,0.18);
  }

  #estimate-progress-bar{
    display:block;
    width:25%;
    height:100%;
    border-radius:999px;
    background:var(--css-orange);
    transition:width 180ms ease;
  }

  .estimate-form-card__header,
  .estimate-step,
  .estimate-form-actions,
  .estimate-success{
    padding-inline:16px;
  }

  .estimate-step__header h2{
    font-size:28px;
  }

  .estimate-field-grid,
  .estimate-field-grid--two,
  .estimate-field-grid--three,
  .estimate-choice-grid,
  .estimate-choice-grid--cards{
    grid-template-columns:minmax(0, 1fr);
  }

  .estimate-form-actions,
  .estimate-help-strip__inner,
  .estimate-success__actions{
    display:grid;
    grid-template-columns:minmax(0, 1fr);
  }

  .estimate-button{
    width:100%;
  }

  .estimate-review dl div,
  .estimate-success__summary div{
    grid-template-columns:minmax(0, 1fr);
    gap:2px;
  }

  .estimate-support-card__inner{
    padding:22px 18px;
  }

  .estimate-support-card h2{
    font-size:30px;
  }

  .estimate-footer{
    flex-wrap:wrap;
  }
}

/* ================================
Responsive Form Refinements
================================ */
@media (max-width:575px){
  :root{
    --estimate-gutter:clamp(0.875rem, 4vw, 1.25rem);
  }

  body{
    background:
      radial-gradient(circle at 88% 4%, rgba(249,115,22,0.12), transparent 26%),
      linear-gradient(180deg, #050505 0%, #0a0b0c 680px, #f7f4ee 680px, #f7f4ee 100%);
  }

  .estimate-brand-strip{
    grid-template-columns:minmax(0, 1fr);
    padding-top:12px;
  }

  .estimate-logo-link{
    width:min(220px, 72vw);
  }

  .estimate-brand-strip__meta{
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    gap:4px;
    font-size:14px;
  }

  .estimate-intro__inner{
    padding:18px 0 22px;
  }

  .estimate-eyebrow{
    font-size:18px;
  }

  .estimate-intro h1{
    max-width:8.4em;
    font-size:clamp(2.75rem, 14vw, 3.75rem);
    line-height:0.92;
  }

  .estimate-intro__copy{
    font-size:16px;
    line-height:1.58;
  }

  .estimate-trust-list{
    gap:8px;
  }

  .estimate-trust-list li{
    min-height:40px;
    font-size:13px;
  }

  .estimate-main{
    padding-bottom:34px;
  }

  .estimate-stepper{
    margin-bottom:12px;
  }

  .estimate-stepper__mobile{
    padding:12px;
  }

  .estimate-form-card{
    border-radius:9px;
  }

  .estimate-form-card__header,
  .estimate-step,
  .estimate-form-actions,
  .estimate-success{
    padding-inline:14px;
  }

  .estimate-step{
    padding-top:14px;
  }

  .estimate-step__header{
    margin-bottom:18px;
  }

  .estimate-step__header h2{
    font-size:clamp(1.55rem, 8vw, 2rem);
    line-height:1.02;
  }

  .estimate-step__header p,
  .estimate-field__helper{
    font-size:14px;
  }

  .estimate-field,
  .estimate-choice-group{
    margin-bottom:14px;
  }

  .estimate-field input,
  .estimate-field select,
  .estimate-field textarea,
  .estimate-choice-grid span,
  .estimate-consent span,
  .estimate-slot-button{
    min-height:var(--touch-target);
    font-size:15px;
  }

  .estimate-choice-grid span,
  .estimate-consent span{
    align-items:flex-start;
    padding:12px;
  }

  .conditional-details,
  .estimate-slot-picker,
  .estimate-fallback-fields,
  .estimate-review,
  .estimate-success__summary{
    padding:14px;
  }

  .conditional-details h3{
    font-size:21px;
  }

  .estimate-slot-day{
    padding:12px;
  }

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

  .estimate-alternate-time__toggle span{
    width:100%;
  }

  .estimate-form-actions{
    grid-template-columns:minmax(0, 1fr);
    gap:10px;
  }

  .estimate-button{
    min-height:var(--touch-target);
    padding:13px 14px;
    font-size:18px;
  }

  .estimate-support-card__inner{
    padding:20px 16px;
  }

  .estimate-support-card h2,
  .estimate-help-strip h2,
  .estimate-success h2{
    font-size:clamp(1.75rem, 8vw, 2.2rem);
  }

  .estimate-help-strip__inner{
    padding:18px 16px;
  }

  .estimate-success p{
    font-size:16px;
  }
}

@media (max-width:374px){
  .estimate-shell,
  .estimate-brand-strip,
  .estimate-bottom-note{
    width:min(100% - 22px, var(--estimate-shell));
  }

  .estimate-logo-link{
    width:min(200px, 74vw);
  }

  .estimate-intro h1{
    font-size:clamp(2.45rem, 13vw, 3.25rem);
  }

  .estimate-trust-list li{
    padding-inline:10px;
  }

  .estimate-form-card__header,
  .estimate-step,
  .estimate-form-actions,
  .estimate-success{
    padding-inline:12px;
  }

  .estimate-slot-grid{
    grid-template-columns:minmax(0, 1fr);
  }

  .estimate-choice-grid span,
  .estimate-consent span{
    font-size:14px;
  }

  .estimate-footer{
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    text-align:center;
  }
}

/* Mobile/tablet sizing correction layer. Desktop form sizing stays untouched. */
@media (min-width:768px) and (max-width:1099px){
  :root{
    --estimate-tablet-section-y:clamp(2.5rem, 5vw, 3.75rem);
    --estimate-tablet-card-pad:clamp(1.15rem, 2.4vw, 1.45rem);
  }

  .estimate-shell,
  .estimate-brand-strip,
  .estimate-bottom-note{
    width:min(var(--estimate-shell), calc(100% - 44px));
  }

  .estimate-intro__inner{
    padding-block:var(--estimate-tablet-section-y);
  }

  .estimate-intro h1{
    max-width:8.6em;
    font-size:clamp(3.2rem, 8vw, 5rem);
    line-height:0.9;
  }

  .estimate-intro__copy{
    font-size:clamp(1rem, 2.2vw, 1.12rem);
  }

  .estimate-main{
    padding-bottom:var(--estimate-tablet-section-y);
  }

  .estimate-form-card__header,
  .estimate-step,
  .estimate-form-actions,
  .estimate-success{
    padding-inline:var(--estimate-tablet-card-pad);
  }

  .estimate-step{
    padding-top:var(--estimate-tablet-card-pad);
  }

  .estimate-step__header{
    margin-bottom:1.15rem;
    padding-bottom:0.9rem;
  }

  .estimate-step__header h2{
    font-size:clamp(1.8rem, 4.5vw, 2.45rem);
  }

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

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

  .estimate-choice-grid span,
  .estimate-consent span{
    min-height:46px;
    padding:10px 11px;
  }

  .conditional-details,
  .estimate-slot-picker,
  .estimate-fallback-fields,
  .estimate-review,
  .estimate-success__summary{
    padding:var(--estimate-tablet-card-pad);
  }
}

@media (max-width:767px){
  :root{
    --mobile-gutter:clamp(0.875rem, 4vw, 1.25rem);
    --mobile-section-y:clamp(2.25rem, 8vw, 3.75rem);
    --mobile-section-y-tight:clamp(1.75rem, 6vw, 2.75rem);
    --mobile-card-pad:clamp(0.95rem, 4vw, 1.25rem);
    --mobile-card-pad-sm:clamp(0.75rem, 3vw, 1rem);
    --mobile-card-radius:14px;
  }

  .estimate-shell,
  .estimate-brand-strip,
  .estimate-bottom-note{
    width:min(calc(100% - var(--mobile-gutter) - var(--mobile-gutter)), var(--estimate-shell));
  }

  .estimate-brand-strip{
    gap:0.65rem;
  }

  .estimate-intro__inner{
    padding-block:var(--mobile-section-y-tight);
  }

  .estimate-eyebrow{
    margin-bottom:0.45rem;
    font-size:clamp(1rem, 4.8vw, 1.25rem);
  }

  .estimate-intro h1{
    max-width:8.3em;
    font-size:clamp(2.45rem, 11.5vw, 3.65rem);
    line-height:0.9;
    letter-spacing:0.018em;
    text-wrap:balance;
  }

  .estimate-intro__copy{
    max-width:100%;
    font-size:clamp(0.95rem, 3.7vw, 1.05rem);
    line-height:1.5;
  }

  .estimate-trust-list{
    gap:0.55rem;
  }

  .estimate-trust-list li{
    min-height:38px;
    padding:0.65rem 0.8rem;
  }

  .estimate-main{
    padding-bottom:var(--mobile-section-y);
  }

  .estimate-stepper{
    margin-bottom:0.85rem;
  }

  .estimate-stepper__mobile{
    padding:var(--mobile-card-pad-sm);
    border-radius:var(--mobile-card-radius);
  }

  .estimate-form-card{
    border-radius:var(--mobile-card-radius);
  }

  .estimate-form-card__header,
  .estimate-step,
  .estimate-form-actions,
  .estimate-success{
    padding-inline:var(--mobile-card-pad);
  }

  .estimate-form-card__header{
    min-height:48px;
    padding-top:0.9rem;
  }

  .estimate-form-card__kicker{
    font-size:clamp(0.95rem, 4vw, 1.1rem);
  }

  .estimate-step{
    padding-top:var(--mobile-card-pad);
  }

  .estimate-step__header{
    margin-bottom:1rem;
    padding-bottom:0.85rem;
  }

  .estimate-step__header h2{
    font-size:clamp(1.45rem, 7vw, 2rem);
    line-height:1;
  }

  .estimate-step__header p,
  .estimate-field__helper{
    font-size:0.9rem;
    line-height:1.42;
  }

  .estimate-field-grid{
    gap:0.8rem;
  }

  .estimate-field,
  .estimate-choice-group{
    margin-bottom:0.9rem;
  }

  .estimate-field label,
  .estimate-choice-group legend{
    margin-bottom:0.45rem;
  }

  .estimate-field input,
  .estimate-field select,
  .estimate-field textarea{
    min-height:48px;
    padding:0.7rem 0.8rem;
  }

  .estimate-field textarea{
    min-height:104px;
  }

  .estimate-choice-grid,
  .estimate-choice-grid--cards{
    gap:0.55rem;
  }

  .estimate-choice-grid span,
  .estimate-consent span,
  .estimate-slot-button{
    min-height:44px;
    padding:0.7rem 0.75rem;
    font-size:0.9rem;
  }

  .conditional-details,
  .estimate-slot-picker,
  .estimate-fallback-fields,
  .estimate-review,
  .estimate-success__summary{
    padding:var(--mobile-card-pad);
    border-radius:var(--mobile-card-radius);
  }

  .conditional-details h3,
  .estimate-review h3{
    font-size:clamp(1.2rem, 5.2vw, 1.55rem);
  }

  .estimate-slot-day{
    padding:var(--mobile-card-pad-sm);
  }

  .estimate-slot-day__heading{
    font-size:clamp(1.05rem, 4.5vw, 1.25rem);
  }

  .estimate-form-actions,
  .estimate-help-strip__inner,
  .estimate-success__actions{
    gap:0.65rem;
  }

  .estimate-button{
    min-height:48px;
    padding:0.82rem 1rem;
    font-size:clamp(1rem, 4.5vw, 1.12rem);
  }

  .estimate-support-card__inner{
    padding:var(--mobile-card-pad);
  }

  .estimate-support-card h2,
  .estimate-help-strip h2,
  .estimate-success h2{
    font-size:clamp(1.65rem, 7.5vw, 2.1rem);
  }
}

@media (min-width:430px) and (max-width:767px){
  .estimate-choice-grid:not(.estimate-choice-grid--cards){
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

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

@media (max-width:429px){
  .estimate-choice-grid,
  .estimate-choice-grid--cards,
  .estimate-field-grid,
  .estimate-field-grid--two,
  .estimate-field-grid--three{
    grid-template-columns:minmax(0, 1fr);
  }
}

@media (max-width:374px){
  .estimate-form-card__header,
  .estimate-step,
  .estimate-form-actions,
  .estimate-success{
    padding-inline:var(--mobile-card-pad-sm);
  }
}
