/* =========================================================
   SHOP GRID — FINAL EDITORIAL (4 / 3 / 2 + uniform cards)
========================================================= */

.woocommerce ul.products{
  display:grid!important;
  grid-template-columns:repeat(4,1fr);
  gap:56px 40px;
  grid-auto-rows:1fr;
  margin-top:32px;
  align-items:stretch;
}

/* tablet */
@media(max-width:1024px){
  .woocommerce ul.products{
    grid-template-columns:repeat(3,1fr);
    gap:48px 28px;
  }
}

/* mobile */
@media(max-width:640px){
  .woocommerce ul.products{
    grid-template-columns:repeat(2,1fr);
    gap:36px 18px;
  }
}

/* kill Woo floats */
.woocommerce ul.products li.product{
  float:none!important;
  width:auto!important;
  margin:0!important;
  height:100%;
}

/* card column */
.p-card{
  height:100%;
  display:flex;
  flex-direction:column;
}

/* media */
.p-card__mediaInner{
  position:relative;
  width:100%;
  aspect-ratio:4/5!important;
  overflow:hidden;
}

.p-card__mediaInner img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}

/* meta */
.p-card__meta{
  margin-top:14px;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
}

.p-card__title{
  max-width:70%;
  line-height:1.3;
}

.p-card__price{
  white-space:nowrap;
}

/* page margins */
.p-shop{
  padding-left:64px;
  padding-right:64px;
}

@media(max-width:1024px){
  .p-shop{
    padding-left:32px;
    padding-right:32px;
  }
}

@media(max-width:640px){
  .p-shop{
    padding-left:18px;
    padding-right:18px;
  }
}

/* =========================================================
   TOOLBAR UX — filters left + chips like mock (single source)
========================================================= */

.p-shop-toolbar{
  justify-content:flex-start!important;
  gap:24px;
}

.p-filter-btn{
  flex:0 0 auto;
}

.p-shop-chips{
  display:flex;
  gap:10px;
  overflow-x:auto;
  flex-wrap:nowrap;
  scrollbar-width:none;
  padding-right:24px;
}

.p-shop-chips::-webkit-scrollbar{
  display:none;
}

@media(max-width:900px){
  .p-shop-chips{
    position:relative;
  }

  .p-shop-chips:after{
    content:'›';
    position:absolute;
    right:6px;
    top:50%;
    transform:translateY(-50%);
    opacity:.4;
    pointer-events:none;
  }
}

/* =========================================================
   VARIANTS SQUARE (kept)
========================================================= */

.p-card__variants{
  position:absolute;
  z-index:3;
  bottom:12px;
  left:54px; /* offset from bag */
  width:58px;
  min-height:32px;
  border-radius:8px;
  background:rgba(255,255,255,.55);
  backdrop-filter:blur(6px);
  padding:6px;
  display:flex;
  flex-direction:column;
  gap:6px;
}

.p-card__variantsRow{
  display:flex;
  gap:4px;
  flex-wrap:wrap;
}

.p-card__dot{
  width:10px;
  height:10px;
  border-radius:2px;
  background:var(--swatch,transparent);
}

.p-card__size{
  font-size:10px;
  font-style:italic;
  padding:2px 4px;
  border-radius:4px;
  border:1px solid rgba(0,0,0,.12);
  background:rgba(255,255,255,.35);
}

.p-card__wish.is-active{
  outline:1px solid rgba(0,0,0,.25);
}

/* =========================================================
   FILTER DRAWER (kept)
========================================================= */

.p-filters{
  position:fixed;
  inset:0;
  z-index:9999;
  pointer-events:none;
}

.p-filters[aria-hidden="false"]{pointer-events:auto;}

.p-filters__overlay{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.35);
  opacity:0;
  transition:.2s;
}

.p-filters[aria-hidden="false"] .p-filters__overlay{opacity:1;}

.p-filters__panel{
  position:absolute;
  top:0;
  left:0;
  height:100%;
  width:min(420px,92vw);
  background:#f3f0ec;
  transform:translateX(-102%);
  transition:.24s;
  display:flex;
  flex-direction:column;
}

.p-filters[aria-hidden="false"] .p-filters__panel{transform:none;}

.p-filters__header{
  display:flex;
  justify-content:space-between;
  padding:18px;
}

.p-filters__body{
  padding:16px 18px;
  overflow:auto;
  display:flex;
  flex-direction:column;
  gap:18px;
}

/* =========================================================
   QUICKVIEW SHEET (kept + dark theme)
========================================================= */

.p-qv{position:fixed;inset:0;z-index:99999;}

.p-qv__overlay{position:absolute;inset:0;background:rgba(0,0,0,.45);}

.p-qv__panel{
  position:absolute;
  right:0;
  top:0;
  height:100%;
  width:min(520px,100vw);
  background:#f3f0ec;
  transform:translateX(102%);
  transition:.28s cubic-bezier(.4,0,.2,1);
}

[data-theme="dark"] .p-qv__panel{background:#0b0b0b;color:#fff;}

.p-qv.is-open .p-qv__panel{transform:none;}

/* =========================================================
   PRODUCT CARD OVERLAYS — heart / bag / variants (mock exact)
========================================================= */

/* media wrapper as positioning context */
.p-card__mediaWrapper{
  position:relative;
}

/* HEART — top right */
.p-card__wish{
  position:absolute;
  top:12px;
  right:12px;
  z-index:5;
  width:34px;
  height:34px;
  border-radius:999px;
  background:rgba(255,255,255,.55);
  backdrop-filter:blur(4px);
  display:flex;
  align-items:center;
  justify-content:center;
}

.p-card__wish img{
  width:14px;
  height:14px;
}

/* active wishlist subtle ring */
.p-card__wish.is-active{
  outline:1px solid rgba(0,0,0,.25);
}

/* BAG — bottom left */
.p-card__quickadd{
  position:absolute;
  bottom:12px;
  left:12px;
  z-index:5;
  width:34px;
  height:34px;
  border-radius:999px;
  background:rgba(255,255,255,.55);
  backdrop-filter:blur(4px);
  display:flex;
  align-items:center;
  justify-content:center;
}

.p-card__quickadd img{
  width:14px;
  height:14px;
}

/* =========================================================
   HEADER CART — SINGLE FINAL SOURCE (dark/light compatible)
   Fixes:
   - Same size as other header circles (40px)
   - Badge anchored to bag circle (not page)
   - Badge in antípoda (top-right)
   - Theme-aware badge colors
========================================================= */

.p-cart{
  width:40px;
  height:40px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  position:relative;
  text-decoration:none;
  color:inherit;

  background:transparent;
  border:1px solid rgba(255,255,255,0.18);
}

[data-theme="light"] .p-cart{
  border:1px solid rgba(0,0,0,0.18);
}

.p-cart__svg{
  width:18px;
  height:18px;
  display:block;
  opacity:.92;
}

/* Badge — anchored + antípoda */
.p-cart-badge{
  position:absolute;
  top:-6px;
  right:-6px;

  min-width:18px;
  height:18px;
  border-radius:999px;

  font-size:11px;
  line-height:18px;
  text-align:center;
  padding:0 5px;

  /* default: dark mode */
  background:#f3f0ec;
  color:#111;
  border:1px solid rgba(255,255,255,0.25);

  display:flex;
  align-items:center;
  justify-content:center;
}

/* Light mode: invert for contrast */
[data-theme="light"] .p-cart-badge{
  background:#111;
  color:#fff;
  border:1px solid rgba(0,0,0,0.25);
}

/* Hide when 0 */
.p-cart-badge[data-count="0"]{
  display:none;
}