/*
 * Primitives: icon, pill button, eyebrow label, section heading, check list,
 * circular icon badge. These five appear on nearly every page — loaded
 * globally.
 */

/* ----------------------------------------------------------------- icon */

.asli-icon {
	display: inline-flex;
	flex-shrink: 0;
	line-height: 1;
}

.asli-icon svg {
	width: 1em;
	height: 1em;
	stroke-width: 2;
}

/* --------------------------------------------------------------- button */

.asli-btn {
	position: relative;
	z-index: 0;
	overflow: hidden;
	display: inline-flex;
	align-items: center;
	gap: var(--asli-space-xs);
	padding: 0.875rem 1.75rem;
	border: 2px solid transparent;
	border-radius: var(--asli-radius-pill);
	font-family: var(--asli-font-body);
	font-size: var(--asli-text-body);
	font-weight: var(--asli-weight-medium);
	line-height: 1.2;
	cursor: pointer;
	text-decoration: none;
	transition:
		border-color var(--asli-duration) var(--asli-ease),
		color 0.2s ease-out;
}

/* Fill sweep layer: grows from the leading edge on hover. */
.asli-btn::before {
	content: "";
	position: absolute;
	inset-block: 0;
	inset-inline-start: 0;
	width: 0;
	border-radius: var(--asli-radius-pill);
	transition: width 0.2s ease-out;
	z-index: -1;
}

.asli-btn:hover::before {
	width: 100%;
}

.asli-btn .asli-icon {
	transition: translate var(--asli-duration) var(--asli-ease);
}

.asli-btn:hover .asli-icon {
	translate: 3px 0;
}

/* Primary — the "sun" CTA. Yellow fill; navy sweeps in, text turns yellow. */
.asli-btn--primary {
	background: var(--asli-yellow);
	color: var(--asli-navy);
}

.asli-btn--primary::before {
	background: var(--asli-navy);
}

.asli-btn--primary:hover {
	color: var(--asli-yellow);
}

/* Secondary — blue fill; navy sweeps in, text turns yellow. */
.asli-btn--secondary {
	background: var(--asli-blue);
	color: var(--asli-text-on-dark);
}

.asli-btn--secondary::before {
	background: var(--asli-navy);
}

.asli-btn--secondary:hover {
	color: var(--asli-yellow);
}

/* Ghost — outline for dark/photo backgrounds; white sweeps in. */
.asli-btn--ghost {
	background: transparent;
	border-color: var(--asli-text-on-dark);
	color: var(--asli-text-on-dark);
}

.asli-btn--ghost::before {
	background: var(--asli-text-on-dark);
}

.asli-btn--ghost:hover {
	color: var(--asli-navy);
}

/* -------------------------------------------------------------- eyebrow */

.asli-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: var(--asli-space-xs);
	margin: 0 0 var(--asli-space-sm);
	font-size: var(--asli-text-eyebrow);
	font-weight: var(--asli-weight-medium);
	letter-spacing: var(--asli-tracking-eyebrow);
	text-transform: uppercase;
	color: var(--asli-amber-text);
}

.asli-eyebrow .asli-icon {
	font-size: 1.1em;
}

/* On navy/photo backgrounds full-strength yellow is allowed. */
.asli-eyebrow--on-dark {
	color: var(--asli-yellow);
}

/* ------------------------------------------------------ section heading */

.asli-heading {
	margin-bottom: var(--asli-space-2xl);
	max-width: 44rem;
}

.asli-heading--center {
	margin-inline: auto;
	text-align: center;
}

.asli-heading__title {
	margin: 0;
}

/* One emphasised word — blue on light, yellow on dark. */
.asli-heading__accent {
	color: var(--asli-blue);
}

.asli-section--dark .asli-heading__accent,
.asli-heading--on-dark .asli-heading__accent {
	color: var(--asli-yellow);
}

.asli-heading__lead {
	margin: var(--asli-space-md) 0 0;
}

/* ------------------------------------------------------------ checklist */

.asli-checklist {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: var(--asli-space-sm) var(--asli-space-xl);
}

.asli-checklist--2col {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 767px) {
	.asli-checklist--2col {
		grid-template-columns: 1fr;
	}
}

.asli-checklist__item {
	display: flex;
	align-items: flex-start;
	gap: var(--asli-space-sm);
	font-weight: var(--asli-weight-medium);
	color: var(--asli-ink);
}

.asli-checklist__item .asli-icon {
	margin-top: 0.2em;
	width: 1.35em;
	height: 1.35em;
	align-items: center;
	justify-content: center;
	background: var(--asli-yellow);
	color: var(--asli-navy);
	border-radius: var(--asli-radius-pill);
}

.asli-checklist__item .asli-icon svg {
	width: 0.8em;
	height: 0.8em;
	stroke-width: 3;
}

.asli-section--dark .asli-checklist__item {
	color: var(--asli-text-on-dark);
}

/* ---------------------------------------------------------------- badge */

.asli-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3.5rem;
	height: 3.5rem;
	border-radius: var(--asli-radius-pill);
	background: var(--asli-yellow);
	color: var(--asli-navy);
	font-size: 1.5rem;
}

.asli-badge--sm {
	width: 2.5rem;
	height: 2.5rem;
	font-size: 1.1rem;
}

.asli-badge--lg {
	width: 4.5rem;
	height: 4.5rem;
	font-size: 2rem;
}

.asli-badge--blue {
	background: var(--asli-blue);
	color: var(--asli-text-on-dark);
}

.asli-badge--ring {
	box-shadow: 0 0 0 4px var(--asli-surface);
}
