/* ==========================================================================
   Home 2026 — Hero Banner
   Scoped under .home-2026 so it never leaks into other templates.
   ========================================================================== */

.home-2026 {
    --hb-blue: #075bff;
    --hb-blue-border: #0b5cff;
    --hb-ink: #07163d;
    --hb-orange: #ff7a18;
    --hb-orb-border: #e2ecff;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

.hb26-banner {
    position: relative;
    overflow: hidden;
    background: #fff;
    padding: 40px 0 60px;
}

.hb26-inner {
    display: flex;
    align-items: center;
    gap: 40px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* --------------------------------------------------------------- Left side */
.hb26-content {
    position: relative;
    z-index: 2;
    flex: 0 1 48%;
    max-width: 620px;
}

.hb26-eyebrow {
    margin: 0 0 14px;
    color: var(--hb-orange);
    font-size: 18px;
    font-weight: 700;
    line-height: 23px;
}

.hb26-title {
    margin: 0 0 24px;
    color: var(--hb-ink);
    font-size: 48px;
    font-weight: 700;
    line-height: 62px;
}

.hb26-title .hb26-accent {
    color: var(--hb-blue);
}

.hb26-desc {
    margin: 0 0 32px;
    max-width: 449px;
    color: var(--hb-ink);
    font-size: 16px;
    font-weight: 400;
    line-height: 28px;
}

.hb26-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.hb26-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 58px;
    padding: 0 24px;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 700;
    line-height: 20px;
    text-decoration: none;
    transition: opacity .2s ease, background .2s ease, color .2s ease, transform .2s ease;
}

.hb26-btn:hover {
    transform: translateY(-2px);
}

.hb26-btn:active {
    transform: scale(.97);
    transition-duration: .08s;
}

.hb26-btn--primary {
    background: var(--hb-blue);
    color: #fff;
    border: 1px solid var(--hb-blue);
}

.hb26-btn--primary:hover {
    opacity: .9;
    color: #fff;
}

.hb26-btn--secondary {
    background: #fff;
    color: var(--hb-blue);
    border: 1px solid var(--hb-blue-border);
}

.hb26-btn--secondary:hover {
    background: var(--hb-blue);
    color: #fff;
}

/* -------------------------------------------------------------- Right side */
/* The visual keeps the exact aspect ratio of the Figma composition so every
   ring, orb and dot scales proportionally. */
.hb26-visual {
    flex: 1 1 52%;
    position: relative;
    width: 100%;
}

/* The stage holds the whole composition. Its reference frame ends exactly at
   the student's bottom edge (ratio 790/709), so anchoring the stage bottom to
   the section bottom puts the student flush with it. Everything inside is
   positioned as a percentage of this frame. */
.hb26-stage {
    position: relative;
    width: 100%;
    aspect-ratio: 790 / 709;
}

/* Decorative background — rings and dots baked into one SVG (760x740).
   Positioned so its ring centre lands at 51.9% / 53.6% of the stage, the same
   point the orbs and halos are arranged around. */
.hb26-bg {
    position: absolute;
    left: 3.8%;
    top: 2.82%;
    width: 96.2%;
    height: auto;
    pointer-events: none;
}

/* Soft blurred glow halos, sized/placed against the stage frame */
.hb26-halo {
    position: absolute;
    border-radius: 50%;
    aspect-ratio: 1;
    opacity: .82;
    filter: blur(60px);
    transform: translate(-50%, -50%);
    pointer-events: none;
}

.hb26-halo--1 {
    left: 53.4%;
    top: 75.6%;
    width: 67.1%;
    background: rgba(47, 107, 255, .2);
}

.hb26-halo--2 {
    left: 85.5%;
    top: 56.5%;
    width: 39.2%;
    background: rgba(255, 138, 61, .2);
}

/* Student cutout — bottom edge sits at the frame bottom (= section bottom) */
.hb26-student {
    position: absolute;
    left: 19.2%;
    bottom: 0;
    width: 57.1%;
    height: 83.64%;
    object-fit: cover;
    object-position: top center;
}

/* Floating icon orbs */
.hb26-orb {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 1px solid var(--hb-orb-border);
    border-radius: 18px;
    box-shadow: 0 8px 24px rgba(7, 91, 255, .06);
}

.hb26-orb img {
    width: 62%;
    height: 62%;
    object-fit: contain;
}

.hb26-orb__code {
    color: var(--hb-blue);
    font-size: 32px;
    font-weight: 700;
    line-height: 1;
}

.hb26-orb--robot    { left: 70.6%; top: 15.8%; width: 10.4%; aspect-ratio: 1; }
.hb26-orb--database { left: 71.1%; top: 40.9%; width: 10.4%; aspect-ratio: 1; }
.hb26-orb--code     { left: 72.3%; top: 71.23%; width: 10.4%; aspect-ratio: 1; }
.hb26-orb--brain    { left: 19.2%; top: 45.42%; width: 11.5%; aspect-ratio: 1; border-radius: 10px; }
.hb26-orb--chart    { left: 13.3%; top: 26.09%; width: 10.4%; aspect-ratio: 1; }
.hb26-orb--tree     { left: 0%;    top: 55.99%; width: 8.1%;  aspect-ratio: 1; border-radius: 14px; }

/* ----------------------------------------------------------- Responsive */
/* PC / laptop: fill the viewport (matching the .banner-home pattern) and stand
   the student on the section bottom. 76px ~= site header height. */
@media (min-width: 992px) {
    .hb26-banner {
        box-sizing: border-box;
        min-height: calc(100vh - 75px);
        padding: 40px 0 0;
    }
    .hb26-inner {
        position: relative;
        min-height: calc(100vh - 75px - 40px);
        align-items: stretch;
    }
    .hb26-content {
        align-self: center;
    }
    .hb26-visual {
        position: static;
        overflow: visible;
    }
    /* Full height keeps the student tall. The composition is pinned by the
       student's centre to a fixed point in the container (83%, the spot that
       looks right at 1366x768) using translateX(-47.75%) = the student's
       horizontal centre within the frame. This stops it drifting left as the
       viewport height grows, which was what pushed the oversized stage into the
       content on 1080p/1440p. Rings spill into the right gutter and clip. */
    .hb26-stage {
        position: absolute;
        bottom: 0;
        left: 83%;
        transform: translateX(-47.75%);
        width: auto;
        height: 100%;
    }
}

@media (min-width: 1366px) {
    .hb26-stage {
        transform: translateX(-55%);
    }
}

@media (min-width: 1920px) {
    .hb26-stage {
        transform: translateX(-38%);
    }
}

@media (min-width: 2560px) {
    .hb26-stage {
        transform: translateX(-27%);
    }
}

@media (max-width: 1199px) {
    .hb26-title { font-size: 40px; line-height: 52px; }
}

@media (max-width: 991px) {
    .hb26-inner {
        flex-direction: column;
        text-align: center;
    }
    .hb26-content { max-width: 100%; text-align: start; }
    .hb26-desc { margin-left: 0; margin-right: auto; }
    .hb26-actions { justify-content: center; }
    .hb26-visual {
        width: 100%;
        max-width: 520px;
        margin: 0 auto;
    }
}

@media (max-width: 575px) {
    .hb26-banner { padding: 24px 0 40px; }
    .hb26-title { font-size: 30px; line-height: 40px; }
    .hb26-eyebrow { font-size: 15px; }
    .hb26-btn { width: 100%; }
    .hb26-actions { flex-direction: column; }
}

/* ========================================================= What is FUNiX */
/* Full-bleed two-column band: illustration on the left (white page bg), a
   light-blue panel on the right that bleeds to the viewport edge. */
.hb26-about {
    overflow: hidden;
}

.hb26-about__inner {
    display: flex;
    align-items: stretch;
}

.hb26-about__visual {
    flex: 1 1 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 48px 24px;
}

.hb26-about__img {
    display: block;
    width: 100%;
    max-width: 600px;
    height: auto;
}

.hb26-about__content {
    flex: 1 1 50%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: #f5faff;
    padding: 64px 7% 64px 56px;
}

.hb26-about__label {
    align-self: flex-start;
    margin-bottom: 24px;
    padding: 13px 16px;
    border-radius: 10px;
    background: #fff2ea;
    color: #ff5e07;
    font-size: 17px;
    font-weight: 700;
    line-height: 22px;
}

.hb26-about__title {
    margin: 0 0 24px;
    max-width: 620px;
    color: var(--hb-ink);
    font-size: 48px;
    font-weight: 700;
    line-height: 60px;
}

.hb26-about__title .hb26-accent {
    color: var(--hb-blue);
}

.hb26-about__desc {
    margin: 0;
    max-width: 615px;
    color: #445270;
    font-size: 16px;
    font-weight: 400;
    line-height: 24px;
}

/* Scroll reveal: columns slide in from opposite sides + fade once the band
   enters the viewport (.is-visible toggled by an IntersectionObserver). */
.hb26-about__visual,
.hb26-about__content {
    opacity: 0;
    transition: opacity .7s ease, transform .7s ease;
    will-change: opacity, transform;
}

.hb26-about__visual { transform: translateX(-40px); }
.hb26-about__content { transform: translateX(40px); }

.hb26-about.is-visible .hb26-about__visual,
.hb26-about.is-visible .hb26-about__content {
    opacity: 1;
    transform: none;
}

.hb26-about.is-visible .hb26-about__content { transition-delay: .15s; }

@media (max-width: 1199px) {
    .hb26-about__title { font-size: 38px; line-height: 50px; }
    .hb26-about__content { padding: 48px 5% 48px 40px; }
}

@media (max-width: 991px) {
    .hb26-about__inner { flex-direction: column; }
    .hb26-about__visual { padding: 32px 20px 8px; }
    .hb26-about__content {
        padding: 40px 20px 56px;
        text-align: start;
        align-items: flex-start;
    }
    .hb26-about__title,
    .hb26-about__desc { margin-left: 0; margin-right: auto; }
}

@media (max-width: 575px) {
    .hb26-about__title { font-size: 28px; line-height: 38px; }
    .hb26-about__img { max-width: 420px; }
}

/* ========================================================= Learning path */
.hb26-paths {
    background: #fff;
    padding: 72px 0;
}

.hb26-paths__inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 24px;
}

