/* V2 Opinie (sections-v2/v2-opinie.mjs). Jasne tło (bez data-bg), rząd kart na pełną szerokość okna.
   Dwa tryby (js/v2/opinie.js):
   - .is-marquee (desktop z ruchem): kadr przycina tor, tor przesuwa się transformacją 50 px/s, krawędzie kadru
     wygaszone maską, karty przy prawej krawędzi mniejsze i bledsze (skrypt ustawia --v2-depth 0–1),
   - bez klasy (telefon, prefers-reduced-motion, brak JS): tor przewija się natywnie od krawędzi treści,
     ze strzałkami na desktopie.
   Karta desktronic (276 × 430, promień 16, padding 24) w wersji jasnej: chłodna szarość --v2-pack. */

/* Podsumowanie oceny Google na linii bazowej tytułu, po prawej. */
.v2-opinie__summary {
  grid-column: 2;
  grid-row: 1;
  align-self: end;
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 0.45em;
  color: var(--v2-ink);
  white-space: nowrap;
}

.v2-opinie__summary-star {
  width: 18px;
  height: 18px;
  color: var(--v2-ink);
}

.v2-opinie__summary-rate {
  font-family: var(--gs-font-display);
  font-size: var(--v2-title-size);
  line-height: 1.33;
}

.v2-opinie__summary-text {
  color: var(--v2-text);
  font-size: var(--v2-small-size);
  line-height: var(--v2-small-leading);
}

/* ---------- Kadr i tor ---------- */
.v2-opinie__viewport {
  position: relative;
}

.v2-opinie__track {
  display: flex;
  align-items: flex-start; /* karty do góry, każda tak wysoka jak jej treść (decyzja Piotra 19.10) */
  gap: 16px;
  margin: 0;
  padding: 0 var(--v2-bleed);
  list-style: none;
  overflow-x: auto;
  overflow-y: hidden; /* bez tego rząd przewija się minimalnie w pionie i łapie kółko myszy */
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: var(--v2-bleed);
  scrollbar-width: none;
}

.v2-opinie__track::-webkit-scrollbar {
  display: none;
}

@media (prefers-reduced-motion: no-preference) {
  .v2-opinie__track {
    scroll-behavior: smooth;
  }
}

.v2-opinie__slide {
  display: flex;
  flex: 0 0 320px;
  scroll-snap-align: start;
}

.v2-opinie.is-marquee .v2-opinie__viewport {
  overflow: hidden;
  overflow: clip; /* hidden dalej przewija kadr do elementu z fokusem */
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 var(--v2-bleed), #000 calc(100% - 160px), transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 var(--v2-bleed), #000 calc(100% - 160px), transparent 100%);
}

.v2-opinie.is-marquee .v2-opinie__track {
  overflow: visible;
  scroll-snap-type: none;
  will-change: transform;
}

/* ---------- Karta ---------- */
.v2-opinie__card {
  --v2-depth: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  margin: 0;
  padding: 28px 24px 24px;
  border-radius: var(--v2-r-card);
  background: var(--v2-pack);
  color: var(--v2-ink);
  transform-origin: 50% 0; /* karty wyrównane do góry, więc maleją od górnej krawędzi */
}

/* Głębia przy prawej krawędzi (desktronic: skala do 360/430 = 0,837 i krycie 0,65). */
.v2-opinie.is-marquee .v2-opinie__card {
  transform: scale(calc(1 - var(--v2-depth) * 0.163));
  opacity: calc(1 - var(--v2-depth) * 0.35);
}

.v2-opinie__stars {
  display: flex;
  gap: 2px;
  margin: 0;
  color: var(--v2-ink);
}

.v2-opinie__star {
  width: 14px;
  height: 14px;
}

.v2-opinie__star.is-off {
  color: var(--v2-control);
}

.v2-opinie__quote {
  margin: 20px 0 0;
}

.v2-opinie__quote > p {
  margin: 0;
  color: var(--v2-ink);
  font-size: var(--gs-body-size);
  line-height: var(--gs-body-leading);
}

