/* ==================================================================
   Kelpie_v2 — Отзывы, фронтенд
   «Закрытые» стили: блок изолирован от глобальных стилей сайта и темы.
   База зафиксирована через !important + сброс наследования, поэтому
   чистка/перетряска глобального CSS не должна ломать вид блока.
   Все правила скоупированы внутри .kbv2-rev.

   ── БРЕЙКПОЙНТЫ (адаптив) ─────────────────────────────────────────
   • ≤820px : рейтинг-колонка выравнивается влево, заголовок мельче.
   • ≤768px : шапка в один столбец; рейтинг на всю ширину; карточки уже;
              межблочный отступ 56px. Карусель уже прокручивается по X —
              горизонтального переполнения страницы нет.
   • ≤480px : ещё компактнее паддинги, заголовок 22px, карточка 268px.
   • ≤420px : карточка фикс. 240px < (320 − 2*14 паддинг) → нет overflow;
              заголовок 20px, бейдж переносится; стрелки 40px.
   • ≤360 / ≤320px проверено: внутренних элементов шире ~280px нет,
              .kbv2-rev__rail имеет overflow-x:auto, страница не «едет».
   ================================================================== */

/* ── Защитный сброс ───────────────────────────────────────────── */
.kbv2-rev,
.kbv2-rev *,
.kbv2-rev *::before,
.kbv2-rev *::after {
	box-sizing: border-box !important;
}

/* ── typography firewall: вернуть наследование голым элементам, чтобы темовые `p{font-size}` / `h*{}` не продавливали блок; классовые правила ниже всё равно выигрывают ── */
.kbv2-rev :where(p,h1,h2,h3,h4,h5,h6,ul,ol,li,blockquote,figure,figcaption,small,strong,em,b,i,span,a,button,input,label) { font-size: inherit; line-height: inherit; font-family: inherit; }


.kbv2-rev {
	--rev-ink:#16243B;
	--rev-ink-soft:#34425C;
	--rev-mute:#727C8C;
	--rev-paper:#FFFFFF;
	--rev-bg:#EEF1F6;
	--rev-line:#E5E9F1;
	--rev-soft:#F4F7FB;
	--rev-blue:#0088C4;
	--rev-blue-deep:#006F9F;
	--rev-blue-soft:#E2F2F9;
	--rev-blue-line:#CDE8F4;
	--rev-star:#F6A623;
	--rev-star-soft:#FFF2DA;

	display:block !important;
	max-width:1200px !important;
	margin:0 auto 88px !important;
	padding:0 20px !important;
	font-family:'Manrope', system-ui, -apple-system, "Segoe UI", sans-serif !important;
	font-size:16px !important;
	line-height:1.5 !important;
	text-align:left !important;
	color:var(--rev-ink) !important;
	background:none !important;
}

/* Сброс наследования темы внутри блока */
.kbv2-rev .kbv2-rev__inner,
.kbv2-rev p,
.kbv2-rev h2,
.kbv2-rev div,
.kbv2-rev span,
.kbv2-rev article,
.kbv2-rev button,
.kbv2-rev svg {
	font-family:inherit !important;
}
.kbv2-rev p, .kbv2-rev h2 { margin:0 !important; padding:0 !important; }
.kbv2-rev u { text-decoration:underline !important; text-underline-offset:2px !important; }

.kbv2-rev__inner {
	position:relative !important;
}

/* ── Шапка ────────────────────────────────────────────────────── */
.kbv2-rev__top {
	position:relative !important; z-index:1 !important;
	display:flex !important; align-items:flex-start !important;
	justify-content:space-between !important; gap:24px !important; flex-wrap:wrap !important;
}
.kbv2-rev__titlecol { min-width:0 !important; flex:1 1 320px !important; }

.kbv2-rev__eyebrow {
	font-weight:700 !important; font-size:12px !important; letter-spacing:2px !important;
	color:var(--rev-mute) !important; text-transform:uppercase !important; margin:0 0 12px !important;
}
.kbv2-rev__head {
	margin:0 !important; font-weight:800 !important; font-size:31px !important; line-height:1.15 !important;
	letter-spacing:-.3px !important; color:var(--rev-ink) !important;
}
.kbv2-rev__head strong { color:var(--rev-blue) !important; font-weight:800 !important; }

