  /* ================= STORE HERO SLIDESHOW ================= */

  .store-hero { position:relative; height:min(78vh, 620px); min-height:520px; overflow:hidden; background:#1C130C; --dir:1; }
  .store-slides { position:relative; width:100%; height:100%; }
  .store-slide {
    position:absolute; inset:0; opacity:0; z-index:1; pointer-events:none;
    transform:scale(1.07) translateX(calc(var(--dir, 1) * 4%));
    transition:opacity 1s cubic-bezier(.16,1,.3,1), transform 1.15s cubic-bezier(.16,1,.3,1);
  }
  .store-slide.is-active { opacity:1; transform:scale(1) translateX(0); z-index:2; pointer-events:auto; }
  .store-slide.is-leaving {
    opacity:0; z-index:1; transform:scale(.94) translateX(calc(var(--dir, 1) * -5%));
    transition:opacity .85s cubic-bezier(.4,0,1,1), transform .95s cubic-bezier(.4,0,1,1);
  }
  .store-slide .bg {
    position:absolute; inset:0; background-size:cover; background-position:center;
    transform:scale(1.02);
  }
  .store-slide.is-active .bg {
    animation:storeKenBurns var(--slide-duration, 6s) cubic-bezier(.25,.1,.25,1) forwards;
  }
  @keyframes storeKenBurns { from { transform:scale(1.02); } to { transform:scale(1.1); } }
  .store-hero:hover .store-slide.is-active .bg { animation-play-state:paused; }
  .store-slide::after {
    content:''; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(15,10,6,.22) 0%, rgba(15,10,6,.68) 100%);
  }

  .store-hero-content {
    position:relative; z-index:2; height:100%; display:flex; flex-direction:column;
    justify-content:flex-end; padding:0 0 clamp(56px,7vw,84px);
  }
  .store-hero-content .wrap { width:100%; }
  .store-hero-eyebrow { font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:#D9B96A; margin-bottom:16px; opacity:0; transform:translateY(16px); transition:opacity .7s cubic-bezier(.16,1,.3,1) .16s, transform .7s cubic-bezier(.16,1,.3,1) .16s; }
  .store-hero-title {
    font-family:'Fraunces',serif; font-weight:400; font-size:clamp(36px,6vw,64px); line-height:1.06; color:#F8F2E4;
    max-width:680px; margin-bottom:20px; opacity:0; transform:translateY(22px) scale(.98); transition:opacity .7s cubic-bezier(.16,1,.3,1) .26s, transform .7s cubic-bezier(.16,1,.3,1) .26s;
  }
  .store-hero-title i { font-family:'Fraunces',serif; font-style:italic; font-weight:300; color:#E7CE93; }
  .store-hero-dek {
    font-family:'Cormorant Garamond',serif; font-size:19px; line-height:1.6; color:#E4D9C2; max-width:480px; margin-bottom:34px;
    opacity:0; transform:translateY(18px); transition:opacity .7s cubic-bezier(.16,1,.3,1) .36s, transform .7s cubic-bezier(.16,1,.3,1) .36s;
  }
  .store-slide.is-active .store-hero-eyebrow,
  .store-slide.is-active .store-hero-title,
  .store-slide.is-active .store-hero-dek { opacity:1; transform:translateY(0) scale(1); }

  .store-hero-actions { display:flex; align-items:center; gap:20px; flex-wrap:wrap; opacity:0; transform:translateY(18px); transition:opacity .7s cubic-bezier(.16,1,.3,1) .46s, transform .7s cubic-bezier(.16,1,.3,1) .46s; }
  .store-slide.is-active .store-hero-actions { opacity:1; transform:translateY(0); }
  .store-hero-actions .btn { padding:16px 34px; font-size:13.5px; }

  .store-hero-actions .btn-line-light {
    border:1px solid rgba(248,242,228,.6); color:#F8F2E4; padding:16px 30px; font-size:13.5px; letter-spacing:.03em;
    text-decoration:none; display:inline-flex; transition:background .35s ease, border-color .35s ease, transform .35s ease;
  }
  .store-hero-actions .btn-line-light:hover { background:rgba(248,242,228,.14); border-color:#F8F2E4; transform:translateY(-3px); }

  .btn-icon { display:inline-flex; align-items:center; gap:10px; }
  .btn-icon svg { flex-shrink:0; }
  .btn.btn-icon svg { transition:transform .35s cubic-bezier(.34,1.56,.64,1); }
  .btn.btn-icon:hover svg { transform:scale(1.15) rotate(-6deg); }
  .btn-line-light.btn-icon .btn-icon-arrow { transition:transform .35s cubic-bezier(.4,0,.2,1); }
  .btn-line-light.btn-icon:hover .btn-icon-arrow { transform:translateX(4px); }

  /* slideshow controls */
  .store-hero-controls { position:absolute; z-index:3; right:clamp(20px,4vw,64px); bottom:clamp(28px,4vw,40px); display:flex; align-items:center; gap:16px; }
  .store-dots { display:flex; gap:9px; }
  .store-dot {
    position:relative; width:28px; height:3px; border-radius:2px; background:rgba(248,242,228,.28); border:none; padding:0; cursor:pointer;
    overflow:hidden; transition:background .3s ease;
  }
  .store-dot::before {
    content:''; position:absolute; inset:0; background:#E7CE93; transform:scaleX(0); transform-origin:left;
  }
  .store-dot.is-active::before { animation:storeDotFill var(--slide-duration, 6s) linear forwards; }
  .store-dot:hover { background:rgba(248,242,228,.45); }
  @keyframes storeDotFill { from { transform:scaleX(0); } to { transform:scaleX(1); } }
  .store-hero:hover .store-dot::before { animation-play-state:paused; }

  .store-arrows { display:flex; gap:8px; }
  .store-arrow {
    width:42px; height:42px; border-radius:50%; border:1px solid rgba(248,242,228,.35); background:rgba(248,242,228,.06);
    color:#F8F2E4; display:flex; align-items:center; justify-content:center; cursor:pointer;
    transition:background .3s ease, border-color .3s ease, transform .3s ease;
  }
  .store-arrow:hover { background:rgba(248,242,228,.16); border-color:rgba(248,242,228,.6); transform:translateY(-2px); }

  .store-hero-count { position:absolute; z-index:3; left:clamp(20px,4vw,64px); bottom:clamp(28px,4vw,40px); display:flex; align-items:baseline; gap:6px; font-family:'Fraunces',serif; color:#E4D9C2; }
  .store-hero-count .cur { font-size:22px; font-style:italic; color:#F8F2E4; }
  .store-hero-count .sep { font-size:13px; opacity:.5; }
  .store-hero-count .tot { font-size:13px; opacity:.7; }

  /* ================= INTRO STRIP ================= */
  .store-intro { padding:clamp(56px,7vw,80px) 0 clamp(36px,4vw,44px); background:#FFFFFF; }
  .store-intro .wrap { display:flex; justify-content:space-between; align-items:flex-end; gap:32px; flex-wrap:wrap; }
  .store-intro-text { max-width:520px; }
  .store-intro-text .eyebrow { margin-bottom:14px; }
  .store-intro-note { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:16.5px; color:#7A6B52; max-width:280px; line-height:1.6; text-align:right; }
  .store-intro-actions { display:flex; flex-direction:column; align-items:flex-end; gap:16px; }
  .store-track-btn { display:inline-flex; align-items:center; gap:9px; padding:12px 22px; font-size:12.5px; white-space:nowrap; }
  .store-track-btn svg { flex:0 0 auto; }

  /* ================= FILTER BAR ================= */
  .store-filters {
    display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
    margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid #E0D3AE;
  }
  .store-tabs { display:flex; gap:6px; flex-wrap:wrap; }
  .store-tab {
    border:none; background:transparent; padding:10px 18px; font-size:13px; letter-spacing:.02em; color:#8A7A5C;
    cursor:pointer; position:relative; transition:color .3s ease;
  }
  .store-tab::after {
    content:''; position:absolute; left:18px; right:18px; bottom:2px; height:1.5px; background:#A6821D;
    transform:scaleX(0); transform-origin:left; transition:transform .3s cubic-bezier(.4,0,.2,1);
  }
  .store-tab:hover { color:#1C130C; }
  .store-tab.is-active { color:#1C130C; font-weight:500; }
  .store-tab.is-active::after { transform:scaleX(1); }

  .store-search { position:relative; width:260px; max-width:100%; flex-shrink:0; }
  .store-search svg { position:absolute; left:0; top:50%; transform:translateY(-50%); color:#9A8B6C; pointer-events:none; }
  .store-search input {
    width:100%; border:none; border-bottom:1px solid transparent; background:transparent; padding:0 28px 10px 26px;
    font-family:'Cormorant Garamond',serif; font-style:italic; font-size:17px; color:#211B15; outline:none;
    transition:border-color .3s ease;
  }
  .store-search input::placeholder { color:#9A8B6C; opacity:1; }
  .store-search input:focus { border-bottom-color:#A6821D; }
  .store-search-clear {
    position:absolute; right:0; bottom:6px; width:20px; height:20px;
    border:none; background:none; color:#9A8B6C; cursor:pointer; padding:0;
    display:none; align-items:center; justify-content:center; font-size:16px; line-height:1; transition:color .25s ease;
  }
  .store-search-clear:hover { color:#1C130C; }
  .store-search.has-value .store-search-clear { display:flex; }

  .store-result-count { font-size:12.5px; color:#B8AC91; margin-bottom:24px; }

  .store-empty {
    display:none; flex-direction:column; align-items:center; text-align:center; gap:14px;
    padding:clamp(60px,8vw,90px) 20px; color:#C7B990;
  }
  .store-empty.show { display:flex; }
  .store-empty p { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:17px; color:#9A8B6C; }

  /* ================= PRODUCT GRID ================= */
  .store-grid-section { padding:0 0 clamp(80px,9vw,110px); background:#FFFFFF; }
  .store-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:clamp(28px,3vw,36px); }

  .product-card { position:relative; display:flex; flex-direction:column; transition:opacity .3s ease, transform .3s ease; }
  .product-card.is-hidden { display:none; }
  .pc-media-link { position:absolute; inset:0; z-index:1; display:block; }
  .pc-name-link { text-decoration:none; }
  .pc-name-link:hover .pc-name { color:#A6821D; }
  /* .pc-media-wrap holds the image AND the quick-add controls as siblings
     (not nested) specifically so the two can be laid out completely
     differently per breakpoint below: absolute-overlay-on-hover on
     desktop, normal in-flow stacked rows on mobile — without needing
     two different markup structures. */
  .product-card .pc-media-wrap { position:relative; margin-bottom:20px; }
  .product-card .pc-media { position:relative; aspect-ratio:3/2; overflow:hidden; background:#F0E9D6; }
  .product-card .pc-media img, .product-card .pc-media .ph { width:100%; height:100%; object-fit:cover; background-size:cover; background-position:center; transition:transform .7s cubic-bezier(.22,1,.36,1); }
  .product-card:hover .pc-media .ph { transform:scale(1.05); }
  .product-card .pc-badge {
    position:absolute; top:14px; left:14px; z-index:2; background:#1C130C; color:#F8F2E4; font-size:10.5px; letter-spacing:.08em;
    text-transform:uppercase; padding:6px 12px;
  }
  .product-card .pc-quick {
    position:absolute; left:14px; right:14px; bottom:14px; z-index:2; display:flex; gap:8px;
    opacity:0; transform:translateY(8px); transition:opacity .3s ease, transform .3s ease;
  }
  .product-card:hover .pc-quick { opacity:1; transform:translateY(0); }

  /* Quick-add is hover-only by default; touch devices have no hover, so show it
     always instead of leaving it permanently hidden and unreachable. This only
     matters above the mobile breakpoint below, where it's already always-visible
     and in-flow for a different reason (no room to overlay the image cleanly). */
  @media (hover:none) and (min-width:641px) {
    .product-card .pc-quick { opacity:1; transform:translateY(0); }
  }
  .pc-qty {
    display:flex; align-items:center; background:#FFFFFF; border:1px solid #E0D3AE;
  }
  .pc-qty button { width:32px; height:36px; border:none; background:transparent; color:#1C130C; font-size:15px; cursor:pointer; transition:background .2s ease; touch-action:manipulation; }
  .pc-qty button:hover { background:#F0E9D6; }
  .pc-qty button:active { background:#E4D6AE; }
  .pc-qty span { width:26px; text-align:center; font-size:13.5px; color:#1C130C; }
  .pc-add {
    flex:1; background:#1C130C; color:#F8F2E4; border:none; font-size:12.5px; letter-spacing:.03em;
    cursor:pointer; transition:background .25s ease, transform .25s ease; display:flex; align-items:center; justify-content:center; gap:8px;
    touch-action:manipulation;
  }
  .pc-add:hover { transform:translateY(-2px); }
  .pc-add:active { transform:scale(.96); transition:transform .08s ease; }
  .pc-add.is-added { background:#5C7A47; }

  .product-card .pc-name { font-family:'Fraunces',serif; font-weight:500; font-size:17px; color:#1C130C; margin-bottom:5px; }
  .product-card .pc-desc { font-size:13px; color:#8A7A5C; line-height:1.55; margin-bottom:10px; }
  .product-card .pc-price-row { display:flex; align-items:baseline; gap:9px; margin-top:auto; }
  .product-card .pc-price { font-family:'Inter',sans-serif; font-weight:600; font-size:15.5px; color:#1C130C; }
  .product-card .pc-price-was { font-size:13px; color:#C7BB9E; text-decoration:line-through; }
  .product-card .pc-stock-note { font-size:11px; color:#A6821D; font-weight:500; margin-top:4px; }
  .product-card .pc-qty button:disabled,
  .product-card .pc-add:disabled { opacity:.5; cursor:not-allowed; }

  /* ================= FLOATING CART TRIGGER ================= */
  .cart-fab {
    position:fixed; right:24px; bottom:24px; z-index:900; display:flex; align-items:center; gap:12px;
    background:#1C130C; color:#F8F2E4; border:none; padding:15px 22px 15px 18px; cursor:pointer;
    box-shadow:0 16px 36px rgba(28,19,12,.32); transition:transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .3s ease;
    transform:translateY(120%); opacity:0; touch-action:manipulation;
  }
  .cart-fab.is-visible { transform:translateY(0); opacity:1; }
  .cart-fab:hover { transform:translateY(-3px); box-shadow:0 20px 44px rgba(28,19,12,.4); }
  .cart-fab.is-visible:active { transform:translateY(0) scale(.95); transition:transform .08s ease; }
  .cart-fab .fab-icon { position:relative; display:flex; }
  .cart-fab .fab-count {
    position:absolute; top:-9px; right:-9px; background:#A6821D; color:#1C130C; font-size:10px; font-weight:600;
    width:17px; height:17px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  }
  .cart-fab .fab-total { font-size:13px; font-weight:500; }
  .cart-fab .fab-label { font-size:12px; color:#C7B990; }

  /* ================= CART DRAWER ================= */
  .cart-backdrop { position:fixed; inset:0; background:rgba(15,10,6,.5); z-index:1100; opacity:0; pointer-events:none; transition:opacity .35s ease; }
  .cart-backdrop.is-open { opacity:1; pointer-events:auto; }

  .cart-drawer {
    position:fixed; top:0; right:0; bottom:0; width:min(420px, 100vw); background:#F9F7F1; z-index:1101;
    display:flex; flex-direction:column; transform:translateX(100%); transition:transform .45s cubic-bezier(.22,1,.36,1);
    box-shadow:-24px 0 60px rgba(28,19,12,.25);
  }
  .cart-drawer.is-open { transform:translateX(0); }

  .cart-drawer-head { display:flex; align-items:center; justify-content:space-between; padding:24px 26px; border-bottom:1px solid #E0D3AE; }
  .cart-drawer-head h3 { font-family:'Fraunces',serif; font-weight:500; font-size:19px; color:#1C130C; }
  .cart-drawer-close { width:34px; height:34px; border:1px solid #D8CBA0; background:#FBFAF6; color:#1C130C; font-size:19px; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:transform .3s cubic-bezier(.34,1.56,.64,1), background .25s ease, color .25s ease; }
  .cart-drawer-close:hover { background:#1C130C; color:#F8F2E4; transform:rotate(90deg); }

  .cart-drawer-body { flex:1; overflow-y:auto; padding:20px 26px; }
  .cart-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; height:100%; gap:14px; padding:40px 20px; }
  .cart-empty svg { color:#C7B990; }
  .cart-empty p { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:17px; color:#9A8B6C; }

  .cart-item { display:flex; gap:14px; padding:18px 0; border-bottom:1px solid #EFE7D3; }
  .cart-item:first-child { padding-top:0; }
  .cart-item .ci-img { width:64px; height:64px; flex-shrink:0; background-size:cover; background-position:center; background-color:#F0E9D6; }
  .cart-item .ci-body { flex:1; min-width:0; }
  .cart-item .ci-name { font-family:'Fraunces',serif; font-size:14.5px; color:#1C130C; margin-bottom:4px; }
  .cart-item .ci-price { font-size:12.5px; color:#9A8B6C; margin-bottom:10px; }
  .cart-item .ci-stock-note { font-size:11px; color:#A6821D; font-weight:500; margin:-6px 0 8px; }
  .cart-item .pc-qty button:disabled { opacity:.4; cursor:not-allowed; }
  .cart-item .ci-controls { display:flex; align-items:center; justify-content:space-between; }
  .cart-item .ci-remove { background:none; border:none; font-size:11.5px; color:#B5544A; cursor:pointer; text-decoration:underline; text-decoration-color:transparent; transition:text-decoration-color .2s ease; padding:0; }
  .cart-item .ci-remove:hover { text-decoration-color:#B5544A; }
  .cart-item .ci-name-link { text-decoration:none; }
  .cart-item .ci-move { background:none; border:none; font-size:11.5px; color:#1C130C; cursor:pointer; text-decoration:underline; text-decoration-color:transparent; transition:text-decoration-color .2s ease; padding:0; }
  .cart-item .ci-move:hover { text-decoration-color:#1C130C; }

  /* ================= WISHLIST HEART TOGGLE ================= */
  /* Grid card version — sits top-right of the photo, mirroring the
     badge's top-left position. */
  .pc-wishlist {
    position:absolute; top:14px; right:14px; z-index:2; width:32px; height:32px; border-radius:50%;
    background:rgba(255,255,255,.92); border:none; color:#1C130C; display:flex; align-items:center; justify-content:center;
    cursor:pointer; transition:transform .2s ease, color .2s ease; touch-action:manipulation;
  }
  .pc-wishlist:hover { transform:scale(1.08); }
  .pc-wishlist:active { transform:scale(.92); transition:transform .08s ease; }
  .pc-wishlist.is-active { color:#B5544A; }

  /* Product detail page version — sits beside the Add to bag button. */
  .spd-wishlist-btn {
    flex-shrink:0; width:48px; height:48px; border-radius:3px; background:#FFFFFF; border:1px solid #E0D3AE;
    color:#1C130C; display:flex; align-items:center; justify-content:center; cursor:pointer;
    transition:border-color .2s ease, color .2s ease; touch-action:manipulation;
  }
  .spd-wishlist-btn:hover { border-color:#1C130C; }
  .spd-wishlist-btn:active { transform:scale(.94); transition:transform .08s ease; }
  .spd-wishlist-btn.is-active { color:#B5544A; border-color:#E7C9C4; background:#FBF3F2; }

  /* ================= FLOATING WISHLIST TRIGGER ================= */
  .wishlist-fab {
    position:fixed; right:24px; bottom:96px; z-index:900; display:flex; align-items:center; justify-content:center;
    width:52px; height:52px; border-radius:50%; background:#FFFFFF; color:#1C130C; border:1px solid #E4D9C4; cursor:pointer;
    box-shadow:0 12px 28px rgba(28,19,12,.18); transition:transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .3s ease;
    transform:translateY(120%); opacity:0; touch-action:manipulation;
  }
  .wishlist-fab.is-visible { transform:translateY(0); opacity:1; }
  .wishlist-fab:hover { transform:translateY(-3px); box-shadow:0 16px 34px rgba(28,19,12,.24); }
  .wishlist-fab.is-visible:active { transform:translateY(0) scale(.9); transition:transform .08s ease; }
  .wishlist-fab .fab-count {
    position:absolute; top:-6px; right:-6px; background:#B5544A; color:#FFFFFF; font-size:10px; font-weight:600;
    width:18px; height:18px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  }
  @media (max-width:640px) {
    /* 82px left only an ~8px gap above the cart FAB's top edge (which
       sits ~74px up, from its own bottom:24px + ~50px height) — thin
       enough that a thumb reaching for "View bag" regularly landed on
       the wishlist heart instead. Widened to a clear ~20px gap. */
    .wishlist-fab { right:16px; bottom:96px; width:46px; height:46px; }
  }

  .cart-drawer-foot { border-top:1px solid #E0D3AE; padding:22px 26px 26px; }
  .cart-subtotal-row { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:6px; }
  .cart-subtotal-row .k { font-size:13px; color:#9A8B6C; }
  .cart-subtotal-row .v { font-family:'Fraunces',serif; font-size:20px; color:#1C130C; }
  .cart-drawer-foot .note { font-size:12px; color:#B8AC91; margin-bottom:18px; }
  .cart-drawer-foot .btn { display:block; width:100%; text-align:center; }
  .cart-drawer-foot .btn[disabled] { pointer-events:none; opacity:.4; }

  body.cart-lock { overflow:hidden; }

  /* ================= TRUST / STAT BAR (light) — shared with store-product.html ================= */
  .spd-trustbar { background:#FBFAF6; border-top:1px solid #E0D3AE; padding:clamp(48px,5.5vw,64px) 0; }
  .spd-trustbar .wrap {
    max-width:1180px; display:grid; grid-template-columns:repeat(4, 1fr);
    border-left:1px solid #E0D3AE; border-top:1px solid #E0D3AE;
  }
  .spd-trust-card {
    position:relative; display:block; text-decoration:none; padding:clamp(26px,2.6vw,32px) clamp(22px,2.4vw,28px);
    border-right:1px solid #E0D3AE; border-bottom:1px solid #E0D3AE; transition:background .3s ease;
  }
  a.spd-trust-card:hover { background:#F3ECD6; }

  .tc-icon {
    width:38px; height:38px; border:1px solid #D8CBA0; background:#FFFFFF; color:#A6821D;
    display:flex; align-items:center; justify-content:center; margin-bottom:16px; transition:background .3s ease, color .3s ease, border-color .3s ease;
  }
  a.spd-trust-card:hover .tc-icon { background:#1C130C; border-color:#1C130C; color:#F8F2E4; }

  .tc-num {
    font-family:'Fraunces',serif; font-weight:400; font-style:italic; font-size:clamp(17px,1.8vw,21px);
    color:#1C130C; line-height:1.2; margin-bottom:6px;
  }
  .tc-label { font-size:12.5px; color:#8A7A5C; line-height:1.55; }
  .tc-label-top { margin-bottom:12px; }

  .tc-contact-line {
    display:block; font-family:'Inter',sans-serif; font-size:13.5px; color:#1C130C; text-decoration:none;
    padding:3px 0; border-bottom:1px solid transparent; transition:color .25s ease, border-color .25s ease;
  }
  .tc-contact-line:hover { color:#A6821D; border-color:#A6821D; }

  @media (max-width:900px) {
    .spd-trustbar .wrap { grid-template-columns:1fr 1fr; }
  }
  @media (max-width:520px) {
    .spd-trustbar .wrap { grid-template-columns:1fr; }
  }

  /* ================= RESPONSIVE ================= */
  @media (max-width:1000px) {
    .store-grid { grid-template-columns:1fr 1fr; }
  }
  @media (max-width:900px) {
    .store-intro .wrap { flex-direction:column; align-items:flex-start; }
    .store-intro-note { text-align:left; }
    .store-intro-actions { align-items:flex-start; width:100%; }
    .store-filters { flex-direction:column; align-items:stretch; gap:18px; position:relative; }
    .store-search { width:100%; }
    .store-tabs {
      flex-wrap:nowrap; overflow-x:auto; gap:22px; padding-bottom:2px;
      -webkit-overflow-scrolling:touch; scrollbar-width:none; min-width:0; width:100%;
    }
    .store-tabs::-webkit-scrollbar { display:none; }
    .store-tab { white-space:nowrap; flex-shrink:0; }
    .store-filters::after {
      content:''; position:absolute; right:0; top:0; bottom:24px; width:28px; pointer-events:none;
      background:linear-gradient(90deg, transparent, #FFFFFF);
    }
  }
  @media (max-width:640px) {
    .store-grid { grid-template-columns:1fr 1fr; max-width:100%; margin:0; gap:16px 12px; }
    .store-hero-actions { width:100%; }
    .store-hero-actions .btn,
    .store-hero-actions .btn-line-light { flex:1; justify-content:center; text-align:center; white-space:nowrap; }
    .cart-fab .fab-label { display:none; }

    /* tighten card content so two columns stay comfortable on narrow screens */
    .product-card .pc-media-wrap { margin-bottom:10px; }
    .product-card .pc-name { font-size:14.5px; margin-bottom:3px; }
    .product-card .pc-desc { font-size:11.5px; margin-bottom:8px; -webkit-line-clamp:2; display:-webkit-box; -webkit-box-orient:vertical; overflow:hidden; }
    .product-card .pc-price { font-size:13.5px; }
    .product-card .pc-badge { font-size:9px; padding:5px 9px; top:10px; left:10px; }

    /* Desktop overlays the quick-add controls on top of the photo, revealed
       on hover — there's no hover on mobile, and no room to permanently cover
       most of a small product photo with buttons without it looking heavy-
       handed. Below 640px the controls come out of the image entirely and
       become normal, always-visible, full-width rows underneath it instead —
       the standard mobile commerce pattern. Desktop's look is untouched;
       .pc-media-wrap is what makes this possible without two separate
       markup structures (see the comment on it further up this file). */
    .pc-quick {
      position:static; opacity:1; transform:none; flex-direction:column; gap:6px;
      margin-top:8px;
    }
    .pc-quick .pc-qty { width:100%; justify-content:center; }
    .pc-quick .pc-qty button { width:34px; height:34px; font-size:14px; }
    .pc-quick .pc-qty span { width:28px; font-size:13px; }
    .pc-quick .pc-add { width:100%; font-size:12.5px; padding:9px 8px; }
  }
  @media (max-width:400px) {
    .store-grid { gap:14px 10px; }
  }
  @media (max-width:520px) {
    .store-hero { height:min(88vh, 560px); min-height:460px; }
    .store-hero-content { padding-bottom:104px; }
    .store-hero-dek { margin-bottom:26px; }
    .store-hero-actions { gap:12px; }
    .store-hero-actions .btn { padding:14px 20px; font-size:12.5px; }
    .store-hero-actions .btn-line-light { padding:14px 18px; font-size:12.5px; }
    .btn-icon { gap:8px; }

    .store-hero-controls { right:16px; bottom:20px; gap:10px; }
    .store-dot { width:18px; }
    .store-arrow { width:36px; height:36px; }
    .store-arrow svg { width:14px; height:14px; }
    .store-hero-count { left:16px; bottom:22px; }
    .store-hero-count .cur { font-size:18px; }
  }
  @media (max-width:360px) {
    .store-hero-count { display:none; }
    .store-hero-controls { left:16px; right:16px; justify-content:space-between; }
  }
  @media (max-height:560px) and (orientation:landscape) {
    .store-hero { height:100svh; min-height:380px; }
    .store-hero-content { padding-bottom:64px; }
    .store-hero-dek { display:none; }
  }

  @media (prefers-reduced-motion: reduce) {
    .store-slide, .store-slide.is-leaving, .store-slide .bg, .store-hero-eyebrow, .store-hero-title, .store-hero-dek, .store-hero-actions,
    .store-dot::before { transition-duration:.01ms !important; animation-duration:.01ms !important; }
  }
