body.cart-is-open { overflow:hidden; }
.header-actions { display:flex; align-items:center; justify-self:end; gap:8px; }
.cart-open { position:relative; display:grid; place-items:center; width:44px; min-height:44px; padding:7px; border:0; color:var(--paper); background:transparent; cursor:pointer; }
.cart-open svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.4; }
.cart-open span { position:absolute; top:0; right:0; display:grid; place-items:center; min-width:17px; height:17px; border-radius:50%; color:#111210; background:var(--bronze); font:10px 'DM Sans',sans-serif; }
.product-visual { position:relative; }
.product-quick-add { position:absolute; right:7px; bottom:7px; display:grid; place-items:center; width:38px; min-height:38px; border:1px solid rgba(189,165,114,.6); border-radius:50%; color:var(--paper); background:rgba(17,18,16,.85); cursor:pointer; }
.product-quick-add svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.4; }
.product-quick-add:hover { border-color:var(--bronze); }
.benefits-strip { display:block; max-width:100%; min-height:30px; padding:7px 16px; overflow-x:auto; scrollbar-width:thin; color:#decba4; background:#2a251b; font:12px/1.35 'DM Sans',sans-serif; text-align:center; white-space:nowrap; }
.promo-banner { position:relative; background:linear-gradient(90deg,rgba(14,15,12,.82),rgba(14,15,12,.35)),url('assets/hero-marble-v2.png') center/cover; overflow:hidden; }
.promo-copy { display:grid; min-width:0; }
.promo-slide { position:relative; grid-area:1/1; min-height:320px; padding:30px 40px 58px; visibility:hidden; opacity:0; pointer-events:none; transition:opacity .35s cubic-bezier(.22,1,.36,1),visibility .35s; }
.promo-slide.is-active { visibility:visible; opacity:1; pointer-events:auto; }
.campaign-media { position:absolute; inset:0 2% 0 auto; width:min(55%,420px); }
.campaign-media img { display:block; width:100%; height:100%; object-fit:cover; mask-image:linear-gradient(90deg,transparent,#000 25%,#000 85%,transparent); }
.campaign-copy { position:relative; z-index:1; width:56%; }
.campaign-brand { margin:0 0 16px; color:var(--bronze); font:9px/1.4 'DM Mono',monospace; letter-spacing:.13em; text-transform:uppercase; }
.promo-title { margin:0; color:var(--paper); font:500 clamp(36px,4vw,56px)/1.04 'Playfair Display',Georgia,serif; letter-spacing:-.045em; overflow-wrap:anywhere; }
.promo-title span,.promo-title em { display:block; }
.promo-title em { color:var(--bronze); font-weight:500; }
.promo-details { max-width:34ch; margin:16px 0 0; color:#c8c4b7; font:12px/1.5 'DM Sans',sans-serif; }
.campaign-link { display:inline-flex; align-items:center; justify-content:space-between; gap:18px; min-height:44px; margin-top:22px; padding:12px 20px; border-radius:50px; color:#14150f; background:var(--bronze); font:500 14px/1.2 'DM Sans',sans-serif; text-decoration:none; transition:background .2s,transform .2s; }
.campaign-link svg { width:19px; height:19px; flex:none; fill:none; stroke:currentColor; stroke-width:1.5; }
.campaign-link:hover { background:#d2bd90; }
.campaign-link:active { transform:translateY(1px); }
.promo-slide--text-only .campaign-media { display:none; }
.promo-slide--text-only .campaign-copy { width:90%; }
.promo-controls { position:absolute; right:22px; bottom:16px; z-index:2; display:flex; align-items:center; gap:2px; padding:2px 6px; border-radius:40px; color:var(--muted); background:rgba(12,13,10,.8); }
.promo-controls button { display:grid; place-items:center; width:38px; min-height:36px; padding:0; border:0; color:var(--paper); background:none; font-size:22px; cursor:pointer; }
.promo-controls [data-pause] { font-size:13px; }
.promo-controls [data-position] { font-size:10px; }
.shop-primary { display:flex; align-items:center; justify-content:center; min-height:48px; padding:12px 16px; border:0; border-radius:4px; color:#111210; background:var(--bronze); font:500 14px 'DM Sans',sans-serif; cursor:pointer; }
.shop-primary:hover:not(:disabled) { background:#d2bd90; }
.shop-primary:disabled { opacity:.5; cursor:not-allowed; }
.shop-toast { position:fixed; z-index:70; bottom:18px; left:50%; transform:translateX(-50%); width:max-content; max-width:calc(100% - 24px); margin:0; padding:12px 18px; border:1px solid var(--line); border-radius:5px; color:var(--paper); background:#24251f; box-shadow:0 6px 30px #0004; font:13px/1.4 'DM Sans',sans-serif; }
.cart-dialog { position:fixed; inset:0 0 0 auto; width:min(480px,100%); height:100dvh; max-height:100dvh; max-width:100%; margin:0; padding:0; border:0; border-left:1px solid var(--line); color:var(--paper); background:#141511; }
.cart-dialog::backdrop { background:rgba(0,0,0,.65); }
.cart-panel { display:flex; flex-direction:column; min-height:100%; padding:22px; font-family:'DM Sans',sans-serif; }
.cart-heading { display:flex; align-items:center; justify-content:space-between; gap:14px; padding-bottom:15px; border-bottom:1px solid var(--line); }
.cart-heading h2 { margin:0; font:500 30px/1.2 'Playfair Display',Georgia,serif; }
.cart-heading button { min-width:44px; min-height:44px; border:0; background:none; color:var(--paper); font-size:28px; cursor:pointer; }
.cart-line { display:grid; grid-template-columns:88px minmax(0,1fr); gap:14px; padding:18px 0; border-bottom:1px solid var(--line); }
.cart-line img,.cart-no-photo { width:88px; height:88px; object-fit:contain; background:#22241c; border-radius:3px; }
.cart-no-photo { display:grid; place-items:center; color:var(--muted); font-size:11px; }
.cart-line h3 { margin:0; font:500 16px/1.3 'DM Sans',sans-serif; }
.cart-line p { margin:5px 0; color:var(--muted); font-size:12px; }
.cart-line strong { font-size:16px; font-weight:500; }
.cart-quantity { display:flex; align-items:center; gap:8px; margin-top:5px; }
.cart-quantity button { min-width:36px; min-height:44px; padding:4px; border:0; background:none; color:var(--paper); font-size:18px; cursor:pointer; }
.cart-quantity button[data-remove] { min-width:44px; margin-left:auto; color:var(--muted); font-size:12px; }
.cart-quantity button:disabled { opacity:.4; cursor:not-allowed; }
.cart-quantity span { min-width:14px; text-align:center; font-size:14px; }
.cart-line p.cart-line-error { color:#e9b69b; }
.cart-footer { margin-top:auto; padding-top:22px; }
.cart-total { display:flex; justify-content:space-between; align-items:center; gap:10px; font-size:14px; }
.cart-total strong { font-size:25px; font-weight:500; font-variant-numeric:tabular-nums; }
.cart-note,#cart-status,.cart-empty { color:var(--muted); font-size:12px; line-height:1.5; }
.cart-empty { padding-block:24px; }
.cart-note { margin:12px 0 18px; }
#cart-checkout { width:100%; }
#cart-status { margin:12px 0 0; }
@media (max-width:600px) {
  .benefits-strip { padding:7px 12px; font-size:11px; }
  .promo-banner { margin-inline:-16px; }
  .promo-slide { min-height:280px; padding:24px 18px 62px; }
  .campaign-copy { width:61%; }
  .campaign-media { left:41%; right:0; width:auto; }
  .campaign-brand { margin-bottom:12px; font-size:8px; letter-spacing:.08em; }
  .promo-title { font-size:clamp(28px,8.5vw,36px); }
  .promo-details { max-width:23ch; font-size:11px; margin-top:14px; }
  .campaign-link { gap:9px; margin-top:17px; padding:11px 15px; font-size:12px; }
  .campaign-link svg { width:16px; height:16px; }
  .promo-controls { right:12px; bottom:10px; gap:0; }
  .promo-controls button { width:36px; min-height:36px; }
  .promo-controls [data-position] { font-size:9px; }
  .header-actions { gap:2px; }
  .header-actions .menu-button { padding-left:6px; }
  .cart-panel { padding:16px; }
}
@media (max-width:350px) { .promo-banner { margin-inline:-12px; } .promo-slide { padding-inline:14px; } .campaign-media img { object-fit:contain; } }