.hb26-paths__head {
    margin-bottom: 48px;
}

.hb26-paths__label {
    display: inline-block;
    margin-bottom: 24px;
    padding: 12px 16px;
    border-radius: 10px;
    background: #fff2ea;
    color: #ff5e07;
    font-size: 17px;
    font-weight: 700;
    line-height: 22px;
}

.hb26-paths__title {
    margin: 0 0 16px;
    color: var(--hb-ink);
    font-size: 48px;
    font-weight: 700;
    line-height: 1.3;
}

.hb26-paths__title .hb26-accent {
    color: var(--hb-blue);
}

.hb26-paths__desc {
    margin: 0;
    max-width: 732px;
    color: #445270;
    font-size: 16px;
    font-weight: 400;
    line-height: 28px;
}

.hb26-paths__list {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 16px;
}

/* Dark course-path card */
.hb26-path-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 16px 16px 20px;
    border: 1px solid #164d9a;
    border-radius: 16px;
    background: #021a3f;
    text-align: center;
    position: relative;
}

.hb26-path-card__tag {
    position: absolute;
    top: 12px;
    left: 12px;
    padding: 3px 8px;
    border-radius: 20px;
    background: rgba(18, 107, 255, .18);
    border: 1px solid rgba(18, 107, 255, .4);
    color: #7db8ff;
    font-size: 11px;
    font-weight: 600;
    line-height: 17px;
    white-space: nowrap;
}

.hb26-path-card__img {
    display: block;
    width: 100%;
    max-width: 200px;
    height: 150px;
    object-fit: contain;
}

.hb26-path-card__title {
    margin: 10px 0 0;
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    line-height: 24px;
}

.hb26-path-card__desc {
    margin: 10px 0 16px;
    color: #dde9ff;
    font-size: 13px;
    font-weight: 400;
    line-height: 21px;
}

.hb26-path-card__desc strong {
    font-weight: 700;
}

/* CTA pinned to the card bottom so every button aligns across the row */
.hb26-path-card__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin-top: auto;
    padding: 10px 12px;
    border: 1px solid #126bff;
    border-radius: 10px;
    background: #031329;
    color: #2b91ff;
    font-size: 14px;
    font-weight: 700;
    line-height: 20px;
    text-decoration: none;
    transition: opacity .2s ease, background .2s ease, color .2s ease, transform .2s ease;
}

.hb26-path-card__cta--primary {
    background: var(--hb-blue);
    border-color: #fff;
    color: #fff;
}

.hb26-path-card__cta:hover {
    transform: translateY(-2px);
}

.hb26-path-card__cta--primary:hover {
    opacity: .92;
}

.hb26-path-card__cta:not(.hb26-path-card__cta--primary):hover {
    background: #075bff;
    color: #fff;
    border-color: #075bff;
}

.hb26-path-card__cta:active {
    transform: scale(.97);
    transition-duration: .08s;
}

/* Card hover/press — uses the independent `translate`/`scale` properties so it
   never fights the entrance animation, which drives `transform`/`opacity`. */
.hb26-path-card {
    transition: translate .2s ease, scale .12s ease, box-shadow .25s ease;
}

.hb26-path-card:hover {
    translate: 0 -3px;
    box-shadow: 0 14px 30px rgba(7, 91, 255, .18);
}

.hb26-path-card:active {
    scale: .98;
    transition-duration: .08s;
}

/* Staggered fade-up entrance once the section scrolls into view. */
.hb26-paths:not(.is-visible) .hb26-path-card {
    opacity: 0;
}

.hb26-paths.is-visible .hb26-path-card {
    animation: hb26-fade-up .6s ease both;
}
.hb26-paths.is-visible .hb26-path-card:nth-child(2) { animation-delay: .09s; }
.hb26-paths.is-visible .hb26-path-card:nth-child(3) { animation-delay: .18s; }
.hb26-paths.is-visible .hb26-path-card:nth-child(4) { animation-delay: .27s; }
.hb26-paths.is-visible .hb26-path-card:nth-child(5) { animation-delay: .36s; }

@media (max-width: 1199px) {
    .hb26-paths__list { grid-template-columns: repeat(2, 1fr); }
    .hb26-paths__title { font-size: 38px; }
}

@media (max-width: 575px) {
    .hb26-paths { padding: 48px 0; }
    .hb26-paths__list { grid-template-columns: 1fr; max-width: 360px; margin: 0 auto; }
    .hb26-paths__title { font-size: 28px; }
}

/* ========================================================= Choose course */
.hb26-courses {
    background: #fff;
    padding: 72px 0;
}

.hb26-courses__inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 24px;
}

/* Header: intro text on the left, decorative illustration on the right */
.hb26-courses__head {
    display: flex;
    align-items: center;
    gap: 40px;
    margin-bottom: 20px;
}

.hb26-courses__intro {
    flex: 1 1 50%;
}

.hb26-courses__label {
    display: inline-block;
    margin-bottom: 24px;
    padding: 12px 16px;
    border-radius: 10px;
    background: #fff2ea;
    color: #ff5e07;
    font-size: 17px;
    font-weight: 700;
    line-height: 22px;
}

.hb26-courses__title {
    margin: 0 0 16px;
    color: var(--hb-ink);
    font-size: 48px;
    font-weight: 700;
    line-height: 1.12;
}

.hb26-courses__title .hb26-accent {
    color: var(--hb-blue);
}

.hb26-courses__desc {
    margin: 0;
    max-width: 594px;
    color: #445270;
    font-size: 16px;
    font-weight: 400;
    line-height: 36px;
}

.hb26-courses__visual {
    flex: 1 1 50%;
    display: flex;
    justify-content: center;
}

.hb26-courses__visual img {
    display: block;
    width: 100%;
    max-width: 600px;
    height: auto;
}

/* Course cards grid */
.hb26-courses__list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.hb26-course {
    display: flex;
    align-items: center;
    gap: 16px;
    min-height: 123px;
    padding: 20px 24px;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 20px 70px rgba(7, 91, 255, .17);
    text-decoration: none;
    /* Hover/press use `translate`/`scale` so they never fight the fade-up
       entrance, which drives `transform`/`opacity`. */
    transition: translate .2s ease, scale .12s ease, box-shadow .25s ease;
}

.hb26-course__icon {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
}

.hb26-course__icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.hb26-course__name {
    color: var(--hb-ink);
    font-size: 16px;
    font-weight: 700;
    line-height: 28px;
}

.hb26-course__name .hb26-accent {
    color: var(--hb-blue);
}

.hb26-course:hover {
    translate: 0 -3px;
    box-shadow: 0 26px 70px rgba(7, 91, 255, .26);
}

.hb26-course:active {
    scale: .98;
    transition-duration: .08s;
}

/* Visual fades + scales in when it scrolls into view. */
.hb26-courses__visual {
    opacity: 0;
    transform: scale(.94);
    transition: opacity .7s ease, transform .7s ease;
    will-change: opacity, transform;
}

