/* =====================================================================
   IATM — Hero redesign: "Night Terminal" (home page only)
   A dark, immersive aviation hero layered over the light page system:
   atmospheric glows + fine grid, a slow radar beacon sweep, drifting
   clouds and the live route arc (relit for dark), an editorial headline
   (solid / gradient / outline mix), glass actions and trust chips, a
   layered visual composition with radar rings and floating stat chips,
   and a full-width boarding-pass stats bar.
   Load order: style.css → public-site.css → hero-redesign.css → flight-fx.css.
   Route recolors use .hero-flight-layer-descendant selectors so they win
   on specificity even though flight-fx.css loads last.
   Every animation is disabled under prefers-reduced-motion.
   ===================================================================== */

body.public-page .hero-section {
    position: relative;
    isolation: isolate;
    min-height: auto;
    /* Run the hero edge to edge behind the fixed header: cancel the
       body's top padding with a negative margin, then pad the content
       back down so it clears the nav. 134px = header height (desktop). */
    margin-top: -134px;
    padding: calc(134px + clamp(58px, 5.4vw, 92px)) 0 clamp(64px, 6vw, 96px);
    overflow: hidden;
    background:
        linear-gradient(rgba(139, 176, 230, .045) 1px, transparent 1px) 0 0 / 52px 52px,
        linear-gradient(90deg, rgba(139, 176, 230, .045) 1px, transparent 1px) 0 0 / 52px 52px,
        radial-gradient(920px 500px at 78% -8%, rgba(64, 112, 205, .3), transparent 64%),
        radial-gradient(760px 460px at 2% 110%, rgba(29, 78, 216, .22), transparent 62%),
        linear-gradient(180deg, #0a1020 0%, #0c1426 48%, #0b0f19 100%);
}

/* The hero background (grid + glow + navy) now fills the whole padded
   box, so it shows through the transparent header. Keep the moving
   decor (jet, route arc, beacon) below the nav band, not behind it.
   Extra specificity so it wins over flight-fx.css's `inset: 0`. */
body.public-page .hero-section .hero-flight-layer {
    top: 134px;
}

/* Slow radar sweep anchored to the top-right corner */
body.public-page .hero-beacon {
    position: absolute;
    top: -46%;
    right: -20%;
    z-index: 0;
    width: 1500px;
    height: 1500px;
    border-radius: 50%;
    background: conic-gradient(
        from 12deg at 50% 50%,
        rgba(139, 176, 230, 0) 0deg,
        rgba(139, 176, 230, .09) 30deg,
        rgba(139, 176, 230, .045) 48deg,
        transparent 66deg
    );
    opacity: .9;
    animation: heroBeaconSweep 17s linear infinite;
    pointer-events: none;
}

@keyframes heroBeaconSweep {
    to { transform: rotate(360deg); }
}

/* Bottom fade so the hero dissolves seamlessly into the black strip below */
body.public-page .hero-section::after {
    content: "";
    position: absolute;
    z-index: 1;
    inset: auto 0 0;
    height: clamp(90px, 12vw, 170px);
    background: linear-gradient(180deg, transparent, rgba(11, 15, 25, .88) 62%, #0b0f19);
    pointer-events: none;
}

/* Vertical page signature, relit for the dark canvas */
body.public-page .hero-section::before {
    z-index: 3;
    color: rgba(203, 220, 248, .34);
}

body.public-page .hero-section .container {
    position: relative;
    z-index: 2;
}

body.public-page .hero-grid {
    grid-template-columns: minmax(0, .94fr) minmax(460px, 1.06fr);
    gap: clamp(30px, 2.6vw, 42px) clamp(42px, 4.2vw, 78px);
    align-items: center;
}

/* ---------------------------------------------------------
   Eyebrow — live-status pill
   --------------------------------------------------------- */
body.public-page .hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
    margin: 0 0 26px;
    padding: 9px 16px;
    border: 1px solid rgba(139, 176, 230, .32);
    border-radius: 999px;
    color: #d7e4fa;
    background: rgba(139, 176, 230, .09);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    font-family: var(--public-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .09em;
    line-height: 1.3;
    text-transform: uppercase;
}

body.public-page .hero-eyebrow-dot {
    position: relative;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #6ee7a8;
    box-shadow: 0 0 10px rgba(110, 231, 168, .9);
}

body.public-page .hero-eyebrow-dot::after {
    content: "";
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    border: 1px solid rgba(110, 231, 168, .55);
    animation: heroDotPulse 2.4s ease-out infinite;
}

@keyframes heroDotPulse {
    0%   { transform: scale(.55); opacity: .9; }
    75%  { transform: scale(1.7); opacity: 0; }
    100% { transform: scale(1.7); opacity: 0; }
}

body.public-page .hero-eyebrow > i {
    color: var(--public-accent-on-dark);
    font-size: 11px;
    animation: heroPlaneNudge 3.2s ease-in-out infinite;
}

@keyframes heroPlaneNudge {
    0%, 100% { transform: translate(0, 0) rotate(0deg); }
    50%      { transform: translate(4px, -2px) rotate(8deg); }
}

/* ---------------------------------------------------------
   Headline — solid / gradient / outline editorial mix
   --------------------------------------------------------- */
body.public-page .hero-content .hero-title {
    max-width: 780px;
    margin: 0 0 24px;
    color: #f2f6ff;
    font-size: clamp(3.4rem, 5.4vw, 6.35rem) !important;
    line-height: .9;
    letter-spacing: -.042em;
    text-wrap: balance;
    animation: heroTitleBlur .9s cubic-bezier(.2, .65, .25, 1) both;
}

body.public-page .hero-title-grad,
body.public-page .hero-title-outline {
    display: inline-block;
}

body.public-page .hero-title-grad {
    background: linear-gradient(94deg, #9dbdf3 4%, #d9e6ff 48%, #ffffff 92%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

body.public-page .hero-title-outline {
    color: transparent;
    -webkit-text-stroke: 1.5px rgba(210, 226, 250, .9);
}

@supports not (-webkit-text-stroke: 1px #ffffff) {
    body.public-page .hero-title-outline {
        color: #cfe0fb;
    }
}

@keyframes heroTitleBlur {
    from { opacity: 0; transform: translateY(38px); filter: blur(7px); }
    to   { opacity: 1; transform: translateY(0); filter: blur(0); }
}

/* Staggered entrance for the content stack */
body.public-page .hero-content .hero-eyebrow,
body.public-page .hero-content .hero-lede,
body.public-page .hero-content .hero-actions,
body.public-page .hero-content .hero-trust-row {
    animation: heroRise .8s cubic-bezier(.2, .65, .25, 1) both;
}

body.public-page .hero-content .hero-eyebrow   { animation-delay: .06s; }
body.public-page .hero-content .hero-lede      { animation-delay: .24s; }
body.public-page .hero-content .hero-actions   { animation-delay: .38s; }
body.public-page .hero-content .hero-trust-row { animation-delay: .5s; }

@keyframes heroRise {
    from { opacity: 0; transform: translateY(26px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ---------------------------------------------------------
   Lede, actions, trust chips
   --------------------------------------------------------- */
body.public-page .hero-content .hero-lede {
    max-width: 590px;
    margin: 0 0 32px;
    color: #aebcd6;
    font-size: 16.5px;
    line-height: 1.68;
}

body.public-page .hero-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    margin: 0 0 30px;
}

body.public-page .hero-actions .btn-hero-primary,
body.public-page .hero-actions .btn-hero-ghost {
    min-height: 56px;
    margin: 0;
    border: 0;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: -.01em;
}

body.public-page .hero-actions .btn-hero-primary {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    padding: 9px 9px 9px 26px;
    color: #0b0f19 !important;
    background: #ffffff !important;
    box-shadow: 0 18px 44px -16px rgba(139, 176, 230, .55);
}

body.public-page .hero-actions .btn-hero-icon {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #ffffff;
    background: #0b0f19;
    font-size: 13px;
    transition: background-color .25s ease, transform .25s ease;
}

body.public-page .hero-actions .btn-hero-primary:hover,
body.public-page .hero-actions .btn-hero-primary:focus-visible {
    color: #0b0f19 !important;
    background: #eaf1ff !important;
    transform: translateY(-2px);
    box-shadow: 0 24px 54px -16px rgba(139, 176, 230, .7);
}

body.public-page .hero-actions .btn-hero-primary:hover .btn-hero-icon {
    background: var(--public-accent);
    transform: translateX(3px);
}

body.public-page .hero-actions .btn-hero-ghost {
    padding: 9px 26px;
    border: 1px solid rgba(255, 255, 255, .32) !important;
    color: #e8eefb !important;
    background: rgba(255, 255, 255, .04) !important;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    transition: background-color .25s ease, border-color .25s ease, transform .25s ease;
}

body.public-page .hero-actions .btn-hero-ghost:hover,
body.public-page .hero-actions .btn-hero-ghost:focus-visible {
    border-color: rgba(255, 255, 255, .6) !important;
    color: #ffffff !important;
    background: rgba(255, 255, 255, .1) !important;
    transform: translateY(-2px);
}

body.public-page .hero-trust-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0;
    padding: 0;
    border: 0;
    list-style: none;
}

body.public-page .hero-trust-row li {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 15px;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 999px;
    color: #c9d6ec;
    background: rgba(255, 255, 255, .05);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: -.005em;
}

body.public-page .hero-trust-row li i {
    color: #7ee2a8;
    font-size: 12px;
}

/* ---------------------------------------------------------
   Visual composition — radar rings, frame, glass caption,
   floating stat chips
   --------------------------------------------------------- */
body.public-page .hero-image-panel {
    position: relative;
    width: 100%;
    max-width: 820px;
    min-width: 0;
    justify-self: end;
}

body.public-page .hero-visual-stage {
    position: relative;
}

body.public-page .hero-section .framed-image-wrap {
    position: relative;
    z-index: 1;
    border: 1px solid rgba(151, 180, 228, .34);
    border-radius: 34px 34px 24px 24px;
    background: #0d1526;
    box-shadow:
        0 44px 96px -34px rgba(2, 6, 18, .95),
        0 0 90px -22px rgba(64, 112, 205, .38);
}

body.public-page .hero-illustration {
    height: clamp(470px, 39vw, 640px);
    filter: saturate(.92) contrast(1.04) brightness(.98);
}

body.public-page .hero-section .image-caption-box {
    inset: auto 18px 18px;
    max-width: calc(100% - 36px);
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    align-items: center;
    padding: 14px 18px;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 16px;
    background: rgba(9, 14, 27, .58);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

body.public-page .hero-section .caption-title {
    color: #f2f6ff;
    font-size: 13.5px;
    font-weight: 700;
}

body.public-page .hero-section .caption-sub {
    color: var(--public-accent-on-dark);
    font-size: 10px;
    text-align: right;
}

/* Floating glass stat chips */
body.public-page .hero-float-chip {
    position: absolute;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 11px;
    padding: 11px 16px 11px 11px;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 16px;
    color: #eef3fd;
    background: rgba(13, 20, 38, .72);
    box-shadow: 0 22px 44px -18px rgba(2, 6, 18, .9);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

body.public-page .hero-chip-top {
    top: 30px;
    left: -24px;
}

body.public-page .hero-chip-bottom {
    right: -22px;
    bottom: 108px;
}

body.public-page .hero-chip-icon {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    color: #ffffff;
    background: linear-gradient(150deg, var(--public-accent), #3b6ed5);
    font-size: 15px;
}

body.public-page .hero-chip-text {
    display: grid;
    gap: 1px;
    line-height: 1.15;
}

body.public-page .hero-chip-text strong {
    color: #ffffff;
    font-family: var(--public-display);
    font-size: 21px;
    font-weight: 700;
    letter-spacing: -.01em;
    line-height: 1;
    text-transform: uppercase;
}

body.public-page .hero-chip-text small {
    color: #9db0d2;
    font-family: var(--public-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: .07em;
    text-transform: uppercase;
}

/* ---------------------------------------------------------
   Boarding-pass stats bar
   --------------------------------------------------------- */
body.public-page .hero-stats-bar {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
    align-items: stretch;
    margin-top: clamp(10px, 1vw, 18px);
    padding: 8px 10px;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 22px;
    background: rgba(255, 255, 255, .045);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

body.public-page .hero-stat {
    display: grid;
    align-content: center;
    gap: 4px;
    padding: 16px 26px;
}

body.public-page .hero-stat + .hero-stat {
    border-left: 1px dashed rgba(255, 255, 255, .16);
}

body.public-page .hero-stat strong {
    color: #ffffff;
    font-family: var(--public-display);
    font-size: clamp(28px, 2.4vw, 38px);
    font-weight: 700;
    letter-spacing: -.02em;
    line-height: .9;
    text-transform: uppercase;
}

body.public-page .hero-stat > span {
    color: #8fa3c4;
    font-family: var(--public-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .07em;
    text-transform: uppercase;
}

body.public-page .hero-stat-stub {
    display: grid;
    align-content: center;
    justify-items: center;
    gap: 5px;
    margin-left: 4px;
    padding: 16px 22px;
    border-left: 1px dashed rgba(255, 255, 255, .16);
}

body.public-page .hero-stat-stub i {
    color: var(--public-accent-on-dark);
    font-size: 14px;
    animation: heroScrollNudge 1.8s ease-in-out infinite;
}

@keyframes heroScrollNudge {
    0%, 100% { transform: translateY(0); opacity: .75; }
    50%      { transform: translateY(4px); opacity: 1; }
}

body.public-page .hero-stat-stub span {
    color: #8fa3c4;
    font-family: var(--public-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: .09em;
    text-transform: uppercase;
    white-space: nowrap;
}

/* ---------------------------------------------------------
   Flight layer relit for the dark hero
   --------------------------------------------------------- */
body.public-page .hero-flight-layer .hero-route {
    /* Relit for the dark hero, and pinned visible regardless of the
       flight-fx scroll observer — the observer only ever adds opacity,
       so this is a safe, self-contained fallback. */
    color: var(--public-accent-on-dark);
    opacity: 1;
    transform: none;
    transition: none;
}

body.public-page .hero-flight-layer .hero-route .route-label {
    fill: rgba(203, 220, 248, .7);
}

body.public-page .hero-flight-layer .hero-route .route-dot {
    fill: var(--public-accent-on-dark);
}

body.public-page .hero-flight-layer .hero-route .route-dot-pulse {
    stroke: var(--public-accent-on-dark);
}

/* ---------------------------------------------------------
   Header — transparent at the top, solid pill on scroll
   The wrapper never carries a colour band. At the very top of
   the page the nav sits straight on the dark hero: the glass
   pill is transparent and the brand + links are light. Once
   the page is scrolled ("is-scrolled", toggled past 12px) the
   white glass pill and dark text return exactly as the base
   theme. The thin utility bar keeps the hero's top colour so
   the top of the page reads as one surface. Home page only.
   --------------------------------------------------------- */
body.public-page .site-header-wrapper,
body.public-page .site-header-wrapper.is-scrolled {
    background: transparent;
}

body.public-page .top-utility-bar {
    background: #0a1020;
}

/* --- top of page: no pill, light nav straight on the hero --- */
body.public-page .site-header-wrapper:not(.is-scrolled) .navbar-shell {
    border-color: transparent;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

body.public-page .site-header-wrapper:not(.is-scrolled) .brand-copy strong {
    color: #f2f6ff;
}

body.public-page .site-header-wrapper:not(.is-scrolled) .brand-copy small {
    color: rgba(203, 220, 248, .72);
}

body.public-page .site-header-wrapper:not(.is-scrolled) .primary-nav .nav-link {
    color: #c9d6ec;
}

body.public-page .site-header-wrapper:not(.is-scrolled) .primary-nav .nav-link:hover,
body.public-page .site-header-wrapper:not(.is-scrolled) .primary-nav .nav-link.active,
body.public-page .site-header-wrapper:not(.is-scrolled) .primary-nav .nav-link.scroll-active {
    color: #ffffff;
    background: rgba(255, 255, 255, .1);
}

body.public-page .site-header-wrapper:not(.is-scrolled) .primary-nav .nav-link:hover::after,
body.public-page .site-header-wrapper:not(.is-scrolled) .primary-nav .nav-link.active::after,
body.public-page .site-header-wrapper:not(.is-scrolled) .primary-nav .nav-link.scroll-active::after {
    background: var(--public-accent-on-dark);
}

body.public-page .site-header-wrapper:not(.is-scrolled) .primary-nav .portal-link {
    color: var(--public-accent-on-dark);
}

/* ---------------------------------------------------------
   Nav pill motion — the shared sheen + orbiting edge glow
   live in public-site.css so every public page gets them.
   Here we only adjust the home page: while the pill floats
   transparent over the dark hero the sheen is swapped for a
   lighter one so it reads on the dark surface. Once scrolled
   the pill turns white and falls back to the shared version.
   --------------------------------------------------------- */
body.public-page .site-header-wrapper:not(.is-scrolled) .navbar-shell::after {
    background: linear-gradient(
        100deg,
        transparent 0%,
        rgba(226, 236, 255, .3) 40%,
        rgba(255, 255, 255, .68) 50%,
        rgba(226, 236, 255, .3) 60%,
        transparent 100%
    );
}

/* ---------------------------------------------------------
   Hero jet — one aircraft tracing a long, smooth arc across
   the hero. A single compositor-friendly transform keyframe
   (translate + rotate only), so it stays buttery on scroll
   and is fully parked under prefers-reduced-motion.
   --------------------------------------------------------- */
body.public-page .hero-jet {
    position: absolute;
    inset: 0;
    z-index: 1;
    overflow: hidden;
    pointer-events: none;
}

body.public-page .hero-jet-craft {
    position: absolute;
    top: 32%;
    left: 0;
    display: block;
    color: #e8f1ff;
    font-size: clamp(26px, 2.6vw, 40px);
    line-height: 1;
    opacity: 0;
    filter:
        drop-shadow(0 14px 26px rgba(3, 8, 20, .55))
        drop-shadow(0 0 20px rgba(126, 168, 240, .5));
    transform: translate3d(-14vw, 0, 0);
    will-change: transform, opacity;
    animation: heroJetCross 20s linear infinite;
}

/* fa-plane-up points due north; a fixed 90° clockwise turn levels the
   nose to due east so the aircraft flies dead straight along its
   horizontal path. Only the glyph rotates — never the moving box —
   so the contrail stays horizontal behind it. */
body.public-page .hero-jet-craft i {
    display: block;
    transform: rotate(90deg);
}

/* Contrail — a straight vapour line directly behind the aircraft */
body.public-page .hero-jet-craft::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 100%;
    width: clamp(150px, 19vw, 320px);
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(270deg, rgba(200, 221, 255, .55), transparent);
    transform: translateY(-50%);
}

@keyframes heroJetCross {
    0%   { opacity: 0; transform: translate3d(-14vw, 0, 0); }
    7%   { opacity: .95; }
    93%  { opacity: .95; }
    100% { opacity: 0; transform: translate3d(120vw, 0, 0); }
}

/* ---------------------------------------------------------
   Responsive
   --------------------------------------------------------- */
@media (max-width: 1199.98px) {
    body.public-page .hero-content .hero-title {
        font-size: clamp(3.2rem, 4.9vw, 4.7rem) !important;
    }

    body.public-page .hero-chip-top {
        left: -14px;
    }

    body.public-page .hero-chip-bottom {
        right: -12px;
    }
}

@media (max-width: 991.98px) {
    /* header height drops to 116px at this breakpoint */
    body.public-page .hero-section {
        margin-top: -116px;
        padding-top: calc(116px + clamp(58px, 5.4vw, 92px));
    }

    body.public-page .hero-section .hero-flight-layer {
        top: 116px;
    }

    body.public-page .hero-content .hero-title {
        font-size: clamp(3.4rem, 8.6vw, 5.4rem) !important;
    }

    body.public-page .hero-image-panel {
        max-width: 760px;
        justify-self: start;
    }

    body.public-page .hero-illustration {
        height: clamp(430px, 52vw, 560px);
    }

    body.public-page .hero-beacon {
        right: -60%;
    }
}

@media (max-width: 767.98px) {
    body.public-page .hero-float-chip {
        display: none;
    }

    body.public-page .hero-jet {
        display: none;
    }

    body.public-page .hero-stat-stub {
        display: none;
    }

    body.public-page .hero-stats-bar {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        padding: 6px;
    }

    body.public-page .hero-stat {
        padding: 14px 16px;
    }

    body.public-page .hero-beacon {
        display: none;
    }
}

@media (max-width: 575.98px) {
    /* header height drops to 108px at this breakpoint */
    body.public-page .hero-section {
        margin-top: -108px;
        padding-top: calc(108px + clamp(58px, 5.4vw, 92px));
    }

    body.public-page .hero-section .hero-flight-layer {
        top: 108px;
    }

    body.public-page .hero-content .hero-title {
        font-size: clamp(2.9rem, 11.6vw, 4rem) !important;
    }

    body.public-page .hero-content .hero-lede {
        font-size: 15px;
    }

    body.public-page .hero-stats-bar {
        grid-template-columns: 1fr;
        padding: 4px 6px;
    }

    body.public-page .hero-stat {
        padding: 14px 16px;
    }

    body.public-page .hero-stat + .hero-stat {
        border-top: 1px dashed rgba(255, 255, 255, .16);
        border-left: 0;
    }

    body.public-page .hero-section .image-caption-box {
        grid-auto-flow: row;
        gap: 3px;
        inset: auto 12px 12px;
        max-width: calc(100% - 24px);
    }

    body.public-page .hero-section .caption-sub {
        text-align: left;
    }

    body.public-page .hero-illustration {
        height: clamp(340px, 96vw, 430px);
    }
}

@media (max-width: 399.98px) {
    body.public-page .hero-content .hero-title {
        font-size: clamp(2.5rem, 10.6vw, 3.4rem) !important;
    }
}

/* ---------------------------------------------------------
   Reduced motion — park the new hero motion
   --------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
    body.public-page .hero-beacon,
    body.public-page .hero-eyebrow-dot::after,
    body.public-page .hero-eyebrow > i,
    body.public-page .hero-float-chip,
    body.public-page .hero-stat-stub i,
    body.public-page .hero-flight-layer .hero-route {
        animation: none !important;
    }

    body.public-page .hero-jet-craft {
        animation: none !important;
        opacity: 0 !important;
    }

    body.public-page .hero-content .hero-title,
    body.public-page .hero-content .hero-eyebrow,
    body.public-page .hero-content .hero-lede,
    body.public-page .hero-content .hero-actions,
    body.public-page .hero-content .hero-trust-row {
        animation: none !important;
    }
}
