/* Scoped to the drawer; inherits the NZDW theme's fonts. */
html.nzdw-cart-open, html.nzdw-cart-open body { overflow: hidden; }
#nzdw-cart {
    --nzdw-cart-pink: #ff9cae;
    box-sizing: border-box;
    position: fixed;
    inset: 0 0 0 auto;
    margin: 0;
    width: min(520px, 100vw);
    max-width: 100vw;
    height: 100vh;
    height: 100dvh;
    max-height: 100dvh;
    padding: 0;
    border: 0;
    background: #fff;
    color: #111;
    box-shadow: -8px 0 40px rgb(0 0 0 / 16%);
    font: inherit;
    text-align: left;
    overflow-y: auto;
}
#nzdw-cart:not([open]) { display: none; }
#nzdw-cart[open] { display: block; animation: nzdw-cart-enter .22s ease-out; }
#nzdw-cart::backdrop { background: rgb(0 0 0 / 48%); backdrop-filter: blur(4px); }
#nzdw-cart *, #nzdw-cart *::before, #nzdw-cart *::after { box-sizing: border-box; }
#nzdw-cart .nzdw-cart__panel { min-height: 100%; padding: 30px 32px max(24px, env(safe-area-inset-bottom)); display: flex; flex-direction: column; }
#nzdw-cart .nzdw-cart__header { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid #111; padding-bottom: 24px; margin-bottom: 12px; }
#nzdw-cart h2 { margin: 0; color: #111; font-family: 'Sohne Breit Halbfett', sans-serif; font-size: 24px; line-height: 1.2; letter-spacing: -.5px; }
#nzdw-cart button { appearance: none; cursor: pointer; font: inherit; border: 0; border-radius: 0; color: #111; background: transparent; }
#nzdw-cart .nzdw-cart__close { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; font-size: 36px; line-height: 1; }
#nzdw-cart .nzdw-cart__status { margin: 0; font-size: 14px; line-height: 1.5; }
#nzdw-cart .nzdw-cart__status:empty { display: none; }
#nzdw-cart .nzdw-cart__status:not(:empty) { padding: 10px 0; }
#nzdw-cart .nzdw-cart__content { flex: 1; }
#nzdw-cart .nzdw-cart__item { position: relative; display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 20px; padding: 26px 0; border-bottom: 1px solid #ddd; }
#nzdw-cart .nzdw-cart__image { width: 76px; align-self: start; }
#nzdw-cart .nzdw-cart__image img { display: block; width: 100%; height: 94px; object-fit: cover; }
#nzdw-cart .nzdw-cart__brand { font-size: 12px; font-weight: 600; margin-bottom: 7px; }
#nzdw-cart h3 { margin: 0 0 8px; font: inherit; font-size: 18px; font-weight: 600; line-height: 1.35; color: #111; }
#nzdw-cart a { color: inherit; }
#nzdw-cart .nzdw-cart__meta, #nzdw-cart .nzdw-cart__unit-price { font-size: 14px; line-height: 1.5; }
#nzdw-cart .nzdw-cart__meta dl { margin: 0 0 10px; }
#nzdw-cart .nzdw-cart__meta dt, #nzdw-cart .nzdw-cart__meta dd, #nzdw-cart .nzdw-cart__meta p { margin: 0; float: none; }
#nzdw-cart .nzdw-cart__meta dt { font-weight: 500; }
#nzdw-cart .nzdw-cart__controls { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
#nzdw-cart .nzdw-cart__quantity-label { font-size: 13px; margin: 0; }
#nzdw-cart input.nzdw-cart__quantity { width: 62px; min-width: 0; height: 38px; margin: 0; padding: 6px 8px; border: 1px solid #aaa; border-radius: 4px; background: #fff; color: #111; font: inherit; font-size: 14px; }
#nzdw-cart .nzdw-cart__remove { font-size: 13px; text-decoration: underline; text-underline-offset: 3px; padding: 10px 4px; min-height: 44px; }
#nzdw-cart .nzdw-cart__line-total { grid-column: 2; text-align: right; font-size: 18px; font-weight: 600; }
#nzdw-cart .nzdw-cart__summary { padding-top: 26px; }
#nzdw-cart table.nzdw-cart__totals { border: 0; border-collapse: collapse; background: none; width: 100%; font-size: 15px; margin: 0 0 26px; }
#nzdw-cart .nzdw-cart__totals tr { background: none; }
#nzdw-cart .nzdw-cart__totals th, #nzdw-cart .nzdw-cart__totals td { border: 0; background: none; color: #111; padding: 8px 0; vertical-align: top; }
#nzdw-cart .nzdw-cart__totals th { text-align: left; font-weight: 400; }
#nzdw-cart .nzdw-cart__totals td { text-align: right; }
#nzdw-cart .nzdw-cart__total th, #nzdw-cart .nzdw-cart__total td { border-top: 1px solid #111; padding-top: 20px; font-size: 23px; font-weight: 600; }
#nzdw-cart .nzdw-cart__total small { display: block; font-size: 12px; font-weight: 400; line-height: 1.5; margin-top: 6px; }
#nzdw-cart a.nzdw-cart__checkout { display: flex; justify-content: space-between; align-items: center; gap: 12px; width: 100%; min-height: 58px; padding: 18px 25px; border: 1px solid #ff305c; border-radius: 32px; background: #ff305c; color: #111; text-decoration: none; font-size: 16px; line-height: 1.2; font-weight: 600; }
#nzdw-cart a.nzdw-cart__checkout:hover { background: #ff859d; }
#nzdw-cart .nzdw-cart__empty { padding: 30px 0; }
#nzdw-cart .nzdw-cart__empty p { margin-bottom: 30px; }
#nzdw-cart a.nzdw-cart__fallback { display: block; margin-top: 20px; text-align: center; font-size: 13px; text-underline-offset: 3px; }
#nzdw-cart [aria-busy="true"] { opacity: .55; pointer-events: none; }
#nzdw-cart :focus-visible { outline: 2px solid #111; outline-offset: 4px; }
@keyframes nzdw-cart-enter { from { transform: translateX(100%); } to { transform: translateX(0); } }
@media (max-width: 540px) {
    #nzdw-cart { width: 100vw; }
    #nzdw-cart .nzdw-cart__panel { padding: 22px 20px max(22px, env(safe-area-inset-bottom)); }
    #nzdw-cart .nzdw-cart__item { grid-template-columns: 64px minmax(0, 1fr); gap: 16px; }
    #nzdw-cart .nzdw-cart__image { width: 64px; }
    #nzdw-cart h2 { font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) { #nzdw-cart[open] { animation: none; } }


/* Combo tickets - show full stacked artwork */
#nzdw-cart .nzdw-cart__image--combo {
    width: 76px !important;
    height: 152px !important;
    flex: 0 0 76px !important;
    overflow: visible !important;
}

#nzdw-cart .nzdw-cart__image--combo img {
    display: block !important;
    width: 76px !important;
    height: 152px !important;
    object-fit: contain !important;
    object-position: top center;
}

/* NZDW - Move combo quantity selector up */
body.woocommerce-checkout
tr.cart_item.bundle_table_item td.product-name .quantity {
    position: relative !important;
    top: -60px !important;
}
