.quote-page { min-height: auto; padding: 11rem 2.5rem 5rem; background: #000; color: #f4f4f4; }
.quote-shell { max-width: 118rem; margin: 0 auto; }
.quote-heading { max-width: 75rem; margin: 0 auto 3rem; text-align: center; }
.quote-back { display: inline-flex; gap: .7rem; align-items: center; color: #aaa; text-decoration: none; font-size: 1rem; margin-bottom: 2.5rem; }
.quote-eyebrow { margin: 0 0 1rem; color: var(--primary-color); font: 600 .85rem 'Source Code Pro', monospace; letter-spacing: .15em; }
.quote-heading h1 { margin: 0 0 1rem; font-size: clamp(2.2rem, 5vw, 4rem); line-height: 1.08; }
.quote-heading > p:last-child { max-width: 62rem; margin: auto; color: #aaa; font-size: 1rem; line-height: 1.7; }
.quote-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(25rem, .8fr); align-items: start; gap: 2rem; }
.quote-form-card,.quote-summary-card { border: 1px solid #282828; border-radius: 1.2rem; background: #090909; padding: clamp(1.5rem, 3vw, 3rem); }
.quote-form-card { min-height: 0; }
.quote-progress-top { display:flex; justify-content:space-between; color:#aaa; font:600 .85rem 'Source Code Pro',monospace; }
.quote-progress-track { height:.35rem; background:#272727; border-radius:1rem; margin:1rem 0 2.4rem; overflow:hidden; }
.quote-progress-track span { display:block; height:100%; width:8%; background:var(--primary-color); transition:width .25s ease; }
.quote-alert { display:none; margin-bottom:1.5rem; border:1px solid #98431d; background:rgba(255,98,0,.1); color:#ffd0b3; border-radius:.6rem; padding:.9rem 1rem; font-size:.9rem; }
.quote-alert.visible { display:block; }
.quote-step h2 { margin:0 0 .5rem; font-size:clamp(1.35rem,2.3vw,1.8rem); }
.quote-step-intro { color:#aaa; font-size:.92rem; line-height:1.6; margin:0 0 1.6rem; }
.quote-project-grid,.quote-choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
.quote-choice { position:relative; display:flex; align-items:flex-start; gap:.8rem; min-height:4.3rem; border:1px solid #2a2a2a; background:#101010; padding:1rem; border-radius:.7rem; cursor:pointer; transition:border-color .18s,background .18s; }
.quote-choice:hover,.quote-choice:has(input:checked) { border-color:var(--primary-color); background:rgba(255,98,0,.08); }
.quote-choice input { width:1rem; height:1rem; accent-color:var(--primary-color); margin:.15rem 0 0; flex:0 0 auto; }
.quote-choice span { color:#eee; font-size:.9rem; line-height:1.45; }
.quote-choice small { display:block; margin-top:.25rem; color:#888; font-size:.76rem; }
.quote-field { display:grid; gap:.5rem; margin:1.15rem 0; }
.quote-field label,.quote-field legend { font-size:.88rem; color:#e7e7e7; font-weight:600; }
.quote-field .hint { font-size:.76rem; color:#888; }
.quote-field input,.quote-field select,.quote-field textarea { width:100%; border:1px solid #303030; background:#101010; color:#f4f4f4; border-radius:.55rem; padding:.85rem 1rem; font:400 .9rem 'Syne',sans-serif; }
.quote-field textarea { min-height:7rem; resize:vertical; }
.quote-field input:focus,.quote-field select:focus,.quote-field textarea:focus { outline:2px solid rgba(255,98,0,.6); border-color:var(--primary-color); }
.quote-fieldset { border:0; margin:1.5rem 0; padding:0; }
.quote-fieldset legend { margin-bottom:.8rem; }
.quote-subgroup { border-left:2px solid var(--primary-color); margin:1rem 0; padding:.1rem 0 .1rem 1rem; }
.quote-nav { display:flex; justify-content:space-between; gap:1rem; margin-top:2.2rem; padding-top:1.2rem; border-top:1px solid #262626; }
.quote-button { border:1px solid #383838; border-radius:999px; padding:.85rem 1.25rem; background:transparent; color:#eee; font:600 .88rem 'Syne',sans-serif; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; gap:.65rem; }
.quote-button:hover { border-color:var(--primary-color); }
.quote-button-primary { border-color:var(--primary-color); background:var(--primary-color); color:#fff; }
.quote-button-primary:hover { background:#e85a00; }
.quote-button:disabled { opacity:.5; cursor:wait; }
.quote-summary-card { position:sticky; top:7.5rem; }
.quote-summary-kicker { color:var(--primary-color); font:600 .8rem 'Source Code Pro',monospace; letter-spacing:.12em; margin:0 0 .8rem; }
.quote-summary-card h2 { font-size:1.2rem; margin:0 0 .5rem; }
.quote-summary-status,.quote-summary-caption { color:#999; font-size:.8rem; line-height:1.5; }
.quote-summary-price { margin:1.3rem 0 .2rem; font-size:clamp(1.8rem,3vw,2.7rem); font-weight:700; letter-spacing:-.04em; }
.quote-summary-caption { margin:0; }
.quote-summary-details { margin-top:1.4rem; border-top:1px solid #282828; }
.quote-summary-row { display:flex; justify-content:space-between; gap:1rem; padding:.7rem 0; border-bottom:1px solid #202020; color:#aaa; font-size:.78rem; }
.quote-summary-row strong { color:#eee; text-align:right; }
.quote-summary-note { display:flex; gap:.7rem; color:#999; font-size:.75rem; line-height:1.55; margin-top:1.4rem; }
.quote-summary-note i { color:var(--primary-color); margin-top:.15rem; }
.quote-review-list { display:grid; gap:.8rem; }
.quote-review-item { border:1px solid #252525; border-radius:.65rem; padding:.9rem 1rem; display:grid; grid-template-columns:1fr auto; gap:.5rem 1rem; }
.quote-review-item strong { font-size:.88rem; }
.quote-review-item p { grid-column:1; margin:0; color:#aaa; font-size:.8rem; line-height:1.5; }
.quote-edit { grid-column:2; grid-row:1 / span 2; align-self:center; border:0; background:none; color:var(--primary-color); cursor:pointer; font:600 .8rem 'Syne',sans-serif; }
.quote-total-panel { border:1px solid #333; background:#101010; border-radius:.7rem; padding:1rem; margin:1.2rem 0; }
.quote-total-line { display:flex; justify-content:space-between; gap:1rem; padding:.35rem 0; color:#bbb; font-size:.83rem; }
.quote-total-line strong { color:white; }
.quote-consent { display:flex; gap:.7rem; align-items:flex-start; color:#aaa; font-size:.78rem; line-height:1.5; margin:1rem 0; }
.quote-consent input { accent-color:var(--primary-color); margin-top:.2rem; }
.quote-success { border:1px solid rgba(255,98,0,.4); border-radius:.8rem; padding:1.2rem; background:rgba(255,98,0,.08); }
.quote-success h3 { margin:.2rem 0 .5rem; }
.quote-print-document { display:none; }
@media(max-width:850px) { .quote-layout { grid-template-columns:1fr; } .quote-summary-card { position:static; grid-row:1; } }
@media(max-width:560px) { .quote-page { padding:9rem 1rem 3rem; } .quote-project-grid,.quote-choice-grid { grid-template-columns:1fr; } .quote-form-card,.quote-summary-card { padding:1.25rem; } .quote-nav .quote-button { padding:.75rem .95rem; } }
@media print { body * { visibility:hidden !important; } .quote-print-document,.quote-print-document * { visibility:visible !important; } .quote-print-document { display:block; position:absolute; inset:0; padding:1.5cm; background:white; color:#111; font:10pt Arial,sans-serif; } .quote-print-document h1 { font-size:22pt; } .quote-print-document h2 { font-size:14pt; margin-top:18pt; } .quote-print-document table { width:100%; border-collapse:collapse; margin:12pt 0; } .quote-print-document th,.quote-print-document td { border:1px solid #ccc; padding:6pt; text-align:left; } .quote-print-document .print-total { font-size:14pt; font-weight:bold; } }
