:root {
    --movus-blue: #0b46b5;
    --movus-ink: #101525;
    --movus-line: #d8deea;
    --movus-cyan: #00a9e8;
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    background: #fff;
    color: var(--movus-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

a {
    color: inherit;
    text-decoration: none;
}

p,
h1,
h2,
h3,
ul,
fieldset {
    margin: 0;
}

ul {
    padding: 0;
    list-style: none;
}

button,
input,
select,
textarea {
    font: inherit;
}

img {
    display: block;
    max-width: 100%;
}

.hero-section {
    isolation: isolate;
}

.hero-section::before {
    position: absolute;
    inset: 0;
    z-index: -2;
    background:
        linear-gradient(rgba(11, 70, 181, 0.055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(11, 70, 181, 0.055) 1px, transparent 1px);
    background-size: 44px 44px;
    content: "";
    mask-image: linear-gradient(90deg, transparent, #000 12%, #000 72%, transparent);
}

.hero-section::after {
    position: absolute;
    top: 5.5rem;
    right: 4vw;
    z-index: -1;
    width: min(460px, 42vw);
    height: min(460px, 42vw);
    border: 1px solid rgba(11, 70, 181, 0.14);
    border-radius: 999px;
    background: radial-gradient(circle, rgba(0, 169, 232, 0.13), transparent 62%);
    content: "";
    animation: slow-pulse 7s ease-in-out infinite;
}

.hero-visual {
    position: relative;
}

.hero-visual::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(115deg, transparent 0%, transparent 42%, rgba(255, 255, 255, 0.42) 50%, transparent 58%, transparent 100%);
    content: "";
    transform: translateX(-120%);
    animation: scan-sheen 5.6s ease-in-out infinite;
}

.reveal-on-scroll {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 700ms ease, transform 700ms ease;
}

.reveal-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@keyframes scan-sheen {
    0%, 42% { transform: translateX(-120%); }
    72%, 100% { transform: translateX(120%); }
}

@keyframes slow-pulse {
    0%, 100% { transform: scale(0.98); opacity: 0.75; }
    50% { transform: scale(1.04); opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.001ms !important;
    }

    .reveal-on-scroll {
        opacity: 1;
        transform: none;
    }
}

.grid > *,
.flex > * {
    min-width: 0;
}

/* Local Tailwind-style fallback for offline/CDN-blocked previews. */
.sticky { position: sticky; }
.relative { position: relative; }
.absolute { position: absolute; }
.top-0 { top: 0; }
.bottom-5 { bottom: 1.25rem; }
.left-5 { left: 1.25rem; }
.right-5 { right: 1.25rem; }
.z-50 { z-index: 50; }
.hidden { display: none; }
.block { display: block; }
.grid { display: grid; }
.flex { display: flex; }
.inline-flex { display: inline-flex; }
.flex-col { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.shrink-0 { flex-shrink: 0; }
.cursor-pointer { cursor: pointer; }
.overflow-hidden { overflow: hidden; }
.resize-y { resize: vertical; }
.object-cover { object-fit: cover; }
.object-contain { object-fit: contain; }
.scroll-smooth { scroll-behavior: smooth; }
.antialiased { -webkit-font-smoothing: antialiased; }
.mx-auto { margin-right: auto; margin-left: auto; }
.mb-3 { margin-bottom: 0.75rem; }
.mb-5 { margin-bottom: 1.25rem; }
.mb-6 { margin-bottom: 1.5rem; }
.mt-0\.5 { margin-top: 0.125rem; }
.mt-1 { margin-top: 0.25rem; }
.mt-2 { margin-top: 0.5rem; }
.mt-3 { margin-top: 0.75rem; }
.mt-5 { margin-top: 1.25rem; }
.mt-7 { margin-top: 1.75rem; }
.mt-8 { margin-top: 2rem; }
.mt-9 { margin-top: 2.25rem; }
.mt-12 { margin-top: 3rem; }
.space-y-4 > * + * { margin-top: 1rem; }
.gap-2 { gap: 0.5rem; }
.gap-3 { gap: 0.75rem; }
.gap-4 { gap: 1rem; }
.gap-5 { gap: 1.25rem; }
.gap-6 { gap: 1.5rem; }
.gap-8 { gap: 2rem; }
.gap-10 { gap: 2.5rem; }
.gap-px { gap: 1px; }
.max-w-2xl { max-width: 42rem; }
.max-w-3xl { max-width: 48rem; }
.max-w-7xl { max-width: 80rem; }
.min-h-14 { min-height: 3.5rem; }
.min-h-36 { min-height: 9rem; }
.min-h-\[420px\] { min-height: 420px; }
.h-4 { height: 1rem; }
.w-4 { width: 1rem; }
.h-5 { height: 1.25rem; }
.w-5 { width: 1.25rem; }
.h-7 { height: 1.75rem; }
.w-7 { width: 1.75rem; }
.h-10 { height: 2.5rem; }
.w-10 { width: 2.5rem; }
.h-11 { height: 2.75rem; }
.w-11 { width: 2.75rem; }
.h-12 { height: 3rem; }
.w-12 { width: 3rem; }
.h-full { height: 100%; }
.w-full { width: 100%; }
.rounded-md { border-radius: 6px; }
.rounded-lg { border-radius: 8px; }
.border { border: 1px solid var(--movus-line); }
.border-t { border-top: 1px solid var(--movus-line); }
.border-b { border-bottom: 1px solid var(--movus-line); }
.border-y { border-top: 1px solid var(--movus-line); border-bottom: 1px solid var(--movus-line); }
.border-l { border-left: 1px solid var(--movus-line); }
.border-l-4 { border-left: 4px solid var(--movus-blue); }
.border-dashed { border-style: dashed; }
.border-movus-line { border-color: var(--movus-line); }
.border-movus-blue { border-color: var(--movus-blue); }
.border-slate-300 { border-color: #cbd5e1; }
.border-white\/15 { border-color: rgba(255,255,255,0.15); }
.bg-white { background: #fff; }
.bg-white\/15 { background: rgba(255,255,255,0.15); }
.bg-white\/92 { background: rgba(255,255,255,0.92); }
.bg-movus-blue { background: var(--movus-blue); }
.bg-movus-ink { background: var(--movus-ink); }
.bg-movus-line { background: var(--movus-line); }
.bg-movus-mist { background: #f4f7fb; }
.bg-emerald-50 { background: #ecfdf5; }
.bg-amber-50 { background: #fffbeb; }
.bg-red-50 { background: #fef2f2; }
.p-4 { padding: 1rem; }
.p-5 { padding: 1.25rem; }
.p-6 { padding: 1.5rem; }
.px-4 { padding-right: 1rem; padding-left: 1rem; }
.px-5 { padding-right: 1.25rem; padding-left: 1.25rem; }
.px-6 { padding-right: 1.5rem; padding-left: 1.5rem; }
.px-7 { padding-right: 1.75rem; padding-left: 1.75rem; }
.py-4 { padding-top: 1rem; padding-bottom: 1rem; }
.py-8 { padding-top: 2rem; padding-bottom: 2rem; }
.py-12 { padding-top: 3rem; padding-bottom: 3rem; }
.py-20 { padding-top: 5rem; padding-bottom: 5rem; }
.pl-5 { padding-left: 1.25rem; }
.text-xs { font-size: 0.75rem; line-height: 1rem; }
.text-sm { font-size: 0.875rem; line-height: 1.25rem; }
.text-lg { font-size: 1.125rem; line-height: 1.75rem; }
.text-2xl { font-size: 1.5rem; line-height: 2rem; }
.text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
.text-5xl { font-size: 3rem; line-height: 1; }
.font-medium { font-weight: 500; }
.font-semibold { font-weight: 600; }
.font-bold { font-weight: 700; }
.font-extrabold { font-weight: 800; }
.font-black { font-weight: 900; }
.leading-6 { line-height: 1.5rem; }
.leading-8 { line-height: 2rem; }
.leading-tight { line-height: 1.25; }
.leading-\[1\.03\] { line-height: 1.03; }
.tracking-\[0\.08em\] { letter-spacing: 0.08em; }
.tracking-\[0\.14em\] { letter-spacing: 0.14em; }
.tracking-\[0\.16em\] { letter-spacing: 0.16em; }
.tracking-\[0\.34em\] { letter-spacing: 0.34em; }
.uppercase { text-transform: uppercase; }
.text-white { color: #fff; }
.text-movus-blue { color: var(--movus-blue); }
.text-movus-ink { color: var(--movus-ink); }
.text-movus-graphite { color: #2c2d3a; }
.text-slate-300 { color: #cbd5e1; }
.text-slate-500 { color: #64748b; }
.text-slate-600 { color: #475569; }
.text-blue-200 { color: #bfdbfe; }
.text-emerald-900 { color: #064e3b; }
.text-amber-900 { color: #78350f; }
.text-red-900 { color: #7f1d1d; }
.shadow-soft { box-shadow: 0 18px 50px rgba(16, 21, 37, 0.10); }
.backdrop-blur { backdrop-filter: blur(10px); }
.transition { transition: all 160ms ease; }
.list-disc { list-style: disc; }
.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;
}
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.hover\:bg-blue-800:hover { background: #1e40af; }
.hover\:border-movus-blue:hover { border-color: var(--movus-blue); }
.hover\:text-movus-blue:hover { color: var(--movus-blue); }
.focus\:outline-none:focus { outline: 0; }
.focus\:ring-4:focus { box-shadow: 0 0 0 4px rgba(191, 219, 254, 0.9); }

@media (min-width: 640px) {
    .sm\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sm\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .sm\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .sm\:flex-row { flex-direction: row; }
    .sm\:items-center { align-items: center; }
    .sm\:justify-between { justify-content: space-between; }
    .sm\:p-8 { padding: 2rem; }
    .sm\:text-6xl { font-size: 3.75rem; line-height: 1; }
}

@media (min-width: 768px) {
    .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
    .lg\:flex { display: flex; }
    .lg\:hidden { display: none; }
    .lg\:items-end { align-items: end; }
    .lg\:px-8 { padding-right: 2rem; padding-left: 2rem; }
    .lg\:py-16 { padding-top: 4rem; padding-bottom: 4rem; }
    .lg\:text-7xl { font-size: 4.5rem; line-height: 1; }
    .lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .lg\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .lg\:grid-cols-\[1\.02fr_0\.98fr\] { grid-template-columns: 1.02fr 0.98fr; }
    .lg\:grid-cols-\[0\.85fr_1\.15fr\] { grid-template-columns: 0.85fr 1.15fr; }
    .lg\:grid-cols-\[0\.75fr_1\.25fr\] { grid-template-columns: 0.75fr 1.25fr; }
    .lg\:grid-cols-\[0\.8fr_1\.2fr\] { grid-template-columns: 0.8fr 1.2fr; }
    .lg\:grid-cols-\[0\.82fr_1\.18fr\] { grid-template-columns: 0.82fr 1.18fr; }
}

.nav-link {
    position: relative;
    padding: 0.35rem 0;
    transition: color 160ms ease;
}

.nav-link:hover,
.nav-link:focus {
    color: var(--movus-blue);
}

.nav-link::after {
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    height: 2px;
    background: var(--movus-blue);
    content: "";
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 180ms ease;
}

.nav-link:hover::after,
.nav-link:focus::after {
    transform: scaleX(1);
}

.mobile-link {
    border: 1px solid var(--movus-line);
    border-radius: 6px;
    padding: 0.85rem 1rem;
}

#menuToggle {
    background: #fff;
}

#menuToggle::before {
    display: none;
    width: 18px;
    height: 2px;
    background: var(--movus-ink);
    box-shadow: 0 -6px 0 var(--movus-ink), 0 6px 0 var(--movus-ink);
    content: "";
}

.stat-cell {
    min-height: 108px;
    background: #fff;
    padding: 1.15rem;
}

.stat-cell strong {
    display: block;
    color: var(--movus-ink);
    font-size: clamp(1.45rem, 3vw, 1.85rem);
    font-weight: 900;
    line-height: 1;
}

.stat-cell span {
    display: block;
    margin-top: 0.55rem;
    color: #64748b;
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.35;
}

.mini-proof {
    display: flex;
    min-height: 64px;
    align-items: center;
    gap: 0.65rem;
    border: 1px solid rgba(216, 222, 234, 0.9);
    background: rgba(255, 255, 255, 0.82);
    padding: 0.8rem;
    color: var(--movus-ink);
    font-size: 0.78rem;
    font-weight: 900;
    line-height: 1.25;
}

.mini-proof svg {
    color: var(--movus-blue);
    flex: 0 0 auto;
}

.section-kicker {
    color: var(--movus-blue);
    font-size: 0.8rem;
    font-weight: 900;
    letter-spacing: 0.28em;
    text-transform: uppercase;
}

.service-card {
    overflow: hidden;
    border: 1px solid var(--movus-line);
    border-radius: 8px;
    background: #fff;
    transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.service-card:hover {
    border-color: rgba(11, 70, 181, 0.35);
    box-shadow: 0 18px 42px rgba(16, 21, 37, 0.12);
    transform: translateY(-4px);
}

.service-image {
    aspect-ratio: 4 / 3;
    height: auto;
    width: 100%;
    object-fit: cover;
}

.service-icon {
    display: inline-flex;
    height: 42px;
    width: 42px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--movus-line);
    border-radius: 8px;
    color: var(--movus-blue);
}

.service-card h3 {
    margin-top: 1.1rem;
    color: var(--movus-ink);
    font-size: 1.35rem;
    font-weight: 900;
}

.service-card p {
    margin-top: 0.75rem;
    color: #64748b;
    font-size: 0.97rem;
    line-height: 1.7;
}

.service-card ul {
    margin-top: 1rem;
    display: grid;
    gap: 0.65rem;
    color: #334155;
    font-size: 0.9rem;
    font-weight: 700;
}

.service-card li {
    display: flex;
    gap: 0.6rem;
    line-height: 1.45;
}

.service-card li::before {
    margin-top: 0.48rem;
    height: 6px;
    width: 6px;
    flex: 0 0 auto;
    border-radius: 999px;
    background: var(--movus-blue);
    content: "";
}

.advantage-item {
    min-height: 230px;
    background: #fff;
    padding: clamp(1.3rem, 3vw, 2rem);
}

.advantage-icon {
    height: 30px;
    width: 30px;
    color: var(--movus-blue);
}

.advantage-item h3,
.process-step h3 {
    margin-top: 1rem;
    font-size: 1.15rem;
    font-weight: 900;
}

.advantage-item p,
.process-step p {
    margin-top: 0.75rem;
    color: #64748b;
    font-size: 0.95rem;
    line-height: 1.7;
}

.process-step {
    min-height: 250px;
    background: #101525;
    padding: clamp(1.25rem, 3vw, 2rem);
}

.process-step span {
    display: block;
    margin-bottom: 2rem;
    color: #93c5fd;
    font-size: 1.2rem;
    font-weight: 900;
}

.process-step p {
    color: #cbd5e1;
}

.choice-card {
    cursor: pointer;
}

.choice-card input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.choice-card span {
    display: flex;
    min-height: 58px;
    align-items: center;
    gap: 0.7rem;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    background: #fff;
    padding: 0.85rem 1rem;
    color: var(--movus-ink);
    font-size: 0.9rem;
    font-weight: 900;
    line-height: 1.25;
    transition: border-color 160ms ease, background 160ms ease, color 160ms ease, box-shadow 160ms ease;
}

.choice-card input:checked + span {
    border-color: var(--movus-blue);
    background: var(--movus-blue);
    color: #fff;
    box-shadow: 0 10px 24px rgba(11, 70, 181, 0.18);
}

.choice-card input:focus-visible + span {
    outline: 3px solid rgba(11, 70, 181, 0.22);
    outline-offset: 2px;
}

.field-label {
    display: grid;
    gap: 0.5rem;
    color: var(--movus-ink);
    font-size: 0.88rem;
    font-weight: 900;
}

.field-input {
    min-height: 48px;
    width: 100%;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    background: #fff;
    padding: 0.8rem 0.95rem;
    color: var(--movus-ink);
    font-size: 0.95rem;
    font-weight: 600;
    outline: none;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.field-input:focus {
    border-color: var(--movus-blue);
    box-shadow: 0 0 0 4px rgba(11, 70, 181, 0.12);
}

@media (max-width: 640px) {
    html,
    body {
        max-width: 100%;
        overflow-x: hidden;
    }

    h1,
    h2,
    p,
    span,
    strong {
        overflow-wrap: break-word;
    }

    main section:first-child h1,
    main section:first-child p {
        width: 100%;
        max-width: 300px !important;
    }

    main section:first-child .grid,
    main section:first-child .flex {
        width: 100%;
        max-width: 300px !important;
    }

    main section:first-child > .max-w-7xl {
        width: 100%;
        padding-right: 1rem;
        padding-left: 1rem;
    }

    main section:first-child .inline-flex {
        display: flex;
        width: 100%;
    }

    main section:first-child img {
        width: 100%;
        max-width: 300px !important;
    }

    #menuToggle {
        display: flex !important;
        border-color: var(--movus-line);
    }

    #menuToggle::before {
        display: block;
    }

    #menuToggle svg {
        display: none;
    }

    .text-5xl {
        font-size: 1.75rem;
        line-height: 1.08;
    }

    .text-4xl {
        font-size: 1.85rem;
        line-height: 1.18;
    }

    .grid-cols-2 {
        grid-template-columns: 1fr;
    }

    .py-12 {
        padding-top: 2.25rem;
        padding-bottom: 2.25rem;
    }

    .absolute.bottom-5 {
        position: static;
        margin: -3rem 1rem 0;
    }

    .stat-cell {
        min-height: 92px;
    }

    .mini-proof {
        min-height: 54px;
    }
}
