/* Section: Feature Cards */

/*
 * Long-form page rhythm: the source keeps every block inside one article and
 * separates them with `mt-32` (8rem). As stand-alone Elementor sections that is
 * 4rem of padding above + 4rem below.
 */
.tra-feature-cards {
	--tra-pad-block: 4rem;
}

/* Source: `.prose-content h2 { margin-bottom: 2rem }`. */
.tra-feature-cards__heading {
	margin-bottom: 2rem;
}

/* `mt-16` below the intro paragraph (the intro's own bottom margin collapses). */
.tra-feature-cards__grid {
	--tra-grid-gap: 2rem;

	margin-top: 4rem;
}

/* The three-up stacked instance uses `gap-12`; the two-up ones use `gap-8`. */
.tra-feature-cards--stacked .tra-feature-cards__grid.tra-grid--3,
.tra-feature-cards--stacked .tra-feature-cards__grid.tra-grid--4 {
	--tra-grid-gap: 3rem;
}

.tra-feature-cards__outro {
	margin-top: 2.5rem;
}

/* ------------------------------------------------------------------ cards */

.tra-feature-cards__card {
	padding: 2.5rem;
	border: 1px solid transparent;
	border-radius: var(--tra-r-3xl);
	transition: border-color var(--tra-transition), box-shadow var(--tra-transition), background-color var(--tra-transition);
}

/* Per-item icon colour, consumed by both the plain glyph and the filled tile. */
.tra-feature-cards__card--icon-accent {
	--tra-fc-accent: var(--tra-accent);
}

.tra-feature-cards__card--icon-gold {
	--tra-fc-accent: var(--tra-gold);
}

.tra-feature-cards__card--icon-dark {
	--tra-fc-accent: var(--tra-primary);
}

.tra-feature-cards__card--cream {
	background-color: color-mix(in srgb, var(--tra-cream) 10%, transparent);
	border-color: var(--tra-hairline);
}

.tra-feature-cards__card--outline {
	/* The source's outline cards use p-8, not the p-10 of the filled variants. */
	padding: 2rem;
	background-color: transparent;
	border-width: 2px;
	border-color: var(--tra-muted);
}

.tra-feature-cards__card--white {
	background-color: var(--tra-surface);
	border-color: var(--tra-hairline);
	box-shadow: var(--tra-shadow-xl);
}

.tra-feature-cards__card--dark {
	background-color: var(--tra-primary);
	border-color: transparent;
	box-shadow: var(--tra-shadow-xl);
	color: #fff;
}

.tra-feature-cards__card--dark .tra-feature-cards__title {
	color: #fff;
}

.tra-feature-cards__card--dark .tra-feature-cards__text {
	color: rgb(255 255 255 / 0.9);
}

/* A dark glyph on a dark card would vanish, so fall back to gold. */
.tra-feature-cards__card--dark.tra-feature-cards__card--icon-dark {
	--tra-fc-accent: var(--tra-gold);
}

/* ------------------------------------------------------------------ icons */

.tra-feature-cards__icon {
	display: block;
	margin-bottom: 1.5rem;
	color: var(--tra-fc-accent, var(--tra-accent));
	font-size: var(--tra-fs-4xl);
	line-height: 1;
}

.tra-feature-cards__icon--tile {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 5rem;
	height: 5rem;
	border-radius: var(--tra-r-md);
	background-color: var(--tra-fc-accent, var(--tra-accent));
	color: #fff;
	font-size: var(--tra-fs-3xl);
	transition: transform var(--tra-transition);
}

.tra-feature-cards__card:hover .tra-feature-cards__icon--tile {
	transform: rotate(12deg);
}

/* ------------------------------------------------------------------- text */

.tra-feature-cards__body {
	min-width: 0;
}

.tra-feature-cards__title {
	margin-bottom: 1rem;
	font-size: var(--tra-fs-xl);
	font-weight: 900;
	line-height: 1.4;
	text-transform: uppercase;
}

/* Source: `text-sm` = 14/20, overriding the 1.1rem .tra-prose base. */
.tra-feature-cards__text {
	font-size: var(--tra-fs-sm);
	line-height: 1.4286;
}

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

.tra-feature-cards--inline .tra-feature-cards__card {
	display: flex;
	align-items: center;
	gap: 2rem;
	padding: 2rem;
}

.tra-feature-cards--inline .tra-feature-cards__icon {
	flex: 0 0 auto;
	margin-bottom: 0;
}

.tra-feature-cards--inline .tra-feature-cards__card:hover {
	border-color: var(--tra-accent);
}

.tra-feature-cards--inline .tra-feature-cards__title {
	margin-bottom: 0.25rem;
}

/* Source: `text-xs` = 12/16 on the inline course cards. */
.tra-feature-cards--inline .tra-feature-cards__text {
	font-size: var(--tra-fs-xs);
	line-height: 1.3333;
}

@media (prefers-reduced-motion: reduce) {
	.tra-feature-cards__card,
	.tra-feature-cards__icon--tile {
		transition: none;
	}

	.tra-feature-cards__card:hover .tra-feature-cards__icon--tile {
		transform: none;
	}
}
