:root {
  --icm-pink: #FF3D7F;
  --icm-pink-dark: #D9266A;
  --icm-pink-soft: #FFE7F0;
  --icm-green: #39FF14;
  --icm-green-soft: #ECFFE7;
  --icm-gold: #D4AF37;
  --icm-ink: #050505;
  --icm-muted: #626262;
  --icm-line: #E7E1E4;
  --icm-soft: #FAF8F7;
  --icm-serif: 'Cormorant Garamond', Georgia, serif;
  --icm-sans: 'DM Sans', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  --shop-page-max: 1480px;
  --shop-side-left: 156px;
  --shop-side-right: 164px;
  --shop-gap: 7px;
  --shop-radius: 7px;
  --shop-hero-title: clamp(24px, 2.7vw, 40px);
  --shop-card-title: 14px;
  --shop-card-copy: 8.8px;
  --shop-card-media-min: 78px;
}

.icm-shop,
.icm-shop * {
  box-sizing: border-box;
}

.icm-shop {
  max-width: var(--shop-page-max);
  margin: 0 auto;
  padding: 7px 12px 30px;
  background: #fff;
  color: var(--icm-ink);
  font-family: var(--icm-sans);
}

.icm-shop-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--shop-gap);
  align-items: center;
  min-height: 58px;
  border: 1px solid #000;
  border-radius: var(--shop-radius);
  padding: 8px 12px;
  background: linear-gradient(135deg, #fff 0%, #fff 58%, #fff0f5 100%);
}

.icm-shop-hero-copy small,
.icm-filter-card small,
.icm-decision-card small {
  display: block;
  margin-bottom: 4px;
  color: var(--icm-pink-dark);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .16em;
  line-height: 1;
  text-transform: uppercase;
}

.icm-shop-hero h1 {
  margin: 0;
  font-family: var(--icm-serif);
  font-size: var(--shop-hero-title);
  font-style: italic;
  font-weight: 700;
  letter-spacing: 0;
  line-height: .88;
}

.icm-shop-hero p {
  max-width: 760px;
  margin: 4px 0 0;
  color: #242424;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.35;
}

.icm-shop-hero-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
}

.icm-shop-hero-actions a,
.icm-filter-btn,
.icm-decision-card a,
.icm-product-foot button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  border: 1.5px solid #000;
  border-radius: 999px;
  padding: 0 11px;
  background: #fff;
  color: #000;
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}

.icm-shop-hero-actions a:first-child,
.icm-product-foot button,
.icm-filter-btn {
  border-color: var(--icm-pink);
  background: var(--icm-pink);
  color: #fff;
}

.icm-shop-hero-actions a:nth-child(2) {
  background: var(--icm-green);
}

.icm-shop-proofbar {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin: 7px 0;
  overflow: hidden;
  border: 1px solid #000;
  border-radius: var(--shop-radius);
  background: #000;
}

.icm-shop-proofbar span {
  min-height: 30px;
  display: flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
  background: #fff;
  padding: 6px 8px;
  color: #191919;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.2;
}

.icm-shop-proofbar b {
  color: #000;
  font-weight: 950;
  white-space: nowrap;
}

.icm-shop-layout {
  display: grid;
  grid-template-columns: var(--shop-side-left) minmax(0, 1fr) var(--shop-side-right);
  gap: var(--shop-gap);
  align-items: start;
}

.icm-shop-left,
.icm-shop-right {
  position: sticky;
  top: 128px;
  display: grid;
  gap: var(--shop-gap);
}

.icm-filter-card,
.icm-decision-card {
  overflow: hidden;
  border: 1.5px solid var(--icm-line);
  border-radius: var(--shop-radius);
  background: #fff;
  padding: 8px;
}

.icm-filter-card-black,
.icm-decision-launch {
  border-color: #000;
  background: #000;
  color: #fff;
}

.icm-filter-card-black small,
.icm-decision-launch small {
  color: var(--icm-green);
}

.icm-filter-card-black strong,
.icm-decision-launch strong,
.icm-decision-launch span {
  color: #fff;
}

.icm-filter-card strong,
.icm-decision-card strong {
  display: block;
  color: #000;
  font-family: var(--icm-serif);
  font-size: 18px;
  font-style: italic;
  font-weight: 800;
  line-height: .95;
}

.icm-filter-card span,
.icm-decision-card span {
  display: block;
  margin-top: 5px;
  color: var(--icm-muted);
  font-size: 9.5px;
  font-weight: 750;
  line-height: 1.35;
}

.icm-decision-pink {
  border-color: var(--icm-pink);
  background: var(--icm-pink-soft);
}

.icm-decision-card a {
  margin-top: 7px;
  border-color: #000;
  background: #000;
  color: #fff;
}

.icm-shop-tabs {
  display: grid;
  gap: 5px;
}