.hb26-courses__visual.is-visible {
    opacity: 1;
    transform: none;
}

/* Tiles fade up sequentially (row by row) when the list scrolls into view. */
.hb26-courses__list:not(.is-visible) .hb26-course {
    opacity: 0;
}

.hb26-courses__list.is-visible .hb26-course {
    animation: hb26-fade-up .55s ease both;
}
.hb26-courses__list.is-visible .hb26-course:nth-child(2) { animation-delay: .07s; }
.hb26-courses__list.is-visible .hb26-course:nth-child(3) { animation-delay: .14s; }
.hb26-courses__list.is-visible .hb26-course:nth-child(4) { animation-delay: .21s; }
.hb26-courses__list.is-visible .hb26-course:nth-child(5) { animation-delay: .28s; }
.hb26-courses__list.is-visible .hb26-course:nth-child(6) { animation-delay: .35s; }
.hb26-courses__list.is-visible .hb26-course:nth-child(7) { animation-delay: .42s; }
.hb26-courses__list.is-visible .hb26-course:nth-child(8) { animation-delay: .49s; }

@media (max-width: 1199px) {
    .hb26-courses__head { flex-direction: column; align-items: flex-start; }
    .hb26-courses__intro,
    .hb26-courses__visual { flex: 1 1 auto; width: 100%; }
    .hb26-courses__title { font-size: 38px; }
    .hb26-courses__list { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 575px) {
    .hb26-courses { padding: 48px 0; }
    .hb26-courses__title { font-size: 28px; }
    .hb26-courses__list { grid-template-columns: 1fr; }
}

/* ======================================================= Student project */
.hb26-projects {
    background: #f5faff;
    padding: 72px 0;
}

.hb26-projects__inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 24px;
}

.hb26-projects__head {
    margin-bottom: 40px;
}

.hb26-projects__label {
    display: inline-block;
    margin-bottom: 24px;
    padding: 12px 16px;
    border-radius: 10px;
    background: #fff2ea;
    color: #ff5e07;
    font-size: 17px;
    font-weight: 700;
    line-height: 22px;
    text-transform: uppercase;
}

.hb26-projects__title {
    margin: 0 0 16px;
    color: var(--hb-ink);
    font-size: 48px;
    font-weight: 700;
    line-height: 1.3;
}

.hb26-projects__title .hb26-accent {
    color: var(--hb-blue);
}

.hb26-projects__desc {
    margin: 0;
    color: #445270;
    font-size: 16px;
    font-weight: 400;
    line-height: 36px;
}

/* Project cards grid */
.hb26-projects__list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

.hb26-project {
    display: flex;
    flex-direction: column;
    padding: 29px 20px;
    border-radius: 20px;
    background: #02162c;
    color: inherit;
    text-decoration: none;
    /* Hover/press use `translate`/`scale` so they never fight the fade-up
       entrance, which drives `transform`/`opacity`. */
    transition: translate .2s ease, scale .12s ease, box-shadow .25s ease;
}

/* Category badge: a tinted pill with a solid colour chip carrying the initial */
.hb26-project__badge {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 12px;
    height: 45px;
    padding-right: 16px;
    border-radius: 10px;
    font-weight: 500;
    font-size: 16px;
    color: #fff;
}

.hb26-project__badge-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 45px;
    border-radius: 10px;
    font-weight: 700;
    font-size: 28px;
    color: #fff;
}

