/* ==========================================================================
   Home page — everything is scoped under .hm so shared pages are untouched.
   Colors come only from the :root brand tokens in default.css.
   ========================================================================== */
.hm {
    --hm-display: 'Bricolage Grotesque', 'Heebo', sans-serif;
    --hm-body: 'Figtree', 'Heebo', sans-serif;
    --hm-ink: var(--brand-purple-dark);
    --hm-muted: color-mix(in srgb, var(--brand-purple-dark) 72%, white);
    --hm-radius: 28px;
    --hm-gutter: clamp(20px, 5vw, 56px);
    font-family: var(--hm-body);
    color: var(--hm-ink);
    overflow-x: clip;
}
.hm *, .hm *::before, .hm *::after { box-sizing: border-box; }
.hm h1, .hm h2, .hm h3, .hm h4 {
    font-family: var(--hm-display);
    color: var(--hm-ink);
    text-transform: none;
    letter-spacing: -0.02em;
    line-height: 1.02;
    margin: 0;
    text-wrap: balance;
}
.hm p, .hm li, .hm a, .hm span, .hm button {
    font-family: var(--hm-body);
}
.hm :where(p) { color: var(--hm-muted); font-size: 1.0625rem; line-height: 1.6; margin: 0; }
.hm :where(ul) { list-style: none; margin: 0; padding: 0; }
.hm img, .hm video { display: block; max-width: 100%; }
.hm a:focus-visible, .hm button:focus-visible {
    outline: 3px solid var(--brand-blue);
    outline-offset: 3px;
    border-radius: 8px;
}

.hm-wrap {
    width: min(1200px, 100% - 2 * var(--hm-gutter));
    margin-inline: auto;
}
.hm-kicker {
    display: inline-flex;
    align-items: center;
    gap: .6em;
    font-family: var(--hm-body);
    font-weight: 800;
    font-size: .8125rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--brand-blue);
    margin-bottom: 1rem;
}
.hm-kicker::before {
    content: "";
    width: 28px; height: 3px; border-radius: 3px;
    background: linear-gradient(90deg, var(--brand-purple), var(--brand-blue));
}

