/*
 * WFL Phase 1 — Review carousel vertical alignment
 *
 * The testimonial cards (Elementor n-carousel) had top-aligned content, so the
 * cherub badge, quote and name sat against the top with a big, uneven gap below
 * — names landed at different heights from card to card.
 *
 * Fix: keep the cherub badge pinned to the top edge (it's a design element that
 * overlaps the card top), and vertically centre the quote+name group in the
 * remaining space via auto margins. Short and long reviews now both read as
 * balanced, and the badges line up across every slide.
 *
 * Scope: the reviews carousel widget id. Elementor keeps element ids stable
 * across content edits; if the widget is deleted & rebuilt, update this id.
 */

.elementor-element-2993557 .swiper-slide .e-con-full {
	justify-content: flex-start !important;
}

/* Push the quote down and the name up so the pair centres below the badge. */
.elementor-element-2993557 .swiper-slide .e-con-full > .elementor-widget-text-editor {
	margin-top: auto !important;
}

.elementor-element-2993557 .swiper-slide .e-con-full > .elementor-widget-heading {
	margin-bottom: auto !important;
}

/*
 * feedback-q-5 (2026-06-15) — 5/5 stars on every testimonial card.
 * The client confirmed every Tastemaker quote is a genuine 5/5 customer review
 * (the 20 quotes are stored as real Woo reviews, all rated 5), and asked us to
 * show them at 5/5. This adds a brand-red five-star row directly above each
 * quote. Decorative-but-accurate: every card is 5/5, so a static row is the
 * honest representation. The live aggregate also renders via [wfl_rating].
 * Supersedes the earlier no-stars safeguard — client accepted the FTC exposure.
 *
 * Two testimonial carousels share the same card shape (badge + quote + name):
 *   #2993557 — Home (page 17)
 *   #5e8effab — Single Product template (page 43)
 */
.elementor-element-2993557 .swiper-slide .e-con-full > .elementor-widget-text-editor::before,
.elementor-element-5e8effab .swiper-slide .elementor-widget-text-editor::before {
	content: "\2605\2605\2605\2605\2605";
	display: block;
	text-align: center;
	color: #C92539; /* brand red */
	font-size: 1.05rem;
	letter-spacing: 3px;
	line-height: 1;
	margin-bottom: 0.6rem;
}

/*
 * [wfl_rating] — live WooCommerce aggregate (real 5.0 from 20 reviews).
 * Self-contained two-layer stars (empty track + width-clipped red fill) using
 * unicode glyphs, so it renders without WooCommerce's 'star' icon font (which
 * isn't loaded on the Elementor home page).
 */
.wfl-rating {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	flex-wrap: wrap;
}

.wfl-stars {
	position: relative;
	display: inline-block;
	width: 6em;
	height: 1.05em;
	line-height: 1;
	font-size: 1.25em;
	color: rgba( 201, 37, 57, 0.22 ); /* empty track — faded brand red */
}

.wfl-stars::before,
.wfl-stars__fill::before {
	content: "\2605\2605\2605\2605\2605";
	letter-spacing: 0.12em;
}

.wfl-stars__fill {
	position: absolute;
	inset: 0;
	overflow: hidden;
	white-space: nowrap;
	color: #C92539; /* brand red — filled */
}

.wfl-rating__meta {
	font-weight: 600;
	/* Both current placements (home #17 + product #43 testimonials) sit on a
	 * near-black section, where the inherited widget text colour (#222) is
	 * invisible. Tuned light for those dark sections. If [wfl_rating] is ever
	 * dropped on a LIGHT background, add `.wfl-rating--on-light .wfl-rating__meta
	 * { color:#171717 }` (no single colour passes AA on both bg tones). */
	color: #F5F5F5;
	letter-spacing: 0.01em;
}

/* Opt-in override for a light-background placement of [wfl_rating]
 * (wrap the shortcode container with class wfl-rating--on-light). */
.wfl-rating--on-light .wfl-rating__meta {
	color: #171717;
}