.hb26-project--web .hb26-project__badge { background: rgba(1, 89, 255, .3); }
.hb26-project--web .hb26-project__badge-icon { background: #0159ff; }
.hb26-project--dashboard .hb26-project__badge { background: rgba(52, 199, 89, .2); }
.hb26-project--dashboard .hb26-project__badge-icon { background: #34c759; }
.hb26-project--ai .hb26-project__badge { background: rgba(255, 1, 247, .3); }
.hb26-project--ai .hb26-project__badge-icon { background: #a201ff; }
.hb26-project--ecom .hb26-project__badge { background: rgba(255, 133, 0, .3); }
.hb26-project--ecom .hb26-project__badge-icon { background: #ff8500; }

.hb26-project__title {
    margin: 28px 0 24px;
    color: #fff;
    font-size: 24px;
    font-weight: 600;
    line-height: 36px;
}

.hb26-project__shot {
    display: block;
    border: 1px solid rgba(207, 224, 251, .4);
    border-radius: 10px;
    overflow: hidden;
}

.hb26-project__shot img {
    display: block;
    width: 100%;
    height: auto;
    transition: scale .3s ease;
}

.hb26-project__author {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 28px 0;
}

.hb26-project__avatar {
    flex: 0 0 auto;
    width: 58px;
    height: 60px;
    border-radius: 50%;
    object-fit: cover;
}

.hb26-project__author-info {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.hb26-project__author-name {
    color: #fff;
    font-size: 22px;
    font-weight: 500;
    line-height: 28px;
}

.hb26-project__author-role {
    color: #b3b3b3;
    font-size: 16px;
    line-height: 26px;
}

.hb26-project__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: auto;
}

.hb26-project__tag {
    padding: 1px 12px;
    border: 1px solid #2b91ff;
    border-radius: 10px;
    background: rgba(1, 89, 255, .2);
    color: #fff;
    font-size: 16px;
    font-weight: 500;
    line-height: 27px;
}

.hb26-project:hover {
    translate: 0 -3px;
    box-shadow: 0 26px 60px rgba(7, 91, 255, .22);
}

/* The preview zooms a touch on card hover; the shot clips the overflow. */
.hb26-project:hover .hb26-project__shot img {
    scale: 1.02;
}

.hb26-project:active {
    scale: .98;
    transition-duration: .08s;
}

/* "See more" outline CTA, centred under the grid */
.hb26-projects__more {
    display: flex;
    justify-content: center;
    margin-top: 40px;
}

.hb26-projects__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 16px 32px;
    border: 1px solid #126bff;
    border-radius: 12px;
    color: var(--hb-blue);
    font-size: 24px;
    font-weight: 600;
    line-height: 23px;
    text-decoration: none;
    transition: translate .2s ease, scale .12s ease, background-color .2s ease;
}

.hb26-projects__cta:hover {
    translate: 0 -2px;
    background: rgba(18, 107, 255, .06);
}

.hb26-projects__cta:active {
    scale: .97;
    transition-duration: .08s;
}

/* Cards fade up sequentially when the list scrolls into view. */
.hb26-projects__list:not(.is-visible) .hb26-project {
    opacity: 0;
}

.hb26-projects__list.is-visible .hb26-project {
    animation: hb26-fade-up .6s ease both;
}
.hb26-projects__list.is-visible .hb26-project:nth-child(2) { animation-delay: .09s; }
.hb26-projects__list.is-visible .hb26-project:nth-child(3) { animation-delay: .18s; }
.hb26-projects__list.is-visible .hb26-project:nth-child(4) { animation-delay: .27s; }

@media (max-width: 1199px) {
    .hb26-projects__title { font-size: 38px; }
    .hb26-projects__list { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 575px) {
    .hb26-projects { padding: 48px 0; }
    .hb26-projects__title { font-size: 28px; }
    .hb26-projects__list { grid-template-columns: 1fr; }
    .hb26-projects__cta { font-size: 18px; }
}

/* =========================================================== Statistics */
.hb26-stats {
    background: #fff;
    padding: 0 0 72px;
}

/* Header sits over a wide decorative chart illustration. */
.hb26-stats__head {
    position: relative;
    max-width: 1600px;
    margin: 0 auto 8px;
    padding: 150px 24px 40px;
    text-align: center;
    background-image: url('../images/home-2026/stat-bg.png');
    background-repeat: no-repeat;
    background-position: center top;
    background-size: contain;
    /* Gentle fade-in (with a slight rise) when scrolled into view. */
    opacity: 0;
    transform: translateY(16px);
    transition: opacity .7s ease, transform .7s ease;
    will-change: opacity, transform;
}

.hb26-stats__head.is-visible {
    opacity: 1;
    transform: none;
}

.hb26-stats__label {
    display: inline-block;
    margin-bottom: 16px;
    padding: 12px 16px;
    border-radius: 10px;
    background: #fff2ea;
    color: #ff5e07;
    font-size: 17px;
    font-weight: 700;
    line-height: 22px;
    text-transform: uppercase;
}

.hb26-stats__title {
    margin: 0 0 12px;
    color: var(--hb-ink);
    font-size: 48px;
    font-weight: 700;
    line-height: 1.3;
}

.hb26-stats__title .hb26-accent {
    color: var(--hb-blue);
}

.hb26-stats__update {
    margin: 0;
    color: #445270;
    font-size: 16px;
    font-weight: 700;
    line-height: 36px;
}

.hb26-stats__inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 24px;
}

.hb26-stats__row {
    display: flex;
    gap: 24px;
    margin-bottom: 24px;
}

.hb26-stats__row:last-child {
    margin-bottom: 0;
}

/* Second row is centred and its cards are wider than the three-up row. */
.hb26-stats__row--two {
    justify-content: center;
    max-width: 1150px;
    margin-left: auto;
    margin-right: auto;
}

.hb26-stat {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1 1 0;
    padding: 16px 24px;
    border: 1px solid var(--hb-blue);
    border-radius: 24px;
    background: #fff;
    /* Hover/press use `translate`/`scale` so they never fight the fade-up
       entrance, which drives `transform`/`opacity`. */
    transition: translate .2s ease, scale .12s ease, box-shadow .25s ease;
}

.hb26-stat--reverse .hb26-stat__body {
    order: 2;
}

.hb26-stat__body {
    flex: 1 1 auto;
}

.hb26-stat__num {
    display: block;
    color: var(--hb-blue);
    font-size: 48px;
    font-weight: 700;
    line-height: 1.2;
}

.hb26-stat__num--lg {
    font-size: 64px;
}

.hb26-stat__caption {
    display: block;
    margin-top: 8px;
    color: #031329;
    font-size: 16px;
    font-weight: 400;
    line-height: 22px;
}

.hb26-stat__img {
    flex: 0 0 auto;
    width: 140px;
    height: auto;
    object-fit: contain;
}

.hb26-stat--reverse .hb26-stat__img {
    width: 200px;
}

.hb26-stat:hover {
    translate: 0 -3px;
    box-shadow: 0 18px 40px rgba(7, 91, 255, .14);
}

/* Cards fade up sequentially when each row scrolls into view. */
.hb26-stats__row:not(.is-visible) .hb26-stat {
    opacity: 0;
}

.hb26-stats__row.is-visible .hb26-stat {
    animation: hb26-fade-up .6s ease both;
}
.hb26-stats__row.is-visible .hb26-stat:nth-child(2) { animation-delay: .1s; }
.hb26-stats__row.is-visible .hb26-stat:nth-child(3) { animation-delay: .2s; }

@media (max-width: 1199px) {
    .hb26-stats__title { font-size: 38px; }
    .hb26-stats__head { padding-top: 110px; }
    .hb26-stats__row { flex-wrap: wrap; }
    .hb26-stat { flex: 1 1 calc(50% - 12px); }
    .hb26-stat__num--lg { font-size: 48px; }
}

@media (max-width: 767px) {
    .hb26-stats__head {
        padding-top: 32px;
        background-image: none;
    }
    /* Stack stats one-per-row; equal full width regardless of number/image size. */
    .hb26-stat {
        flex: 1 1 100%;
        min-width: 0;
    }
}

@media (max-width: 575px) {
    .hb26-stats { padding: 40px 0 48px; }
    .hb26-stats__title { font-size: 28px; }
    .hb26-stat { flex: 1 1 100%; }
    .hb26-stat__num { font-size: 38px; }
    .hb26-stat__num--lg { font-size: 32px; }
}

/* ====================================================== FUNiX Way Roadmap */
.hb26-roadmap {
    background: #fff;
    padding: 56px 0 72px;
    overflow: hidden;
}

.hb26-roadmap__inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 24px;
}

/* Header: text on the left, student-with-icons composite on the right */
.hb26-roadmap__head {
    display: flex;
    align-items: center;
    gap: 40px;
    margin-bottom: 8px;
}

.hb26-roadmap__intro {
    flex: 1 1 52%;
}

.hb26-roadmap__label {
    display: inline-block;
    margin-bottom: 24px;
    padding: 12px 16px;
    border-radius: 10px;
    background: #fff2ea;
    color: #ff5e07;
    font-size: 17px;
    font-weight: 700;
    line-height: 22px;
}

.hb26-roadmap__title {
    margin: 0 0 16px;
    color: var(--hb-ink);
    font-size: 48px;
    font-weight: 700;
    line-height: 1.25;
}

.hb26-roadmap__title .hb26-accent {
    color: var(--hb-blue);
}

.hb26-roadmap__desc {
    margin: 0;
    max-width: 595px;
    color: #445270;
    font-size: 16px;
    font-weight: 400;
    line-height: 36px;
}

.hb26-roadmap__visual {
    flex: 1 1 48%;
    display: flex;
    justify-content: center;
}

.hb26-roadmap__visual img {
    display: block;
    width: 100%;
    max-width: 620px;
    height: auto;
}

/* Six-step strip: the numbered connector line is one wide SVG anchored to the
   top of the row (origin spans the full border-box so its nodes stay at their
   designed 13%–86% positions). padding-top clears the line band; the side
   padding lines each icon column up under a node. */
.hb26-roadmap__steps {
    display: flex;
    margin: 0;
    padding: 9% 6% 0;
    list-style: none;
    background-image: url('../images/home-2026/step-visually.svg');
    background-repeat: no-repeat;
    background-position: top center;
    background-size: 100% auto;
    background-origin: border-box;
}

.hb26-step {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 0 8px;
    /* Hover uses `translate` so it never fights the fade-up entrance, which
       drives `transform`/`opacity`. */
    transition: translate .2s ease;
}

.hb26-step:hover {
    translate: 0 -3px;
}

.hb26-step__icon {
    width: 110px;
    height: 110px;
    margin: 0 0 16px;
    object-fit: contain;
}

.hb26-step__caption {
    color: var(--hb-blue);
    font-size: 18px;
    font-weight: 500;
    line-height: 24px;
}

/* Visual fades + scales in when scrolled into view. */
.hb26-roadmap__visual {
    opacity: 0;
    transform: scale(.94);
    transition: opacity .7s ease, transform .7s ease;
    will-change: opacity, transform;
}

.hb26-roadmap__visual.is-visible {
    opacity: 1;
    transform: none;
}

/* Steps fade up sequentially when the strip scrolls into view. */
.hb26-roadmap__steps:not(.is-visible) .hb26-step {
    opacity: 0;
}

.hb26-roadmap__steps.is-visible .hb26-step {
    animation: hb26-fade-up .55s ease both;
}
.hb26-roadmap__steps.is-visible .hb26-step:nth-child(2) { animation-delay: .1s; }
.hb26-roadmap__steps.is-visible .hb26-step:nth-child(3) { animation-delay: .2s; }
.hb26-roadmap__steps.is-visible .hb26-step:nth-child(4) { animation-delay: .3s; }
.hb26-roadmap__steps.is-visible .hb26-step:nth-child(5) { animation-delay: .4s; }
.hb26-roadmap__steps.is-visible .hb26-step:nth-child(6) { animation-delay: .5s; }

@media (max-width: 1199px) {
    .hb26-roadmap__head { flex-direction: column; align-items: flex-start; }
    .hb26-roadmap__intro,
    .hb26-roadmap__visual { flex: 1 1 auto; width: 100%; }
    .hb26-roadmap__title { font-size: 38px; }
    /* Two rows of three; the through-line would no longer align, so drop it. */
    .hb26-roadmap__steps {
        flex-wrap: wrap;
        padding: 0;
        background-image: none;
    }
    .hb26-step { flex: 1 1 33.333%; margin-bottom: 32px; }
}

@media (max-width: 575px) {
    .hb26-roadmap { padding: 40px 0 48px; }
    .hb26-roadmap__title { font-size: 28px; }
    .hb26-step { flex: 1 1 50%; }
    .hb26-step__caption { font-size: 16px; }
}

/* ========================================================= Career guidance */
.hb26-career {
    background: #fff;
    padding: 56px 0 72px;
    overflow: hidden;
}

.hb26-career__inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 24px;
}

/* Top: heading + test panel on the left, dashboard preview on the right */
.hb26-career__main {
    display: flex;
    align-items: center;
    gap: 56px;
}

.hb26-career__left {
    flex: 1 1 60%;
    min-width: 0;
}

.hb26-career__label {
    display: inline-block;
    margin-bottom: 24px;
    padding: 12px 16px;
    border-radius: 10px;
    background: #fff2ea;
    color: #ff5e07;
    font-size: 17px;
    font-weight: 700;
    line-height: 22px;
}

.hb26-career__title {
    margin: 0 0 16px;
    color: var(--hb-ink);
    font-size: 48px;
    font-weight: 700;
    line-height: 1.25;
}

.hb26-career__title .hb26-accent {
    color: var(--hb-blue);
}

.hb26-career__desc {
    margin: 0;
    max-width: 665px;
    color: #445270;
    font-size: 16px;
    font-weight: 400;
    line-height: 30px;
}

/* White panel grouping the three test features + the two CTAs */
.hb26-career__panel {
    margin-top: 32px;
    padding: 32px;
    border: 1px solid #cfe0fb;
    border-radius: 26px;
    background: #fff;
}

.hb26-career__features {
    display: flex;
    gap: 28px;
}

/* Each feature: icon + title on the top row, description spanning beneath */
.hb26-career-feat {
    flex: 1 1 0;
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 12px;
    row-gap: 10px;
    align-items: center;
    /* Hover uses `translate` so it never fights the fade-up entrance, which
       drives `transform`/`opacity`. */
    transition: translate .2s ease;
}

.hb26-career-feat:hover {
    translate: 0 -3px;
}

.hb26-career-feat__icon {
    width: 48px;
    height: 48px;
    object-fit: contain;
}

.hb26-career-feat__title {
    grid-column: 2;
    margin: 0;
    color: #1d293f;
    font-size: 18px;
    font-weight: 600;
    line-height: 26px;
}

.hb26-career-feat__desc {
    grid-column: 1 / -1;
    margin: 0;
    color: #4e596c;
    font-size: 15px;
    font-weight: 400;
    line-height: 24px;
}

.hb26-career__actions {
    display: flex;
    gap: 24px;
    margin-top: 28px;
}

.hb26-career__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 292px;
    height: 56px;
    padding: 0 24px;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 600;
    text-decoration: none;
    /* Hover/press use independent translate/scale so they never fight the
       fade-up entrance, which drives transform. */
    transition: translate .2s ease, scale .2s ease, box-shadow .2s ease;
}

