/* ==========================================================================
   LEO Utilities — helper classes
   ========================================================================== */

/* ── Text utilities ───────────────────────────────────────────────────── */
.leo-text-center { text-align: center; }
.leo-text-left   { text-align: left; }
.leo-text-right  { text-align: right; }

.leo-text-gold     { color: var(--leo-gold); }
.leo-text-charcoal { color: var(--leo-charcoal); }
.leo-text-slate    { color: var(--leo-slate); }
.leo-text-white    { color: var(--leo-white); }
.leo-text-success  { color: var(--leo-success); }
.leo-text-info     { color: var(--leo-info); }

/* ── Background utilities ─────────────────────────────────────────────── */
.leo-bg-cream    { background-color: var(--leo-cream); }
.leo-bg-charcoal { background-color: var(--leo-charcoal); color: var(--leo-white); }
.leo-bg-gold     { background-color: var(--leo-gold); }
.leo-bg-white    { background-color: var(--leo-white); }

/* ── Spacing utilities (margin) ───────────────────────────────────────── */
.leo-mt-0 { margin-top: 0; }
.leo-mt-1 { margin-top: var(--leo-space-1); }
.leo-mt-2 { margin-top: var(--leo-space-2); }
.leo-mt-3 { margin-top: var(--leo-space-3); }
.leo-mt-4 { margin-top: var(--leo-space-4); }
.leo-mt-5 { margin-top: var(--leo-space-5); }
.leo-mt-6 { margin-top: var(--leo-space-6); }

.leo-mb-0 { margin-bottom: 0; }
.leo-mb-1 { margin-bottom: var(--leo-space-1); }
.leo-mb-2 { margin-bottom: var(--leo-space-2); }
.leo-mb-3 { margin-bottom: var(--leo-space-3); }
.leo-mb-4 { margin-bottom: var(--leo-space-4); }
.leo-mb-5 { margin-bottom: var(--leo-space-5); }
.leo-mb-6 { margin-bottom: var(--leo-space-6); }

/* ── Display utilities ────────────────────────────────────────────────── */
.leo-block        { display: block; }
.leo-inline-block { display: inline-block; }
.leo-flex         { display: flex; }
.leo-grid         { display: grid; }
.leo-hidden       { display: none; }

@media (min-width: 768px) {
	.leo-md-hidden { display: none; }
	.leo-md-block  { display: block; }
}

@media (min-width: 1024px) {
	.leo-lg-hidden { display: none; }
	.leo-lg-block  { display: block; }
}

/* ── Accessibility ────────────────────────────────────────────────────── */
.leo-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.leo-skip-to-content {
	position: absolute;
	top: -40px;
	left: 0;
	padding: 8px 16px;
	background: var(--leo-charcoal);
	color: var(--leo-white);
	z-index: var(--leo-z-tooltip);
	transition: top var(--leo-transition-base);
	text-decoration: none;
}

.leo-skip-to-content:focus {
	top: 0;
}

/* Reduce motion for users who prefer */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}
