/* ==========================================================================
   utilities.css — Helper classes (spacing, text, flex, visibility)
   ========================================================================== */

.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;
}

.flex { display: flex; }
.flex-col { flex-direction: column; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.flex-wrap { flex-wrap: wrap; }
.gap-2 { gap: var(--space-2); }
.gap-3 { gap: var(--space-3); }
.gap-4 { gap: var(--space-4); }
.gap-6 { gap: var(--space-6); }
.gap-8 { gap: var(--space-8); }

.text-center { text-align: center; }
.text-left { text-align: left; }
.text-muted { color: var(--color-text-muted); }
.text-inverse { color: #fff; }
.text-accent { color: var(--color-accent-600); }
.text-primary { color: var(--color-primary-700); }
.text-balance { text-wrap: balance; }
.text-pretty { text-wrap: pretty; }

.fw-medium { font-weight: 500; }
.fw-semibold { font-weight: 600; }
.fw-bold { font-weight: 700; }
.fw-extrabold { font-weight: 800; }

.fs-sm { font-size: var(--fs-sm); }
.fs-md { font-size: var(--fs-md); }
.fs-lg { font-size: var(--fs-lg); }

.mt-0 { margin-top: 0; }
.mt-2 { margin-top: var(--space-2); }
.mt-4 { margin-top: var(--space-4); }
.mt-6 { margin-top: var(--space-6); }
.mt-8 { margin-top: var(--space-8); }
.mt-12 { margin-top: var(--space-12); }
.mb-0 { margin-bottom: 0; }
.mb-2 { margin-bottom: var(--space-2); }
.mb-4 { margin-bottom: var(--space-4); }
.mb-6 { margin-bottom: var(--space-6); }
.mb-8 { margin-bottom: var(--space-8); }
.mb-12 { margin-bottom: var(--space-12); }

.max-w-content { max-width: 68ch; }
.max-w-sm { max-width: 480px; }
.max-w-md { max-width: 640px; }
.mx-auto { margin-inline: auto; }

.relative { position: relative; }
.rounded-lg { border-radius: var(--radius-lg); }
.rounded-full { border-radius: var(--radius-full); }
.shadow-md { box-shadow: var(--shadow-md); }
.overflow-hidden { overflow: hidden; }

.section-head { max-width: 720px; margin-bottom: var(--space-14); }
.section-head--center { margin-inline: auto; text-align: center; }
.section-head p { font-size: var(--fs-md); margin-top: var(--space-4); }

.hide-mobile { display: revert; }
.show-mobile { display: none; }

.w-full { width: 100%; }

.divider { height: 1px; background: var(--color-border); border: none; }

.list-check { display: flex; flex-direction: column; gap: var(--space-3); }
.list-check li { display: flex; align-items: flex-start; gap: var(--space-3); font-size: var(--fs-sm); color: var(--color-text-muted); }
.list-check li svg { flex-shrink: 0; width: 20px; height: 20px; color: var(--color-success-500); margin-top: 2px; }

.aspect-video { aspect-ratio: 16/9; }
.aspect-square { aspect-ratio: 1/1; }
.object-cover { object-fit: cover; width: 100%; height: 100%; }
