.quote-page { background: #f5f5f3; }
.quote-shell { width: min(1120px, calc(100% - 36px)); margin: 0 auto; padding: 46px 0 90px; }
.quote-page-head { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 32px; }
.quote-page-head h1 { margin: 4px 0 8px; font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.08; }
.quote-page-head p:last-child { max-width: 700px; margin: 0; color: var(--muted); }
.quote-back-link { color: var(--primary); font-weight: 600; text-decoration: none; }
.quote-add-products { display: inline-flex; align-items: center; gap: 8px; padding: 0; color: var(--primary); background: transparent; border: 0; font: inherit; font-weight: 600; cursor: pointer; }
.quote-add-products > span { display: grid; width: 24px; height: 24px; place-items: center; color: #fff; background: var(--primary); border-radius: 50%; font-size: 1.1rem; }
.quote-product-picker { width: min(620px, 100%); }
.quote-product-picker-menu { width: 100%; margin-top: 10px; padding: 10px; background: #fff; border: 1px solid #dadcda; border-radius: 7px; box-shadow: 0 10px 24px rgba(28, 29, 28, .1); }
.quote-product-picker-menu[hidden] { display: none; }
.quote-product-search input { width: 100%; margin-bottom: 8px; padding: 10px 12px; border: 1px solid #d2d4d2; border-radius: 5px; font: inherit; }
.quote-product-options { display: grid; max-height: 330px; overflow-y: auto; }
.quote-product-option { display: grid; grid-template-columns: 54px minmax(0, 1fr) auto; align-items: center; gap: 11px; width: 100%; padding: 8px; color: var(--ink); background: #fff; border: 0; border-bottom: 1px solid #ededeb; text-align: left; cursor: pointer; }
.quote-product-option:last-child { border-bottom: 0; }
.quote-product-option:hover, .quote-product-option:focus-visible { background: #fff5f5; }
.quote-product-option img { width: 54px; height: 48px; object-fit: contain; background: #fff; border-radius: 5px; }
.quote-product-option strong, .quote-product-option small { display: block; }
.quote-product-option small { margin-top: 2px; color: var(--muted); }
.quote-product-option em { color: var(--primary); font-size: .78rem; font-style: normal; font-weight: 600; }
.quote-product-options-empty { margin: 0; padding: 26px 12px; color: var(--muted); text-align: center; }
.quote-steps { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0 0 20px; padding: 0; list-style: none; }
.quote-steps li { position: relative; display: flex; align-items: center; gap: 10px; color: #8a8d8b; font-size: .86rem; }
.quote-steps li::after { content: ""; height: 2px; flex: 1; background: #d9dbd9; }
.quote-steps li:last-child::after { display: none; }
.quote-steps span { display: grid; width: 34px; height: 34px; place-items: center; border: 2px solid #d1d3d1; border-radius: 50%; background: #fff; font-weight: 600; }
.quote-steps li.is-active, .quote-steps li.is-complete { color: var(--ink); }
.quote-steps li.is-active span, .quote-steps li.is-complete span { color: #fff; border-color: var(--primary); background: var(--primary); }
.quote-steps li.is-complete::after { background: var(--primary); }
.quote-wizard { background: #fff; border: 1px solid #e0e1df; border-radius: 8px; }
.quote-step { min-height: 390px; padding: 34px; scroll-margin-top: 100px; }
.quote-step[hidden] { display: none; }
.quote-step-head { display: flex; align-items: center; gap: 13px; margin-bottom: 26px; }
.quote-step-head > div > span { color: var(--primary); font-size: .78rem; font-weight: 600; text-transform: uppercase; }
.quote-step-head h2 { margin: 4px 0 0; font-size: 1.55rem; }
.quote-step-head > div { min-width: 0; }
.quote-pdf-button { display: grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px; margin-left: auto; padding: 9px; border: 1px solid #d8dad8; border-radius: 5px; background: #fff; cursor: pointer; }
.quote-pdf-button[hidden] { display: none; }
.quote-pdf-button img { width: 22px; height: 22px; }
.quote-pdf-button:hover, .quote-pdf-button:focus-visible { background: #fff0f0; border-color: var(--primary); }
.quote-pdf-button:disabled { opacity: .5; cursor: wait; }
[data-step="1"] .quote-consent { margin-top: 24px; }
.quote-step-icon { display: grid; flex: 0 0 44px; width: 44px; height: 44px; place-items: center; color: #fff; background: var(--primary); border-radius: 6px; }
.quote-step-icon svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.quote-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.quote-fields label { display: grid; gap: 7px; color: var(--ink); font-size: .88rem; font-weight: 500; }
.quote-fields .is-wide { grid-column: 1 / -1; }
.quote-fields input, .quote-fields textarea { width: 100%; padding: 12px 13px; color: var(--ink); background: #fff; border: 1px solid #cfd2cf; border-radius: 5px; font: inherit; outline: none; }
.quote-fields input:focus, .quote-fields textarea:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(200,43,42,.1); }
.quote-fields input.is-invalid { border-color: #d32626; }
.quote-products { display: grid; gap: 10px; margin-bottom: 20px; }
.quote-product { display: grid; grid-template-columns: 78px minmax(0, 1fr) 150px 40px; align-items: center; gap: 16px; padding: 10px; border: 1px solid #e3e4e3; border-radius: 6px; }
.quote-product img { width: 78px; height: 70px; object-fit: contain; background: #fff; border-radius: 5px; }
.quote-product h3 { margin: 0 0 3px; font-size: .98rem; }
.quote-product p { margin: 0; color: var(--muted); font-size: .8rem; }
.quote-product-services { grid-column: 1 / -1; display: grid; gap: 7px; padding: 12px; background: #f7f8f6; border-top: 1px solid #e3e4e3; }
.quote-product-services > strong { font-size: .78rem; }
.quote-service-option { display: grid; grid-template-columns: minmax(0, 1fr) 120px; align-items: center; gap: 12px; }
.quote-service-option > label:first-child { display: flex; align-items: center; gap: 9px; cursor: pointer; }
.quote-service-option > label:first-child span,
.quote-service-option small { display: block; }
.quote-service-option small { margin-top: 2px; color: var(--muted); font-size: .7rem; }
.quote-service-option > label:last-child { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 6px; color: var(--muted); font-size: .72rem; }
.quote-service-option input[type="checkbox"] { width: 17px; height: 17px; accent-color: var(--primary); }
.quote-service-option input[type="number"] { width: 100%; padding: 7px; border: 1px solid #d7dbd6; border-radius: 5px; }
.quote-service-option input:disabled { opacity: .45; }
.quote-quantity { display: grid; grid-template-columns: 38px 1fr 38px; height: 38px; border: 1px solid #d7d9d7; border-radius: 5px; overflow: hidden; }
.quote-quantity button { border: 0; background: #f3f3f1; font: inherit; font-size: 1.05rem; cursor: pointer; }
.quote-quantity input { min-width: 0; border: 0; text-align: center; font: inherit; }
.quote-remove { display: grid; width: 36px; height: 36px; place-items: center; color: #777; background: transparent; border: 0; border-radius: 50%; font-size: 1.25rem; cursor: pointer; }
.quote-empty { padding: 48px 20px; border: 1px dashed #ced0ce; border-radius: 6px; text-align: center; }
.quote-empty p { color: var(--muted); }
.delivery-options { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin: 0 0 24px; padding: 0; border: 0; }
.delivery-options legend { margin-bottom: 10px; font-weight: 600; }
.delivery-options label { display: flex; gap: 12px; padding: 16px; border: 1px solid #d8dad8; border-radius: 6px; cursor: pointer; }
.delivery-options input[type="radio"] { appearance: auto; flex: 0 0 18px; width: 18px; min-width: 18px; max-width: 18px; height: 18px; min-height: 18px; max-height: 18px; margin: 2px 0 0; padding: 0; accent-color: var(--primary); box-shadow: none; }
.delivery-option-icon { display: grid; flex: 0 0 38px; width: 38px; height: 38px; place-items: center; color: var(--primary); background: #fff0f0; border-radius: 5px; }
.delivery-option-icon svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.delivery-option-copy { min-width: 0; }
.delivery-options label:has(input:checked) { border-color: var(--primary); background: #fff7f7; }
.delivery-options small { display: block; margin-top: 3px; color: var(--muted); }
.shipping-calculator { margin-top: 26px; padding: 24px 0; border-top: 1px solid #d8dad8; border-bottom: 1px solid #d8dad8; }
.shipping-calculator[hidden] { display: none; }
.shipping-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.shipping-heading h3 { margin: 0; font-size: 1.15rem; }
.shipping-heading > span, .shipping-origin, .shipping-disclaimer { color: var(--muted); font-size: .83rem; }
.shipping-route { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 18px; margin: 20px 0; padding: 12px 0; border-top: 1px solid #e3e4e3; border-bottom: 1px solid #e3e4e3; }
.shipping-route[hidden], .shipping-express-price[hidden] { display: none; }
.shipping-route p { margin: 0; font-size: .88rem; }
.shipping-route-link { color: var(--primary); font-size: .85rem; }
.shipping-attribution { color: #5e5e5e; font: normal 400 12px/1.5 Roboto, Arial, sans-serif; white-space: nowrap; }
.shipping-options-title { margin: 20px 0 10px; font-size: .9rem; }
.shipping-mode-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.shipping-mode { display: grid; align-content: start; gap: 8px; min-height: 96px; padding: 14px; border: 1px solid #d8dad8; border-radius: 6px; }
.shipping-mode h5 { margin: 0; font-size: .88rem; font-weight: 500; overflow-wrap: anywhere; }
.shipping-mode p { margin: 0; font-size: 1rem; font-weight: 600; overflow-wrap: anywhere; }
.shipping-mode.is-pending p { color: var(--muted); font-size: .82rem; font-weight: 400; }
.shipping-express-price { font-size: .9rem; font-weight: 500; }
.shipping-message { margin: 16px 0 0; color: #505b54; font-size: .9rem; line-height: 1.6; }
.shipping-disclaimer { margin: 16px 0 0; line-height: 1.6; }
.quote-privacy-notice { margin: 10px 0 0; color: var(--muted); font-size: .78rem; line-height: 1.6; overflow-wrap: anywhere; }
.quote-privacy-notice a { color: var(--primary); }
@media (max-width: 760px) { .shipping-mode-options { grid-template-columns: 1fr; } .shipping-mode { min-height: 80px; } .shipping-heading { align-items: start; flex-direction: column; gap: 4px; } }
.quote-project-fields { margin-top: 20px; }
.quote-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-bottom: 24px; }
.quote-summary section { padding: 18px; background: #f7f7f5; border-radius: 6px; }
.quote-summary h3 { margin: 0 0 10px; font-size: 1rem; }
.quote-summary p, .quote-summary li { margin: 3px 0; color: var(--muted); font-size: .88rem; }
.quote-summary ul { margin: 0; padding-left: 18px; }
.quote-request-notice { margin: 0; padding-left: 14px; border-left: 3px solid var(--primary); color: var(--muted); font-size: .9rem; line-height: 1.6; }
.quote-request-notice strong { display: block; margin-bottom: 4px; color: var(--ink); }
.quote-summary-products li > small { display: block; margin: 4px 0 0 8px; color: #237a4b; }
.quote-item-price { display: block; margin-top: 5px; color: #237a4b; font-size: .72rem; }

.partner-quote-panel { margin-bottom: 26px; padding: 22px; background: #f5f7f5; border: 1px solid #dfe4df; border-radius: 7px; }
.partner-quote-panel[hidden] { display: none; }
.partner-quote-head { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 18px; }
.partner-quote-head h2, .partner-quote-head p { margin: 0; }
.partner-quote-head .eyebrow { margin-bottom: 5px; }
.partner-quote-head h2 + p { margin-top: 5px; color: var(--muted); font-size: .85rem; }
.partner-quote-fields { margin: 0; }
.quote-consent { display: flex; align-items: flex-start; gap: 10px; font-size: .88rem; }
.quote-consent input[type="checkbox"] { appearance: auto; flex: 0 0 18px; width: 18px; min-width: 18px; max-width: 18px; height: 18px; min-height: 18px; max-height: 18px; margin: 1px 0 0; padding: 0; accent-color: var(--primary); box-shadow: none; }
.quote-consent a { color: var(--primary); }
.quote-error { margin: 0 34px 20px; padding: 11px 13px; color: #9e1919; background: #fff0f0; border: 1px solid #f0c4c4; border-radius: 5px; }
.quote-controls { display: flex; align-items: center; gap: 12px; padding: 18px 34px; background: #f7f7f5; border-top: 1px solid #e5e6e4; }
.quote-controls [hidden] { display: none !important; }
.quote-controls .button { scroll-margin-block: 100px; }
.quote-controls span { flex: 1; color: var(--muted); font-size: .82rem; text-align: center; }
.quote-secondary { color: var(--ink); background: #fff; border: 1px solid #cfd1cf; }
.quote-success { padding: 70px 24px; background: #fff; border: 1px solid #e0e1df; border-radius: 8px; text-align: center; }
.quote-success-icon { display: grid; width: 58px; height: 58px; margin: 0 auto 18px; place-items: center; color: #fff; background: #288b00; border-radius: 50%; font-size: 1.6rem; }
.quote-success h2 { margin: 4px 0 10px; }
.quote-success .button { margin-top: 14px; }
@media (max-width: 760px) { .quote-shell { width: calc(100% - 20px); padding-top: 26px; } .quote-page-head, .partner-quote-head { align-items: flex-start; flex-direction: column; } .quote-steps strong { display: none; } .quote-step { min-height: 0; padding: 22px 16px; } .quote-fields, .delivery-options, .quote-summary { grid-template-columns: 1fr; } .quote-product { grid-template-columns: 58px minmax(0, 1fr) 40px; gap: 10px; } .quote-product img { width: 58px; height: 58px; } .quote-quantity { grid-column: 2; width: 140px; } .quote-remove { grid-column: 3; grid-row: 1; } .quote-service-option { grid-template-columns: 1fr; } .quote-service-option > label:last-child { width: 120px; margin-left: 26px; } .quote-controls { padding: 14px 16px; } .quote-controls span { display: none; } .quote-controls .button { flex: 1; } }
