/* FoxiWorld V300 — one stable storefront interaction and product layout layer. */
:root{
  --fw-product-border:#dfe8e3;
  --fw-product-shadow:0 8px 24px rgba(10,54,38,.055);
  --fw-product-radius:18px;
}

/* Hidden fixed interfaces never cover the shop. Visibility is controlled only by state classes. */
.fw-chat-panel:not(.open),
.fw-cart-drawer:not(.is-open),
.fw-cart-backdrop:not(.is-open),
.fw-mobile-backdrop:not(.is-open),
.checkout-auth-modal[hidden],
.order-modal[hidden]{
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}
.fw-chat-panel.open,
.fw-cart-drawer.is-open,
.fw-cart-backdrop.is-open,
.fw-mobile-backdrop.is-open{
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
}

/* Product surfaces: no transforms, no decorative hit areas, stable stacking. */
.v15-products,.v15-products__content,.v143-carousel-shell,
.v15-product-grid,.v15-card,.v12-products-grid,.v12-product-card,
.product-grid,.products-grid,.product-card{
  min-width:0;
}
.v15-card,.v12-product-card,.product-card,.premium-product-card{
  position:relative;
  isolation:isolate;
  transform:none!important;
  transition:border-color .16s ease,box-shadow .16s ease!important;
  border-color:var(--fw-product-border)!important;
  border-radius:var(--fw-product-radius)!important;
  box-shadow:var(--fw-product-shadow)!important;
  overflow:hidden;
}
.v15-card::before,.v15-card::after,.v15-card__media::before,.v15-card__media::after,
.v12-product-card::before,.v12-product-card::after,.v12-product-media::before,.v12-product-media::after,
.product-card::before,.product-card::after{
  pointer-events:none!important;
}
.v15-card:hover,.v12-product-card:hover,.product-card:hover{
  transform:none!important;
  box-shadow:0 11px 28px rgba(10,54,38,.08)!important;
}
.v15-card a,.v15-card button,.v12-product-card a,.v12-product-card button,
.product-card a,.product-card button,[data-add],[data-add-to-cart],.add-to-cart,.v15-add,.v12-add-cart{
  position:relative;
  z-index:2;
  pointer-events:auto!important;
  touch-action:manipulation;
}

/* Catalog: 3 columns on wide screens, 2 on medium, 1 on compact. */
.v12-products-grid:not(.is-list){
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:20px!important;
  align-items:stretch;
  overflow:visible!important;
}
.v12-product-card{display:flex!important;flex-direction:column!important;min-height:610px!important}
.v12-product-media{
  height:340px!important;
  min-height:340px!important;
  padding:18px!important;
  background:#fff!important;
  overflow:hidden!important;
  border-bottom:1px solid #edf2ef!important;
}
.v12-product-media>a{display:flex!important;width:100%!important;height:100%!important;align-items:center!important;justify-content:center!important;overflow:hidden!important}
.v12-product-media img{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:94%!important;
  max-height:94%!important;
  object-fit:contain!important;
  object-position:center!important;
  transform:none!important;
  scale:1!important;
  filter:none!important;
  image-rendering:auto!important;
}
.v12-product-body{display:flex!important;flex:1 1 auto!important;flex-direction:column!important;padding:17px!important}
.v12-product-actions{margin-top:auto!important;position:relative!important;z-index:3!important}

/* Home bestsellers: four equal cards on desktop. */
.v15-product-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:18px!important;
  overflow:visible!important;
}
.v15-card{display:flex!important;flex-direction:column!important;min-height:570px!important}
.v15-card__media{
  height:292px!important;
  min-height:292px!important;
  padding:16px!important;
  background:#fff!important;
  overflow:hidden!important;
}
.v15-card__media>a{display:flex!important;width:100%!important;height:100%!important;align-items:center!important;justify-content:center!important;overflow:hidden!important}
.v15-card__media img{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:94%!important;
  max-height:94%!important;
  object-fit:contain!important;
  object-position:center!important;
  transform:none!important;
  scale:1!important;
  filter:none!important;
  image-rendering:auto!important;
}
.v15-card__body{display:flex!important;flex:1 1 auto!important;flex-direction:column!important;padding:16px!important}
.v15-card__actions{margin-top:auto!important;position:relative!important;z-index:3!important}

/* Existing carousel controls: only actual buttons receive pointer events. */
.v143-carousel-controls{pointer-events:none!important}
.v143-carousel-arrow{pointer-events:auto!important;touch-action:manipulation!important}

/* Reduce expensive effects only in product areas. */
.v15-card,.v12-product-card,.product-card,
.v15-card img,.v12-product-card img,.product-card img{
  animation:none!important;
}

