/*
 * Shared review cards.
 *
 * Feature plugins provide the quote, author, context and destination. The
 * theme owns typography, colour, spacing and interaction in heroes and
 * editorial review grids.
 */

.fse-ui-review-card {
	box-sizing: border-box;
	border: var(--fse-ui-border);
	border-radius: var(--fse-ui-radius-card);
	background: var(--fse-ui-paper);
	color: var(--fse-ui-ink);
}

html body .fse-site-hero .fse-ui-review-card--hero {
	background: var(--fse-ui-paper) !important;
	color: var(--fse-ui-ink) !important;
}

html body .fse-site-hero .fse-ui-review-card--hero > :is(small, .fse-os-product-public-hero__stars) {
	display: block;
	margin: 0;
	color: var(--fse-ui-rating) !important;
	font: 800 8px/1 var(--fse-font-body) !important;
	letter-spacing: .04em;
}

html body .fse-site-hero .fse-ui-review-card--hero > :is(strong, blockquote) {
	margin: 0 !important;
	font: 700 13px/.96 var(--fse-font-display) !important;
	letter-spacing: -.035em !important;
}

html body .fse-site-hero .fse-ui-review-card--hero > :is(span, footer) {
	display: flex !important;
	flex-direction: column !important;
	gap: 2px !important;
	margin: 0 !important;
}

html body .fse-site-hero .fse-ui-review-card--hero > :is(span, footer) :is(b, strong) {
	font: 700 9px/1.1 var(--fse-font-body) !important;
}

html body .fse-site-hero .fse-ui-review-card--hero > :is(span, footer) :is(em, span) {
	font: 600 7px/1.05 var(--fse-font-body) !important;
	font-style: normal !important;
	opacity: .72;
}

.fse-ui-review-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
	align-items: stretch;
}

html body .fse-ui-review-card--section {
	position: relative;
	display: flex;
	min-height: 300px;
	flex-direction: column;
	margin: 0;
	padding: 28px 24px 24px;
	border: var(--fse-ui-border) !important;
	border-radius: var(--fse-ui-radius-card) !important;
	background: var(--fse-ui-paper) !important;
	box-shadow: none !important;
	transition: transform var(--fse-ui-transition-standard), box-shadow var(--fse-ui-transition-standard);
}

html body .fse-ui-review-card--section::before {
	content: "★★★★★" !important;
	display: block !important;
	margin-bottom: 20px;
	color: var(--fse-ui-rating) !important;
	font: 800 16px/1 var(--fse-font-body) !important;
	letter-spacing: .08em;
}

html body .fse-ui-review-card--section:is(:hover, :focus-within) {
	transform: translateY(-4px);
	box-shadow: 0 14px 30px rgba(17, 17, 17, .09) !important;
}

html body .fse-ui-review-card__quote {
	margin: 0 0 28px !important;
	color: var(--fse-ui-ink) !important;
	font: 650 clamp(17px, 1.45vw, 21px)/1.18 var(--fse-font-display) !important;
	letter-spacing: -.025em !important;
}

html body .fse-ui-review-card__meta {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: auto 0 0 !important;
	padding-top: 18px;
	border-top: 1px solid rgba(17, 17, 17, .14);
	color: var(--fse-ui-muted);
	font-size: .78rem;
}

@media (max-width: 1050px) {
	.fse-ui-review-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
	.fse-ui-review-grid { grid-template-columns: 1fr; }
	html body .fse-ui-review-card--section { min-height: 240px; }
}

@media (prefers-reduced-motion: reduce) {
	html body .fse-ui-review-card--section {
		transition: none;
		transform: none !important;
	}
}
