:root{--q-gold:#bb9160;--q-ink:#18150f;--q-paper:#f5f1e9;--q-line:rgba(24,21,15,.14)}
/* Author display rules must never reveal actions from another intake state. */
#quote-form [hidden]{display:none!important}
#quote-form [aria-busy="true"]{cursor:wait}
.q-status{color:var(--q-ink);padding:14px 0;margin:12px 0 0;font-weight:650}
.q-actions{align-items:center;flex-wrap:wrap}
.q-actions button{max-width:100%;min-width:0}
.q-actions button:disabled{cursor:wait;opacity:.65}
.q-actions [data-submit]:disabled,.q-actions [data-retry]:disabled{cursor:not-allowed}
/* Bottom-sticky actions can move above their normal position and cover step text. */
@media(max-width:620px){#quote-form .q-actions{position:static}}
.choice-grid input:focus-visible+span,.choice-list input:focus-visible+span{outline:2px solid var(--q-gold);outline-offset:3px}
.choice-grid label,.choice-list label{position:relative}
#quote-form .choice-grid input,#quote-form .choice-list input{inset:0;width:100%;height:100%;margin:0;padding:0;cursor:pointer}
.quote-strip{background:#17140f;color:#fff;padding:38px 0}.quote-strip .wrap{display:flex;align-items:center;justify-content:space-between;gap:32px}.quote-strip h2{margin:5px 0 8px;font-size:clamp(1.6rem,3vw,2.7rem)}.quote-strip p{max-width:680px;margin:0;color:#cfc7ba}.quote-page{background:var(--q-paper)}.quote-hero{padding:160px 0 56px;background:#17140f;color:#fff}.quote-hero h1{font-size:clamp(2.6rem,6vw,5.6rem);max-width:820px;margin:.35rem 0 1rem;line-height:.98}.quote-hero h1 em{color:var(--q-gold);font-weight:400}.quote-hero p{font-size:1.1rem;color:#d9d1c6;max-width:650px}
.quote-shell{padding:64px 0 100px}.quote-layout{display:grid;grid-template-columns:300px minmax(0,760px);gap:48px;align-items:start}.quote-aside{position:sticky;top:120px}.progress-copy{display:flex;justify-content:space-between;font-size:.8rem;text-transform:uppercase;letter-spacing:.12em}.progress{height:3px;background:#d9d2c5;margin:12px 0 32px}.progress i{display:block;height:100%;width:14%;background:var(--q-gold);transition:.3s}.quote-aside h2{font-size:1.7rem;margin:0 0 10px}.quote-aside>p{color:#6b6358}.quote-trust{display:grid;gap:10px;margin-top:32px;color:#4f493f;font-size:.9rem}.quote-card{background:#fff;padding:clamp(24px,5vw,54px);box-shadow:0 20px 60px rgba(26,21,14,.08);min-height:560px}.q-step{display:none}.q-step.active{display:block}.q-step fieldset{border:0;padding:0;margin:0}.q-step legend{font-family:Georgia,serif;font-size:clamp(1.55rem,3vw,2.25rem);line-height:1.15;margin-bottom:8px;color:var(--q-ink)}.q-help,.q-note{color:#746b60;margin:0 0 24px}.q-note{font-size:.9rem;margin-top:12px}.quote-error{padding:13px 16px;margin-bottom:22px;background:#fff0ed;color:#8d2d1b;border-left:3px solid #a13d29}
.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:28px}.choice-grid label,.choice-list label{cursor:pointer}.choice-grid input,.choice-list input{position:absolute;opacity:0}.choice-grid span,.choice-list span{display:grid;gap:5px;border:1px solid var(--q-line);padding:20px;min-height:105px;transition:.2s}.choice-grid small,.choice-list small{color:#746b60;line-height:1.35}.choice-grid input:checked+span,.choice-list input:checked+span{border-color:var(--q-gold);box-shadow:inset 0 0 0 1px var(--q-gold);background:#fbf7f0}.choice-list{display:grid;gap:12px;margin-top:26px}.choice-list span{min-height:auto}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid .full{grid-column:1/-1}label{font-weight:650;color:#373126}input,select,textarea{display:block;width:100%;margin-top:8px;border:1px solid var(--q-line);background:#fff;padding:14px 13px;font:inherit;color:var(--q-ink);border-radius:0}input:focus,select:focus,textarea:focus{outline:2px solid rgba(187,145,96,.32);border-color:var(--q-gold)}.conditional{border-top:1px solid var(--q-line);margin-top:28px;padding-top:24px}.conditional h3{margin:0 0 16px}.check-row{display:flex;flex-wrap:wrap;gap:18px}.check-row label,.inline-check{display:flex;align-items:center;gap:8px}.check-row input,.inline-check input{width:auto;margin:0}.room-row{border-bottom:1px solid var(--q-line);padding:0 0 25px;margin-bottom:25px}.room-head{display:flex;justify-content:space-between;margin-bottom:15px}.room-head button,.add-room{border:0;background:none;color:#815d37;text-decoration:underline;cursor:pointer}.add-room{font-weight:700;padding:6px 0}.upload-zone{display:grid;place-items:center;text-align:center;border:1px dashed #ad987c;padding:35px;background:#fbf8f2;cursor:pointer;margin:24px 0}.upload-zone input{position:absolute;opacity:0;width:1px}.upload-zone span{display:grid;gap:5px}.upload-zone small{color:#746b60}.file-list{font-size:.85rem;color:#685e52;margin:-12px 0 24px;word-break:break-word}.q-actions{display:flex;justify-content:space-between;gap:16px;margin-top:38px;border-top:1px solid var(--q-line);padding-top:25px}.btn-back{border:0;background:none;font-weight:700;cursor:pointer}.q-actions .btn{margin-left:auto;border:0;cursor:pointer}.result-kicker{color:#876039;text-transform:uppercase;letter-spacing:.14em;font-size:.75rem;font-weight:700}.q-result h2{font-size:2.3rem;margin:8px 0 18px}.result-note{background:#f7f2e9;border-left:3px solid var(--q-gold);padding:18px;margin:26px 0}.result-note p{margin:6px 0 0;color:#655b4f}.result-actions{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0}.btn-outline{border:1px solid var(--q-ink);background:transparent;padding:14px 20px;font-weight:700;cursor:pointer}
@media(max-width:900px){.quote-layout{grid-template-columns:1fr}.quote-aside{position:static}.quote-aside h2,.quote-aside>p,.quote-trust{display:none}.quote-card{min-height:0}.quote-hero{padding-top:125px}.quote-strip .wrap{align-items:flex-start;flex-direction:column}}@media(max-width:620px){.quote-shell{padding:28px 0 70px}.quote-card{padding:24px 18px}.choice-grid,.form-grid{grid-template-columns:1fr}.quote-hero{padding-bottom:38px}.q-actions{position:sticky;bottom:0;background:#fff;padding-bottom:10px}.result-actions{display:grid}.result-actions>*{width:100%;text-align:center}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.estimate-box{padding:22px;background:#f7f2e9;border-left:3px solid var(--q-gold);margin:16px 0}.estimate-price{font:600 clamp(1.8rem,4vw,2.8rem)/1.1 Georgia,serif;margin:8px 0}.estimate-list{margin:12px 0 0;padding-left:20px}.submit-status{margin-top:14px;color:#655b4f}
#quote-form,.q-result{scroll-margin-top:100px}
