/*
 * Homepage features — "SaaS Clean - Features (Icon Grid)"
 * tmpl-saas-clean--features--icon-grid--20
 *
 * Centered single column, max-w-5xl (64rem) container, min-height 60vh.
 * Background: dot pattern + warm linear overlay. Cards: md shadow, xl radius.
 * Heading: 7xl, weight 400, -0.04em tracking, right aligned. Subheading: lg.
 * Entrance: flip-up 700ms, 0ms stagger. Scroll: fade-on-scroll (driven by the
 * --amber-feat-sc20-fade variable the scoped script sets).
 * Mobile: stack · Tablet: single column · Desktop: three-column icon grid.
 *
 * Every colour, space, radius, shadow and duration comes from
 * assets/css/design-tokens.css so the band follows the design system and
 * stays readable under [data-theme="dark"].
 */

.amber-feat-sc20 {
	--amber-feat-sc20-max: 64rem; /* max-w-5xl */
	--amber-feat-sc20-fade: 1;

	position: relative;
	isolation: isolate;
	min-height: 60vh;
	padding: var(--space-section) var(--container-padding);
	overflow: hidden;
	background-color: var(--color-bg);
	color: var(--color-text);
	font-family: var(--font-body);
}

/* ---------- pattern background + linear-warm overlay ---------- */

.amber-feat-sc20__pattern,
.amber-feat-sc20__overlay {
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
}

.amber-feat-sc20__pattern {
	background-image:
		radial-gradient(var(--color-neutral-300) 1px, transparent 1px),
		radial-gradient(var(--color-neutral-200) 1px, transparent 1px);
	background-position: 0 0, 12px 12px;
	background-size: 24px 24px, 24px 24px;
	opacity: 0.9;
}

.amber-feat-sc20__overlay {
	background-image: linear-gradient(
		160deg,
		color-mix(in srgb, var(--color-accent-50) 92%, transparent) 0%,
		color-mix(in srgb, var(--color-neutral-50) 82%, transparent) 48%,
		color-mix(in srgb, var(--color-accent-100) 88%, transparent) 100%
	);
}

/* color-mix fallback for older engines: a flat warm wash of the same ramp. */
@supports not (background: color-mix(in srgb, red 50%, transparent)) {
	.amber-feat-sc20__overlay {
		background-image: linear-gradient(
			160deg,
			var(--color-accent-50) 0%,
			var(--color-neutral-50) 48%,
			var(--color-accent-100) 100%
		);
		opacity: 0.88;
	}
}

[data-theme="dark"] .amber-feat-sc20 {
	background-color: var(--color-bg-dark);
	color: var(--color-text-on-dark);
}

[data-theme="dark"] .amber-feat-sc20__pattern {
	background-image:
		radial-gradient(var(--color-border-dark) 1px, transparent 1px),
		radial-gradient(var(--color-surface-dark-elevated) 1px, transparent 1px);
	opacity: 0.5;
}

[data-theme="dark"] .amber-feat-sc20__overlay {
	background-image: linear-gradient(
		160deg,
		var(--color-surface-dark) 0%,
		var(--color-bg-dark) 55%,
		var(--color-surface-dark) 100%
	);
	opacity: 0.85;
}

/* ---------- centered single-column container ---------- */

.amber-feat-sc20__container {
	display: flex;
	flex-direction: column;
	gap: var(--space-12);
	max-width: var(--amber-feat-sc20-max);
	margin: 0 auto;
}

/* ---------- head: eyebrow, heading, subheading (right aligned) ---------- */

.amber-feat-sc20__head {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: var(--space-4);
	text-align: right;
	/* fade-on-scroll: the script lowers --amber-feat-sc20-fade as the band
	   leaves the viewport, so the heading block eases away with the scroll. */
	opacity: var(--amber-feat-sc20-fade);
	transition: opacity var(--duration-slow) var(--ease-default);
}

.amber-feat-sc20__eyebrow {
	margin: 0;
	color: var(--color-secondary-700);
	font-family: var(--font-heading);
	font-size: var(--text-sm);
	font-weight: 600;
	letter-spacing: var(--letter-wide);
	text-transform: uppercase;
}

