/* ==================================================================
   Kusvaa All Reviews page  (kusvaa-reviews.css)  v1.2.0
   Location: aks-web-customization-layer/assets/css/kusvaa-reviews.css
   Consolidated authoritative file: masonry, page header + stats,
   bold accent SKU, mobile edge-to-edge, brand reply blocks.
   ================================================================== */

.kv-rv-wrap {
	--kv-rv-star: #b7791f;
	--kv-rv-border: #e8e2d9;
	--kv-rv-muted: #8a857c;
	--kv-rv-accent: #7a3b2e;
	--kv-rv-gap: 20px;
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 16px 48px;
}

/* ---------------- page header (heading + stats) ---------------- */

.kv-rv-page-head {
	text-align: center;
	margin: 10px 0 32px;
}
.kv-rv-page-title {
	font-family: Georgia, 'Times New Roman', serif;
	font-size: 34px;
	font-weight: 500;
	line-height: 1.25;
	color: #3a352e;
	margin: 0 0 10px;
}
.kv-rv-page-stats {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	font-size: 15px;
	color: var(--kv-rv-muted);
}
.kv-rv-page-stats strong { color: var(--kv-rv-accent); font-weight: 600; }
.kv-rv-stat-sep { color: #d3cec4; }

/* ---------------- layout ---------------- */

/* No-JS fallback: plain grid */
.kv-rv-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--kv-rv-gap);
	align-items: start;
}
@media (max-width: 1100px) { .kv-rv-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 850px)  { .kv-rv-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px)  { .kv-rv-grid { grid-template-columns: 1fr; } }

/* JS masonry mode */
.kv-rv-wrap.kv-rv-js .kv-rv-grid {
	display: flex;
	align-items: flex-start;
	gap: var(--kv-rv-gap);
}
.kv-rv-col {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: var(--kv-rv-gap);
}

/* ---------------- card ---------------- */

