/**
 * Variant CSS: offer--alternating-media-rows
 * Layer 2 - Path B offer role (2026-05-29).
 *
 * Services as zig-zag media rows: a real photo on one side, text on the other,
 * alternating per row via the .universal-offer__row--reverse modifier
 * (flex-direction: row-reverse on desktop, because wp:columns is a flex row).
 * Each text block carries a large decorative index, a kicker, title, lead desc,
 * an accent-checkmark bullet list and an outline text-link. On mobile every row
 * collapses to image-on-top, text-below (consistently, including reversed rows).
 *
 * Semantic tokens only on theme surfaces. The text-link uses --text-primary as
 * its base color (always AA on the section surface) with an --accent underline
 * that turns accent on hover/focus, so the label never relies on accent-as-text
 * contrast. All selectors scoped to .universal-offer--alternating-media-rows.
 */

body.aibt-universal .universal-offer--alternating-media-rows {
	background: var(--background);
	color: var(--text-primary);
}

/* Centered intro elements (kicker + headline use has-text-align-center). */
body.aibt-universal .universal-offer.universal-offer--alternating-media-rows .has-text-align-center {
	margin-inline: auto !important;
}

/* ── Intro ─────────────────────────────────────────────────────── */
body.aibt-universal .universal-offer--alternating-media-rows .universal-offer__intro {
	margin-bottom: var(--space-2xl);
}

body.aibt-universal .universal-offer--alternating-media-rows .universal-offer__kicker {
	font-family: var(--font-body) !important;
	font-size: var(--text-xs) !important;
	font-weight: 600 !important;
	letter-spacing: var(--tracking-widest) !important;
	text-transform: uppercase !important;
	color: var(--accent) !important;
	margin: 0 auto var(--space-sm) auto !important;
}

body.aibt-universal .universal-offer--alternating-media-rows h2.universal-offer__headline,
body.aibt-universal .universal-offer--alternating-media-rows .universal-offer__headline {
	font-family: var(--font-display) !important;
	color: var(--text-primary) !important;
	margin: 0 auto !important;
	max-width: 20ch;
}

body.aibt-universal .universal-offer--alternating-media-rows .universal-offer__headline em {
	color: var(--italic-color, var(--accent));
	font-weight: var(--italic-weight, 600);
	font-style: italic;
}

/* ── Rows ──────────────────────────────────────────────────────── */
body.aibt-universal .universal-offer--alternating-media-rows .universal-offer__row {
	gap: clamp(2rem, 5vw, 5rem) !important;
	align-items: center;
	margin-bottom: clamp(3.5rem, 8vh, 7rem);
}

body.aibt-universal .universal-offer--alternating-media-rows .universal-offer__row:last-child {
	margin-bottom: 0;
}

/* Alternate: reverse the column order on desktop (wp:columns is a flex row). */
body.aibt-universal .universal-offer--alternating-media-rows .universal-offer__row--reverse {
	flex-direction: row-reverse;
}

/* ── Media column ──────────────────────────────────────────────── */
body.aibt-universal .universal-offer--alternating-media-rows .universal-offer__media {
	align-self: stretch;
}

body.aibt-universal .universal-offer--alternating-media-rows .universal-offer__photo {
	margin: 0 !important;
	height: 100%;
}

body.aibt-universal .universal-offer--alternating-media-rows .universal-offer__photo img {
	width: 100%;
	height: 100%;
	min-height: 0;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--decor-radius-photo, var(--decor-radius, 0px));
	box-shadow: var(--decor-shadow-elevated, none);
	display: block;
}

/* ── Text column ───────────────────────────────────────────────── */
/* Decorative index - accent at full strength so it clears the 3:1 graphic
   threshold on every surface (a 55% tint drops below 3:1 on the light themes).
   Kept visually secondary to the title via restrained size + the kicker that
   follows it, not via low opacity. */
body.aibt-universal .universal-offer--alternating-media-rows .universal-offer__row-index {
	font-family: var(--font-display) !important;
	font-size: clamp(2.2rem, 3.4vw, 3rem) !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	letter-spacing: -0.03em !important;
	color: var(--accent) !important;
	margin: 0 0 var(--space-2xs) 0 !important;
}

body.aibt-universal .universal-offer--alternating-media-rows .universal-offer__row-kicker {
	font-family: var(--font-body) !important;
	font-size: var(--text-xs) !important;
	font-weight: 600 !important;
	letter-spacing: var(--tracking-wider) !important;
	text-transform: uppercase !important;
	color: var(--accent) !important;
	margin: 0 0 var(--space-2xs) 0 !important;
}

