/* Get a Quote: the approved editorial design, in the shared site typefaces.
   Scope the presentation here; product rules and pricing stay in quote.js. */
.quote-redesign { --quote-green:#29483e; --quote-border:var(--p3,#e0e0e0); --quote-surface:var(--paper,#f5f5f5); --mute:#666; background:var(--quote-surface); }
/* Use the live site’s loaded weights: regular display type, medium emphasis. */
.quote-redesign :where(.wizard-panel,.summ) :is(strong,b) { font-weight:500; }
.quote-redesign :is(.oc-badge,.m6pfb,.m6fam .fnm,.m6fam .ftag,.m6wbtn,.m6pcap b,.m6psoft a,.covsubhd,.covercard .covhd .hd1,.extra-label,.extra-badge,.cloth-name,.bc-name,.ta-premium-badge,.qsz-lab,.qsz-verdict b) { font-weight:500; }
.quote-redesign :is(.summ-primary,.summ-secondary,.summ-emailcapture button,.summ-trust b) { font-weight:500; }
.quote-redesign [hidden] { display:none !important; }
.quote-load-error { max-width:1216px; margin:85px auto 0; padding:16px 22px; background:#fff6f8; border:1px solid #ead2d9; border-radius:8px; display:flex; flex-wrap:wrap; gap:12px; align-items:center; font-size:14px; }
.quote-load-error button,.quote-price-recovery button { border:0; border-radius:5px; background:var(--red); color:white; padding:12px 18px; min-height:44px; font:500 14px var(--fb); cursor:pointer; }
.quote-load-error a,.quote-price-recovery a { color:var(--red); text-decoration:underline; text-underline-offset:3px; }
.quote-price-recovery { display:flex; flex-direction:column; align-items:flex-start; gap:14px; padding:0 0 20px; font-size:13px; line-height:1.5; }
.quote-redesign .ph { background:var(--quote-surface); padding-top:68px; }
.quote-redesign .ph::before { display:none; }
.quote-redesign .ph-in { max-width:1280px; padding:38px 32px 26px; display:block; }
.quote-redesign .eyebrow { font-size:12px; letter-spacing:1.7px; margin-bottom:12px; }
.quote-redesign .ph h1 { color:var(--ink); font-size:clamp(38px,4.4vw,58px); line-height:1.03; margin-bottom:12px; font-weight:300; }
.quote-redesign .ph-desc { max-width:760px; font-size:16px; color:var(--mute); line-height:1.6; }
.quote-redesign .quote-trust-bar { margin-top:13px; gap:20px; font-size:12px; }
.quote-redesign .qtb-rating { color:var(--ink); }
.quote-redesign .qtb-stars { color:var(--quote-green); }
.quote-redesign .body-wrap { background:var(--quote-surface); }
.quote-journey { max-width:1280px; margin:auto; padding:0 32px; scroll-margin-top:84px; }
.quote-redesign .step-tabs { border:1px solid var(--quote-border); background:white; border-radius:10px; overflow:hidden; }
.quote-redesign .step-tab { font:500 14px var(--fb); color:var(--mute); border:0; border-right:1px solid #ededE8; background:white; flex-direction:row; justify-content:center; gap:10px; padding:19px 12px; min-height:64px; }
.quote-redesign .step-tab:last-child { flex:.65; border-right:0; }
.quote-redesign .step-tab.active { background:#fbf4f5; color:var(--red); }
.quote-redesign .step-tab.active::after { bottom:0; height:3px; }
.quote-redesign .st-num { width:25px; height:25px; font:500 12px var(--fb); background:#f1f1ec; border:0; color:var(--mute); flex-shrink:0; }
.quote-redesign .step-tab.active .st-num { background:var(--red); color:#fff; }
.quote-redesign .step-tab.done .st-num { background:var(--quote-green); color:white; }
.quote-redesign .st-label { color:inherit; font-size:14px; line-height:1.3; }
.quote-redesign .body-in { max-width:1280px; padding:25px 32px 70px; grid-template-columns:minmax(0,1fr) 340px; gap:26px; }
.quote-redesign .wizard-panel { border:1px solid var(--quote-border); border-radius:12px; background:white; min-width:0; overflow:visible; scroll-margin-top:88px; }
.quote-redesign .pane-wrap { overflow:visible; }
.quote-redesign .step-pane { padding:30px; }
.quote-redesign .step-pane.active { animation:quote-arrive .2s ease-out; }
.quote-redesign .step-pane-title { font-size:34px; line-height:1.15; font-weight:400; margin-bottom:9px; }
.quote-redesign .step-pane-sub { color:var(--mute); font-size:15px; line-height:1.6; margin-bottom:27px; }
.quote-redesign .field-head, .quote-redesign .opt-hd { font-size:14px; font-weight:500; color:var(--ink); text-transform:none; letter-spacing:0; }
.quote-redesign .field label { color:var(--mute); font-size:13px; letter-spacing:0; text-transform:none; }
.quote-redesign .field input, .quote-redesign .field select, .quote-redesign .field textarea { border-radius:6px; background:#fff; min-height:46px; font-size:15px; }
.quote-redesign .field-hint { font-size:12px; }
.quote-spine-limit { margin:12px 0 0; padding:11px 14px; border-radius:6px; background:#f3f5ef; color:var(--quote-green); font-size:13px; line-height:1.6; }
.quote-spine-limit.over-limit { background:#fff2f5; color:var(--red); }
.quote-redesign .spine-result.over-limit .spine-mm { color:var(--red); }
.quote-redesign .quote-project { padding-top:23px; margin-top:26px; border-top:1px solid #e9e9e3; }
.quote-redesign .quote-project .field-row { margin-bottom:0; }
.quote-redesign #pane4 .quote-project { margin:22px 0; padding:20px; border:1px solid var(--quote-border); border-radius:8px; background:var(--quote-surface); }
.quote-redesign :is(.opt-card,.lam-card,.ta-card,.m6fam,.dj-card) { background:#fff; border:1px solid var(--quote-border); border-radius:8px; transition:background .15s,border-color .15s,box-shadow .15s; }
.quote-redesign :is(.opt-card,.lam-card,.ta-card,.m6fam,.dj-card):hover { background:#fafaf6; border-color:#b2b8ad; }
.quote-redesign :is(.opt-card,.lam-card,.ta-card).selected,.quote-redesign .m6fam.on { border:1px solid var(--red); box-shadow:0 0 0 1px var(--red); background:#fffafb; }
.quote-redesign #typeCards { gap:14px; }
.quote-redesign #typeCards .opt-card { padding:23px 22px; min-height:180px; }
.quote-redesign #typeCards .oc-icon svg { width:45px; height:57px; stroke:var(--quote-green); color:var(--quote-green); stroke-width:1.5; }
.quote-redesign #typeCards .oc-icon { margin-bottom:14px; }
.quote-redesign #typeCards .oc-label { font:400 25px/1.15 var(--fd); }
.quote-redesign .oc-sub { font-size:13px; line-height:1.55; }
.quote-redesign .oc-badge { font-size:10px; text-transform:none; letter-spacing:0; padding:4px 7px; max-width:70%; background:#edf1e9; color:var(--quote-green); }
.quote-redesign #sizeCards { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:9px; }
.quote-redesign #sizeCards .opt-card { padding:14px 7px; text-align:center; }
.quote-redesign #sizeCards .oc-label { font-size:14px; }
.quote-redesign #sizeCards .oc-sub { font-size:12px; white-space:normal; }
.quote-redesign .qsz-bar { border-radius:8px; flex-wrap:wrap; gap:15px; background:var(--quote-surface); }
.quote-redesign .qsz-verdict { font-size:13px; }
.quote-redesign .bindtiles { gap:12px; }
.quote-redesign .bindtiles .opt-card { padding:17px 14px; }
.quote-redesign .bindtiles .spine { margin-bottom:18px; }
.quote-redesign .bindtiles .oc-badge { position:static; display:inline-block; max-width:100%; margin-bottom:9px; }
.quote-redesign .covercard { border:0; padding:0; margin-bottom:0; }
.quote-redesign .covercard .covhd .hd2 { font-size:13px; }
.quote-redesign .lam-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.quote-redesign .lam-card { display:flex; flex-direction:column; align-items:stretch; gap:14px; padding:12px; }
.quote-redesign .lam-swatch { width:100%; height:104px; display:grid; place-items:center; border-radius:4px; overflow:hidden; position:relative; background:#29483e; color:#e8e1c6; }
.quote-redesign .lam-swatch span { font:400 48px/1 var(--fd); }
.quote-redesign .lam-swatch.gloss { background:linear-gradient(120deg,#223e34 15%,#3d5c4c 40%,#9aa598 48%,#355344 54%,#1e3e31 85%); }
.quote-redesign .lam-swatch.matt { background:#3b5144; }
.quote-redesign .lam-swatch.velvet { background:radial-gradient(ellipse at 20% 0%,#59705b,#233d30); }
.quote-redesign .lam-name { font-size:15px; font-weight:500; }
.quote-redesign .lam-desc { font-size:12px; line-height:1.55; }
.quote-redesign .lam-feel { font-size:12px; margin-top:10px; color:var(--quote-green); }
.quote-redesign .lam-feel span { display:block; }
.quote-finishes { margin-top:25px; border:1px solid var(--quote-border); border-radius:8px; }
.quote-finishes summary { padding:19px; cursor:pointer; font-weight:500; font-size:15px; }
.quote-finishes summary small { display:block; margin:4px 0 0 18px; font-weight:400; font-size:13px; color:var(--mute); }
.quote-finishes-body { padding:0 18px 18px; }
.quote-redesign .extras-section-label { font-size:12px; }
.quote-redesign .extra-card { background:var(--quote-surface); border-radius:7px; }
.quote-redesign :is(.extra-name,.dj-name) { font-size:14px; }
.quote-redesign :is(.extra-desc,.extra-cost,.dj-desc) { font-size:12px; }
.quote-redesign .m6pf { display:flex; padding:4px; margin-bottom:18px; }
.quote-redesign .m6pfb { flex:1; padding:13px; font-size:14px; }
.quote-redesign .m6pfb small { font-size:12px; line-height:1.5; }
.quote-redesign .m6paperbox { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:25px; }
.quote-redesign .m6plist { gap:8px; }
.quote-redesign .m6fam { padding:14px 12px; flex-wrap:wrap; }
.quote-redesign .m6fam .fnm { font-size:14px; }
.quote-redesign .m6fam .fuse { font-size:12px; margin-top:4px; }
.quote-redesign .m6fam .ftag { font-size:10px; }
.quote-redesign .m6ppg { width:min(230px,100%); }
.quote-redesign :is(.m6pcap,.m6psoft,.m6wline) { font-size:12px; line-height:1.6; }
.quote-redesign .m6wline { flex-wrap:wrap; justify-content:center; }
.quote-redesign .m6wbtn { font-size:12px; min-height:34px; }
.quote-redesign .qty-preset { font-size:14px; border-radius:5px; padding:9px 12px; }
.quote-redesign .qty-custom-input { border:1px solid var(--quote-border); padding:10px; border-radius:6px; color:var(--ink); width:130px; }
.quote-redesign .qty-slider { margin-top:8px; }
.quote-redesign .qty-marks { font-size:12px; }
.quote-redesign .ta-desc { font-size:13px; }
.quote-redesign .ta-days-label { font-size:12px; }
.quote-redesign .ta-days { font-size:26px; }
.quote-quantity-compare { margin:26px 0; overflow-x:auto; border:1px solid var(--quote-border); border-radius:8px; }
.quote-quantity-compare button { background:transparent; border:0; color:var(--red); font:500 13px var(--fb); cursor:pointer; min-height:30px; }
.quote-quantity-compare p { font-size:12px; padding:12px 16px; color:var(--mute); border-top:1px solid var(--quote-border); }
.quote-redesign #volChart { display:none !important; }
.quote-redesign .step-nav { padding-top:23px; margin-top:28px; gap:12px; }
.quote-redesign :is(.btn-next,.btn-prev) { font-size:14px; border-radius:6px; padding:14px 17px; text-transform:none; letter-spacing:0; }
.quote-redesign .btn-next { min-height:46px; }
.quote-redesign .summ { position:sticky; top:88px; border:1px solid var(--quote-border); border-radius:12px; overflow:hidden; box-shadow:0 9px 30px #293e3010; }
.quote-book-preview { margin:0; position:relative; background:#e9e7df; }
.quote-book-preview img { display:block; width:100%; height:240px; object-fit:cover; }
.quote-book-preview figcaption { font:italic 22px/1.3 var(--fd); color:var(--quote-green); background:#eeede7; text-align:center; padding:12px; }
.quote-book-preview figcaption span { display:block; font:400 11px/1.5 var(--fb); color:var(--mute); margin-top:3px; }
.quote-redesign .summ-topbar { padding:18px 22px 0; border:0; }
.quote-redesign .summ-topbar-label { font:400 24px/1.2 var(--fd); color:var(--ink); text-transform:none; letter-spacing:0; }
.quote-redesign .summ-live { font-size:12px; color:var(--quote-green); }
.quote-redesign .live-dot { background:var(--quote-green); }
.quote-redesign .price-total-block { padding:0; border:0; }
.quote-redesign #priceIncomplete { font-size:14px !important; color:var(--mute) !important; line-height:1.7; padding:22px !important; }
.quote-price-status { margin:16px 22px 0; padding:12px 14px; border:1px solid var(--quote-border); border-radius:6px; background:var(--quote-surface); color:var(--ink); font:400 13px/1.6 var(--fb); }
.quote-redesign #priceTotals.price-stale { opacity:1; }
.quote-price-pending :is(.pgv,.quote-price-breakdown) { color:var(--mute); }
.quote-share-actions { border:0; margin:0; padding:0; min-width:0; }
.quote-redesign .quote-share-actions:disabled button,.quote-redesign :is(#placeOrderBtn,#quoteMobileNext):disabled { opacity:.5; cursor:wait; }
.quote-redesign .bprice { text-align:left; padding:20px 22px 7px; }
.quote-redesign .bprice .pgl { font-size:12px; }
.quote-redesign .bprice .pgv { font:400 46px/1.1 var(--fd); }
.quote-redesign .bprice .ppc { text-align:left; font:500 16px/1.5 var(--fb); margin-top:4px; }
.quote-redesign .bprice .ppc-excl { text-align:left; font-size:12px; margin-top:4px; }
.quote-redesign .summ-cta { padding:10px 22px 6px; }
.quote-redesign :is(.summ-primary,.summ-secondary) { border-radius:6px; min-height:46px; }
.quote-redesign .summ-secondary { font-size:13px; padding:11px; margin-top:8px; }
.quote-redesign .quote-pdf-link { border:0; background:transparent; text-decoration:underline; text-underline-offset:3px; min-height:40px; margin-top:2px; }
.quote-redesign .quote-pdf-link:hover { background:#faf7f8; color:var(--red); }
.quote-action-help { font:400 11px/1.6 var(--fb); color:var(--mute); text-align:center; margin:7px 2px 0; }
.quote-redesign .summ-emailcapture label { flex-basis:100%; text-align:left; color:var(--ink); font:400 12px var(--fb); }
.quote-redesign .summ-emailcapture input,.quote-redesign .summ-emailcapture button { width:100%; flex:0 0 100%; box-sizing:border-box; }
.quote-shipping-timing { margin:5px 0 0; font:400 11px/1.6 var(--fb); color:var(--mute); }
.quote-redesign .summ-primary-note { font-size:12px; }
.quote-redesign :is(.summ-foot,.summ-review-by,.summ-trust) { font-size:12px; }
.quote-redesign .summ-details { text-align:left; margin:10px 22px 0; }
.quote-redesign #railSpecLine { font-size:13px; color:var(--mute); }
.quote-redesign .summ-details .summ-ta { justify-content:flex-start; }
.quote-redesign .summ-details .ta-badge { border:0; background:transparent; color:var(--mute); padding:0; font:400 12px/1.6 var(--fb); }
.quote-redesign #ptAltFormat { display:flex; align-items:center; flex-wrap:wrap; gap:14px; margin:-12px 0 28px; padding:15px 17px; text-align:left; border:1px solid var(--quote-border); border-radius:8px; background:var(--quote-surface); }
.quote-format-compare > div { flex:1 1 220px; }
.quote-format-compare :is(span,strong,small) { display:block; }
.quote-format-compare span { color:var(--mute); font-size:12px; }
.quote-format-compare strong { margin:4px 0; font:400 24px/1.2 var(--fd); }
.quote-format-compare small { color:var(--mute); font-size:11px; }
.quote-format-compare button { min-height:44px; padding:10px 0; border:0; background:transparent; color:var(--red); font:500 13px var(--fb); cursor:pointer; }
.quote-redesign .summ-review { margin:18px 0 0; padding:20px 22px; border:0; border-top:1px solid var(--quote-border); border-radius:0; background:#f5f6f0; }
.quote-redesign .summ-review-text { font-size:19px; line-height:1.4; }
.quote-redesign .summ-review-stars { color:var(--quote-green); }
.quote-redesign .val-hint { font-size:13px; scroll-margin-top:115px; }
.quote-redesign .rv3-title { font-family:var(--fd); font-size:34px; }
.quote-redesign .rv3-sd { font-size:13px; }
.quote-review-spec { border:1px solid var(--quote-border); border-radius:8px; margin:20px 0 30px; }
.quote-review-spec > div { padding:16px 18px; border-bottom:1px solid var(--quote-border); }
.quote-review-spec > div:last-child { border:0; }
.quote-review-spec dt { font-size:14px; font-weight:500; display:flex; align-items:center; justify-content:space-between; }
.quote-review-spec dd { color:var(--mute); font-size:14px; line-height:1.6; margin-top:6px; }
.quote-review-spec button { border:0; background:transparent; color:var(--red); padding:5px; font:500 13px var(--fb); cursor:pointer; }
.quote-redesign :is(button,a,input,select,textarea,summary,[tabindex]):focus-visible { outline:2px solid var(--red); outline-offset:4px; }
.quote-redesign label:has(input:focus-visible) { outline:2px solid var(--red); outline-offset:4px; }
.quote-redesign label:has(input:focus-visible) input { outline:none; }
.quote-redesign :is(.opt-card,.lam-card,.ta-card) input[type=radio] { display:block; position:absolute; width:1px; height:1px; opacity:0; }
.quote-sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.quote-mobile-bar { display:none; }
@keyframes quote-arrive { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:translateY(0); } }
@media (max-width:1100px) {
  .quote-redesign .body-in { grid-template-columns:minmax(0,1fr) 300px; gap:18px; }
  .quote-redesign .step-pane { padding:24px; }
  .quote-redesign .step-tab { gap:7px; padding:16px 8px; }
  .quote-redesign #sizeCards { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .quote-redesign .lam-cards { gap:8px; }
  .quote-redesign .lam-card { padding:9px; }
  .quote-redesign .m6paperbox { gap:14px; }
}
@media (max-width:1000px) {
  .quote-redesign .ph-in { padding:30px 20px 22px; }
  .quote-journey { padding:0 20px; }
  .quote-redesign .step-tabs { overflow-x:auto; }
  .quote-redesign .step-tab { flex:0 0 auto; padding:16px; }
  .quote-redesign .step-tab:last-child { flex:0 0 auto; }
  .quote-redesign .body-in { grid-template-columns:minmax(0,1fr); padding:20px 20px 40px; }
  .quote-redesign .summ { display:none; position:static; width:100%; max-width:none; }
  .quote-redesign[data-quote-step="4"] .summ,.quote-redesign[data-quote-price-seen="true"] .summ { display:block; scroll-margin-top:84px; }
  .quote-redesign[data-quote-step="4"] .quote-book-preview,.quote-redesign[data-quote-price-seen="true"] .quote-book-preview { display:none; }
  .quote-redesign .quote-mobile-bar { position:fixed; display:flex; bottom:0; left:0; right:0; z-index:450; justify-content:space-between; align-items:center; gap:12px; background:white; border-top:1px solid var(--quote-border); box-shadow:0 -4px 20px #00000008; padding:13px 20px calc(13px + env(safe-area-inset-bottom)); }
  .quote-mobile-bar span { display:block; font:400 20px/1.2 var(--fd); }
  .quote-mobile-bar small { display:block; color:var(--mute); font-size:11px; margin-top:4px; }
  .quote-mobile-bar button { background:var(--red); border:0; color:white; font:500 14px var(--fb); border-radius:6px; padding:13px 18px; min-height:46px; }
  .quote-redesign { padding-bottom:92px; }
  .quote-redesign #idc-bubble { bottom:102px; }
  .quote-redesign #idc-nudge { bottom:108px; }
}
@media (max-width:540px) {
  .quote-redesign .ph-in { padding:26px 16px 22px; }
  .quote-redesign .ph h1 { font-size:40px; }
  .quote-redesign .quote-trust-bar { gap:9px; font-size:12px; }
  .quote-redesign .quote-trust-bar .qtb-sep { display:none; }
  .quote-journey { padding:0 12px; }
  .quote-redesign .body-in { padding:14px 12px 35px; }
  .quote-redesign .step-pane { padding:23px 18px; }
  .quote-redesign .step-pane-title { font-size:30px; }
  .quote-redesign #typeCards .opt-card { padding:18px 13px; min-height:192px; }
  .quote-redesign #typeCards .oc-badge { top:9px; right:7px; }
  .quote-redesign #sizeCards { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .quote-redesign .field-row { grid-template-columns:minmax(0,1fr); }
  .quote-redesign .m6paperbox { grid-template-columns:minmax(0,1fr); gap:24px; }
  .quote-redesign .m6pfb { padding:10px; }
  .quote-redesign .bindtiles { flex-direction:column; }
  .quote-redesign .lam-cards { grid-template-columns:minmax(0,1fr); }
  .quote-redesign .lam-card { flex-direction:row; align-items:center; gap:16px; padding:14px; }
  .quote-redesign .lam-swatch { width:82px; height:105px; }
  .quote-redesign .lam-card > div:last-child { flex:1; }
  .quote-redesign .ta-card { padding:13px; gap:10px; }
  .quote-redesign .ta-icon { display:none; }
  .quote-redesign .step-nav { align-items:stretch; }
  .quote-redesign :is(.btn-next,.btn-prev) { padding:13px 11px; font-size:13px; }
  .quote-redesign .quote-finishes-body { padding:0 12px 12px; }
  .quote-redesign .extras-grid { grid-template-columns:minmax(0,1fr); }
}
@media (prefers-reduced-motion:reduce) {
  .quote-redesign .step-pane.active { animation:none; }
  .quote-redesign * { scroll-behavior:auto; }
}
@media print {
  .quote-redesign .quote-mobile-bar,.quote-redesign .quote-journey { display:none; }
  .quote-redesign .summ { position:static; display:block; }
  .quote-redesign .body-in { display:block; }
}

/* Approved v2: quantity first, pages as a total, and a useful quote rail. */
.quote-redesign .body-in { grid-template-columns:minmax(0,1fr) 355px; }
.quote-redesign .quote-save-strip { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:0 2px 14px; color:var(--mute); font-size:12px; }
.quote-redesign .quote-save-strip button,.quote-resume-banner button { border:0; background:transparent; color:var(--red); font:500 12px var(--fb); padding:9px 0; cursor:pointer; }
.quote-resume-banner { display:flex; align-items:center; flex-wrap:wrap; gap:16px; padding:15px 20px; margin-bottom:16px; border:1px solid #cbd8ca; background:#edf3e9; border-radius:8px; font-size:13px; }
.quote-resume-banner > span { flex:1; }
.quote-resume-banner button:last-child { color:var(--mute); font-weight:400; }
.quote-redesign .quote-quantity-first { padding:22px; border:1px solid var(--quote-border); background:var(--quote-surface); border-radius:9px; margin-bottom:26px; }
.quote-redesign .quote-quantity-first .qty-percopy-inline { display:none !important; }
.quote-redesign .quote-quantity-first .qty-slider-wrap { margin-bottom:0; }
.quote-redesign .quote-quantity-first .qty-big { display:none; }
.quote-redesign .quote-quantity-first .qty-custom-input { order:-1; width:140px; font:400 32px var(--fd); }
.quote-redesign .quote-page-input { display:flex; justify-content:space-between; gap:20px; align-items:center; padding:22px; background:#f4f6ef; border:1px solid #d9dfd1; border-radius:8px; }
.quote-page-input label { font-size:15px; font-weight:500; }
.quote-page-input > div { display:flex; align-items:center; gap:10px; color:var(--mute); font-size:13px; }
.quote-redesign .quote-page-input input { width:130px; min-width:0; font:400 32px var(--fd); color:var(--ink); border:1px solid #cbd3c2; background:white; border-radius:6px; padding:8px 12px; }
.quote-print-modes,.quote-paper-shortcuts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:18px 0; }
.quote-print-modes button,.quote-paper-shortcuts button { text-align:left; padding:17px 13px; background:white; border:1px solid var(--quote-border); border-radius:8px; color:var(--ink); cursor:pointer; font:400 13px var(--fb); }
.quote-print-modes strong,.quote-paper-shortcuts strong { display:block; font-size:13px; margin-bottom:6px; }
.quote-print-modes small,.quote-paper-shortcuts small { display:block; font-size:11px; line-height:1.5; color:var(--mute); }
.quote-print-modes button[aria-pressed="true"],.quote-paper-shortcuts button[aria-pressed="true"] { background:#fffafb; border-color:var(--red); box-shadow:0 0 0 1px var(--red); }
.quote-ink { display:block; width:27px; height:27px; border-radius:50%; margin-bottom:13px; box-shadow:0 0 0 3px #f1f1ec; }
.quote-ink.mono { background:#303b35; }.quote-ink.mixed { background:linear-gradient(90deg,#303b35 50%,#cf9474 50%); }.quote-ink.colour { background:conic-gradient(#af435b,#d8b56c,#84a699,#7496ab,#af435b); }
.quote-mixed-pages { display:flex; flex-wrap:wrap; align-items:center; gap:12px; background:#faf7f3; padding:16px; border-radius:6px; font-size:13px; }
.quote-mixed-pages input { padding:9px; width:100px; border:1px solid var(--quote-border); border-radius:5px; font:500 17px var(--fb); }
.quote-mixed-pages > span { flex-basis:100%; color:var(--mute); font-size:12px; }
.quote-default-note { color:var(--mute); font-size:12px; line-height:1.6; padding:12px 0 18px; }
.quote-redesign .quote-rail-quantity { padding:17px 22px 12px; border-bottom:1px solid #edede7; }
.quote-rail-quantity > label { display:block; font-size:11px; color:var(--mute); margin-bottom:8px; }
.quote-rail-quantity > div { display:flex; gap:7px; align-items:center; }
.quote-rail-quantity button { width:36px; height:36px; border:1px solid var(--quote-border); border-radius:5px; color:var(--quote-green); background:var(--quote-surface); font-size:21px; cursor:pointer; }
.quote-rail-quantity input { text-align:center; width:92px; border:1px solid var(--quote-border); border-radius:5px; padding:8px; color:var(--ink); font:500 16px var(--fb); }
.quote-rail-quantity span { color:var(--mute); font-size:12px; margin-left:3px; }
.quote-price-breakdown { margin:10px 22px; padding:12px 0; border-top:1px solid var(--quote-border); border-bottom:1px solid var(--quote-border); }
.quote-price-breakdown > div { display:flex; align-items:baseline; justify-content:space-between; gap:12px; font-size:12px; color:var(--mute); padding:5px 0; }
.quote-price-breakdown strong { font-size:12px; font-weight:500; color:var(--ink); text-align:right; }
.quote-quick-compare { margin:12px 22px; border-radius:7px; padding:13px; background:#f0f4eb; color:var(--quote-green); }
.quote-quick-compare > span { font-size:11px; }
.quote-quick-compare button { width:100%; display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; background:none; border:0; padding:10px 0; color:inherit; font:500 13px var(--fb); cursor:pointer; }
.quote-quick-compare small { display:block; color:var(--mute); font-size:10px; }
.quote-redesign .bprice .ppc { font-size:13px; }
.quote-production-timeline { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding:22px 0; margin:18px 0; border-top:1px solid var(--quote-border); border-bottom:1px solid var(--quote-border); }
.quote-production-timeline div { display:flex; flex-direction:column; align-items:flex-start; gap:8px; }
.quote-production-timeline span { width:25px; height:25px; display:grid; place-items:center; border-radius:50%; background:#e8eee2; color:var(--quote-green); font-size:10px; }
.quote-production-timeline strong { font-size:13px; font-weight:500; }.quote-production-timeline small { color:var(--mute); font-size:11px; line-height:1.5; }
.quote-deadline,.quote-file-status { margin-top:22px; }
.quote-deadline label,.quote-file-status label { display:block; font-size:13px; font-weight:500; margin-bottom:9px; }
.quote-deadline label span,.quote-file-status label span,.quote-optional { color:var(--mute); font-size:11px; font-weight:400; margin-left:8px; }
.quote-deadline input,.quote-file-status select { box-sizing:border-box; width:100%; background:white; border:1px solid var(--quote-border); color:var(--ink); border-radius:6px; min-height:45px; padding:10px 12px; font:400 14px var(--fb); }
.quote-deadline input { max-width:230px; }.quote-deadline p { margin-top:9px; color:var(--mute); font-size:12px; line-height:1.6; }
.quote-review-total { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:22px; border-radius:8px; background:#edf3e8; color:var(--quote-green); }
.quote-review-total > span { font-size:13px; }.quote-review-total strong { font:400 38px/1.1 var(--fd); }
.quote-review-actions { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:25px; }
.quote-redesign #vhCoverPages button { border:0; color:var(--red); font:500 13px var(--fb); background:transparent; text-decoration:underline; cursor:pointer; }
@media (max-width:1000px) {
  .quote-redesign .body-in { grid-template-columns:minmax(0,1fr); }
  .quote-redesign .quote-mobile-bar { flex-wrap:wrap; gap:8px 12px; }
  .quote-redesign .quote-mobile-bar > div { flex:1; min-width:140px; }
  .quote-redesign .quote-mobile-bar .quote-mobile-qty { order:3; flex-basis:100%; min-height:0; padding:3px; text-align:left; font-size:11px; background:transparent; color:var(--mute); }
  .quote-redesign { padding-bottom:112px; }
  .quote-redesign #idc-bubble { bottom:122px; }
}
@media (max-width:540px) {
  .quote-redesign .quote-quantity-first { padding:15px; }
  .quote-redesign .quote-page-input { padding:16px; gap:10px; flex-wrap:wrap; }
  .quote-print-modes { gap:7px; }.quote-print-modes button { padding:13px 8px; }.quote-print-modes strong { font-size:12px; }
  .quote-paper-shortcuts { grid-template-columns:1fr; gap:7px; }.quote-paper-shortcuts button { padding:12px; }.quote-paper-shortcuts strong { margin:0 0 3px; }
  .quote-production-timeline { gap:9px; }.quote-production-timeline strong { font-size:12px; }
  .quote-review-total { flex-wrap:wrap; }.quote-review-total strong { font-size:33px; }
  .quote-save-strip { flex-wrap:wrap; }.quote-review-actions > button { width:100%; }
}

/* Review refinements: one photographic scene, clean selections and useful presets. */
.quote-book-scene { position:relative; aspect-ratio:1; overflow:hidden; background:#e7e3dc; }
.quote-book-scene img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; object-position:center; transition:opacity .2s ease; }
.quote-book-scene #quotePaperbackPreview { opacity:1; }
.quote-book-scene #quoteHardbackPreview { opacity:0; }
.quote-book-preview.is-hardback #quotePaperbackPreview { opacity:0; }
.quote-book-preview.is-hardback #quoteHardbackPreview { opacity:1; }
.quote-book-preview figcaption { background:#f6f4f0; }
.quote-book-preview figcaption b { font-weight:500; }
.quote-redesign .quote-quantity-first { background:#faf9f7; padding:20px; }
.quote-redesign .qty-row { gap:10px; margin:12px 0 18px; }
.quote-redesign .qty-marks { display:flex; justify-content:space-between; font-size:12px; color:var(--mute); }
.quote-redesign .qty-presets { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin-top:18px; }
.quote-redesign .qty-preset { position:relative; min-width:0; margin:0; padding:15px 6px 12px; border:1px solid #ddd9d4; border-radius:7px; background:white; color:var(--ink); text-align:center; cursor:pointer; }
.quote-redesign .qty-preset strong { display:block; font:400 25px/1 var(--fd); }
.quote-redesign .qty-preset > span { display:block; color:var(--mute); font:400 12px/1.5 var(--fb); margin-top:4px; }
.quote-redesign .qty-preset > small { display:block; font:500 11px/1.4 var(--fb); padding-top:7px; margin-top:8px; border-top:1px solid #eeeae7; }
.quote-redesign .qty-preset:hover { border-color:#b8959e; background:#fdfbfc; }
.quote-redesign .qty-preset.active { color:var(--red); border-color:var(--red); box-shadow:0 0 0 1px var(--red); background:#fff8fa; }
.quote-redesign .qty-preset.active::after { content:'✓'; position:absolute; top:3px; right:6px; font:500 10px var(--fb); }
.quote-preset-note { color:var(--mute); font-size:12px; margin-top:12px; line-height:1.5; }
.quote-redesign .quote-quantity-compare { border:0; overflow:visible; margin:25px 0; }
.quote-quantity-compare h3 { font:400 25px/1.2 var(--fd); margin:0 0 15px; color:var(--ink); }
.quote-quantity-compare > p { border:0; padding:12px 0 0; line-height:1.6; }
.quote-interior-start { margin-top:22px; }.quote-interior-start .field-head { margin-bottom:7px; }
.quote-interior-start > p { color:var(--mute); font-size:13px; line-height:1.6; }
.quote-paper-shortcuts { margin:16px 0 26px; }
.quote-paper-shortcuts button { position:relative; min-width:0; padding:18px 14px 14px; background:#fff; }
.quote-paper-shortcuts strong { font:400 21px/1.1 var(--fd); margin:13px 0 8px; }
.quote-paper-shortcuts small { font-size:12px; min-height:36px; line-height:1.5; }
.quote-preset-icon { display:block; width:29px; height:29px; color:var(--red); }
.quote-preset-icon svg { width:100%; height:100%; }
.quote-preset-spec { display:block; border-top:1px solid #eee6e7; padding-top:11px; margin-top:12px; color:var(--mute); font-size:11px; line-height:1.5; }
.quote-paper-shortcuts button[aria-pressed="true"]::after { content:'✓'; position:absolute; top:13px; right:14px; color:var(--red); font-weight:500; }
.quote-print-modes { gap:0; border:1px solid var(--quote-border); background:#f5f4f2; border-radius:7px; overflow:hidden; }
.quote-print-modes button { border:0; border-right:1px solid var(--quote-border); border-radius:0; background:transparent; text-align:center; padding:15px 6px; }
.quote-print-modes button:last-child { border-right:0; }
.quote-print-modes button[aria-pressed="true"] { color:var(--red); box-shadow:inset 0 -2px var(--red); background:white; }
.quote-print-modes button .quote-ink,.quote-print-modes button small { display:none; }
.quote-print-modes button strong { font:500 13px/1.4 var(--fb); margin:0; }
@media (max-width:540px) {
  .quote-redesign .qty-presets { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .quote-paper-shortcuts { grid-template-columns:1fr; gap:9px; }
  .quote-paper-shortcuts button { padding:17px 15px 15px 62px; }
  .quote-paper-shortcuts .quote-preset-icon { position:absolute; left:17px; top:19px; }
  .quote-paper-shortcuts strong { margin:0 0 6px; font-size:22px; }
  .quote-paper-shortcuts small { min-height:0; }.quote-preset-spec { margin-top:10px; font-size:12px; }
}
@media (prefers-reduced-motion:reduce) { .quote-book-scene img { transition:none; } }

/* One page-entry panel; compact illustrated printing choices. */
.quote-paper-shortcuts { grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-rows:1fr; }
.quote-paper-shortcuts > button { display:flex; flex-direction:column; align-items:flex-start; }
.quote-paper-shortcuts .quote-preset-spec { align-self:stretch; margin-top:auto; padding-top:12px; }
.quote-paper-shortcuts small { margin-bottom:14px; }
.quote-paper-shortcuts button:focus-visible { outline:2px solid var(--red); outline-offset:4px; }
.quote-pages-panel { border:1px solid #e0dcD8; border-radius:9px; padding:22px; background:white; }
.quote-pages-panel > .field-head { margin-bottom:12px; }
.quote-pages-panel .quote-print-modes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; border:0; background:none; border-radius:0; overflow:visible; margin:0 0 23px; }
.quote-pages-panel .quote-print-modes button { display:flex; align-items:center; justify-content:center; gap:10px; text-align:left; padding:14px 10px; border:1px solid var(--quote-border); border-radius:7px; background:#fff; }
.quote-pages-panel .quote-print-modes button:last-child { border-right:1px solid var(--quote-border); }
.quote-pages-panel .quote-print-modes button[aria-pressed="true"] { border-color:var(--red); background:#fff8fa; box-shadow:0 0 0 1px var(--red); color:var(--ink); }
.quote-pages-panel .quote-print-modes button .quote-ink { display:block; flex-shrink:0; width:24px; height:24px; margin:0; box-shadow:0 0 0 2px #f0eeea; }
.quote-pages-panel .quote-print-modes button strong { font:500 14px/1.3 var(--fb); margin:0; }
.quote-pages-panel .quote-print-modes button small { display:block; font:400 11px/1.4 var(--fb); margin-top:4px; color:var(--mute); }
.quote-page-counts { display:grid; grid-template-columns:1fr; gap:18px; }
.quote-pages-panel[data-print-mode="mixed"] .quote-page-counts { grid-template-columns:1fr 1fr; }
.quote-redesign .quote-pages-panel :is(.quote-page-input,.quote-mixed-pages) { display:block; padding:0; background:none; border:0; border-radius:0; min-width:0; }
.quote-redesign .quote-pages-panel :is(.quote-page-input,.quote-mixed-pages) > label { display:block; font:500 13px/1.5 var(--fb); margin-bottom:8px; color:var(--ink); }
.quote-pages-panel .quote-page-number { display:flex; align-items:center; gap:8px; border:1px solid #d9d5d0; border-radius:6px; padding-right:14px; background:#fcfbfa; }
.quote-redesign .quote-pages-panel .quote-page-number input { width:100%; min-width:0; max-width:none; padding:9px 12px; min-height:50px; border:0; border-radius:6px; background:transparent; color:var(--ink); font:400 29px/1.2 var(--fd); }
.quote-page-number > span { font-size:12px; color:var(--mute); }
.quote-pages-panel #quotePageArithmetic { display:block; margin-top:8px; color:var(--mute); font-size:12px; line-height:1.5; }
.quote-pages-panel .page-entry-sub { margin:17px 0 0; font-size:12px; line-height:1.6; }
.quote-pages-panel .page-entry-hint { padding:0; margin:8px 0 0; font-size:12px; }
.quote-pages-panel .page-entry-hint::before { display:none; }

/* Quantity shortcuts are small controls; comparison is a shared-scale chart. */
.quote-redesign .qty-presets { display:flex; flex-wrap:wrap; gap:7px; }
.quote-redesign .qty-preset { flex:1 0 auto; padding:9px 11px; border-radius:5px; min-height:40px; }
.quote-redesign .qty-preset strong { font:500 14px/1.2 var(--fb); }
.quote-redesign .qty-preset > span,.quote-redesign .qty-preset.active::after { display:none; }
/* Approved quantity mockup 1: numbers lead, with compact price bars. */
.quote-table-heading { display:flex; justify-content:space-between; gap:14px; margin:25px 0 16px; font-size:13px; line-height:1.5; color:var(--mute); }
.quote-table-heading strong { color:var(--ink); }
.quote-table-heading > span { text-align:right; }
.quote-quantity-scroll { max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; border-bottom:1px solid var(--quote-border); }
.quote-quantity-table { width:100%; min-width:440px; border-collapse:collapse; table-layout:fixed; font:400 14px/1.4 var(--fb); font-variant-numeric:tabular-nums; }
.quote-quantity-table caption { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.quote-quantity-table th { padding:0 10px 12px; text-align:right; vertical-align:bottom; font-size:12px; font-weight:400; color:var(--mute); }
.quote-quantity-table th:first-child { text-align:left; width:27%; }
.quote-quantity-table th:last-child { width:24%; }
.quote-quantity-table td { padding:13px 10px; border-top:1px solid #e8e5e2; text-align:right; vertical-align:middle; }
.quote-quantity-table td:first-child { text-align:left; }
.quote-quantity-table tbody tr { cursor:pointer; }
.quote-quantity-table tbody tr:hover { background:#fdf9fa; }
.quote-quantity-table tr[data-selected="true"] { background:#fff6f8; color:var(--red); }
.quote-quantity-table tr[data-selected="true"] td:first-child { box-shadow:inset 3px 0 var(--red); }
.quote-quantity-table .quote-run-pick { display:flex; align-items:center; gap:10px; padding:2px 0; width:100%; min-height:44px; text-align:left; color:inherit; font:400 16px/1.3 var(--fb); }
.quote-run-pick:focus-visible { outline:2px solid var(--red); outline-offset:4px; border-radius:2px; }
.quote-run-radio { flex-shrink:0; width:16px; height:16px; border:1px solid #bbb8b4; border-radius:50%; background:white; box-sizing:border-box; }
.quote-run-pick[aria-pressed="true"] .quote-run-radio { border:5px solid var(--red); }
.quote-run-note { display:block; margin-top:3px; font:400 12px/1.5 var(--fb); color:var(--mute); }
.quote-run-unit { font-size:17px; white-space:nowrap; }
.quote-run-total { white-space:nowrap; }
.quote-run-track { display:block; height:4px; max-width:92px; margin:6px 0 0 auto; border-radius:4px; background:#f1efec; overflow:hidden; }
.quote-run-track > span { display:block; height:100%; background:#bba3ab; border-radius:inherit; }
.quote-quantity-table tr[data-selected="true"] .quote-run-track > span { background:var(--red); }
.quote-run-difference.is-lower { color:var(--quote-green); }
.quote-volume-offer { display:flex; flex-wrap:wrap; align-items:center; gap:14px; padding:18px; margin-bottom:6px; border:1px solid #ead2d9; border-radius:8px; background:#fff8fa; }
.quote-volume-offer > div { flex:1 1 280px; }
.quote-volume-offer strong { font:400 23px/1.2 var(--fd); color:var(--red); }
.quote-quantity-compare .quote-volume-offer p { padding:0; border:0; margin:7px 0 0; font-size:13px; line-height:1.6; }
.quote-quantity-compare .quote-volume-offer button { background:var(--red); color:white; border-radius:5px; padding:12px 15px; font-size:13px; min-height:44px; }
@media (max-width:540px) {
  .quote-paper-shortcuts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .quote-paper-shortcuts > button { padding:15px 12px; }
  .quote-paper-shortcuts .quote-preset-icon { position:static; margin-bottom:12px; }
  .quote-paper-shortcuts strong { font-size:20px; }.quote-paper-shortcuts small { font-size:12px; }
  .quote-pages-panel { padding:17px 14px; }
  .quote-pages-panel .quote-print-modes { gap:8px; }
  .quote-pages-panel .quote-print-modes button { flex-direction:column; gap:9px; padding:13px 5px; text-align:center; }
  .quote-pages-panel .quote-print-modes button strong { font-size:13px; }
  .quote-pages-panel .quote-print-modes button small { font-size:10px; }
  .quote-pages-panel[data-print-mode="mixed"] .quote-page-counts { gap:10px; }
  .quote-redesign .quote-pages-panel .quote-page-number input { font-size:26px; padding:8px; }
  .quote-pages-panel .quote-page-number { padding-right:8px; gap:2px; }
  .quote-redesign .quote-pages-panel :is(.quote-page-input,.quote-mixed-pages) > label { font-size:12px; }
  .quote-table-heading { flex-wrap:wrap; gap:5px 15px; font-size:12px; }
  .quote-table-heading > span { text-align:left; }
  .quote-quantity-table th { padding:0 7px 11px; }
  .quote-quantity-table td { padding:12px 7px; }
  .quote-quantity-table .quote-run-pick { font-size:14px; gap:7px; }
  .quote-run-unit { font-size:15px; }
  .quote-run-total,.quote-run-difference { font-size:13px; }
  .quote-volume-offer { padding:15px; }.quote-volume-offer strong { font-size:23px; }
}