/* Zalety i Wady: podpis 12 z lewej, treść 14 z prawej, oddzielone linią od cytatu. */
.v2-opinie__pc {
  display: grid;
  gap: 6px;
  margin: 20px 0 0;
  padding-top: 16px;
  border-top: 1px solid var(--v2-control);
}

.v2-opinie__pc-row {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  gap: 8px;
  align-items: baseline;
}

.v2-opinie__pc dt {
  color: var(--v2-muted);
  font-size: var(--v2-caption-size);
  line-height: var(--v2-caption-leading);
}

.v2-opinie__pc dd {
  margin: 0;
  color: var(--v2-ink);
  font-size: var(--v2-small-size);
  line-height: 1.5;
}

/* Podpis: autor i miasto, pod nim produkt (miniatura na białym polu, link) i źródło. */
.v2-opinie__caption {
  display: grid;
  gap: 16px;
  margin-top: auto;
  padding-top: 24px;
}

.v2-opinie__who {
  color: var(--v2-ink);
  font-family: var(--gs-font-display);
  font-size: 16px;
  line-height: 24px;
}

.v2-opinie__product {
  display: flex;
  align-items: center;
  gap: 12px;
}

.v2-opinie__thumb {
  flex: none;
  width: 48px;
  height: 48px;
  padding: 4px;
  overflow: hidden;
  border-radius: var(--v2-r-chip);
  background: var(--gs-on-brand);
}

.v2-opinie__thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  mix-blend-mode: multiply;
}

.v2-opinie__product-text {
  display: grid;
  min-width: 0;
}

.v2-opinie__product-link {
  overflow: hidden;
  color: var(--v2-ink);
  font-size: var(--v2-small-size);
  line-height: 20px;
  text-decoration: underline;
  text-decoration-color: var(--v2-control);
  text-underline-offset: 3px;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: text-decoration-color var(--v2-t-control);
}

.v2-opinie__product-link:hover {
  text-decoration-color: currentColor;
}

.v2-opinie__source {
  color: var(--v2-muted);
  font-size: var(--v2-caption-size);
  line-height: var(--v2-caption-leading);
}

/* ---------- Pod rzędem: pauza (tryb marquee) albo strzałki (tryb statyczny) ---------- */
.v2-opinie__foot {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 24px;
  margin-top: 40px;
}

.v2-opinie__foot:not(:has(> :not([hidden]))) {
  display: none;
}

.v2-opinie__toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 48px;
  padding: 0 22px 0 18px;
  border: 1px solid var(--v2-control);
  border-radius: var(--v2-r-control);
  background: var(--gs-bg);
  color: var(--v2-ink);
  font-family: var(--gs-font-display);
  font-size: 16px;
  cursor: pointer;
  transition: border-color var(--v2-t-control);
}

.v2-opinie__toggle:hover {
  border-color: var(--v2-ink);
}

.v2-opinie__toggle .gs-icon {
  width: 18px;
  height: 18px;
}

.v2-opinie__icon-play,
.v2-opinie[data-paused] .v2-opinie__icon-pause {
  display: none;
}

.v2-opinie[data-paused] .v2-opinie__icon-play {
  display: inline;
}

/* Fokus w karcie: obrys wokół linku produktu (globalny styl V2), karta staje (skrypt). */

@media (max-width: 767px) {
  .v2-head:has(.v2-opinie__summary) {
    grid-template-columns: minmax(0, 1fr);
  }

  .v2-opinie__summary {
    grid-column: 1;
    grid-row: 2;
    justify-self: start;
    margin: 0;
  }

  .v2-opinie__slide {
    flex-basis: 280px;
  }

  .v2-opinie__card {
    padding: 24px 20px 20px;
  }
}

/* Na mobile strzałek nie ma (przewija się palcem): stopka bez pauzy znika razem z odstępem. */
@media (max-width: 767px) {
  .v2-opinie__foot:not(:has(> .v2-opinie__toggle:not([hidden]))) {
    display: none;
  }
}