body.aibt-universal .universal-offer--alternating-media-rows h3.universal-offer__row-title,
body.aibt-universal .universal-offer--alternating-media-rows .universal-offer__row-title {
	font-family: var(--font-display) !important;
	font-size: clamp(1.6rem, 3vw, 2.4rem) !important;
	font-weight: 600 !important;
	line-height: 1.12 !important;
	letter-spacing: -0.02em !important;
	color: var(--text-primary) !important;
	margin: 0 0 var(--space-sm) 0 !important;
}

body.aibt-universal .universal-offer--alternating-media-rows .universal-offer__row-desc {
	font-family: var(--font-body) !important;
	font-size: var(--text-lg) !important;
	line-height: var(--leading-relaxed) !important;
	color: var(--text-secondary) !important;
	margin: 0 0 var(--space-md) 0 !important;
	max-width: 46ch;
}

/* Service points - accent checkmark markers. */
body.aibt-universal .universal-offer--alternating-media-rows ul.universal-offer__row-list,
body.aibt-universal .universal-offer--alternating-media-rows .universal-offer__row-list {
	list-style: none !important;
	font-family: var(--font-body) !important;
	font-size: var(--text-base) !important;
	line-height: var(--leading-normal) !important;
	color: var(--text-primary) !important;
	margin: 0 0 var(--space-md) 0 !important;
	padding: 0 !important;
	display: flex;
	flex-direction: column;
	gap: var(--space-2xs);
}

body.aibt-universal .universal-offer--alternating-media-rows .universal-offer__row-list li {
	position: relative;
	padding-left: 1.85em;
	margin: 0 !important;
}

body.aibt-universal .universal-offer--alternating-media-rows .universal-offer__row-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.3em;
	width: 1.05em;
	height: 1.05em;
	background-color: var(--accent);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6 9 17l-5-5' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6 9 17l-5-5' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ── Inline text-link CTA - underline grows from accent rule ───────
   Base label uses --text-primary (always AA on the section surface); the accent
   only carries the underline (a graphic, 3:1 sufficient) until hover/focus. */
body.aibt-universal .universal-offer--alternating-media-rows .universal-offer__row-cta-wrap {
	margin: 0 !important;
}

body.aibt-universal .universal-offer--alternating-media-rows .wp-block-button.universal-offer__row-cta.is-style-outline .wp-block-button__link {
	font-family: var(--font-body);
	font-weight: 600;
	font-size: 1rem;
	letter-spacing: var(--tracking-wide);
	color: var(--text-primary);
	background: transparent;
	border: 0;
	border-bottom: 2px solid var(--accent);
	border-radius: 0 !important;
	padding: 0.25rem 0;
	min-height: 0;
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	transition: color var(--duration-fast) var(--ease-snappy),
		border-bottom-color var(--duration-fast) var(--ease-snappy);
}

body.aibt-universal .universal-offer--alternating-media-rows .wp-block-button.universal-offer__row-cta.is-style-outline .wp-block-button__link:hover,
body.aibt-universal .universal-offer--alternating-media-rows .wp-block-button.universal-offer__row-cta.is-style-outline .wp-block-button__link:focus-visible {
	color: var(--accent);
	background: transparent;
	border-bottom-color: var(--accent-hover, var(--accent));
}

@media (prefers-reduced-motion: reduce) {
	body.aibt-universal .universal-offer--alternating-media-rows .wp-block-button.universal-offer__row-cta.is-style-outline .wp-block-button__link {
		transition: none;
	}
}

/* ── Mobile: stack, image always on top (incl. reversed rows) ───── */
@media (max-width: 781px) {
	body.aibt-universal .universal-offer--alternating-media-rows .universal-offer__row,
	body.aibt-universal .universal-offer--alternating-media-rows .universal-offer__row--reverse {
		flex-direction: column;
		gap: var(--space-md) !important;
	}
	body.aibt-universal .universal-offer--alternating-media-rows .universal-offer__media,
	body.aibt-universal .universal-offer--alternating-media-rows .universal-offer__text {
		flex-basis: 100% !important;
		width: 100% !important;
	}
	body.aibt-universal .universal-offer--alternating-media-rows .universal-offer__row-desc {
		max-width: none;
	}
}

/* Drop the wide kicker tracking on narrow phones so the uppercase intro + row
   labels never strain or wrap on small screens (house ≤640 standard). */
@media (max-width: 640px) {
	body.aibt-universal .universal-offer--alternating-media-rows .universal-offer__kicker,
	body.aibt-universal .universal-offer--alternating-media-rows .universal-offer__row-kicker {
		letter-spacing: 0 !important;
	}
}

/* Editor canvas - entrance/scroll JS doesn't run; keep everything visible. */
.editor-styles-wrapper .universal-offer--alternating-media-rows .universal-offer__photo img {
	opacity: 1 !important;
	transform: none !important;
}
