/* ============================================================================
   SOKODESK — Storefront CSS (scoped under #sokodesk-storefront)
   Spec PART 5 — storefront CSS isolated.
   ROOT FIX (Issue 1): mobile-first responsive + overflow guards + proper
   horizontal padding/margins so content never overlaps screen edges.
   ============================================================================ */

#sokodesk-storefront {
  --st-bg: var(--sd-surface);
  --st-text: var(--sd-text);
  --st-primary: var(--sd-primary);
  --st-accent: var(--sd-accent);
  font-family: var(--sd-font-family);

  /* ROOT FIX: prevent any horizontal overflow from child content.
     Long words / wide images can no longer push past the viewport. */
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  box-sizing: border-box;
}
#sokodesk-storefront * { box-sizing: border-box; }

/* ─── Cover — full-bleed, never overflows ──────────────────────────────── */
#sokodesk-storefront .st-cover {
	  position: relative;
	  height: 16rem;
	  background: linear-gradient(135deg, var(--sd-primary), var(--sd-secondary), var(--sd-primary-strong));
	  overflow: hidden;
	  width: 100%;
	}
	#sokodesk-storefront .st-cover img {
	  display: block;
	  width: 100%;
	  height: 100%;
	  object-fit: cover;
	  max-width: 100%;
	}
	#sokodesk-storefront .st-cover::after {
	  content: '';
	  position: absolute;
	  inset: 0;
	  background: linear-gradient(to top, rgba(0,0,0,0.4), transparent);
	  pointer-events: none;
	}
	/* Category watermark icon — low-opacity in the cover background */
	#sokodesk-storefront .st-cover-icon {
	  position: absolute;
	  right: 4%;
	  bottom: -18%;
	  font-size: 11rem;
	  line-height: 1;
	  color: #fff;
	  opacity: 0.18;
	  transform: rotate(-10deg);
	  pointer-events: none;
	  z-index: 2;
	}
	@media (max-width: 480px) {
	  #sokodesk-storefront .st-cover { height: 11rem; }
	  #sokodesk-storefront .st-cover-icon { font-size: 7rem; right: 2%; bottom: -12%; }
	}

/* ─── Shop header card — overlaps cover, has horizontal margin ─────────── */
/* ROOT FIX: the header sits inside .sd-container (which provides 16px
   horizontal padding on mobile). We add a small visible margin-inline on
   top so the card visually breathes on both sides and never touches the
   screen edge. */
#sokodesk-storefront .st-shop-header {
  background: var(--sd-surface);
  border: 1px solid var(--sd-border);
  border-radius: var(--sd-radius);
  padding: var(--sd-space-5);
  box-shadow: var(--sd-shadow-md);
  margin-top: -4rem;
  margin-inline: var(--sd-space-2);
  position: relative;
  z-index: 1;
  overflow-wrap: anywhere;
  word-break: break-word;
}
@media (min-width: 768px) {
  #sokodesk-storefront .st-shop-header {
    padding: var(--sd-space-6);
    margin-inline: var(--sd-space-3);
  }
}

#sokodesk-storefront .st-shop-title {
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--sd-heading);
  margin: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
}
@media (min-width: 768px) {
  #sokodesk-storefront .st-shop-title { font-size: 1.5rem; }
}

/* Long headlines / descriptions never break out of the card */
#sokodesk-storefront .st-shop-header p,
#sokodesk-storefront .st-shop-header span,
#sokodesk-storefront .st-shop-header div {
  overflow-wrap: anywhere;
}

/* ─── Product grid — mobile-first (2 cols → 3 → 4) ─────────────────────── */
/* ROOT FIX: was 4 cols on all screens with only a max-width 640px fallback.
   Now mobile-first: 2 cols on small screens, scales up at 640px and 992px,
   with a comfortable gap so cards never touch each other or the edge. */
#sokodesk-storefront .st-product-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--sd-space-3);
}
@media (min-width: 640px) {
  #sokodesk-storefront .st-product-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--sd-space-4);
  }
}
@media (min-width: 992px) {
  #sokodesk-storefront .st-product-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: var(--sd-space-4);
  }
}

#sokodesk-storefront .st-product-card {
  background: var(--sd-surface);
  border: 1px solid var(--sd-border);
  border-radius: var(--sd-radius);
  overflow: hidden;
  transition: all var(--sd-transition);
  text-decoration: none;
  color: inherit;
  display: block;
  /* ROOT FIX: min-width:0 prevents grid blowout on narrow viewports
     (a child with long content can otherwise force the column wider
     than 1fr, causing horizontal scroll). */
  min-width: 0;
}
#sokodesk-storefront .st-product-card:hover {
  /* ROOT FIX (theme audit): was a hardcoded teal — used rgba() of the themed
     --sd-primary so the hover border follows the category palette. */
  border-color: rgba(21, 94, 82, 0.4);
  border-color: color-mix(in srgb, var(--sd-primary) 35%, transparent);
  box-shadow: var(--sd-shadow-md);
  transform: translateY(-2px);
  text-decoration: none;
}
#sokodesk-storefront .st-product-image {
  aspect-ratio: 1;
  background: var(--sd-surface-soft);
  position: relative;
  overflow: hidden;
}
#sokodesk-storefront .st-product-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--sd-transition);
  display: block;
}
#sokodesk-storefront .st-product-card:hover .st-product-image img {
  transform: scale(1.05);
}
#sokodesk-storefront .st-product-body {
  padding: var(--sd-space-3);
  min-width: 0;
}
#sokodesk-storefront .st-product-name {
  font-size: var(--sd-text-sm);
  font-weight: 600;
  color: var(--sd-heading);
  margin-bottom: var(--sd-space-2);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  overflow-wrap: anywhere;
}
#sokodesk-storefront .st-product-price {
  font-size: var(--sd-text-sm);
  font-weight: 700;
  color: var(--sd-primary);
  overflow-wrap: anywhere;
}

/* ─── WhatsApp order button (used on product detail page) ──────────────── */
#sokodesk-storefront .st-wa-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--sd-space-2);
  background: var(--sd-success);
  color: #fff;
  padding: var(--sd-space-3) var(--sd-space-5);
  border-radius: var(--sd-radius-sm);
  text-decoration: none;
  font-weight: 600;
  min-height: 48px;
  width: 100%;
  text-align: center;
  overflow-wrap: anywhere;
}
#sokodesk-storefront .st-wa-button:hover {
  background: var(--sd-success);
  filter: brightness(0.95);
  color: #fff;
  text-decoration: none;
}
