/**
 * Variant CSS: offer--duo-zigzag-media
 * Layer 2 — Path B universal offer variant (authored 2026-06-10).
 *
 * Concept: EXACTLY two services as two ALTERNATING image + text rows (zig-zag): the
 * first row carries its photo on the left, the second row reverses (photo on the
 * right), so the pair sets up a clear rhythm. Each row: a numeral, a title, a fuller
 * description and an outline arrow link beside a large supporting photo.
 *
 * Differentiator vs sibling offer variants:
 *   - alternating-media-rows (EC=3+): three+ rows, row-N-* tokens, list points.
 *   - duo-rows (EC=2): no photos, pure typographic full-width rows.
 *   - duo-equal-cards (EC=2): bordered text cards, no photos.
 *   THIS one: exactly two zig-zag photo rows on the sanctioned area-N-* tokens.
 *
 * Colour intent: text stays --ink (polarity-aware); numeral + link border/arrow take
 * --accent. Photo gets a token radius + resting shadow. Tokens: area-1-* / area-2-*
 * (title, desc) + area-N-meta-1 (link text).
 */

/* == Section shell == */
body.aibt-universal .universal-offer--duo-zigzag-media {
	padding-block: calc(clamp(var(--space-xl), 8vw, var(--space-3xl)) * var(--density, 1));
	background: var(--background);
	color: var(--text-primary);
}

/* == Intro (centred — A8/A9: keep horizontal margins auto) == */
body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__intro {
	margin: 0 auto clamp(var(--space-lg), 4vw, var(--space-2xl)) auto;
}

body.aibt-universal .universal-offer--duo-zigzag-media .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--duo-zigzag-media .universal-offer__headline {
	font-family: var(--font-display) !important;
	font-size: clamp(2rem, 4.5vw, 3.6rem) !important;
	color: var(--ink) !important;
	margin: 0 auto var(--space-sm) auto !important;
	max-width: 18ch;
}

body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__headline em {
	color: var(--italic-color, var(--accent));
	font-style: italic;
	font-weight: var(--italic-weight, inherit);
}

body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__deck {
	font-family: var(--font-body) !important;
	font-size: var(--text-base) !important;
	line-height: var(--leading-relaxed) !important;
	color: var(--ink) !important;
	opacity: 0.78;
	margin: 0 auto !important;
	max-width: 52ch;
}

/* == Rows: each row is a 2-up. Force wrap so WP-core nowrap (≥782px) cannot pin the
   columns; the explicit 50% basis holds the split until the mobile stack. == */
body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__row {
	flex-wrap: wrap !important;
	gap: clamp(var(--space-lg), 4vw, var(--space-2xl)) !important;
	align-items: center !important;
}

body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__row + .universal-offer__row {
	margin-top: clamp(var(--space-lg), 5vw, var(--space-3xl));
}

body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__row > .wp-block-column {
	flex: 1 1 calc(50% - var(--space-2xl)) !important;
	min-width: 0;
}

/* Reverse row: photo on the right. Reversing the flex order keeps the photo last in
   source order on mobile too, so the stack rule can still lift it to the top. */
body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__row--reverse {
	flex-direction: row-reverse !important;
}

/* == Photo == */
body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__media {
	align-self: stretch;
}

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

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

/* == Text column == */
body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__row-num {
	font-family: var(--font-display) !important;
	font-size: clamp(1.6rem, 3.2vw, 2.4rem) !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	letter-spacing: -0.02em !important;
	color: var(--accent) !important;
	margin: 0 0 var(--space-sm) 0 !important;
}

body.aibt-universal .universal-offer--duo-zigzag-media h3.universal-offer__row-title,
body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__row-title {
	font-family: var(--font-display) !important;
	font-size: clamp(1.6rem, 3.4vw, 2.5rem) !important;
	font-weight: 600 !important;
	line-height: 1.1 !important;
	letter-spacing: -0.02em !important;
	color: var(--ink) !important;
	margin: 0 0 var(--space-sm) 0 !important;
}

body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__row-desc {
	font-family: var(--font-body) !important;
	font-size: var(--text-base) !important;
	line-height: var(--leading-relaxed) !important;
	color: var(--ink) !important;
	opacity: 0.82;
	margin: 0 0 var(--space-md) 0 !important;
	max-width: 46ch;
}

/* Outline link with a trailing arrow that slides on hover. */
body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__row-cta .wp-block-button__link {
	font-family: var(--font-body) !important;
	font-size: var(--text-sm) !important;
	font-weight: 600 !important;
	letter-spacing: var(--tracking-wide) !important;
	color: var(--ink) !important;
	background: transparent !important;
	padding: 0.7rem 1.5rem !important;
	border: 1px solid color-mix(in srgb, var(--ink) 28%, transparent) !important;
	border-radius: var(--decor-radius, 0px) !important;
	transition:
		background-color var(--duration-fast) var(--ease-default),
		color var(--duration-fast) var(--ease-default),
		border-color var(--duration-fast) var(--ease-default);
}

body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__row-cta .wp-block-button__link::after {
	content: " \2192";
	display: inline-block;
	transition: transform var(--duration-fast) var(--ease-default);
}

body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__row-cta .wp-block-button__link:hover {
	background: var(--accent) !important;
	color: var(--cta-text-primary, var(--on-accent, #ffffff)) !important;
	border-color: var(--accent) !important;
}

body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__row-cta .wp-block-button__link:hover::after {
	transform: translateX(4px);
}

body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__row-cta .wp-block-button__link:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

/* == Responsive == */
/* Tablet (641-959): keep the zig-zag but tighten the gutter. */
@media (min-width: 641px) and (max-width: 959px) {
	body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__row {
		gap: clamp(var(--space-md), 3vw, var(--space-lg)) !important;
	}
	body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__row > .wp-block-column {
		flex-basis: calc(50% - var(--space-lg)) !important;
	}
}

/* Mobile (≤640): stack each row — photo on top, text below, in BOTH rows. */
@media (max-width: 640px) {
	body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__row,
	body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__row--reverse {
		flex-direction: column !important;
		gap: var(--space-md) !important;
	}
	body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__row > .wp-block-column {
		flex-basis: 100% !important;
		width: 100% !important;
	}
	/* Lift the photo above the copy in every row regardless of source order. */
	body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__media {
		order: -1;
	}
	body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__photo img {
		aspect-ratio: 16 / 10;
	}
	/* Cap uppercase tracking at narrow widths (reads as gaps — A5). */
	body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__kicker {
		letter-spacing: var(--tracking-wider) !important;
	}
	/* Full-width tap target for the link. */
	body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__row-cta-wrap,
	body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__row-cta {
		width: 100%;
	}
	body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__row-cta .wp-block-button__link {
		display: block !important;
		text-align: center !important;
	}
}

/* == Motion respect == */
@media (prefers-reduced-motion: reduce) {
	body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__row-cta .wp-block-button__link,
	body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__row-cta .wp-block-button__link::after {
		transition: none;
	}
	body.aibt-universal .universal-offer--duo-zigzag-media .universal-offer__row-cta .wp-block-button__link:hover::after {
		transform: none;
	}
}
