/* Outshine quote flow. Base-inspired field, selection and button tokens.
   Reference: https://base.uber.com/6d2425e9f/p/51073e-text-field/b/284ec6 */
html:has(.quote-dialog[open]) { overflow:hidden; }
.quote-dialog { --cart-step:0; --quote-surface:#fff; --quote-field:#f3f3f3; --quote-secondary:#eee; --quote-ink:#000; --quote-muted:#545454; --quote-radius:8px; position:fixed; inset:0 0 0 auto; width:min(620px,100%); height:100dvh; max-width:none; max-height:none; margin:0; padding:0; border:0; border-radius:0; background:#fff; color:#111; color-scheme:light; box-shadow:-12px 0 64px #0002; overflow:hidden; overscroll-behavior:contain; }
.quote-dialog::backdrop { background:#0005; backdrop-filter:none; }
.quote-dialog[open] { animation:cart-panel-in .3s cubic-bezier(.16,1,.3,1) both; }
.quote-dialog.is-closing { animation:cart-panel-out .2s ease-in both; pointer-events:none; }
.quote-dialog [hidden] { display:none!important; }
.quote-form { display:flex; flex-direction:column; height:100%; padding:0; overflow:hidden; }
.cart-top { flex:none; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:24px 32px 8px; }
.cart-brand { font-size:18px; font-weight:600; letter-spacing:-.035em; }
.cart-brand > span { margin-left:7px; color:#666; font-size:12px; font-weight:400; letter-spacing:0; }
.quote-dialog .dialog-close { display:grid; place-items:center; flex:none; width:48px; height:48px; margin:0 -8px 0 0; padding:0; border:0; border-radius:50%; background:var(--quote-secondary); color:var(--quote-ink); cursor:pointer; transform:none; }
.quote-dialog .dialog-close svg { width:20px; height:20px; }
.cart-progress { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); flex:none; margin:0 32px; }
.cart-progress button { min-height:44px; padding:10px 0; border:0; background:transparent; color:#777; font:inherit; font-size:12px; text-align:left; cursor:pointer; }
.cart-progress button::before { content:'0' counter(step); counter-increment:step; margin-right:7px; color:#999; font-size:10px; }
.cart-progress { counter-reset:step; }
.cart-progress [aria-current], .cart-progress .is-complete { color:#111; }
.cart-progress [aria-current] { font-weight:600; }
.cart-progress [aria-current]::before { color:#111; }
.cart-meter { flex:none; height:1px; margin:0 32px; background:#e5e5e5; overflow:hidden; }
.cart-meter > span { display:block; width:25%; height:100%; background:#111; transform:translateX(calc(var(--cart-step)*100%)); transition:transform .3s ease; }
.cart-layout { display:flex; flex-direction:column; flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#ddd transparent; }
.cart-body { padding:32px; min-width:0; }
.cart-step { animation:cart-step-in .24s ease both; }
.quote-form h2 { margin:0; font-size:32px; font-weight:600; letter-spacing:-.035em; line-height:1.14; outline:none; }
.cart-step-copy { margin:12px 0 28px; color:#666; font-size:14px; line-height:1.6; }
.cart-packages { display:grid; gap:12px; padding:0; margin:0; border:0; }
.quote-form .cart-package label { position:relative; display:grid; grid-template-columns:88px minmax(0,1fr) auto; align-items:center; gap:16px; min-height:114px; margin:0; padding:12px; border:2px solid #e5e5e5; border-radius:var(--quote-radius); background:var(--quote-surface); cursor:pointer; transition:border-color .16s,background .16s; }
.cart-package input { position:absolute; opacity:0; width:1px; height:1px; }
.cart-package img { width:88px; height:88px; object-fit:cover; border-radius:2px; }
.cart-package:has([value="Exterior Detail"]) img { object-position:center 44%; }
.cart-package-copy { min-width:0; }
.cart-package-title { display:block; margin-bottom:6px; font-size:18px; font-weight:600; letter-spacing:-.04em; }
.cart-package-copy > span { display:block; color:#666; font-size:12px; line-height:1.5; }
.cart-package-price { align-self:start; padding-top:4px; font-size:18px; font-weight:500; letter-spacing:-.04em; white-space:nowrap; }
.cart-package-price > span { display:inline; margin-right:4px; color:#666; font-size:13px; font-weight:400; letter-spacing:0; }
.quote-form .cart-package label:has(:checked) { border-color:var(--quote-ink); background:var(--quote-field); box-shadow:none; }
.cart-price-note, .cart-intake-note { color:#666; font-size:12px; line-height:1.6; margin:20px 0 0; }
.cart-intake-note { margin-top:24px; padding-top:20px; border-top:1px solid #e5e5e5; }
.quote-dialog a { color:inherit; text-decoration:underline; text-underline-offset:3px; }
.cart-context { flex:none; padding:24px 32px 0; }
.cart-selected { display:grid; grid-template-columns:48px minmax(0,1fr) auto; gap:4px 12px; align-items:center; padding-bottom:22px; border-bottom:1px solid #e5e5e5; }
.cart-selected-image { width:48px; height:48px; object-fit:cover; border-radius:2px; grid-row:1 / 3; }
.quote-form .cart-selected-title { font-size:15px; letter-spacing:-.025em; }
.cart-selected-price { grid-column:2; margin:0; color:#666; font-size:12px; }
.cart-change-package { grid-column:3; grid-row:1 / 3; min-height:40px; padding:8px 16px; border:0; border-radius:var(--quote-radius); background:var(--quote-secondary); color:var(--quote-ink); font:inherit; font-size:12px; font-weight:500; cursor:pointer; }
.quote-form .cart-field-label { display:flex; justify-content:space-between; gap:12px; margin:24px 0 8px; font-size:14px; font-weight:500; color:var(--quote-ink); }
.cart-field-label > span { font-size:12px; color:#777; }
.quote-form input:not([type=radio]), .quote-form textarea { display:block; width:100%; min-width:0; min-height:56px; padding:14px 16px; border:2px solid transparent; border-radius:var(--quote-radius); background:var(--quote-field); color:var(--quote-ink); font:inherit; font-size:16px; line-height:1.5; transition:border-color .16s; }
.quote-form input::placeholder, .quote-form textarea::placeholder { color:#757575; }
.quote-form textarea { min-height:96px; resize:vertical; }
.quote-form input:focus-visible, .quote-form textarea:focus-visible { border-color:var(--quote-ink); outline:0; background:#fff; }
.cart-location-field { display:flex; align-items:center; flex-wrap:wrap; gap:0 8px; border:2px solid transparent; border-radius:var(--quote-radius); padding:0 16px; background:var(--quote-field); }
.cart-location-field:focus-within { border-color:var(--quote-ink); outline:0; background:#fff; }
.cart-location-field > svg { width:18px; height:18px; flex:none; color:#777; }
.quote-form .cart-location-field input { flex:1; width:0; padding:14px 0; border:0; border-radius:0; outline:0; background:transparent; }
.cart-clear { display:grid; place-items:center; width:32px; height:32px; padding:0; border:0; background:transparent; color:#777; cursor:pointer; }
.cart-clear svg { width:18px; height:18px; }
.cart-field-note { margin:20px 0 0; font-size:12px; line-height:1.6; color:#666; }
.cart-contact-fields { display:grid; grid-template-columns:1fr; }
.cart-contact-fields > div { min-width:0; }
.quote-form .cart-contact-fields > div:first-child .cart-field-label { margin-top:0; }
.cart-contact-method { display:flex; gap:8px; border:0; padding:0; margin:24px 0; }
.cart-contact-method legend { margin-bottom:10px; padding:0; font-size:13px; }
.quote-form .cart-contact-method label { display:flex; align-items:center; gap:9px; min-height:48px; min-width:112px; margin:0; padding:10px 16px; border:2px solid transparent; border-radius:var(--quote-radius); background:var(--quote-field); font-size:14px; cursor:pointer; }
.cart-contact-method label:has(:checked) { border-color:var(--quote-ink); background:#fff; }
.quote-form .cart-contact-method input { width:20px; height:20px; margin:0; padding:0; accent-color:#111; }
.quote-form details { margin:24px 0 0; border-top:1px solid #e5e5e5; color:#555; font-size:13px; }
.quote-form details > summary { display:flex; justify-content:space-between; align-items:center; gap:12px; min-height:52px; list-style:none; color:#222; cursor:pointer; }
.quote-form details > summary::-webkit-details-marker { display:none; }
.quote-form details > summary::after { content:'+'; font-size:18px; font-weight:400; }
.quote-form details[open] > summary::after { content:'−'; }
.cart-summary { display:grid; grid-template-columns:80px minmax(0,1fr); gap:14px; margin:8px 0 20px; font-size:13px; line-height:1.5; }
.cart-summary dt { color:#777; font-size:12px; }
.cart-summary dd { margin:0; color:#222; overflow-wrap:anywhere; }
.cart-save-note, .cart-privacy-note { margin:18px 0 0; color:#666; font-size:12px; line-height:1.6; }
.quote-form .cart-repeat-note { margin-top:20px; }
.cart-repeat-note p { margin:0 0 16px; font-size:12px; line-height:1.6; }
.cart-footer { flex:none; padding:16px 32px max(16px,env(safe-area-inset-bottom)); border-top:1px solid #e5e5e5; background:#fff; }
.cart-actions { display:flex; align-items:center; gap:12px; }
.cart-back { display:grid; place-items:center; flex:none; width:56px; height:56px; padding:0; border:0; border-radius:var(--quote-radius); background:var(--quote-secondary); color:#111; cursor:pointer; }
.cart-back svg { width:18px; height:18px; }
.quote-dialog .dialog-submit { position:relative; display:flex; align-items:center; justify-content:center; gap:16px; flex:1; width:100%; min-width:0; min-height:56px; margin:0; padding:16px 44px; border:0; border-radius:var(--quote-radius); background:var(--quote-ink); color:#fff; font:inherit; font-size:16px; font-weight:500; text-align:center; cursor:pointer; transform:none; }
.quote-dialog .dialog-submit::after { content:'→'; position:absolute; right:16px; font-size:20px; font-weight:400; transition:transform .2s; }
.quote-dialog[data-step="complete"] .dialog-submit::after { content:none; }
.quote-dialog .dialog-submit:disabled { opacity:.6; cursor:wait; }
.dialog-status { margin:0 0 14px; max-height:96px; overflow:auto; color:#9b2525; font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.dialog-status:empty { display:none; }
.quote-dialog button:focus-visible, .quote-dialog summary:focus-visible, .quote-dialog a:focus-visible, .cart-package label:has(:focus-visible), .cart-contact-method label:has(:focus-visible) { outline:2px solid #111; outline-offset:4px; }
.quote-form input[aria-invalid="true"], .quote-form textarea[aria-invalid="true"] { border-color:#ab1300; background:#fff7f5; }
.cart-input-error { margin:8px 0 0; color:#ab1300; font-size:12px; line-height:1.5; }
.cart-location-field:has([aria-invalid="true"]) { border-color:#b42318; }
.cart-complete { display:flex; flex-direction:column; flex:1; min-height:0; overflow:auto; padding:0; }
.cart-complete-copy { flex:none; padding:52px 32px 36px; }
.quote-form .cart-complete h2 { max-width:500px; font-size:clamp(36px,6.5vw,54px); line-height:1.03; letter-spacing:-.055em; }
.cart-complete-note { max-width:500px; margin:15px 0 0; font-size:14px; color:#555; line-height:1.5; }
.cart-finish-bottle-display { position:relative; flex:1; min-height:290px; overflow:hidden; background:#000; color:#fff; cursor:grab; touch-action:pan-y; }
.quote-dialog[data-step="complete"] .cart-complete { background:#000; color:#fff; }
.quote-dialog[data-step="complete"] .cart-complete-note { color:#aaa; }
.quote-dialog[data-step="complete"] .cart-footer { background:#000; border-color:#000; }
.quote-dialog[data-step="complete"] .dialog-submit { background:#fff; color:#111; }
.quote-dialog[data-step="complete"] .dialog-submit:hover { background:#e9e9e9; }
.cart-finish-bottle-display.is-dragging { cursor:grabbing; }
.cart-finish-bottle-display:focus-visible { outline:2px solid #fff; outline-offset:-4px; }
.cart-finish-bottle-display canvas, .cart-finish-bottle-fallback { position:absolute; inset:0; display:block; width:100%; height:100%; }
.cart-finish-bottle-fallback { pointer-events:none; }
.cart-finish-bottle-display.is-ready .cart-finish-bottle-fallback { display:none; }
.cart-finish-bottle-fallback img { position:absolute; bottom:var(--bottom); left:var(--left); width:clamp(118px,26%,168px); height:190px; object-fit:contain; transform:translateX(-50%) rotate(var(--turn)); transform-origin:50% 85%; filter:brightness(.88) drop-shadow(0 12px 16px #000b); }
.cart-finish-bottle-current { position:absolute; z-index:1; top:22px; left:28px; color:#ccc; font-size:11px; letter-spacing:.04em; pointer-events:none; }
.cart-finish-bottle-retry { position:absolute; z-index:2; right:20px; bottom:20px; min-height:44px; padding:0 14px; border:1px solid #777; border-radius:8px; background:#171717; color:#fff; cursor:pointer; }
.cart-finish-bottle-retry:focus-visible { outline:2px solid #fff; outline-offset:3px; }
.cart-complete-call { display:inline-flex; align-items:center; min-height:44px; margin:-12px 0 24px; font-size:13px; }
.cart-complete-summary { margin:0; border-top:1px solid #e5e5e5; }
.cart-complete-summary > div { display:grid; grid-template-columns:110px minmax(0,1fr); gap:16px; padding:14px 0; border-bottom:1px solid #eee; }
.cart-complete-summary dt { font-size:12px; color:#777; }
.cart-complete-summary dd { margin:0; font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.cart-overview { padding:32px; }
.cart-detail-cards { display:grid; gap:24px; margin-top:28px; }
.cart-detail-card { padding:20px; border:1px solid #ddd; border-radius:8px; }
.cart-detail-card-top { display:grid; grid-template-columns:48px minmax(0,1fr) auto; gap:12px; align-items:start; }
.cart-detail-card-top > img { width:48px; height:48px; object-fit:cover; }
.cart-detail-card h3 { margin:0; font-size:17px; font-weight:600; letter-spacing:-.035em; }
.cart-detail-card-price { display:block; margin-top:4px; font-size:13px; font-weight:400; color:#555; }
.cart-detail-card-top p { margin:8px 0 0; color:#666; font-size:12px; line-height:1.5; }
.cart-detail-card-info { margin:20px 0 12px; border-top:1px solid #e5e5e5; }
.cart-detail-card-row { display:grid; grid-template-columns:56px minmax(0,1fr) auto; gap:10px; padding:14px 0; border-bottom:1px solid #e5e5e5; }
.cart-detail-card-info dt { color:#777; font-size:12px; }
.cart-detail-card-info dd { margin:0; font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.cart-detail-card-info dd span, .cart-detail-card-info dd small { display:block; }
.cart-detail-card-info dd small { margin-top:4px; color:#666; font-size:12px; }
.cart-detail-card-edit, .cart-cancel-detail { min-height:44px; border:0; background:none; color:#555; font:inherit; font-size:12px; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.cart-detail-card-edit { margin-top:-10px; padding:10px 0 10px 8px; }
.cart-detail-card > .cart-detail-card-edit { margin:0; padding:10px 0; }
.cart-cancel-detail { display:block; margin-left:auto; padding:10px 0; color:#777; }
.cart-detail-card > p { font-size:12px; line-height:1.6; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media(hover:hover) and (pointer:fine) {
  .quote-form .cart-package label:hover { background:#fafafa; }
  .quote-form .cart-package label:has(:checked):hover { background:#eee; border-color:#000; }
  .quote-dialog .dialog-close:hover, .cart-back:hover { background:#f3f3f3; }
  .quote-dialog .dialog-submit:hover { background:#292929; transform:none; }
  .quote-dialog .dialog-submit:hover::after { transform:translateX(3px); }
  .cart-progress button:hover, .cart-change-package:hover { color:#111; }
}
@keyframes cart-panel-in { from { transform:translateX(100%); } to { transform:translateX(0); } }
@keyframes cart-panel-out { to { transform:translateX(100%); } }
@keyframes cart-step-in { from { opacity:0; transform:translateY(7px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:480px) {
  .cart-top { padding:14px 24px 8px; }
  .cart-progress { margin:0 24px; }
  .cart-progress button { font-size:11px; }
  .cart-progress button::before { margin-right:5px; font-size:9px; }
  .cart-meter { margin:0 24px; }
  .cart-body { padding:28px 24px; }
  .quote-form h2 { font-size:30px; }
  .cart-step-copy { margin-bottom:24px; font-size:13px; }
  .cart-context { padding:20px 24px 0; }
  .cart-selected { padding-bottom:18px; }
  .quote-form .cart-package label { grid-template-columns:64px minmax(0,1fr) auto; min-height:100px; gap:12px; padding:10px; }
  .cart-package img { width:64px; height:78px; }
  .cart-package-title { font-size:16px; }
  .cart-package-copy > span { font-size:11px; }
  .cart-package-price { font-size:16px; }
  .cart-package-price > span { font-size:12px; }
  .cart-footer { padding:14px 24px max(14px,env(safe-area-inset-bottom)); }
  .cart-overview { padding:28px 24px; }
  .cart-complete-copy { padding:36px 24px 26px; }
  .cart-complete-summary > div { grid-template-columns:80px minmax(0,1fr); }
  .cart-detail-card { padding:16px; }
}
@media(max-width:360px) {
  .cart-top { padding-inline:20px; }
  .cart-body, .cart-overview { padding-inline:20px; }
  .cart-complete-copy { padding-inline:20px; }
  .cart-context, .cart-footer { padding-inline:20px; }
  .cart-progress, .cart-meter { margin-inline:20px; }
  .cart-package-copy > span { display:none; }
  .quote-form .cart-package label { grid-template-columns:54px minmax(0,1fr) auto; gap:10px; min-height:88px; }
  .cart-package img { width:54px; height:64px; }
  .cart-package-title { font-size:15px; }
  .quote-dialog .dialog-submit { font-size:14px; padding-inline:32px; }
  .quote-dialog .dialog-submit::after { right:12px; }
  .cart-brand > span { font-size:11px; }
}
@media(pointer:coarse) {
  .cart-change-package, .cart-progress button, .cart-detail-card-edit, .cart-cancel-detail { min-height:48px; }
}
@media(prefers-reduced-motion:reduce) {
  .quote-dialog[open], .quote-dialog.is-closing, .cart-step { animation:none; }
  .quote-dialog *, .quote-dialog *::before, .quote-dialog *::after { transition:none!important; }
}

/* Shared map styles also support the service-area section outside this drawer. */
.cart-map-panel { position:relative; flex:1; min-height:300px; margin:22px 0 0; border:0; border-radius:9px; overflow:hidden; background:#202628; isolation:isolate; }
.cart-map-panel .cart-map-canvas { position:absolute; inset:0; }
.cart-map-fallback { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; background:#111; pointer-events:none; }
.cart-map-fallback[hidden] { display:none; }
.cart-map-fallback img { width:72%; height:75%; object-fit:contain; opacity:.55; }
.cart-map-fallback span { max-width:80%; font-size:11px; color:#aaa; text-align:center; line-height:1.4; }
.cart-map-pin { width:24px; height:24px; }
.cart-map-pin::before { content:''; position:absolute; inset:0; border:3px solid #eee9dc; border-radius:50% 50% 50% 0; background:#008cff; transform:rotate(-45deg); box-shadow:0 3px 12px #0009; }
.cart-map-pin::after { content:''; position:absolute; inset:9px; border-radius:50%; background:#fff; }
.cart-address-entry { position:relative; flex:none; }
.cart-map-search { flex:none; min-height:36px; padding:0 12px; border:0; border-radius:5px; background:#111; color:#fff; font:inherit; font-size:12px; font-weight:500; white-space:nowrap; cursor:pointer; }
.cart-map-search:hover { background:#222; }
.cart-map-search:disabled { color:#666; background:#e8e8e8; cursor:default; }
.cart-map-search[aria-busy="true"] { cursor:wait; }
.cart-map-legend { display:flex; flex-wrap:wrap; align-items:center; gap:7px 18px; margin-top:12px; color:#666; font-size:10px; line-height:1.5; }
.cart-map-legend span { display:flex; align-items:center; gap:6px; }
.cart-map-legend .zone-swatch { width:6px; height:6px; border-radius:50%; }
.cart-map-credit { margin:6px 0 0; color:#777; font-size:8px; line-height:1.4; }
.cart-map-credit a { color:inherit; text-decoration:none; }
.cart-map-credit a:hover { color:#aaa; }
.cart-map-status { margin:10px 0 0; font-size:12px; line-height:1.5; color:#555; }
.cart-travel-result { margin:16px 0 0; }
.cart-travel-result strong { display:block; color:#111; font-size:17px; line-height:1.3; letter-spacing:-.4px; font-weight:700; }
.cart-travel-result p { margin:7px 0 0; color:#555; font-size:13px; line-height:1.5; }
.cart-address-suggestions { position:relative; z-index:4; display:grid; gap:4px; margin-top:12px; padding:8px; border:1px solid #e8e8e8; border-radius:12px; background:#fff; box-shadow:0 4px 16px #00000008; max-height:220px; overflow:auto; animation:address-suggestions-in .16s ease-out backwards; }
.cart-address-suggestions button { display:flex; flex-direction:column; gap:6px; align-items:flex-start; width:100%; min-height:64px; padding:14px 16px; border:0; border-radius:8px; background:none; color:#111; font:inherit; font-size:14px; line-height:1.4; text-align:left; cursor:pointer; }
.cart-address-suggestions button strong { font-weight:500; }
.cart-address-suggestions { scroll-margin-bottom:20px; }
.cart-address-suggestions button span { color:#666; font-size:12px; }
.cart-address-suggestions button:hover, .cart-address-suggestions button[aria-selected="true"] { background:#f3f3f3; }
#cart-location::selection { background:#00000020; color:#111; }
#cart-location:is(:autofill, :-webkit-autofill) { -webkit-box-shadow:0 0 0 1000px #f3f3f3 inset; box-shadow:0 0 0 1000px #f3f3f3 inset; -webkit-text-fill-color:#111; caret-color:#111; border-radius:0; }
@keyframes address-suggestions-in { from { opacity:0; transform:translateY(-4px); } to { opacity:1; transform:translateY(0); } }

.quote-dialog .cart-map-panel { flex:none; height:220px; min-height:0; margin:0 0 10px; border-radius:4px; }
.quote-dialog .cart-map-search { flex-basis:auto; margin:0; min-height:36px; }
.cart-vehicle-suggestions { touch-action:pan-y; -webkit-overflow-scrolling:touch; position:absolute; z-index:20; margin:0; padding:0; overflow:auto; border:1px solid #e8e8e8; border-radius:12px; background:#fff; color:#111; color-scheme:light; box-shadow:0 8px 24px #0002; overscroll-behavior:contain; scrollbar-width:thin; }
.cart-vehicle-suggestions button { display:grid; grid-template-columns:36px minmax(0,1fr) auto; align-items:center; gap:14px; width:100%; min-height:68px; margin:0; padding:14px 16px; border:0; border-bottom:1px solid #f0f0f0; border-radius:0; background:#fff; color:#111; font:inherit; text-align:left; cursor:pointer; }
.cart-vehicle-suggestions button:last-child { border-bottom:0; }
.cart-vehicle-suggestions button:hover, .cart-vehicle-suggestions button[aria-selected="true"] { background:#f5f5f5; }
.cart-vehicle-option-icon { display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:#eee; color:#111; }
.cart-vehicle-option-icon svg { display:block; width:18px; height:18px; }
.cart-vehicle-option-copy { display:grid; gap:4px; min-width:0; }
.cart-vehicle-option-copy strong { color:#111; font-size:15px; font-weight:500; line-height:1.3; }
.cart-vehicle-option-copy > span { color:#555; font-size:13px; line-height:1.3; }
.cart-vehicle-option-size { display:flex; align-items:center; gap:3px; color:#666; white-space:nowrap; }
.cart-vehicle-option-size span { margin-right:5px; font-size:10px; }
.cart-vehicle-option-size i { display:block; width:7px; height:7px; border:1px solid #555; border-radius:0; }
.cart-vehicle-option-size i.is-filled { background:#111; border-color:#111; }
.cart-vehicle-empty { margin:0; padding:20px 16px; color:#555; font-size:14px; }
.cart-vehicle-option-size { cursor:default; }
.cart-vehicle-suggestions .cart-vehicle-custom { display:flex; align-items:center; justify-content:space-between; gap:12px; width:calc(100% - 24px); min-height:50px; margin:10px 12px; padding:12px 16px; border:1px solid #dedede; border-radius:24px; background:#f5f5f5; }
.cart-vehicle-custom strong { font-size:14px; font-weight:600; }
.cart-vehicle-custom span { color:#666; font-size:12px; }
.cart-vehicle-suggestions .cart-vehicle-custom:hover,.cart-vehicle-suggestions .cart-vehicle-custom[aria-selected="true"] { border-color:#bcbcbc; background:#ebebeb; }
.cart-comment-options { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 12px; }
.cart-comment-options button { display:inline-flex; align-items:center; gap:7px; min-height:36px; padding:7px 12px; border:1px solid #dedede; border-radius:18px; background:#fff; color:#111; font:inherit; font-size:12px; font-weight:500; cursor:pointer; }
.cart-comment-options button .cart-comment-icon { display:grid; place-items:center; width:16px; height:16px; flex:none; }
.cart-comment-icon b { font-size:18px; font-weight:400; line-height:1; }
.cart-comment-icon svg { display:none; width:15px; height:15px; fill:currentColor; }
.cart-comment-options button:hover { border-color:#aaa; background:#f6f6f6; }
.cart-comment-options button[aria-pressed="true"] { border-color:#111; background:#111; color:#fff; }
.cart-comment-options button[aria-pressed="true"] .cart-comment-icon b { display:none; }
.cart-comment-options button[aria-pressed="true"] .cart-comment-icon svg { display:block; }
.cart-comment-options button:focus-visible,.cart-vehicle-suggestions button:focus-visible { outline:2px solid #111; outline-offset:2px; }


.cart-cancel-dialog { width:min(420px,calc(100% - 32px)); max-width:none; padding:28px; border:1px solid #e5e5e5; border-radius:12px; background:#fff; color:#111; box-shadow:0 28px 80px #0005; }
.cart-cancel-dialog::backdrop { background:#000a; }
.cart-cancel-dialog h2 { margin:0; font-size:24px; font-weight:600; letter-spacing:-.04em; }
.cart-cancel-dialog p { margin:12px 0 24px; color:#555; font-size:14px; line-height:1.5; overflow-wrap:anywhere; }
.cart-cancel-actions { display:flex; justify-content:flex-end; gap:10px; }
.cart-cancel-actions button { min-height:42px; padding:10px 15px; border:0; border-radius:8px; font:inherit; font-size:13px; font-weight:600; cursor:pointer; }
.cart-cancel-keep { background:#efefef; color:#111; }
.cart-cancel-confirm { background:#c62828; color:#fff; }
.cart-cancel-keep:hover { background:#e3e3e3; }
.cart-cancel-confirm:hover { background:#a51e1e; }
.cart-cancel-actions button:focus-visible { outline:2px solid #777; outline-offset:3px; }
@media(max-width:480px) {
  .cart-cancel-dialog { padding:22px; }
  .cart-cancel-actions { flex-direction:column; }
  .cart-cancel-actions button { width:100%; }
}


/* Minimal quote navigation and the product collection below the offers. */
.cart-top { position:absolute; z-index:3; top:24px; right:24px; padding:0; }
.quote-dialog .dialog-close { width:40px; height:40px; margin:0; border-radius:8px; background:#f3f3f3; }
.cart-progress { margin:24px 80px 20px 32px; gap:8px; }
.cart-progress button { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; padding:10px 4px; min-height:76px; border-radius:8px; color:#6b6b6b; font-size:12px; }
.cart-progress button::before { content:none; }
.cart-progress button svg { width:24px; height:24px; }
.cart-progress [aria-current] { background:#111; color:#fff; font-weight:500; }
.cart-progress .is-complete:not([aria-current]) { color:#111; background:#f3f3f3; }
.cart-progress button:hover:not([aria-current]) { background:#eee; }
.cart-progress button:hover[aria-current] { color:#fff; }
.cart-meter { height:1px; background:#eee; }
.cart-meter > span { background:transparent; }
.cart-body { padding-top:28px; }
.cart-packages { margin-top:24px; }
.cart-contact-fields { margin-top:28px; }
.cart-collection-panel { margin:24px 0 0; }
.quote-dialog[data-package-view="editing"] .cart-collection-panel { display:none; }
.cart-collection { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:18px 6px; padding:20px 12px; border-radius:8px; background:#111; }
.cart-collection figure { margin:0; min-width:0; text-align:center; }
.cart-bottle-art { height:120px; touch-action:pan-y; }
.cart-bottle-art canvas, .cart-bottle-art img { display:block; width:100%; height:100%; object-fit:contain; }
.cart-collection figcaption { margin:8px 0 0; color:#bcbcbc; font-size:9px; line-height:1.4; }
.quote-dialog[data-step="overview"] .cart-layout { padding-top:64px; }
@media (max-width:480px) {
  .cart-finish-bottle-display { min-height:260px; }
  .cart-finish-bottle-fallback img { width:130px; height:170px; }
  .cart-finish-bottle-current { left:20px; }
}
@media (prefers-reduced-motion:reduce) {
  .cart-finish-bottle-display { cursor:default; }
  .cart-finish-bottle-current { display:none; }
}
.quote-form .cart-utilities { display:flex; align-items:center; gap:12px; margin:24px 0; color:#111; font-size:13px; line-height:1.5; cursor:pointer; }
.quote-form .cart-utilities input { display:block; flex:none; appearance:auto; width:20px; min-width:20px; height:20px; min-height:20px; padding:0; margin:0; accent-color:#111; border-radius:3px; }
.quote-form .cart-utilities input:focus-visible { outline:2px solid #111; outline-offset:3px; }
.cart-detail-meter { height:3px; margin:24px 0 28px; background:#eee; overflow:hidden; }
.cart-detail-meter span { display:block; width:33.333%; height:100%; background:#111; transition:width .35s cubic-bezier(.16,1,.3,1); }
.cart-detail-meter-address span { width:66.667%; }
.cart-detail-meter-access span { width:100%; }
.cart-access-copy { margin:0 0 24px; color:#555; font-size:14px; line-height:1.5; }
.quote-form .cart-access-phase .cart-utilities { min-height:76px; margin:0; padding:20px; border:2px solid #111; font-size:15px; }
.quote-form .cart-access-phase .cart-utilities strong { font-size:16px; font-weight:600; }
.quote-form .cart-access-phase .cart-utilities input { width:22px; min-width:22px; height:22px; min-height:22px; }
.cart-access-contact { display:inline-flex; align-items:center; justify-content:center; min-height:48px; margin-top:20px; padding:0 16px; border:1px solid #bbb; border-radius:8px; font-size:13px; font-weight:500; text-decoration:none!important; }
.cart-access-contact:hover { background:#f3f3f3; }
.quote-form .cart-unit-disclosure { margin-top:12px; border:0; }
.quote-form .cart-unit-disclosure summary { display:inline-flex; align-items:center; gap:10px; min-height:40px; width:auto; padding:0; color:#333; font-size:13px; font-weight:500; }
.quote-form .cart-unit-disclosure summary::before { content:none; }
.quote-form .cart-unit-disclosure summary::after { content:''!important; display:block; width:7px; height:7px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg) translateY(-2px); transition:transform .2s; }
.quote-form .cart-unit-disclosure[open] summary::after { transform:rotate(225deg) translateY(-2px); }
.cart-detail-choice .cart-packages { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:0; }
.quote-form .cart-detail-choice .cart-package label { display:flex; flex-direction:column; align-items:stretch; gap:0; min-height:238px; padding:8px; border-width:1px; background:#fff; animation:cart-card-fan .55s cubic-bezier(.16,1,.3,1) both; transition:border-color .2s,box-shadow .25s,transform .25s; }
.cart-detail-choice .cart-package:nth-child(1) label { --fan-angle:-7deg; animation-delay:0ms; }
.cart-detail-choice .cart-package:nth-child(2) label { --fan-angle:0deg; animation-delay:75ms; }
.cart-detail-choice .cart-package:nth-child(3) label { --fan-angle:7deg; animation-delay:150ms; }
.cart-detail-choice .cart-package img { width:100%; height:132px; object-fit:cover; border-radius:4px; }
.cart-detail-choice .cart-package-copy { padding:14px 6px 0; }
.cart-detail-choice .cart-package-copy > span { display:none; }
.cart-detail-choice .cart-package-title { margin:0; font-size:16px; line-height:1.2; }
.cart-detail-choice .cart-package-price { align-self:auto; padding:9px 6px 5px; font-size:15px; font-weight:600; }
.cart-detail-choice .cart-package-price > span { font-size:11px; }
.quote-form .cart-detail-choice .cart-package label:has(:checked) { border:2px solid #111; padding:7px; background:#fff; }
@media(hover:hover) and (pointer:fine) {
  .quote-form .cart-detail-choice .cart-package label:hover { transform:translateY(-5px); border-color:#111; background:#fff; box-shadow:0 12px 24px #00000014; }
}
@keyframes cart-card-fan { from { opacity:0; transform:translateY(25px) rotate(var(--fan-angle)) scale(.94); } to { opacity:1; transform:translateY(0) rotate(0) scale(1); } }
@media(max-width:480px) {
  .cart-detail-choice .cart-packages { grid-template-columns:1fr; gap:9px; }
  .quote-form .cart-detail-choice .cart-package label { display:grid; grid-template-columns:88px minmax(0,1fr); grid-template-rows:auto auto; align-content:center; min-height:104px; padding:8px; }
  .cart-detail-choice .cart-package img { grid-row:1 / 3; width:88px; height:86px; }
  .cart-detail-choice .cart-package-copy { padding:13px 10px 0; }
  .cart-detail-choice .cart-package-price { padding:4px 10px 8px; }
  .quote-form .cart-detail-choice .cart-package label:has(:checked) { padding:7px; }
}
@media(prefers-reduced-motion:reduce) {
  .quote-form .cart-detail-choice .cart-package label { animation:none; transition:none; }
  .cart-detail-meter span { transition:none; }
}
.quote-dialog .cart-map-panel { height:260px; margin:24px 0 0; border-radius:8px; }
@media(max-width:480px) {
  .cart-top { top:18px; right:20px; }
  .cart-progress { margin:18px 68px 16px 20px; gap:4px; }
  .cart-progress button { min-height:68px; padding:8px 2px; font-size:10px; gap:7px; }
  .cart-progress button svg { width:22px; height:22px; }
  .cart-collection { grid-template-columns:repeat(3,minmax(0,1fr)); padding:18px 12px; gap:18px 8px; }
  .cart-bottle-art { height:110px; }
  .cart-collection figure:nth-child(n+4) { display:none; }
  .quote-dialog .cart-map-panel { height:240px; }
}

.quote-dialog .cart-package-copy > span { display:none; }
.quote-dialog .cart-package-title { margin-bottom:0; }
/* A single required access check keeps the address step quiet. */
.quote-form .cart-utilities { position:relative; align-items:center; gap:12px; min-height:54px; padding:14px 88px 14px 14px; margin:16px 0; border:1px solid #e3e3e3; border-radius:var(--quote-radius); background:#fff; color:var(--quote-ink); transition:border-color .16s; }
.quote-form .cart-utilities > span { display:block; }
.quote-form .cart-utilities small { position:absolute; top:9px; right:12px; color:#777; font-size:10px; font-weight:500; text-transform:uppercase; letter-spacing:.06em; }
.quote-form .cart-utilities strong { font-size:14px; font-weight:500; letter-spacing:-.02em; }
.quote-form .cart-utilities input { width:18px; min-width:18px; height:18px; min-height:18px; accent-color:#111; }
.quote-form .cart-utilities input:focus-visible { outline-color:#111; }
.quote-form .cart-utilities:has(:checked) { border-color:#777; background:#fff; }
.quote-dialog .dialog-submit::after { content:none; }
.cart-package-editor { overflow:hidden; }
.cart-package-editor .cart-detail-choice { padding:24px 0; animation:none; }
.quote-form .cart-package-editor h2 { font-size:20px; }
.cart-package-editor .cart-collection-panel, .cart-package-editor .cart-intake-note { display:none; }
@media(max-width:480px) {
  .quote-dialog .cart-bottle-art { height:155px; }
  .quote-dialog .cart-collection { gap:26px 8px; }
  .quote-dialog .cart-collection figcaption { font-size:12px; }
  .quote-form .cart-utilities { padding:12px 78px 12px 12px; }
}
.quote-dialog .cart-location-field { flex-wrap:nowrap; gap:8px; padding:0 12px 0 16px; border:1px solid transparent; min-height:54px; }
.quote-dialog .cart-location-field:focus-within { border-color:#888; background:var(--quote-field); }
.quote-dialog .cart-location-field input { min-width:0; }
.quote-dialog .cart-map-search, .quote-dialog .cart-clear { flex:none; width:auto; min-height:36px; height:36px; padding:0 12px; border:0; border-radius:5px; background:#111; color:#fff; font-size:12px; font-weight:500; white-space:nowrap; }
.quote-dialog .cart-map-search:hover, .quote-dialog .cart-clear:hover { background:#222; }
.quote-dialog .cart-clear { background:#e7e7e7; color:#111; }
.quote-dialog .cart-clear:hover { background:#ddd; }
.cart-unit-disclosure { margin-top:12px; }
.cart-unit-disclosure summary { display:flex; align-items:center; gap:8px; width:max-content; max-width:100%; padding:8px 0; color:#555; font-size:13px; cursor:pointer; list-style:none; }
.cart-unit-disclosure summary::-webkit-details-marker { display:none; }
.cart-unit-disclosure summary::before { content:'+'; font-size:17px; line-height:1; }
.cart-unit-disclosure summary::after { content:none !important; }
.cart-unit-disclosure[open] summary::before { content:'−'; }
.cart-unit-disclosure summary span { color:#888; font-size:11px; }
.cart-unit-disclosure input { margin-top:8px; }
@media(max-width:360px) {
  .quote-dialog .cart-bottle-art { height:135px; }
}
/* Still images have transparent studio margins; size by height to match the live model. */
.quote-dialog .cart-bottle-art { position:relative; }
.quote-dialog .cart-bottle-art img { position:absolute; left:50%; width:auto; max-width:none; height:100%; transform:translateX(-50%) rotateX(var(--bottle-x,0deg)) rotateY(var(--bottle-y,0deg)); }

/* Detail setup keeps the three global stages and reveals one focused panel at a time. */
.cart-progress { grid-template-columns:repeat(4,minmax(0,1fr)); }
.cart-detail-choice .cart-packages { grid-template-columns:1fr; gap:12px; }
.quote-form .cart-detail-choice .cart-package label { display:grid; grid-template-columns:clamp(132px,14vw,180px) minmax(0,1fr) auto; align-items:center; gap:18px; min-height:clamp(154px,18dvh,230px); padding:10px; }
.quote-form .cart-detail-choice .cart-package label:has(:checked) { padding:9px; }
.cart-detail-choice .cart-package img { width:100%; height:clamp(132px,16dvh,208px); }
.cart-detail-choice .cart-package-copy { padding:0; }
.cart-detail-choice .cart-package-copy > span { display:block; margin-top:8px; }
.cart-detail-choice .cart-package-title { font-size:19px; }
.cart-detail-choice .cart-package-price { align-self:center; padding:0 6px; font-size:18px; }
.cart-detail-choice .cart-package-price > span { font-size:12px; }
.quote-dialog .cart-selected { grid-template-columns:58px minmax(0,1fr) auto; gap:3px 14px; padding:10px 12px; border:1px solid #dedede; border-radius:10px; background:#f8f8f8; }
.quote-dialog .cart-selected-image { width:58px; height:58px; border-radius:5px; }
.quote-dialog .cart-selected-title { font-size:18px; }
.quote-dialog .cart-selected-price { font-size:13px; }
.quote-dialog .cart-change-package { min-height:42px; padding-inline:14px; background:#fff; border:1px solid #ddd; font-size:12px; }
.quote-dialog[data-step="0"] .cart-address-phase { max-width:500px; margin:0 auto; padding-top:26px; }
.quote-dialog[data-step="0"] .cart-address-phase .cart-map-panel { margin-top:38px; }
@media(max-width:480px) {
  .quote-form .cart-detail-choice .cart-package label { grid-template-columns:94px minmax(0,1fr); grid-template-rows:auto auto; gap:0 14px; min-height:122px; padding:8px; }
  .quote-form .cart-detail-choice .cart-package label:has(:checked) { padding:7px; }
  .cart-detail-choice .cart-package img { grid-row:1 / 3; width:94px; height:104px; }
  .cart-detail-choice .cart-package-copy { padding:14px 0 0; }
  .cart-detail-choice .cart-package-copy > span { display:none; }
  .cart-detail-choice .cart-package-price { grid-column:2; padding:0 0 12px; font-size:16px; }
  .quote-dialog[data-step="0"] .cart-address-phase { padding-top:14px; }
  .quote-dialog[data-step="0"] .cart-address-phase .cart-map-panel { margin-top:28px; }
}
.cart-detail-meter span { width:50%; }
.cart-detail-meter-address span { width:100%; }
.quote-form .cart-address-phase .cart-utilities { min-height:60px; margin:26px 0 0; padding:14px 90px 14px 16px; border:1px solid #d8d8d8; }
.quote-form .cart-address-phase .cart-utilities:has(:checked) { border-color:#111; }
.quote-form .cart-address-phase .cart-utilities small { top:12px; right:14px; }
.cart-access-help { display:flex; align-items:center; gap:8px; margin:12px 0 0; color:#777; font-size:12px; }
.cart-access-help a { color:#222; font-weight:500; }
.cart-copy-access-phone { display:grid; place-items:center; width:30px; height:30px; margin-left:2px; padding:0; border:0; border-radius:5px; background:#eee; color:#111; cursor:pointer; }
.cart-copy-access-phone svg { width:17px; height:17px; }
.cart-copy-access-phone:hover { background:#ddd; }
.quote-dialog[data-step="2"] .cart-body { display:flex; flex:1; flex-direction:column; justify-content:center; }
.quote-dialog[data-step="2"] #cart-vehicle-step { width:100%; }
.quote-dialog .cart-privacy-note { margin:24px 0 0; padding:0; border:0; }
.cart-finish-backdrop { position:absolute; z-index:0; top:54%; left:50%; width:130%; padding:0 20px; color:#353535; font-size:clamp(118px,17vw,210px); font-weight:700; line-height:.82; letter-spacing:-.09em; text-align:center; transform:translate(-50%,-50%) rotate(-4deg); pointer-events:none; user-select:none; }
.cart-finish-bottle-display canvas, .cart-finish-bottle-fallback { z-index:1; }
@media(max-width:480px) {
  .cart-finish-backdrop { top:57%; font-size:clamp(106px,31vw,145px); }
}
.quote-dialog .cart-detail-choice { min-height:100%; display:flex; flex-direction:column; justify-content:center; }
.quote-dialog[data-step="0"][data-detail-phase="service"] .cart-body { display:flex; flex:1; flex-direction:column; justify-content:center; }
.quote-dialog[data-step="0"][data-detail-phase="service"] .cart-detail-choice { min-height:0; }
.cart-detail-choice .cart-packages { width:100%; }
.quote-dialog .cart-context { padding:18px 0 24px; }
.quote-dialog .cart-selected { grid-template-columns:72px minmax(0,1fr) auto; min-height:90px; padding:10px 14px; }
.quote-dialog .cart-selected-image { width:72px; height:68px; }
.quote-dialog .cart-selected-title { font-size:20px; }
.cart-progress { margin-top:10px; margin-bottom:10px; }
.cart-progress button { min-width:0; }
.cart-progress [aria-current] { background:#111; color:#fff; }
.cart-progress [aria-current] svg { stroke:#fff; }
.cart-detail-meter, .quote-dialog .cart-meter { display:none; }
.cart-access-help { display:inline-flex; align-items:center; gap:8px; min-height:44px; margin:8px 0 0; color:#5c5c5c; font-size:12px; text-decoration:none!important; }
.cart-access-help:hover { color:#111; }
.cart-access-help span { font-size:16px; }
.quote-dialog[data-step="complete"] .cart-complete { overflow:hidden; }
.cart-finish-details-open { flex:none; align-self:flex-start; min-height:48px; margin:16px 24px 0; padding:0 12px; border:1px solid #555; border-radius:6px; background:#000; color:#fff; font:inherit; font-size:12px; cursor:pointer; }
.cart-finish-details-open span { margin-left:10px; }
.cart-finish-details { flex:1; min-height:0; overflow:auto; padding:24px 32px 40px; background:#fff; color:#111; }
.cart-finish-details-close { min-height:44px; padding:0; border:0; background:none; color:#111; font:inherit; font-size:13px; cursor:pointer; }
.cart-finish-details h3 { margin:34px 0 12px; font-size:32px; line-height:1; letter-spacing:-.05em; }
.quote-dialog[data-step="complete"] .cart-finish-details .cart-complete-note { margin:0 0 30px; color:#555; }
.cart-finish-edit-note { margin:30px 0 0; padding-top:20px; border-top:1px solid #e5e5e5; font-size:13px; line-height:1.6; }
.quote-dialog[data-step="complete"] .cart-finish-details button:focus-visible, .quote-dialog[data-step="complete"] .cart-finish-details-open:focus-visible, .quote-dialog[data-step="complete"] .cart-finish-cancel:focus-visible { outline:2px solid currentColor; outline-offset:3px; }
.quote-dialog[data-step="complete"] .cart-actions { margin-bottom:8px; }
.cart-finish-cancel { display:block; width:max-content; min-height:36px; margin:auto; padding:7px 10px; color:#ccc!important; font-size:12px; text-decoration:none!important; }
.cart-finish-cancel:hover { color:#fff!important; text-decoration:underline!important; }
@media(max-width:480px) {
  .quote-dialog .cart-selected { grid-template-columns:58px minmax(0,1fr) auto; min-height:78px; }
  .quote-dialog .cart-selected-image { width:58px; height:58px; }
  .quote-dialog .cart-selected-title { font-size:17px; }
  .cart-progress { margin-right:56px; }
  .cart-progress button { font-size:9px; gap:4px; }
  .cart-progress button svg { width:19px; height:19px; }
  .cart-finish-details { padding:20px; }
}

/* Stronger service selection, with motion confined to the card the visitor chose. */
.cart-detail-choice .cart-packages { margin-top:22px; }
.quote-form .cart-detail-choice .cart-packages:has(:checked) .cart-package label:not(:has(:checked)) { opacity:.68; }
.quote-form .cart-detail-choice .cart-package label { transition:opacity .22s, border-color .22s, background .22s, box-shadow .22s, transform .22s; }
.quote-form .cart-detail-choice .cart-package label:hover,
.quote-form .cart-detail-choice .cart-package label:has(:focus-visible) { opacity:1!important; }
.quote-form .cart-detail-choice .cart-package label:has(:checked) { background:#111; border-color:#111; color:#fff; box-shadow:0 16px 32px #0002; animation:cart-selected-pop .36s cubic-bezier(.18,.9,.2,1.2) both; }
.cart-detail-choice .cart-package label:has(:checked) .cart-package-copy > span,
.cart-detail-choice .cart-package label:has(:checked) .cart-package-price > span { color:#bbb; }
.cart-detail-choice .cart-package label:has(:checked) .cart-package-price { color:#fff; }
@keyframes cart-selected-pop { 0% { transform:scale(.965); } 68% { transform:scale(1.018); } 100% { transform:scale(1); } }

/* Location hierarchy: title, chosen service, then a connected address control. */
.quote-dialog .cart-selected { grid-template-columns:88px minmax(0,1fr) auto; min-height:112px; padding:12px; }
.quote-dialog .cart-selected-image { width:88px; height:88px; }
.quote-dialog .cart-selected-title { font-size:21px; }
.quote-dialog[data-step="0"] .cart-address-phase .cart-field-label { margin-top:12px; margin-bottom:10px; font-size:16px; font-weight:600; }
.quote-dialog .cart-address-phase .cart-location-field { min-height:60px; border-radius:8px 8px 0 0; }
.quote-form .cart-address-phase .cart-unit-disclosure { margin:0; border:0; border-top:1px solid #dedede; border-radius:0 0 8px 8px; background:var(--quote-field); }
.quote-form .cart-address-phase .cart-unit-disclosure summary { display:flex; justify-content:space-between; width:100%; min-height:48px; padding:0 16px; font-size:13px; }
.quote-form .cart-address-phase .cart-unit-disclosure summary::before { content:none; display:none; }
.quote-form .cart-address-phase .cart-unit-disclosure[open] summary::before { content:none; display:none; }
.quote-form .cart-address-phase .cart-unit-disclosure[open] { padding-bottom:12px; }
.quote-form .cart-address-phase .cart-unit-disclosure input { display:block; width:calc(100% - 32px); margin:0 16px; background:#fff; }
.quote-form .cart-address-phase .cart-utilities { min-height:86px; margin-top:34px; padding-left:18px; }
.quote-form .cart-address-phase .cart-utilities strong { font-size:16px; font-weight:600; }
.quote-form .cart-address-phase .cart-utilities input { width:24px; min-width:24px; height:24px; min-height:24px; }
.cart-contact-open { display:inline-flex; align-items:center; gap:10px; min-height:44px; margin:6px 0 0; padding:0; border:0; background:none; color:#555; font:inherit; font-size:13px; cursor:pointer; }
.cart-contact-open:hover { color:#000; text-decoration:underline; text-underline-offset:3px; }
.cart-contact-open:focus-visible { outline:2px solid #111; outline-offset:4px; }

.contact-overlay { inset:0; width:min(440px,calc(100% - 28px)); max-width:none; max-height:calc(100dvh - 28px); margin:auto; padding:0; border:0; border-radius:10px; background:#fff; color:#111; box-shadow:0 24px 80px #0005; }
.contact-overlay::backdrop { background:#000b; }
.contact-overlay-inner { position:relative; padding:56px 32px 32px; }
.contact-overlay-close { position:absolute; top:14px; right:14px; display:grid; place-items:center; width:40px; height:40px; border:0; border-radius:50%; background:#eee; color:#111; cursor:pointer; }
.contact-overlay-close svg { width:19px; height:19px; }
.contact-overlay-eyebrow { margin:0 0 24px; color:#777; font-size:11px; font-weight:600; letter-spacing:.12em; }
.contact-overlay h2 { margin:0; font-size:clamp(32px,7vw,46px); line-height:1; letter-spacing:-.055em; outline:none; }
.contact-overlay h2 + p { max-width:32ch; margin:18px 0 32px; color:#555; font-size:14px; line-height:1.55; }
.contact-overlay-actions { display:flex; align-items:stretch; gap:8px; }
.contact-overlay-actions a { display:flex; align-items:center; justify-content:space-between; flex:1; min-height:56px; padding:0 18px; border-radius:7px; background:#111; color:#fff; font-size:16px; font-weight:600; text-decoration:none; }
.contact-overlay-actions a span { font-weight:400; }
.contact-overlay-copy { display:grid; place-items:center; flex:none; width:56px; border:0; border-radius:7px; background:#eee; color:#111; cursor:pointer; }
.contact-overlay-copy svg { width:20px; height:20px; }
.contact-overlay-status { min-height:18px; margin:12px 0 0; color:#555; font-size:12px; }
.contact-overlay button:focus-visible, .contact-overlay a:focus-visible { outline:2px solid #111; outline-offset:3px; }
@media(max-width:480px) {
  .quote-dialog .cart-selected { grid-template-columns:70px minmax(0,1fr) auto; min-height:94px; }
  .quote-dialog .cart-selected-image { width:70px; height:70px; }
  .quote-dialog .cart-selected-title { font-size:18px; }
  .contact-overlay-inner { padding:56px 24px 24px; }
  .quote-dialog[data-step="0"] .cart-address-phase .cart-map-panel { height:152px; margin-top:18px; }
  .quote-form .cart-address-phase .cart-utilities { margin-top:16px; }
}
@media(prefers-reduced-motion:reduce) {
  .quote-form .cart-detail-choice .cart-package label:has(:checked) { animation:none; }
  .quote-form .cart-detail-choice .cart-package label { transition:none; }
}

/* Keep headings and selected service anchored while each step's fields move below. */
.quote-dialog[data-step="0"][data-detail-phase="service"] .cart-body { justify-content:flex-start; }
.quote-dialog[data-step="0"][data-detail-phase="service"] .cart-detail-choice { flex:1; min-height:0; justify-content:flex-start; }
.quote-dialog[data-step="0"][data-detail-phase="service"] .cart-detail-choice .cart-packages { margin-top:auto; margin-bottom:auto; padding-top:22px; padding-bottom:22px; }
.quote-dialog[data-step="2"] .cart-body, .quote-dialog[data-step="3"] .cart-body { display:flex; flex:1; flex-direction:column; justify-content:flex-start; }
.quote-dialog[data-step="2"] #cart-vehicle-step, .quote-dialog[data-step="3"] #cart-contact-step { display:flex; flex:1; flex-direction:column; width:100%; max-width:500px; margin:0 auto; }
#cart-vehicle-step .cart-vehicle-fields, #cart-contact-step .cart-contact-content { display:flex; flex:1; flex-direction:column; justify-content:center; padding:24px 0; }
#cart-vehicle-step .cart-vehicle-fields { min-height:300px; }
#cart-contact-step .cart-contact-content { min-height:330px; }
.quote-dialog[data-step="0"][data-detail-phase="service"] #cart-detail-step > h2,
.quote-dialog[data-step="2"] #cart-vehicle-step > h2,
.quote-dialog[data-step="3"] #cart-contact-step > h2 { margin-top:26px; }

/* A dark receipt stays within the finish screen's visual language. */
.cart-finish-backdrop { top:auto; bottom:6%; left:0; width:120%; padding:0; font-size:clamp(108px,15vw,190px); line-height:.75; text-align:left; transform:rotate(-4deg); }
.cart-finish-backdrop > span { display:block; }
.cart-finish-backdrop > span:nth-child(2) { margin-left:20%; }
.cart-finish-backdrop > span:nth-child(3) { margin-left:5%; white-space:nowrap; }
.cart-finish-details { background:#111; color:#fff; }
.cart-finish-details-close { display:inline-flex; align-items:center; gap:11px; min-height:48px; color:#fff; font-size:14px; font-weight:500; }
.cart-finish-details-close svg { width:22px; height:22px; }
.cart-finish-details h3 { margin-top:30px; }
.quote-dialog[data-step="complete"] .cart-finish-details .cart-complete-note { max-width:36ch; margin-bottom:24px; color:#aaa; }
.cart-finish-details .cart-complete-summary { border-color:#333; }
.cart-finish-details .cart-complete-summary > div { grid-template-columns:32px minmax(0,1fr); gap:14px; align-items:center; padding:13px 0; border-color:#333; }
.cart-finish-details .cart-complete-summary dt { color:#aaa; }
.cart-finish-details .cart-complete-summary dt svg { display:block; width:21px; height:21px; }
.cart-finish-details .cart-complete-summary dd { color:#f5f5f5; font-size:14px; }
.cart-request-change { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:52px; margin-top:26px; padding:0 16px; border:1px solid #777; border-radius:6px; background:transparent; color:#fff; font:inherit; font-size:13px; cursor:pointer; }
.cart-request-change:hover { background:#222; }
.cart-finish-cancel { border:0; background:none; font:inherit; cursor:pointer; }
.contact-overlay-bottles { display:flex; align-items:flex-end; justify-content:center; height:110px; margin:-10px 0 20px; overflow:hidden; }
.contact-overlay-bottles img { width:100px; height:120px; object-fit:contain; filter:drop-shadow(0 8px 9px #0002); }
.contact-overlay-bottles img:nth-child(1) { transform:translateX(22px) rotate(-17deg); }
.contact-overlay-bottles img:nth-child(2) { position:relative; z-index:1; transform:rotate(6deg); }
.contact-overlay-bottles img:nth-child(3) { transform:translateX(-22px) rotate(20deg); }

/* Service cards stay still on selection; hover changes only their size. */
.quote-form .cart-detail-choice .cart-packages:has(:checked) .cart-package label:not(:has(:checked)) { opacity:1; }
.quote-form .cart-detail-choice .cart-package label,
.quote-form .cart-detail-choice .cart-package label:has(:checked) {
  box-sizing:border-box;
  border:1px solid #dedede;
  padding:8px;
  background:#fff;
  color:#111;
  opacity:1;
  animation:none;
  transition:transform .2s cubic-bezier(.2,.8,.2,1),background-color .2s;
}
.quote-form .cart-detail-choice .cart-package label:has(:checked) { border:1px solid #e5e5e5; padding:8px; background:#f1f1f1; box-shadow:none; }
.cart-detail-choice .cart-package label:has(:checked) .cart-package-copy > span,
.cart-detail-choice .cart-package label:has(:checked) .cart-package-price > span { color:#666; }
.cart-detail-choice .cart-package label:has(:checked) .cart-package-price { color:#111; }
.cart-detail-choice .cart-package img { pointer-events:none; user-select:none; -webkit-user-drag:none; -webkit-touch-callout:none; }
@media(hover:hover) and (pointer:fine) {
  .quote-form .cart-detail-choice .cart-package label:hover { transform:scale(1.012); border-color:#dedede; background:#fff; box-shadow:none; }
  .quote-form .cart-detail-choice .cart-package label:has(:checked):hover { border-color:#e5e5e5; background:#f1f1f1; }
}

/* Contact is a small, playable companion to the footer and finish screen. */
.contact-overlay { width:min(520px,calc(100% - 28px)); overflow:auto; background:#000; color:#fff; }
.contact-overlay-inner { padding:54px 28px 26px; }
.contact-overlay-close { z-index:2; background:#272727; color:#fff; }
.contact-overlay-bottles { position:relative; display:block; height:205px; margin:0 0 18px; overflow:hidden; border-bottom:1px solid #303030; touch-action:none; cursor:grab; }
.contact-overlay-bottles.is-dragging { cursor:grabbing; }
.contact-overlay-bottles canvas { position:absolute; inset:0; display:block; width:100%; height:100%; }
.contact-overlay-bottles > img { position:absolute; bottom:-10px; left:var(--x); width:22%; height:150px; object-fit:contain; transform:rotate(var(--turn)); filter:drop-shadow(0 9px 12px #0009); pointer-events:none; user-select:none; -webkit-user-drag:none; }
.contact-overlay-bottles > img:nth-child(1) { --x:12%; --turn:-16deg; }
.contact-overlay-bottles > img:nth-child(2) { --x:39%; --turn:12deg; }
.contact-overlay-bottles > img:nth-child(3) { --x:66%; --turn:-7deg; }
.contact-overlay-bottles.is-ready > img { visibility:hidden; }
.contact-overlay h2 { font-size:clamp(36px,8vw,54px); }
.contact-overlay h2 + p { margin:14px 0 24px; color:#aaa; }
.contact-overlay-actions a { background:#fff; color:#111; }
.contact-overlay-copy { background:#292929; color:#fff; }
.contact-overlay-copy { position:relative; transition:background .18s ease,transform .18s ease; }
.contact-overlay-copy .contact-check-icon { position:absolute; opacity:0; transform:scale(.55); transition:opacity .18s ease,transform .2s ease; }
.contact-overlay-copy .contact-copy-icon { transition:opacity .15s ease,transform .2s ease; }
.contact-overlay-copy.is-copied { background:#fff; color:#000; transform:scale(1.04); }
.contact-overlay-copy.is-copied:hover { background:#fff; }
.contact-overlay-copy.is-copied .contact-copy-icon { opacity:0; transform:scale(.55); }
.contact-overlay-copy.is-copied .contact-check-icon { opacity:1; transform:scale(1); }
.contact-copy-tip { position:absolute; right:0; bottom:calc(100% + 9px); padding:6px 9px; border-radius:4px; background:#fff; color:#000; font-size:11px; font-weight:600; line-height:1; opacity:0; transform:translateY(4px); pointer-events:none; transition:opacity .18s ease,transform .18s ease; }
.contact-overlay-copy.is-copied .contact-copy-tip { opacity:1; transform:translateY(0); }
.contact-overlay-copy:hover,.contact-overlay-close:hover { background:#444; }
.contact-overlay-qr { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:12px; padding:14px 16px; border:1px solid #333; border-radius:7px; }
.contact-overlay-qr div { display:grid; gap:4px; }
.contact-overlay-qr strong { font-size:15px; }
.contact-overlay-qr span { color:#999; font-size:12px; }
.contact-overlay-qr img { display:block; width:104px; height:104px; padding:5px; border-radius:4px; background:#fff; image-rendering:pixelated; }
.contact-overlay-status { color:#aaa; }
.contact-overlay-status.is-success { height:18px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.contact-overlay button:focus-visible,.contact-overlay a:focus-visible,.contact-overlay-bottles:focus-visible { outline:2px solid #fff; outline-offset:3px; }
@media(max-width:480px) {
  .contact-overlay-inner { padding:48px 20px 18px; }
  .contact-overlay-bottles { height:165px; margin-bottom:14px; }
  .contact-overlay-bottles > img { height:115px; }
  .contact-overlay-qr img { width:88px; height:88px; }
}
@media(prefers-reduced-motion:reduce) {
  .quote-form .cart-detail-choice .cart-package label { transition:none; }
  .quote-form .cart-detail-choice .cart-package label:hover { transform:none; }
  .contact-overlay-bottles { cursor:default; }
}

/* Suggestions float over the unit control; picking one confirms the map location. */
.cart-address-combobox { position:relative; z-index:auto; }
.cart-address-combobox:has(.cart-address-suggestions:not([hidden])) { z-index:12; }
.quote-dialog[data-package-view="editing"] .cart-address-combobox { z-index:auto; }
.quote-dialog .cart-address-combobox .cart-address-suggestions { position:absolute; top:calc(100% + 4px); left:0; right:0; z-index:12; margin:0; box-shadow:0 16px 36px #0002; }
.quote-dialog .cart-map-search { display:none!important; }

/* Keep the selected service visible while the other choices open over the page. */
.quote-dialog .cart-context { position:relative; z-index:6; }
.quote-dialog .cart-selected { position:relative; z-index:2; }
.quote-dialog .cart-package-editor { position:absolute; z-index:1; top:calc(100% - 6px); left:16px; right:16px; max-height:calc(100dvh - 255px); overflow:auto; padding:20px 14px 14px; border-radius:0 0 12px 12px; background:#fff; box-shadow:0 28px 48px #0004,0 0 0 100vmax #0006; }
.quote-dialog .cart-package-editor .cart-detail-choice { min-height:0; padding:0; }
.quote-dialog .cart-package-editor .cart-detail-choice > h2 { display:none; }
.quote-dialog .cart-package-editor .cart-packages { margin:0; padding:0; }
.quote-dialog .cart-package-editor .cart-package label { min-height:100px; grid-template-columns:88px minmax(0,1fr) auto; gap:12px; }
.quote-dialog .cart-package-editor .cart-package img { width:88px; height:84px; }
.quote-dialog .cart-package-editor .cart-package-copy > span { display:none; }
.quote-dialog .cart-package-editor .cart-package-title { font-size:16px; }
.quote-dialog .cart-package-editor .cart-package-price { font-size:14px; }
.quote-dialog[data-step="0"][data-detail-phase="service"] .cart-detail-choice { padding-top:clamp(20px,6dvh,72px); }
@media(max-width:480px) {
  .quote-dialog .cart-package-editor { left:10px; right:10px; max-height:calc(100dvh - 220px); padding:14px 10px 10px; }
  .quote-dialog .cart-package-editor .cart-package label { grid-template-columns:76px minmax(0,1fr); min-height:92px; }
  .quote-dialog .cart-package-editor .cart-package img { width:76px; height:74px; }
  .quote-dialog .cart-package-editor .cart-package-price { grid-column:2; }
}

/* The selected service stays a compact chip on each later step. */
.quote-dialog .cart-context { padding-top:12px; padding-bottom:12px; }
.quote-dialog .cart-selected { min-height:82px; grid-template-columns:64px minmax(0,1fr) auto; gap:3px 14px; padding:10px 12px; border:0; border-radius:10px; background:#f3f3f3; box-shadow:none; }
.quote-dialog .cart-selected-image { width:64px; height:60px; }
.quote-dialog .cart-selected-title { font-size:18px; }
.quote-dialog .cart-selected-price { font-size:12px; }
.quote-dialog .cart-back { width:64px; font:inherit; font-size:13px; font-weight:600; }
.quote-dialog[data-step="2"] #cart-vehicle-step,.quote-dialog[data-step="3"] #cart-contact-step { flex:none; }
#cart-vehicle-step .cart-vehicle-fields,#cart-contact-step .cart-contact-content { flex:none; justify-content:flex-start; min-height:0; padding:26px 0 20px; }
.quote-dialog[data-step="2"] .cart-body,.quote-dialog[data-step="3"] .cart-body { flex:1; }
.cart-finish-backdrop { top:30%; }
@media(max-width:480px) {
  .quote-dialog .cart-selected { grid-template-columns:56px minmax(0,1fr) auto; min-height:76px; }
  .quote-dialog .cart-selected-image { width:56px; height:54px; }
  .quote-dialog .cart-selected-title { font-size:16px; }
  .cart-finish-backdrop { top:33%; }
}

.privacy-overlay { inset:0; display:flex; flex-direction:column; width:min(760px,calc(100% - 32px)); height:min(82dvh,880px); max-width:none; max-height:none; margin:auto; padding:0; border:1px solid #333; border-radius:10px; background:#000; color:#fff; box-shadow:0 28px 90px #000a; overflow:hidden; }
.privacy-overlay:not([open]) { display:none; }
.privacy-overlay::backdrop { background:#000e; }
.privacy-overlay.is-expanded { width:min(1080px,calc(100% - 16px)); height:calc(100dvh - 16px); }
.privacy-overlay-bar { display:flex; justify-content:flex-end; align-items:center; gap:16px; min-height:58px; padding:8px 16px; }
.privacy-overlay-bar strong { font-size:14px; font-weight:600; }
.privacy-overlay-bar > div { display:flex; gap:8px; }
.privacy-overlay-bar button { display:grid; place-items:center; width:40px; height:40px; padding:0; border:0; border-radius:50%; background:#242424; color:#fff; cursor:pointer; }
.privacy-overlay-bar button svg { width:20px; height:20px; }
.privacy-overlay-bar button:hover { background:#252525; }
.privacy-overlay-bar button:focus-visible { outline:2px solid #fff; outline-offset:2px; }
.privacy-overlay iframe { flex:1; width:100%; border:0; background:#000; }
.cart-request-help { display:inline-flex; align-items:center; min-height:32px; margin:-4px 0 12px; padding:0; border:0; background:none; color:#111; font:inherit; font-size:13px; font-weight:600; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.cart-request-help:focus-visible { outline:2px solid #111; outline-offset:3px; }
@media(max-width:480px) {
  .privacy-overlay { width:calc(100% - 16px); height:calc(100dvh - 32px); }
  .privacy-overlay-bar { padding:8px 10px; }
}
.quote-form .cart-detail-choice .cart-package label:has(:checked),
.quote-form .cart-detail-choice .cart-package label:has(:checked):hover { border-color:#c6c6c6; background:#e5e5e5; }
.quote-dialog[data-package-view="editing"] .cart-detail-choice { justify-content:flex-start; padding-top:18px!important; }
.quote-dialog[data-package-view="editing"] .cart-context { width:100%; }
.quote-dialog[data-package-view="editing"] .cart-packages { margin:16px 0 0!important; padding:0; }
.quote-dialog[data-step="complete"] .dialog-close { border-radius:50%; background:#242424; color:#aaa; }
.quote-dialog[data-step="complete"] .dialog-close:hover { background:#383838; color:#fff; }
.quote-dialog .cart-privacy-note { display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:12px; }
.privacy-overlay-foot { display:flex; justify-content:flex-end; align-items:center; gap:16px; min-height:58px; padding:10px 20px; }
.privacy-overlay-save { display:inline-flex; align-items:center; min-height:38px; padding:0 14px; border:1px solid #4c4c4c; border-radius:5px; color:#fff; font-size:12px; font-weight:600; text-decoration:none; }
.privacy-overlay-save:hover { background:#242424; }
.privacy-overlay-save:focus-visible { outline:2px solid #fff; outline-offset:3px; }
.cart-finish-details { background:#000; color:#fff; }
.cart-finish-details h3 { margin:22px 0 10px; font-size:clamp(30px,5vw,42px); }
.quote-dialog[data-step="complete"] .cart-finish-details .cart-complete-note { max-width:52ch; margin-bottom:24px; color:#aaa; font-size:13px; }
.cart-finish-details .cart-complete-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 24px; margin:0; padding:20px 24px; border:1px solid #333; border-radius:10px; background:#000; }
.cart-finish-details .cart-complete-summary > div { display:grid; grid-template-columns:27px minmax(0,1fr); gap:12px; align-items:start; min-width:0; padding:12px 0; border:0; }
.cart-finish-details .cart-complete-summary > div:first-child,
.cart-finish-details .cart-complete-summary > div:nth-child(2),
.cart-finish-details .cart-complete-summary > div:nth-child(3),
.cart-finish-details .cart-complete-summary > div:nth-child(4) { grid-column:1 / -1; }
.cart-finish-details .cart-complete-summary > div:nth-child(4) { padding-bottom:20px; margin-bottom:8px; border-bottom:1px dashed #505050; }
.cart-finish-details .cart-complete-summary dt svg { width:20px; height:20px; }
.cart-finish-details .cart-complete-summary dd { display:flex; flex-direction:column; gap:4px; min-width:0; }
.cart-receipt-label { color:#929292; font-size:11px; line-height:1.2; }
.cart-receipt-value { color:#fff; font-size:14px; line-height:1.45; overflow-wrap:anywhere; }
@media(max-width:480px) {
  .cart-finish-details .cart-complete-summary { grid-template-columns:1fr; gap:0; padding:15px 16px; }
  .cart-finish-details .cart-complete-summary > div { grid-template-columns:23px minmax(0,1fr); gap:8px; }
  .cart-finish-details .cart-complete-summary dt svg { width:18px; height:18px; }
  .privacy-overlay-foot { gap:8px; padding:10px 14px; }
  .privacy-overlay-save { padding:0 9px; white-space:nowrap; }
}
@media(max-width:480px) {
  .quote-dialog[data-step="0"][data-detail-phase="service"] #cart-detail-step > h2,
  .quote-dialog[data-step="2"] #cart-vehicle-step > h2,
  .quote-dialog[data-step="3"] #cart-contact-step > h2 { margin-top:14px; }
  .cart-finish-backdrop { top:24%; bottom:auto; left:16px; width:calc(100% - 32px); font-size:clamp(94px,25vw,120px); transform:rotate(-3deg); }
  .cart-finish-backdrop > span:nth-child(2) { margin-left:26%; }
  .cart-finish-details .cart-complete-summary > div { grid-template-columns:28px minmax(0,1fr); }
}

/* Reserve a separate close-button column on every phone-sized sheet. */
@media(max-width:760px) {
  .cart-top { top:12px; right:12px; }
  .quote-dialog .dialog-close { width:44px; height:44px; margin:0; }
  .quote-dialog .cart-progress { margin:12px 72px 12px 16px; gap:4px; }
  .quote-dialog .cart-progress button { min-height:56px; padding:7px 2px; gap:5px; font-size:10px; }
  .quote-dialog .cart-progress button svg { width:20px; height:20px; }
  .quote-dialog .cart-meter { margin-inline:16px; }
  .quote-dialog .cart-body { padding:20px 16px; }
  .quote-dialog .quote-form h2 { font-size:28px; }
  .quote-dialog[data-step="0"][data-detail-phase="service"] .cart-detail-choice { padding-top:12px; justify-content:flex-start; }
  .quote-dialog[data-step="0"][data-detail-phase="service"] .cart-detail-choice .cart-packages { margin:24px 0 0; padding:0; gap:10px; }
  .quote-form .cart-detail-choice .cart-package label { grid-template-columns:68px minmax(0,1fr) auto; gap:10px; min-height:100px; padding:10px; }
  .quote-form .cart-detail-choice .cart-package img { grid-row:1; width:68px; height:76px; }
  .quote-form .cart-detail-choice .cart-package-copy { grid-column:2; grid-row:1; }
  .quote-form .cart-detail-choice .cart-package-title { font-size:16px; margin-bottom:5px; }
  .quote-form .cart-detail-choice .cart-package-copy > span { display:block; font-size:11px; line-height:1.4; }
  .quote-form .cart-detail-choice .cart-package-price { grid-column:3; grid-row:1; align-self:start; padding-top:4px; font-size:16px; }
  .quote-form .cart-detail-choice .cart-package-price > span { display:block; margin:0 0 3px; font-size:11px; text-align:right; }
  .quote-dialog .cart-actions { padding-bottom:max(12px,env(safe-area-inset-bottom)); }
  .quote-dialog .cart-map-panel { height:280px; min-height:280px; }
  .quote-dialog .cart-travel-result { padding:12px 14px; border-radius:8px; background:#f3f3f3; }
  .quote-dialog .cart-travel-result strong { font-size:15px; }
  .quote-dialog input,.quote-dialog textarea { font-size:16px; }
}
@media(max-width:350px) {
  .quote-form .cart-detail-choice .cart-package label { grid-template-columns:56px minmax(0,1fr) auto; gap:8px; padding:8px; }
  .quote-form .cart-detail-choice .cart-package img { width:56px; height:68px; }
  .quote-form .cart-detail-choice .cart-package-title { font-size:14px; }
  .quote-form .cart-detail-choice .cart-package-copy > span { font-size:10px; }
}

.cart-contact-travel { margin:0 0 16px; padding:12px 14px; border-radius:8px; background:#f3f3f3; color:#111; font-size:14px; font-weight:500; }

.quote-confirmation-overlay { position:absolute; inset:0; z-index:100; display:grid; place-items:center; padding:24px; background:#0006; backdrop-filter:blur(3px); }
.quote-confirmation-card { width:min(100%,380px); padding:26px; border-radius:18px; background:#fff; color:#111; box-shadow:0 12px 48px #0003; }
.quote-confirmation-card h2 { margin:0 0 12px; font-size:25px; letter-spacing:-.04em; }
.quote-confirmation-card p { margin:0 0 24px; font-size:15px; line-height:1.5; color:#555; }
.quote-confirmation-card > div { display:grid; gap:10px; }
.quote-confirmation-card button { min-height:48px; border:0; border-radius:9px; padding:12px; background:#eee; color:#111; font:inherit; cursor:pointer; }
.quote-confirmation-card button[data-confirm] { background:#111; color:#fff; }
.quote-loading .quote-confirmation-card { text-align:center; }
.quote-loading-ring { display:block; width:32px; height:32px; margin:0 auto 20px; border:3px solid #ddd; border-top-color:#111; border-radius:50%; animation:quote-load-spin .8s linear infinite; }
@keyframes quote-load-spin { to { transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce) { .quote-loading-ring { animation:none; } }

.quote-loading { background:#000; color:#fff; backdrop-filter:none; }
.quote-loading-brand { display:grid; justify-items:center; gap:20px; }
.quote-loading .site-loader-word span { display:inline-block; animation:quote-brand-pulse 1.1s ease-in-out infinite; animation-delay:calc(var(--letter) * 65ms); }
.quote-loading-status { font-size:13px; color:#999; }
@keyframes quote-brand-pulse { 0%,100% { opacity:.35; transform:translateY(0); } 45% { opacity:1; transform:translateY(-3px); } }
@media(prefers-reduced-motion:reduce) { .quote-loading .site-loader-word span { animation:none; } }
