.ppt-page {
    --ppt-navy: var(--navy-dark, #111a3d);
    --ppt-purple: var(--navy, #28246b);
    --ppt-red: var(--red, #c91f35);
    --ppt-lime: var(--yellow, #d6df27);
    --ppt-blue: var(--blue, #245de2);
    --ppt-paper: var(--paper, #f5f4ef);
    --ppt-ink: #111a3d;
    background: var(--ppt-paper);
    color: var(--ppt-ink);
    overflow: hidden;
}

.ppt-page *,
.ppt-page *::before,
.ppt-page *::after { box-sizing: border-box; }

.ppt-kicker {
    margin: 0 0 .85rem;
    color: var(--ppt-red);
    font-size: .69rem;
    font-weight: 850;
    letter-spacing: .16em;
}

.ppt-hero {
    position: relative;
    min-height: min(780px, calc(100svh - 80px));
    display: grid;
    align-items: end;
    isolation: isolate;
    background: var(--ppt-navy);
    color: #fff;
}

.ppt-hero__media,
.ppt-hero__shade { position: absolute; inset: 0; }
.ppt-hero__media { z-index: -2; }
.ppt-hero__media picture,
.ppt-hero__media img { display: block; width: 100%; height: 100%; }
.ppt-hero__media img { object-fit: cover; object-position: center 42%; }
.ppt-hero__shade {
    z-index: -1;
    background:
        linear-gradient(90deg, rgba(8, 15, 38, .94) 0%, rgba(8, 15, 38, .68) 48%, rgba(8, 15, 38, .14) 78%),
        linear-gradient(0deg, rgba(8, 15, 38, .82) 0%, transparent 48%);
}

.ppt-hero__content {
    width: min(1320px, calc(100% - 2.4rem));
    margin: 0 auto;
    padding: clamp(7rem, 13vw, 11rem) 0 clamp(8.5rem, 13vw, 11rem);
}

.ppt-hero__content .ppt-kicker { color: var(--ppt-lime); }
.ppt-hero h1 {
    max-width: 850px;
    margin: 0;
    font-size: clamp(3.5rem, 8vw, 7.6rem);
    line-height: .86;
    letter-spacing: -.072em;
}
.ppt-hero h1 em { color: var(--ppt-lime); font-style: normal; }
.ppt-hero__lead {
    max-width: 600px;
    margin: 1.65rem 0 1.7rem;
    color: rgba(255, 255, 255, .79);
    font-size: clamp(1rem, 1.6vw, 1.18rem);
    line-height: 1.65;
}

.ppt-button {
    min-height: 50px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    padding: .82rem 1.15rem;
    border-radius: 999px;
    font-weight: 820;
    text-decoration: none;
    transition: transform .2s ease, background .2s ease;
}
.ppt-button:hover { transform: translateY(-2px); }
.ppt-button--light { background: #fff; color: var(--ppt-navy); }
.ppt-button--dark { background: var(--ppt-navy); color: #fff; }

.ppt-hero__facts {
    position: absolute;
    right: max(1.2rem, calc((100% - 1320px) / 2));
    bottom: 2rem;
    display: flex;
    gap: clamp(1rem, 3vw, 2.7rem);
    margin: 0;
}
.ppt-hero__facts div { min-width: 95px; }
.ppt-hero__facts dt { font-size: clamp(1.45rem, 2.3vw, 2.2rem); font-weight: 880; }
.ppt-hero__facts dd { margin: .15rem 0 0; color: rgba(255, 255, 255, .64); font-size: .72rem; }

.ppt-intro,
.ppt-programs,
.ppt-cta {
    width: min(1320px, calc(100% - 2.4rem));
    margin: 0 auto;
}

.ppt-intro {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: clamp(2rem, 6vw, 7rem);
    padding: clamp(5rem, 9vw, 9rem) 0;
}
.ppt-intro h2,
.ppt-section-heading h2,
.ppt-cta h2 {
    margin: 0;
    font-size: clamp(2.45rem, 5.2vw, 5.2rem);
    line-height: .95;
    letter-spacing: -.06em;
}

.ppt-experience { display: grid; grid-template-columns: repeat(3, 1fr); gap: .85rem; }
.ppt-experience article {
    min-height: 220px;
    display: flex;
    flex-direction: column;
    padding: 1.35rem;
    border-radius: 1.35rem;
    background: #fff;
    box-shadow: 0 14px 45px rgba(17, 26, 61, .07);
}
.ppt-experience article:nth-child(2) { background: var(--ppt-lime); }
.ppt-experience article:nth-child(3) { background: var(--ppt-navy); color: #fff; }
.ppt-experience span { font-size: .65rem; font-weight: 850; letter-spacing: .14em; opacity: .65; }
.ppt-experience strong { margin-top: auto; font-size: clamp(1.25rem, 2vw, 1.7rem); line-height: 1.05; }
.ppt-experience p { margin: .75rem 0 0; font-size: .88rem; line-height: 1.5; opacity: .68; }

.ppt-programs { padding-bottom: clamp(5rem, 9vw, 9rem); }
.ppt-section-heading { max-width: 850px; margin-bottom: clamp(4rem, 8vw, 7rem); }
.ppt-section-heading h2 em { color: var(--ppt-red); font-style: normal; }
.ppt-section-heading > p:last-child { margin: 1.25rem 0 0; color: rgba(17, 26, 61, .62); }

.ppt-family { margin-top: clamp(5rem, 9vw, 8.5rem); }
.ppt-family > header {
    display: flex;
    align-items: flex-start;
    gap: 1.25rem;
    margin-bottom: 1.5rem;
}
.ppt-family > header > span {
    min-width: 2.5rem;
    padding-top: .2rem;
    color: var(--ppt-red);
    font-size: .75rem;
    font-weight: 850;
}
.ppt-family > header p { margin: 0 0 .35rem; color: rgba(17, 26, 61, .55); font-size: .65rem; font-weight: 850; letter-spacing: .14em; }
.ppt-family > header h3 { margin: 0; font-size: clamp(1.65rem, 3vw, 2.55rem); letter-spacing: -.04em; }

.ppt-program-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.ppt-program-card {
    min-width: 0;
    overflow: hidden;
    border-radius: 1.7rem;
    background: #fff;
    box-shadow: 0 20px 60px rgba(17, 26, 61, .08);
}
.ppt-program-card__image { aspect-ratio: 3 / 2; display: block; overflow: hidden; background: #ddd; }
.ppt-program-card__image img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .45s ease; }
.ppt-program-card:hover .ppt-program-card__image img { transform: scale(1.025); }
.ppt-program-card__body { padding: clamp(1.35rem, 3vw, 2.25rem); }
.ppt-nickname { margin: 0 0 .6rem; color: var(--ppt-red); font-size: .67rem; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.ppt-program-card h4 { margin: 0; font-size: clamp(1.65rem, 3vw, 2.6rem); line-height: .98; letter-spacing: -.052em; }
.ppt-noss-code { margin: .8rem 0 1.3rem; font-weight: 800; }
.ppt-noss-code span { padding: 0 .25rem; color: var(--ppt-red); }
.ppt-rule { padding: 1rem; border-left: 4px solid var(--ppt-lime); border-radius: .25rem .8rem .8rem .25rem; background: #f3f5da; line-height: 1.45; }
.ppt-match { margin: 1.45rem 0 .7rem; font-weight: 800; }
.ppt-program-card ul { margin: 0; padding-left: 1.15rem; color: rgba(17, 26, 61, .72); line-height: 1.62; }
.ppt-program-card li + li { margin-top: .4rem; }

.ppt-program-card details { margin-top: 1.4rem; border-top: 1px solid rgba(17, 26, 61, .13); }
.ppt-program-card summary {
    min-height: 54px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    cursor: pointer;
    font-weight: 820;
    list-style: none;
}
.ppt-program-card summary::-webkit-details-marker { display: none; }
.ppt-program-card summary::after { content: "+"; color: var(--ppt-red); font-size: 1.45rem; }
.ppt-program-card details[open] summary::after { content: "−"; }
.ppt-program-card details > div { padding: .1rem 0 .8rem; }
.ppt-program-card details p { margin: 0; padding: .65rem 0; border-top: 1px solid rgba(17, 26, 61, .08); color: rgba(17, 26, 61, .7); font-size: .89rem; line-height: 1.45; }
.ppt-program-card details small { opacity: .68; }

.ppt-cta {
    margin-bottom: clamp(5rem, 9vw, 8rem);
    padding: clamp(2rem, 5vw, 5rem);
    border-radius: 1.8rem;
    background: var(--ppt-lime);
}
.ppt-cta h2 { max-width: 830px; margin-bottom: 1.7rem; }

@media (prefers-reduced-motion: reduce) {
    .ppt-button,
    .ppt-program-card__image img { transition: none; }
}

@media (max-width: 920px) {
    .ppt-intro { grid-template-columns: 1fr; }
    .ppt-hero__facts { left: 1.2rem; right: auto; }
    .ppt-experience { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 700px) {
    .ppt-page { padding-bottom: 5rem; }
    .ppt-hero {
        min-height: calc(100svh - 1rem);
        margin: .5rem;
        border-radius: 1.6rem;
        overflow: hidden;
    }
    .ppt-hero__media img { object-position: 62% center; }
    .ppt-hero__shade {
        background:
            linear-gradient(0deg, rgba(8, 15, 38, .96) 0%, rgba(8, 15, 38, .72) 56%, rgba(8, 15, 38, .08) 100%),
            linear-gradient(90deg, rgba(8, 15, 38, .25), transparent);
    }
    .ppt-hero__content {
        width: calc(100% - 2rem);
        padding: 9rem 0 9.5rem;
    }
    .ppt-hero h1 { font-size: clamp(3.35rem, 16vw, 5.2rem); }
    .ppt-hero__lead { font-size: .97rem; line-height: 1.55; }
    .ppt-hero__facts { bottom: 1.4rem; left: 1rem; gap: 1.1rem; }
    .ppt-hero__facts div { min-width: auto; }
    .ppt-hero__facts dt { font-size: 1.25rem; }
    .ppt-hero__facts dd { max-width: 78px; font-size: .62rem; }
    .ppt-intro,
    .ppt-programs,
    .ppt-cta { width: min(100% - 2rem, 1320px); }
    .ppt-experience { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding: .1rem 0 .8rem; scrollbar-width: none; }
    .ppt-experience::-webkit-scrollbar { display: none; }
    .ppt-experience article { min-width: 78vw; scroll-snap-align: start; }
    .ppt-program-grid { grid-template-columns: 1fr; }
    .ppt-program-card { border-radius: 1.35rem; }
    .ppt-program-card__image { aspect-ratio: 4 / 3; }
    .ppt-family > header { gap: .7rem; }
    .ppt-cta { border-radius: 1.35rem; }
}