.icm-shop-tabs button,
.icm-filter-chip {
  width: 100%;
  min-height: 30px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 5px;
  border: 1.5px solid var(--icm-line);
  border-radius: 999px;
  padding: 0 9px;
  background: #fff;
  color: #111;
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
}

.icm-shop-tabs button.on,
.icm-filter-chip:hover {
  border-color: #000;
  background: #000;
  color: #fff;
}

.icm-shop-tabs em {
  font-style: normal;
  opacity: .74;
}

.icm-shop-pin,
.icm-shop-search,
.icm-shop-sort {
  width: 100%;
  min-height: 30px;
  border: 1.5px solid var(--icm-line);
  border-radius: 999px;
  background: #fff;
  color: #000;
  font: 800 10px/1 var(--icm-sans);
  outline: none;
}

.icm-shop-pin,
.icm-shop-search {
  padding: 0 10px;
}

.icm-shop-sort {
  padding: 0 26px 0 10px;
}

.icm-shop-pin {
  margin-bottom: 6px;
}

.icm-shop-pin:focus,
.icm-shop-search:focus,
.icm-shop-sort:focus {
  border-color: var(--icm-pink);
  box-shadow: 0 0 0 3px rgba(255,61,127,.11);
}

.icm-pin-response {
  margin-top: 7px;
  border-left: 4px solid var(--icm-green);
  border-radius: 4px;
  background: var(--icm-green-soft);
  padding: 6px 8px;
}

.icm-pin-response strong,
.icm-pin-response span {
  display: block;
  font-size: 10px;
  line-height: 1.3;
}

.icm-pin-response span {
  color: var(--icm-muted);
}

.icm-shop-centre {
  min-width: 0;
}

.icm-shop-command {
  position: sticky;
  top: 128px;
  z-index: 8;
  display: grid;
  grid-template-columns: minmax(132px, .26fr) minmax(0, 1fr);
  gap: var(--shop-gap);
  align-items: center;
  border: 1.5px solid var(--icm-line);
  border-radius: var(--shop-radius);
  padding: 7px;
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(12px);
}

.icm-shop-status strong,
.icm-shop-status span {
  display: block;
}

.icm-shop-status strong {
  font-family: var(--icm-serif);
  font-size: 19px;
  font-style: italic;
  line-height: .95;
}

.icm-shop-status span {
  margin-top: 3px;
  color: var(--icm-muted);
  font-size: 9.5px;
  font-weight: 800;
  line-height: 1.2;
}

.icm-shop-tools {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 138px;
  gap: 6px;
}

.icm-shop-mini-proof {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  padding: 6px 0 7px;
}

.icm-shop-mini-proof span {
  border: 1px solid #000;
  border-radius: 999px;
  padding: 5px 7px;
  background: #fff;
  color: #000;
  font-size: 8.5px;
  font-weight: 900;
  letter-spacing: .04em;
  line-height: 1;
  text-transform: uppercase;
}

.icm-product-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--shop-gap);
}

.icm-product-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  border: 1.5px solid var(--icm-line);
  border-radius: var(--shop-radius);
  background: #fff;
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.icm-product-card:hover {
  border-color: #000;
  box-shadow: 0 10px 22px rgba(0,0,0,.1);
  transform: translateY(-2px);
}

.icm-product-card:hover .icm-action-line {
  color: var(--icm-pink-dark) !important;
}

.icm-product-card.coin-pop::after {
  content: "+5 Magic Coins";
  position: absolute;
  top: 10px;
  right: 12px;
  z-index: 5;
  border-radius: 999px;
  padding: 6px 9px;
  background: var(--icm-gold);
  color: #000;
  font-size: 10px;
  font-weight: 950;
  animation: icmCoin .75s ease both;
}

@keyframes icmCoin {
  0% { opacity: 0; transform: translateY(8px) scale(.92); }
  25% { opacity: 1; }
  100% { opacity: 0; transform: translateY(-22px) scale(1); }
}

.icm-product-media {
  position: relative;
  aspect-ratio: 4 / 3;
  min-height: var(--shop-card-media-min);
  overflow: hidden;
  background: var(--icm-soft);
}