@media (max-width:1279px){
  .v12-products-grid:not(.is-list){grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .v15-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .v12-product-media{height:330px!important;min-height:330px!important}
  .v15-card__media{height:300px!important;min-height:300px!important}
  .v15-loyalty{display:none!important;pointer-events:none!important}
}

@media (max-width:760px){
  .v12-products-grid:not(.is-list){grid-template-columns:1fr!important;gap:16px!important}
  .v12-product-card{min-height:560px!important}
  .v12-product-media{height:310px!important;min-height:310px!important;padding:14px!important}

  /* Bestseller becomes a native horizontal scroller. No overflow hacks on parents. */
  .v143-carousel-shell--products{width:100%!important;max-width:100%!important;min-width:0!important;overflow:hidden!important}
  .v15-product-grid{
    display:flex!important;
    flex-wrap:nowrap!important;
    gap:14px!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    padding:2px 16px 14px!important;
    scroll-snap-type:x mandatory!important;
    scroll-behavior:smooth!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-x:contain!important;
    touch-action:auto!important;
    scrollbar-width:none!important;
  }
  .v15-product-grid::-webkit-scrollbar{display:none!important}
  .v15-product-grid>.v15-card{
    flex:0 0 min(84vw,340px)!important;
    width:min(84vw,340px)!important;
    min-width:min(84vw,340px)!important;
    scroll-snap-align:start!important;
    min-height:550px!important;
  }
  .v15-card__media{height:285px!important;min-height:285px!important;padding:14px!important}
  .v143-carousel-controls{display:flex!important;z-index:12!important}
}

@media (max-width:420px){
  .v15-product-grid>.v15-card{flex-basis:88vw!important;width:88vw!important;min-width:88vw!important}
  .v12-product-media{height:290px!important;min-height:290px!important}
}

@media (prefers-reduced-motion:reduce){
  .v15-card,.v12-product-card,.product-card,.v15-product-grid{scroll-behavior:auto!important;transition:none!important}
}

/* V301 — customer-facing text must remain selectable and copyable. */
html,body,
main,section,article,header,footer,nav,aside,
p,span,small,strong,b,em,i,h1,h2,h3,h4,h5,h6,
li,dt,dd,blockquote,figcaption,label,legend,td,th,
a,a *,.v15-card,.v15-card *,.v12-product-card,.v12-product-card *,
.product-card,.product-card *,.premium-product-card,.premium-product-card *,
.product-detail,.product-detail *,.legal-content,.legal-content *{
  -webkit-user-select:text!important;
  user-select:text!important;
}

/* Controls and purely draggable/visual elements keep normal interaction behavior. */
button,input,select,textarea,option,
[role="button"],[draggable="true"],
.v143-carousel-arrow,.gallery-drag-handle,
img,svg,canvas,video{
  -webkit-user-select:none!important;
  user-select:none!important;
}

::selection{background:rgba(20,125,82,.22);color:inherit}
::-moz-selection{background:rgba(20,125,82,.22);color:inherit}

/* V302 — stable favourite control in the top-right corner of every product image. */
.v15-card__media,
.v12-product-media,
.product-card__media,
.product-image,
.premium-product-card .product-media{
  position:relative!important;
}

.v15-card__media > .v15-heart,
.v12-product-media > .v12-favorite,
.product-card__media > [data-favorite],
.product-image > [data-favorite],
.premium-product-card .product-media > [data-favorite],
.v15-heart,
.v12-favorite{
  position:absolute!important;
  top:14px!important;
  right:14px!important;
  bottom:auto!important;
  left:auto!important;
  margin:0!important;
  transform:none!important;
  translate:none!important;
  width:38px!important;
  height:38px!important;
  min-width:38px!important;
  min-height:38px!important;
  padding:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border:1px solid #dce5e0!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.96)!important;
  color:#26352f!important;
  font-size:19px!important;
  line-height:1!important;
  box-shadow:0 5px 14px rgba(13,55,40,.08)!important;
  z-index:30!important;
  cursor:pointer!important;
  pointer-events:auto!important;
}

.v15-heart:hover,
.v12-favorite:hover,
[data-favorite]:hover{
  transform:none!important;
  border-color:#b9cec3!important;
  background:#fff!important;
}

.v15-heart.is-active,
.v12-favorite.is-active,
[data-favorite].is-active,
[data-wishlist].is-active{
  color:#e54848!important;
  border-color:#f0c4c1!important;
  background:#fff5f4!important;
}

/* Keep badge and heart on separate sides without collisions. */
.v15-badge,
.v12-product-badge{
  top:14px!important;
  left:14px!important;
  right:auto!important;
  z-index:20!important;
}

/* Slightly better use of the image area without zooming the source file. */
.v15-card__media img,
.v12-product-media img{
  max-width:96%!important;
  max-height:96%!important;
}

@media (max-width:760px){
  .v15-card__media > .v15-heart,
  .v12-product-media > .v12-favorite,
  .v15-heart,
  .v12-favorite{
    top:12px!important;
    right:12px!important;
    width:36px!important;
    height:36px!important;
    min-width:36px!important;
    min-height:36px!important;
    font-size:18px!important;
  }
  .v15-badge,.v12-product-badge{top:12px!important;left:12px!important}
}