[data-theme="dark"] .amber-feat-sc20__eyebrow {
	color: var(--color-secondary-300);
}

.amber-feat-sc20__heading {
	max-width: 24ch;
	margin: 0;
	color: var(--color-text);
	font-family: var(--font-heading);
	/* 7xl — one step past the token scale's --text-4xl, kept fluid. */
	font-size: clamp(2.6rem, 6.4vw, calc(var(--text-4xl) * 1.55));
	font-weight: 400;
	letter-spacing: var(--letter-tighter); /* -0.04em */
	line-height: var(--leading-tight);
}

[data-theme="dark"] .amber-feat-sc20__heading {
	color: var(--color-text-on-dark);
}

.amber-feat-sc20__subheading {
	max-width: 52ch;
	margin: 0;
	color: var(--color-text-muted);
	font-size: var(--text-lg);
	line-height: var(--leading-snug);
}

[data-theme="dark"] .amber-feat-sc20__subheading {
	color: var(--color-text-muted-on-dark);
}

/* ---------- icon grid: 9 cards ---------- */

.amber-feat-sc20__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--space-6);
	margin: 0;
	padding: 0;
	list-style: none;
}

.amber-feat-sc20__card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-3);
	padding: var(--space-6);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-xl);
	background-color: var(--color-surface-raised);
	box-shadow: var(--shadow-md);
	transition:
		transform var(--duration-normal) var(--ease-default),
		box-shadow var(--duration-normal) var(--ease-default),
		border-color var(--duration-normal) var(--ease-default);
}

[data-theme="dark"] .amber-feat-sc20__card {
	border-color: var(--color-border-dark);
	background-color: var(--color-surface-dark);
}

/* card hover: lift-shadow */
.amber-feat-sc20__card:hover,
.amber-feat-sc20__card:focus-within {
	border-color: var(--color-accent-300);
	box-shadow: var(--shadow-xl);
	transform: translateY(-6px);
}

.amber-feat-sc20__card-media {
	width: 100%;
	margin-bottom: var(--space-2);
	border-radius: var(--radius-lg);
	overflow: hidden;
	background-color: var(--color-surface);
}

.amber-feat-sc20__card-img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	transition: transform var(--duration-slow) var(--ease-default);
}

.amber-feat-sc20__card:hover .amber-feat-sc20__card-img {
	transform: scale(1.04);
}

.amber-feat-sc20__icon-wrap {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: var(--radius-full);
	background-color: var(--color-secondary-50);
	color: var(--color-secondary-700);
}

[data-theme="dark"] .amber-feat-sc20__icon-wrap {
	background-color: var(--color-surface-dark-elevated);
	color: var(--color-secondary-300);
}

.amber-feat-sc20__icon {
	width: 1.5rem;
	height: 1.5rem;
}

.amber-feat-sc20__card-title {
	margin: 0;
	color: var(--color-text);
	font-family: var(--font-heading);
	font-size: var(--text-lg);
	font-weight: 600;
	letter-spacing: var(--letter-tight);
	line-height: var(--leading-snug);
}

[data-theme="dark"] .amber-feat-sc20__card-title {
	color: var(--color-text-on-dark);
}

.amber-feat-sc20__card-text {
	margin: 0;
	color: var(--color-text-muted);
	font-size: var(--text-base);
	line-height: var(--leading-normal);
}

[data-theme="dark"] .amber-feat-sc20__card-text {
	color: var(--color-text-muted-on-dark);
}

/* ---------- CTA: text link with an underline that expands on hover ---------- */

.amber-feat-sc20__cta {
	display: flex;
	justify-content: flex-end;
}

.amber-feat-sc20__link {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	padding: var(--space-2) 0;
	color: var(--color-action);
	font-family: var(--font-heading);
	font-size: var(--text-lg);
	font-weight: 600;
	letter-spacing: var(--letter-tight);
	text-decoration: none;
}