.icm-product-media img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.icm-product-fallback {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  gap: 3px;
  padding: 11px;
  background: linear-gradient(135deg, #fff4f8, #f0ffe8);
  text-align: center;
}

.icm-product-fallback b,
.icm-product-fallback span {
  display: block;
}

.icm-product-fallback b {
  color: var(--icm-pink-dark);
  font-family: var(--icm-serif);
  font-size: var(--shop-card-title);
  font-style: italic;
  font-weight: 800;
  line-height: .95;
}

.icm-product-fallback span {
  color: #000;
  font-size: 8.5px;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.icm-heart {
  position: absolute;
  z-index: 4;
  top: 6px;
  right: 6px;
  width: 26px;
  height: 26px;
  border: 1px solid rgba(0,0,0,.18);
  border-radius: 999px;
  background: rgba(255,255,255,.94);
  color: #000;
  font: 900 15px/1 var(--icm-sans);
  cursor: pointer;
}

.icm-heart.saved {
  border-color: var(--icm-pink);
  background: var(--icm-pink);
  color: #fff;
}

.icm-prebook-ribbon,
.icm-product-ribbon {
  position: absolute;
  z-index: 3;
  left: 8px;
  border-radius: 999px;
  padding: 4px 6px;
  font-size: 8px;
  font-weight: 950;
  line-height: 1;
}

.icm-prebook-ribbon {
  top: 6px;
  background: var(--icm-green);
  color: #000;
}

.icm-product-ribbon {
  bottom: 6px;
  background: #000;
  color: #fff;
}

.icm-product-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 4px;
  padding: 6px 7px 7px;
}

.icm-product-type {
  display: flex;
  justify-content: space-between;
  gap: 5px;
  color: var(--icm-muted);
  font-size: 8px;
  font-weight: 950;
  letter-spacing: .08em;
  line-height: 1.15;
  text-transform: uppercase;
}

.icm-product-type span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.icm-product-card h2 {
  display: -webkit-box;
  min-height: 25px;
  margin: 0;
  overflow: hidden;
  color: #000;
  font-family: var(--icm-serif);
  font-size: var(--shop-card-title);
  font-style: italic;
  font-weight: 800;
  line-height: .95;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.icm-product-card p {
  margin: 0;
  color: var(--icm-muted);
  font-size: var(--shop-card-copy);
  line-height: 1.22;
}

.icm-action-line {
  color: #111 !important;
  font-weight: 900;
}

.icm-health-line {
  min-height: 20px;
}

.icm-health-line b {
  color: #000;
}

.icm-trust-line {
  border-left: 3px solid var(--icm-green);
  padding-left: 6px;
  color: #222 !important;
  font-size: 9px !important;
  font-weight: 850;
}

.icm-product-tags,
.icm-product-proof,
.icm-product-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
}

.icm-product-tags,
.icm-product-actions {
  display: none;
}

.icm-product-tags span,
.icm-product-proof span {
  border-radius: 999px;
  padding: 3px 5px;
  font-size: 8px;
  font-weight: 850;
  line-height: 1;
}

.icm-product-tags span {
  border: 1px solid #b9f4a5;
  background: var(--icm-green-soft);
  color: #124800;
}

.icm-product-proof span {
  border: 1px solid var(--icm-line);
  background: var(--icm-soft);
  color: #252525;
}

.icm-product-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 5px;
  margin-top: auto;
  padding-top: 5px;
}

.icm-product-foot strong,
.icm-product-foot small {
  display: block;
}

.icm-product-foot strong {
  font-family: var(--icm-serif);
  font-size: 16px;
  font-style: italic;
  line-height: 1;
}

.icm-product-foot small {
  margin-top: 2px;
  color: var(--icm-muted);
  font-size: 8.5px;
  font-weight: 800;
}

.icm-product-foot button {
  min-height: 34px;
  padding: 0 8px;
  font-size: 8.8px;
}

.icm-product-actions a {
  color: var(--icm-pink-dark);
  font-size: 9px;
  font-weight: 950;
  text-decoration: none;
}

.icm-shop-empty {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 1.5px solid #000;
  border-radius: 8px;
  padding: 14px;
  background: #fff;
}

.icm-shop-empty strong {
  font-family: var(--icm-serif);
  font-size: 25px;
  font-style: italic;
}

.icm-shop-empty span {
  color: var(--icm-muted);
  font-size: 13px;
  font-weight: 800;
}

@media (max-width: 1380px) {
  .icm-shop-layout {
    grid-template-columns: 150px minmax(0, 1fr) 158px;
  }

  .icm-product-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 1100px) {
  .icm-shop-hero,
  .icm-shop-command {
    grid-template-columns: 1fr;
  }

  .icm-shop-hero-actions {
    justify-content: flex-start;
  }

  .icm-shop-layout {
    grid-template-columns: 150px minmax(0, 1fr);
  }

  .icm-shop-right {
    position: static;
    grid-column: 1 / -1;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .icm-shop-proofbar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 820px) {
  .icm-shop {
    padding: 10px 12px 78px;
  }

  .icm-shop-layout,
  .icm-shop-proofbar,
  .icm-shop-tools,
  .icm-shop-right {
    grid-template-columns: 1fr;
  }

  .icm-shop-left,
  .icm-shop-command {
    position: static;
  }

  .icm-shop-left {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .icm-product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .icm-shop-hero {
    padding: 10px;
  }

  .icm-shop-hero h1 {
    font-size: 30px;
  }

  .icm-shop-left,
  .icm-product-grid {
    grid-template-columns: 1fr;
  }

  .icm-product-media {
    min-height: 120px;
  }
}
