/* Native WooCommerce drawer, using the storefront's type and colour tokens. */
.op-theme dialog.op-bag{box-sizing:border-box;position:fixed;inset:0 0 0 auto;margin:0;width:min(500px,100%);max-width:100%;height:100%;height:100dvh;max-height:100dvh;padding:0;border:0;background:#fff;color:var(--op-title);box-shadow:-20px 0 70px #0002;overflow:hidden;font-family:var(--op-font);font-size:14px;text-align:left;translate:100% 0;opacity:0;transition:translate .32s cubic-bezier(.22,.61,.36,1),opacity .32s ease,overlay .32s allow-discrete,display .32s allow-discrete}
.op-bag:not([open]){display:none!important}
.op-theme dialog.op-bag[open]{translate:0 0;opacity:1}
@starting-style{.op-theme dialog.op-bag[open]{translate:100% 0;opacity:0}}
.op-theme dialog.op-bag::backdrop{background:rgba(15,15,15,.55);backdrop-filter:blur(3px);opacity:0;transition:opacity .32s ease,overlay .32s allow-discrete,display .32s allow-discrete}
.op-theme dialog.op-bag[open]::backdrop{opacity:1}
@starting-style{.op-theme dialog.op-bag[open]::backdrop{opacity:0}}
body.op-bag-open{overflow:hidden}
.op-bag-shell{display:flex;flex-direction:column;height:100%;min-height:0}
.op-bag-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:30px 30px 26px;border-bottom:1px solid var(--op-line);flex-shrink:0}
.op-bag-eyebrow{display:block;margin-bottom:7px;color:var(--op-text);font-size:10px;font-weight:600;letter-spacing:1.8px;text-transform:uppercase}
.op-theme .op-bag h2{font-family:var(--op-font-title);font-size:26px;line-height:1.15;font-weight:600;letter-spacing:-.4px;margin:0;color:var(--op-title)}
.op-bag-dot{color:var(--op-orange)}
.op-theme .op-bag-close{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;padding:0;border:1px solid var(--op-line);border-radius:50%;background:#fff;color:var(--op-title);box-shadow:none}
.op-theme .op-bag-close:hover{background:var(--op-card-bg);border-color:var(--op-muted)}
#op-cart-content{display:flex;flex-direction:column;flex:1;min-height:0}
.op-bag-items{padding:24px 30px;overflow-y:auto;overscroll-behavior:contain;flex:1;min-height:0}
.op-bag-caption{margin:0 0 20px;color:var(--op-text);font-size:12px}
.op-bag-list{list-style:none;margin:0;padding:0}
.op-bag-item{display:grid;grid-template-columns:94px minmax(0,1fr);gap:20px;margin:0;padding:0 0 26px;border-bottom:1px solid var(--op-line)}
.op-bag-item+.op-bag-item{padding-top:26px}
.op-bag-item:last-child{border-bottom:0;padding-bottom:0}
.op-bag-item__image{display:flex;align-items:center;justify-content:center;padding:4px;background:#fff;border:1px solid var(--op-line);border-radius:10px;overflow:hidden;align-self:start;aspect-ratio:3/4;box-sizing:border-box}
.op-bag-item__image img{width:100%;height:100%;object-fit:contain;display:block;margin:0;border-radius:0}
.op-bag-item__type{display:block;font-size:10px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--op-muted);margin:1px 0 6px}
.op-theme .op-bag-item__name{display:block;color:var(--op-title);font-family:var(--op-font-title);font-weight:600;font-size:15px;line-height:1.4;text-decoration:none;transition:color .2s}
.op-theme .op-bag-item__name:hover{color:var(--op-orange)}
.op-bag-item__bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:16px}
.op-bag-qty{display:flex;align-items:center;border:1px solid var(--op-line);border-radius:30px;height:36px;overflow:hidden;transition:border-color .2s}
.op-theme .op-bag-qty button{padding:0;width:32px;height:34px;background:none;border:0;border-radius:0;color:var(--op-title);font:18px var(--op-font);box-shadow:none}
.op-theme .op-bag-qty button:hover{background:var(--op-card-bg)}
.op-theme .op-bag-qty button:disabled{opacity:.3;cursor:default}
.op-theme input.op-bag-qty__input{box-sizing:border-box;width:32px;height:34px;min-height:0;padding:0!important;border:0!important;background:none!important;box-shadow:none!important;border-radius:0!important;text-align:center;font:13px var(--op-font);color:var(--op-title);appearance:textfield;-moz-appearance:textfield}
.op-bag-qty__input::-webkit-inner-spin-button,.op-bag-qty__input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.op-bag-item__price{white-space:nowrap;font-size:15px;font-weight:600;color:var(--op-title)}
.op-theme .op-bag-remove{display:inline-block;padding:0;margin-top:12px;border:0;background:none;border-radius:0;font:12px var(--op-font);color:var(--op-text);text-decoration:underline;text-underline-offset:3px;box-shadow:none;text-transform:none;transition:color .2s}
.op-theme .op-bag-remove:hover{color:var(--op-danger)}
.op-bag-summary{flex-shrink:0;border-top:1px solid var(--op-line);padding:24px 30px max(22px,env(safe-area-inset-bottom));background:var(--op-card-bg)}
.op-bag-subtotal{display:flex;align-items:baseline;justify-content:space-between;gap:12px;color:var(--op-title)}
.op-bag-subtotal>span{font-size:15px;font-weight:600}
.op-bag-subtotal strong{font-family:var(--op-font-title);font-size:24px;font-weight:600}
.op-bag-summary>p{margin:9px 0 20px;font-size:12px;line-height:1.6;color:var(--op-text)}
.op-theme .op-bag-primary{box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:14px;min-height:52px;width:100%;padding:14px 18px;border:0;border-radius:var(--op-pill);background:var(--op-orange-btn);color:#fff;font-family:var(--op-font);font-size:13px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;text-decoration:none;line-height:1.5;text-align:center;transition:background-color .2s}
.op-theme .op-bag-primary:hover{background:var(--op-orange-btn-hover);color:#fff}
.op-bag-primary>span{font-size:20px;line-height:1;transition:translate .2s}
.op-theme .op-bag-primary:hover>span{translate:4px 0}
.op-theme .op-bag-continue{display:block;margin:12px auto 0;padding:9px 12px;border:0;background:none;color:var(--op-text);font:12px var(--op-font);text-transform:none;box-shadow:none;min-height:36px;transition:color .2s}
.op-theme .op-bag-continue:hover{color:var(--op-title)}
#op-bag-status{flex-shrink:0;margin:0;padding:0 30px;font-size:12px;color:var(--op-text)}
#op-bag-status:not(:empty){padding-top:14px;padding-bottom:14px;border-bottom:1px solid var(--op-line)}
#op-bag-status.is-error{color:var(--op-danger);background:#fff6f4}
.op-bag[aria-busy=true] .op-bag-qty,.op-bag[aria-busy=true] .op-bag-remove,.op-bag[aria-busy=true] .op-bag-primary{pointer-events:none;opacity:.5}
.op-bag-empty{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 30px;overflow-y:auto}
.op-bag-empty__icon{display:grid;place-items:center;width:80px;height:80px;border-radius:50%;background:#fff4e5;color:var(--op-orange);margin-bottom:24px}
.op-bag-empty__icon .op-icon{width:32px;height:32px}
.op-theme .op-bag-empty h3{font-size:24px;margin:0 0 12px}
.op-bag-empty p{font-size:13px;line-height:1.8;color:var(--op-text);margin:0 0 28px}
.op-bag-fallback{padding:14px 30px;text-align:center}
.op-bag-fallback[hidden]{display:none!important}
.op-bag-item dl.variation{font-size:12px;color:var(--op-text);margin:7px 0}
@media(max-width:480px){.op-bag-head{padding:24px}.op-bag-items{padding:22px 24px}.op-bag-summary{padding:20px 24px max(18px,env(safe-area-inset-bottom))}.op-bag-item{grid-template-columns:78px minmax(0,1fr);gap:16px}.op-theme .op-bag h2{font-size:23px}.op-bag-subtotal strong{font-size:22px}#op-bag-status{padding-left:24px;padding-right:24px}}
@media(prefers-reduced-motion:reduce){.op-theme dialog.op-bag,.op-theme dialog.op-bag::backdrop{transition:none}}
