.quote-page{background:#f3f7f8}
.quote-hero{padding:68px 8vw 46px;background:linear-gradient(115deg,#142b36,#1d4353);color:#f7fafb}
.quote-hero .eyebrow{color:#b4cbd2}
.quote-hero h1{font-size:clamp(46px,5vw,68px);line-height:1;letter-spacing:-.08em;margin:0 0 17px}
.quote-hero h1 span{color:var(--cyan);font-weight:500}
.quote-hero>p:last-child{font-size:13px;line-height:1.8;color:#c7d7dc;max-width:570px;margin:0}
.quote-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(270px,.75fr);gap:34px;align-items:start;padding:46px 8vw 100px;max-width:1440px;margin:0 auto}
.quote-form{background:#fff;border:1px solid #d9e4e7}
.quote-step{padding:27px 30px;border-bottom:1px solid #e0e9eb}
.quote-step:last-child{border-bottom:0}
.quote-step-head{display:flex;align-items:flex-start;gap:14px;margin-bottom:21px}
.quote-step-head>span{font:11px var(--mono);color:#5d9aab;border:1px solid #c6dfe4;padding:7px 8px}
.quote-step-head h2{font-size:18px;letter-spacing:-.035em;margin:0 0 5px;color:#193746}
.quote-step-head p{font-size:11px;color:#6f8188;line-height:1.6;margin:0}
.upload-box{min-height:150px;border:1px dashed #98b9c2;background:#f5f9fa;display:flex;align-items:stretch;justify-content:center;transition:border-color .2s,background .2s}
.upload-box:hover,.upload-box.is-dragging{border-color:#4b96a8;background:#eaf4f5}
.upload-box input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.upload-empty{width:100%;min-height:148px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;cursor:pointer;text-align:center;padding:20px}
.upload-empty[hidden],.upload-selected[hidden]{display:none}
.upload-box:has(.upload-selected:not([hidden])){min-height:0}
.upload-icon{font-size:24px;color:#548b9a;line-height:1}
.upload-box strong{font-size:12px;color:#244a5c}
.upload-box small{font-size:9px;color:#819198}
.upload-selected{width:100%;min-height:0;display:flex;align-items:center;gap:8px;padding:8px 10px;text-align:left}
.upload-file-icon{flex:0 0 26px;width:26px;height:26px;display:grid;place-items:center;background:#dceff2;color:#36788a;font:8px var(--mono);border:1px solid #bfdee4}
.upload-file-name{flex:1;min-width:0;font-size:10px;font-weight:700;color:#244a5c;overflow-wrap:anywhere}
.upload-remove{flex:0 0 26px;width:26px;height:26px;border:1px solid #cbdadd;border-radius:50%;background:#fff;color:#42606a;font:17px/1 var(--sans);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.upload-remove:hover{background:#173441;color:#fff;border-color:#173441}
.file-error{font-size:10px;color:#a43c3c}
.file-error.file-info{padding:9px 11px;background:#eef6f7;color:#386b7a;line-height:1.6}
.converted-download{margin-top:8px;border:0;background:transparent;padding:5px 0;color:#2d7386;font:10px var(--sans);font-weight:700;text-align:left;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.model-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:13px}
.model-stats span{padding:12px;background:#f1f6f7;display:flex;flex-direction:column;gap:5px}
.model-stats small{font:8px var(--mono);color:#76909a}
.model-stats b{font-size:12px;color:#193746}
.field-label{display:block;font-size:10px;font-weight:700;color:#35596a;margin:17px 0 7px}
.company-choice{margin:16px 0 22px;padding:14px 16px;border:1px solid #ccdde2;background:#f1f6f7}
.company-choice>label{display:flex;align-items:center;gap:10px;cursor:pointer;color:#35596a;font:600 12px/1.6 var(--sans)}
.quote-step .company-choice input[type=checkbox]{appearance:auto;width:17px;height:17px;min-height:0;padding:0;margin:0;flex:0 0 17px;accent-color:#315f70}
.company-choice #company-details{margin-top:16px}
.company-choice #company-details[hidden]{display:none}
.company-choice #customer-company{margin-bottom:0;background:#fff}
.field-label span{font-weight:400;color:#87969b}
.material-field-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:17px;margin-bottom:7px}
.material-field-head .field-label{margin:0}
.material-cost{display:inline-flex;align-items:center;gap:6px;color:#71858d;font-size:9px;white-space:nowrap}
.material-cost-caption{font-size:9px}
.material-cost-rating{letter-spacing:1px;color:#7ac8d2;font-size:12px;font-weight:700}
.material-cost-rating .is-muted{color:#cbd6d9}
.material-picker{position:relative}
.material-picker select{position:absolute;width:1px;height:1px;padding:0;border:0;opacity:0;pointer-events:none}
.material-picker-button{width:100%;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #ccdadd;background:#fff;padding:12px 13px;font:11px var(--sans);color:#193746;text-align:left;cursor:pointer}
.material-picker-button:focus-visible{outline:2px solid rgba(121,200,211,.65);outline-offset:1px}
.material-picker-chevron{font-size:16px;color:#35596a;transition:transform .2s ease}
.material-picker-button[aria-expanded="true"] .material-picker-chevron{transform:rotate(180deg)}
.material-picker-menu{position:absolute;z-index:20;top:calc(100% + 4px);left:0;right:0;max-height:320px;overflow:auto;border:1px solid #ccdadd;background:#fff;box-shadow:0 12px 28px rgba(20,47,58,.16)}
.material-picker-menu[hidden]{display:none}
.material-picker-group{padding:10px 13px 5px;color:#82949a;font-size:8px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.material-picker-option{width:100%;min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;border-top:1px solid #edf1f2;background:#fff;padding:8px 13px;color:#193746;font:11px var(--sans);text-align:left;cursor:pointer}
.material-picker-option:hover,.material-picker-option:focus-visible{background:#f0f7f8;outline:none}
.material-picker-option[aria-selected="true"]{background:#e9f5f6;color:#123b4a;font-weight:700}
.material-picker-option .material-cost-rating{flex:none}
select,.quote-step input:not([type=file]),.quote-step textarea{width:100%;border:1px solid #ccdadd;background:#fff;padding:12px 13px;font:11px var(--sans);color:#193746;border-radius:0;outline:none}
select:focus,.quote-step input:focus,.quote-step textarea:focus{border-color:#5c9cab;box-shadow:0 0 0 2px rgba(121,200,211,.17)}
.quote-step textarea{resize:vertical}
.quantity-control{display:flex;height:42px;border:1px solid #ccdadd;width:170px}
.quantity-control button{width:43px;border:0;background:#f0f6f7;font-size:18px;color:#325e70;cursor:pointer}
.quantity-control input{width:82px!important;border:0!important;text-align:center;padding:5px!important;font-size:12px!important}
.quote-submit{margin-top:20px;border:0;cursor:pointer;min-width:205px}
.quote-submit:disabled{opacity:.65;cursor:wait}
.quote-trap{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.request-feedback{font-size:10px;font-weight:600;line-height:1.6;color:#2d7386;margin:12px 0 0}
.request-hint{font-size:9px;line-height:1.6;color:#819198;margin:7px 0 0;max-width:390px}
.request-copy{margin-top:10px;border:1px solid #c6dfe4;background:#f5f9fa;color:#244a5c;padding:10px 13px;font-size:10px;font-weight:700;cursor:pointer}
.quote-summary{position:sticky;top:108px;background:#173441;color:#f6fafb;padding:25px 24px;box-shadow:0 15px 35px rgba(22,54,68,.12)}
.quote-summary .eyebrow{color:#8fb3be;margin-bottom:9px}
.quote-summary h2{font-size:22px;letter-spacing:-.05em;margin:0 0 22px}
.summary-row{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid rgba(199,221,226,.15);font-size:10px;color:#b8cbd0}
.summary-row strong{color:#f5f8f9;text-align:right;font-weight:600;max-width:65%;overflow-wrap:anywhere}
.summary-total{display:flex;justify-content:space-between;align-items:center;padding:17px 0 10px;font-size:11px;color:#d6e4e7}
.summary-total strong{font-size:23px;color:var(--cyan)}
.estimate-message{font-size:10px;line-height:1.7;color:#b5c9cf;margin:5px 0 18px}
.summary-note{display:flex;gap:9px;padding:12px;background:rgba(255,255,255,.06);color:#9fbac2}
.summary-note span{color:var(--cyan)}
.summary-note p{font-size:10px;line-height:1.65;margin:0}
.quote-success{width:min(92vw,460px);max-width:460px;margin:auto;padding:0;border:0;background:transparent;overflow:visible}
.quote-success::backdrop{background:rgba(8,24,32,.74);backdrop-filter:blur(4px)}
.quote-success-card{padding:36px;background:#f7fafb;color:#193746;box-shadow:0 24px 70px rgba(0,0,0,.28);text-align:left}
.quote-success-icon{width:44px;height:44px;display:grid;place-items:center;margin-bottom:22px;border-radius:50%;background:#d9f1e5;color:#16834f;font-size:25px;font-weight:700}
.quote-success.is-local .quote-success-icon{background:#e3eef4;color:#33798d}
.quote-success .eyebrow{margin-bottom:10px;color:#5d8d9b}
.quote-success h2{margin:0 0 12px;font-size:25px;line-height:1.15;letter-spacing:-.05em;color:#193746}
.quote-success-card>p:not(.eyebrow){margin:0;color:#5e727a;font-size:13px;line-height:1.75}
.quote-success-close{width:100%;justify-content:center;margin-top:24px;border:0;cursor:pointer}
@media(max-width:480px){.quote-success-card{padding:28px 23px}.quote-success h2{font-size:22px}}
.quote-page .site-header{z-index:10}
@media(max-width:800px){.quote-layout{grid-template-columns:1fr;padding:30px 20px 70px;gap:20px}.quote-summary{position:static;margin:18px 19px;padding:21px 18px}.quote-hero{padding:52px 22px 36px}.quote-step{padding:23px 19px}}
.model-preview{position:relative;margin-top:14px;height:320px;overflow:hidden;background:radial-gradient(ellipse at 50% 42%,#234b5c,#122b36 72%);border:1px solid #315563;touch-action:none}
.model-preview[hidden]{display:none}
.model-preview canvas{display:block;width:100%;height:100%;outline:none;cursor:grab}
.model-preview canvas:active{cursor:grabbing}
.preview-toolbar{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;background:linear-gradient(transparent,rgba(10,27,35,.88));pointer-events:none}
.preview-toolbar span{font:8px var(--mono);letter-spacing:.08em;color:#c7d9de}
.preview-toolbar button{border:1px solid rgba(166,211,221,.35);background:rgba(16,39,49,.75);padding:6px 9px;color:#e7f1f3;font:9px var(--sans);cursor:pointer;pointer-events:auto}
.preview-toolbar button:hover{background:#2b5868}
@media(max-width:800px){.model-preview{height:270px}}
@media(max-width:480px){.model-preview{height:230px}.preview-toolbar{padding:8px}.preview-toolbar span{font-size:7px}.preview-toolbar button{font-size:8px;padding:5px 7px}}
.model-stats{grid-template-columns:1.2fr 1fr 1fr;gap:8px}
.model-stats span{padding:11px 9px;min-width:0}
@media(max-width:480px){.model-stats{grid-template-columns:1fr}.model-stats span{padding:10px 11px}}
@media(max-width:700px){.quote-page .site-header{z-index:100}}


/* Direct quote request: dimensions and printing preferences. */
.model-stats{grid-template-columns:1fr}.model-stats[hidden]{display:none}
.dimensions-hint{font-size:10px;line-height:1.7;color:#71858d;margin:10px 0 0}
.print-quality{border:0;padding:0;margin:24px 0 0;min-width:0}.print-quality legend{font-size:10px;font-weight:700;color:#35596a;padding:0;margin-bottom:9px}
.print-quality-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.print-quality-option{position:relative;display:flex;cursor:pointer;min-width:0}.quote-step .print-quality-option input[type=radio]{position:absolute;width:1px;height:1px;margin:0;padding:0;border:0;opacity:0}
.print-quality-card{display:flex;flex-direction:column;gap:12px;width:100%;padding:15px 12px;border:1px solid #ccdadd;background:#fff;transition:background .2s,border-color .2s,box-shadow .2s}.print-quality-heading{display:flex;justify-content:space-between;align-items:center;gap:6px}.print-quality-heading strong{font-size:12px;color:#193746}.quality-cost{font-size:12px;font-weight:800;letter-spacing:1px;color:#427e8d}.print-quality-card>span:last-child{font-size:10px;line-height:1.65;color:#64777f}.print-quality-option input:checked+.print-quality-card{background:#eaf6f7;border-color:#4f95a5;box-shadow:inset 0 0 0 1px #4f95a5}.print-quality-option input:focus-visible+.print-quality-card{outline:3px solid #79c8d3;outline-offset:3px}.quality-hint{font-size:10px;line-height:1.7;color:#71858d;margin:11px 0 0}
.request-status{font-size:10px;line-height:1.7;color:#b5c9cf;margin:17px 0}.quote-submit{font-family:var(--sans)}
@media(max-width:480px){.print-quality-options{grid-template-columns:1fr}.print-quality-card{gap:7px;padding:13px 14px}}
/* Readable viewer controls, separate from the model canvas. */
.model-preview{height:auto;touch-action:auto}.preview-stage{height:320px;touch-action:none;overflow:hidden}
.model-stats.preview-dimensions{margin:0;gap:0;border-bottom:1px solid #315563}.model-stats.preview-dimensions span{padding:12px 16px;background:#173441;gap:6px}.preview-dimensions small{color:#aec8d0;font-size:9px;line-height:1.5}.preview-dimensions b{color:#f0f7f8;font-size:14px;font-variant-numeric:tabular-nums}
.preview-toolbar{position:static;display:block;padding:16px;background:#173441;pointer-events:auto;border-top:1px solid #315563}.preview-toolbar span{font:inherit;letter-spacing:normal;color:inherit}
.preview-help-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px;color:#f0f7f8;font-size:12px;font-weight:700}.preview-toolbar button{font:11px var(--sans);padding:8px 12px;min-height:36px;border-radius:3px;white-space:nowrap}
.preview-gestures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0}.preview-gestures dt{font-size:12px;font-weight:800;color:#9cdee6;margin:0 0 6px}.preview-gestures dd{margin:0;font-size:11px;line-height:1.65;color:#d2e1e6}.preview-gestures .gesture-touch{display:none}
@media(pointer:coarse){.preview-gestures .gesture-mouse{display:none}.preview-gestures .gesture-touch{display:inline}}
@media(max-width:800px){.preview-stage{height:270px}}
@media(max-width:480px){.preview-stage{height:250px}.preview-toolbar{padding:14px}.preview-gestures{grid-template-columns:1fr;gap:12px}.preview-gestures>div{display:grid;grid-template-columns:55px 1fr;gap:10px}.preview-gestures dt{margin:0}.preview-gestures dd{font-size:12px}}
.project-notes-hint{font-size:11px;line-height:1.7;margin:0 0 10px;color:#426570;background:#eef7f8;border-left:3px solid #79c8d3;padding:10px 12px}.project-notes-hint[hidden]{display:none}
