@media (max-width: 640px) {
    :root { --m-gutter: 18px; }
    .wrap { padding-inline: var(--m-gutter); }
    .section { padding-block: 44px; }
    .section-tight { padding-block: 36px; }
    .h2 { font-size: 1.6rem; line-height: 1.12; }
    .lede { font-size: .98rem; line-height: 1.6; }
    .eyebrow { margin-bottom: 12px; }

    
    .hero { padding-top: 108px; padding-bottom: 8px; }
    .hero-grid { display: flex; flex-direction: column; }
    .hero-center { display: contents; }
    .hero-badge { display: none; }
    .hero h1 { order: 1; font-size: 2.2rem; text-align: center; margin: 0 auto 12px; }
    .hero .lede { order: 2; font-size: .96rem; text-align: center; margin: 0 auto; max-width: 30em; }
    .hero .stage { order: 3; margin-top: 4px; }
    .hero-actions { order: 4; margin-top: 8px; width: 100%; flex-direction: column; gap: 10px; }
    .hero-actions .btn { width: 100%; justify-content: center; }
    .hero-meta { order: 5; flex-direction: column; align-items: center; gap: 8px; margin-top: 18px; padding-bottom: 20px; }
    .scene { --sc: .44; height: 300px; }
    .scene-ctl { margin-top: -6px; }

    
    .mod-head { margin-bottom: 20px; }
    .mt-txt small { display: none; }
    .mstage { border-radius: 22px; }

    
    .role-tab { font-size: .86rem; padding: 8px 12px; }
    .rstage { border-radius: 22px; }

    
    .feat li { padding: 14px; }
    .iq .ic { padding: 18px; }
    .pcard { padding: 24px 20px; }
    .faq-q { padding: 14px 14px; font-size: .96rem; }
    .cform { border-radius: 20px; }
    .cf-side, .cf-main { padding: 22px 18px; }

    
    .foot { padding-top: 40px; }
    .foot-seo p { font-size: .84rem; line-height: 1.7; }
    .foot-mark { font-size: 22vw; }

    
    .m-cta {
        position: fixed; z-index: 60; left: 14px; right: 14px; bottom: calc(12px + env(safe-area-inset-bottom, 0px));
        display: flex !important; align-items: center; justify-content: center; gap: 8px;
        padding: 14px 18px; border-radius: 14px; text-decoration: none;
        font-family: var(--font-display); font-weight: 700; font-size: .98rem; color: #fff;
        background: var(--sky-700); box-shadow: 0 14px 30px -10px rgba(8, 47, 73, .55);
        transform: translateY(140%); transition: transform .3s ease;
    }
    .m-cta svg { width: 16px; height: 16px; }
    .m-cta.show { transform: none; }
    .foot { padding-bottom: 0; }
    .foot-mark { margin-bottom: 0; }
}
@media (min-width: 641px) { .m-cta { display: none; } }
