.mini-cart{width:min(460px,100vw);height:100vh;max-height:none;margin:0 0 0 auto;padding:0;border:0;background:var(--ivory);box-shadow:-20px 0 45px rgba(45,31,26,.18)}.mini-cart::backdrop{background:rgba(24,21,19,.56)}.mini-cart[open]{display:flex;flex-direction:column}.mini-cart>header{display:flex;justify-content:space-between;align-items:center;padding:1.2rem 1.4rem;border-bottom:1px solid #dfd3c7}.mini-cart>header h2{margin:0;font:500 1.8rem var(--serif)}.mini-cart>header button{width:44px;height:44px;border:0;background:transparent;font-size:1.8rem;cursor:pointer}.mini-cart>[data-mini-cart-content]{display:flex;flex:1;flex-direction:column;overflow:auto;padding:1.2rem}.mini-cart-items{display:grid;gap:1rem}.mini-cart-items article{display:grid;grid-template-columns:90px 1fr;gap:1rem;padding-bottom:1rem;border-bottom:1px solid #e4d9ce}.mini-cart-items img,.mini-art{width:90px;height:110px;object-fit:cover;background:var(--cream)}.mini-art{display:grid;place-items:center;color:var(--gold);font-size:2rem}.mini-cart-items h3{margin:0;font:500 1.15rem var(--serif)}.mini-cart-items p{margin:.2rem 0;color:#71665f;font-size:.75rem}.mini-cart-total{display:flex;justify-content:space-between;margin-top:auto;padding-top:1.3rem;border-top:1px solid #d9cdc0}.mini-expiry{font-size:.72rem;color:#746961}.mini-cart .button{width:100%}.mini-cart-empty{margin:auto;text-align:center}.mini-cart-empty>span{font-size:3rem;color:var(--gold)}.mini-cart-empty h3{font:500 2rem var(--serif)}
.bag-shell{width:min(1280px,calc(100% - 2rem));margin:0 auto;padding:clamp(3rem,7vw,7rem) 0}.bag-heading{text-align:center;margin-bottom:2.5rem}.bag-heading h1{margin:.3rem 0;font:500 clamp(3rem,6vw,5.5rem)/1 var(--serif)}.bag-heading>p:last-child{color:#746961}.bag-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.7fr);gap:clamp(2rem,5vw,5rem);align-items:start}.reservation-notice{margin:0 0 1rem;padding:1rem;background:var(--cream);font-size:.78rem}.bag-line{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:1.3rem;padding:1.3rem 0;border-top:1px solid #dfd3c7}.bag-line>a:first-child,.bag-art{display:grid;width:150px;aspect-ratio:4/5;place-items:center;overflow:hidden;background:var(--cream);color:var(--gold);font-size:2.5rem}.bag-line img{width:100%;height:100%;object-fit:cover}.bag-line-copy h2{margin:.3rem 0;font:500 1.5rem var(--serif)}.bag-line-copy>p:not(.eyebrow){margin:.2rem 0;color:#746961;font-size:.75rem}.bag-line-actions{display:flex;align-items:end;flex-wrap:wrap;gap:.8rem;margin-top:1.2rem;font-size:.72rem}.bag-line-actions form{display:flex;align-items:end;gap:.4rem}.bag-line-actions label{display:grid;gap:.2rem}.bag-line-actions input{width:68px;min-height:40px;padding:.4rem;border:1px solid #b9aea7}.bag-line-actions button,.bag-line-actions a{min-height:40px;display:flex;align-items:center;padding:.3rem .5rem;border:0;border-bottom:1px solid var(--gold);background:transparent;color:inherit;cursor:pointer}.bag-line-total{align-self:center}.gift-message{margin-top:1rem;border-block:1px solid #dfd3c7}.gift-message summary{padding:1rem 0;cursor:pointer;font-weight:600;font-size:.8rem}.gift-message form{display:grid;gap:.5rem;padding:0 0 1.2rem}.gift-message label{font-size:.75rem}.gift-message textarea{width:100%;padding:.7rem;border:1px solid #b9aea7;resize:vertical}.gift-message .text-button{justify-self:start}.bag-summary{position:sticky;top:100px;padding:clamp(1.4rem,3vw,2.2rem);background:#fff;border:1px solid var(--light-gold)}.bag-summary h2{margin:0 0 1.3rem;font:500 1.8rem var(--serif)}.bag-summary>div{display:flex;justify-content:space-between;gap:1rem;padding:.45rem 0;font-size:.8rem}.bag-summary .discount-row{color:var(--success)}.bag-summary .bag-grand-total{margin-top:.7rem;padding-top:1rem;border-top:1px solid #dfd3c7;font-size:1rem}.bag-summary>p{font-size:.75rem}.bag-summary progress{width:100%;height:8px;accent-color:var(--gold)}.free-delivery{color:var(--success);font-weight:600}.coupon-form{margin-top:1.2rem;padding-top:1rem;border-top:1px solid #dfd3c7}.coupon-form>label{font-size:.72rem;font-weight:600}.coupon-form>div{display:flex;margin-top:.35rem}.coupon-form input{width:100%;min-width:0;min-height:44px;padding:.5rem;border:1px solid #b9aea7}.coupon-form button,.coupon-applied button{min-height:44px;border:1px solid var(--espresso);background:var(--espresso);color:#fff;padding:.5rem .8rem;cursor:pointer}.coupon-applied{display:flex;justify-content:space-between;align-items:center;margin-top:1rem;padding:.7rem;background:var(--cream);font-size:.75rem}.continue-shopping{display:flex;justify-content:center;align-items:center;min-height:48px;margin-top:1rem;border:1px solid var(--espresso)}.summary-note{color:#746961}.bag-empty{padding:5rem 1rem;text-align:center;background:var(--cream)}.bag-empty>span{font-size:4rem;color:var(--gold)}.bag-empty h2{margin:.5rem;font:500 2.4rem var(--serif)}.bag-recommendations{margin-top:5rem;padding-top:3rem;border-top:1px solid #dfd3c7}.bag-recommendations h2{font:500 2.6rem var(--serif)}.bag-recommendations>div{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.bag-recommendations a{display:flex;flex-direction:column;gap:.35rem}.bag-recommendations img{width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--cream)}.bag-recommendations strong{font:500 1.1rem var(--serif)}.bag-recommendations span{font-size:.75rem}
@media(max-width:900px){.bag-layout{grid-template-columns:1fr}.bag-summary{position:static}.bag-recommendations>div{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.mini-cart{width:100vw}.bag-line{grid-template-columns:100px minmax(0,1fr)}.bag-line>a:first-child,.bag-art{width:100px}.bag-line-total{grid-column:2}.bag-line-actions{align-items:flex-start;flex-direction:column}.bag-line-actions form{align-items:flex-start}.bag-recommendations>div{display:flex;overflow:auto}.bag-recommendations a{min-width:70vw}.reservation-notice{text-align:center}}
.coupon-form button,.coupon-applied button{background:var(--button-bg);border-color:var(--button-border);color:var(--button-text)}body.theme-midnight .bag-summary{background:#171a20;border-color:var(--gold)}body.theme-midnight .mini-cart{background:#111318;color:#f4efe6}body.theme-midnight .mini-cart-items p,body.theme-midnight .mini-expiry,body.theme-midnight .summary-note{color:#bbb4aa}

/* Polished cart-summary controls: keep coupon and checkout actions visually separate. */
.bag-summary progress {
    display: block;
    margin: 1rem 0 1.35rem;
}
.coupon-form {
    margin: 0;
    padding-top: 1.25rem;
}
.coupon-form > label {
    display: block;
    margin-bottom: .55rem;
}
.coupon-form > div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .55rem;
    margin: 0;
}
.coupon-form input,
.coupon-form button {
    min-height: 48px;
    border-radius: 0;
}
.coupon-form input {
    padding: .65rem .75rem;
}
.coupon-form button {
    min-width: 78px;
    padding-inline: 1rem;
    font-weight: 600;
}
.bag-summary .btn-checkout {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 52px;
    margin-top: 1.25rem;
    padding: .75rem 1rem;
    line-height: 1.25;
}
.bag-summary .continue-shopping {
    min-height: 50px;
    margin-top: .8rem;
    padding: .7rem 1rem;
    text-align: center;
}
.bag-summary .summary-note {
    margin: 1rem 0 0;
    line-height: 1.55;
}

@media (max-width: 420px) {
    .coupon-form > div {
        grid-template-columns: 1fr;
    }
    .coupon-form button {
        width: 100%;
    }
}
