/* Product review workspace. No price totals or checkout are implied. */
.quote-page { background: #faf9f6; }
body:has(.quote-page) .jp-concierge { display: none; }
.quote-page .quote-hero { background: #f2eee5; border-bottom: 1px solid #e2dbcf; }
.quote-page .c-wrap.quote-hero-inner { display: flex; align-items: center; justify-content: space-between; gap: 36px; padding-block: 40px; }
.quote-page .quote-hero h1 { margin: 10px 0 16px; font-size: clamp(34px,4.2vw,56px); line-height: 1.08; }
.quote-page .quote-intro { margin: 0 0 20px; font-size: 17px; color: #6d6559; }
.quote-back { display: inline-flex; align-items: center; gap: 9px; min-height: 44px; font-size: 14px; font-weight: 600; color: #514536; }
.quote-back > span { transition: transform .2s; }
.quote-back:hover > span { transform: translateX(-4px); }
.quote-progress { display: grid; gap: 14px; padding: 0; margin: 0; list-style: none; flex: 0 0 auto; }
.quote-progress li { display: flex; align-items: center; gap: 12px; color: #867e72; font-size: 13px; }
.quote-progress li > span { display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid #d8d0c3; border-radius: 50%; font-size: 11px; font-weight: 600; }
.quote-progress li[aria-current] { color: #332d23; font-weight: 700; }
.quote-progress li[aria-current] > span { background: #332d23; border-color: #332d23; color: white; }
.quote-page .c-wrap.quote-workspace { padding-block: 36px 64px; }
.quote-list-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 24px; }
.quote-page .quote-list-heading h2 { margin: 0 0 8px; font-size: clamp(22px,2vw,28px); }
.quote-page .quote-list-heading p { margin: 0; color: #7a7165; font-size: 14px; }
.quote-count-pill { display: inline-flex; flex: none; flex-wrap: wrap; align-items: center; gap: 10px; border: 1px solid #dfd5c6; border-radius: 999px; background: #fffdf9; padding: 9px 15px; font-size: 13px; color: #716452; }
.quote-count-pill strong { color: #312a20; font-size: 14px; }
.quote-layout { display: grid; grid-template-columns: minmax(0,1fr) 330px; align-items: start; gap: 26px; }
.quote-layout:has(#quote-submit[hidden]) { grid-template-columns: minmax(0,1fr); }
.quote-products, #quote-items { min-width: 0; }
#quote-items { display: grid; gap: 20px; }
.quote-page .c-line-item { display: grid; grid-template-columns: 100px minmax(0,1fr); gap: 22px; padding: 24px; border: 1px solid #e4dccf; border-radius: 18px; background: white; box-shadow: 0 4px 18px #49372104; transform: none !important; }
.quote-product-image { display: block; border: 1px solid #eee7dc; border-radius: 12px; overflow: hidden; background: #f7f4ed; }
.quote-page .c-line-item img { display: block; width: 100%; height: auto; aspect-ratio: 1; padding: 6px; border-radius: 0; transition: transform .25s; }
.quote-product-image:hover img { transform: scale(1.05); }
.quote-product-info { min-width: 0; align-self: center; }
.quote-product-top { display: flex; justify-content: space-between; align-items: start; gap: 12px; }
.quote-page .quote-product-title { font-size: 18px; line-height: 1.4; font-weight: 700; text-decoration: none; color: #27231d; overflow-wrap: anywhere; }
.quote-product-title:hover { text-decoration: underline; text-underline-offset: 4px; }
.quote-page .quote-product-sku { display: inline-flex; padding: 3px 7px; margin: 10px 0 6px; border-radius: 5px; background: #f5f1e9; color: #756751; font-size: 11px; letter-spacing: .04em; }
.quote-page .quote-product-spec { margin: 0; font-size: 14px; color: #7a7062; overflow-wrap: anywhere; }
.quote-page .c-remove { display: inline-flex; align-items: center; justify-content: center; flex: none; gap: 5px; min-width: 40px; min-height: 40px; padding: 8px; border: 1px solid #eee5da; border-radius: 9px; color: #8b7764; background: white; font-size: 12px; transition: background .2s,color .2s; }
.quote-page .c-remove:hover { color: #9c4c3d; background: #fcf0ea; }
.quote-page .c-remove svg { width: 17px; height: 17px; }
.quote-page .c-line-item .c-line-fields { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(140px,.7fr) minmax(0,1.3fr); gap: 18px 16px; padding-top: 20px; border-top: 1px solid #eee8de; }
.quote-page .c-line-fields label, .quote-mode-label { display: block; font-size: 13px; font-weight: 600; color: #655b4d; }
.quote-page .c-line-fields input { display: block; min-height: 46px; padding: 11px 13px; margin-top: 8px; border: 1px solid #dcd3c5; border-radius: 9px; background: #fffefa; font-size: 16px; line-height: 1.4; transition: border-color .2s,box-shadow .2s; }
.quote-page .c-line-fields input::placeholder { color: #a29787; font-size: 14px; }
.quote-page .c-line-fields input:focus { border-color: #9d8564; box-shadow: 0 0 0 3px #ad96741a; outline: none; }
.quote-note-field { grid-column: 1 / -1; }
.quote-mode-options { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; margin-top: 8px; }
.quote-mode-option { display: flex; align-items: center; justify-content: center; gap: 5px; min-height: 46px; padding: 8px 7px; border: 1px solid #e1d8ca; border-radius: 9px; background: #fbfaf7; color: #796e5e; font-size: 14px; line-height: 1.4; font-weight: 500; text-align: center; cursor: pointer; transition: background .2s,border-color .2s,transform .2s; }
.quote-mode-option[aria-pressed="true"] { color: #423522; border-color: #c7b18d; background: #f0e5d2; box-shadow: inset 0 0 0 1px #c7b18d44; font-weight: 650; }
.quote-mode-option:hover { background: #f3eadb; border-color: #bda581; }
.quote-mode-option:active { transform: scale(.97); }
.quote-page :is(.quote-mode-option,.quote-clear,.c-remove,#undo-quote-list):focus-visible { outline: 2px solid #957d59; outline-offset: 3px; }
.quote-request { position: sticky; top: 192px; padding: 26px; border: 1px solid #ded3c2; border-radius: 18px; background: #f5f0e6; box-shadow: 0 6px 22px #49372105; }
.quote-request-top { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; }
.quote-request-icon { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid #d9cbb5; border-radius: 12px; color: #715936; background: #fffaf2; }
.quote-request-icon svg { width: 23px; height: 23px; }
.quote-page .quote-request h2 { margin: 0 0 12px; font-size: 26px; line-height: 1.18; letter-spacing: -.025em; }
.quote-page .quote-request-intro { color: #7a6d59; font-size: 14px; margin: 0 0 22px; }
.quote-totals { display: grid; gap: 12px; padding-block: 18px; border-block: 1px solid #dfd3c2; margin: 0 0 18px; }
.quote-totals > div { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.quote-page .quote-totals dt { font-size: 14px; color: #7a6d59; }
.quote-page .quote-totals dd { margin: 0; font-size: 16px; color: #403422; }
.quote-mode-summary { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 22px; }
.quote-mode-chip { padding: 4px 8px; border: 1px solid #ddd1be; border-radius: 6px; background: #fffaf2; font-size: 11px; color: #7b6b53; }
.quote-page .quote-continue { width: 100%; min-height: 50px; gap: 12px; font-size: 15px; border-radius: 10px; }
.quote-continue svg { flex: none; transition: transform .2s; }
.quote-continue:hover svg { transform: translateX(4px); }
.quote-page .quote-reassurance { margin: 12px 0 20px; text-align: center; color: #938570; font-size: 12px; line-height: 1.6; }
.quote-page details.quote-summary { padding: 16px 0; border-block: 1px solid #dfd3c2; margin-bottom: 18px; }
.quote-summary summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 32px; list-style: none; font-size: 13px; color: #66563f; }
.quote-summary summary::-webkit-details-marker { display: none; }
.quote-summary summary > span { flex: none; transition: transform .2s; }
.quote-summary[open] summary > span { transform: rotate(45deg); }
#quote-preview { white-space: pre-wrap; overflow-wrap: anywhere; font: 12px/1.7 Inter,Arial,sans-serif; max-height: 300px; overflow-y: auto; padding: 14px; margin-top: 12px; border-radius: 9px; background: #fffcf6; color: #736653; }
.quote-page .quote-policy { color: #8b7d69; font-size: 12px; line-height: 1.65; margin: 0 0 12px; }
.quote-clear { display: inline-flex; align-items: center; min-height: 44px; padding: 7px 0; margin-top: 6px; color: #916454; font-size: 13px; text-decoration: underline; text-underline-offset: 4px; background: none; border: 0; cursor: pointer; }
.quote-empty { display: flex; flex-direction: column; align-items: center; padding: 52px 24px; border: 1px dashed #d8cbb7; border-radius: 18px; background: white; text-align: center; }
.quote-empty-icon { display: grid; place-items: center; width: 72px; height: 72px; margin-bottom: 24px; border-radius: 50%; background: #f3ecde; color: #9a805a; }
.quote-page .quote-empty h3 { font-size: 26px; margin-bottom: 14px; }
.quote-page .quote-empty p { max-width: 420px; color: #867b6a; font-size: 15px; }
.quote-page .quote-empty .c-button { margin-top: 8px; font-size: 15px; }
.quote-undo { display: flex; justify-content: space-between; align-items: center; gap: 16px; border: 1px solid #d5dece; border-radius: 10px; padding: 10px 16px; margin-bottom: 20px; background: #edf2e7; color: #576b45; font-size: 14px; }
#undo-quote-list { min-height: 44px; padding: 8px 0 8px 14px; border: 0; background: transparent; color: #456036; font-weight: 700; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
@media(max-width:1099px){
 .quote-layout { grid-template-columns: minmax(0,1fr); }
 .quote-request { position: static; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 0 30px; }
 .quote-request > * { grid-column: 1; }
 .quote-request > .quote-request-top { grid-column: 1 / -1; }
 .quote-request > .quote-totals { grid-column: 2; grid-row: 2 / 4; }
 .quote-request > .quote-mode-summary { grid-column: 2; grid-row: 4; }
 .quote-request > .quote-continue { grid-column: 2; grid-row: 5; align-self: start; }
 .quote-request > .quote-reassurance { grid-column: 2; grid-row: 6; }
 .quote-request > .quote-summary { grid-column: 1; grid-row: 4 / 7; align-self: start; }
 .quote-request > .quote-policy, .quote-request > .quote-clear { grid-column: 1 / -1; }
}
@media(max-width:699px){
 .quote-page .c-wrap.quote-hero-inner { flex-direction: column; align-items: stretch; gap: 24px; padding-block: 30px; }
 .quote-progress { display: flex; flex-wrap: wrap; gap: 12px 18px; }
 .quote-progress li { font-size: 11px; gap: 6px; }
 .quote-progress li > span { width: 25px; height: 25px; font-size: 10px; }
 .quote-list-heading { align-items: start; flex-direction: column; }
 .quote-page .quote-list-heading p { font-size: 14px; }
 .quote-page .c-line-item { grid-template-columns: 78px minmax(0,1fr); gap: 16px; padding: 18px; }
 .quote-page .quote-product-title { font-size: 16px; }
 .quote-page .quote-product-spec { font-size: 13px; }
 .quote-product-top { gap: 6px; }
 .quote-page .c-remove { min-width: 44px; min-height: 44px; }
 .quote-page .c-remove > span { display: none; }
 .quote-page .c-line-item .c-line-fields { grid-template-columns: minmax(0,1fr); gap: 16px; padding-top: 16px; }
 .quote-request { display: block; padding: 24px; }
 .quote-page .quote-request h2 { font-size: 27px; }
}
@media(max-width:479px){
 .quote-page .quote-intro { font-size: 16px; }
 .quote-product-top { flex-direction: column; }
 .quote-page .c-line-item { position: relative; }
 .quote-page .quote-product-title { padding-right: 24px; }
 .quote-page .c-remove { position: absolute; top: 12px; right: 12px; width: 34px; height: 34px; min-width: 44px; min-height: 44px; border-color: transparent; background: transparent; }
 .quote-mode-options { grid-template-columns: minmax(0,1fr); }
 .quote-mode-option { justify-content: flex-start; padding-inline: 14px; font-size: 14px; }
 .quote-progress { gap: 10px; justify-content: space-between; }
 .quote-progress li { flex-direction: column; text-align: center; align-items: center; font-size: 11px; }
}
@media(prefers-reduced-motion:reduce){.quote-page * { transition: none !important; animation: none !important; }}
