/* ---------- estimate form ---------- */
.est{display:grid;gap:22px;color:var(--ink)}
.est__top{display:flex;justify-content:space-between;align-items:center;gap:16px}
.est__kicker{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--slate)}
.est__kicker::before{content:"";width:6px;height:6px;background:var(--red)}
.est__steps{list-style:none;display:flex;gap:4px}
.est__steps li{width:26px;height:3px;border-radius:2px;background:var(--line);transition:background-color 400ms var(--ease)}
.est__steps li.is-on{background:var(--navy)}
.est__step{border:0;display:grid;gap:14px;min-width:0;animation:est-in 520ms var(--ease)}
@keyframes est-in{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}
.est__q{font-weight:500;font-size:clamp(26px,3vw,34px);line-height:1.08;letter-spacing:-.035em;padding:0}
.est__hint{color:var(--slate);font-size:15px;margin-top:-4px}
.est__hint a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative;cursor:pointer}
.chip input{position:absolute;opacity:0;pointer-events:none}
.chip span{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:999px;border:1px solid rgba(12,19,34,.14);background:#fff;font-size:15px;font-weight:500;letter-spacing:-.01em;transition:background-color 250ms var(--ease),border-color 250ms var(--ease),color 250ms var(--ease)}
.chip span::before{content:"";width:8px;height:8px;border-radius:50%;border:1.5px solid rgba(12,19,34,.3);transition:inherit}
.chip:hover span{border-color:var(--ink)}
.chip input:checked+span{background:var(--navy);border-color:var(--navy);color:#fff}
.chip input:checked+span::before{background:#fff;border-color:#fff}
.chip input:focus-visible+span{outline:2px solid var(--navy);outline-offset:3px}
.field{display:grid;gap:8px;font-size:14px;font-weight:500}
.field em{font-style:normal;font-weight:400;color:var(--mute)}
.field input,.field textarea{font:inherit;font-size:16px;font-weight:400;color:var(--ink);background:#fff;border:1px solid rgba(12,19,34,.16);border-radius:12px;padding:14px 16px;width:100%;transition:border-color 250ms var(--ease),box-shadow 250ms var(--ease)}
.field textarea{resize:vertical;min-height:88px}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 4px rgba(11,35,80,.1)}
.field--zip{max-width:180px}
.est__err{min-height:1px;color:var(--red);font-size:14px;font-weight:500}
.est__err:empty{display:none}
.est__trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.est__nav{display:flex;justify-content:space-between;align-items:center;gap:12px}
.est__next{margin-left:auto;min-width:140px}
.est__next:disabled{opacity:.6;cursor:progress}
.est__back{font:inherit;font-size:15px;font-weight:500;background:none;border:0;color:var(--slate);cursor:pointer;padding:12px 4px;text-decoration:underline;text-underline-offset:4px}
.est__alt{font-size:14px;color:var(--slate)}
.est__alt a{color:var(--ink);font-weight:500}
.est__done{display:grid;gap:14px;outline:none;animation:est-in 520ms var(--ease)}
.est__check{width:52px;height:52px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center}
.est__check svg{width:26px;height:26px}

/* panel: bottom sheet on phones, side drawer on desktop */
.est-panel{position:fixed;inset:0;z-index:100}
.est-panel__scrim{position:absolute;inset:0;background:rgba(6,12,26,.5);opacity:0;transition:opacity 380ms var(--ease);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.est-panel__sheet{position:absolute;left:0;right:0;bottom:0;max-height:92svh;overflow:auto;overscroll-behavior:contain;background:var(--stone);border-radius:22px 22px 0 0;padding:26px var(--gutter) calc(26px + env(safe-area-inset-bottom));transform:translateY(100%);transition:transform 480ms var(--ease)}
.est-panel.is-open .est-panel__scrim{opacity:1}
.est-panel.is-open .est-panel__sheet{transform:none}
.est-panel__x{position:absolute;right:14px;top:14px;width:40px;height:40px;border-radius:50%;border:0;background:#fff;color:var(--ink);font-size:24px;line-height:1;cursor:pointer;z-index:1}
.est-panel .est__top{padding-right:52px}
html.est-open{overflow:hidden}
@media (min-width:768px){
  .est-panel__sheet{left:auto;top:0;width:min(560px,100%);max-height:none;height:100%;border-radius:0;padding:40px 48px;transform:translateX(100%);display:flex;flex-direction:column;overflow:auto}
  .est-panel__body{margin:auto 0}
  .est-panel__x{right:20px;top:20px}
}
@media (prefers-reduced-motion:reduce){.est__step,.est__done{animation:none}.est-panel__sheet,.est-panel__scrim{transition:none}}
.est [hidden],.est-panel [hidden]{display:none!important}
.est__kicker{white-space:nowrap}
@media (max-width:479px){.est__steps{display:none}}
