.cart-link { display:inline-flex; align-items:center; gap:7px; background:var(--lime,var(--sc-lime,#d9f45a)); color:#111; padding:10px 16px; border-radius:10px; }
.auth-nav-link { padding:8px 12px; border:1px solid rgba(255,255,255,.35); border-radius:9px; white-space:nowrap; }
.auth-nav-link:hover { border-color:var(--lime); color:var(--lime); }
.header .navbar-search { position:relative; border:1px solid rgba(255,255,255,.2); }
.header .navbar-search input { padding-right:54px; font-size:15px; }
.header .navbar-search .search-icon-button { position:absolute; top:0; right:0; width:50px; height:100%; display:grid; place-items:center; padding:0; border:0; background:#fff; color:#321078; }
.header .navbar-search .search-icon-button svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }
.header .nav { gap:12px; }
.header .nav .nav-icon-link { display:inline-flex; align-items:center; gap:5px; padding:9px 2px; color:#fff; opacity:.92; transition:opacity .15s,color .15s; }
.header .nav .nav-icon-link:hover { color:var(--lime); opacity:1; }
.header .nav .prime-nav-link { gap:5px; padding:8px 11px; border:1px solid var(--lime); border-radius:10px; color:var(--lime); opacity:1; }
.header .nav .prime-nav-link span:not(.prime-nav-star) { color:inherit; }
.header .nav .prime-nav-link.prime-active { border-color:rgba(255,255,255,.35); color:#fff; background:rgba(255,255,255,.05); }
.header .nav .prime-nav-star { color:var(--lime); font-size:15px; line-height:1; }
.nav-discover{position:relative}.discover-trigger{cursor:pointer}.discover-arrow{font-style:normal;display:inline-block;font-size:9px;vertical-align:1px}.header .nav .discover-trigger{background:transparent;border:0;border-radius:0}.discover-menu{display:none;position:absolute;z-index:60;top:42px;right:0;width:190px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 35px rgba(49,0,111,.18)}.nav-discover:hover .discover-menu,.nav-discover:focus-within .discover-menu{display:grid}.nav-discover .discover-menu a{padding:10px;border-radius:8px;color:var(--ink);font-size:11px;font-weight:700;text-decoration:none;display:block}.nav-discover .discover-menu a:hover,.nav-discover .discover-menu a:focus-visible{background:#d9f45a;color:#2b006e;outline:none}.nav-notifications .discover-trigger{position:relative}.nav-notifications .cart-count{position:absolute;top:2px;right:-8px;min-width:16px;height:16px;padding:0 4px;font-size:9px}.notif-menu{display:none;position:absolute;z-index:60;top:42px;right:0;width:300px;max-height:360px;overflow-y:auto;overflow-x:hidden;padding:8px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 35px rgba(49,0,111,.18)}.nav-notifications:hover .notif-menu,.nav-notifications:focus-within .notif-menu{display:grid;gap:3px}.nav-notifications .notif-menu-item{display:block;padding:10px;border-radius:8px;color:var(--ink);white-space:normal;text-decoration:none}.nav-notifications .notif-menu-item:hover{background:var(--lav)}.nav-notifications .notif-menu-item.unread{background:#f3f0ff}.nav-notifications .notif-menu-item span{display:block;color:var(--ink);white-space:normal;font-size:12px;font-weight:700;line-height:1.35}.nav-notifications .notif-menu-item small{display:block;margin-top:3px;color:#8a8391;white-space:normal;font-size:10px}.notif-empty{margin:0;padding:16px 10px;color:#8a8391;font-size:12px;text-align:center}.nav-notifications .notif-view-all{display:block;margin-top:4px;padding:9px 10px;border-top:1px solid var(--line);color:var(--p);white-space:normal;font-size:11px;font-weight:800;text-align:center;text-decoration:none}
.header .nav .nav-icon-link svg { width:17px; height:17px; flex:none; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.header .nav .nav-icon-link .reward-icon { fill:var(--lime); stroke:var(--lime); }
.header .nav .points-balance { gap:8px; padding:5px 13px 5px 5px; border:1px solid rgba(215,243,95,.48); border-radius:999px; background:rgba(255,255,255,.1); color:#fff; box-shadow:inset 0 1px rgba(255,255,255,.12); }
.header .nav .points-balance .reward-icon { box-sizing:content-box; width:17px; height:17px; padding:7px; border-radius:50%; background:var(--lime); fill:var(--purple-dark); stroke:var(--purple-dark); }
.header .nav .points-balance:hover { border-color:var(--lime); background:rgba(255,255,255,.16); transform:translateY(-1px); }
.header .nav .cart-link { display:inline-flex; align-items:center; gap:7px; padding:10px 13px; color:#111; }
.header .nav .cart-link svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.header .nav .cart-link span { color:inherit; }
.field-error { display:block; margin-top:6px; color:var(--error); font-size:11px; font-weight:600; }
.cart-count { display:inline-grid; place-items:center; min-width:20px; height:20px; padding:0 6px; border-radius:999px; background:var(--purple,var(--p,#5b2eff)); color:#fff; font-size:11px; font-weight:800; }
.cart-count.is-empty { display:none; }
.cart-page { max-width:1160px; }
.cart-page .cart-layout { align-items:start; }
.cart-heading { margin-bottom:26px; }
.cart-heading h1 { font-size:clamp(2.2rem,4vw,3.5rem); }
.cart-page .cart-list { height:max-content; align-self:start; border:1px solid var(--line); border-radius:18px; box-shadow:0 10px 35px rgba(43,0,110,.06); }
.cart-page .cart-item { grid-template-columns:78px minmax(0,1fr) 132px 130px; gap:20px; padding:22px; transition:opacity .2s; }
.cart-item.is-updating { opacity:.55; }
.cart-page .mini-product { width:68px; height:68px; font-size:25px; }
.cart-item-name { display:block; font-family:Poppins,Inter,sans-serif; }
.cart-item-info .pill { margin-top:7px; }
.remove-link { display:block; border:0; background:none; color:var(--error); padding:8px 0 0; font-size:12px; cursor:pointer; }
.quantity-control { display:grid; grid-template-columns:38px 48px 38px; align-items:center; border:1px solid var(--line); border-radius:12px; overflow:hidden; background:var(--off); }
.quantity-control button { display:grid; width:100%; height:40px; padding:0; border:0; background:transparent; color:var(--purple); font-size:21px; font-weight:800; line-height:1; place-items:center; cursor:pointer; }
.quantity-control button:hover { background:var(--lavender); }
.quantity-control input { height:40px; padding:0; border:0; border-left:1px solid var(--line); border-right:1px solid var(--line); border-radius:0; text-align:center; font-weight:800; -moz-appearance:textfield; }
.quantity-control input::-webkit-inner-spin-button { display:none; }
.line-total { text-align:right; color:var(--purple-dark); }
.cart-page .summary { position:sticky; top:24px; box-shadow:0 10px 35px rgba(43,0,110,.06); }
.cart-page .summary h2 { margin-top:0; }
.cart-page .summary > a:not(.btn) { display:block; text-align:center; color:var(--purple); font-size:13px; font-weight:700; }
.cart-save-status { min-height:20px; margin:0; text-align:right; font-size:12px; color:var(--success); opacity:0; transition:opacity .25s; }
.cart-save-status.is-visible { opacity:1; }
.cart-empty { border:0; padding:60px 24px; }
.empty-cart-icon { display:block; font-size:48px; margin-bottom:10px; }
.mobile-cart-link { align-items:center; justify-content:center; gap:5px; }

@media (max-width:720px) {
    .cart-page .cart-item { grid-template-columns:58px minmax(0,1fr) 126px; padding:16px; gap:12px; }
    .cart-page .mini-product { width:54px; height:54px; }
    .cart-page .quantity-control { grid-column:3; grid-row:1; }
    .cart-page .line-total { grid-column:3; }
    .mobile-cart-link { display:flex !important; }
    .mobile-nav .cart-count { min-width:18px; height:18px; padding:0 5px; }
}
/* The cart and checkout summaries share partials/free-delivery-nudge, so they share its look: the
   compact single-line pill checkout already used, rather than the taller gradient block the cart
   had. Values here are the ones .checkout-summary resolves to, so checkout renders unchanged. */
.free-delivery-nudge { display:flex; align-items:center; gap:8px; height:28px; min-height:28px; padding:4px 10px; margin:10px 0 16px; border:1px solid #b9a3df; border-radius:999px; background:#f7f2ff; box-shadow:none; white-space:nowrap; overflow:hidden; }
.free-delivery-nudge .fdn-badge { flex:none; background:#5b2cff; color:#fff; padding:1px 6px; border-radius:4px; font-size:10px; line-height:16px; font-weight:800; text-transform:uppercase; white-space:nowrap; }
.free-delivery-nudge .fdn-text { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; font-size:11px; line-height:18px; color:#2b096e; font-weight:700; white-space:nowrap; }
.free-delivery-nudge .fdn-cta { flex:none; color:#5b2cff; text-decoration:underline; font-weight:700; font-size:11px; line-height:18px; white-space:nowrap; }
@media(max-width:560px){ .free-delivery-nudge { gap:5px; padding-inline:8px; } .free-delivery-nudge .fdn-text { font-size:10px; } .free-delivery-nudge .fdn-cta { font-size:10px; } }

/* Donation box routed to a partner: the box is still paid for and counted at checkout, so this
   reads as a delivery destination on the line rather than anything that changes the price. */
.cart-donation-dest{display:flex;align-items:flex-start;gap:8px;margin:8px 0 4px;padding:9px 11px;border:1px solid #cdbcf5;border-left:4px solid #5b2cff;border-radius:10px;background:linear-gradient(135deg,#f4efff,#fbf8ff)}
.cart-donation-dest i{font-style:normal;font-size:13px;color:#5b2cff;line-height:1.2}
.cart-donation-dest span{display:block;font-size:11px;color:#2d006f;line-height:1.45}
.cart-donation-dest b{font-weight:900}
.cart-donation-dest small{display:block;margin-top:3px;font-size:9px;font-weight:800;color:#5b2cff}

/* Per-box delivery destination. Only donation boxes render this block; every other cart line
   keeps the plain layout and is delivered to the single order-level address. */
.cart-donation-dest{flex-wrap:wrap;align-items:center;gap:6px 8px}
.cart-donation-dest .cart-donation-dest-label{font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#5b2cff}
.cart-donation-dest select{flex:1 1 160px;min-width:0;padding:5px 7px;border:1px solid #cdbcf5;border-radius:7px;background:#fff;color:#2d006f;font:inherit;font-size:11px;font-weight:800;cursor:pointer}
.cart-donation-dest select:focus-visible{outline:2px solid #5b2cff;outline-offset:1px}
.cart-donation-dest.needs-confirmation{border-color:#e0a500;border-left-color:#e0a500;background:linear-gradient(135deg,#fff8e6,#fffdf7)}
.cart-donation-dest.needs-confirmation .cart-donation-dest-label,.cart-donation-dest.needs-confirmation i{color:#8a5a00}
.cart-donation-dest .dest-hint{flex:1 1 100%;margin:0;font-size:9px;font-weight:800;color:#8a5a00}
.cart-item.is-donation-item .donation-line-qty{display:flex;align-items:center;justify-content:center;padding:6px 10px;border:1px dashed #cdbcf5;border-radius:9px;background:#faf7ff;font-size:11px;font-weight:800;color:#5b2cff;white-space:nowrap}
