.quote-section{padding-top:clamp(32px,5vw,56px)}.quote-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:clamp(24px,4vw,48px);display:grid}@media (width<=1020px){.quote-layout{grid-template-columns:1fr}}.quote-form{gap:20px;display:grid}.hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.q-step{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--white);min-width:0;margin:0;padding:clamp(18px,3vw,28px)}.q-step legend{color:var(--navy);align-items:center;gap:12px;margin-left:-8px;padding:0 8px;font-size:1.25rem;font-weight:900;display:flex}.q-step .num{background:var(--blue);width:32px;height:32px;color:var(--white);border-radius:50%;place-items:center;font-size:.95rem;display:inline-grid}.q-step h3{text-transform:uppercase;letter-spacing:.08em;color:var(--steel);margin:26px 0 12px;font-size:1rem}.hint{color:var(--muted);margin:8px 0 14px;font-size:.95rem}.segmented{grid-template-columns:1fr 1fr;gap:12px;margin-top:8px;display:grid}.segmented label,.type-card,.end-pick{cursor:pointer;position:relative}.segmented input,.type-card input,.end-pick input{opacity:0;pointer-events:none;position:absolute}.segmented label>span{border:2px solid var(--line);border-radius:var(--radius);padding:14px 16px;transition:border-color .15s,background-color .15s;display:block}.segmented strong{color:var(--navy);display:block}.segmented small{color:var(--muted)}.segmented input:checked+span,.type-card:has(input:checked),.end-pick:has(input:checked){border-color:var(--blue);background:var(--blue-50);box-shadow:inset 0 0 0 1px var(--blue)}.segmented input:focus-visible+span,.type-card:has(input:focus-visible),.end-pick:has(input:focus-visible){outline:3px solid var(--copper);outline-offset:2px}.type-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:8px;display:grid}@media (width<=720px){.type-grid,.segmented{grid-template-columns:1fr 1fr}}.type-card{border:2px solid var(--line);border-radius:var(--radius);background:var(--white);flex-direction:column;transition:border-color .15s,background-color .15s;display:flex;overflow:hidden}.type-card .type-media{aspect-ratio:3/2;background:var(--white);overflow:hidden}.type-card img{object-fit:cover;width:100%;height:100%}.type-card .type-name{color:var(--navy);padding:10px 12px 12px;font-size:.95rem;font-weight:700;line-height:1.25}.units{background:var(--soft);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:8px 18px;padding:10px 14px;font-size:.95rem;display:flex}.units>span{color:var(--navy);font-weight:700}.units label{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.u-metric{display:none}.quote-form:has(input[name=units][value=metric]:checked) .u-metric{display:inline}.quote-form:has(input[name=units][value=metric]:checked) .u-imperial,.specs-group{display:none}.quote-form:has(input[name=springType][value=compression]:checked) .specs-group[data-type=compression],.quote-form:has(input[name=springType][value=extension]:checked) .specs-group[data-type=extension],.quote-form:has(input[name=springType][value=torsion]:checked) .specs-group[data-type=torsion],.quote-form:has(input[name=springType][value=divers]:checked) .specs-group[data-type=divers]{display:block}.quote-form:has(input[name=springType][value=divers]:checked) .units,.when-divers,.when-order{display:none}.quote-form:has(input[name=springType][value=divers]:checked) .when-divers{display:inline}.quote-form:has(input[name=springType][value=divers]:checked) .when-spring{display:none}.quote-form:has(input[name=requestType][value=commande]:checked) .when-order{display:inline}.quote-form:has(input[name=requestType][value=commande]:checked) .when-quote{display:none}.order-only{display:none!important}.quote-form:has(input[name=requestType][value=commande]:checked) .order-only{display:flex!important}.dyn-only{display:none!important}.specs-group:has(input[value=dynamique]:checked) .dyn-only{display:flex!important}.specs-top{grid-template-columns:minmax(0,.9fr) minmax(0,1fr);align-items:start;gap:24px;margin-top:18px;display:grid}.specs-top h3{margin-top:0}.specs-top .diagram{margin:0;position:sticky;top:96px}.specs-group[data-type=extension] .specs-top{grid-template-columns:1fr}.specs-group[data-type=extension] .specs-top .diagram{max-width:640px;position:static}.specs-group[data-type=extension] .specs-top .spec-fields{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}@media (width<=760px){.specs-top{grid-template-columns:1fr}.specs-top .diagram{max-width:420px;position:static}}.spec-fields{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px 16px;display:grid}.specs-top .spec-fields{grid-template-columns:1fr 1fr}@media (width<=340px){.specs-top .spec-fields{grid-template-columns:1fr}}.spec-field{flex-direction:column;gap:6px;min-width:0;display:flex}.spec-field.wide{grid-column:1/-1;margin-top:18px}.spec-fields .spec-field.wide{margin-top:0}.spec-field label,.spec-field .label-like{color:var(--navy);font-size:.9rem;font-weight:700;line-height:1.3}.spec-field .sym{min-width:1.9em;color:var(--blue);margin-right:4px;font-style:italic;display:inline-block}.req{color:var(--copper-strong)}.quote-form input[type=text],.quote-form input[type=email],.quote-form input[type=tel],.quote-form textarea{width:100%;font:inherit;color:var(--ink);background:var(--white);border-radius:var(--radius);border:1px solid #c4ccd7;min-height:46px;padding:10px 12px;font-size:1rem}.quote-form textarea{resize:vertical;line-height:1.5}.quote-form input:focus,.quote-form textarea:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px #0f3d8d2e}.quote-form input:user-invalid,.quote-form textarea:user-invalid{border-color:var(--error)}.input-wrap{align-items:center;display:flex;position:relative}.input-wrap:has(.unit) input{padding-right:64px!important}.input-wrap .unit{color:var(--steel);pointer-events:none;font-size:.85rem;position:absolute;right:12px}.states{gap:8px;display:grid}.states-head,.states-row{grid-template-columns:minmax(150px, 1.1fr) repeat(var(--cols), minmax(0, 1fr));align-items:center;gap:10px;display:grid}.states-head span{letter-spacing:.06em;text-transform:uppercase;color:var(--steel);font-size:.8rem;font-weight:700}.states-label{color:var(--navy);font-size:.92rem;font-weight:700}.state-cell .prefix{color:var(--blue);pointer-events:none;font-size:.9rem;font-style:italic;font-weight:700;position:absolute;left:12px}.state-cell input{padding-left:42px!important}.state-empty{border-radius:var(--radius);background:repeating-linear-gradient(135deg, var(--soft), var(--soft) 6px, #e9edf2 6px, #e9edf2 12px);height:46px}@media (width<=640px){.states-head{display:none}.states-row{border-bottom:1px solid var(--line);grid-template-columns:1fr;gap:6px;padding:10px 0}.state-empty{display:none}.state-cell:before{content:attr(data-col);color:var(--steel);font-size:.75rem;position:absolute;right:64px}}.ends-pick{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:10px;display:grid}.end-pick{border:2px solid var(--line);border-radius:var(--radius);text-align:center;background:var(--white);flex-direction:column;align-items:center;gap:8px;padding:10px 8px;display:flex}.end-pick img{object-fit:contain;width:auto;height:84px}.end-pick span{color:var(--navy);font-size:.85rem;font-weight:700;line-height:1.2}.pills{flex-wrap:wrap;gap:8px;display:flex}.pills label{cursor:pointer;border:1px solid #c4ccd7;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-size:.92rem;display:inline-flex}.pills label:has(input:checked){border-color:var(--blue);background:var(--blue-50);color:var(--blue);font-weight:700}.dropzone{border-radius:var(--radius-lg);background:var(--blue-50);border:2px dashed #a9b7cb;margin-top:8px;transition:border-color .15s,background-color .15s;position:relative}.dropzone.is-over{border-color:var(--blue);background:#dfe9f8}.dropzone input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.dropzone label{text-align:center;color:var(--blue);pointer-events:none;flex-direction:column;align-items:center;gap:6px;padding:30px 20px;display:flex}.dropzone strong{color:var(--navy);font-size:1.05rem}.dz-touch{display:none}@media (hover:none) and (pointer:coarse){.dz-touch{display:inline}.dz-pointer{display:none}}.dropzone small{color:var(--muted);max-width:52ch}.dropzone:has(input:focus-visible){outline:3px solid var(--copper);outline-offset:2px}.file-list{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.file-list li{border:1px solid var(--line);border-radius:var(--radius);background:var(--white);align-items:center;gap:12px;padding:8px 10px;display:flex}.file-list li.is-bad{border-color:var(--error);background:#fdf1f0}.file-list .thumb{background:var(--soft);width:44px;height:44px;color:var(--steel);text-transform:uppercase;border-radius:4px;flex:none;place-items:center;font-size:.7rem;font-weight:900;display:grid;overflow:hidden}.file-list .thumb img{object-fit:cover;width:100%;height:100%}.file-list .meta{flex:1;min-width:0}.file-list .meta strong{text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;display:block;overflow:hidden}.file-list .meta small{color:var(--muted)}.file-list .meta .bad{color:var(--error);font-weight:700}.file-list button{font:inherit;color:var(--error);cursor:pointer;background:0 0;border:0;padding:8px;font-size:.9rem}.q-submit{justify-items:start;gap:14px;display:grid}.btn-lg{min-height:56px;padding:.9em 1.8em;font-size:1.08rem}.q-submit button[disabled]{opacity:.6;cursor:progress}.progress{width:min(100%,420px)}.progress-bar{background:var(--soft);border-radius:999px;height:8px;overflow:hidden}.progress-bar span{background:var(--blue);width:0;height:100%;transition:width .2s;display:block}.progress small{color:var(--muted)}.form-error{border:1px solid var(--error);color:var(--error);border-radius:var(--radius);background:#fdf1f0;padding:12px 14px;font-weight:700}.fine{color:var(--muted);margin:0;font-size:.88rem}.q-success{border:1px solid var(--line);border-top:4px solid var(--success);border-radius:var(--radius-lg);background:var(--white);padding:clamp(24px,4vw,40px)}.q-success strong[data-ref]{color:var(--navy);letter-spacing:.04em;font-size:1.2rem}.quote-aside{gap:16px;display:grid;position:sticky;top:96px}@media (width<=1020px){.quote-aside{position:static}}.aside-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--soft);padding:22px}.aside-card h2{margin-bottom:.5em;font-size:1.15rem}.aside-card p{color:var(--muted);font-size:.95rem}.aside-card>a{display:block}.aside-phone{margin-bottom:4px;font-size:1.5rem;font-weight:900;text-decoration:none}.aside-card .pdf-list{grid-template-columns:1fr}
