/* =========================
   SHOP LAYOUT — FULL-HEIGHT LEFT SIDEBAR
   ========================= */
:root{
  --aside-w: 320px;           /* width of the fixed sidebar */
}

/* Base spacing */
.shop{
  padding-top: var(--chrome-h);     /* sit under your fixed chrome */
  padding-bottom: 48px;
}

/* Let the shop use full width (not the 1100px container limit) */
.shop .container{
  max-width: none;
  padding: 0 24px;
}

/* Header row aligns with the main grid (to the right of the sidebar) */
.shop-head{
  display:flex; align-items:center; gap:18px; justify-content:space-between;
  margin: 8px 0 12px;
  margin-left: calc(var(--aside-w) + 24px);   /* shift right to clear the fixed aside */
}
.shop-title{ margin:0; font-size:clamp(24px, 4vw, 36px); line-height:1.1 }
.shop-controls{ display:flex; flex-wrap:wrap; gap:10px; align-items:center }

.shop-search input{
  width:min(48vw, 320px); height:40px; border:1px solid var(--line);
  border-radius:10px; padding:0 12px; outline:none;
}
.shop-search input:focus{ box-shadow:0 0 0 4px rgba(37,99,235,.12) }

.sort-wrap{ display:flex; align-items:center; gap:8px }
.sort-wrap select{
  height:40px; border:1px solid var(--line); border-radius:10px; padding:0 10px; background:#fff;
}

/* Currency toggle */
.currency-toggle{
  display:flex; gap:6px; border:1px solid var(--line); border-radius:999px; padding:4px;
  background:#fff;
}
.cur-btn{
  appearance:none; border:0; background:transparent; padding:8px 10px; border-radius:999px; font-weight:700; cursor:pointer;
}
.cur-btn.is-active{ background:#111827; color:#fff; }

/* === Main layout (free-form; we’ll position aside as fixed) === */
.shop-layout{ position: relative; display: block; }

/* Fixed, full-height sidebar on the far left */
.shop-aside{
  position: fixed;
  top: var(--chrome-h);
  left: 0;
  bottom: 0;
  width: var(--aside-w);
  overflow: auto;
  background: #fff;
  border-right: 1px solid var(--line);
  padding: 16px;
  z-index: 5; /* above page bg, under header */
}

/* We don’t need an extra card frame around everything inside a fixed panel */
.aside-card{ border:0; border-radius:0; padding:0; background:transparent; box-shadow:none }
.aside-row{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:12px }
.checklist{ display:grid; gap:8px; margin-bottom:12px }
.checklist label{ display:flex; gap:8px; align-items:center; cursor:pointer }
.branches{ margin-top:6px }
.branches__title{ font-weight:800; margin-bottom:6px }
.hidden{ display:none !important; }

/* Price filter */
.price-wrap{ margin-top:8px }
.price-head{ display:flex; align-items:center; justify-content:space-between }
.price-inputs{ display:flex; gap:10px; margin:10px 0 }
.price-inputs input{
  width:100%; height:36px; border:1px solid var(--line); border-radius:10px; padding:0 10px;
}
#priceRange{ width:100%; }

/* Main results area starts to the right of the sidebar */
.shop-main{
  margin-left: calc(var(--aside-w) + 24px);  /* sidebar width + container padding */
  padding-top: 12px;
}

.result-meta{ margin: 8px 0 10px; }

/* Bigger product cards: 3 cols default, 4 on very wide screens */
.shop-main .grid{ --cols: 3; gap: 24px }
@media (min-width: 1600px){ .shop-main .grid{ --cols: 4; } }
@media (max-width: 1100px){ .shop-main .grid{ --cols: 3; } }
@media (max-width: 860px){  .shop-main .grid{ --cols: 2; } }
@media (max-width: 560px){  .shop-main .grid{ --cols: 1; } }

/* Product cards (same look, just larger by grid sizing) */
.product{display:block; text-decoration:none; color:inherit}
.product__image{ position:relative; aspect-ratio:1/1; overflow:hidden; }
.product__image img{
  width:100%; height:100%; object-fit:cover; display:block; position:absolute; inset:0; transition:opacity .35s ease;
}
.product__image .img--primary{ opacity:1; z-index:1; }
.product__image .img--hover{   opacity:0; z-index:2; }
.product:hover .img--primary{ opacity:0; }
.product:hover .img--hover{   opacity:1; }

.product__title{ margin:10px 0 6px; font-weight:500; color:#000 }
.product__price{ font-weight:800; color:#000 }

/* Overlay add-to-cart pill */
.add-to-cart{
  position:absolute; right:12px; bottom:12px; padding:8px 12px; border-radius:999px; border:0;
  background:#111827; color:#fff; font-weight:700; letter-spacing:.2px; line-height:1; cursor:pointer;
  z-index:5; transform: translateX(140%); opacity:0;
  transition: transform .28s cubic-bezier(.22,.61,.36,1), opacity .28s ease;
}
.product:hover .add-to-cart, .product:focus-within .add-to-cart{ transform:translateX(0); opacity:1; }
@media (hover:none){ .add-to-cart{ transform:none; opacity:1 } }

/* Footer show more */
.section__footer{ display:flex; justify-content:center; margin-top:16px }
.btn-showmore{
  appearance:none; border:1.5px solid #000; background:#fff; color:#000; border-radius:999px; padding:10px 18px;
  font-weight:700; letter-spacing:.2px; cursor:pointer; transition:.16s ease;
}
.btn-showmore:hover{ transform: translateY(-1px) }

/* ========= Mobile behavior: stack filters above grid ========= */
@media (max-width: 960px){
  .shop-head{ margin-left: 0; }        /* don’t offset header on mobile */
  .shop-aside{
    position: static;
    width: auto;
    height: auto;
    border-right: 0;
    margin-bottom: 12px;
  }
  .shop-main{ margin-left: 0; }
}









/* ===== Overlay add-to-cart pill (unified with Latest Drops) ===== */
.add-to-cart{
  position: absolute;
  right: 12px;
  bottom: 12px;
  z-index: 5;

  /* Shape & base look */
  background: #111827;
  color: #fff;
  border: 0;
  border-radius: 999px;

  /* Desktop/tablet default: pill with label (slides in on hover) */
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  font-weight: 700;
  letter-spacing: .2px;
  line-height: 1;
  cursor: pointer;

  transform: translateX(140%);
  opacity: 0;
  transition:
    transform .28s cubic-bezier(.22,.61,.36,1),
    opacity .28s ease;
}

/* Show the pill when hovering/focusing the product card (desktop) */
.product:hover .add-to-cart,
.product:focus-within .add-to-cart{
  transform: translateX(0);
  opacity: 1;
}

/* Inner content matches Latest Drops: text label + SVG plus */
.add-to-cart .add-label{ display: inline-block; }
.add-to-cart .add-plus{ display: none; }
.add-to-cart .add-plus svg{
  width: 14px; height: 14px;
  stroke: currentColor; fill: none;
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
}

/* Touch devices: keep button always visible; show '+' only */
@media (hover: none){
  .add-to-cart{
    transform: none;
    opacity: 1;
    /* icon pill, center the plus */
    display: grid;
    place-items: center;
    min-width: 40px;
    min-height: 40px;
    padding: 0;
  }
  .add-to-cart .add-label{ display: none; }
  .add-to-cart .add-plus{ display: block; }
}

/* If you previously used ::before to draw the plus, ensure it's off */
.add-to-cart::before{ content: none !important; }
