/**
 * Layout primitives: container, section rhythm, grid.
 */

.aap-container {
	width: 100%;
	max-width: var(--container-max);
	margin-inline: auto;
	padding-inline: var(--container-pad-x);
}
.aap-container--narrow { max-width: var(--container-narrow); }
.aap-container--wide { max-width: var(--container-wide); }

.aap-section { padding-block: var(--section-pad-y); }
.aap-section--sm { padding-block: var(--section-pad-y-sm); }
.aap-section--top-0 { padding-top: 0; }
.aap-section--bottom-0 { padding-bottom: 0; }

.aap-section--forest { background: var(--color-forest); color: var(--color-text-on-dark); }
.aap-section--sand { background: var(--color-bg-alt); }
.aap-section--surface { background: var(--color-surface); }

main { display: block; overflow: hidden; }

.aap-grid { display: grid; gap: var(--space-6); }
.aap-grid--2 { grid-template-columns: repeat(1, 1fr); }
.aap-grid--3 { grid-template-columns: repeat(1, 1fr); }
.aap-grid--4 { grid-template-columns: repeat(1, 1fr); }

@media (min-width: 560px) {
	.aap-grid--2 { grid-template-columns: repeat(2, 1fr); }
	.aap-grid--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 860px) {
	.aap-grid--3 { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1024px) {
	.aap-grid--4 { grid-template-columns: repeat(4, 1fr); }
}

.aap-split {
	display: grid;
	gap: var(--space-8);
	align-items: center;
}
@media (min-width: 900px) {
	.aap-split { grid-template-columns: 1fr 1fr; gap: var(--space-12); }
	.aap-split--reverse { direction: rtl; }
	.aap-split--reverse > * { direction: ltr; }
}

.aap-section-head { max-width: 46rem; margin-bottom: var(--space-10); }
.aap-section-head--center { margin-inline: auto; text-align: center; }

.aap-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	font-size: var(--text-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: var(--tracking-wider);
	color: var(--color-turquoise-dark);
	margin-bottom: var(--space-3);
}
.aap-eyebrow::before {
	content: '';
	width: 22px;
	height: 1.5px;
	background: currentColor;
}
.aap-eyebrow--on-dark { color: var(--color-turquoise-light); }

/* ---- Scroll reveal (progressive enhancement; JS adds .is-visible) ------ */
.aap-reveal {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity var(--transition-slow), transform var(--transition-slow);
}
.aap-reveal.is-visible { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
	.aap-reveal { opacity: 1; transform: none; }
}
.js-disabled .aap-reveal { opacity: 1; transform: none; }

/* ---- Utility ------------------------------------------------------------ */
.aap-flex { display: flex; }
.aap-flex--center { align-items: center; justify-content: center; }
.aap-flex--between { align-items: center; justify-content: space-between; }
.aap-flex--wrap { flex-wrap: wrap; }
.aap-gap-2 { gap: var(--space-2); }
.aap-gap-4 { gap: var(--space-4); }
.aap-gap-6 { gap: var(--space-6); }
