/* Dedicated quote component styles. No inherited decorative spool geometry. */
#quote-form .quote-card{scroll-margin-top:100px}
#quote-form .contact-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 20px;margin:28px 0}
#quote-form .contact-fields>label,#quote-form .custom-colour-field,#quote-form [data-path]>label{display:flex;flex-wrap:wrap;align-content:flex-start;align-items:center;gap:7px;font-size:.88rem;font-weight:650;line-height:1.45;min-width:0}
#quote-form .contact-fields .span-2{grid-column:1/-1}
#quote-form .contact-fields input,#quote-form .contact-fields textarea,#quote-form .custom-colour-field input,#quote-form [data-path] input:not([type=checkbox]),#quote-form [data-path] textarea{display:block;flex:0 0 100%;width:100%;min-width:0;max-width:100%;border:1px solid #cbd1d5;background:#fafbf9;color:#152128;border-radius:12px;padding:13px 14px;box-shadow:0 1px 2px #1111;line-height:1.5;min-height:50px}
#quote-form .contact-fields textarea,#quote-form [data-path] textarea{min-height:146px;resize:vertical}
#quote-form input::placeholder,#quote-form textarea::placeholder{color:#717c83;font-weight:400;opacity:1}
#quote-form .optional{font-weight:400;font-size:.8rem;color:#68757c}
#quote-form .consent{display:flex;align-items:flex-start;gap:12px;max-width:100%;font-size:.84rem;line-height:1.65;margin:4px 0 24px;padding:18px;background:#f2f5f3;border-radius:12px;color:#46545c}
#quote-form .consent input{flex:0 0 20px;width:20px;height:20px;margin:3px 0 0;accent-color:#17252c}
#quote-form .consent a{text-decoration:underline;text-underline-offset:3px}
#quote-form .mobile-submit{display:inline-flex;min-height:52px;width:auto;padding:0 24px}
#quote-form .material-choice-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
#quote-form .material-choice{min-height:120px;height:auto;padding:18px 15px;text-align:left;display:flex;flex-direction:column;justify-content:flex-start;gap:9px;border-radius:15px;border:1px solid #d9dfe0;box-shadow:none;background:#fafbf9}
#quote-form .material-choice strong{font-size:1rem;line-height:1.3}
#quote-form .material-choice small{font-size:.77rem;line-height:1.45;color:#5d6a72}
#quote-form .material-choice[aria-checked=true]{border:2px solid #346e72;padding:17px 14px;background:#eef6f3;box-shadow:0 0 0 3px #346e720d}
#quote-form .picker-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}
#quote-form .picker-heading p{font-size:.85rem;max-width:420px;line-height:1.6;margin:6px 0 0}
#quote-form .selection-label{font-size:.76rem;border:1px solid #cadbd5;background:#eff5f0;border-radius:20px;padding:6px 12px;white-space:normal}
#quote-form .rack-shell{position:relative;background:#efeee8;border:1px solid #dadcd5;border-radius:18px;padding:20px 20px 4px;box-shadow:inset 0 1px 4px #18242808;overflow:hidden;margin:0}
#quote-form .rack-label{position:static;display:flex;align-items:center;gap:8px;font-size:.64rem;letter-spacing:.12em;font-weight:750;color:#63716d;margin:0 0 12px}
#quote-form .rack-label>span{display:grid;place-items:center;width:24px;height:24px;border-radius:6px;background:#26342f;color:#e7d357;font-size:.58rem;letter-spacing:0}
#quote-form .filament-rack{display:block;min-height:0;padding:0;background:none;box-shadow:none;border:0;border-radius:0;overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth}
#quote-form .filament-rack:before,#quote-form .filament-rack:after{display:none}
#quote-form .reel-stack{display:flex;align-items:flex-start;gap:0;width:max-content;min-width:100%;padding:34px 36px 12px 4px;isolation:isolate}
#quote-form .stack-reel-option{appearance:none;position:relative;z-index:var(--stack-order);display:flex;flex-direction:column;align-items:center;flex:0 0 102px;width:102px;min-width:0;height:auto;padding:0;background:transparent;border:0;border-radius:10px;box-shadow:none;color:#1f2d27;cursor:pointer;text-align:center;transform:none;filter:none;scroll-snap-align:start}
#quote-form .stack-reel-art{display:block;position:relative;width:154px;height:190px;margin-left:33px;transform:translateY(calc(var(--stack-position) * -4px));transition:transform .22s cubic-bezier(.2,.7,.3,1),filter .22s;transform-origin:50% 85%;pointer-events:none}
#quote-form .stack-reel-svg{display:block;width:154px;height:184px;overflow:visible}
#quote-form .stack-reel-label{position:relative;display:grid;gap:6px;align-content:start;width:100%;min-height:80px;padding:10px 4px;border:1px solid transparent;border-radius:10px;background:#efeee8;line-height:1.4}
#quote-form .stack-reel-label strong{font-size:.78rem;font-weight:650;overflow-wrap:anywhere}
#quote-form .stack-selection{display:inline-block;justify-self:center;padding:3px 7px;border-radius:12px;font-size:.66rem;line-height:1.4;color:#64716b;border:1px solid transparent;white-space:nowrap}
#quote-form .stack-reel-option[aria-checked=true] .stack-reel-label{border-color:#34483e;background:#f7f8f1}
#quote-form .stack-reel-option[aria-checked=true] .stack-selection{background:#263d32;color:#fff}
#quote-form .stack-reel-option:hover .stack-reel-art,#quote-form .stack-reel-option:focus-visible .stack-reel-art{transform:translateY(calc(var(--stack-position) * -4px - 12px)) rotate(-3deg);filter:drop-shadow(0 9px 5px #1c2c2526)}
#quote-form .stack-reel-option:focus-visible{outline:3px solid #346e72;outline-offset:5px}
#quote-form .custom-colour-field{display:flex;margin:22px 0 0;max-width:100%;gap:8px}
#quote-form .custom-colour-field small{font-size:.76rem;color:#69766e;font-weight:400}
#quote-form .print-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding-top:26px;margin-top:26px}
#quote-form .print-options label{display:grid;gap:8px;font-size:.84rem;line-height:1.5;min-width:0}
#quote-form .print-options input,#quote-form .print-options select{min-height:50px;width:100%;min-width:0;font-size:.84rem;padding:11px 12px;border:1px solid #cbd1d5;border-radius:12px;background:#fafbf9;color:#152128}
#quote-form [data-path]{margin:20px 0;padding:20px}
#quote-form [data-path]>label{margin:0 0 16px}
#quote-form [data-path] label:has(input[type=checkbox]){flex-wrap:nowrap;align-items:flex-start;font-weight:400}
@media(max-width:720px){
 #quote-form .contact-fields{grid-template-columns:minmax(0,1fr);gap:18px;margin:24px 0}
 #quote-form .contact-fields .span-2{grid-column:1}
 #quote-form .contact-fields input,#quote-form .contact-fields textarea,#quote-form .custom-colour-field input{font-size:16px}
 #quote-form .mobile-submit{width:100%}
 #quote-form .material-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 #quote-form .material-choice{min-height:116px}
 #quote-form .rack-shell{padding:16px 12px 6px;margin-inline:-6px}
 #quote-form .filament-rack{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity}
 #quote-form .reel-stack{padding:32px 42px 8px 2px}
 #quote-form .stack-reel-option{flex-basis:100px;width:100px}
 #quote-form .stack-reel-label strong{font-size:.76rem}
 #quote-form .print-options{grid-template-columns:1fr;gap:18px}
 #quote-form .print-options .span-2{grid-column:1}
 #quote-form .consent{padding:14px;font-size:.82rem}
 .print-summary{margin-top:6px}
}
@media(prefers-reduced-motion:reduce){#quote-form .stack-reel-art{transition:none}#quote-form .stack-reel-option:hover .stack-reel-art,#quote-form .stack-reel-option:focus-visible .stack-reel-art{transform:translateY(calc(var(--stack-position) * -4px));filter:none}}
#quote-form .settings-level-control{margin:26px 0 0;border:0;padding:24px 0 0;border-top:1px solid #e2e7e3;min-width:0}
#quote-form .settings-level-control legend{float:left;width:100%;font-size:1rem;font-weight:750;padding:0;margin:0 0 6px}
#quote-form .settings-level-control>p{font-size:.83rem;margin:0 0 16px;clear:both;line-height:1.6}
#quote-form .settings-level-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}
#quote-form .settings-level-options label{display:flex;align-items:flex-start;gap:8px;position:relative;padding:14px 10px;border:1px solid #d4ddd5;border-radius:12px;background:#fafbf9;cursor:pointer;min-height:88px;min-width:0}
#quote-form .settings-level-options label:has(input:checked){border:2px solid #344f40;padding:13px 9px;background:#edf4ed}
#quote-form .settings-level-options input{flex:0 0 17px;min-width:17px;width:17px;height:17px;min-height:17px;margin:3px 0 0;accent-color:#344f40}
#quote-form .settings-level-options span{display:grid;gap:4px;min-width:0}
#quote-form .settings-level-options strong{font-size:.82rem}
#quote-form .settings-level-options small{font-size:.7rem;font-weight:400;color:#67756b;line-height:1.4}
#quote-form .settings-level-help{padding:14px 16px;background:#f0f4ef;border-radius:10px;color:#3e5747}
#quote-form .print-options small{font-size:.74rem;color:#65756b;line-height:1.5}
#quote-form .advanced-print-options{border-top:1px dashed #c4d2c6}
#quote-form .advanced-print-options textarea{width:100%;min-height:100px;padding:12px;border:1px solid #cbd1d5;border-radius:12px;background:#fafbf9;resize:vertical}
@media(max-width:720px){#quote-form .settings-level-options{grid-template-columns:1fr}#quote-form .settings-level-options label{min-height:64px;padding:12px}#quote-form .settings-level-options label:has(input:checked){padding:11px}#quote-form .settings-level-options span{gap:2px}#quote-form .settings-level-options strong{font-size:.9rem}#quote-form .settings-level-options small{font-size:.76rem}}
#quote-form .mobile-filament-picker{display:none}
@media(max-width:720px){
 #quote-form .reel-stack{display:none}
 #quote-form .filament-rack{overflow:visible}
 #quote-form .mobile-filament-picker{display:block;padding:2px 0 14px}
 #quote-form .mobile-selected-reel{display:grid;grid-template-columns:115px 1fr;gap:16px;align-items:center;min-height:154px;padding:8px 10px 8px 2px;border-bottom:1px solid #d8dfd6}
 #quote-form .mobile-selected-reel>span{width:115px;display:block}
 #quote-form .mobile-selected-reel svg{width:115px;height:140px}
 #quote-form .mobile-selected-reel>div{display:grid;gap:5px}
 #quote-form .mobile-selected-reel small{font-size:.68rem;color:#647469}
 #quote-form .mobile-selected-reel strong{font-size:1rem;line-height:1.4;overflow-wrap:anywhere}
 #quote-form .mobile-selected-reel div>span{font-size:.75rem;color:#647469}
 #quote-form .mobile-colour-instruction{font-size:.77rem;color:#596d5e;line-height:1.5;margin:16px 2px 12px}
 #quote-form .mobile-colour-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
 #quote-form .mobile-colour-option{display:grid;grid-template-columns:24px minmax(0,1fr) 13px;align-items:center;gap:8px;padding:12px 9px;min-height:60px;border:1px solid #cad4c8;border-radius:12px;background:#fafbf7;color:#26382b;text-align:left;font-size:.76rem;line-height:1.35;box-shadow:none;transform:none;filter:none}
 #quote-form .mobile-colour-option i{width:24px;height:24px;border-radius:50%;border:1px solid #0003;box-shadow:inset 1px 2px 3px #fff3}
 #quote-form .mobile-colour-option span{overflow-wrap:anywhere}
 #quote-form .mobile-colour-option b{font-size:.85rem;color:#264f32}
 #quote-form .mobile-colour-option[aria-checked=true]{border:2px solid #345b3e;padding:11px 8px;background:#f5f8ee}
 #quote-form .mobile-colour-option:focus-visible{outline:3px solid #346e72;outline-offset:3px}
}

/* A real, visible native file control works reliably with mobile document providers. */
#quote-form .file-drop{position:relative}
#quote-form .file-drop input[type=file]{display:block;grid-column:1/-1;width:100%;min-height:48px;max-width:100%;font-size:16px;color:var(--ink);cursor:pointer}
#quote-form .file-drop input[type=file]::file-selector-button{min-height:44px;padding:10px 16px;margin-right:12px;border:0;border-radius:10px;background:#11161c;color:white;cursor:pointer}
.file-drop[hidden]{display:none!important}