/* ── Рейтинг-бейдж ────────────────────────────────────────────── */
.kbv2-rev__ratecol {
	display:flex !important; flex-direction:column !important; align-items:flex-end !important;
	gap:12px !important; margin-top:27px !important;
}
.kbv2-rev__badge {
	display:inline-flex !important; align-items:center !important; gap:11px !important;
	background:var(--rev-star-soft) !important; border:1px solid #F4DDB2 !important;
	border-radius:999px !important; padding:8px 16px 8px 11px !important;
}
.kbv2-rev__pin { width:24px !important; height:24px !important; flex:0 0 auto !important; }
.kbv2-rev__score {
	font-weight:900 !important; font-size:19px !important; line-height:1 !important;
	color:var(--rev-ink) !important; letter-spacing:-.3px !important;
}
.kbv2-rev__badge-stars { display:flex !important; gap:2px !important; color:var(--rev-star) !important; }
.kbv2-rev__badge-stars .kbv2-rev__star { width:14px !important; height:14px !important; }
.kbv2-rev__star {
	display:inline-flex !important; align-items:center !important; justify-content:center !important;
	width:15px !important; height:15px !important; color:var(--rev-star) !important;
}
.kbv2-rev__star svg { width:100% !important; height:100% !important; display:block !important; }
.kbv2-rev__star--off { color:#E3E7EF !important; }
.kbv2-rev__rate-meta {
	font-weight:600 !important; font-size:12.5px !important; color:var(--rev-mute) !important;
}
.kbv2-rev__rate-meta strong { color:var(--rev-ink-soft) !important; font-weight:800 !important; }

/* ── Переключатель источника ──────────────────────────────────── */
.kbv2-rev__seg {
	position:relative !important; z-index:1 !important;
	display:inline-flex !important; gap:4px !important; margin-top:22px !important; padding:4px !important;
	background:var(--rev-soft) !important; border:1px solid var(--rev-line) !important; border-radius:999px !important;
	max-width:100% !important; flex-wrap:wrap !important;
}
.kbv2-rev__seg-btn {
	display:inline-flex !important; align-items:center !important; gap:8px !important; cursor:pointer !important;
	border:none !important; background:transparent !important; color:var(--rev-ink-soft) !important;
	font-weight:700 !important; font-size:13px !important; padding:9px 16px !important; border-radius:999px !important;
	transition:background .18s, color .18s, box-shadow .18s !important;
}
.kbv2-rev__seg-btn .kbv2-rev__pin { width:16px !important; height:16px !important; }
.kbv2-rev__sc {
	display:inline-flex !important; align-items:center !important; gap:4px !important;
	font-weight:900 !important; color:var(--rev-ink) !important;
}
.kbv2-rev__sc .kbv2-rev__star { width:12px !important; height:12px !important; }
.kbv2-rev__seg-btn.is-active {
	background:var(--rev-paper) !important; color:var(--rev-ink) !important;
	box-shadow:0 1px 0 rgba(22,36,59,.04), 0 6px 14px -8px rgba(22,36,59,.3) !important;
}

/* ── Карусель ─────────────────────────────────────────────────── */
.kbv2-rev__rail {
	position:relative !important; z-index:1 !important; margin-top:22px !important;
	overflow-x:auto !important; overflow-y:hidden !important; scroll-snap-type:x proximity !important;
	scrollbar-width:none !important; -ms-overflow-style:none !important; padding:6px 2px !important;
	-webkit-mask-image:linear-gradient(90deg,transparent,#000 2%,#000 98%,transparent);
	        mask-image:linear-gradient(90deg,transparent,#000 2%,#000 98%,transparent);
}
.kbv2-rev__rail::-webkit-scrollbar { display:none !important; width:0 !important; height:0 !important; }
.kbv2-rev__track { display:flex !important; gap:16px !important; width:max-content !important; }

.kbv2-rev__card {
	scroll-snap-align:start !important; flex:0 0 auto !important;
	width:336px !important; height:418px !important; position:relative !important; overflow:hidden !important;
	background:var(--rev-paper) !important; border:1px solid var(--rev-line) !important; border-radius:18px !important;
	padding:24px 26px 22px !important; display:flex !important; flex-direction:column !important;
	transition:border-color .22s, background .22s !important;
}
.kbv2-rev__card:hover { border-color:var(--rev-blue-line) !important; background:#FBFCFE !important; }

.kbv2-rev__rhead { display:flex !important; align-items:center !important; gap:12px !important; }
.kbv2-rev__ava {
	width:40px !important; height:40px !important; border-radius:50% !important; flex:0 0 auto !important;
	display:flex !important; align-items:center !important; justify-content:center !important;
	font-weight:700 !important; font-size:14px !important; color:var(--rev-blue-deep) !important;
	background:var(--rev-blue-soft) !important; letter-spacing:.5px !important;
}
.kbv2-rev__id { min-width:0 !important; }
.kbv2-rev__nm {
	font-weight:700 !important; font-size:15px !important; line-height:1.2 !important; color:var(--rev-ink) !important;
	white-space:nowrap !important; overflow:hidden !important; text-overflow:ellipsis !important;
}
.kbv2-rev__dt { font-weight:600 !important; font-size:11.5px !important; color:var(--rev-mute) !important; margin-top:3px !important; }

.kbv2-rev__stars { display:flex !important; gap:2px !important; margin-top:16px !important; }
.kbv2-rev__stars .kbv2-rev__star { width:15px !important; height:15px !important; }

.kbv2-rev__text {
	margin-top:13px !important; flex:1 1 auto !important; min-height:0 !important; overflow:hidden !important;
	font-size:14px !important; line-height:1.6 !important; color:var(--rev-mute) !important;
	-webkit-mask-image:linear-gradient(180deg,#000 82%,transparent 100%);
	        mask-image:linear-gradient(180deg,#000 82%,transparent 100%);
}
.kbv2-rev__text strong { color:var(--rev-ink) !important; font-weight:700 !important; }
.kbv2-rev__text p { margin:0 0 8px !important; }
.kbv2-rev__text p:last-child { margin-bottom:0 !important; }

.kbv2-rev__src {
	display:inline-flex !important; align-items:center !important; gap:8px !important; margin-top:14px !important;
	padding-top:14px !important; border-top:1px solid var(--rev-line) !important;
	font-weight:600 !important; font-size:12.5px !important; color:var(--rev-mute) !important;
}
.kbv2-rev__src .kbv2-rev__pin { width:16px !important; height:16px !important; }
.kbv2-rev__src u { text-decoration-color:#C4CDDB !important; }

/* ── Навигация (стрелки) ──────────────────────────────────────── */
.kbv2-rev__nav {
	position:relative !important; z-index:1 !important; display:flex !important; align-items:center !important;
	justify-content:space-between !important; gap:16px !important; margin-top:18px !important; flex-wrap:wrap !important;
}
.kbv2-rev__navbtns { display:flex !important; gap:10px !important; }
.kbv2-rev__navbtn {
	width:46px !important; height:46px !important; border-radius:50% !important; flex:0 0 auto !important; cursor:pointer !important;
	display:flex !important; align-items:center !important; justify-content:center !important;
	font-size:22px !important; line-height:1 !important; padding:0 !important;
	color:var(--rev-blue-deep) !important; background:var(--rev-blue-soft) !important;
	border:1px solid var(--rev-blue-line) !important;
	transition:background .18s, color .18s, opacity .18s !important;
}
.kbv2-rev__navbtn svg { width:22px !important; height:22px !important; }
.kbv2-rev__navbtn:hover { background:var(--rev-blue) !important; color:#fff !important; }
.kbv2-rev__navbtn:disabled { opacity:.34 !important; cursor:default !important; background:var(--rev-bg) !important; color:var(--rev-mute) !important; }

/* ── Адаптив ──────────────────────────────────────────────────── */
@media (max-width:820px) {
	.kbv2-rev__ratecol { align-items:flex-start !important; }
	.kbv2-rev__head { font-size:26px !important; }
}
@media (max-width:768px) {
	.kbv2-rev { margin-bottom:56px !important; padding:0 14px !important; }
	.kbv2-rev__top { display:flex !important; flex-direction:column !important; align-items:stretch !important; justify-content:flex-start !important; flex-wrap:nowrap !important; gap:12px !important; }
	.kbv2-rev__titlecol { flex:0 0 auto !important; width:100% !important; }
	.kbv2-rev__head { font-size:24px !important; }
	.kbv2-rev__ratecol { flex-direction:row !important; align-items:center !important; flex-wrap:wrap !important; width:100% !important; margin-top:0 !important; gap:6px 12px !important; }
	.kbv2-rev__seg { margin-top:16px !important; }
	.kbv2-rev__rail { margin-top:16px !important; }
	.kbv2-rev__card { width:300px !important; height:420px !important; }
}
@media (max-width:480px) {
	.kbv2-rev__head { font-size:22px !important; }
	.kbv2-rev__card { width:268px !important; height:410px !important; padding:18px 18px 18px !important; }
}
@media (max-width:420px) {
	.kbv2-rev { padding:0 12px !important; }
	.kbv2-rev__head { font-size:20px !important; }
	.kbv2-rev__seg { width:100% !important; }
	.kbv2-rev__card { width:240px !important; height:400px !important; padding:16px 16px 16px !important; }
	.kbv2-rev__navbtn { width:40px !important; height:40px !important; }
	.kbv2-rev__navbtn svg { width:20px !important; height:20px !important; }
}


/* === опциональная рамка с сеткой (тумблер в админке, по умолчанию выкл) === */
.kbv2-rev.is-framed { background:#fff !important; border:none !important; border-radius:24px !important; padding:32px 34px !important; box-shadow:none !important; overflow:hidden !important; position:relative !important; }
.kbv2-rev.is-framed > * { position:relative !important; z-index:1 !important; }
.kbv2-rev.is-framed::before { content:"" !important; position:absolute !important; inset:0 !important; pointer-events:none !important; z-index:0 !important; border-radius:24px !important; background-image:linear-gradient(#D9E4F2 1px,transparent 1px),linear-gradient(90deg,#D9E4F2 1px,transparent 1px) !important; background-size:34px 34px !important; opacity:.55 !important; -webkit-mask-image:radial-gradient(120% 130% at 92% 0%,#000 22%,transparent 66%) !important; mask-image:radial-gradient(120% 130% at 92% 0%,#000 22%,transparent 66%) !important; }
@media (max-width:768px){ .kbv2-rev.is-framed { padding:22px 18px !important; } }
