/* Checkout 1.16.3 — one presentation system, scoped to the existing overlay. */
#cart-overlay {
  --co-space:16px; --co-gap:12px; --co-radius:10px; --co-divider:var(--ds-border-soft);
  --co-title:18px; --co-body:15px; --co-meta:13px;
}
#cart-overlay .checkout-modal { width:100%; height:auto; max-height:min(var(--public-viewport-height),100dvh); border-radius:0; font-size:var(--co-body); line-height:1.45; }
#cart-overlay .checkout-header { min-height:52px; padding:8px 64px 8px var(--co-space); border-bottom:0; }
#cart-overlay .checkout-header h2 { position:static; width:auto; height:auto; overflow:visible; clip:auto; white-space:normal; font-size:var(--co-title); }
#cart-overlay .checkout-header > #close-cart { top:4px; right:12px; box-shadow:none; }
#cart-overlay .checkout-progress { padding:4px var(--co-space) 8px; gap:4px; background:var(--ds-surface); }
#cart-overlay .checkout-progress button { min-height:48px; gap:3px; border-radius:8px; }
#cart-overlay .checkout-progress button span { width:24px; height:24px; border:0; background:transparent; }
#cart-overlay .checkout-progress button small { display:block; font-size:11px; font-weight:600; }
#cart-overlay .checkout-progress button.active { background:var(--ds-brand-50); }
#cart-overlay .checkout-progress button.active span { background:var(--ds-brand-700); }
#cart-overlay .checkout-progress button.complete span { color:var(--ds-success-600); background:var(--ds-success-50); }
#cart-overlay .checkout-progress button:disabled { opacity:.7; }
#cart-overlay :is(button,input,textarea,a):focus-visible { outline:3px solid var(--ds-focus); outline-offset:2px; }
#cart-overlay .checkout-scroll { padding:16px var(--co-space); scroll-padding-block:16px; }
#cart-overlay .checkout-step { width:100%; max-width:832px; }
#cart-overlay .checkout-cart-layout { display:grid; grid-template-columns:minmax(0,1fr); gap:20px; align-items:start; }
#cart-overlay .cart-items { min-width:0; }
#cart-overlay .cart-item { display:grid; grid-template-columns:64px minmax(0,1fr); grid-template-areas:'photo info' 'actions actions'; align-items:start; gap:4px 12px; padding:12px 0; border-bottom:1px solid var(--co-divider); }
#cart-overlay .cart-item:first-child { padding-top:0; }
#cart-overlay .cart-item:last-child { border-bottom:0; }
#cart-overlay .cart-item-visual { grid-area:photo; width:64px; height:64px; border-radius:8px; }
#cart-overlay .cart-item-copy { grid-area:info; gap:4px; }
#cart-overlay .cart-item-copy > strong { font-size:15px; line-height:1.35; overflow-wrap:anywhere; }
#cart-overlay .cart-item-copy > small { font-size:var(--co-meta); }
#cart-overlay .cart-item-promotion { gap:2px 8px; }
#cart-overlay .cart-item-promotion em { font-size:var(--co-meta); }
#cart-overlay .cart-item-promotion span { flex-basis:auto; }
#cart-overlay .cart-item-note { min-height:0; margin:0; color:var(--ds-muted)!important; font-size:13px; font-weight:400; line-height:1.4; overflow-wrap:anywhere; }
#cart-overlay .cart-item-links { gap:8px; }
#cart-overlay .cart-item-links button { min-height:44px; padding:0 4px; font-size:13px; }
#cart-overlay .cart-item-end { grid-area:actions; display:flex; flex-direction:row; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:4px 8px; min-width:0; }
#cart-overlay .cart-item-end > b { font-size:15px; white-space:nowrap; }
#cart-overlay .quantity { gap:8px; border:0; padding:0; background:transparent; box-shadow:none; border-radius:0; }
#cart-overlay .quantity button { width:44px; height:44px; flex-basis:44px; border:0!important; border-radius:50%; }
#cart-overlay .quantity span { min-width:24px; padding:0; border:0; background:transparent; text-align:center; font-size:15px; }
/* Same existing cascade layer: override the catalog's important button colors only in the cart. */
@layer components {
  #cart-overlay .quantity button { border:0!important; }
  #cart-overlay .quantity [data-less] { background:var(--ds-surface-subtle)!important; color:var(--ds-ink)!important; }
  #cart-overlay .quantity [data-more] { background:var(--ds-success-600)!important; color:#fff!important; }
}
#cart-overlay .cart-item-composition { margin:2px 0 0; font-size:13px; line-height:1.45; color:var(--ds-muted); overflow-wrap:anywhere; }
#cart-overlay .cart-item-promotion { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 8px; }
#cart-overlay .cart-item-promotion > span { font-weight:700; font-size:15px; color:var(--ds-brand-800); }
#cart-overlay .cart-item-total { display:grid; gap:2px; }
#cart-overlay .cart-item-total > small { color:var(--ds-muted); font-size:11px; }
#cart-overlay .cart-item-total > b { font-size:16px; white-space:nowrap; }
#cart-overlay .cart-item-end { margin-top:6px; }
#cart-overlay .checkout-cart-aside { position:static; gap:16px; min-width:0; }
#cart-overlay .checkout-cart-aside > article { border:0; border-radius:0; box-shadow:none; padding:0; background:transparent; }
#cart-overlay .checkout-summary-card { border-top:1px solid var(--co-divider)!important; padding-top:16px!important; }
#cart-overlay .checkout-summary-card h4 { font-size:16px; }
#cart-overlay .checkout-summary-card dl { gap:8px; }
#cart-overlay :is(.checkout-summary-card,.review-financial) dl > div { align-items:baseline; }
#cart-overlay :is(.checkout-summary-card,.review-financial) dd { margin:0; text-align:right; overflow-wrap:anywhere; }
#cart-overlay .checkout-summary-card .summary-total { margin-top:4px; padding-top:12px; font-size:16px; }
#cart-overlay .checkout-summary-card .summary-total dd { font-size:18px; }
#cart-overlay .upsell-heading { padding:0; margin-bottom:8px; border:0; }
#cart-overlay .upsell-heading strong { font-size:15px; }
#cart-overlay .upsell-product { grid-template-columns:48px minmax(0,1fr); gap:10px; padding:0; }
#cart-overlay .upsell-visual { width:48px; height:48px; border-radius:8px; }
#cart-overlay .upsell-copy { gap:4px; }
#cart-overlay .upsell-copy strong { font-size:14px; }
#cart-overlay .upsell-copy > span { font-size:12px; line-height:1.4; }
#cart-overlay .inline-offer-actions { gap:8px; margin-top:8px; padding:0; }
#cart-overlay .inline-offer-actions button { min-height:44px; padding:8px; border-radius:8px; font-size:13px; }
#cart-overlay .b-complements { gap:0; }
#cart-overlay .b-complements article { padding:12px 0; border:0; border-bottom:1px solid var(--co-divider); border-radius:0; gap:6px; }
#cart-overlay .b-complements button { min-height:44px; font-size:14px; }
#cart-overlay .checkout-grid { gap:12px; }
#cart-overlay :is(.checkout-grid label,.checkout-note) { gap:6px; font-size:14px; }
#cart-overlay :is(input,select,textarea):not([type=hidden]):not([type=radio]):not([type=checkbox]) { min-height:48px; padding:10px 12px; border-radius:var(--co-radius); font-size:16px; }
#cart-overlay .choice-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:0; border:1px solid var(--ds-border); border-radius:var(--co-radius); margin-top:16px; overflow:hidden; }
#cart-overlay .choice-card { min-height:72px; grid-template-columns:24px minmax(0,1fr) 24px; gap:12px; padding:12px; border:0; border-bottom:1px solid var(--co-divider); border-radius:0; box-shadow:none; background:var(--ds-surface); }
#cart-overlay .choice-card:last-child { border-bottom:0; }
#cart-overlay .choice-card.active { background:var(--ds-brand-50); box-shadow:inset 3px 0 var(--ds-brand-700); }
#cart-overlay .choice-card > .icon { width:24px; height:24px; color:var(--ds-brand-700); }
#cart-overlay .choice-card > i { width:22px; height:22px; }
#cart-overlay .choice-card strong { font-size:15px; }
#cart-overlay .choice-card :is(small,em) { font-size:13px; }
#cart-overlay .delivery-fields { padding:0; margin:0; min-inline-size:0; border:0; border-radius:0; box-shadow:none; }
#cart-overlay .delivery-fields legend { padding:0; margin:0 0 12px; font-size:16px; }
#cart-overlay .selected-address-summary { display:grid; grid-template-columns:24px minmax(0,1fr) auto; align-items:start; gap:4px 10px; padding:12px 0; border-block:1px solid var(--co-divider); }
#cart-overlay .selected-address-summary > .icon { margin-top:3px; width:24px; height:24px; color:var(--ds-brand-700); }
#cart-overlay .selected-address-summary > div { min-width:0; gap:2px; }
#cart-overlay [data-address-summary-label] { font-weight:600; color:var(--ds-ink); margin-bottom:2px; }
#cart-overlay .selected-address-summary :is(strong,span,small) { overflow-wrap:anywhere; }
#cart-overlay .selected-address-summary strong { font-size:16px; line-height:1.4; }
#cart-overlay .selected-address-summary :is(span,small) { color:var(--ds-muted); font-size:13px; }
#cart-overlay .selected-address-summary button { min-height:44px; padding:0 4px; font-size:14px; }
#cart-overlay .saved-addresses { gap:0; border-block:1px solid var(--co-divider); }
#cart-overlay .saved-address-card { min-height:80px; padding:12px 8px; gap:12px; border:0!important; border-bottom:1px solid var(--co-divider)!important; border-radius:0; box-shadow:none; }
#cart-overlay .saved-address-card:last-child { border-bottom:0!important; }
#cart-overlay .saved-address-card strong { overflow-wrap:anywhere; font-size:15px; }
#cart-overlay .saved-address-card .address-complement { display:block; color:var(--ds-muted); font-size:13px; }
#cart-overlay .saved-address-card .address-complement:empty { display:none; }
#cart-overlay .address-chooser > p { font-size:13px; color:var(--ds-muted); }
#cart-overlay .custom-address { margin-top:16px; }
#cart-overlay .address-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
#cart-overlay .address-grid .wide { grid-column:1/-1; }
#cart-overlay .address-save-options { gap:8px; margin-top:16px; }
#cart-overlay .address-save-options button { min-height:44px; padding:8px; font-size:13px; }
#cart-overlay .pickup-card { display:grid; grid-template-columns:48px minmax(0,1fr); gap:12px; padding:0; border:0; border-radius:0; box-shadow:none; }
#cart-overlay .pickup-card .store-logo-small { width:48px; height:48px; }
#cart-overlay .pickup-card h4 { font-size:17px; }
#cart-overlay .pickup-card a { display:inline-flex; align-items:center; min-height:44px; }
#cart-overlay .payment-choices { margin-top:16px; }
#cart-overlay .payment-choices .choice-card { min-height:56px; }
#cart-overlay .payment-choices .choice-card:not(.active) { background:var(--ds-surface); color:var(--ds-ink); }
#cart-overlay [data-checkout-step='3'] > label { display:grid; gap:6px; font-size:14px; }
#cart-overlay [data-checkout-step='3'] > p { font-size:13px; color:var(--ds-muted); margin-top:6px; }
#cart-overlay .payment-panel { padding:16px 0; margin-top:0; border:0; border-radius:0; box-shadow:none; }
#cart-overlay .pix-panel { grid-template-columns:24px minmax(0,1fr); gap:12px; }
#cart-overlay .pix-panel > .icon { width:24px; height:24px; }
#cart-overlay .card-type-choices label { min-height:44px; gap:8px; }
#cart-overlay input[type=radio] { appearance:auto; width:18px; height:18px; min-height:18px; padding:0; accent-color:var(--ds-brand-700); }
#cart-overlay .money-input input { min-width:0; }
#cart-overlay .checkout-review-layout { display:grid; gap:16px; }
#cart-overlay .checkout-review-main, #cart-overlay .checkout-review-aside { min-width:0; }
#cart-overlay .review-card { border:0; border-bottom:1px solid var(--co-divider); border-radius:0; box-shadow:none; margin:0; padding:8px 0; }
#cart-overlay .review-card:first-child { padding-top:0; }
#cart-overlay .review-card header { min-height:44px; gap:12px; }
#cart-overlay .review-card header strong { font-size:15px; }
#cart-overlay .review-card > div { padding-bottom:8px; overflow-wrap:anywhere; font-size:14px; }
#cart-overlay .review-product-row { grid-template-columns:48px minmax(0,1fr) auto; gap:10px; padding:10px 0; }
#cart-overlay .review-product-visual { width:48px; height:48px; border-radius:8px; }
#cart-overlay .review-product-copy :is(strong,small) { white-space:normal; overflow:visible; text-overflow:clip; overflow-wrap:anywhere; }
#cart-overlay .review-product-copy strong { font-size:14px; }
#cart-overlay .review-product-copy small { font-size:12px; line-height:1.4; }
#cart-overlay .review-product-copy button { min-height:44px; }
#cart-overlay .review-product-price { font-size:14px; align-self:start; padding-top:2px; }
#cart-overlay .review-financial dl { gap:8px; padding-bottom:0; }
#cart-overlay .review-financial .review-total { margin-top:4px; padding-top:12px; font-size:16px; }
#cart-overlay .review-financial .review-total dd { font-size:18px; }
#cart-overlay .review-coupon { padding:8px 0; font-size:13px; color:var(--ds-muted); overflow-wrap:anywhere; }
#cart-overlay .checkout-note { margin-top:16px; }
#cart-overlay .checkout-note textarea { min-height:80px; }
#cart-overlay .checkout-dock { display:grid; grid-template-columns:minmax(0,1fr) auto; min-height:0; gap:8px 12px; padding:12px var(--co-space) max(12px,env(safe-area-inset-bottom)); box-shadow:none; }
#cart-overlay .dock-total { overflow-wrap:anywhere; }
#cart-overlay .dock-total > strong { font-size:18px; line-height:1.25; }
#cart-overlay .dock-total > span { font-size:11px; line-height:1.3; }
#cart-overlay .dock-actions { display:grid; grid-template-columns:minmax(0,38fr) minmax(0,62fr); gap:8px; width:clamp(280px,36vw,360px); }
#cart-overlay .dock-actions:has(.checkout-back[hidden]) { grid-template-columns:minmax(0,1fr); }
#cart-overlay :is(.checkout-back,.checkout-next) { min-height:48px; min-width:0; width:100%; padding:8px 10px; font-size:14px; line-height:1.3; border-radius:var(--co-radius); }
#cart-overlay .checkout-next { min-width:0; }
#cart-overlay .checkout-back .icon { width:18px; height:18px; flex-shrink:0; }
#cart-overlay .checkout-total-status { margin:2px 0; color:var(--ds-muted); font-size:12px; font-weight:400; line-height:1.4; }
#cart-overlay .checkout-summary-card .summary-total .total-pending { font-size:13px; font-weight:400; color:var(--ds-muted); }
#cart-overlay .checkout-error { margin:12px 0 0; font-size:14px; }
#cart-overlay [hidden] { display:none!important; }
@media(max-width:767px) {
  #cart-overlay .checkout-dock { grid-template-columns:minmax(0,1fr); }
  #cart-overlay .dock-actions { width:100%; }
  #cart-overlay .checkout-dock:has(.checkout-back:not([hidden])) .dock-actions { display:grid; grid-template-columns:minmax(0,38fr) minmax(0,62fr); }
  #cart-overlay .selected-address-summary { grid-template-columns:24px minmax(0,1fr); }
  #cart-overlay .selected-address-summary button { grid-column:2; justify-self:start; }
}
@media(min-width:768px) {
  #cart-overlay { --co-space:24px; place-items:center; padding:16px; }
  #cart-overlay .checkout-modal { width:min(100%,880px); height:auto; max-height:calc(min(var(--public-viewport-height),100dvh) - 32px); border-radius:16px; }
  #cart-overlay .checkout-cart-layout, #cart-overlay .checkout-review-layout { grid-template-columns:minmax(0,1fr) 260px; gap:24px; }
  #cart-overlay .checkout-cart-aside, #cart-overlay .checkout-review-aside { padding-left:20px; border-left:1px solid var(--co-divider); }
  #cart-overlay .checkout-summary-card { border-top:0!important; }
  #cart-overlay .fulfillment-choices { grid-template-columns:1fr 1fr; }
  #cart-overlay .fulfillment-choices .choice-card { border-bottom:0; }
  #cart-overlay .fulfillment-choices .choice-card + .choice-card { border-left:1px solid var(--co-divider); }
  #cart-overlay .address-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(prefers-reduced-motion:reduce) { #cart-overlay .checkout-step { animation:none; } }

/* 1.16.4: compact content-driven height; no enlarged containers to fill the viewport. */
#cart-overlay { align-items:start; }
#cart-overlay .checkout-modal { display:flex; flex-direction:column; }
#cart-overlay .checkout-header, #cart-overlay .checkout-progress { flex-shrink:0; }
#cart-overlay .checkout-form { display:flex; flex-direction:column; min-height:0; overflow:hidden; }
#cart-overlay .checkout-scroll { flex:0 1 auto; }
#cart-overlay .checkout-dock { flex-shrink:0; }
#cart-overlay .checkout-progress button { position:relative; background:transparent; opacity:1; }
#cart-overlay .checkout-progress button::after { content:""; position:absolute; top:12px; left:calc(50% + 16px); right:calc(-50% + 16px); height:1px; background:var(--ds-border); }
#cart-overlay .checkout-progress button:last-child::after { display:none; }
#cart-overlay .checkout-progress button span { border:1px solid var(--ds-border); color:var(--ds-muted); background:var(--ds-surface); }
#cart-overlay .checkout-progress button.complete { color:var(--ds-success-600); }
#cart-overlay .checkout-progress button.complete::after { background:var(--ds-success-600); }
#cart-overlay .checkout-progress button.complete span { color:var(--ds-success-600); border-color:var(--ds-success-600); background:var(--ds-success-50); }
#cart-overlay .checkout-progress button.active { color:var(--ds-brand-800); }
#cart-overlay .checkout-progress button.active span { color:#fff; border-color:var(--ds-brand-700); background:var(--ds-brand-700); }
#cart-overlay .checkout-progress button.active small { font-weight:700; }
@media(min-width:768px) { #cart-overlay { align-items:center; } }