[data-theme="dark"] .amber-feat-sc20__link {
	color: var(--color-secondary-300);
}

.amber-feat-sc20__link-label {
	position: relative;
}

.amber-feat-sc20__link-label::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: -4px;
	left: 0;
	height: 2px;
	background-color: currentColor;
	transform: scaleX(0);
	transform-origin: right center;
	transition: transform var(--duration-normal) var(--ease-default);
}

.amber-feat-sc20__link:hover,
.amber-feat-sc20__link:focus-visible {
	color: var(--color-action-hover);
}

[data-theme="dark"] .amber-feat-sc20__link:hover,
[data-theme="dark"] .amber-feat-sc20__link:focus-visible {
	color: var(--color-secondary-200);
}

.amber-feat-sc20__link:hover .amber-feat-sc20__link-label::after,
.amber-feat-sc20__link:focus-visible .amber-feat-sc20__link-label::after {
	transform: scaleX(1);
}

.amber-feat-sc20__link-arrow {
	transition: transform var(--duration-normal) var(--ease-default);
}

.amber-feat-sc20__link:hover .amber-feat-sc20__link-arrow {
	transform: translateX(4px);
}

.amber-feat-sc20__link:focus-visible {
	outline: 2px solid var(--color-accent-500);
	outline-offset: 4px;
	border-radius: var(--radius-sm);
}

/* ---------- entrance animation: flip-up, 700ms, 0ms stagger ----------
   The hidden start state applies only once the scoped script has marked the
   section with --js, so the band is fully visible without JavaScript. */

.amber-feat-sc20--js .amber-feat-sc20__reveal {
	opacity: 0;
	transform: perspective(900px) rotateX(-14deg) translateY(28px);
	transform-origin: bottom center;
	transition:
		opacity var(--duration-slower) var(--ease-default),
		transform var(--duration-slower) var(--ease-default);
	transition-delay: 0ms; /* 0ms stagger: all elements flip up together */
}

.amber-feat-sc20--js .amber-feat-sc20__reveal.is-visible {
	opacity: 1;
	transform: none;
}

/* The card keeps its hover transition once revealed. */
.amber-feat-sc20--js .amber-feat-sc20__card.is-visible {
	transition:
		opacity var(--duration-slower) var(--ease-default),
		transform var(--duration-normal) var(--ease-default),
		box-shadow var(--duration-normal) var(--ease-default),
		border-color var(--duration-normal) var(--ease-default);
}

/* ---------- responsive: tablet single column, mobile stack ---------- */

@media (max-width: 1024px) {
	/* Tablet: single-col, per the template's tablet layout. */
	.amber-feat-sc20__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--space-5);
	}

	.amber-feat-sc20__heading {
		max-width: none;
	}
}

@media (max-width: 680px) {
	/* Mobile: stack — the head block reads left aligned at this width. */
	.amber-feat-sc20 {
		padding-inline: var(--space-4);
	}

	.amber-feat-sc20__container {
		gap: var(--space-8);
	}

	.amber-feat-sc20__head {
		align-items: flex-start;
		text-align: left;
	}

	.amber-feat-sc20__card {
		padding: var(--space-5);
	}

	.amber-feat-sc20__cta {
		justify-content: flex-start;
	}

	.amber-feat-sc20__link-label::after {
		transform: scaleX(1);
		transform-origin: left center;
	}
}

/* ---------- reduced motion: no flip, no fade, no movement ---------- */

@media (prefers-reduced-motion: reduce) {
	.amber-feat-sc20__head {
		opacity: 1;
	}

	.amber-feat-sc20--js .amber-feat-sc20__reveal,
	.amber-feat-sc20--js .amber-feat-sc20__reveal.is-visible {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.amber-feat-sc20__card:hover,
	.amber-feat-sc20__card:focus-within {
		transform: none;
	}

	.amber-feat-sc20__card:hover .amber-feat-sc20__card-img,
	.amber-feat-sc20__link:hover .amber-feat-sc20__link-arrow {
		transform: none;
	}
}
