/* Recenzie – náš dizajn AlVi: tri stĺpce plynú hore / dole / hore (ako mage-design).
   Farby majú zálohu, lebo sekcia sa vkladá aj na stránky bez premium.css (Pripravujeme). */
.uv-revs {
	--rv-fg: var(--av-fg, #f4eee4);
	--rv-2: var(--av-2, rgba(244, 238, 228, .7));
	--rv-3: var(--av-3, rgba(244, 238, 228, .46));
	--rv-gold: var(--av-gold, #d8b06c);
	--rv-gold-2: var(--av-gold-2, #efd6a4);
	--rv-grad: var(--av-gold-grad, linear-gradient(135deg, #f0d7a6 0%, #d8b06c 48%, #b98a47 100%));
	--rv-line: var(--av-line-2, rgba(233, 211, 170, .22));
	--rv-serif: var(--av-serif, "Cormorant Garamond", Georgia, "Times New Roman", serif);
	--rv-sans: var(--av-sans, "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif);
	--rv-ease: var(--av-ease, cubic-bezier(.2, .7, .2, 1));
	--rv-pad: var(--av-pad, clamp(16px, 4vw, 40px));
	--rv-gap: clamp(12px, 1.4vw, 20px);
	position: relative; isolation: isolate; box-sizing: border-box;
	max-width: calc(var(--av-w, 1240px) + 2 * var(--rv-pad)); margin: 0 auto; padding: clamp(80px, 9vw, 130px) var(--rv-pad) clamp(90px, 11vw, 160px);
	color: var(--rv-fg); font-family: var(--rv-sans);
}
.uv-revs *, .uv-revs *::before, .uv-revs *::after { box-sizing: border-box; }
.uv-revs::before {
	content: ""; position: absolute; left: 50%; top: 30%; z-index: -1; width: min(1100px, 100%); height: 70%; transform: translateX(-50%); pointer-events: none;
	background: radial-gradient(closest-side, rgb(216 176 108 / 9%), transparent 75%);
}
.av-uvod .uv-revs { padding-top: 0; padding-bottom: clamp(60px, 5vw, 110px); }

.uv-revs__head { margin: 0 auto clamp(36px, 4.4vw, 60px); max-width: 760px; text-align: center; }
.uv-revs .uv-revs__eyebrow { display: inline-flex; align-items: center; gap: 14px; margin: 0 0 18px; color: var(--rv-gold); font: 600 11px/1 var(--rv-sans); letter-spacing: .3em; text-transform: uppercase; }
.uv-revs .uv-revs__eyebrow::before, .uv-revs .uv-revs__eyebrow::after { content: ""; width: 28px; height: 1px; background: currentColor; opacity: .7; }
.uv-revs .uv-revs__title { margin: 0; color: var(--rv-fg); font: 500 clamp(42px, 5.4vw, 78px)/1 var(--rv-serif); letter-spacing: -.01em; }
.uv-revs .uv-revs__title .uv-line { display: block; }
.uv-revs .uv-revs__title .uv-line > span { display: inline-block; padding-inline: .04em; }
.uv-revs .uv-revs__title em { font-style: italic; background: var(--rv-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.uv-revs__text { --d: 2; max-width: 46ch; margin: 22px auto 0; color: var(--rv-2); font-size: clamp(15px, 1.2vw, 17px); line-height: 1.7; }
.uv-revs__score {
	--d: 3; display: inline-flex; align-items: center; gap: 12px; margin: 26px 0 0; padding: 10px 20px 10px 14px; border-radius: 999px;
	color: var(--rv-fg) !important; text-decoration: none !important; font-size: 13px; background: rgb(255 255 255 / 3%); box-shadow: inset 0 0 0 1px var(--rv-line);
	transition: box-shadow .4s var(--rv-ease), background .4s;
}
a.uv-revs__score:hover { background: rgb(216 176 108 / 8%); box-shadow: inset 0 0 0 1px var(--rv-gold); }
.uv-revs__score b { color: var(--rv-gold-2); font: 600 26px/1 var(--rv-serif); font-variant-numeric: lining-nums; }
.uv-revs__score-stars { color: var(--rv-gold); letter-spacing: 2px; font-size: 13px; }
.uv-revs__score span:last-child { color: var(--rv-2); }

.uv-revs__ticker {
	--d: 3; display: grid; grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); gap: var(--rv-gap);
	height: clamp(560px, 46vw, 680px); overflow: hidden;
	-webkit-mask-image: linear-gradient(180deg, transparent 0, #000 12%, #000 88%, transparent 100%);
	mask-image: linear-gradient(180deg, transparent 0, #000 12%, #000 88%, transparent 100%);
}
.uv-revs__col { min-width: 0; overflow: hidden; }
.uv-revs__col--all { display: none; }
/* karty majú medzeru zospodu (nie gap), takže posun o -50 % sedí presne a slučka nemá skok */
.uv-revs__track { display: flex; flex-direction: column; animation: uvRevUp calc(var(--n, 4) * 9s) linear infinite; will-change: transform; }
.uv-revs__col.is-down .uv-revs__track { animation-name: uvRevDown; }
.uv-revs__ticker:hover .uv-revs__track { animation-play-state: paused; }
@keyframes uvRevUp { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(0, -50%, 0); } }
@keyframes uvRevDown { from { transform: translate3d(0, -50%, 0); } to { transform: translate3d(0, 0, 0); } }

.uv-rev {
	position: relative; display: flex; flex-direction: column; gap: 16px; margin: 0 0 var(--rv-gap); padding: 24px 24px 20px; border-radius: 18px;
	background: linear-gradient(180deg, rgb(255 255 255 / 4.5%), rgb(255 255 255 / 1.5%)); box-shadow: inset 0 0 0 1px rgb(240 216 170 / 12%), 0 24px 50px -36px rgb(0 0 0 / 90%);
	/* bez backdrop-filter: maska pásu ho aj tak odreže od pozadia (nič nerozmaže), no v idúcom páse ho mobil
	   prepočítaval každý snímok – pri lupe prstami potom preblikávala celá stránka */
	transition: box-shadow .5s var(--rv-ease), background .5s var(--rv-ease);
}
/* veľká zlatá úvodzovka v rohu */
.uv-rev::before { content: "\201C"; position: absolute; right: 20px; top: 6px; color: var(--rv-gold); opacity: .22; font: 600 76px/1 var(--rv-serif); pointer-events: none; }
.uv-rev:hover { background: linear-gradient(180deg, rgb(216 176 108 / 9%), rgb(255 255 255 / 2%)); box-shadow: inset 0 0 0 1px rgb(240 216 170 / 40%), 0 24px 60px -30px rgb(216 176 108 / 35%); }
.uv-rev__stars { display: flex; gap: 3px; color: var(--rv-gold-2); font-size: 14px; line-height: 1; text-shadow: 0 0 12px rgb(216 176 108 / 45%); }
.uv-rev__stars i { font-style: normal; }
.uv-rev__stars .is-off { color: rgb(244 238 228 / 18%); text-shadow: none; }
.uv-rev__quote { margin: 0; padding: 0; border: 0; }
.uv-rev__quote p {
	margin: 0; color: var(--rv-fg); font: italic 400 clamp(17px, 1.35vw, 19px)/1.55 var(--rv-serif);
	display: -webkit-box; -webkit-line-clamp: 9; -webkit-box-orient: vertical; overflow: hidden;
}
.uv-rev__who { display: flex; align-items: center; gap: 12px; padding-top: 14px; border-top: 1px solid rgb(240 216 170 / 10%); }
.uv-rev__avatar {
	position: relative; flex: 0 0 auto; display: grid; place-items: center; width: 40px; height: 40px; overflow: hidden; border-radius: 50%;
	background: var(--rv-grad); color: #1a140a; font: 700 13px/1 var(--rv-sans); box-shadow: 0 0 0 2px rgb(11 12 11), 0 0 0 3px rgb(216 176 108 / 45%);
}
.uv-rev__avatar img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.uv-rev__meta { flex: 1 1 auto; min-width: 0; display: grid; gap: 3px; }
.uv-rev__name { overflow: hidden; color: var(--rv-fg); font: 600 13.5px/1.2 var(--rv-sans); white-space: nowrap; text-overflow: ellipsis; }
.uv-rev__ago { color: var(--rv-3); font-size: 11.5px; }
.uv-rev__g { flex: 0 0 auto; width: 18px; height: 18px; opacity: .9; }

@media (min-width: 761px) and (max-width: 1080px) {
	/* tablet: dva stĺpce, tretí sa skryje */
	.uv-revs__ticker[style*="--cols:3"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.uv-revs__col:nth-child(3) { display: none; }
}
@media (max-width: 760px) {
	/* mobil: jeden stĺpec so všetkými recenziami */
	.uv-revs--hide-mobile { display: none; }
	.uv-revs { padding-block: 70px 90px; }
	.uv-revs__ticker { display: block; height: 560px; }
	.uv-revs__col { display: none; }
	.uv-revs__col--all { display: block; }
	.uv-revs .uv-revs__title { font-size: clamp(38px, 11vw, 54px); }
	.uv-rev { padding: 20px 18px 16px; gap: 14px; }
	.uv-rev__quote p { font-size: 17px; -webkit-line-clamp: 7; }
}
@media (prefers-reduced-motion: reduce) {
	.uv-revs__ticker { height: auto; -webkit-mask-image: none; mask-image: none; }
	.uv-revs__track { animation: none; transform: none; }
	.uv-rev[aria-hidden="true"] { display: none; }
}
