/*
 * Shared building blocks for the AURANOM pages (Home, About, and later pages).
 * Tokens only (assets/css/design-tokens.css); no brand colours here.
 * Mobile first. Breakpoints: <=767 mobile, 768-1023 tablet, >=1024 desktop.
 * Radius rule: 3px (--radius-sm) buttons/cards/panels, 2px (--radius-xs) tags and eyebrows,
 * --radius-pill only for avatars, round icons, step circles and dots.
 */

main.auranom-page {
	margin-block: 0;
}

main.auranom-page > * {
	margin-block: 0;
}

main.auranom-page,
main.auranom-page :where(section, div, ul, ol, li, p, h1, h2, h3, h4, dl, dd, figure, blockquote, a, span, aside, nav) {
	box-sizing: border-box;
	overflow-wrap: anywhere;
}

/* Element resets have zero specificity (issue #35), so component spacing rules such as
   .ap-grid { margin-block-start } win over them. */
:where(main.auranom-page ul, main.auranom-page ol) {
	margin: 0;
	padding: 0;
	list-style: none;
}

:where(main.auranom-page :is(h1, h2, h3, h4, p, dl, dd, figure, blockquote)) {
	margin: 0;
}

.ap-wrap {
	max-width: 1200px;
	margin: 0 auto;
	padding-inline: var(--space-4);
}

.ap-hero {
	padding-block: var(--space-10);
}

.ap-section {
	padding-block: 56px;
	border-top: 1px solid var(--border);
}

.ap-section--alt {
	background: var(--surface);
}

.ap-ico {
	flex: none;
}

.ap-ico--primary {
	color: var(--primary-text);
}

.ap-ico--success {
	color: var(--success);
}

/* Type */
.ap-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	margin-block-end: var(--space-4);
	padding: var(--space-1) 10px;
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-xs);
	font-family: var(--font-mono);
	font-size: 11px;
	line-height: 18px;
	font-weight: 500;
	letter-spacing: 0.08em;
	color: var(--primary-text);
}

.ap-dot {
	display: inline-block;
	flex: none;
	width: 6px;
	height: 6px;
	background: var(--brand-teal);
	border-radius: var(--radius-pill);
}

.ap-kicker {
	margin-block-end: var(--space-2);
	font-family: var(--font-mono);
	font-size: 11px;
	line-height: 18px;
	letter-spacing: 0.08em;
	color: var(--primary-text);
}

.ap-h1 {
	font-size: 32px;
	line-height: 40px;
	font-weight: 600;
	letter-spacing: -0.025em;
	color: var(--text);
}

.ap-h2 {
	font-size: 26px;
	line-height: 34px;
	font-weight: 600;
	letter-spacing: -0.02em;
	color: var(--text);
}

.ap-h3 {
	font-size: 20px;
	line-height: 28px;
	font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--text);
}

.ap-lead {
	margin-block-start: var(--space-4);
	font-size: 17px;
	line-height: 26px;
	color: var(--muted);
}

.ap-body {
	margin-block-start: var(--space-3);
	font-size: 16px;
	line-height: 26px;
	color: var(--muted);
}

.ap-small {
	font-size: 15px;
	line-height: 23px;
	color: var(--muted);
}

.ap-footnote {
	margin-block-start: var(--space-3);
	font-family: var(--font-mono);
	font-size: 12px;
	line-height: 20px;
	color: var(--muted);
}

/* Links and buttons */
.ap-link {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	min-height: 44px;
	font-size: 15px;
	font-weight: 600;
	color: var(--primary-text);
	text-decoration: none;
}

.ap-link:hover {
	color: var(--text);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ap-btns {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	margin-block-start: var(--space-6);
}

.ap-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2);
	box-sizing: border-box; /* width: 100% includes padding and border (#19) */
	width: 100%;
	min-height: 48px;
	padding: 0 var(--space-5);
	text-align: center;
	overflow-wrap: anywhere;
	border-radius: var(--radius-sm);
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	transition: background-color var(--transition-base) var(--ease-standard), border-color var(--transition-base) var(--ease-standard);
}

.ap-btn--primary {
	background: var(--auranom-primary);
	color: var(--auranom-primary-foreground);
}

.ap-btn--primary:hover {
	background: var(--auranom-primary-hover);
	color: var(--auranom-primary-foreground);
}

.ap-btn--ghost {
	background: transparent;
	color: var(--text);
	border: 1px solid var(--border);
}

.ap-btn--ghost:hover {
	background: var(--hover-bg);
	color: var(--text);
	border-color: var(--muted);
}

/* Panels, cards, tags, notes */
.ap-panel {
	padding: var(--space-6);
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
}

.ap-section--alt .ap-panel {
	background: var(--surface-2);
}

.ap-card {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	padding: var(--space-5);
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	transition: border-color var(--transition-base) var(--ease-standard);
}

.ap-section--alt .ap-card {
	background: var(--surface-2);
}

