/* Public cart and checkout. Prices and payment decisions stay in app.js. */
body #shopping-cart { width:min(520px,100%); display:grid; grid-template-rows:auto minmax(0,1fr) auto; font-family:"Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,sans-serif; background:#f5f7fb; }
body #shopping-cart :is(h3,button,input,strong,small) { font-family:inherit; }
body #shopping-cart [hidden] { display:none!important; }
body #shopping-cart .drawer-head { grid-template-columns:minmax(0,1fr) 44px; padding:20px 22px; gap:12px; min-height:96px; }
body #shopping-cart .drawer-head:has(.drawer-back:not(.hidden)) { grid-template-columns:44px minmax(0,1fr) 44px; }
body #shopping-cart .drawer-head-copy > span { font-size:12px; letter-spacing:0; text-transform:none; font-weight:500; color:#53677f; }
body #shopping-cart .drawer-head-copy > strong { font-size:24px; line-height:1.4; font-weight:700; color:#203750; white-space:normal; overflow-wrap:anywhere; }
body #shopping-cart .drawer-head-copy > small { font-size:13px; line-height:1.5; color:#53677f; }
body #shopping-cart .drawer-head :is(.drawer-close,.drawer-back) { width:44px; height:44px; border-radius:10px; background:#f5f8fc; border:1px solid #dce5f0; color:#3b587e; transform:none; }
body #shopping-cart .drawer-scroll { padding:20px 20px 24px; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; }
body #shopping-cart .drawer-scroll:focus-visible { outline:3px solid #76a9e5; outline-offset:-4px; }
body #shopping-cart .drawer-list { gap:14px; }
body #shopping-cart .drawer-item { grid-template-columns:64px minmax(0,1fr) 44px; align-items:start; gap:12px; padding:16px; border:1px solid #dce5f0; border-radius:12px; box-shadow:none; }
body #shopping-cart .drawer-item-media { grid-column:1; grid-row:1; width:64px; aspect-ratio:4/3; margin-top:2px; border-radius:7px; }
body #shopping-cart .drawer-item-copy { display:contents; }
body #shopping-cart .drawer-item-heading { display:block; grid-column:2 / -1; grid-row:1; min-width:0; }
body #shopping-cart .drawer-item-heading > span { display:block; font-size:12px; line-height:1.5; color:#53677f; font-weight:500; margin-bottom:3px; text-transform:none; letter-spacing:0; }
body #shopping-cart .drawer-item-heading h3 { margin:0 0 7px; font-size:15px; line-height:1.5; font-weight:650; color:#203750; letter-spacing:-.01em; overflow-wrap:anywhere; }
body #shopping-cart .drawer-item-heading > small { display:block; font-size:13px; line-height:1.5; color:#53677f; }
body #shopping-cart .drawer-item-pricing { grid-column:1 / 3; grid-row:2; display:flex; justify-content:flex-start; flex-direction:row; flex-wrap:wrap; align-items:baseline; gap:4px 9px; min-width:0; align-self:center; }
body #shopping-cart .drawer-item-pricing > strong { color:#203750; font-size:20px; line-height:1.4; margin:0; font-weight:700; font-variant-numeric:tabular-nums; }
.drawer-item-pricing > del { color:#64758b; font-size:13px; line-height:1.5; }
body #shopping-cart .drawer-item-pricing > small { width:100%; font-size:12px; line-height:1.5; color:#53677f; }
body #shopping-cart .drawer-item .drawer-remove { grid-column:3; grid-row:2; align-self:center; width:44px; height:44px; border:1px solid #e1e8f2; background:#f8fafd; border-radius:9px; color:#53677f; }
body #shopping-cart .drawer-item .drawer-remove:hover { color:#963b34; background:#fff5f4; border-color:#eaccc8; }
body #shopping-cart .drawer-cip-addon { grid-column:1 / -1; grid-row:3; margin:0; padding:12px; gap:10px; grid-template-columns:20px minmax(0,1fr); background:#f8fafd; border:1px solid #dce5f0; border-radius:9px; min-height:58px; }
body #shopping-cart .drawer-cip-addon:has(input:checked) { background:#edf3fd; border-color:#8eaddb; }
body #shopping-cart .drawer-cip-addon input { position:static; opacity:1; width:20px; height:20px; margin:0; accent-color:#2454ad; cursor:inherit; }
body #shopping-cart .drawer-cip-addon input:focus-visible { outline:3px solid #76a9e5; outline-offset:3px; }
body #shopping-cart .drawer-cip-addon > span:first-of-type { display:none; }
body #shopping-cart .drawer-cip-addon strong { font-size:14px; font-weight:600; line-height:1.5; color:#263a54; margin:0; }
body #shopping-cart .drawer-cip-addon small { font-size:13px; line-height:1.5; color:#53677f; }
body #shopping-cart .drawer-item-copy .drawer-cip-note { grid-column:1 / -1; grid-row:4; font-size:13px; line-height:1.5; color:#53677f; margin:-5px 0 0; }
body #shopping-cart .drawer-cip-addon:has(input:disabled) { background:#f4f5f7; border-color:#e0e5eb; opacity:1; }
body #shopping-cart .drawer-coupon { background:#fff; border:1px solid #dce5f0; border-radius:12px; padding:16px; gap:12px; }
.drawer-coupon-editor { display:grid; gap:8px; }
body #shopping-cart .drawer-coupon-editor > label { font-size:13px; line-height:1.5; font-weight:500; color:#263a54; }
body #shopping-cart .drawer-coupon-control { grid-template-columns:minmax(0,1fr) auto; }
body #shopping-cart .drawer-coupon :is(input,button) { min-height:44px; font-size:14px; line-height:1.5; }
body #shopping-cart .drawer-coupon input { text-transform:uppercase; padding:10px 12px; }
body #shopping-cart .drawer-coupon-control > button { padding:10px 14px; font-weight:600; background:#2454ad; }
.drawer-coupon-applied { display:grid; gap:6px; }
.drawer-coupon-applied > span { color:#237052; font-size:13px; line-height:1.5; font-weight:600; }
.drawer-coupon-applied > strong { color:#203750; font-size:15px; line-height:1.5; font-weight:600; overflow-wrap:anywhere; }
.drawer-coupon-applied > small { color:#53677f; font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.drawer-coupon-applied > div { display:flex; flex-wrap:wrap; gap:4px 20px; margin-top:4px; }
body #shopping-cart .drawer-coupon-applied button { padding:4px 0; border:0; background:transparent; color:#345b95; border-radius:4px; font-size:13px; font-weight:500; text-align:left; }
body #shopping-cart .drawer-coupon .coupon-message { margin:0; font-size:13px; line-height:1.6; min-height:0; }
body #shopping-cart .drawer-footer { padding:18px 22px max(16px,env(safe-area-inset-bottom)); background:#fff; border-top:1px solid #dce5f0; box-shadow:0 -4px 16px #1c3b6410; }
body #shopping-cart .drawer-total { gap:8px; margin:0 0 14px; }
body #shopping-cart .drawer-summary-row { gap:16px; align-items:baseline; }
body #shopping-cart .drawer-summary-row :is(span,strong) { font-size:13px; line-height:1.5; color:#53677f; font-weight:400; }
body #shopping-cart .drawer-summary-row strong { font-weight:600; white-space:normal; text-align:right; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
body #shopping-cart .drawer-summary-row.is-discount strong { color:#237052; }
body #shopping-cart .drawer-summary-row.is-total { border-top:1px solid #e1e8f2; margin-top:3px; padding-top:12px; }
body #shopping-cart .drawer-summary-row.is-total > span { font-size:15px; font-weight:600; color:#203750; }
body #shopping-cart .drawer-summary-row.is-total > strong { font-size:28px; font-weight:700; color:#203750; line-height:1.3; letter-spacing:-.02em; }
body #shopping-cart .drawer-summary-note { font-size:12px; line-height:1.5; color:#53677f; margin:0; }
body #shopping-cart .drawer-actions { gap:6px; }
body #shopping-cart :is(.drawer-primary-action,.drawer-secondary-action) { min-height:46px; font-size:14px; line-height:1.5; font-weight:600; border-radius:9px; white-space:normal; }
body #shopping-cart .drawer-primary-action { background:#2454ad; border-color:#2454ad; color:#fff; padding:11px 14px; }
body #shopping-cart .drawer-primary-action:hover { background:#1e448e; }
body #shopping-cart .drawer-secondary-action { border-color:transparent; background:transparent; color:#345b95; padding:8px 10px; min-height:44px; }
body #shopping-cart .drawer-secondary-action:hover { background:#f4f7fc; }
body #shopping-cart .drawer-primary-action:disabled { background:#e9edf4; border-color:#e9edf4; color:#61728a; }
body #shopping-cart .drawer-empty { border-style:solid; border-color:#dce5f0; padding:32px 16px; }
body #shopping-cart .drawer-empty strong { font-size:18px; color:#203750; font-weight:650; }
body #shopping-cart .drawer-empty p { font-size:14px; line-height:1.6; color:#53677f; }
body #shopping-cart :is(.checkout-account-guest,.checkout-account-card,.checkout-security-note,.checkout-certifications,.checkout-provider,.checkout-result) :is(p,small,span) { font-size:13px; line-height:1.6; }
body #shopping-cart :is(.checkout-account-guest,.checkout-account-card,.checkout-security-note,.checkout-certifications,.checkout-provider,.checkout-result) :is(p,small) { color:#53677f; }
body #shopping-cart :is(.checkout-account-guest,.checkout-account-card,.checkout-security-note,.checkout-certifications,.checkout-provider,.checkout-result) strong { font-size:15px; line-height:1.5; font-weight:600; overflow-wrap:anywhere; }
body #shopping-cart .checkout-provider-list legend { font-size:14px; font-weight:600; }
body #shopping-cart .checkout-account-guest a { display:inline-flex; align-items:center; min-height:44px; font-size:14px; }
body #shopping-cart :is(.drawer-payment-caption,.form-message,.checkout-certifications > p) { font-size:13px; line-height:1.6; color:#53677f; }
body #shopping-cart .form-message.error { color:#9e332d; }
body #shopping-cart .form-message.success { color:#237052; }
@media(max-width:680px) {
  body #shopping-cart .drawer-head { padding:16px; min-height:88px; }
  body #shopping-cart .drawer-scroll { padding:16px 12px 20px; }
  body #shopping-cart .drawer-footer { padding:14px 16px max(10px,env(safe-area-inset-bottom)); }
  body #shopping-cart .drawer-item { padding:14px; grid-template-columns:56px minmax(0,1fr) 44px; gap:10px; }
  body #shopping-cart .drawer-item-media { width:56px; }
  body #shopping-cart .drawer-head-copy > strong { font-size:22px; }
}
@media(max-height:600px) and (min-width:700px) {
  body #shopping-cart .drawer-head { min-height:76px; padding:12px 18px; }
  body #shopping-cart .drawer-footer { display:grid; grid-template-columns:minmax(0,1fr) minmax(170px,1fr); gap:16px; align-items:center; padding:12px 18px; }
  body #shopping-cart .drawer-total { margin:0; }
  body #shopping-cart .drawer-summary-row.is-total > strong { font-size:24px; }
  body #shopping-cart :is(.drawer-primary-action,.drawer-secondary-action) { font-size:13px; }
}
body #shopping-cart .checkout-preview-notice { margin:0 0 16px; padding:14px 16px; border:1px solid #b8ccef; border-radius:10px; background:#edf3ff; color:#164194; }
body #shopping-cart .checkout-preview-notice[hidden] { display:none; }
body #shopping-cart .checkout-preview-notice strong { display:block; font-size:14px; line-height:1.5; }
body #shopping-cart .checkout-preview-notice p { margin:5px 0 0; font-size:13px; line-height:1.6; color:#475569; }
