/* KF Reviews Slider — plynulý nekonečný marquee bez resetu + full-width breakout */

.kf-reviews-wrap{
  background: var(--kf-bg);
  color: var(--kf-text);
  padding: 44px 0;
  width: 100%;
}

/* Full-width breakout (funguje aj keď je shortcode v kontajneri s max-width) */
.kf-reviews-wrap[data-full-width="true"]{
  position: relative;
  left: 50%;
  right: 50%;
  width: 100vw;
  margin-left: -50vw;
  margin-right: -50vw;
}

.kf-reviews-viewport{
  overflow: hidden;
  width: 100%;
}

.kf-reviews-track{
  display: flex;
  align-items: flex-start;
  gap: var(--kf-gap);
  flex-wrap: nowrap;
  will-change: transform;
  animation-duration: var(--kf-speed);
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  transform: translate3d(0,0,0);
}

/* animation distance is computed by JS: --kf-loop (px) */
.kf-reviews-wrap.is-left .kf-reviews-track{
  animation-name: kfMarquee;
}
.kf-reviews-wrap.is-right .kf-reviews-track{
  animation-name: kfMarqueeRight;
}

.kf-reviews-wrap[data-pause-hover="true"] .kf-reviews-viewport:hover .kf-reviews-track{
  animation-play-state: paused;
}

.kf-review{
  flex: 0 0 var(--kf-itemw);
  max-width: var(--kf-itemw);
  padding: 0;
}

.kf-stars{
  position: relative;
  display: inline-block;
  height: 22px;
  margin: 0 0 18px 0;
  color: var(--kf-stars);
}

.kf-stars-svg{
  display: block;
  width: 128px;
  height: 22px;
}

.kf-stars-base{ display:block; }
.kf-stars-fill{
  position:absolute;
  left:0; top:0;
  height:100%;
  overflow:hidden;
  color: var(--kf-stars);
  pointer-events: none;
}

.kf-text{
  font-family: "Figtree", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 600;
  font-size: 18px;
  line-height: 1.65;
  letter-spacing: 0.01em;
  margin: 0 0 20px 0;
  color: var(--kf-text);
}

.kf-name{
  font-family: "Cormorant Infant", Georgia, "Times New Roman", serif;
  font-weight: 500;
  font-size: 28px;
  line-height: 1.2;
  margin: 0;
  color: var(--kf-name);
}

/* No "reset": end frame == start frame because we move exactly by 1st set width */
@keyframes kfMarquee{
  from { transform: translate3d(0,0,0); }
  to   { transform: translate3d(calc(-1 * var(--kf-loop, 0px)),0,0); }
}
@keyframes kfMarqueeRight{
  from { transform: translate3d(calc(-1 * var(--kf-loop, 0px)),0,0); }
  to   { transform: translate3d(0,0,0); }
}

@media (max-width: 900px){
  .kf-reviews-wrap{ padding: 34px 0; }
  .kf-text{ font-size: 16px; }
  .kf-name{ font-size: 24px; }
}
@media (max-width: 520px){
  .kf-review{ flex-basis: min(var(--kf-itemw), 86vw); max-width: 86vw; }
  .kf-reviews-track{ gap: 70px; }
}
