/* =========================================================================
   Reviews Block V2 — all rules scoped under .reviews-block-v2.
   Per-block CSS (loaded via enqueue_assets only when the block is present).
   Slider structure uses the shared engine's generic classes (.swss__*, driven
   by js/sws-slider.js); the block's own look stays on .rbv2-* classes.
   Tokens: green #028d40, bright #28a745, ink #212529, graphite #343a40,
   muted #777, border #e6e6e6, gold #ffc107.
   ========================================================================= */
.reviews-block-v2 {
	position: relative;
	overflow: hidden;
	background: linear-gradient(155deg, #03a04a 0%, #028d40 46%, #016a31 100%);
}
.reviews-block-v2 *,
.reviews-block-v2 *::before,
.reviews-block-v2 *::after { box-sizing: border-box; }

/* Decorative layers */
.reviews-block-v2 .rbv2-bg {
	position: absolute; inset: 0; z-index: 0; pointer-events: none;
	background:
		radial-gradient(680px 400px at 10% 12%, rgba(120,232,160,.30), transparent 60%),
		radial-gradient(620px 420px at 84% 8%, rgba(90,205,185,.24), transparent 62%),
		radial-gradient(760px 460px at 92% 96%, rgba(0,0,0,.24), transparent 62%),
		radial-gradient(1.5px 1.5px at 18% 28%, rgba(255,255,255,.5) 50%, transparent),
		radial-gradient(1.3px 1.3px at 64% 20%, rgba(255,255,255,.4) 50%, transparent),
		radial-gradient(1.6px 1.6px at 82% 62%, rgba(255,255,255,.45) 50%, transparent),
		radial-gradient(1.2px 1.2px at 36% 74%, rgba(255,255,255,.35) 50%, transparent),
		radial-gradient(1.4px 1.4px at 90% 34%, rgba(255,255,255,.4) 50%, transparent);
}
.reviews-block-v2 .rbv2-shape { position: absolute; z-index: 0; pointer-events: none; }
.reviews-block-v2 .rbv2-shape--blur {
	top: -50px; left: -40px; width: 200px; height: 200px; border-radius: 50%;
	background: rgba(160,240,180,.18); filter: blur(10px);
}
.reviews-block-v2 .rbv2-shape--ring {
	bottom: 36px; right: 7%; width: 120px; height: 120px; border-radius: 50%;
	border: 2px solid rgba(255,255,255,.16);
}
.reviews-block-v2 .rbv2-watermark {
	position: absolute; top: 36px; left: 50%; transform: translateX(-50%); z-index: 0;
	color: rgba(255,255,255,.07); font-size: 170px; line-height: 1; pointer-events: none;
}

/* Container */
.reviews-block-v2 .rbv2-inner {
	position: relative; z-index: 1; max-width: 1140px; margin: 0 auto; padding: 90px 24px;
}

/* Header */
.reviews-block-v2 .rbv2-head { text-align: center; max-width: 680px; margin: 0 auto 56px; }
.reviews-block-v2 .rbv2-eyebrow {
	display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: .08em;
	text-transform: uppercase; color: rgba(255,255,255,.8); margin-bottom: 12px;
}
.reviews-block-v2 .rbv2-title {
	font-family: 'Rubik', sans-serif; font-size: 32px; font-weight: 500; color: #fff;
	margin: 0 0 12px; line-height: 1.2; text-transform: none;
}
.reviews-block-v2 .rbv2-subtitle {
	font-size: 16px; line-height: 1.6; color: rgba(255,255,255,.8); margin: 0;
}

/* Slider viewport (CSS scroll-snap; arrows/dots driven by js/sws-slider.js) */
.reviews-block-v2 .rbv2-slider { position: relative; }
.reviews-block-v2 .swss__viewport {
	overflow-x: auto; overflow-y: hidden;
	scroll-snap-type: x proximity;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none; /* Firefox */
	padding: 6px 2px 22px;
}
.reviews-block-v2 .swss__viewport::-webkit-scrollbar { display: none; } /* WebKit */
.reviews-block-v2 .swss__track { display: flex; flex-wrap: nowrap; gap: 26px; }

/* Slide: card + author, 3 per view on desktop */
.reviews-block-v2 .swss__slide {
	flex: 0 0 calc((100% - 52px) / 3);
	scroll-snap-align: start;
	display: flex; flex-direction: column; gap: 20px;
}

/* Quote card */
.reviews-block-v2 .rbv2-card {
	position: relative; background: #fff; border-radius: .35rem;
	padding: 30px 28px 28px; box-shadow: 0 14px 34px rgba(0,0,0,.16);
}
.reviews-block-v2 .rbv2-quote {
	margin: 0; font-size: 15.5px; line-height: 1.7; color: #212529;
}
.reviews-block-v2 .rbv2-card__mark {
	position: absolute; right: 24px; bottom: 18px; color: #e6e6e6; font-size: 30px; line-height: 1;
}

/* Author */
.reviews-block-v2 .rbv2-author {
	margin: 0; display: flex; align-items: center; gap: 14px; padding-left: 6px;
}
.reviews-block-v2 .rbv2-avatar {
	width: 52px; height: 52px; border-radius: 50%; background: #fff; flex: 0 0 auto;
	display: flex; align-items: center; justify-content: center; overflow: hidden;
}
.reviews-block-v2 .rbv2-avatar__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.reviews-block-v2 .rbv2-avatar__initial { color: #028d40; font-weight: 600; font-size: 20px; line-height: 1; }
.reviews-block-v2 .rbv2-author__meta { display: block; min-width: 0; }
.reviews-block-v2 .rbv2-stars {
	display: inline-flex; gap: 1px; font-size: 12px; letter-spacing: 2px; line-height: 1; margin-bottom: 4px;
}
.reviews-block-v2 .rbv2-stars .is-on { color: #ffc107; }
.reviews-block-v2 .rbv2-stars .is-off { color: rgba(255,255,255,.35); }
.reviews-block-v2 .rbv2-author__name { display: block; font-size: 15px; font-weight: 600; color: #fff; }
.reviews-block-v2 .rbv2-author__role { display: block; font-size: 13px; color: rgba(255,255,255,.72); }

/* Controls (prev • dots • next) */
.reviews-block-v2 .swss__controls {
	display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 40px;
}
.reviews-block-v2 .swss__arrow {
	width: 44px; height: 44px; border-radius: 50%; flex: 0 0 auto; cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center;
	background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.4); color: #fff;
	font-size: 15px; padding: 0; transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.reviews-block-v2 .swss__arrow:hover { background: rgba(255,255,255,.28); }
.reviews-block-v2 .swss__arrow:active { transform: scale(.94); }
/* Kill the UA focus ring on pointer click; keep a visible ring for keyboard users. */
.reviews-block-v2 .swss__arrow:focus { outline: none; }
.reviews-block-v2 .swss__arrow:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.reviews-block-v2 .swss__dots { display: flex; align-items: center; gap: 8px; }
.reviews-block-v2 .swss__dot {
	width: 8px; height: 8px; padding: 0; border: 0; border-radius: 50%; cursor: pointer;
	background: rgba(255,255,255,.4); transition: background .2s ease, width .2s ease;
}
.reviews-block-v2 .swss__dot:hover { background: rgba(255,255,255,.7); }
.reviews-block-v2 .swss__dot.is-active { width: 22px; border-radius: 5px; background: #fff; }
.reviews-block-v2 .swss__dot:focus { outline: none; }
.reviews-block-v2 .swss__dot:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

/* Responsive: 3 -> 2 -> 1 per view */
@media (max-width: 991.98px) {
	.reviews-block-v2 .rbv2-inner { padding: 70px 24px; }
	.reviews-block-v2 .swss__slide { flex: 0 0 calc((100% - 26px) / 2); }
	.reviews-block-v2 .rbv2-watermark { font-size: 130px; }
}
@media (max-width: 575.98px) {
	.reviews-block-v2 .rbv2-inner { padding: 56px 16px; }
	.reviews-block-v2 .rbv2-head { margin-bottom: 40px; }
	.reviews-block-v2 .rbv2-title { font-size: 26px; }
	.reviews-block-v2 .swss__slide { flex: 0 0 100%; }
}