.kv-rv-card {
	background: #fff;
	border: 1px solid var(--kv-rv-border);
	border-radius: 12px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.kv-rv-card-head {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 14px 12px;
}

.kv-rv-thumb {
	flex: 0 0 84px;
	width: 84px;
	display: block;
	border-radius: 8px;
	overflow: hidden;
	aspect-ratio: 2 / 3;
	background: #f4f1ec;
}

.kv-rv-thumb-img,
.kv-rv-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.kv-rv-head-info { min-width: 0; }

.kv-rv-title {
	display: block;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.35;
	color: inherit;
	text-decoration: none;
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}
.kv-rv-title:hover { color: var(--kv-rv-accent); }

.kv-rv-sku {
	font-size: 12px;
	font-weight: 600;
	color: var(--kv-rv-accent);
	letter-spacing: 0.03em;
	margin-top: 2px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.kv-rv-rating-line {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-top: 4px;
	font-size: 13px;
	color: var(--kv-rv-muted);
	white-space: nowrap;
}

.kv-rv-rating-num { color: var(--kv-rv-star); font-weight: 600; }

/* ---------------- stars ---------------- */

.kv-rv-stars {
	position: relative;
	display: inline-block;
	font-size: 14px;
	line-height: 1;
	color: #ddd6c9;
	letter-spacing: 1px;
}
.kv-rv-stars-fg {
	position: absolute;
	top: 0;
	left: 0;
	overflow: hidden;
	white-space: nowrap;
	color: var(--kv-rv-star);
}

/* ---------------- review list ---------------- */

.kv-rv-list {
	border-top: 1px solid var(--kv-rv-border);
	padding: 12px 14px;
	flex: 1;
}

.kv-rv-item + .kv-rv-item {
	border-top: 1px solid var(--kv-rv-border);
	margin-top: 12px;
	padding-top: 12px;
}

.kv-rv-item-text {
	font-family: Georgia, 'Times New Roman', serif;
	font-size: 14px;
	line-height: 1.6;
	color: #3a352e;
}

.kv-rv-item-meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 5px;
	font-size: 12px;
	color: var(--kv-rv-muted);
}
.kv-rv-item-meta .kv-rv-stars { font-size: 11px; }

.kv-rv-item-author { font-weight: 600; color: #55504a; }

.kv-rv-verified {
	background: #eef4ec;
	color: #3c6b34;
	border-radius: 10px;
	padding: 1px 8px;
	font-size: 11px;
}

/* ---------------- brand replies ---------------- */

.kv-rv-reply {
	margin: 10px 0 2px 12px;
	padding: 9px 12px;
	background: #faf6f0;
	border-left: 3px solid var(--kv-rv-accent);
	border-radius: 0;
}
.kv-rv-reply-label {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--kv-rv-accent);
	margin-bottom: 3px;
}
.kv-rv-reply-text {
	font-family: Georgia, 'Times New Roman', serif;
	font-size: 13px;
	line-height: 1.55;
	color: #4a453e;
}
.kv-rv-reply-date {
	font-size: 11px;
	color: var(--kv-rv-muted);
	margin-top: 3px;
}

/* ---------------- more link ---------------- */

.kv-rv-more {
	display: block;
	border-top: 1px solid var(--kv-rv-border);
	background: #faf8f4;
	color: var(--kv-rv-accent);
	font-size: 13px;
	font-weight: 600;
	padding: 11px 14px;
	text-align: center;
	text-decoration: none;
	transition: background 0.15s ease;
}
.kv-rv-more:hover { background: #f3efe7; color: var(--kv-rv-accent); }

/* ---------------- infinite scroll ---------------- */

.kv-rv-sentinel { height: 1px; }

.kv-rv-loading {
	display: none;
	text-align: center;
	padding: 24px 0 8px;
	font-size: 14px;
	color: var(--kv-rv-muted);
}
.kv-rv-wrap.kv-rv-fetching .kv-rv-loading { display: block; }

/* ---------------- pagination (no-JS fallback only) ---------------- */

.kv-rv-pagination {
	display: flex;
	justify-content: center;
	gap: 12px;
	margin-top: 36px;
}
.kv-rv-wrap.kv-rv-js .kv-rv-pagination { display: none; }

.kv-rv-page-link {
	display: inline-block;
	padding: 8px 16px;
	border: 1px solid var(--kv-rv-border);
	border-radius: 8px;
	font-size: 14px;
	color: #55504a;
	text-decoration: none;
	background: #fff;
}
.kv-rv-page-link:hover { border-color: var(--kv-rv-accent); color: var(--kv-rv-accent); }

.kv-rv-empty {
	text-align: center;
	padding: 60px 20px;
	color: #8a857c;
}

/* ---------------- mobile ---------------- */

@media (max-width: 560px) {
	.kv-rv-wrap {
		margin-left: -15px;
		margin-right: -15px;
		padding-left: 10px;
		padding-right: 10px;
	}
	.kv-rv-page-title { font-size: 24px; }
	.kv-rv-page-stats { font-size: 13px; gap: 7px; }
}

/* ---------------- AI highlights strip + admin bar ---------------- */

.kv-rv-highlights {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 12px;
	margin: 0 0 28px;
}
.kv-rv-hl {
	background: #faf8f4;
	border: 1px solid var(--kv-rv-border);
	border-radius: 10px;
	padding: 12px 14px;
	text-align: center;
}
.kv-rv-hl-label {
	font-size: 14px;
	font-weight: 600;
	color: var(--kv-rv-accent);
}
.kv-rv-hl-quote {
	font-family: Georgia, 'Times New Roman', serif;
	font-size: 12px;
	line-height: 1.5;
	color: #55504a;
	margin-top: 4px;
	font-style: italic;
}
.kv-rv-hl-count {
	font-size: 11px;
	color: var(--kv-rv-muted);
	margin-top: 5px;
	letter-spacing: 0.03em;
}

.kv-rv-admin-bar {
	text-align: center;
	margin: -12px 0 24px;
}
.kv-rv-admin-bar button {
	font-size: 12px;
	padding: 6px 14px;
	border: 1px dashed var(--kv-rv-accent);
	background: #fff;
	color: var(--kv-rv-accent);
	border-radius: 8px;
	cursor: pointer;
}
.kv-rv-admin-bar button:disabled { opacity: 0.5; cursor: wait; }
#kv-rv-regen-status {
	display: inline-block;
	margin-left: 10px;
	font-size: 12px;
	color: var(--kv-rv-muted);
}
@media (max-width: 560px) {
	.kv-rv-highlights { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------------- PDP strip ([kusvaa_recent_reviews]) ---------------- */

.kv-rvs {
	max-width: 1280px;
	margin: 36px auto 24px;
	padding: 0 16px;
}
.kv-rvs-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 14px;
}
.kv-rvs-title {
	font-family: Georgia, 'Times New Roman', serif;
	font-size: 22px;
	font-weight: 500;
	color: #3a352e;
	margin: 0;
}
.kv-rvs-all {
	font-size: 13px;
	font-weight: 600;
	color: #7a3b2e;
	text-decoration: none;
	white-space: nowrap;
}
.kv-rvs-all:hover { text-decoration: underline; color: #7a3b2e; }

.kv-rvs-row {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}
@media (max-width: 980px) { .kv-rvs-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .kv-rvs-row { grid-template-columns: 1fr; } }

.kv-rvs-card {
	background: #fff;
	border: 1px solid #e8e2d9;
	border-radius: 10px;
	padding: 12px;
}
.kv-rvs-prod {
	display: flex;
	align-items: center;
	gap: 10px;
	text-decoration: none;
	color: inherit;
	margin-bottom: 8px;
}
.kv-rvs-thumb {
	flex: 0 0 40px;
	width: 40px;
	aspect-ratio: 2 / 3;
	border-radius: 5px;
	overflow: hidden;
	background: #f4f1ec;
	display: block;
}
.kv-rvs-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.kv-rvs-name {
	font-size: 13px;
	font-weight: 600;
	line-height: 1.35;
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}
.kv-rvs-prod:hover .kv-rvs-name { color: #7a3b2e; }
.kv-rvs-text {
	font-family: Georgia, 'Times New Roman', serif;
	font-size: 13px;
	line-height: 1.55;
	color: #4a453e;
	font-style: italic;
}
.kv-rvs-meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 7px;
	margin-top: 7px;
	font-size: 11px;
	color: #8a857c;
}
.kv-rvs-meta .kv-rv-stars { font-size: 11px; }
.kv-rvs-author { font-weight: 600; color: #55504a; }

/* strip lives outside .kv-rv-wrap — give it the palette vars */
.kv-rvs {
	--kv-rv-star: #b7791f;
	--kv-rv-border: #e8e2d9;
	--kv-rv-muted: #8a857c;
	--kv-rv-accent: #7a3b2e;
}
.kv-rvs .kv-rv-stars { color: #ddd6c9; }
.kv-rvs .kv-rv-stars-fg { color: #b7791f; }

.kv-rvs-info { min-width: 0; }
.kv-rvs-sku {
	display: block;
	font-size: 11px;
	font-weight: 600;
	color: #7a3b2e;
	letter-spacing: 0.03em;
	margin-top: 2px;
}

.kv-rvs-title { white-space: nowrap; }
@media (max-width: 560px) {
	.kv-rvs-title { font-size: 19px; }
	.kv-rvs-all { font-size: 12px; }
}

/* PDP strip: full width on mobile (counter Flatsome container gutter) */
@media (max-width: 560px) {
	.kv-rvs {
		margin-left: -15px;
		margin-right: -15px;
		padding-left: 10px;
		padding-right: 10px;
	}
}

/* ---------------- admin moderation (never in guest cache) ---------------- */

.kv-rv-pending {
	border: 1px dashed #b7791f;
	background: #fdf9f0;
	border-radius: 10px;
	padding: 14px 16px;
	margin: 0 0 24px;
}
.kv-rv-pending-title { font-size: 13px; font-weight: 600; color: #854f0b; margin-bottom: 10px; }
.kv-rv-pend { border-top: 1px solid #ecdfc4; padding: 10px 0; }
.kv-rv-pend-head { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; font-size: 13px; }
.kv-rv-pend-head a { font-weight: 600; color: #7a3b2e; text-decoration: none; }
.kv-rv-pend-text { font-size: 13px; color: #4a453e; margin: 4px 0 6px; }
.kv-rv-mod { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 6px; font-size: 12px; }
.kv-rv-mod a { color: #7a3b2e; font-weight: 600; text-decoration: none; }
.kv-rv-mod button {
	font-size: 12px; padding: 4px 12px; border-radius: 7px; cursor: pointer;
	border: 1px solid #7a3b2e; background: #fff; color: #7a3b2e;
}
.kv-rv-mod button:disabled { opacity: .5; cursor: wait; }
.kv-rv-reply-form textarea { width: 260px; max-width: 100%; font-size: 12px; padding: 5px 8px; vertical-align: middle; margin-right: 6px; }
.kv-rv-mod-status { color: #8a857c; }

.kv-rv-pend-contact { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; font-size: 12px; margin: 2px 0 4px; }
.kv-rv-pend-contact a { color: #55504a; text-decoration: none; font-weight: 600; }
.kv-rv-pend-contact a:hover { color: #7a3b2e; }
.kv-rv-pend-nophone { color: #b3aea4; font-style: italic; }

.kv-rv-edit-toggle { color: #7a3b2e; font-weight: 600; text-decoration: none; }
.kv-rv-edit-form { display: block; margin-top: 6px; }
.kv-rv-edit-form textarea { width: 100%; max-width: 420px; font-size: 12px; padding: 6px 8px; display: block; margin-bottom: 6px; }
.kv-rv-edit-form select { font-size: 12px; padding: 3px 6px; margin-right: 6px; vertical-align: middle; }

/* ============================================================
   KV-RVS HOMEPAGE MOBILE SPACING v1 (appended block)
   The strip on the homepage renders edge-to-edge on mobile;
   scoped to .home so PDP / reviews-page layouts are untouched.
   ============================================================ */
@media (max-width:849px){
	.home .kv-rvs{ padding-left:14px; padding-right:14px; box-sizing:border-box; }
}

/* ============================================================
   KV BANDS CSS v2 (appended block)
   - Mobile side padding for the strip WITHOUT relying on .home
     (single-product excluded: the PDP container already pads).
   - Showcase band spacing + All-reviews link styling; the head,
     stats and highlights reuse the reviews-page classes as-is.
   ============================================================ */
@media (max-width:849px){
	body:not(.single-product) .kv-rvs{
		padding-left:16px; padding-right:16px; box-sizing:border-box;
	}
	.kv-rv-showcase{
		padding-left:16px; padding-right:16px; box-sizing:border-box;
	}
}
.kv-rv-showcase{ margin:26px auto 30px; max-width:1200px; }
.kv-rv-showcase .kv-rv-page-head{ text-align:center; }
.kv-rv-showcase-all{ text-align:center; margin-top:14px; }
.kv-rv-showcase-all a{
	font-weight:700; font-size:13.5px; letter-spacing:.04em;
	text-decoration:none; color:#8a3324;
}
.kv-rv-showcase-all a:hover{ text-decoration:underline; }
