/* WVZ Yandex Reviews — базовые стили.
   Дизайн управляется CSS-переменными на обёртке .wvzyr (задаются в настройках)
   и переопределяется через Custom CSS. Шрифт наследуется от темы сайта. */

.wvzyr {
	--wvzyr-star: #ffb800;
	--wvzyr-accent: #1f1f1f;
	--wvzyr-bg: #ffffff;
	--wvzyr-text: #333333;
	--wvzyr-border: #e8e8e8;
	--wvzyr-radius: 16px;
	--wvzyr-cols: 3;
	--wvzyr-gap: 20px;
	color: var(--wvzyr-text);
	font-size: 15px;
	line-height: 1.55;
}
.wvzyr *, .wvzyr *::before, .wvzyr *::after { box-sizing: border-box; }

/* Шапка с общим рейтингом */
.wvzyr-head {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 10px 14px;
	margin: 0 0 18px;
}
.wvzyr-head__num {
	font-size: 2.1em;
	font-weight: 700;
	line-height: 1;
	color: var(--wvzyr-accent);
}
.wvzyr-head__meta { display: inline-flex; flex-direction: column; gap: 2px; }
.wvzyr-head__title { font-weight: 600; color: var(--wvzyr-accent); }
.wvzyr-head__meta a { color: inherit; opacity: .75; text-decoration: underline; text-underline-offset: 3px; }
.wvzyr-head__meta a:hover { opacity: 1; }

/* Звёзды: подложка + цветной слой с шириной в % (дробный рейтинг) */
.wvzyr-stars {
	position: relative;
	display: inline-block;
	font-size: 1.05em;
	line-height: 1;
	letter-spacing: 2px;
	white-space: nowrap;
	vertical-align: middle;
}
.wvzyr-stars__bg { color: var(--wvzyr-border); }
.wvzyr-stars__fg {
	position: absolute;
	inset: 0 auto 0 0;
	overflow: hidden;
	color: var(--wvzyr-star);
}

/* Сетка карточек */
.wvzyr-grid {
	display: grid;
	grid-template-columns: repeat(var(--wvzyr-cols), minmax(0, 1fr));
	gap: var(--wvzyr-gap);
}
.wvzyr--list .wvzyr-grid { grid-template-columns: 1fr; }

@media (max-width: 900px) { .wvzyr-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .wvzyr-grid { grid-template-columns: 1fr; } }

/* Карточка отзыва */
.wvzyr-item {
	display: flex;
	flex-direction: column;
	background: var(--wvzyr-bg);
	border: 1px solid var(--wvzyr-border);
	border-radius: var(--wvzyr-radius);
	padding: 18px 20px;
	transition: box-shadow .18s ease, transform .18s ease;
}
.wvzyr-item:hover { box-shadow: 0 8px 24px rgba(0, 0, 0, .07); }

.wvzyr-item__top {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 10px;
}
.wvzyr-item__ava {
	flex: 0 0 44px;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	object-fit: cover;
}
.wvzyr-item__ava--txt {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-weight: 600;
	font-size: 18px;
}
.wvzyr-item__who { display: flex; flex-direction: column; min-width: 0; margin-right: auto; }
.wvzyr-item__name {
	font-weight: 600;
	color: var(--wvzyr-accent);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.wvzyr-item__date { font-size: .86em; opacity: .6; }

/* Текст: кламп + разворот кнопкой «ещё» (JS) */
.wvzyr-item__text[data-wvzyr-clamp] {
	display: -webkit-box;
	-webkit-line-clamp: 5;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.wvzyr-item__text.is-open {
	display: block;
	-webkit-line-clamp: unset;
}
.wvzyr-more {
	align-self: flex-start;
	margin-top: 6px;
	padding: 0;
	background: none;
	border: 0;
	cursor: pointer;
	font: inherit;
	font-size: .9em;
	color: var(--wvzyr-accent);
	text-decoration: underline;
	text-underline-offset: 3px;
	opacity: .8;
}
.wvzyr-more:hover { opacity: 1; }

/* Ответ организации */
.wvzyr-item__reply {
	margin-top: 12px;
	padding: 10px 12px;
	border-left: 3px solid var(--wvzyr-star);
	background: rgba(0, 0, 0, .025);
	border-radius: 0 8px 8px 0;
	font-size: .93em;
}
.wvzyr-item__reply-label {
	display: block;
	font-weight: 600;
	font-size: .86em;
	margin-bottom: 4px;
	color: var(--wvzyr-accent);
}

/* Карусель */
.wvzyr-carousel { position: relative; }
.wvzyr-track {
	display: flex;
	gap: var(--wvzyr-gap);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	padding-bottom: 6px;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
}
.wvzyr-track .wvzyr-item {
	flex: 0 0 min(340px, 85%);
	scroll-snap-align: start;
}
.wvzyr-nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	border: 1px solid var(--wvzyr-border);
	background: var(--wvzyr-bg);
	color: var(--wvzyr-accent);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .1);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 0 3px;
}
.wvzyr-nav--prev { left: -12px; }
.wvzyr-nav--next { right: -12px; }
.wvzyr-nav:hover { box-shadow: 0 4px 14px rgba(0, 0, 0, .16); }

/* Бейдж */
.wvzyr--badge .wvzyr-head {
	display: inline-flex;
	align-items: center;
	margin: 0;
	padding: 12px 18px;
	background: var(--wvzyr-bg);
	border: 1px solid var(--wvzyr-border);
	border-radius: var(--wvzyr-radius);
}

/* Подвал */
.wvzyr-footer { margin-top: 16px; font-size: .93em; }
.wvzyr-footer a { color: var(--wvzyr-accent); text-decoration: underline; text-underline-offset: 3px; opacity: .8; }
.wvzyr-footer a:hover { opacity: 1; }

/* Доступность и reduced motion */
.wvzyr :focus-visible { outline: 2px solid var(--wvzyr-accent); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
	.wvzyr-item, .wvzyr-track { transition: none; scroll-behavior: auto; }
}

/* Фото из отзывов */
.wvzyr-photos{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.wvzyr-photos a{display:block;line-height:0;border-radius:10px;overflow:hidden}
.wvzyr-photos img{width:68px;height:68px;object-fit:cover;display:block;transition:transform .15s ease}
.wvzyr-photos a:hover img,.wvzyr-photos a:focus-visible img{transform:scale(1.06)}
.wvzyr--carousel .wvzyr-photos img{width:56px;height:56px}