.ap-card:hover {
	border-color: var(--muted);
}

.ap-tag {
	display: inline-flex;
	align-items: center;
	gap: var(--space-1);
	padding: 2px var(--space-2);
	background: var(--surface-2);
	border: 1px solid var(--border);
	border-radius: var(--radius-xs);
	font-family: var(--font-mono);
	font-size: 11px;
	line-height: 18px;
	color: var(--muted);
	white-space: nowrap;
}

.ap-tag--primary {
	background: transparent;
	border-color: var(--primary-text);
	color: var(--primary-text);
}

.ap-note {
	display: flex;
	align-items: flex-start;
	gap: var(--space-3);
	margin-block-start: var(--space-6);
	font-size: 15px;
	line-height: 24px;
	color: var(--text);
}

.ap-note--small {
	gap: var(--space-2);
	font-size: 14px;
	line-height: 22px;
	color: var(--muted);
}

.ap-note--box {
	padding: 14px var(--space-4);
	background: var(--selected-bg);
	border: 1px solid var(--primary-text);
	border-radius: var(--radius-sm);
}

.ap-note .ap-ico {
	margin-block-start: 2px;
}

.ap-iconlist {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	margin-block-start: var(--space-4);
}

.ap-iconlist > li {
	display: flex;
	gap: var(--space-3);
	font-size: 15px;
	line-height: 23px;
	color: var(--text);
}

.ap-iconlist .ap-ico {
	margin-block-start: 3px;
}

/* Layout helpers */
.ap-split {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--space-8);
}

.ap-sechead {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-2);
}

.ap-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--space-4);
	margin-block-start: var(--space-6);
}

/* Stat strips: numbers in mono, 2 columns on mobile, odd last item spans both */
.ap-stats {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	margin-block-start: var(--space-6);
	background: var(--border);
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	overflow: hidden;
}

.ap-stat {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 18px 14px;
	background: var(--bg);
}

.ap-stat__num {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-mono);
	font-size: 30px;
	line-height: 36px;
	font-weight: 500;
	letter-spacing: -0.02em;
	color: var(--text);
}

.ap-stat__num--human {
	font-size: 24px;
	color: var(--success);
}

.ap-stat__prefix {
	font-size: 14px;
	color: var(--muted);
}

.ap-stat__label {
	font-size: 14px;
	line-height: 20px;
	color: var(--muted);
}

/* Closing call-to-action band */
.ap-cta {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	padding: 28px var(--space-5);
	background: var(--gradient-hero), var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
}

/* Mobile: an odd last stat spans both columns */
@media (max-width: 767px) {
	.ap-stats > li:last-child:nth-child(odd) {
		grid-column: 1 / -1;
	}
}

/* Tablet */
@media (min-width: 768px) {
	.ap-wrap {
		padding-inline: var(--space-6);
	}

	.ap-hero {
		padding-block: var(--space-16);
	}

	.ap-section {
		padding-block: var(--space-16);
	}

	.ap-h1 {
		font-size: 48px;
		line-height: 56px;
	}

	.ap-h2 {
		font-size: 32px;
		line-height: 40px;
	}

	.ap-eyebrow {
		font-size: 12px;
		line-height: 20px;
		padding-inline: var(--space-3);
	}

	.ap-sechead {
		flex-direction: row;
		align-items: flex-end;
		justify-content: space-between;
		gap: var(--space-6);
	}

	.ap-grid--3,
	.ap-grid--4,
	.ap-grid--5 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ap-stats--10 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.ap-btns {
		flex-direction: row;
		flex-wrap: wrap;
	}

	.ap-btn {
		width: auto;
	}

	.ap-panel {
		padding: var(--space-8);
	}

	.ap-cta {
		padding: var(--space-8) var(--space-6);
	}
}

/* Desktop */
@media (min-width: 1024px) {
	.ap-hero {
		padding-block: var(--space-24) 80px;
	}

	.ap-section {
		padding-block: var(--space-24);
	}

	.ap-split--5-7 {
		grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
		gap: var(--space-12);
	}

	.ap-split--7-5 {
		grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
		gap: var(--space-12);
	}

	.ap-split--even {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--space-8);
	}

	.ap-grid--3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.ap-grid--4 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.ap-grid--5 {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}

	.ap-stats--4 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.ap-stats--10 {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}

	.ap-stat {
		padding: 28px var(--space-6);
		gap: var(--space-2);
	}

	.ap-stat__num {
		font-size: 40px;
		line-height: 48px;
	}

	.ap-stat__num--human {
		font-size: 28px;
	}

	.ap-cta {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		gap: var(--space-8);
		padding: var(--space-12);
	}

	.ap-cta .ap-btns {
		flex: none;
		margin-block-start: 0;
		flex-wrap: nowrap;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ap-btn,
	.ap-card {
		transition-duration: 0.01ms;
	}
}
