/* ==========================================================================
   Mobisat — Utilities
   ========================================================================== */
.u-center { text-align: center; }
.u-muted { color: var(--muted); }
.u-navy { color: var(--ink-navy); }
.u-white { color: #fff; }
.u-mt-0 { margin-top: 0; }
.u-mt-1 { margin-top: var(--sp-2); }
.u-mt-2 { margin-top: var(--sp-4); }
.u-mt-3 { margin-top: var(--sp-5); }
.u-mt-4 { margin-top: var(--sp-6); }
.u-mb-2 { margin-bottom: var(--sp-4); }
.u-maxw-reading { max-width: var(--container-reading); }
.u-fw { width: 100%; }
.u-flex { display: flex; gap: 0.75rem; }
.u-wrap { flex-wrap: wrap; }
.u-between { justify-content: space-between; }
.u-gap-2 { gap: var(--sp-4); }
.u-hide { display: none !important; }
@media (max-width: 720px) { .u-hide-mobile { display: none !important; } }
@media (min-width: 721px) { .u-only-mobile { display: none !important; } }

.list-check { list-style: none; padding: 0; display: grid; gap: 0.55rem; }
.list-check li { position: relative; padding-inline-start: 1.9rem; }
.list-check li::before {
  content: ""; position: absolute; inset-inline-start: 0; top: 0.15em;
  width: 20px; height: 20px; border-radius: 50%;
  background: var(--surface-blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d4c9e' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/13px no-repeat;
}
.section--navy .list-check li::before { background-color: rgba(255,255,255,0.1); }

.divider { height: 1px; background: var(--line); border: 0; margin-block: var(--sp-6); }

/* Reveal on scroll (progressive; content visible without JS) */
[data-reveal] { opacity: 0; transform: translateY(14px); transition: opacity var(--dur-3) var(--ease), transform var(--dur-3) var(--ease); }
[data-reveal].is-in { opacity: 1; transform: none; }
.no-js [data-reveal], html:not(.js) [data-reveal] { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { [data-reveal] { opacity: 1; transform: none; } }