.hb26-career__btn--primary {
    border: 1px solid #126bff;
    background: #126bff;
    color: #fff;
}

.hb26-career__btn--secondary {
    border: 1px solid #126bff;
    background: #fff;
    color: var(--hb-blue);
}

.hb26-career__btn:hover {
    translate: 0 -2px;
    box-shadow: 0 8px 18px rgba(18, 107, 255, .22);
}

.hb26-career__btn--primary:hover {
    color: #fff;
}

.hb26-career__btn:active {
    scale: .97;
}

.hb26-career__visual {
    flex: 1 1 40%;
    max-width: 504px;
}

.hb26-career__visual img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 24px;
}

/* Bottom: "Dành cho bạn" label stacked above three persona cards */
.hb26-career__target {
    margin-top: 56px;
}

.hb26-career__target-label {
    display: block;
    margin-bottom: 24px;
    color: #1d293f;
    font-size: 24px;
    font-weight: 600;
    line-height: 36px;
}

.hb26-career__personas {
    display: flex;
    gap: 40px;
}

.hb26-persona {
    flex: 1 1 0;
    display: flex;
    gap: 16px;
    align-items: center;
    padding: 16px;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .07);
    transition: translate .2s ease, box-shadow .2s ease;
}

.hb26-persona:hover {
    translate: 0 -4px;
    box-shadow: 0 12px 24px rgba(0, 0, 0, .1);
}

.hb26-persona__img {
    flex: 0 0 auto;
    width: 140px;
    height: 200px;
    object-fit: cover;
    border-radius: 18px;
}

.hb26-persona__title {
    margin: 0 0 12px;
    color: #1d293f;
    font-size: 24px;
    font-weight: 500;
    line-height: 32px;
}

.hb26-persona__desc {
    margin: 0;
    color: #4e596c;
    font-size: 16px;
    font-weight: 400;
    line-height: 26px;
}

/* Left heading fades up; its three feature cards then fade up in sequence */
.hb26-career__left {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity .7s ease, transform .7s ease;
    will-change: opacity, transform;
}

.hb26-career__left.is-visible {
    opacity: 1;
    transform: none;
}

.hb26-career__left:not(.is-visible) .hb26-career-feat {
    opacity: 0;
}

.hb26-career__left.is-visible .hb26-career-feat {
    animation: hb26-fade-up .55s ease both;
}
.hb26-career__left.is-visible .hb26-career-feat:nth-child(2) { animation-delay: .09s; }
.hb26-career__left.is-visible .hb26-career-feat:nth-child(3) { animation-delay: .18s; }

/* Dashboard slides in from the right; on hover it scales a touch (no other
   visual change). Hover scale lives on the img via `scale` so it composes
   with the container's entrance transform. */
.hb26-career__visual {
    opacity: 0;
    transform: translateX(40px);
    transition: opacity .7s ease, transform .7s ease;
    will-change: opacity, transform;
}

.hb26-career__visual.is-visible {
    opacity: 1;
    transform: none;
}

.hb26-career__visual img {
    transition: scale .3s ease;
}

.hb26-career__visual:hover img {
    scale: 1.01;
}

.hb26-career__personas:not(.is-visible) .hb26-persona {
    opacity: 0;
}

.hb26-career__personas.is-visible .hb26-persona {
    animation: hb26-fade-up .55s ease both;
}
.hb26-career__personas.is-visible .hb26-persona:nth-child(2) { animation-delay: .1s; }
.hb26-career__personas.is-visible .hb26-persona:nth-child(3) { animation-delay: .2s; }

@media (max-width: 1199px) {
    .hb26-career__main { flex-direction: column; align-items: flex-start; }
    .hb26-career__left,
    .hb26-career__visual { flex: 1 1 auto; width: 100%; max-width: none; }
    .hb26-career__title { font-size: 38px; }
    .hb26-career__features { flex-wrap: wrap; }
    .hb26-career-feat { flex: 1 1 45%; }
    .hb26-career__personas { flex-wrap: wrap; gap: 24px; }
    .hb26-persona { flex: 1 1 45%; }
}

@media (max-width: 767px) {
    .hb26-career__features { flex-direction: column; }
    .hb26-career__actions { flex-direction: column; }
    .hb26-career__btn { width: 100%; min-width: 0; }
    .hb26-persona { flex: 1 1 100%; }
}

@media (max-width: 575px) {
    .hb26-career { padding: 40px 0 48px; }
    .hb26-career__title { font-size: 28px; }
    .hb26-career__panel { padding: 24px; }
}

/* ============================================================= FUNiX Way */
.hb26-way {
    background: #fff;
    padding: 56px 0 72px;
    overflow: hidden;
}

.hb26-way__inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 24px;
}

/* Head: text on the left, student-with-icons composite on the right */
.hb26-way__head {
    display: flex;
    align-items: center;
    gap: 40px;
}

.hb26-way__intro {
    flex: 1 1 45%;
}

.hb26-way__label {
    display: inline-block;
    margin-bottom: 24px;
    padding: 12px 16px;
    border-radius: 10px;
    background: #fff2ea;
    color: #ff5e07;
    font-size: 17px;
    font-weight: 700;
    line-height: 22px;
}

.hb26-way__title {
    margin: 0 0 24px;
    color: var(--hb-ink);
    font-size: 48px;
    font-weight: 700;
    line-height: 1.25;
}

.hb26-way__title .hb26-accent {
    color: var(--hb-blue);
}

.hb26-way__desc {
    margin: 0;
    max-width: 505px;
    color: #445270;
    font-size: 16px;
    font-weight: 700;
    line-height: 28px;
}

.hb26-way__visual {
    flex: 1 1 55%;
    display: flex;
    justify-content: center;
}

.hb26-way__visual img {
    display: block;
    width: 100%;
    max-width: 760px;
    height: auto;
}

/* Four feature columns: centred icon, blue title, grey description */
.hb26-way__list {
    display: flex;
    gap: 32px;
    margin-top: 48px;
}

.hb26-way-feat {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    /* Hover uses `translate` so it never fights the fade-up entrance. */
    transition: translate .2s ease;
}

.hb26-way-feat:hover {
    translate: 0 -3px;
}

.hb26-way-feat__icon {
    height: 140px;
    width: auto;
    max-width: 100%;
    margin: 0 0 20px;
    object-fit: contain;
}

.hb26-way-feat__title {
    margin: 0 0 16px;
    color: var(--hb-blue);
    font-size: 20px;
    font-weight: 500;
    line-height: 28px;
}

.hb26-way-feat__desc {
    margin: 0;
    color: #4e596c;
    font-size: 16px;
    font-weight: 400;
    line-height: 26px;
}

