.quote-page { background: #f1f0ea; }
.quote-page .brand { display: inline-flex; align-items: center; gap: 9px; }
.quote-page .brand-symbol { display: inline-flex; width: 28px; height: 28px; }
.quote-page .brand-symbol svg { width: 100%; height: 100%; }
.quote-main { max-width: 1010px; padding-top: 8px; }
.quote-skip { position: absolute; left: -9999px; top: 8px; padding: 9px 13px; background: #fff; z-index: 3; }
.quote-skip:focus { left: 12px; }
.quote-path { margin: 0 0 9px; font-size: .84rem; color: #52635a; }
.quote-main h1 { margin: 0; max-width: 22ch; font-size: clamp(2rem, 4.7vw, 3.3rem); line-height: 1.04; letter-spacing: -.055em; }
.quote-lead { max-width: 61ch; margin: 12px 0 20px; font-size: 1.03rem; color: #48584f; line-height: 1.55; }
.quote-ledger { background: #fffefa; border: 1px solid #c9d3cc; border-top: 6px solid #286b4e; padding: clamp(16px, 3vw, 28px); }
.quote-ledger-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; border-bottom: 1px solid #c9d3cc; padding-bottom: 16px; }
.quote-ledger-head h2 { margin: 0 0 4px; font-size: 1.16rem; letter-spacing: -.02em; }
.quote-ledger-head p { margin: 0; }
#quote-example-label { max-width: 43ch; font-size: .81rem; color: #53645a; }
.quote-verdict { max-width: 30ch; color: #145238; font-size: clamp(1rem, 1.8vw, 1.32rem); font-weight: 800; line-height: 1.25; text-align: right; }
.quote-totals { display: grid; grid-template-columns: 1fr 1fr; }
.quote-total { min-width: 0; padding: 16px 12px 13px 0; display: grid; align-content: start; gap: 3px; }
.quote-total + .quote-total { border-left: 1px solid #c9d3cc; padding-left: clamp(12px, 2.6vw, 28px); }
.quote-total > span { font-size: .83rem; font-weight: 750; color: #345548; }
.quote-total-bulk > span { color: #725431; }
.quote-total strong { font-variant-numeric: tabular-nums; font-size: clamp(1.8rem, 4.3vw, 3.1rem); font-weight: 820; letter-spacing: -.05em; line-height: 1.12; overflow-wrap: anywhere; }
.quote-total small { color: #4f5e54; font-size: .77rem; line-height: 1.35; }
.quote-total small[id$="-tax-line"] { color: #286b4e; font-weight: 700; overflow-wrap: anywhere; }
.quote-status { border-top: 1px solid #c9d3cc; margin: 0; padding-top: 10px; color: #49594f; font-size: .79rem; }
.quote-copy-row { display: flex; align-items: center; gap: 13px; flex-wrap: wrap; margin-top: 13px; }
.quote-copy-row button { border: 1px solid #245f47; background: #e8f1e9; color: #174630; border-radius: 4px; padding: 8px 12px; min-height: 42px; font-weight: 750; }
.quote-copy-row button:disabled { opacity: .48; cursor: not-allowed; }
#quote-copy-status { font-size: .82rem; color: #385646; }
#quote-copy-fallback { width: 100%; margin-top: 10px; }
.quote-waiver-result { margin: 4px 0 13px; }
.quote-waiver-result table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: .82rem; }
.quote-waiver-result caption { text-align: left; font-weight: 750; padding: 10px 0; }
.quote-waiver-result th, .quote-waiver-result td { padding: 9px 5px; border-top: 1px solid #c9d3cc; text-align: right; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.quote-waiver-result th:first-child { width: 50%; padding-left: 0; text-align: left; }
.quote-waiver-result small { display: block; margin-top: 3px; font-weight: 500; color: #4f5e54; line-height: 1.4; }
.quote-waiver-result p { margin: 9px 0 0; max-width: 72ch; color: #34443a; font-size: .82rem; line-height: 1.5; }
.quote-inputs { display: grid; grid-template-columns: 1fr 1fr; gap: 0 27px; margin: 26px 0; }
.quote-inputs section { border-top: 2px solid #3d6652; padding: 17px 0 20px; }
.quote-measure { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: end; gap: 14px 25px; }
.quote-measure .quote-section-title { flex: 1 1 330px; }
.quote-measure label { flex: 0 1 240px; }
.quote-measure > p { flex-basis: 100%; margin: -8px 0 0; font-size: .83rem; }
.quote-route-bags { border-color: #2f6b7a !important; }
.quote-route-bulk { border-color: #a16b35 !important; }
.quote-section-title h2 { margin: 0 0 4px; font-size: 1.2rem; letter-spacing: -.02em; }
.quote-section-title p { margin: 0 0 16px; max-width: 42ch; font-size: .88rem; color: #526057; line-height: 1.5; }
.quote-field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.quote-inputs label { display: grid; align-content: start; gap: 5px; min-width: 0; font-size: .84rem; font-weight: 750; }
.quote-inputs label span { display: block; color: #54645a; font-size: .75rem; font-weight: 500; }
.quote-inputs input { width: 100%; min-height: 46px; padding: 7px 10px; border: 1px solid #a9baae; border-radius: 3px; background: #fffefa; color: #1f3028; font-size: 1.05rem; font-variant-numeric: tabular-nums; }
.quote-pricing-mode { margin-bottom: 14px; }
.quote-inputs select { width: 100%; min-height: 46px; padding: 7px 10px; border: 1px solid #a9baae; border-radius: 3px; background: #fffefa; color: #1f3028; font: inherit; }
.quote-route [hidden] { display: none; }
#quote-fixed-note { margin: 12px 0 0; color: #34443a; font-size: .82rem; line-height: 1.5; }
.quote-waiver-inputs { margin: 20px 0 0; padding: 13px 0 0; border: 0; border-top: 1px solid #c9d3cc; min-width: 0; }
.quote-waiver-inputs legend { padding: 0 7px 0 0; font-size: .86rem; font-weight: 750; }
.quote-inputs .quote-waiver-toggle { display: flex; align-items: center; min-height: 44px; gap: 10px; margin-bottom: 12px; cursor: pointer; }
.quote-inputs .quote-waiver-toggle input { flex: 0 0 20px; width: 20px; min-height: 20px; height: 20px; margin: 0; accent-color: #286b4e; }
.quote-inputs .quote-waiver-toggle span { font-size: .83rem; color: #34443a; line-height: 1.45; }
.quote-waiver-inputs p { margin: 9px 0 0; font-size: .78rem; color: #53645a; line-height: 1.5; }
.quote-inputs input:disabled { background: #ecefe9; color: #68776e; }
.quote-page :is(a, button, input, select, summary):focus-visible { outline: 3px solid #a65c20; outline-offset: 2px; }
.quote-figure { margin: 8px 0 28px; border-top: 1px solid #c6d1c7; border-bottom: 1px solid #c6d1c7; padding: 16px 0; }
.quote-figure img { display: block; width: 100%; height: auto; }
.quote-figure figcaption { margin-top: 8px; max-width: 74ch; color: #536057; font-size: .83rem; }
.quote-explain { margin: 23px 0 0; max-width: 78ch; }
.quote-explain h2 { margin: 0 0 8px; font-size: 1.35rem; letter-spacing: -.02em; }
.quote-explain p { margin: 0 0 11px; color: #34443a; line-height: 1.65; }
.quote-faq details { border-top: 1px solid #c6d1c7; padding: 10px 0; }
.quote-faq details:last-child { border-bottom: 1px solid #c6d1c7; }
.quote-faq summary { cursor: pointer; font-weight: 750; }
.quote-faq details p { margin-top: 7px; }
@media (max-width: 700px) {
  .quote-inputs { grid-template-columns: 1fr; }
  .quote-fixed-mode .quote-field-grid { grid-template-columns: 1fr; }
  .quote-measure { grid-column: auto; }
  .quote-ledger-head { display: block; }
  .quote-verdict { max-width: none; margin-top: 10px !important; text-align: left; }
}
@media (max-width: 390px) {
  .quote-main { width: calc(100% - 24px); }
  .quote-lead { font-size: .94rem; }
  .quote-total { padding-right: 8px; }
  .quote-total + .quote-total { padding-left: 10px; }
  .quote-total strong { font-size: 1.78rem; }
  .quote-field-grid { gap: 10px; }
  .quote-inputs input { min-height: 44px; }
}