/* Buttons ---------------------------------------------------------------- */
.hm-btn {
    display: inline-flex;
    align-items: center;
    gap: .6em;
    padding: .95em 1.6em;
    border-radius: 999px;
    font-weight: 800;
    font-size: 1rem;
    line-height: 1;
    text-decoration: none;
    border: 2px solid transparent;
    font-family: 'Figtree', 'Heebo', sans-serif;
    transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease;
}
.hm-btn--primary {
    color: #fff;
    background: linear-gradient(100deg, var(--brand-purple), var(--brand-blue));
    box-shadow: 0 10px 24px -10px var(--brand-purple);
}
.hm-btn--primary:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 16px 28px -12px var(--brand-purple); }
.hm-btn--ghost { color: var(--brand-purple-dark); border-color: var(--brand-purple-dark); background: transparent; }
.hm-btn--ghost:hover { color: #fff; background: var(--brand-purple-dark); }
.hm-btn--light { color: var(--brand-purple-dark); background: #fff; }
.hm-btn--light:hover { color: var(--brand-purple-dark); transform: translateY(-2px); }

/* Hero ------------------------------------------------------------------- */
.hm-hero {
    position: relative;
    padding: clamp(40px, 6vw, 88px) 0 clamp(56px, 7vw, 104px);
    background:
        radial-gradient(60% 50% at 88% 10%, color-mix(in srgb, var(--brand-blue-light) 55%, transparent), transparent 70%),
        radial-gradient(45% 45% at 0% 100%, color-mix(in srgb, var(--brand-purple-light) 45%, transparent), transparent 70%),
        var(--brand-purple-tint);
}
.hm-hero__grid {
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: clamp(32px, 5vw, 80px);
    align-items: center;
}
.hm-hero h1 {
    font-size: clamp(2.6rem, 6.4vw, 5.4rem);
    font-weight: 800;
    margin-bottom: 1.25rem;
}
.hm-hero h1 em {
    font-style: normal;
    background: linear-gradient(100deg, var(--brand-purple), var(--brand-blue));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.hm-hero__lede { max-width: 34em; font-size: 1.1875rem; margin-bottom: 2rem; }
.hm-hero__cta { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 2.5rem; }

.hm-finder__label {
    font-weight: 800;
    font-size: .875rem;
    letter-spacing: .04em;
    color: var(--hm-ink);
    margin-bottom: .75rem;
}
.hm-finder__chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.hm-chip {
    display: inline-flex;
    align-items: center;
    gap: .5em;
    padding: .6em 1em;
    border-radius: 999px;
    background: #fff;
    color: var(--brand-purple-dark);
    font-weight: 700;
    font-size: .9375rem;
    text-decoration: none;
    box-shadow: 0 0 0 1.5px color-mix(in srgb, var(--brand-purple) 22%, transparent);
    transition: background-color .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.hm-chip i { color: var(--brand-blue); transition: color .2s ease; }
.hm-chip:hover { background: var(--brand-purple); color: #fff; transform: translateY(-2px); box-shadow: none; }
.hm-chip:hover i { color: var(--brand-purple-light); }

/* Arch-framed video: a contained, shaped window — not a full-bleed backdrop */
.hm-arch {
    position: relative;
    justify-self: center;
    width: min(100%, 440px);
}
.hm-arch__frame {
    position: relative;
    aspect-ratio: 4 / 5;
    border-radius: 999px 999px var(--hm-radius) var(--hm-radius);
    overflow: hidden;
    background: var(--brand-purple-dark);
    box-shadow:
        0 0 0 10px #fff,
        0 0 0 12px var(--brand-purple-light),
        0 40px 60px -30px color-mix(in srgb, var(--brand-purple-dark) 70%, transparent);
}
.hm-arch__frame video { width: 100%; height: 100%; object-fit: cover; }
.hm-score {
    position: absolute;
    left: -8%;
    bottom: 9%;
    display: flex;
    align-items: center;
    gap: .9rem;
    padding: .9rem 1.25rem .9rem .9rem;
    background: #fff;
    border-radius: 20px;
    text-decoration: none;
    box-shadow: 0 24px 40px -18px color-mix(in srgb, var(--brand-purple-dark) 60%, transparent);
    transform: rotate(-3deg);
    transition: transform .25s ease;
}
.hm-score:hover { transform: rotate(0) translateY(-3px); }
.hm-score__num {
    font-family: var(--hm-display);
    font-weight: 800;
    font-size: 2.1rem;
    line-height: 1;
    letter-spacing: -.03em;
    color: #fff;
    padding: .55rem .75rem;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--brand-purple), var(--brand-blue));
}
.hm-score__txt { display: grid; gap: .15rem; }
.hm-score__txt strong { font-family: var(--hm-display); color: var(--hm-ink); font-size: 1.0625rem; line-height: 1.1; }
.hm-score__txt span { color: var(--brand-blue); font-weight: 800; font-size: .8125rem; }

/* Ticker ----------------------------------------------------------------- */
.hm-ticker {
    background: var(--brand-purple-dark);
    color: #fff;
    overflow: hidden;
    padding: 1rem 0;
}
.hm-ticker__track {
    display: flex;
    width: max-content;
    animation: hm-slide 38s linear infinite;
}
.hm-ticker__track span {
    display: inline-flex;
    align-items: center;
    gap: 2.25rem;
    padding-right: 2.25rem;
    font-family: var(--hm-display);
    font-weight: 700;
    font-size: clamp(1.25rem, 2.4vw, 1.75rem);
    letter-spacing: -.01em;
    color: #fff;
    white-space: nowrap;
}
.hm-ticker__track i { color: var(--brand-purple-light); font-size: .75em; }
@keyframes hm-slide { to { transform: translateX(-50%); } }

/* Section scaffolding ---------------------------------------------------- */
.hm-section { padding: clamp(64px, 9vw, 128px) 0; }
.hm-section__head { max-width: 40rem; margin-bottom: clamp(32px, 4vw, 56px); }
.hm-section__head h2 { font-size: clamp(2rem, 4.4vw, 3.4rem); font-weight: 800; }

/* Programs --------------------------------------------------------------- */
.hm-programs { background: #fff; }
.hm-programs__row {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: clamp(12px, 1.6vw, 24px);
    padding-bottom: 28px;
}
.hm-card {
    position: relative;
    display: block;
    aspect-ratio: 302 / 384;
    border-radius: var(--hm-radius);
    overflow: hidden;
    text-decoration: none;
    isolation: isolate;
    background: var(--brand-purple-tint);
    transition: transform .35s cubic-bezier(.2, .8, .2, 1), box-shadow .35s ease;
}
.hm-card:nth-child(even) { transform: translateY(28px); }
.hm-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2, .8, .2, 1); }
.hm-card::after {
    content: "";
    position: absolute; inset: 0; z-index: 1;
    background: linear-gradient(to top, color-mix(in srgb, var(--brand-purple-dark) 92%, transparent) 0%, transparent 55%);
}
.hm-card__label {
    position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
    display: flex; align-items: flex-end; justify-content: space-between; gap: .5rem;
    padding: 1.1rem 1.1rem 1.15rem;
}
.hm-card__label h3 { font-size: clamp(1.1rem, 1.7vw, 1.4rem); font-weight: 700; color: #fff; line-height: 1.05; }
.hm-card__label i {
    flex: none;
    display: grid; place-items: center;
    width: 2.25rem; height: 2.25rem; border-radius: 50%;
    background: #fff; color: var(--brand-purple);
    transition: background-color .25s ease, color .25s ease, transform .25s ease;
}
.hm-card:hover { box-shadow: 0 26px 40px -22px var(--brand-purple-dark); }
.hm-card:hover img { transform: scale(1.06); }
.hm-card:hover .hm-card__label i { background: var(--brand-purple-light); color: var(--brand-purple-dark); transform: rotate(-45deg); }
.hm-card:nth-child(odd):hover { transform: translateY(-6px); }
.hm-card:nth-child(even):hover { transform: translateY(22px); }

/* Why Leah's ------------------------------------------------------------- */
.hm-why { background: var(--brand-blue-tint); }
.hm-why__grid {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: clamp(32px, 6vw, 96px);
    align-items: start;
}
.hm-why__intro { position: sticky; top: 140px; }
.hm-why__intro h2 { font-size: clamp(2rem, 4.2vw, 3.2rem); font-weight: 800; margin-bottom: 1.25rem; }
.hm-why__intro .hm-btn { margin-top: 1.75rem; }
.hm-why__list { display: grid; gap: clamp(16px, 2vw, 28px); counter-reset: why; }
.hm-why__item {
    counter-increment: why;
    display: grid;
    grid-template-columns: minmax(150px, 38%) 1fr;
    gap: clamp(16px, 2.4vw, 32px);
    align-items: center;
    padding: clamp(14px, 1.6vw, 20px);
    background: #fff;
    border-radius: var(--hm-radius);
    box-shadow: 0 24px 40px -34px var(--brand-blue-dark);
}
.hm-why__item img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: calc(var(--hm-radius) - 10px); }
.hm-why__item h3 { font-size: clamp(1.25rem, 2vw, 1.6rem); font-weight: 700; margin-bottom: .6rem; line-height: 1.1; }
.hm-why__item h3::before {
    content: "0" counter(why);
    display: block;
    font-size: .8125rem;
    font-weight: 800;
    letter-spacing: .14em;
    color: var(--brand-blue);
    margin-bottom: .5rem;
}
.hm-why__item p { font-size: 1rem; }

/* Snow Globe Classic ----------------------------------------------------- */
.hm-sgc {
    position: relative;
    color: #fff;
    background:
        radial-gradient(circle at 20% 20%, color-mix(in srgb, #fff 14%, transparent) 0 2px, transparent 3px) 0 0 / 46px 46px,
        radial-gradient(circle at 70% 60%, color-mix(in srgb, #fff 10%, transparent) 0 1.5px, transparent 2.5px) 0 0 / 31px 31px,
        linear-gradient(135deg, var(--brand-blue-dark), var(--brand-purple-dark));
}
.hm-sgc__grid {
    display: grid;
    grid-template-columns: 340px 1fr;
    gap: clamp(32px, 6vw, 96px);
    align-items: center;
}
.hm-sgc__flyer {
    display: block;
    transform: rotate(-3deg);
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 0 0 8px #fff, 0 40px 60px -24px #000;
    transition: transform .3s ease;
}
.hm-sgc__flyer:hover { transform: rotate(0) scale(1.02); }
.hm-sgc__flyer img { width: 100%; height: auto; }
.hm-sgc .hm-kicker { color: var(--brand-purple-light); }
.hm-sgc .hm-kicker::before { background: var(--brand-purple-light); }
.hm-sgc h2 { color: #fff; font-size: clamp(2.1rem, 4.6vw, 3.6rem); font-weight: 800; margin-bottom: 1.25rem; }
.hm-sgc p { color: color-mix(in srgb, #fff 82%, transparent); max-width: 36em; margin-bottom: 1.5rem; }
.hm-sgc__facts { display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 2rem; }
.hm-sgc__facts li {
    display: inline-flex; align-items: center; gap: .55em;
    padding: .55em 1em; border-radius: 999px;
    background: color-mix(in srgb, #fff 12%, transparent);
    box-shadow: inset 0 0 0 1.5px color-mix(in srgb, #fff 28%, transparent);
    color: #fff; font-weight: 700; font-size: .9375rem;
}
.hm-sgc__facts i { color: var(--brand-purple-light); }

/* Social ----------------------------------------------------------------- */
.hm-social { background: #fff; }
.hm-social .hm-section__head { margin-inline: auto; text-align: center; }
.hm-social .hm-kicker { justify-content: center; }

/* Mobile action bar ------------------------------------------------------ */
.hm-dock { display: none; }

/* ==========================================================================
   Inner pages
   ========================================================================== */

/* Page head */
.hm-phead {
    position: relative;
    padding: clamp(36px, 5vw, 72px) 0 clamp(56px, 7vw, 96px);
    background:
        radial-gradient(50% 60% at 95% 0%, color-mix(in srgb, var(--brand-blue-light) 50%, transparent), transparent 70%),
        radial-gradient(40% 50% at 0% 100%, color-mix(in srgb, var(--brand-purple-light) 45%, transparent), transparent 70%),
        var(--brand-purple-tint);
}
.hm-phead__grid {
    display: grid;
    grid-template-columns: 1fr 1.05fr;
    gap: clamp(32px, 5vw, 72px);
    align-items: center;
}
.hm-phead--solo .hm-phead__grid { grid-template-columns: 1fr; }
.hm-phead--solo .hm-phead__copy { max-width: 46rem; }
.hm-phead h1 { font-size: clamp(2.5rem, 5.6vw, 4.6rem); font-weight: 800; margin-bottom: 1.1rem; }
.hm-phead h1 em {
    font-style: normal;
    background: linear-gradient(100deg, var(--brand-purple), var(--brand-blue));
    -webkit-background-clip: text; background-clip: text; color: transparent;
}
.hm-phead__lede { font-size: 1.1875rem; max-width: 34em; margin-bottom: 1.75rem; }
.hm-phead__cta { display: flex; flex-wrap: wrap; gap: .75rem; }
.hm-facts { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.75rem; }
.hm-facts li {
    display: inline-flex; align-items: center; gap: .5em;
    padding: .5em .95em; border-radius: 999px;
    background: #fff; color: var(--brand-purple-dark);
    font-weight: 700; font-size: .9375rem;
    box-shadow: 0 0 0 1.5px color-mix(in srgb, var(--brand-purple) 22%, transparent);
}
.hm-facts i { color: var(--brand-blue); }

/* Video / image in a rounded "screen" with an offset color block */
.hm-screen { position: relative; }
.hm-screen__frame {
    position: relative;
    border-radius: var(--hm-radius);
    overflow: hidden;
    background: var(--brand-purple-dark);
    transform: rotate(1.2deg);
    transition: transform .4s ease;
    box-shadow:
        14px 14px 0 var(--brand-purple-light),
        0 36px 50px -34px color-mix(in srgb, var(--brand-purple-dark) 70%, transparent);
}
.hm-screen:hover .hm-screen__frame { transform: rotate(0); }
.hm-screen--flat .hm-screen__frame, .hm-screen--flat:hover .hm-screen__frame {
    transform: none;
    box-shadow: 0 30px 50px -34px color-mix(in srgb, var(--brand-purple-dark) 70%, transparent);
}
.hm-screen__frame video, .hm-screen__frame img { width: 100%; height: auto; }
.hm-screen--wide .hm-screen__frame video { aspect-ratio: 16 / 9; object-fit: cover; }
.hm-play {
    position: absolute; inset: 0; z-index: 2;
    display: grid; place-items: center;
    text-decoration: none;
}
.hm-play i {
    display: grid; place-items: center;
    width: 4.5rem; height: 4.5rem; border-radius: 50%;
    background: #fff; color: var(--brand-purple); font-size: 1.5rem;
    box-shadow: 0 16px 30px -10px color-mix(in srgb, var(--brand-purple-dark) 70%, transparent);
    transition: transform .25s ease, background-color .25s ease, color .25s ease;
}
.hm-play:hover i { transform: scale(1.1); background: var(--brand-purple); color: #fff; }

/* Feature rows */
.hm-section--tint { background: var(--brand-blue-tint); }
.hm-section--tight { padding: clamp(48px, 6vw, 88px) 0; }
.hm-feature {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(28px, 5vw, 80px);
    align-items: center;
}
.hm-feature--flip .hm-feature__media { order: 2; }
.hm-feature h2 { font-size: clamp(1.8rem, 3.6vw, 2.8rem); font-weight: 800; margin-bottom: 1.1rem; }
.hm-feature__copy p + p { margin-top: 1rem; }
.hm-feature__copy .hm-btn { margin-top: 1.75rem; }
.hm-feature__copy .hm-btn + .hm-btn { margin-left: .5rem; }
.hm-tag {
    display: inline-block;
    padding: .35em .9em;
    border-radius: 999px;
    margin-bottom: 1rem;
    background: var(--brand-purple);
    color: #fff;
    font-weight: 800;
    font-size: .8125rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.hm-section--tint .hm-tag { background: var(--brand-blue); }
.hm-media {
    position: relative;
    border-radius: var(--hm-radius);
    overflow: hidden;
    background: var(--brand-purple-tint);
    box-shadow: 0 30px 50px -36px color-mix(in srgb, var(--brand-purple-dark) 80%, transparent);
}
.hm-media img, .hm-media video { width: 100%; height: auto; }
.hm-feature--portrait .hm-feature__media { max-width: 420px; margin-inline: auto; width: 100%; }

/* Jump links */
.hm-jump { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.75rem; }
.hm-jump .hm-chip { background: color-mix(in srgb, #fff 80%, transparent); }
.hm-jump .hm-chip:hover { background: var(--brand-purple); }

/* Headband belts (NinjaZone) */
.hm-belts { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.25rem; }
.hm-belts li {
    display: inline-flex; align-items: center; gap: .5em;
    padding: .4em .9em; border-radius: 999px;
    background: #fff; color: var(--brand-purple-dark);
    font-weight: 700; font-size: .875rem;
    box-shadow: 0 0 0 1.5px color-mix(in srgb, var(--brand-purple) 22%, transparent);
}
.hm-belts li::before { content: ""; width: .9em; height: .9em; border-radius: 50%; background: var(--belt); box-shadow: inset 0 0 0 1.5px color-mix(in srgb, #000 22%, transparent); }

/* Level cards (tumbling, etc.) */
.hm-levels { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: clamp(16px, 2vw, 28px); }
.hm-lcard {
    background: #fff;
    border-radius: var(--hm-radius);
    overflow: hidden;
    box-shadow: 0 0 0 1.5px color-mix(in srgb, var(--brand-purple) 14%, transparent), 0 24px 40px -34px var(--brand-purple-dark);
    transition: transform .3s ease;
}
.hm-lcard:hover { transform: translateY(-6px); }
.hm-lcard img { width: 100%; height: auto; aspect-ratio: 6 / 5; object-fit: cover; }
.hm-lcard h3 { font-size: 1.25rem; font-weight: 700; padding: 1.1rem 1.25rem 1.3rem; }

/* People (team + testimonials) */
.hm-people { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: clamp(16px, 2vw, 28px); }
.hm-person { display: block; text-decoration: none; }
.hm-person__photo {
    position: relative;
    display: block;
    aspect-ratio: 1;
    border-radius: var(--hm-radius);
    overflow: hidden;
    background: var(--brand-purple-tint);
    margin-bottom: .9rem;
    transition: transform .3s ease, box-shadow .3s ease;
}
.hm-person__photo img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.hm-person__play {
    position: absolute; right: .75rem; bottom: .75rem;
    display: grid; place-items: center;
    width: 2.75rem; height: 2.75rem; border-radius: 50%;
    background: #fff; color: var(--brand-purple);
    box-shadow: 0 10px 20px -8px color-mix(in srgb, var(--brand-purple-dark) 70%, transparent);
    transition: background-color .25s ease, color .25s ease, transform .25s ease;
}
a.hm-person:hover .hm-person__photo { transform: translateY(-6px); box-shadow: 0 26px 40px -24px var(--brand-purple-dark); }
a.hm-person:hover .hm-person__play { background: var(--brand-purple); color: #fff; transform: scale(1.1); }
.hm-person h3 { font-size: 1.2rem; font-weight: 700; line-height: 1.1; }
.hm-person p { font-size: .9375rem; line-height: 1.35; margin-top: .3rem; }
.hm-person__cta { display: inline-block; margin-top: .4rem; font-weight: 800; font-size: .875rem; color: var(--brand-blue); }

/* Stats */
.hm-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(12px, 2vw, 24px); margin-top: clamp(32px, 4vw, 56px); }
.hm-stat { padding: 1.25rem 1.4rem; border-radius: 22px; background: #fff; box-shadow: 0 0 0 1.5px color-mix(in srgb, var(--brand-purple) 16%, transparent); }
.hm-stat strong { display: block; font-family: var(--hm-display); font-weight: 800; font-size: clamp(1.8rem, 3.4vw, 2.6rem); line-height: 1; letter-spacing: -.03em; color: var(--brand-purple); }
.hm-stat span { display: block; margin-top: .4rem; font-weight: 700; font-size: .9375rem; color: var(--hm-muted); }

/* Closing call to action */
.hm-cta {
    padding: clamp(48px, 7vw, 96px) 0;
    background: linear-gradient(110deg, var(--brand-purple-dark), var(--brand-blue-dark));
    color: #fff;
}
.hm-cta__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem 3rem; }
.hm-cta h2 { color: #fff; font-size: clamp(1.9rem, 4vw, 3rem); font-weight: 800; max-width: 18em; }
.hm-cta p { color: color-mix(in srgb, #fff 80%, transparent); margin-top: .75rem; }
.hm-cta__btns { display: flex; flex-wrap: wrap; gap: .75rem; }
.hm-btn--outline-light { color: #fff; border-color: color-mix(in srgb, #fff 70%, transparent); background: transparent; }
.hm-btn--outline-light:hover { color: var(--brand-purple-dark); background: #fff; }

@media (max-width: 991px) {
    .hm-phead__grid, .hm-feature { grid-template-columns: 1fr; }
    .hm-feature--flip .hm-feature__media { order: 0; }
    .hm-stats { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
    .hm-screen__frame { box-shadow: 8px 8px 0 var(--brand-purple-light), 0 24px 40px -30px var(--brand-purple-dark); }
}
@media (prefers-reduced-motion: reduce) {
    .hm-screen__frame, .hm-lcard, .hm-person__photo, .hm-play i { transition: none; }
}

/* Reveal on scroll (enabled by home.js adding .hm-js) -------------------- */
.hm-js [data-reveal] {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .7s ease, transform .7s cubic-bezier(.2, .8, .2, 1);
    transition-delay: var(--d, 0ms);
}
.hm-js [data-reveal].is-in { opacity: 1; transform: none; }
.hm-js .hm-card[data-reveal] { transform: translateY(24px); }
.hm-js .hm-card[data-reveal].is-in:nth-child(even) { transform: translateY(28px); }
.hm-js .hm-card[data-reveal].is-in:nth-child(odd) { transform: none; }

/* Responsive ------------------------------------------------------------- */
@media (max-width: 991px) {
    .hm-hero__grid { grid-template-columns: 1fr; }
    .hm-arch { order: -1; width: min(100%, 340px); }
    .hm-score { left: -4%; }
    .hm-why__grid { grid-template-columns: 1fr; }
    .hm-why__intro { position: static; }
    .hm-sgc__grid { grid-template-columns: 1fr; }
    .hm-sgc__flyer { max-width: 300px; margin-inline: auto; }
}
@media (max-width: 767px) {
    .footer-min { padding-bottom: 76px; }
    .hm-programs__row {
        grid-template-columns: none;
        grid-auto-flow: column;
        grid-auto-columns: 62%;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        padding-inline: var(--hm-gutter);
        margin-inline: calc(-1 * var(--hm-gutter));
        scrollbar-width: none;
    }
    .hm-programs__row::-webkit-scrollbar { display: none; }
    .hm-card { scroll-snap-align: center; }
    .hm-card:nth-child(even), .hm-js .hm-card[data-reveal].is-in:nth-child(even) { transform: none; }
    .hm-why__item { grid-template-columns: 1fr; }
    .hm-dock {
        position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 900;
        display: grid; grid-template-columns: 1fr 1.4fr; gap: 8px;
        padding: 8px;
        background: color-mix(in srgb, #fff 88%, transparent);
        -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
        border-radius: 999px;
        box-shadow: 0 16px 36px -12px color-mix(in srgb, var(--brand-purple-dark) 60%, transparent);
    }
    .hm-dock .hm-btn { justify-content: center; padding: .9em 1em; }
}
@media (prefers-reduced-motion: reduce) {
    .hm-ticker__track { animation: none; }
    .hm-js [data-reveal] { opacity: 1; transform: none; transition: none; }
    .hm-card, .hm-card img, .hm-btn, .hm-score, .hm-sgc__flyer { transition: none; }
}

/* Outbound-link icon in the nav */
.navigation .nav-ext { margin-left: .35em; font-size: .75em; opacity: .75; }
