/* =====================================================================
   SKS WISHLIST PAGE
   Cards on this page use the shared .sks-prod-card structure (see
   snippet-sks-product-card.css) so they look identical to collection,
   bestsellers, and search-result cards. This file only ships the
   page-frame styling (heading, count, grid track, empty state) plus
   the fade-out animation used when a card gets un-saved.
   ===================================================================== */

.sks-wl-section {
  --sks-ivory:   #F5F0E8;
  --sks-white:   #FFFFFF;
  --sks-amber:   #B8520A;
  --sks-amber-l: #D4681A;
  --sks-amber-p: #FEF3EC;
  --sks-onyx:    #1A1A1A;
  --sks-body:    #4A4440;
  --sks-muted:   #9A9088;
  --sks-rule:    rgba(74,68,64,.14);
  --sks-rule2:   rgba(74,68,64,.22);
  --sks-r:       8px;

  background: var(--sks-white);
  padding: 80px 48px;
  box-sizing: border-box;
  font-family: 'Jost', 'Helvetica Neue', sans-serif;
  font-weight: 300;
  -webkit-font-smoothing: antialiased;
  color: var(--sks-body);
  min-height: 60vh;
}

.sks-wl-section *,
.sks-wl-section *::before,
.sks-wl-section *::after { box-sizing: inherit; }

.sks-wl-inner {
  max-width: 1400px;
  margin: 0 auto;
}

/* ── HEADER ─────────────────────────────────────────────────────────── */
.sks-wl-header {
  margin-bottom: 40px;
  display: flex;
  align-items: baseline;
  gap: 16px;
  flex-wrap: wrap;
  border-bottom: 1px solid var(--sks-rule);
  padding-bottom: 24px;
}

.sks-wl-heading {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 36px;
  font-weight: 600;
  color: var(--sks-onyx);
  margin: 0;
  line-height: 1.1;
  letter-spacing: -.01em;
}

.sks-wl-count {
  font-size: 13px;
  color: var(--sks-muted);
  margin: 0;
}

/* ── GRID ───────────────────────────────────────────────────────────── */
/* Matches the collection-page layout: 4-up on desktop, 3-up on tablet,
   2-up on mobile. Uses the shared .sks-prod-card as its cell. */
.sks-wl-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

/* Fade-out animation when the buyer un-saves a card via its heart. */
.sks-wl-card--removing {
  opacity: 0;
  transform: scale(.96);
  transition: opacity .28s ease, transform .28s ease;
  pointer-events: none;
}

/* ── EMPTY STATE ─────────────────────────────────────────────────────── */
.sks-wl-empty {
  text-align: center;
  padding: 80px 20px;
  color: var(--sks-muted);
}
.sks-wl-empty svg {
  color: rgba(74,68,64,.2);
  margin-bottom: 20px;
}
.sks-wl-empty-msg {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 22px;
  font-weight: 600;
  color: var(--sks-onyx);
  margin: 0 0 8px;
}
.sks-wl-empty-sub {
  font-size: 14px;
  color: var(--sks-muted);
  margin: 0 0 28px;
}
.sks-wl-shop-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--sks-amber);
  color: #fff;
  padding: 13px 28px;
  border-radius: var(--sks-r);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background .2s, transform .2s;
}
.sks-wl-shop-btn:hover {
  background: var(--sks-amber-l);
  color: #fff;
  transform: translateY(-1px);
}
.sks-wl-shop-btn:focus-visible {
  outline: 2px solid var(--sks-amber);
  outline-offset: 2px;
}

/* ── RESPONSIVE ─────────────────────────────────────────────────────── */
@media (max-width: 1100px) {
  .sks-wl-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 960px) {
  .sks-wl-section { padding: 60px 32px; }
  .sks-wl-grid    { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .sks-wl-heading { font-size: 30px; }
}
@media (max-width: 480px) {
  .sks-wl-section { padding: 48px 16px; }
  .sks-wl-grid    { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .sks-wl-heading { font-size: 26px; }
}

/* ── REDUCED MOTION ──────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .sks-wl-card--removing { transition-duration: .01ms !important; }
}

/* Card images: whole image inside the 2/3 frame (as the collection grid's card_image_fit = contain),
   not cropped — owner request 2026-09-13. */
.sks-wl-section .sks-prod-card__img-wrap img,
.sks-wl-section .sks-prod-card__img-wrap svg { object-fit: contain; }
