/*
 * Silent Heroes — Shop components (front-page-shop.php)
 * Wg Lovable mockup: silentheroes.lovable.app
 */

/* ========== SHARED VARIABLES ========== */
.sh-shop {
  --shop-bg-dark: #0F1116;
  --shop-bg-bundle: #0F1116;
  --shop-cross-bg: #1a2a1a;
  --shop-olive: var(--sh-green);     /* military dark — badges brand (ZESTAW, BAZA, ZERO DAY) */
  --shop-green: var(--sh-success);   /* success — oszczędności, ceny subskrypcji */
  --shop-card-border: #E5E3DC;
  --shop-radius: 8px;
}

/* ========== HERO ========== */
.sh-shop-hero {
  position: relative;
  background-color: #050608;
  /* Fallback poster (gdy video się nie załaduje albo jeszcze ładuje) */
  background-image: url('../video/hero-forest-poster.jpg');
  background-size: cover;
  background-position: center;
  color: var(--sh-offwhite);
  min-height: 665px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 100px 24px;
  overflow: hidden;
}
/* Background video */
.sh-shop-hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
  pointer-events: none;
}
/* Dim overlay nad video */
.sh-shop-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(5,6,8,.30) 0%, rgba(5,6,8,.62) 100%);
  z-index: 1;
  pointer-events: none;
}
.sh-shop-hero-inner {
  position: relative; z-index: 2;
  max-width: 1080px;
  margin: 0 auto;
}
/* Reduced motion — pauza video */
@media (prefers-reduced-motion: reduce) {
  .sh-shop-hero-video { display: none; }
  .sh-shop-hero {
    background:
      linear-gradient(180deg, rgba(5,6,8,.5) 0%, rgba(5,6,8,.92) 100%),
      #1a1f2e center/cover no-repeat;
  }
}
.sh-shop-hero .sh-kicker {
  color: rgba(248,247,244,.85);
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  margin-bottom: 24px;
}
.sh-shop-hero h1 {
  font-family: 'Poppins', sans-serif;
  font-size: clamp(2rem, 4.4vw, 3.4rem);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin: 0 0 28px;
  color: var(--sh-offwhite);
  text-transform: none;
}
.sh-shop-hero h1 em {
  font-style: normal;
  color: var(--sh-red);
}
.sh-shop-hero p {
  font-size: 1.05rem;
  line-height: 1.6;
  color: rgba(248,247,244,.78);
  max-width: 640px;
  margin: 0 auto 36px;
}
.sh-shop-hero-actions {
  display: flex; gap: 14px; justify-content: center; flex-wrap: wrap;
}
/* Hero CTA — lekko większe niż domyślne sh-btn (mocniejszy CTA na hero) */
.sh-shop-hero .sh-btn {
  font-size: 13px; /* 1:1 z .sh-info-hero */
  font-weight: 400; /* user 2026-06-01: regular */
  padding: 12px 22px;
}
/* Ghost na ciemnym hero — biała ramka domyślnie, na hover ramka czerwona */
.sh-shop-hero .sh-btn-ghost,
.sh-shop-hero .sh-btn-ghost:visited {
  background: transparent;
  color: var(--sh-offwhite);
  border-color: rgba(255,255,255,0.7);
}
.sh-shop-hero .sh-btn-ghost:hover {
  background: transparent;
  color: var(--sh-offwhite);
  border-color: var(--sh-red);
}

/* ========== HERO SLIDER (opcjonalny — zastępuje wideo) ========== */
.sh-shop-hero.sh-hero-slider {
  padding: 0;
  display: block;
  min-height: 0; /* baner 1920×450 sam ustala wysokość przez aspect-ratio */
  background: #050608;
  background-image: none;
}
.sh-hero-slider-track {
  display: flex;
  width: 100%;
  aspect-ratio: 1920 / 450; /* box wysokości slidera (desktop 1920×450) — na torze, nie na <img>, bo Safari zawodnie liczy aspect-ratio na obrazie w flexie → przycięcie */
  transition: transform .6s cubic-bezier(.4, 0, .2, 1);
  will-change: transform;
}
/* Bez JS / reduced-motion: pokaż tylko pierwszy slajd, brak animacji */
@media (prefers-reduced-motion: reduce) {
  .sh-hero-slider-track { transition: none; }
}
.sh-hero-slide {
  flex: 0 0 100%;
  min-width: 100%;
  height: 100%; /* wypełnij wysokość toru (którą ustala aspect-ratio) */
  display: block;
  position: relative;
  line-height: 0; /* usuń szparę pod img */
  color: inherit;
  text-decoration: none;
}
.sh-hero-slide picture { display: block; height: 100%; }
.sh-hero-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
/* Strzałki */
.sh-hero-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 50%;
  background: rgba(5, 6, 8, .45);
  color: var(--sh-offwhite);
  cursor: pointer;
  transition: background .2s ease;
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}
.sh-hero-arrow:hover { background: rgba(5, 6, 8, .75); }
.sh-hero-arrow svg { width: 22px; height: 22px; }
.sh-hero-prev { left: 18px; }
.sh-hero-next { right: 18px; }
/* Kropki */
.sh-hero-dots {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 18px;
  z-index: 3;
  display: flex;
  gap: 9px;
  justify-content: center;
}
.sh-hero-dot {
  width: 10px;
  height: 10px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: rgba(248, 247, 244, .45);
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}
.sh-hero-dot:hover { background: rgba(248, 247, 244, .75); }
.sh-hero-dot.is-active {
  background: var(--sh-red);
  transform: scale(1.15);
}

