/* Жёсткий фикс горизонтального переполнения страницы (белая полоса справа,
   сдвиг контента влево на скриншоте). html, а не body — чтобы не ломать
   position: sticky у шапки. */
html { overflow-x: hidden; max-width: 100%; }
body { max-width: 100%; }

/* Полностью скрыть системный скроллбар у карусели отзывов (раньше был виден
   серой полосой снизу) — навигация только кнопками-стрелками */
.scrollbar-thin { scrollbar-width: none; -ms-overflow-style: none; }
.scrollbar-thin::-webkit-scrollbar { display: none; height: 0; }

/* Лёгкая подсветка карточки, которая сейчас проигрывается в автолистании отзывов */
[data-review-card].pst-review-active > div:first-child { box-shadow: 0 0 0 2px var(--tw-color-sky-400, #38bdf8); }

/* Плавное появление hero-блока при загрузке */
.animate-fade-in { animation: pstFadeIn .7s ease forwards; }
@keyframes pstFadeIn {
	from { opacity: 0; transform: translateY(10px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* Мягкая пульсация для плавающей кнопки настроек / бейджей */
.animate-pulse-subtle { animation: pstPulseSubtle 2.4s ease-in-out infinite; }
@keyframes pstPulseSubtle {
	0%, 100% { opacity: 1; }
	50%      { opacity: .55; }
}

/* Плейсхолдер для видео-отзыва, пока не выбран реальный файл в админке */
.pst-video-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	background: linear-gradient(160deg, #0f172a, #1e293b);
	color: #64748b;
	font-size: 11px;
	text-align: center;
	padding: 12px;
}

/* Появление карточек при скролле (см. main.js — IntersectionObserver добавляет .is-visible) */
.pst-reveal { transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; }
.pst-reveal.is-visible { opacity: 1; transform: none; }
.pst-mobile-menu { display: none; }
.pst-mobile-menu.is-open { display: block; }

/* Запас снизу под cookie-баннер, чтобы не перекрывал плавающие кнопки соцсетей на мобильных.
   Класс pst-has-cookie-banner навешивается на <body> через JS баннера. */
@media (max-width: 640px) {
	body.pst-has-cookie-banner .fixed.bottom-6.right-6 { bottom: 6.5rem; }
}

/* Honeypot-поле формы — полностью скрыто (display:none), а не сдвинуто за экран
   через position:absolute. Так надёжнее: часть менеджеров паролей всё равно
   находит и подставляет данные в поля, просто сдвинутые за пределы экрана,
   из-за чего честная заявка могла "тихо" не сохраниться (форма показывала
   успех, но honeypot оказывался заполнен браузером, а не ботом реально). */
.pst-honeypot { display: none !important; }

/* Прозрачный фон у отложенных iframe-плееров отзывов (пока нет src) —
   иначе часть браузеров заливает пустой iframe белым и постер не виден. */
iframe[data-review-frame] { background: transparent; }