.hb26-way__more {
    display: flex;
    justify-content: center;
    margin-top: 48px;
}

.hb26-way__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 353px;
    height: 56px;
    padding: 0 28px;
    border-radius: 12px;
    border: 1px solid #126bff;
    background: #126bff;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    text-decoration: none;
    /* Hover/press independent of any entrance transform. */
    transition: translate .2s ease, scale .2s ease, box-shadow .2s ease;
}

.hb26-way__cta:hover {
    color: #fff;
    translate: 0 -2px;
    box-shadow: 0 8px 18px rgba(18, 107, 255, .22);
}

.hb26-way__cta:active {
    scale: .97;
}

/* Intro fades up, composite slides in from the right, cards stagger up */
.hb26-way__intro {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity .7s ease, transform .7s ease;
    will-change: opacity, transform;
}

.hb26-way__intro.is-visible {
    opacity: 1;
    transform: none;
}

.hb26-way__visual {
    opacity: 0;
    transform: translateX(40px);
    transition: opacity .7s ease, transform .7s ease;
    will-change: opacity, transform;
}

.hb26-way__visual.is-visible {
    opacity: 1;
    transform: none;
}

.hb26-way__list:not(.is-visible) .hb26-way-feat {
    opacity: 0;
}

.hb26-way__list.is-visible .hb26-way-feat {
    animation: hb26-fade-up .55s ease both;
}
.hb26-way__list.is-visible .hb26-way-feat:nth-child(2) { animation-delay: .09s; }
.hb26-way__list.is-visible .hb26-way-feat:nth-child(3) { animation-delay: .18s; }
.hb26-way__list.is-visible .hb26-way-feat:nth-child(4) { animation-delay: .27s; }

@media (max-width: 1199px) {
    .hb26-way__head { flex-direction: column; align-items: flex-start; }
    .hb26-way__intro,
    .hb26-way__visual { flex: 1 1 auto; width: 100%; }
    .hb26-way__title { font-size: 38px; }
    .hb26-way__list { flex-wrap: wrap; }
    .hb26-way-feat { flex: 1 1 45%; }
}

@media (max-width: 575px) {
    .hb26-way { padding: 40px 0 48px; }
    .hb26-way__title { font-size: 28px; }
    .hb26-way-feat { flex: 1 1 100%; }
    .hb26-way__cta { width: 100%; min-width: 0; }
}

/* =============================================== Partnership ecosystem */
.hb26-eco {
    background: #000e25;
    padding: 64px 0 72px;
    overflow: hidden;
}

.hb26-eco__inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 24px;
}

/* Head: orange pill label on the left, intro copy on the right */
.hb26-eco__head {
    display: flex;
    align-items: center;
    gap: 32px;
    margin-bottom: 40px;
}

.hb26-eco__label {
    flex: 0 0 auto;
    display: inline-block;
    padding: 12px 16px;
    border-radius: 10px;
    border: 1px solid #ff9a7e;
    background: rgba(234, 242, 255, .1);
    color: #ff6f00;
    font-size: 17px;
    font-weight: 700;
    line-height: 22px;
    text-transform: uppercase;
}

.hb26-eco__desc {
    margin: 0;
    max-width: 501px;
    color: #c8d5f1;
    font-size: 16px;
    line-height: 23px;
}

.hb26-eco__body {
    display: flex;
    align-items: flex-start;
    gap: 48px;
}

.hb26-eco__partners { flex: 1 1 46%; min-width: 0; }
.hb26-eco__mentors  { flex: 1 1 54%; min-width: 0; }

.hb26-eco__subtitle {
    margin: 0 0 20px;
    color: #fff;
    font-size: 22px;
    font-weight: 500;
    line-height: 28px;
}

/* Partner logo frame: a faint blue box that holds one logo group at a time.
   Each feature card below toggles which group shows (see .hb26-eco-logos__group). */
.hb26-eco__logos {
    margin-bottom: 24px;
    padding: 20px;
    border: 1px solid rgba(43, 145, 255, .45);
    border-radius: 20px;
}

/* One logo group per feature card; only the active group is laid out. */
.hb26-eco-logos__group {
    display: none;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

.hb26-eco-logos__group.is-active {
    display: grid;
}

/* Connector: 3 prongs dropping from the logo frame to the feature cards.
   Desktop-only — it only reads when the features sit in three columns
   directly below the frame; on stacked/narrow layouts it is hidden. */
.hb26-eco__connector {
    display: none;
}

.hb26-eco__connector span {
    position: relative;
    flex: 1 1 0;
}

.hb26-eco__connector span::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 6px;
    width: 1px;
    background: rgba(43, 145, 255, .45);
}

.hb26-eco__connector span::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 6px;
    height: 6px;
    margin-left: -3px;
    border-radius: 50%;
    background: #2b91ff;
}

@media (min-width: 768px) {
    .hb26-eco__logos { margin-bottom: 0; }
    .hb26-eco__connector {
        display: flex;
        position: relative;
        height: 32px;
    }
    /* Horizontal rail the three prongs hang from */
    .hb26-eco__connector::before {
        content: "";
        position: absolute;
        left: 16.66%;
        right: 16.66%;
        top: 0;
        height: 1px;
        background: rgba(43, 145, 255, .45);
    }
}

.hb26-eco-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 86px;
    padding: 14px;
    border-radius: 10px;
    background: #fff;
    /* Hover lift uses `translate` so it composes with the fade-up entrance. */
    transition: translate .2s ease, box-shadow .2s ease;
}

.hb26-eco-logo:hover {
    translate: 0 -3px;
    box-shadow: 0 6px 16px rgba(43, 145, 255, .25);
}

