/* Modal cart: native top layer sits above the storefront and its sticky controls. */
html.cart-drawer-open,html.cart-drawer-open body { overflow:hidden; }
.cart-drawer { position:fixed; inset:0 0 0 auto; margin:0; width:min(100%,500px); max-width:100%; height:100vh; height:100dvh; max-height:100dvh; border:0; padding:0; background:var(--card); color:var(--ink); box-shadow:var(--shadow-lg); }
.cart-drawer[open] { display:flex; flex-direction:column; animation:cart-drawer-in .22s ease-out; }
.cart-drawer::backdrop { background:rgb(0 0 0 / .48); }
.cart-drawer-head { flex:none; display:flex; align-items:center; gap:16px; padding:20px 24px; border-bottom:1px solid var(--line); }
.cart-drawer-head h2 { margin:0; flex:1; font-size:30px; }
.cart-drawer-head h2 span { font-family:var(--font-body); font-size:14px; font-weight:500; color:var(--muted); }
.cart-drawer-head>a { font-size:12px; white-space:nowrap; min-height:44px; display:flex; align-items:center; }
.cart-drawer-close { flex:none; display:grid; place-items:center; width:44px; height:44px; background:none; border:1px solid transparent; border-radius:var(--r-sm); color:var(--ink); }
.cart-drawer-close:hover { background:var(--paper); }.cart-drawer-close:active { background:var(--line); }
.cart-drawer-body { min-height:0; flex:1; display:flex; flex-direction:column; overflow:auto; overscroll-behavior:contain; padding:0 24px; }
#cart-drawer-feedback,#cart-drawer-items { flex:none; }
.cart-drawer .cart-row { grid-template-columns:90px minmax(0,1fr); column-gap:18px; row-gap:12px; padding:24px 0; align-items:start; }
.cart-drawer .cart-image { width:90px; height:90px; grid-row:span 2; background:var(--paper); }
.cart-drawer .cart-item-info { padding-top:2px; gap:10px; font-size:15px; }
.cart-drawer .cart-item-info .sm { color:var(--text); }
.cart-drawer .cart-item-controls { grid-column:2; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; }
.cart-drawer .cart-line-total { order:-1; width:100%; font-family:var(--font-display); font-size:26px; }
.cart-drawer .cart-remove { padding:8px; min-height:44px; }
.cart-drawer .cart-stepper { overflow:visible; }
.cart-drawer .cart-stepper button { border-radius:var(--r-sm); }
.cart-drawer-summary { flex:none; border-top:1px solid var(--line); padding:20px 24px max(16px,env(safe-area-inset-bottom)); background:var(--card); }
.cart-drawer-subtotal { display:flex; align-items:baseline; justify-content:space-between; gap:16px; }
.cart-drawer-subtotal span { font-size:14px; font-weight:600; }.cart-drawer-subtotal strong { font-family:var(--font-display); font-size:32px; }
.cart-drawer-summary>p { font-size:12px; color:var(--text); line-height:1.5; margin:10px 0 16px; }
.cart-drawer-summary .btn { min-height:50px; }
.cart-drawer-continue { display:block; margin:8px auto 0; min-height:44px; padding:8px 16px; border:0; background:none; text-decoration:underline; text-underline-offset:3px; color:var(--ink); font-size:13px; }
.cart-drawer-continue:hover { background:var(--paper); }.cart-drawer-continue:active { background:var(--line); }
.cart-drawer-empty { display:flex; flex:1; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:18px; min-height:min-content; padding:40px 0; }
.cart-drawer-empty h3 { font-size:28px; margin:0; }.cart-drawer-empty p { font-size:14px; line-height:1.6; margin:0 0 8px; max-width:280px; }
.cart-drawer .cart-notice { position:relative; inset:auto; width:auto; max-width:none; margin:16px 0 0; padding:14px; box-shadow:none; display:flex; flex-wrap:wrap; gap:8px 14px; align-items:center; }
.cart-drawer .cart-notice p { flex-basis:100%; margin:0; padding-right:26px; font-size:13px; }
.cart-drawer .cart-notice .notice-close { position:absolute; top:6px; right:6px; }
.cart-drawer .cart-notice>a { display:none; }
@keyframes cart-drawer-in { from { transform:translateX(100%); } to { transform:translateX(0); } }
@media(max-width:540px) { .cart-drawer { width:100%; }.cart-drawer-head { padding:12px 16px; gap:10px; }.cart-drawer-head h2{font-size:28px}.cart-drawer-body { padding:0 16px; }.cart-drawer-summary { padding:16px 16px max(10px,env(safe-area-inset-bottom)); }.cart-drawer .cart-row { grid-template-columns:76px minmax(0,1fr); column-gap:14px; }.cart-drawer .cart-image { width:76px; height:76px; }.cart-drawer .cart-item-controls{gap:8px}.cart-drawer .cart-stepper button{width:38px}.cart-drawer .cart-stepper input{width:44px} }
@media(prefers-reduced-motion:reduce) { .cart-drawer[open] { animation:none; } }
