/* ═══ Shared "Schedule Your Estimate" multi-step form styles ═══ */
.est-card { background:#fff; border-radius:20px; box-shadow:0 24px 70px rgba(0,0,0,0.12); border:1px solid #ececec; padding:34px 32px 26px; text-align:center; }
.est-logo { display:block; margin:0 auto 14px; width:76px; height:76px; border-radius:50%; object-fit:cover; border:3px solid #f1f2f4; box-shadow:0 4px 14px rgba(0,0,0,0.10); }
.est-title { font-size:26px; font-weight:900; color:#1f2a30; letter-spacing:-.4px; margin:0 0 6px; }
.est-sub { color:#6b7178; font-size:14px; line-height:1.5; margin:0 0 22px; }
.est-progress { margin:0 0 22px; }
.est-steplabel { display:block; font-size:12px; font-weight:800; letter-spacing:1.5px; text-transform:uppercase; color:#e8541a; margin-bottom:12px; }
.est-dots { display:flex; justify-content:center; gap:10px; }
.est-dot { width:30px; height:6px; border-radius:50px; background:#e6e8ea; transition:background .3s ease; }
.est-dot.current { background:#e8541a; }
.est-dot.done { background:#3fae5a; }
.est-hp { position:absolute; left:-9999px; }
.est-step { border:0; margin:0; padding:0; min-width:0; display:none; }
.est-step.est-active { display:block; animation:estIn .35s ease; }
@keyframes estIn { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }
.est-q { display:block; float:none; width:100%; box-sizing:border-box; font-size:19px; font-weight:800; color:#1f2a30; text-align:center; margin:0 0 18px; padding:0; }
.est-q-hint { display:block; font-size:12px; font-weight:600; color:#9aa0a6; text-transform:none; letter-spacing:0; margin-top:5px; }
.est-opt-check .est-opt-main::before { content:''; display:inline-block; vertical-align:-2px; width:16px; height:16px; margin-right:9px; border:2px solid #cfd3d8; border-radius:5px; background:#fff; transition:border-color .2s, background .2s; }
.est-opt-check.sel .est-opt-main::before { border-color:#e8541a; background:#e8541a; }
.est-options { display:flex; flex-direction:column; gap:11px; }
.est-opt { position:relative; display:flex; flex-direction:column; align-items:center; gap:2px; padding:14px 18px; border-radius:50px; background:#f4f5f6; cursor:pointer; transition:background .2s, border-color .2s, transform .12s; border:2px solid transparent; }
.est-opt:hover { background:#eceef0; }
.est-opt input { position:absolute; opacity:0; width:0; height:0; }
.est-opt-main { font-size:15px; font-weight:800; color:#28323a; transition:color .2s; }
.est-opt.sel { background:#fff3ee; border-color:#e8541a; }
.est-opt.sel .est-opt-main { color:#e8541a; }
.est-textarea { width:100%; box-sizing:border-box; font-family:'Roboto',sans-serif; font-size:15px; padding:15px; border:2px solid #e2e5e8; border-radius:14px; background:#fafbfc; color:#28323a; resize:vertical; min-height:110px; transition:border-color .2s, background .2s; }
.est-textarea:focus { outline:none; border-color:#e8541a; background:#fff; }
.est-charrow { display:flex; justify-content:space-between; margin-top:8px; font-size:12px; color:#9298a0; }
.est-field { display:block; text-align:left; margin-bottom:12px; }
.est-field-label { display:block; font-size:12px; font-weight:700; color:#555; margin-bottom:6px; }
.est-field input { width:100%; box-sizing:border-box; font-family:'Roboto',sans-serif; font-size:15px; padding:12px 15px; border:2px solid #e2e5e8; border-radius:12px; background:#fafbfc; color:#28323a; transition:border-color .2s, background .2s; }
.est-field input:focus { outline:none; border-color:#e8541a; background:#fff; }
.est-check { display:flex; align-items:center; gap:10px; text-align:left; font-size:14px; color:#444; margin:4px 0 6px; cursor:pointer; }
.est-check input { width:18px; height:18px; accent-color:#e8541a; flex-shrink:0; }
.est-nav { display:flex; gap:12px; margin-top:20px; }
.est-back, .est-next, .est-submit { font-family:'Roboto',sans-serif; font-weight:800; font-size:15px; cursor:pointer; border-radius:50px; padding:13px 24px; border:none; transition:background .2s, transform .15s, box-shadow .2s, opacity .2s; }
.est-back { background:#f0f1f3; color:#4a525a; }
.est-back:hover { background:#e5e7ea; }
.est-next, .est-submit { margin-left:auto; background:#e8541a; color:#fff; box-shadow:0 8px 22px rgba(232,84,26,.32); }
.est-next:hover:not(:disabled), .est-submit:hover:not(:disabled) { background:#f0653a; transform:translateY(-2px); }
.est-next:disabled, .est-submit:disabled { opacity:.45; cursor:not-allowed; box-shadow:none; }
.est-back:focus-visible, .est-next:focus-visible, .est-submit:focus-visible, .est-opt:focus-within, .est-textarea:focus, .est-field input:focus { outline:2px solid #e8541a; outline-offset:2px; }
.est-success { display:none; padding:10px 0 6px; }
.est-success.show { display:block; animation:estIn .4s ease; }
.est-checkmark svg { width:66px; height:66px; }
.est-checkmark circle { stroke:#3fae5a; stroke-width:3; stroke-dasharray:151; stroke-dashoffset:151; animation:estCircle .5s ease forwards; }
.est-checkmark path { stroke:#3fae5a; stroke-width:4; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:48; stroke-dashoffset:48; animation:estCheck .35s .45s ease forwards; }
@keyframes estCircle { to { stroke-dashoffset:0; } }
@keyframes estCheck { to { stroke-dashoffset:0; } }
.est-success h3 { font-size:21px; font-weight:900; color:#1f2a30; margin:12px 0 8px; }
.est-success p { color:#5a6068; font-size:14px; line-height:1.6; margin:0; }
.est-success a { color:#e8541a; font-weight:700; text-decoration:none; }
.est-footer { margin-top:22px; padding-top:16px; border-top:1px solid #eef0f2; font-size:11.5px; color:#9aa0a6; letter-spacing:.3px; }
@media (max-width:600px) { .est-card { padding:28px 20px 22px; border-radius:16px; } .est-title { font-size:23px; } .est-q { font-size:17px; } .est-nav { flex-wrap:wrap; } }