.hb26-eco-logo img {
    display: block;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

/* Three partnership feature cards */
.hb26-eco__features {
    display: flex;
    gap: 16px;
}

.hb26-eco-card {
    flex: 1 1 0;
    padding: 16px;
    border-radius: 20px;
    border: 1px solid #075bff;
    background: #000a18;
    cursor: pointer;
    transition: translate .2s ease, background .2s ease, box-shadow .2s ease;
}

/* On hover, or when selected, a card lights up to the highlighted treatment */
.hb26-eco-card:hover,
.hb26-eco-card.is-active {
    translate: 0 -4px;
    background: #f7faff;
    box-shadow: 0 0 8.5px 0 #2b91ff;
}

.hb26-eco-card:focus-visible {
    outline: 2px solid #2b91ff;
    outline-offset: 2px;
}

.hb26-eco-card__icon {
    display: block;
    width: 40px;
    height: 40px;
    margin-bottom: 12px;
    object-fit: contain;
}

.hb26-eco-card__title {
    margin: 0 0 10px;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    line-height: 24px;
    transition: color .2s ease;
}

.hb26-eco-card__desc {
    margin: 0;
    color: #b3b3b3;
    font-size: 15px;
    font-weight: 400;
    line-height: 20px;
    transition: color .2s ease;
}

.hb26-eco-card:hover .hb26-eco-card__title,
.hb26-eco-card.is-active .hb26-eco-card__title { color: #075bff; }
.hb26-eco-card:hover .hb26-eco-card__desc,
.hb26-eco-card.is-active .hb26-eco-card__desc  { color: rgba(60, 60, 67, .6); }

/* Mentor cards: photo on top, details below, LinkedIn marker inline */
.hb26-eco__mentor-list {
    display: flex;
    gap: 16px;
    margin-bottom: 32px;
}

.hb26-mentor {
    flex: 1 1 0;
    min-width: 0;
    border: 1px solid rgba(43, 145, 255, .45);
    border-radius: 20px;
    overflow: hidden;
    transition: translate .2s ease, box-shadow .2s ease;
}

.hb26-mentor:hover {
    translate: 0 -4px;
    box-shadow: 0 12px 24px rgba(43, 145, 255, .18);
}

.hb26-mentor__img {
    display: block;
    width: 100%;
    aspect-ratio: 243 / 256;
    object-fit: cover;
    border-radius: 20px 20px 0 0;
}

.hb26-mentor__body { padding: 16px 16px 20px; }

.hb26-mentor__name {
    margin: 0 0 8px;
    color: #fff;
    font-size: 22px;
    font-weight: 500;
    line-height: 28px;
}

.hb26-mentor__role {
    margin: 0 0 6px;
    color: #b3b3b3;
    font-size: 16px;
    line-height: 26px;
}

.hb26-mentor__company {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin: 0;
    color: #075bff;
    font-size: 16px;
    line-height: 26px;
}

.hb26-mentor__in {
    flex: 0 0 auto;
    color: #075bff;
    font-size: 20px;
    font-weight: 800;
    line-height: 1;
}

/* Two outlined CTA buttons */
.hb26-eco__actions {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
}

.hb26-eco__btn {
    flex: 1 1 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 56px;
    padding: 8px 24px;
    border-radius: 12px;
    border: 1px solid #126bff;
    background: #031329;
    color: #2b91ff;
    font-size: 16px;
    font-weight: 500;
    line-height: 23px;
    text-align: center;
    text-decoration: none;
    transition: translate .2s ease, scale .2s ease, box-shadow .2s ease;
}

.hb26-eco__btn:hover {
    color: #2b91ff;
    translate: 0 -2px;
    box-shadow: 0 8px 18px rgba(18, 107, 255, .3);
}

.hb26-eco__btn:active { scale: .97; }

/* Reveal: each column fades up, its children stagger in */
.hb26-eco__partners,
.hb26-eco__mentors {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity .7s ease, transform .7s ease;
    will-change: opacity, transform;
}

.hb26-eco__partners.is-visible,
.hb26-eco__mentors.is-visible {
    opacity: 1;
    transform: none;
}

.hb26-eco__partners:not(.is-visible) .hb26-eco-logo,
.hb26-eco__partners:not(.is-visible) .hb26-eco-card,
.hb26-eco__mentors:not(.is-visible) .hb26-mentor {
    opacity: 0;
}

.hb26-eco__partners.is-visible .hb26-eco-logo {
    animation: hb26-fade-up .5s ease both;
}
.hb26-eco__partners.is-visible .hb26-eco-logo:nth-child(2) { animation-delay: .04s; }
.hb26-eco__partners.is-visible .hb26-eco-logo:nth-child(3) { animation-delay: .08s; }
.hb26-eco__partners.is-visible .hb26-eco-logo:nth-child(4) { animation-delay: .12s; }
.hb26-eco__partners.is-visible .hb26-eco-logo:nth-child(5) { animation-delay: .16s; }
.hb26-eco__partners.is-visible .hb26-eco-logo:nth-child(6) { animation-delay: .20s; }
.hb26-eco__partners.is-visible .hb26-eco-logo:nth-child(7) { animation-delay: .24s; }
.hb26-eco__partners.is-visible .hb26-eco-logo:nth-child(8) { animation-delay: .28s; }
.hb26-eco__partners.is-visible .hb26-eco-logo:nth-child(9) { animation-delay: .32s; }
.hb26-eco__partners.is-visible .hb26-eco-logo:nth-child(10) { animation-delay: .36s; }
.hb26-eco__partners.is-visible .hb26-eco-logo:nth-child(11) { animation-delay: .40s; }
.hb26-eco__partners.is-visible .hb26-eco-logo:nth-child(12) { animation-delay: .44s; }

.hb26-eco__partners.is-visible .hb26-eco-card {
    animation: hb26-fade-up .55s ease both;
    animation-delay: .48s;
}
.hb26-eco__partners.is-visible .hb26-eco-card:nth-child(2) { animation-delay: .56s; }
.hb26-eco__partners.is-visible .hb26-eco-card:nth-child(3) { animation-delay: .64s; }

.hb26-eco__mentors.is-visible .hb26-mentor {
    animation: hb26-fade-up .55s ease both;
}
.hb26-eco__mentors.is-visible .hb26-mentor:nth-child(2) { animation-delay: .1s; }
.hb26-eco__mentors.is-visible .hb26-mentor:nth-child(3) { animation-delay: .2s; }

@media (max-width: 1199px) {
    .hb26-eco__body { flex-direction: column; }
    .hb26-eco__partners,
    .hb26-eco__mentors { flex: 1 1 auto; width: 100%; }
}

@media (max-width: 767px) {
    .hb26-eco__head { flex-direction: column; align-items: flex-start; gap: 16px; }
    .hb26-eco__features { flex-wrap: wrap; }
    .hb26-eco-card { flex: 1 1 45%; }
    .hb26-eco__mentor-list { flex-wrap: wrap; }
    .hb26-mentor { flex: 1 1 45%; }
    .hb26-eco__actions { flex-direction: column; }
    .hb26-eco__btn { flex: 1 1 auto; }
}

@media (max-width: 575px) {
    .hb26-eco { padding: 48px 0; }
    .hb26-eco-logos__group { grid-template-columns: repeat(3, 1fr); }
    .hb26-eco-card { flex: 1 1 100%; }
    .hb26-mentor { flex: 1 1 100%; }
}

/* ============================================================ Lead form */
.hb26-form {
    background: #f8f9fc;
    padding: 64px 0 72px;
    overflow: hidden;
}

.hb26-form__inner {
    display: flex;
    align-items: center;
    gap: 48px;
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px;
}

/* Left: portrait stage echoing the hero banner — rings, halos, floating orbs */
.hb26-form__visual {
    flex: 1 1 48%;
    min-width: 0;
}

.hb26-form__stage {
    position: relative;
    width: 100%;
    aspect-ratio: 760 / 816;
}

.hb26-form__bg {
    position: absolute;
    left: 0;
    top: .7%;
    width: 100%;
    height: auto;
    pointer-events: none;
}

.hb26-form__halo {
    position: absolute;
    border-radius: 50%;
    aspect-ratio: 1;
    opacity: .7;
    filter: blur(60px);
    transform: translate(-50%, -50%);
    pointer-events: none;
}

.hb26-form__halo--1 { left: 50%; top: 70%; width: 60%; background: rgba(47, 107, 255, .18); }
.hb26-form__halo--2 { left: 78%; top: 40%; width: 36%; background: rgba(255, 138, 61, .15); }

.hb26-form__portrait {
    position: absolute;
    left: 11.2%;
    bottom: 0;
    width: 80.5%;
    height: 100%;
    object-fit: cover;
    object-position: bottom center;
}

/* Floating orbs reuse the banner orb shell (.hb26-orb); only positions differ */
.hb26-form-orb {
    position: absolute;
    aspect-ratio: 1;
}

.hb26-form-orb--robot    { left: 70.8%; top: .4%;   width: 10.8%; }
.hb26-form-orb--database { left: 11.2%; top: 9.3%;  width: 10.8%; }
.hb26-form-orb--brain    { left: 20.5%; top: 30.1%; width: 8.6%;  border-radius: 10px; }
.hb26-form-orb--chart    { left: 68.7%; top: 25.1%; width: 10.8%; }
.hb26-form-orb--code     { left: 68.9%; top: 57.1%; width: 10.8%; }

/* Right: heading + form */
.hb26-form__content {
    flex: 1 1 52%;
    min-width: 0;
}

.hb26-form__title {
    margin: 0 0 16px;
    color: #1d293f;
    font-size: 48px;
    font-weight: 700;
    line-height: 60px;
}

.hb26-form__title .hb26-accent { color: var(--hb-blue); }

.hb26-form__desc {
    margin: 0 0 28px;
    max-width: 600px;
    color: #445270;
    font-size: 16px;
    line-height: 22px;
}

.hb26-form__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}

.hb26-form__field {
    width: 100%;
    min-height: 46px;
    padding: 11px 16px;
    border: 1px solid #d2e0ed;
    border-radius: 5px;
    background: #fff;
    color: #1d293f;
    font-family: inherit;
    font-size: 14px;
    line-height: 22px;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.hb26-form__field::placeholder { color: #8c97ac; }

.hb26-form__field:focus {
    outline: none;
    border-color: #0d7dfc;
    box-shadow: 0 0 0 3px rgba(13, 125, 252, .12);
}

.hb26-form__field--full { grid-column: 1 / -1; }

.hb26-form__field--area {
    min-height: 91px;
    resize: vertical;
}

.hb26-form__submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 20px;
    padding: 10px 32px;
    min-height: 46px;
    border: none;
    border-radius: 5px;
    background: #0d7dfc;
    color: #e9f7fe;
    font-family: inherit;
    font-size: 16px;
    font-weight: 600;
    line-height: 26px;
    cursor: pointer;
    transition: translate .2s ease, scale .2s ease, background .2s ease, box-shadow .2s ease;
}

.hb26-form__submit:hover {
    background: #0b6fe0;
    translate: 0 -2px;
    box-shadow: 0 8px 18px rgba(13, 125, 252, .28);
}

.hb26-form__submit:active { scale: .97; }

.hb26-form__note {
    margin: 16px 0 0;
    color: #445270;
    font-size: 14px;
    line-height: 22px;
}

/* Reveal: portrait slides in from the left, form fades up */
.hb26-form__visual {
    opacity: 0;
    transform: translateX(-40px);
    transition: opacity .7s ease, transform .7s ease;
    will-change: opacity, transform;
}

.hb26-form__content {
    opacity: 0;
    transform: translateX(40px);
    transition: opacity .7s ease, transform .7s ease;
    will-change: opacity, transform;
}

.hb26-form__visual.is-visible,
.hb26-form__content.is-visible {
    opacity: 1;
    transform: none;
}

/* Inputs appear sequentially with a light stagger once the form is in view */
.hb26-form__content:not(.is-visible) .hb26-form__field {
    opacity: 0;
}

.hb26-form__content.is-visible .hb26-form__field {
    animation: hb26-fade-up .5s ease both;
}
.hb26-form__content.is-visible .hb26-form__field:nth-child(1) { animation-delay: .12s; }
.hb26-form__content.is-visible .hb26-form__field:nth-child(2) { animation-delay: .17s; }
.hb26-form__content.is-visible .hb26-form__field:nth-child(3) { animation-delay: .22s; }
.hb26-form__content.is-visible .hb26-form__field:nth-child(4) { animation-delay: .27s; }
.hb26-form__content.is-visible .hb26-form__field:nth-child(5) { animation-delay: .32s; }
.hb26-form__content.is-visible .hb26-form__field:nth-child(6) { animation-delay: .37s; }

@media (max-width: 991px) {
    .hb26-form__inner { flex-direction: column; }
    .hb26-form__visual {
        order: -1;
        width: 100%;
        max-width: 460px;
    }
    .hb26-form__content { width: 100%; }
    .hb26-form__title { font-size: 38px; line-height: 48px; }
}

@media (max-width: 575px) {
    .hb26-form { padding: 48px 0; }
    .hb26-form__title { font-size: 28px; line-height: 36px; }
    .hb26-form__grid { grid-template-columns: 1fr; }
    .hb26-form__submit { width: 100%; }
}

/* ----------------------------------------------------------- Animations */
/* Entrance plays once on load: text fades up in reading order, then the
   visuals pop in. The continuous float starts only after each element's
   entrance has settled (its float-delay > entrance end), so the two
   transform animations never overlap and the hand-off is seamless. */
@keyframes hb26-fade-up {
    from { opacity: 0; transform: translateY(16px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes hb26-pop-in {
    from { opacity: 0; transform: scale(.92); }
    to   { opacity: 1; transform: scale(1); }
}

@keyframes hb26-float {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-5px); }
}

@keyframes hb26-fade-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* Text — staggered fade-up in reading order */
.hb26-eyebrow,
.hb26-title,
.hb26-desc,
.hb26-actions {
    animation: hb26-fade-up .6s ease both;
}
.hb26-eyebrow { animation-delay: .10s; }
.hb26-title   { animation-delay: .25s; }
.hb26-desc    { animation-delay: .40s; }
.hb26-actions { animation-delay: .55s; }

/* Background + halos just fade in behind the composition */
.hb26-bg     { animation: hb26-fade-in .8s ease .35s both; }
.hb26-halo   { animation: hb26-fade-in 1s ease .6s both; }

/* Student: pop in, then a slow gentle float */
.hb26-student {
    animation:
        hb26-pop-in .7s ease .5s both,
        hb26-float 6s ease-in-out 1.4s infinite;
}

/* Orbs: pop in staggered after the student, then float at varied tempos
   so they drift independently rather than in lockstep. */
.hb26-orb {
    animation:
        hb26-pop-in .55s ease both,
        hb26-float 3.5s ease-in-out infinite;
}
.hb26-orb--robot    { animation-delay: .75s, 1.7s; }
.hb26-orb--database { animation-delay: .85s, 2.3s; }
.hb26-orb--code     { animation-delay: .95s, 1.9s; }
.hb26-orb--brain    { animation-delay: .80s, 2.6s; }
.hb26-orb--chart    { animation-delay: .90s, 2.0s; }
.hb26-orb--tree     { animation-delay: 1.0s, 2.4s; }

/* Respect users who prefer less motion: show everything, no movement. */
@media (prefers-reduced-motion: reduce) {
    .hb26-eyebrow,
    .hb26-title,
    .hb26-desc,
    .hb26-actions,
    .hb26-bg,
    .hb26-halo,
    .hb26-student,
    .hb26-orb {
        animation: none;
    }
    .hb26-btn:hover,
    .hb26-btn:active {
        transform: none;
    }
    .hb26-about__visual,
    .hb26-about__content {
        opacity: 1;
        transform: none;
        transition: none;
    }
    .hb26-paths:not(.is-visible) .hb26-path-card,
    .hb26-paths .hb26-path-card {
        opacity: 1;
        animation: none;
    }
    .hb26-path-card:hover,
    .hb26-path-card:active {
        translate: none;
        scale: none;
        box-shadow: none;
    }
    .hb26-courses__visual {
        opacity: 1;
        transform: none;
        transition: none;
    }
    .hb26-courses__list:not(.is-visible) .hb26-course,
    .hb26-courses__list .hb26-course {
        opacity: 1;
        animation: none;
    }
    .hb26-course:hover,
    .hb26-course:active {
        translate: none;
        scale: none;
    }
    .hb26-projects__list:not(.is-visible) .hb26-project,
    .hb26-projects__list .hb26-project {
        opacity: 1;
        animation: none;
    }
    .hb26-project:hover,
    .hb26-project:active,
    .hb26-project:hover .hb26-project__shot img,
    .hb26-projects__cta:hover,
    .hb26-projects__cta:active {
        translate: none;
        scale: none;
        box-shadow: none;
    }
    .hb26-stats__head {
        opacity: 1;
        transform: none;
        transition: none;
    }
    .hb26-stats__row:not(.is-visible) .hb26-stat,
    .hb26-stats__row .hb26-stat {
        opacity: 1;
        animation: none;
    }
    .hb26-stat:hover {
        translate: none;
        box-shadow: none;
    }
    .hb26-roadmap__visual {
        opacity: 1;
        transform: none;
        transition: none;
    }
    .hb26-roadmap__steps:not(.is-visible) .hb26-step,
    .hb26-roadmap__steps .hb26-step {
        opacity: 1;
        animation: none;
    }
    .hb26-step:hover {
        translate: none;
    }
    .hb26-career__left,
    .hb26-career__visual {
        opacity: 1;
        transform: none;
        transition: none;
    }
    .hb26-career__left:not(.is-visible) .hb26-career-feat,
    .hb26-career__left .hb26-career-feat,
    .hb26-career__personas:not(.is-visible) .hb26-persona,
    .hb26-career__personas .hb26-persona {
        opacity: 1;
        animation: none;
    }
    .hb26-career-feat:hover,
    .hb26-career__visual:hover img,
    .hb26-persona:hover,
    .hb26-career__btn:hover,
    .hb26-career__btn:active {
        translate: none;
        scale: none;
        box-shadow: none;
    }
    .hb26-way__intro,
    .hb26-way__visual {
        opacity: 1;
        transform: none;
        transition: none;
    }
    .hb26-way__list:not(.is-visible) .hb26-way-feat,
    .hb26-way__list .hb26-way-feat {
        opacity: 1;
        animation: none;
    }
    .hb26-way-feat:hover,
    .hb26-way__cta:hover,
    .hb26-way__cta:active {
        translate: none;
        scale: none;
        box-shadow: none;
    }
    .hb26-eco__partners,
    .hb26-eco__mentors {
        opacity: 1;
        transform: none;
        transition: none;
    }
    .hb26-eco__partners:not(.is-visible) .hb26-eco-logo,
    .hb26-eco__partners .hb26-eco-logo,
    .hb26-eco__partners:not(.is-visible) .hb26-eco-card,
    .hb26-eco__partners .hb26-eco-card,
    .hb26-eco__mentors:not(.is-visible) .hb26-mentor,
    .hb26-eco__mentors .hb26-mentor {
        opacity: 1;
        animation: none;
    }
    .hb26-eco-logo:hover,
    .hb26-eco-card:hover,
    .hb26-mentor:hover,
    .hb26-eco__btn:hover,
    .hb26-eco__btn:active {
        translate: none;
        scale: none;
        box-shadow: none;
    }
    .hb26-form__visual,
    .hb26-form__content {
        opacity: 1;
        transform: none;
        transition: none;
    }
    .hb26-form__content:not(.is-visible) .hb26-form__field,
    .hb26-form__content .hb26-form__field {
        opacity: 1;
        animation: none;
    }
    .hb26-form__submit:hover,
    .hb26-form__submit:active {
        translate: none;
        scale: none;
        box-shadow: none;
    }
}
