:root{--green:#669933;--green-dark:#5ca032;--green-deeper:#669933;--green-light:#f6fce8;--green-mid:#c8e898;--green-border:#c8e898;--white:#ffffff;--off-white:#f8fdf2;--text-dark:#2a4010;--text-mid:#4a5c38;--text-light:#7a8f68;--border:#c8e898;--red:#d94040;--shadow-card:0 20px 60px rgba(50,90,20,0.22),0 4px 16px rgba(0,0,0,0.10);--shadow-sm:0 2px 8px rgba(50,90,20,0.10)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:'DM Sans',system-ui,sans-serif;min-height:100vh;padding:clamp(20px,4vw,42px) 16px 40px;background:var(--off-white);position:relative}.page-shell{width:100%}.quote-page-actions{display:flex;justify-content:flex-start;max-width:720px;margin:0 auto 12px}.site-return-link{display:inline-flex;align-items:center;color:var(--green-dark);font-size:14px;font-weight:700;line-height:1.4;text-decoration:none}.site-return-link::before{content:'<';margin-right:8px;font-size:16px;line-height:1}.site-return-link:hover{color:var(--green-deeper);text-decoration:underline}.page{max-width:720px;margin:0 auto;background:var(--white);border-radius:16px;overflow:hidden;border:1px solid #e0ecd0;box-shadow:0 4px 24px rgba(50,90,20,.1),0 1px 6px rgba(0,0,0,.06);position:relative;z-index:1}.page>div[style*="text-align:center"]{background:linear-gradient(135deg,var(--green-deeper) 0,var(--green-dark) 100%)!important;padding:1.75rem 2rem 1.5rem!important;border-bottom:none!important;margin-bottom:0!important;position:relative}.page>div[style*="text-align:center"]::after{content:'';position:absolute;bottom:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--green-mid),var(--green),var(--green-mid))}.progress{display:flex;gap:8px;margin:0;padding:1rem 2rem;align-items:center;background:var(--off-white);border-bottom:1px solid var(--border)}.prog-step{height:5px;flex:1;border-radius:99px;background:var(--border);transition:background .4s}.prog-step.done{background:var(--green)}.prog-step.current{background:linear-gradient(90deg,var(--green),var(--green-mid))}.prog-label{font-size:11px;color:var(--text-light);white-space:nowrap;margin-left:8px;font-weight:500;letter-spacing:.04em;text-transform:uppercase}.step{display:none;padding:2rem}.step.active{display:block}.review-note{display:none;margin:-.5rem 0 1.25rem;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--off-white);font-size:13px;color:var(--text-mid)}.review-note.visible{display:block}.editing-bar{display:none;margin:0 0 1rem;padding:10px 12px;border:1px solid var(--green-border);border-radius:10px;background:linear-gradient(135deg,var(--green-light),#e0f2c0);font-size:13px;color:var(--text-mid)}.editing-bar.visible{display:flex;align-items:center;justify-content:space-between;gap:12px}.review-actions{display:flex;flex-direction:column;gap:10px;margin-top:1rem}.review-actions-top{margin-top:0;margin-bottom:1rem}.success-actions .btn-secondary{display:flex;justify-content:center;text-align:center;text-decoration:none}.review-card-note{font-size:12px;color:var(--text-light);margin-top:6px}.security-note{margin-top:12px;padding:10px 12px;border:1px dashed var(--border);border-radius:10px;background:#fbfef7;font-size:12px;color:var(--text-light);line-height:1.6}.hp-field{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}h2{font-family:'Playfair Display',serif;font-size:22px;font-weight:700;color:var(--text-dark);margin-bottom:4px;letter-spacing:-.01em}h3{font-size:18px;font-weight:700;color:var(--green-dark);margin-bottom:1rem;padding-bottom:8px;border-bottom:1.5px solid var(--border);text-transform:uppercase;letter-spacing:.06em}.section-heading{font-size:20px;line-height:1.25}.sub{font-size:14px;color:var(--text-light);margin-bottom:1.5rem;line-height:1.6}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;margin-bottom:1rem}.variant-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:1rem}.prod-card,.var-card{border:1.5px solid var(--border);border-radius:14px;cursor:pointer;-webkit-tap-highlight-color:rgba(102,153,51,0.15);touch-action:manipulation;-webkit-user-select:none;user-select:none;transition:all .2s ease;background:var(--white);overflow:hidden;box-shadow:var(--shadow-sm)}.prod-card:hover,.var-card:hover{border-color:var(--green);background:var(--off-white);transform:translateY(-2px);box-shadow:0 8px 24px rgba(50,90,20,.16)}.prod-img{width:100%;height:120px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--green-light) 0,#dff0c0 100%);border-radius:0;position:relative}.prod-img::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--green-border),transparent)}.var-img{width:100%;height:100px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--green-light) 0,#dff0c0 100%);border-radius:0;position:relative}.var-img::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--green-border),transparent)}.prod-img svg,.var-img svg{width:72px;height:72px}.prod-info,.var-info{padding:10px 14px 12px;background:var(--white)}.prod-name,.var-name{font-size:13px;font-weight:600;color:var(--text-dark);letter-spacing:-.01em}.var-sub{font-size:12px;color:var(--text-light);margin-top:2px;line-height:1.5}.hover-hint{font-size:11px;color:var(--green);margin-top:3px;font-weight:500}.info-panel{margin-top:1rem;border:1.5px solid var(--green-border);border-radius:14px;padding:18px 20px;background:linear-gradient(135deg,var(--green-light),#e0f2c0);display:none}.info-panel.visible{display:block}.info-panel-title{font-size:14px;font-weight:600;color:var(--green-deeper);margin-bottom:8px;text-transform:uppercase;letter-spacing:.05em}.info-panel p{font-size:13px;color:var(--text-mid);line-height:1.75;margin-bottom:6px}.info-panel p:last-child{margin-bottom:0}.section{background:var(--off-white);border:1px solid var(--border);border-radius:14px;padding:1.4rem;margin-bottom:1.25rem}.field{margin-bottom:1rem}.field:last-child{margin-bottom:0}.field label{display:block;font-size:12px;color:var(--text-mid);margin-bottom:5px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.req{color:var(--red);margin-left:2px}.opt{font-size:11px;color:#aaa;margin-left:4px;font-weight:400;text-transform:none;letter-spacing:0}.field input,.field select,.field textarea{width:100%;font-size:14px;font-family:'DM Sans',system-ui,sans-serif;padding:9px 12px;border:1.5px solid var(--border);border-radius:10px;outline:0;background:var(--white);color:var(--text-dark);transition:border-color .2s,box-shadow .2s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(102,153,51,.12)}.field input::placeholder,.field textarea::placeholder{color:#bfc9b2;opacity:1}.field select{color:var(--text-dark);font-weight:500}.field select.unset{color:#bfc9b2;font-weight:400}.field select option{color:var(--text-dark);font-weight:500;background:#fff}.field select option:first-child{color:#bfc9b2;font-weight:400}.field textarea{resize:vertical;min-height:90px}@keyframes pulse-invalid-border{0%{border-color:var(--red);box-shadow:0 0 0 0 rgba(217,64,64,.08)}50%{border-color:#f06f6f;box-shadow:0 0 0 3px rgba(217,64,64,.16)}100%{border-color:var(--red);box-shadow:0 0 0 0 rgba(217,64,64,.08)}}.field input.invalid,.field select.invalid,.field textarea.invalid{border-color:var(--red)!important;background:#fff8f8;animation:pulse-invalid-border 2s ease-in-out infinite}.field input.required-pending,.field select.required-pending{border-color:var(--red);background:#fff4f4;animation:pulse-invalid-border 2s ease-in-out infinite}.field input.required-pending:focus,.field select.required-pending:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(217,64,64,.1)}.field input.validation-flash,.field input.validation-flash:focus,.field select.validation-flash,.field select.validation-flash:focus,.field textarea.validation-flash,.field textarea.validation-flash:focus{border-color:var(--red)!important;background:#ffecec!important;box-shadow:0 0 0 7px rgba(217,64,64,.3),0 0 0 2px rgba(217,64,64,.24) inset!important;animation:none!important;transition:border-color 90ms ease-out,background-color 90ms ease-out,box-shadow 90ms ease-out!important}.field input.validation-flash.validation-flash-fade,.field input.validation-flash.validation-flash-fade:focus,.field select.validation-flash.validation-flash-fade,.field select.validation-flash.validation-flash-fade:focus,.field textarea.validation-flash.validation-flash-fade,.field textarea.validation-flash.validation-flash-fade:focus{background:#fff8f8!important;box-shadow:0 0 0 0 rgba(217,64,64,.08),0 0 0 0 rgba(217,64,64,.08) inset!important;transition:border-color .7s ease-out,background-color .9s cubic-bezier(.16, 1, .3, 1),box-shadow .9s cubic-bezier(.16, 1, .3, 1)!important}.field input.measurement-input{max-width:160px}.upload-box{border:2px dashed var(--green-border);border-radius:10px;padding:36px 20px;min-height:130px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;cursor:pointer;background:var(--green-light);position:relative;transition:all .2s}.upload-box:hover{border-color:var(--green);background:#e4f5cc}.upload-box:focus-within{border-color:var(--green);box-shadow:0 0 0 3px rgba(102,153,51,.12)}.upload-box.drag-active{border-color:var(--green)}.upload-box input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.upload-label{font-size:13px;color:var(--text-mid);cursor:pointer}.upload-label span{color:var(--green);font-weight:600}.upload-note{font-size:11px;color:var(--text-light);margin-top:5px}.file-list{margin-top:8px}.file-item{display:flex;align-items:center;justify-content:space-between;padding:5px 10px;background:var(--white);border:1px solid var(--border);border-radius:8px;margin-top:4px;font-size:12px;color:var(--text-mid)}.file-remove{cursor:pointer;color:var(--red);font-size:14px;font-weight:600;background:0 0;border:none;padding:0 4px}.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.address-row{display:grid;grid-template-columns:2fr 0.8fr 0.8fr;gap:12px;align-items:start}.btn-row{display:flex;flex-direction:column;gap:10px;margin-top:1.5rem}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-btn{0%{background:#693}50%{background:#7ab83d}100%{background:#693}}.btn-primary{padding:10px 26px;font-size:14px;font-weight:600;font-family:'DM Sans',system-ui,sans-serif;background:linear-gradient(135deg,var(--green) 0,var(--green-dark) 100%);color:#fff;border:none;border-radius:10px;cursor:pointer;letter-spacing:.02em;box-shadow:0 4px 12px rgba(102,153,51,.35);transition:all .2s;width:100%;animation:pulse-btn 2s ease-in-out infinite}.btn-primary:hover{background:linear-gradient(135deg,var(--green-dark) 0,var(--green-deeper) 100%);box-shadow:0 6px 18px rgba(102,153,51,.45);transform:translateY(-1px)}.btn-secondary{padding:10px 22px;font-size:14px;font-weight:600;font-family:'DM Sans',system-ui,sans-serif;background:var(--white);color:var(--green-dark);border:1.5px solid var(--green-border);border-radius:10px;cursor:pointer;transition:all .2s;width:100%}.btn-secondary:hover{background:var(--green-light);border-color:var(--green)}.selected-product{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;margin:-.25rem 0 1.4rem;background:var(--white);border:1.5px solid var(--green-border);border-radius:12px;box-shadow:var(--shadow-sm)}.selected-product-copy{display:flex;flex-direction:column;gap:3px;min-width:0}.selected-product-label{font-size:10px;font-weight:700;color:var(--text-light);letter-spacing:.08em;text-transform:uppercase}.selected-product-name{font-size:16px;line-height:1.35;font-weight:700;color:var(--text-dark)}.product-link-btn{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:auto;margin:0;padding:8px 14px;font-size:13px;font-weight:600;font-family:'DM Sans',system-ui,sans-serif;color:#7a4f00;text-decoration:none;background:#fff8e8;border:1.5px solid #f0c060;border-radius:999px;transition:all .2s;white-space:nowrap}.product-link-btn:hover{background:#fff0cf;border-color:#d99a1e;color:#5a3c00}.btn-back{padding:10px 16px;font-size:14px;font-family:'DM Sans',system-ui,sans-serif;color:var(--text-light);background:0 0;border:1.5px solid var(--border);border-radius:10px;cursor:pointer;transition:all .2s;width:100%}.btn-back:hover{background:var(--off-white);border-color:#ccc}.page.is-submitting button{display:none!important;pointer-events:none}.err{font-size:13px;color:#c0392b;font-weight:600;display:none;align-items:center;gap:6px}.err:not(:empty){display:flex;background:#fdecea;border:1px solid #f5c6c6;border-radius:6px;padding:8px 12px;margin-top:8px}.err:not(:empty)::before{content:"⚠";font-size:11px}.req-note{font-size:12px;color:var(--text-light);margin-bottom:1.25rem}.crumb{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--text-mid);background:var(--green-light);border:1px solid var(--green-border);border-radius:99px;padding:4px 12px;margin-bottom:1.25rem;letter-spacing:.02em}.crumb-sep{color:var(--green)}.crumb strong{color:var(--green-darker,var(--green-dark));font-weight:600}.product-entry,.summary-card{border:1.5px solid var(--border);border-radius:14px;overflow:hidden;margin-bottom:1rem;box-shadow:var(--shadow-sm)}.product-entry-header,.sum-header{background:linear-gradient(135deg,var(--green-light) 0,#dff0c0 100%);padding:14px 18px;border-bottom:1px solid var(--border)}.product-entry-header p,.sum-header p{font-size:15px;font-weight:600;color:var(--green-deeper);font-family:'Playfair Display',serif}.product-entry-header span,.sum-header span{font-size:12px;color:var(--green);font-weight:500}.product-entry-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.product-entry-title{flex:1 1 auto;min-width:0}.product-entry-actions{display:flex;gap:8px;flex:0 0 auto;min-width:0}.product-edit-btn{width:auto;flex:0 0 auto;min-width:64px;padding:6px 14px;border-radius:999px;font-size:12px;line-height:1.2;box-shadow:0 1px 4px rgba(50,90,20,.08)}.product-delete-btn{width:auto;flex:0 0 auto;min-width:64px;padding:6px 14px;border-radius:999px;font-size:12px;line-height:1.2;color:#9a1f1f;border-color:#f0b1b1;box-shadow:0 1px 4px rgba(50,90,20,.08)}.product-delete-btn:hover{background:#fff1f1;border-color:#d94040}.product-entry-body,.sum-body{padding:14px 18px;background:var(--white)}.sum-section-head{font-size:10px;font-weight:700;color:var(--text-light);text-transform:uppercase;letter-spacing:.08em;padding:10px 0 4px}.sum-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--border);font-size:13px}.sum-row:last-child{border-bottom:none}.sum-row .lbl{color:var(--text-light)}.sum-row .val{color:var(--text-dark);font-weight:600;text-align:right;max-width:60%}.louvre-intro{background:linear-gradient(135deg,var(--green-light),#e4f5cc);border:1.5px solid var(--green-border);border-radius:12px;padding:16px 18px;margin-bottom:1.4rem}.louvre-intro p{font-size:13px;color:var(--text-mid);margin-bottom:10px;line-height:1.6}.louvre-intro ul{padding-left:1.2rem;list-style:disc}.louvre-intro li{font-size:13px;color:var(--text-mid);line-height:1.8}.louvre-image-notice{display:flex;align-items:flex-start;gap:12px;background:linear-gradient(135deg,#fff8e8,#fff3d0);border:1.5px solid #f0c060;border-radius:12px;padding:14px 16px;margin-bottom:4px}.louvre-notice-icon{font-size:22px;flex-shrink:0;margin-top:1px}.louvre-image-notice p{font-size:13px;color:#7a5500;line-height:1.55}.louvre-image-notice strong{color:#5a3c00;font-weight:700}.success-icon{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,var(--green-light),var(--green-mid));border:2px solid var(--green-border);display:flex;align-items:center;justify-content:center;margin-bottom:1rem;box-shadow:0 4px 12px rgba(102,153,51,.25)}@media (max-width:600px){body{padding:16px 0 0}.quote-page-actions{padding:0 16px}.page{border-radius:0;box-shadow:none}.page>div[style*="text-align:center"]{padding:1.25rem 1.25rem 1rem!important}.page>div[style*="text-align:center"] img{max-height:60px!important}.progress{padding:.75rem 1.25rem}.step{padding:1.25rem}h2{font-size:19px}.product-grid{grid-template-columns:repeat(2,1fr);gap:10px}.prod-img{height:90px}.prod-name{font-size:12px}.variant-grid{grid-template-columns:repeat(2,1fr);gap:10px}.var-img{height:80px}.var-name{font-size:12px}.row2{grid-template-columns:1fr;gap:0}.address-row{grid-template-columns:1fr;gap:0}.field input.measurement-input{max-width:100%}.btn-row{flex-direction:column;gap:10px}.btn-back,.btn-primary,.btn-secondary{width:100%;text-align:center;padding:13px 20px;font-size:15px}.louvre-intro{padding:14px}.louvre-intro li{font-size:13px;line-height:1.7}.selected-product{align-items:stretch;flex-direction:column;gap:12px;padding:14px}.selected-product-name{font-size:15px}.product-link-btn{width:100%;padding:10px 14px}.louvre-image-notice{padding:12px}.product-entry-header{flex-direction:column;gap:10px}.product-entry-actions{width:100%;flex-direction:column}.product-delete-btn,.product-edit-btn{width:100%;padding:10px 14px}.sum-row{flex-direction:column;gap:2px;padding:8px 0}.sum-row .val{text-align:left;max-width:100%}.section{padding:1rem}.crumb{font-size:11px;padding:4px 10px}}@media (min-width:601px) and (max-width:768px){body{padding:1rem .75rem}.page{border-radius:16px}.product-grid{grid-template-columns:repeat(3,1fr)}.btn-row{flex-wrap:wrap}.btn-primary,.btn-secondary{flex:1}}.is-hidden{display:none!important}.prod-img img,.var-img img{max-width:100%;max-height:100%;object-fit:contain;display:block}@keyframes pulse-status-submitting{0%{background:#fff8e1;border-color:#f0b84a;box-shadow:0 0 0 0 rgba(240,184,74,.35)}50%{background:#fff0bd;border-color:#d99a1e;box-shadow:0 0 0 8px rgba(240,184,74,.12)}100%{background:#fff8e1;border-color:#f0b84a;box-shadow:0 0 0 0 rgba(240,184,74,.35)}}.status-message{display:none;margin:.75rem 0 1.25rem;border-radius:8px;padding:10px 14px;font-size:13px}.status-message.visible{display:block}.status-ok{background:#f6fce8;border:1px solid #c8e898;color:#693}.status-info{background:#fbfef7;border:1px solid #c8e898;color:#4a5c38}.status-error{background:#fff1f1;border:1px solid #f0b1b1;color:#8a1f1f}.status-submitting{background:#fff8e1;border:1.5px solid #f0b84a;color:#6d4700;font-weight:700;animation:pulse-status-submitting 1.1s ease-in-out infinite}@media (prefers-reduced-motion:reduce){.status-submitting{animation:none}.field input.validation-flash,.field select.validation-flash,.field textarea.validation-flash{animation:none!important;border-color:var(--red)!important;box-shadow:0 0 0 5px rgba(217,64,64,.24)}}.error-page{max-width:640px;margin:2rem auto}.error-card{padding:2rem}.error-card h1{font-family:'Playfair Display',serif;font-size:28px;line-height:1.2;color:var(--text-dark);margin-bottom:.75rem}.error-card p{color:var(--text-mid);font-size:15px;line-height:1.7;margin-bottom:1.25rem}.error-eyebrow{color:var(--green)!important;font-size:12px!important;font-weight:700;letter-spacing:.08em;margin-bottom:.5rem!important;text-transform:uppercase}.error-card a,.error-card span.btn-secondary{display:block;text-align:center;text-decoration:none}.error-debug{margin-top:1.5rem;border-top:1px solid var(--border);padding-top:1rem;color:var(--text-mid);font-size:13px}.error-debug summary{cursor:pointer;font-weight:600}.error-debug pre{margin-top:.75rem;overflow:auto;white-space:pre-wrap}