/* ========== USP BAR (1:1 wg Lovable DevTools) ========== */
.sh-shop-usp {
  background: #fff;
  color: var(--sh-black);
  padding: 0;
  border-top: 2px solid var(--sh-red);
  border-bottom: 1px solid #E0DDD8;
}
.sh-shop-usp-grid {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 0;
}
.sh-shop-usp-item {
  display: flex; align-items: center;
  gap: 14px;
  padding: 24px 20px;
  font-family: 'Poppins', sans-serif;
  border-right: 1px solid #E0DDD8;
  background: transparent;
  transition: background-color .2s;
}
.sh-shop-usp-item:last-child { border-right: 0; }
.sh-shop-usp-item:hover { background: rgba(204,27,27,0.02); }
.sh-shop-usp-icon {
  width: 44px; height: 44px;
  background: rgb(248, 247, 244);
  color: var(--sh-red);
  border-radius: 6px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.sh-shop-usp-icon svg {
  width: 22px;
  height: 22px;
  stroke: var(--sh-red);
  stroke-width: 1.8;
  fill: none;
}
/* Filled icons (gwiazdka) — override przez .sh-icon-filled klasę */
.sh-shop-usp-icon svg.sh-icon-filled {
  fill: var(--sh-red);
  stroke: none;
}
.sh-shop-usp-title {
  font-size: 13px; font-weight: 600; color: var(--sh-black);
  margin-bottom: 2px;
  line-height: 1.2;
}
.sh-shop-usp-desc {
  font-size: 0.78rem; color: var(--sh-gray-500);
  line-height: 1.4;
}
.sh-shop-usp-desc-accent { color: var(--sh-red); font-weight: 500; }
/* Desktop: auto-fit (4 w rzędzie). Tablet + mobile: równe 2x2, item w pionie. */
@media (max-width: 768px) {
  .sh-shop-usp-grid { grid-template-columns: 1fr 1fr; }
  .sh-shop-usp-item {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 8px;
    padding: 18px 12px;
    border-right: 1px solid #E0DDD8;
    border-bottom: 1px solid #E0DDD8;
  }
  .sh-shop-usp-item:nth-child(2n) { border-right: 0; }      /* brak prawej krawędzi w prawej kolumnie */
  .sh-shop-usp-item:nth-child(n+3) { border-bottom: 0; }    /* brak dolnej krawędzi w ostatnim rzędzie (4 itemy) */
}

/* ========== SECTION HEADER (re-usable) ========== */
.sh-shop-sectionhead {
  margin-bottom: 32px;
}
.sh-shop-sectionhead .sh-kicker {
  color: var(--sh-red);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.sh-shop-sectionhead h2 {
  font-family: 'Poppins', sans-serif;
  font-size: clamp(1.8rem, 3.4vw, 2.4rem);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.01em;
  margin: 0 0 8px;
  text-transform: none;
}
.sh-shop-sectionhead p {
  color: var(--sh-gray-500);
  font-size: 0.95rem;
  margin: 0;
  max-width: 640px;
}
.sh-shop-section-dark .sh-shop-sectionhead h2 { color: var(--sh-offwhite); }
.sh-shop-section-dark .sh-shop-sectionhead p { color: rgba(248,247,244,.65); }

/* ========== BESTSELLERY (light, 4 kart) ========== */
.sh-shop-bestsellery {
  padding: 64px 24px;
  background: var(--sh-offwhite);
}
.sh-shop-bestsellery-inner {
  max-width: 1280px; margin: 0 auto;
}
/* Header z akcją po prawej */
.sh-shop-sectionhead-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 32px;
  margin-bottom: 32px;
}
.sh-shop-sectionhead-row .sh-shop-sectionhead { margin-bottom: 0; }
.sh-shop-sectionhead-action {
  flex-shrink: 0;
}
.sh-shop-zestawy .sh-shop-sectionhead-action {
  margin-top: 34px;
}
.sh-shop-products-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

/* ==== CAROUSEL (bestsellery: 12 produktów, 4 widoczne) ==== */
.sh-carousel {
  position: relative;
}
.sh-carousel-track {
  display: flex !important;
  grid-template-columns: none !important;
  gap: 20px;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;      /* Firefox */
  -ms-overflow-style: none;   /* IE/Edge */
  padding-top: 6px;           /* zapas na uniesienie karty (hover) — inaczej overflow-y:hidden ucina górną ramkę */
  padding-bottom: 4px;
}
.sh-carousel-track::-webkit-scrollbar { display: none; }  /* Chrome/Safari */

.sh-carousel-slide {
  flex: 0 0 calc((100% - 60px) / 4);  /* 4 widoczne + 3 gap po 20px */
  min-width: 0;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}
@media (max-width: 1100px) {
  .sh-carousel-slide { flex-basis: calc((100% - 40px) / 3); }
}
@media (max-width: 840px) {
  .sh-carousel-slide { flex-basis: calc((100% - 20px) / 2); }
}
@media (max-width: 540px) {
  .sh-carousel-slide { flex-basis: 85%; }
}

/* Controls (strzałki + "Wszystkie produkty") */
.sh-carousel-controls {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.sh-carousel-arrow {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid #E0DDD8;
  background: #fff;
  color: var(--sh-black);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background .15s ease, border-color .15s ease, color .15s ease, opacity .15s ease;
}
.sh-carousel-arrow svg { width: 16px; height: 16px; }
.sh-carousel-arrow:hover:not(:disabled) {
  background: var(--sh-black);
  border-color: var(--sh-black);
  color: #fff;
}
.sh-carousel-arrow:disabled {
  opacity: .35;
  cursor: not-allowed;
}

/* Progress bar (pasek postępu pod karuzelą) */
.sh-carousel-progress {
  position: relative;
  width: 100%;
  height: 3px;
  background: #E0DDD8;
  border-radius: 2px;
  margin-top: 20px;
  overflow: hidden;
}
.sh-carousel-progress-bar {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  background: var(--sh-black);
  border-radius: 2px;
  transition: left .2s ease, width .2s ease;
  width: 33%;
}

@media (max-width: 540px) {
  .sh-shop-sectionhead-row { flex-direction: column; align-items: flex-start; }
  .sh-carousel-all { display: none; }  /* na mobile chowamy tekstowy link, tylko strzałki */
}

/* Product card (used in bestsellery + regen) */
.sh-product-card {
  background: #fff;
  border: 1px solid #E0DDD8;
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  position: relative; /* kontener dla stretched-link na .sh-product-thumb::after */
  cursor: pointer; /* cała karta klikalna (JS w main.js) */
}
.sh-product-card:hover {
  transform: translateY(-2px);
  border-color: #d0cec8;
  box-shadow: 0 8px 24px rgba(0,0,0,.06);
}
.sh-product-thumb {
  position: relative;
  background: #ffffff;
  padding: 0;
  aspect-ratio: 1 / 1;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
/* Stretched-link: link wokół obrazka rozszerza klikalność na całą kartę.
   Strategy: overlay ::after na thumb pokrywający całą card. Info-area z
   `pointer-events: none` — klik przechodzi przez nią do overlay link, ale
   inner interactive elementy (name link, CTA) mają pointer-events: auto. */
.sh-product-card .sh-product-thumb { z-index: 1; }
.sh-product-card .sh-product-thumb::after {
  content: "";
  position: absolute;
  /* Wyciągnij overlay z thumb na całą wysokość card (ancestor z position:relative). */
  top: 0; right: 0; bottom: -2000px; left: 0;
  z-index: 1;
}
.sh-product-card .sh-product-info {
  position: relative;
  z-index: 2;
  pointer-events: none; /* puszczamy klik przez info do overlay */
}
.sh-product-card .sh-product-info a,
.sh-product-card .sh-product-info button { pointer-events: auto; position: relative; z-index: 3; }
.sh-product-card .sh-product-thumb-badges { pointer-events: none; z-index: 3; }
.sh-product-thumb img {
  width: auto;
  height: auto;
  max-width: 70%;
  max-height: 70%;
  object-fit: contain;
}
.sh-product-thumb.sh-bg-dark { background: #0a0e1a; }
.sh-product-thumb.sh-bg-dark img { max-width: 80%; max-height: 85%; }

/* Badge kategorii nad thumbem */
.sh-product-thumb-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  background: #fff;
  color: var(--sh-black);
  font-family: 'Poppins', sans-serif;
  font-size: 8px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 5px 10px;
  border-radius: 4px;
  border: 1px solid #E0DDD8;
  z-index: 2;
  line-height: 1;
}
.sh-product-thumb-badge.sh-cat-ebooki    { background: var(--sh-black); color: #fff; border-color: var(--sh-black); }
.sh-product-thumb-badge.sh-cat-zestawy   { background: var(--sh-green); color: #fff; border-color: var(--sh-green); }
.sh-product-thumb-badge.sh-cat-suplementy{ background: #fff; color: var(--sh-black); border-color: #E0DDD8; }
/* Badge statusowe (zastępują kategorię): BESTSELLER = czerwony, INTERAKTYWNY = zielony */
.sh-product-thumb-badge.sh-badge-bestseller   { background: var(--sh-red);   color: #fff; border-color: var(--sh-red); }
.sh-product-thumb-badge.sh-badge-interaktywny { background: var(--sh-green); color: #fff; border-color: var(--sh-green); }
/* Kontener na 1+ badge (np. wyróżniony ebook = BESTSELLER + INTERAKTYWNY) — stack pionowy */
.sh-product-thumb-badges {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}
.sh-product-thumb-badges .sh-product-thumb-badge {
  position: static;
  top: auto;
  left: auto;
}

/* ========== BANER REKLAMOWY (homepage, pod ebookami) ========== */
.sh-adbanner {
  background: #fff;
  padding: 48px 24px;
}
.sh-adbanner-inner {
  max-width: var(--sh-container, 1200px);
  margin: 0 auto;
}
.sh-adbanner-link {
  display: block;
  line-height: 0;                 /* usuwa biały pasek pod <img> */
  border-radius: var(--sh-radius-md, 8px);
  overflow: hidden;
  transition: transform var(--sh-duration, 200ms) var(--sh-ease, ease),
              box-shadow var(--sh-duration, 200ms) var(--sh-ease, ease);
}
a.sh-adbanner-link:hover {
  transform: translateY(-2px);
  box-shadow: var(--sh-shadow-md, 0 12px 32px rgba(17,17,17,.08));
}
.sh-adbanner-link img,
.sh-adbanner-link picture {
  display: block;
  width: 100%;
  height: auto;
}
@media (max-width: 768px) {
  .sh-adbanner { padding: 28px 16px; }
}
.sh-product-badge {
  position: absolute;
  top: 12px; left: 12px;
  font-family: 'Poppins', sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 3px;
  z-index: 2;
}
.sh-product-badge.sh-badge-bestseller { background: var(--sh-red); color: #fff; }
.sh-product-badge.sh-badge-new        { background: var(--sh-black); color: #fff; }
.sh-product-badge.sh-badge-bundle     { background: var(--shop-olive); color: #fff; }
.sh-product-info {
  padding: 20px;
  display: flex; flex-direction: column; flex: 1;
  background: #fff;
}
.sh-product-cat {
  font-family: 'Poppins', sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--sh-red);
  margin-bottom: 8px;
}
.sh-product-name {
  font-family: 'Poppins', sans-serif;
  font-size: 15px;
  font-weight: 600;
  color: #000000;
  line-height: 1.3;
  margin: 0 0 10px;
}
.sh-product-name a {
  color: inherit;
  text-decoration: none;
}
.sh-product-name a:hover { color: var(--sh-red); }
.sh-product-desc {
  font-size: 13px;
  color: var(--sh-muted);
  line-height: 1.55;
  margin: 0 0 14px;
}
.sh-product-price-row {
  margin-top: auto;
  margin-bottom: 14px;
}
.sh-product-price {
  font-family: 'Poppins', sans-serif;
  font-weight: 700;
  font-size: 20px;
  color: var(--sh-black);
  line-height: 1;
  display: block;
  margin-bottom: 4px;
}
.sh-product-discount {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  color: var(--sh-red);
  margin-left: 8px;
  vertical-align: middle;
}
/* Listing: oznaczenie promocji na karcie (przekreślona regularna + badge) */
.sh-product-price-regular {
  font-size: 13px;
  font-weight: 500;
  color: var(--sh-muted);
  text-decoration: line-through;
  margin-right: 8px;
  vertical-align: middle;
}
.sh-product-badge-sale {
  display: inline-block;
  font-family: 'Poppins', sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #fff;
  background: #CC1B1B;
  padding: 2px 7px;
  border-radius: 4px;
  vertical-align: middle;
}
.sh-product-sub {
  font-size: 12px;
  color: var(--sh-muted);
  line-height: 1.4;
  display: block;
}
/* Prefiks „od" przy cenie kafelka obejmującego warianty o różnych cenach */
.sh-product-price-from {
  font-size: 13px;
  font-weight: 500;
  color: var(--sh-muted);
}
/* Chipy smaków na kafelku — klik prowadzi na kartę z pre-wybranym wariantem */
.sh-product-flavors {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 12px;
}
.sh-product-flavor {
  display: inline-block;
  font-size: 11px;
  font-weight: 500;
  line-height: 1;
  color: var(--sh-muted);
  background: transparent;
  border: 1px solid var(--sh-border, #d9d9d9);
  border-radius: 999px;
  padding: 5px 10px;
  text-decoration: none;
  white-space: nowrap;
  transition: color .15s ease, border-color .15s ease;
}
.sh-product-flavor:hover {
  color: var(--sh-red);
  border-color: var(--sh-red);
}
.sh-product-flavor-more {
  font-weight: 700;
}
.sh-product-sub strong {
  color: var(--sh-success);
  font-weight: 600;
}
.sh-product-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  background: var(--sh-red);
  color: #fff;
  font-family: 'Poppins', sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.01em;
  padding: 11px 16px;
  border-radius: 4px;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: background .15s ease;
}
.sh-product-cta:hover { background: var(--sh-red-dark); color: #fff; }
.sh-product-cta svg { width: 16px; height: 16px; stroke: currentColor; fill: none; stroke-width: 2; }

/* ========== ZESTAWY ETAPOWE (dark, featured) ========== */
.sh-shop-zestawy {
  background: var(--shop-bg-bundle);
  color: var(--sh-offwhite);
  padding: 60px 24px;
}
.sh-shop-zestawy-inner { max-width: 1280px; margin: 0 auto; }
/* Nagłówek z CTA po prawej — wyrównanie do góry (3 linie w nagłówku) */
.sh-shop-zestawy .sh-shop-sectionhead-row { align-items: flex-start; }
/* Czerwona kreska przed kickerem (jak Lovable) */
.sh-shop-zestawy .sh-kicker {
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.sh-shop-zestawy .sh-kicker::before {
  content: "";
  width: 28px;
  height: 2px;
  background: var(--sh-red);
}
.sh-zestawy-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 24px;
}
.sh-zestaw-card {
  position: relative;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(248,247,244,.14);
  border-radius: 8px;            /* rounded-lg */
  padding: 20px;                 /* p-5 */
  display: flex; flex-direction: column;
  transition: transform .25s, border-color .25s;
}
.sh-zestaw-card:hover { transform: translateY(-3px); border-color: var(--sh-red); }
.sh-zestaw-card.sh-zestaw-featured {
  border-color: var(--sh-red);
  border-width: 1.5px;
  background: rgba(204,27,27,.04);
}
.sh-zestaw-badge {
  display: inline-block;
  font-family: 'Poppins', sans-serif;
  font-size: 10px;               /* text-[10px] */
  font-weight: 500;              /* font-medium */
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 4px 10px;             /* px-2.5 py-1 */
  border-radius: 2px;            /* rounded-sm */
  margin-bottom: 14px;           /* mb-3.5 */
  align-self: flex-start;
}
/* Obszar obrazka zestawu */
.sh-zestaw-img {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;           /* aspect-[4/3] */
  border-radius: 6px;            /* rounded-md */
  overflow: hidden;
  margin-bottom: 16px;           /* mb-4 */
  background: rgba(248,247,244,.05);  /* bg-bundle-border/40 */
  border: 1px solid rgba(248,247,244,.12);  /* border-bundle-border */
  display: flex;
  align-items: center;
  justify-content: center;
}
.sh-zestaw-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.sh-zestaw-img.is-placeholder svg {
  width: 56px;
  height: 56px;
  color: rgba(248,247,244,.22);
}
.sh-zestaw-card.sh-zestaw-featured .sh-zestaw-img {
  border-color: rgba(204,27,27,.18);
}
.sh-zestaw-badge.sh-badge-baza   { background: rgba(248,247,244,.1); color: rgba(248,247,244,.8); }
.sh-zestaw-badge.sh-badge-szturm { background: var(--sh-red); color: #fff; }
.sh-zestaw-badge.sh-badge-zero   { background: var(--shop-olive); color: var(--sh-offwhite); }
.sh-zestaw-head {
  font-family: 'Poppins', sans-serif;
  font-size: 18px;               /* text-lg */
  font-weight: 500;              /* font-medium */
  text-transform: none;
  letter-spacing: 0;
  color: var(--sh-offwhite);     /* text-hero-foreground */
  line-height: 1.55;             /* 28px / 18px */
  margin: 0;
}
.sh-zestaw-head .sh-zestaw-kicker,
.sh-zestaw-head .sh-zestaw-name {
  font-weight: 500;
  color: var(--sh-offwhite);
}
.sh-zestaw-desc {
  font-size: 12px;               /* text-xs */
  color: rgba(248,247,244,.6);   /* text-muted-foreground */
  line-height: 1.6;              /* leading-relaxed */
  margin: 6px 0 16px;            /* odstęp od tytułu (mb-1.5) + mb-4 */
}
.sh-zestaw-list {
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
}
.sh-zestaw-list li {
  position: relative;
  margin-top: 0 !important;
  padding: 4px 0 4px 16px;       /* py-1 + odstęp na kropkę (gap-1.5) */
  font-size: 12px;               /* text-xs */
  color: rgba(248,247,244,.6);   /* text-hero-muted */
  line-height: 1.3;
  border-bottom: 1px solid rgba(248,247,244,.1);  /* border-b border-bundle-border */
}
.sh-zestaw-list li:last-child { border-bottom: 0; }  /* last:border-0 */
.sh-zestaw-list li::before {
  content: "•";
  position: absolute; left: 0; top: 4px;
  color: rgba(248,247,244,.5); /* BAZA — neutralny */
  font-size: 1rem;
  line-height: 1;
}
/* Kropki w kolorze etapu */
.sh-zestaw-featured .sh-zestaw-list li::before { color: var(--sh-red); }
.sh-zestaw-green .sh-zestaw-list li::before { color: var(--sh-green); }
.sh-zestaw-price-row {
  margin-top: auto;  /* dopycha cenę w dół — wyrównuje ceny we wszystkich etapach */
  padding-top: 20px;
  margin-bottom: 18px;
}
.sh-zestaw-price {
  font-family: 'Poppins', sans-serif;
  font-size: 20px;               /* text-xl */
  font-weight: 500;              /* font-medium */
  color: var(--sh-offwhite);     /* text-hero-foreground */
  line-height: 1.4;
}
.sh-zestaw-saving {
  font-size: 0.8rem;
  font-weight: 400;
  color: var(--shop-green);
  margin-left: 10px;
}
.sh-zestaw-cta {
  display: block;
  width: 100%;
  padding: 10px 16px;            /* py-2.5 */
  text-align: center;
  background: transparent;
  border: 1px solid rgba(248,247,244,.2);  /* border-stat-border */
  color: var(--sh-offwhite);     /* text-hero-foreground */
  font-family: 'Poppins', sans-serif;
  font-size: 12px;               /* text-xs */
  font-weight: 500;              /* font-medium */
  letter-spacing: 0.01em;
  text-transform: none;
  border-radius: 2px;            /* rounded-sm */
  text-decoration: none;
  transition: all .15s ease;
  cursor: pointer;
}
.sh-zestaw-cta:hover { background: rgba(248,247,244,.05); border-color: var(--sh-red); color: #fff; }
/* Na hover karty przycisk dostaje kolor ramki taki jak cała karta (czerwony) */
.sh-zestaw-card:hover .sh-zestaw-cta { border-color: var(--sh-red); color: #fff; }
.sh-zestaw-featured .sh-zestaw-cta {
  background: transparent;
  border-color: rgba(248,247,244,.2);
  color: var(--sh-offwhite);
  font-weight: 600;
}
.sh-zestaw-featured .sh-zestaw-cta:hover {
  background: rgba(248,247,244,.05);
  border-color: var(--sh-red);
  color: #fff;
}

/* ZERO DAY — ramka karty + przycisk jak BAZA (neutralne), hover czerwony (z base) */

/* ========== KATEGORIE (visual cards) ========== */
.sh-shop-kategorie {
  padding: 60px 24px;
  background: var(--sh-offwhite);
}
.sh-shop-kategorie-inner { max-width: none; margin: 0; }
.sh-kategorie-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
}
.sh-kategoria-card {
  position: relative;
  aspect-ratio: 1 / 1;
  background: #0a0e1a;
  border-radius: 8px;
  overflow: hidden;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 24px;
  color: var(--sh-offwhite);
  transition: transform .25s ease;
}
.sh-kategoria-card:hover { transform: translateY(-3px); }
.sh-kategoria-card::before {
  content: "";
  position: absolute; inset: 0;
  background-image: var(--bg-img);
  background-size: cover;
  background-position: center;
  filter: grayscale(100%);
  z-index: 0;
}
.sh-kategoria-card::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.1) 0%, rgba(0,0,0,.85) 100%);
  z-index: 1;
}
.sh-kategoria-card > * { position: relative; z-index: 2; }
.sh-kategoria-badge {
  position: absolute;
  top: 12px; right: 12px;
  background: var(--sh-red);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  padding: 4px 10px;
  border-radius: 3px;
  z-index: 3;
}
.sh-kategoria-icon {
  width: 28px; height: 28px;
  background: rgba(204, 27, 27, 0.2);  /* 20% red wg Lovable */
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  border-radius: 4px;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 10px;
}
.sh-kategoria-icon svg {
  width: 14px; height: 14px;
  stroke: var(--sh-red);
  color: var(--sh-red);
  stroke-width: 2;
}
.sh-kategoria-name {
  font-family: 'Poppins', sans-serif;
  font-size: 0.875rem;        /* 14px wg Lovable */
  font-weight: 500;           /* medium */
  line-height: 1.25;
  margin: 0 0 4px;
  color: #fff;
}
.sh-kategoria-desc {
  font-size: 0.75rem;         /* 12px — lżejsze od name */
  font-weight: 400;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.7);
  margin: 0;
}

/* ========== MOBILE: ZESTAWY + KATEGORIE jako scroll poziomy ==========
   Na telefonie karty zamiast stackować się w kolumnę leżą w rzędzie i
   przewijają się w bok (swipe). Bleed -24px = padding sekcji, żeby karty
   dojeżdżały do krawędzi ekranu; scroll-snap zatrzymuje na krawędzi karty. */
@media (max-width: 768px) {
  .sh-zestawy-grid,
  .sh-kategorie-grid {
    display: flex;
    grid-template-columns: none;
    flex-wrap: nowrap;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    margin-left: -24px;
    margin-right: -24px;
    padding-left: 24px;
    padding-right: 24px;
    /* Zapas u góry: overflow-x wymusza overflow-y:auto, który przycinałby 1px
       górnej ramki karty (leży na pikselu 0 scrollportu) i hover translateY(-3px).
       Ujemny margin-top kompensuje, więc odstęp od nagłówka bez zmian. */
    padding-top: 6px;
    margin-top: -6px;
    scrollbar-width: none;         /* Firefox */
  }
  .sh-zestawy-grid::-webkit-scrollbar,
  .sh-kategorie-grid::-webkit-scrollbar { display: none; }

  .sh-zestawy-grid { gap: 14px; padding-bottom: 6px; }
  .sh-kategorie-grid { gap: 12px; }

  .sh-zestaw-card {
    flex: 0 0 82%;
    scroll-snap-align: start;
  }
  .sh-kategoria-card {
    flex: 0 0 88%;
    scroll-snap-align: start;
  }
}

/* ========== SUBSKRYPCJA (dark bg, 2-col layout) ========== */
.sh-shop-sub {
  background: var(--sh-offwhite);
  color: var(--sh-ink);
  padding: 72px 24px;
}
.sh-shop-sub-inner {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 56px;
  align-items: center;
}

/* ===== LEWA KOLUMNA ===== */
.sh-shop-sub-text { max-width: 620px; }
.sh-shop-sub .sh-kicker {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: var(--sh-red);
  letter-spacing: 0.2em;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  margin-bottom: 18px;
}
.sh-shop-sub .sh-kicker::before {
  content: "";
  width: 28px;
  height: 2px;
  background: var(--sh-red);
}
.sh-shop-sub h2 {
  font-family: 'Poppins', sans-serif;
  font-size: clamp(1.8rem, 2.8vw, 2.4rem);
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -0.015em;
  text-transform: none;
  margin: 0 0 20px;
  color: var(--sh-black);
}
.sh-shop-sub h2 em { font-style: normal; color: var(--sh-red); white-space: nowrap; }
.sh-shop-sub p {
  font-size: 15px;
  color: var(--sh-gray-500, #555);
  line-height: 1.7;
  margin: 0 0 24px;
}
.sh-shop-sub p strong { color: var(--sh-black); font-weight: 700; }
.sh-shop-sub-quote {
  border-left: 3px solid var(--sh-red);
  padding: 4px 0 4px 18px;
  margin: 0 0 28px;
  font-size: 15px;
  line-height: 1.6;
  color: var(--sh-ink);
  font-style: normal;
}
.sh-shop-sub-quote strong { color: var(--sh-red); font-weight: 700; }
.sh-shop-sub-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 15px 28px;
  background: var(--sh-red);
  color: #fff !important;
  font-family: 'Poppins', sans-serif;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.01em;
  text-transform: none;
  border-radius: 6px;
  text-decoration: none;
  transition: background .15s ease;
}
.sh-shop-sub-cta:hover { background: var(--sh-red-dark, #a31515); color: #fff !important; }

/* ===== PRAWA KOLUMNA — ciemna karta zasad ===== */
.sh-shop-sub-rules {
  background: #0c0d11;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px;
  padding: 22px;
  color: #fff;
}
.sh-shop-sub-rules-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 16px;
  margin-bottom: 8px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.sh-shop-sub-rules-title {
  font-family: 'Poppins', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255,255,255,.55);
}
.sh-shop-sub-rules-count {
  font-family: ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: var(--sh-red);
}
.sh-shop-sub-rules-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.sh-shop-sub-rule {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 0;
  margin: 0 !important;
  border-bottom: 1px dashed rgba(255,255,255,.1);
}
.sh-shop-sub-rule:last-child { border-bottom: 0; }
.sh-shop-sub-rule-icon {
  flex-shrink: 0;
  width: 36px; height: 36px;
  border-radius: 8px;
  background: rgba(204,27,27,.14);
  display: flex; align-items: center; justify-content: center;
}
.sh-shop-sub-rule-icon svg {
  width: 18px; height: 18px;
  stroke: var(--sh-red);
}
.sh-shop-sub-rule-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1 1 auto;
  min-width: 0;
}
.sh-shop-sub-rule-name {
  font-family: 'Poppins', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: #fff;
}
.sh-shop-sub-rule-desc {
  font-size: 12px;
  color: rgba(255,255,255,.5);
  line-height: 1.4;
}
.sh-shop-sub-rule-badge {
  flex-shrink: 0;
  font-family: ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  padding: 5px 10px;
  border-radius: 4px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  color: rgba(255,255,255,.85);
  white-space: nowrap;
}
.sh-shop-sub-rule-badge.is-red {
  background: var(--sh-red);
  border-color: var(--sh-red);
  color: #fff;
}

@media (max-width: 900px) {
  .sh-shop-sub { padding: 56px 20px; }
  .sh-shop-sub-inner {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .sh-shop-sub-text { max-width: none; }
  /* CTA jako czysty przycisk pełnej szerokości (zamiast lewo-wyrównanego ~326px
     z nierównym marginesem po prawej, co wyglądało na „rozjechane" na mobile). */
  .sh-shop-sub-cta {
    display: flex;
    width: 100%;
    justify-content: center;
    box-sizing: border-box;
  }
}
@media (max-width: 560px) {
  /* Wąski ekran (iPhone): szeroki badge nie mieści się obok ikony+tekstu w jednej linii.
     Zamiast flex-wrap (rozrzucał ikonę/tekst/badge osobno) → grid:
     rząd 1 = [ikona] [tekst], rząd 2 = [badge] wcięty pod tekstem. Ikona i tekst razem. */
  .sh-shop-sub-rule {
    display: grid;
    grid-template-columns: 36px 1fr;
    grid-template-areas:
      "icon text"
      ".    badge";
    column-gap: 14px;
    row-gap: 10px;
    align-items: start;
  }
  .sh-shop-sub-rule-icon  { grid-area: icon; }
  .sh-shop-sub-rule-text  { grid-area: text; }
  .sh-shop-sub-rule-badge { grid-area: badge; justify-self: start; margin: 0; }
}


/* ========== BLOG (wpisy z silentheroes.pro) ========== */
.sh-shop-blog {
  background: var(--sh-offwhite);
  padding: 64px 24px;
}
.sh-shop-blog-inner { max-width: 1280px; margin: 0 auto; }
.sh-shop-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
@media (max-width: 1024px) { .sh-shop-blog-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .sh-shop-blog-grid { grid-template-columns: 1fr; } }

.sh-blog-card {
  background: #fff;
  border: 0.5px solid #E0DDD8;
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.sh-blog-card:hover {
  transform: translateY(-2px);
  border-color: #d0cec8;
  box-shadow: 0 8px 24px rgba(0,0,0,.06);
}

.sh-blog-card-thumb {
  position: relative;
  aspect-ratio: 16/9;
  background: #111;
  overflow: hidden;
}
.sh-blog-card-thumb img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: 0;
}
.sh-blog-card-badge {
  position: absolute;
  bottom: 14px;
  left: 14px;
  background: var(--sh-red);
  color: #fff;
  font-family: 'Poppins', sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 5px 10px;
  border-radius: 3px;
  z-index: 2;
  line-height: 1;
}

.sh-blog-card-body {
  padding: 22px 22px 20px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.sh-blog-card-title {
  font-family: 'Poppins', sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--sh-black);
  margin: 0 0 10px;
}
.sh-blog-card-desc {
  font-family: 'Poppins', sans-serif;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.55;
  color: var(--sh-muted);
  margin: 0 0 18px;
}
.sh-blog-card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: auto;
  padding-top: 14px;
  border-top: 0.5px solid #E0DDD8;
}
.sh-blog-card-date {
  font-size: 11px;
  color: #6E6E6E;   /* WCAG AA — 4.6:1 na białym (zamiast #999 = 2.85:1) */
  font-weight: 400;
}
.sh-blog-card-read {
  font-family: 'Poppins', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--sh-red);
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: gap .2s ease;
}
.sh-blog-card:hover .sh-blog-card-read { gap: 8px; }


.sh-shop-ebooki {
  padding: 60px 24px;
  background: var(--sh-offwhite);
}
.sh-shop-ebooki-inner { max-width: 1280px; margin: 0 auto; }
.sh-ebook-card { /* extends product card */ }
.sh-ebook-card .sh-product-thumb {
  background: #0a0e1a;
  aspect-ratio: 1.2/1;
}
.sh-ebook-card .sh-product-thumb img { max-width: 60%; max-height: 90%; }
.sh-ebook-badges {
  position: absolute;
  top: 12px; right: 12px;
  display: flex; flex-direction: column; gap: 6px;
  z-index: 2;
}
.sh-ebook-badge {
  font-family: 'Poppins', sans-serif;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.12em;
  padding: 4px 10px;
  border-radius: 3px;
}
.sh-ebook-badge.sh-badge-interactive { background: var(--sh-black); color: #fff; }
.sh-ebook-badge.sh-badge-pdf         { background: var(--shop-green); color: #fff; }

/* ========== CROSS-PROMO POLSOF ========== */
.sh-shop-cross {
  background: var(--shop-cross-bg);
  color: var(--sh-offwhite);
  padding: 0;
  margin-bottom: 0;
}
.sh-shop-cross-inner {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 200px 1fr auto;
  align-items: center;
  gap: 32px;
  padding: 24px;
}
.sh-shop-cross-img {
  height: 80px;
  background-image: linear-gradient(135deg, rgba(63,79,50,.6), rgba(0,0,0,.4)), url('https://images.unsplash.com/photo-1553531768-3aaae4d7c5c4?w=400&q=70');
  background-size: cover; background-position: center;
  border-radius: 6px;
}
.sh-shop-cross-text { display: flex; flex-direction: column; gap: 4px; }
.sh-shop-cross-text .sh-kicker {
  color: rgba(248,247,244,.6);
  letter-spacing: 0.18em;
  font-size: 0.72rem;
  margin: 0;
}
.sh-shop-cross-text strong {
  font-family: 'Poppins', sans-serif;
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--sh-offwhite);
}
.sh-shop-cross-text p {
  font-size: 0.85rem;
  color: rgba(248,247,244,.7);
  margin: 0;
}
.sh-shop-cross-cta {
  display: inline-block;
  background: transparent;
  border: 1px solid rgba(248,247,244,0.5);
  color: var(--sh-offwhite);
  padding: 10px 18px;
  font-family: 'Poppins', sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.01em;
  text-transform: none;
  border-radius: 4px;
  text-decoration: none;
  white-space: nowrap;
  transition: all .15s ease;
}
.sh-shop-cross-cta:hover { background: var(--sh-offwhite); color: var(--shop-cross-bg); border-color: var(--sh-offwhite); }

/* ========== REGENERACJA (horizontal product cards) ========== */
.sh-shop-regen {
  padding: 60px 24px;
  background: var(--sh-offwhite);
}
.sh-shop-regen-inner { max-width: 1280px; margin: 0 auto; }
.sh-regen-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(420px, 1fr));
  gap: 24px;
}
.sh-regen-card {
  background: #fff;
  border: 1px solid var(--shop-card-border);
  border-radius: var(--shop-radius);
  display: grid;
  grid-template-columns: 180px 1fr;
  overflow: hidden;
  transition: transform .25s, box-shadow .25s;
}
.sh-regen-card:hover { transform: translateY(-2px); box-shadow: 0 12px 32px rgba(0,0,0,.06); }
.sh-regen-thumb {
  background: #fff;
  display: flex; align-items: center; justify-content: center;
  padding: 16px;
}
.sh-regen-thumb img { max-width: 100%; max-height: 140px; object-fit: contain; }
.sh-regen-info {
  padding: 24px;
  display: flex; flex-direction: column;
  justify-content: center;
}
.sh-regen-name {
  font-family: 'Poppins', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  color: var(--sh-black);
  margin: 0 0 8px;
}
.sh-regen-desc {
  font-size: 0.85rem;
  color: var(--sh-gray-500);
  line-height: 1.5;
  margin: 0 0 14px;
}
.sh-regen-bottom { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.sh-regen-price-block { line-height: 1.2; }
.sh-regen-price {
  font-family: 'Poppins', sans-serif;
  font-size: 1.3rem;
  font-weight: 800;
  color: var(--sh-black);
}

/* ========== NEWSLETTER (red bar) ========== */
.sh-shop-newsletter {
  background: var(--sh-red);
  color: #fff;
  padding: 36px 24px;
}
.sh-shop-newsletter-inner {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 32px;
}
.sh-shop-newsletter-text h3 {
  font-family: 'Poppins', sans-serif;
  font-size: 1.2rem;
  font-weight: 700;
  margin: 0 0 4px;
  color: #fff;
  text-transform: none;
}
.sh-shop-newsletter-text p {
  font-size: 0.85rem;
  color: rgba(255,255,255,.85);
  margin: 0;
}
.sh-shop-newsletter-form {
  display: flex; gap: 8px;
  min-width: 360px;
  max-width: 440px; /* kolumna grid 'auto' brała max-content zgody (długa linia)
                       i ściskała nagłówek — limit utrzymuje formularz wąski,
                       zgoda zawija się w jego obrębie. */
}
.sh-shop-newsletter-form input[type="email"] {
  flex: 1;
  padding: 10px 16px;
  border: none;
  border-radius: 4px;
  background: rgba(255,255,255,.94);
  color: var(--sh-ink);
  font-family: 'Poppins', sans-serif;
  font-size: 14px;
  font-weight: 400;
}
.sh-shop-newsletter-form input::placeholder { color: var(--sh-muted); }
.sh-shop-newsletter-form button {
  background: var(--sh-black);
  color: #fff;
  border: none;
  padding: 10px 18px;
  border-radius: 6px; /* alignment z brandbook v3 rounded-md (było 4px) */
  font-family: 'Poppins', sans-serif;
  font-size: 13px; /* alignment z .sh-shop-hero .sh-btn */
  font-weight: 400; /* user 2026-06-01: 500 → 400 regular */
  letter-spacing: 0;
  cursor: pointer;
  transition: background .15s ease;
}
.sh-shop-newsletter-form button:hover { background: #000; }

/* Własny formularz z mu-plugina (.sh-nl-form) — input/button są JEGO dziećmi,
   a flex+gap był tylko na .sh-shop-newsletter-form (rodzic formularza) → nie
   obejmował input/button (sklejały się bez odstępu). Layout dajemy wprost. */
.sh-nl-form {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
.sh-nl-form input[type="email"] { flex: 1 1 200px; }
.sh-nl-form button { flex: 0 0 auto; }
.sh-nl-form .sh-nl-consent,
.sh-nl-form .sh-nl-msg { flex: 1 1 100%; margin-top: 2px; }
/* Link „Polityka prywatności" w zgodzie dziedziczył globalny czerwony kolor
   linków (#CC1B1B) = dokładnie kolor czerwonego tła newslettera → niewidoczny.
   Na czerwonym tle musi być biały. */
.sh-shop-newsletter .sh-nl-consent a {
  display: block;
  margin-top: 6px;
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.sh-shop-newsletter .sh-nl-consent a:hover,
.sh-shop-newsletter .sh-nl-consent a:focus {
  color: rgba(255, 255, 255, .8);
}

/* ========== RESPONSIVE ========== */
@media (max-width: 768px) {
  .sh-shop-hero { padding: 60px 20px; min-height: 480px; }
  .sh-shop-hero.sh-hero-slider { padding: 0; min-height: 0; }
  .sh-hero-slider-track { aspect-ratio: 479 / 671; } /* baner mobile 479×671 px — aspect-ratio na torze (Safari-safe) */
  .sh-hero-arrow { width: 38px; height: 38px; }
  .sh-hero-prev { left: 10px; }
  .sh-hero-next { right: 10px; }
  .sh-shop-cross-inner {
    grid-template-columns: 1fr;
    text-align: center;
    gap: 18px;
  }
  .sh-shop-cross-img { display: none; }
  .sh-shop-newsletter-inner {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .sh-shop-newsletter-form { min-width: 0; max-width: none; }
  /* Mobile: input i przycisk jeden pod drugim, pełna szerokość, z odstępem.
     flex:0 0 auto na dzieciach — w kolumnie flex-basis dotyczy WYSOKOŚCI, więc
     bez tego input/zgoda puchną pionowo. */
  .sh-nl-form { flex-direction: column; align-items: stretch; }
  .sh-nl-form input[type="email"],
  .sh-nl-form button,
  .sh-nl-form .sh-nl-consent,
  .sh-nl-form .sh-nl-msg { flex: 0 0 auto; }
  .sh-nl-form button { width: 100%; }
  .sh-regen-card { grid-template-columns: 1fr; }
  .sh-regen-thumb { max-height: 200px; }
}

/* ===== Toasty (snippet sh-product-cta) + powiadomienia WC — pod navbar (64px) =====
   Domyślnie mają top:20px i zasłaniają nagłówek. Wyższa specyficzność + !important,
   by wygrać z inline-stylem ze snippetów #16/#18. */
html body .sh-toast-wrap { top: 88px !important; }
html body .woocommerce-notices-wrapper,
html body .woocommerce-message,
html body .woocommerce-info,
html body .woocommerce-error { top: 88px !important; }
@media (max-width: 768px) {
  html body .sh-toast-wrap,
  html body .woocommerce-notices-wrapper,
  html body .woocommerce-message,
  html body .woocommerce-info,
  html body .woocommerce-error { top: 76px !important; right: 12px !important; left: 12px !important; max-width: none !important; }
}

/* ===== TYMCZASOWO: ukryj całą funkcję "Ulubione" (wishlist) w UI =====
   Plugin TI zostaje aktywny; to tylko warstwa wizualna. Usuń ten blok, by przywrócić. */
.tinvwl_add_to_wishlist_button,
.tinvwl-wishlist,
.tinv-wishlist,
.yith-wcwl-add-to-wishlist,
.yith-wcwl-wishlistexistsbrowse,
.sh-navbar-wishlist,
li.woocommerce-MyAccount-navigation-link--wishlist,
li.woocommerce-MyAccount-navigation-link--ulubione {
  display: none !important;
}

/* ========== TI WOOCOMMERCE WISHLIST PAGE ========== */
.tinv-wishlist {
  font-family: 'Poppins', sans-serif;
  color: var(--sh-ink);
}
/* Full-width: wrapper + form + tabela (plugin/WC potrafią zwężać) */
.woocommerce-MyAccount-content .tinv-wishlist,
.tinv-wishlist {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
}
.tinv-wishlist form,
.tinv-wishlist .tinvwl-content,
.tinv-wishlist .tinvwl_added_to_cart {
  width: 100% !important;
  max-width: 100% !important;
}
.tinv-wishlist table.tinvwl-table-manage-list {
  width: 100% !important;
  max-width: 100% !important;
  table-layout: auto;
  border-collapse: collapse;
  background: #fff;
  border: 1px solid #E0DDD8;
  border-radius: 8px;
  overflow: hidden;
}
/* Kolumna nazwy produktu pochłania wolną przestrzeń → tabela wypełnia szerokość */
.tinv-wishlist table.tinvwl-table-manage-list .product-name { width: 100%; }
.tinv-wishlist table.tinvwl-table-manage-list thead th {
  background: #F8F7F4;
  font-family: 'Poppins', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--sh-ink-muted);
  padding: 12px 10px;
  text-align: left;
  border-bottom: 1px solid #E0DDD8;
}
.tinv-wishlist table.tinvwl-table-manage-list tbody td {
  padding: 12px 10px;
  border-bottom: 1px solid #F0EEE8;
  vertical-align: middle;
  font-size: 13px;
  color: var(--sh-ink);
  text-align: left;
}
.tinv-wishlist table.tinvwl-table-manage-list tbody tr:last-child td { border-bottom: 0; }
.tinv-wishlist .product-thumbnail img {
  max-width: 64px;
  height: auto;
  border-radius: 4px;
  background: #fff;
}
.tinv-wishlist .product-name a {
  color: var(--sh-ink) !important;
  font-weight: 600;
  text-decoration: none;
}
.tinv-wishlist .product-name a:hover { color: var(--sh-red) !important; }
.tinv-wishlist .product-price,
.tinv-wishlist .product-price ins,
.tinv-wishlist .product-price .amount {
  color: var(--sh-ink) !important;
  font-weight: 600;
  text-decoration: none;
}
.tinv-wishlist .product-stock .stock.in-stock {
  color: var(--sh-success);
  font-weight: 500;
}
.tinv-wishlist .product-stock .stock.out-of-stock {
  color: var(--sh-ink-muted);
}

/* Bundle internal meta — hide if it leaks through */
.tinv-wishlist .product-name dl.variation dt,
.tinv-wishlist .product-name dl.variation dd,
.tinv-wishlist .product-name .wishlist_meta {
  font-size: 12px;
  color: var(--sh-ink-muted);
}
.tinv-wishlist .product-name dl.variation dt:has(+ dd:empty),
.tinv-wishlist .product-name .variation-sh_bundle_choices,
.tinv-wishlist .product-name .wishlist_meta_sh_bundle_choices { display: none !important; }

/* Action column button */
.tinv-wishlist td.product-action .button {
  width: 100%;
  padding: 9px 8px !important;
  font-size: 12px !important;
  line-height: 1.2;
  white-space: normal;
}

/* Bottom action bar — left (akcje + zastosuj) / right (dodaj zaznaczone/wszystko) */
.tinv-wishlist form {
  display: block;
}
.tinv-wishlist form > .tinvwl-to-left,
.tinv-wishlist form > .tinvwl-to-right { box-sizing: border-box; }

/* Bottom action bar */
.tinv-wishlist .tinvwl-to-left,
.tinv-wishlist .tinvwl-to-right {
  display: flex !important;
  align-items: center;
  margin-top: 16px;
}
.tinv-wishlist .tinvwl-to-right {
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end !important;
  text-align: right;
}
.tinv-wishlist .tinvwl-to-right > * { margin-left: 0; }
.tinv-wishlist .tinvwl-to-right .button { float: none !important; }

/* Desktop: obie sekcje w jednej linii (lewa do lewej, prawa do prawej) */
@media (min-width: 1101px) {
  .tinv-wishlist .tinvwl-to-left {
    float: left !important;
    width: auto;
    margin-top: 0;
  }
  .tinv-wishlist .tinvwl-to-right {
    float: right !important;
    width: auto;
  }
}

/* Mobile: 2 wiersze pełnej szerokości */
@media (max-width: 1100px) {
  .tinv-wishlist .tinvwl-to-left,
  .tinv-wishlist .tinvwl-to-right {
    float: none !important;
    width: 100%;
  }
}

/* Hide mobile-only label on desktop */
@media (min-width: 1101px) {
  .tinv-wishlist .tinvwl-mobile { display: none !important; }
}
@media (max-width: 1100px) {
  .tinv-wishlist .tinvwl-full { display: none !important; }
}
.tinv-wishlist .tinvwl-to-left .tinvwl-input-group {
  display: flex;
  align-items: stretch;
  gap: 0;
  flex-wrap: nowrap;
}
.tinv-wishlist .tinvwl-to-left .tinvwl-input-group select {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  border-right: 0;
  flex: 0 0 auto;
  width: 150px;
  min-width: 0;
  max-width: 150px;
}
.tinv-wishlist .tinvwl-to-left .tinvwl-input-group .tinvwl-input-group-btn {
  display: flex;
  width: auto !important;
  flex: 0 0 auto;
}
.tinv-wishlist .tinvwl-to-left .tinvwl-input-group .tinvwl-input-group-btn .button {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  white-space: nowrap;
  overflow: visible;
  min-width: 100px;
}
.tinv-wishlist .tinv-lists-nav { clear: both; padding-top: 16px; }
.tinv-wishlist .tinv-modal { clear: both; }
.tinv-wishlist form { display: block; }
.tinv-wishlist form::after { content: ''; display: block; clear: both; }

/* Counter badge inside "Add Selected" button — push left, away from text */
.tinv-wishlist .tinvwl-to-right .tinvwl-input-group-btn { display: inline-flex; gap: 8px; }
.tinv-wishlist .tinvwl-quantity,
.tinv-wishlist .tinvwl-counter {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  margin-right: 6px;
  background: rgba(255,255,255,0.25);
  border-radius: 11px;
  font-size: 12px;
  font-weight: 700;
}

/* Buttons */
.tinv-wishlist .button,
.tinv-wishlist button.button,
.tinv-wishlist input[type="submit"].button,
.tinv-wishlist .tinvwl_add_to_cart_button,
.tinv-wishlist .tinvwl-buttons-group .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 18px;
  background: var(--sh-red) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 6px !important;
  font-family: 'Poppins', sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em;
  text-transform: none;
  cursor: pointer;
  transition: background .15s ease;
  text-decoration: none;
  box-shadow: none;
  text-shadow: none;
}
.tinv-wishlist .button:hover,
.tinv-wishlist button.button:hover,
.tinv-wishlist input[type="submit"].button:hover {
  background: #a31515 !important;
}
.tinv-wishlist .tinvwl-buttons-group {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

/* Selects (Akcje, Per page) */
.tinv-wishlist select,
.tinv-wishlist .tinvwl-input-group select {
  padding: 9px 32px 9px 12px;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23666' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E") right 12px center no-repeat;
  border: 1px solid #E0DDD8;
  border-radius: 6px;
  font-family: 'Poppins', sans-serif;
  font-size: 13px;
  color: var(--sh-ink);
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  min-width: 140px;
}
.tinv-wishlist .tinvwl-input-group {
  display: inline-flex;
  gap: 8px;
  align-items: center;
}

/* Empty state */
.tinv-wishlist .wishlist-empty {
  text-align: center;
  padding: 48px 24px;
  background: #F8F7F4;
  border-radius: 8px;
  color: var(--sh-ink-muted);
  font-size: 15px;
}

/* Social share row */
.tinv-wishlist .social-buttons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  padding: 20px 16px;
  background: #F8F7F4;
  border-radius: 8px;
  margin-top: 16px;
}
.tinv-wishlist .social-buttons > span {
  font-family: 'Poppins', sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: var(--sh-ink);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.tinv-wishlist .social-buttons ul {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
}
.tinv-wishlist .social-buttons ul li a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid #E0DDD8;
  color: var(--sh-ink) !important;
  text-decoration: none;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.tinv-wishlist .social-buttons ul li a:hover {
  background: var(--sh-red);
  color: #fff !important;
  border-color: var(--sh-red);
}
.tinv-wishlist .social-buttons ul li a i,
.tinv-wishlist .social-buttons ul li a svg { font-size: 14px; }

/* Mobile: card-style rows zamiast tabeli */
@media (max-width: 1100px) {
  .tinv-wishlist { overflow-x: hidden; }
  .tinv-wishlist table.tinvwl-table-manage-list,
  .tinv-wishlist table.tinvwl-table-manage-list thead,
  .tinv-wishlist table.tinvwl-table-manage-list tbody,
  .tinv-wishlist table.tinvwl-table-manage-list tr,
  .tinv-wishlist table.tinvwl-table-manage-list td {
    display: block;
    width: 100%;
    box-sizing: border-box;
  }
  .tinv-wishlist table.tinvwl-table-manage-list thead { display: none; }
  .tinv-wishlist table.tinvwl-table-manage-list {
    border: 0;
    background: transparent;
  }
  .tinv-wishlist table.tinvwl-table-manage-list tr {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    background: #fff;
    border: 0;
    border-radius: 8px;
    margin-bottom: 12px;
    padding: 14px 16px 16px;
  }
  .tinv-wishlist table.tinvwl-table-manage-list td {
    border: 0;
    padding: 6px 0;
    text-align: center;
    flex: 1 1 100%;
  }

  /* Checkbox + remove on the top row, inline */
  .tinv-wishlist table.tinvwl-table-manage-list td.product-cb {
    flex: 0 0 auto;
    order: 1;
    padding: 0;
    margin-right: auto;
    text-align: left;
  }
  .tinv-wishlist table.tinvwl-table-manage-list td.product-cb input[type="checkbox"] {
    width: 22px;
    height: 22px;
    cursor: pointer;
  }
  .tinv-wishlist table.tinvwl-table-manage-list td.product-remove {
    flex: 0 0 auto;
    order: 2;
    padding: 0;
    margin-left: auto;
    text-align: right;
  }
  .tinv-wishlist table.tinvwl-table-manage-list td.product-thumbnail { order: 3; }
  .tinv-wishlist table.tinvwl-table-manage-list td.product-name { order: 4; }
  .tinv-wishlist table.tinvwl-table-manage-list td.product-price { order: 5; }
  .tinv-wishlist table.tinvwl-table-manage-list td.product-stock { order: 6; }
  .tinv-wishlist table.tinvwl-table-manage-list td.product-action { order: 7; }
  .tinv-wishlist td.product-remove .button.remove_from_wishlist,
  .tinv-wishlist td.product-remove button {
    background: transparent !important;
    color: var(--sh-ink-muted) !important;
    padding: 4px !important;
    font-size: 14px !important;
  }

  /* Hide date column on mobile (too noisy) */
  .tinv-wishlist td.product-date { display: none !important; }

  /* Bigger product image */
  .tinv-wishlist .product-thumbnail { padding: 4px 0 12px !important; }
  .tinv-wishlist .product-thumbnail img {
    max-width: 160px;
    width: 100%;
    height: auto;
  }
  .tinv-wishlist .product-name { font-size: 15px; font-weight: 600; }
  .tinv-wishlist .product-price { font-size: 16px; }
  .tinv-wishlist .tinvwl-buttons-group { justify-content: center; }

  /* Akcje + Apply — full width row, no overflow */
  .tinv-wishlist .tinvwl-input-group,
  .tinv-wishlist .tinvwl-input-group-btn {
    display: flex !important;
    width: 100%;
    gap: 8px;
  }
  .tinv-wishlist .tinvwl-input-group > * { min-width: 0; flex: 1; }
  .tinv-wishlist .tinvwl-input-group .button { flex: 0 0 auto; }
}

/* =========================================================
   Ujednolicenie przycisków na SKLEPIE (desktop ≥769px): 13px / 400.
   Scope: body.sh-domain-store (nie dotyka .pro/info ani przełączników kalkulatora).
   User 2026-06-01: 600 → 400 (regular per request).
   ========================================================= */
@media (min-width: 769px) {
  /* Przyciski motywu (nie-WooCommerce) */
  body.sh-domain-store .sh-btn,
  body.sh-domain-store input[type="submit"],
  body.sh-domain-store .sh-product-cta,
  body.sh-domain-store .sh-cart-checkout-btn,
  body.sh-domain-store .sh-zestaw-cta,
  body.sh-domain-store .sh-shop-sub-cta,
  body.sh-domain-store .sh-archive-filter-btn,
  body.sh-domain-store .sh-archive-view-btn,
  body.sh-domain-store .sh-account-header-cta,
  /* Przyciski WooCommerce (.button) — specyficzność 0,4,2, by przebić !important 14px z woocommerce.css (0,4,1) */
  body.sh-domain-store .woocommerce a.button:not(.sh-pp-cta),
  body.sh-domain-store .woocommerce button.button:not(.sh-pp-cta),
  body.sh-domain-store .woocommerce input.button:not(.sh-pp-cta) {
    font-size: 13px !important;
    font-weight: 400 !important; /* user 2026-06-01: 600 → 400 regular */
  }
}

/* =========================================================
   Checkout (WC Blocks): szersza kolumna NAZWY produktu w podsumowaniu.
   1) nazwa rośnie i wypełnia wolną przestrzeń; 2) panel podsumowania szerszy
   na dużych ekranach (formularz ma wtedy zapas).
   ========================================================= */
@media (min-width: 769px) {
  body.sh-domain-store .wc-block-components-order-summary-item__description {
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }
}
@media (min-width: 1024px) {
  body.sh-domain-store .wc-block-checkout__sidebar {
    flex: 0 0 420px !important;
    width: 420px !important;
    max-width: 420px !important;
  }
}

/* Cały box zestawu klikalny (stretched link na CTA). 2026-06-10 */
.sh-zestaw-cta::after { content: ''; position: absolute; inset: 0; z-index: 1; }

/* hover: tekst zawsze bialy (3 przyciski zestawowe) 2026-06-10 */
.sh-zestaw-cta:hover, .sh-zestaw-card:hover .sh-zestaw-cta { color: #fff; }
