.nav a[aria-current="page"]{
    color:#1d9bf0;
}

.program-hero{
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(300px, 380px);
    gap:clamp(28px, 5vw, 56px);
    align-items:end;
    padding-top:15rem;
    padding-bottom:var(--section-y-tight);
}

.program-hero-copy{
    max-width:900px;
}

.program-hero-copy h1{
    max-width:940px;
    margin-bottom:24px;

    line-height:.94;
    
    font-weight:700;
}

.program-hero-copy p:last-child{
    max-width:760px;



}

.program-hero-panel{
    padding:var(--card-pad);
    border-radius:var(--radius-card);
    background:#101016e6;
    color:#fff;
}

.program-hero-panel span{
    display:block;
    margin-bottom:12px;
    color:#1d9bf0;
    font-size:13px;
    font-weight:700;
    
    
}

.program-hero-panel strong{
    display:block;
    margin-bottom:12px;
    font-size:clamp(28px, 3vw, 36px);
    line-height:1.05;
    
}

.program-browser{
    padding-top:0;
}

.program-toolbar{
    display:grid;
    grid-template-columns:1fr 1fr 1fr minmax(240px, 1.25fr) .75fr;
    gap:12px;
    align-items:end;
    margin-bottom:var(--section-gap);
    padding:16px;
    border:1px solid rgba(0,0,0,.06);
    border-radius:24px;
    background:#f7f7f5;
}

.program-toolbar-group{
    min-width:0;
}

.program-toolbar-group label{
    display:block;
    margin:0 0 8px 4px;
    color:#4d4d4d;
    font-size:12px;
    font-weight:700;
    
    
}

.program-toolbar select,
.program-toolbar input{
    width:100%;
    height:50px;
    padding:0 16px;
    border:1px solid rgba(0,0,0,.08);
    border-radius:999px;
    background:#fff;
    color:#101016e6;
    font:inherit;
    font-size:14px;
}

.program-toolbar input::placeholder{
    color:#7b7b7b;
}

.program-toolbar select:focus,
.program-toolbar input:focus{
    outline:2px solid rgba(29,155,240,.22);
    border-color:#1d9bf0;
}

.program-results-head{
    display:flex;
    justify-content:space-between;
    gap:24px;
    align-items:end;
    margin-bottom:28px;
}

.program-results-head h2{
    margin-bottom:0;
    line-height:1;
    font-weight:700;
}

.program-results-head > p{
    max-width:340px;

    text-align:right;

}

.program-grid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:var(--grid-gap);
}

.program-card{
    overflow:hidden;
    display:flex;
    flex-direction:column;
    min-height:100%;
    border:1px solid rgba(0,0,0,.06);
    border-radius:var(--radius-card);
    background:#fff;
    transition:border-color .24s ease, box-shadow .24s ease, transform .24s ease;
}

.program-card:hover{
    transform:translateY(-4px);
    border-color:rgba(29,155,240,.28);
    box-shadow:0 18px 40px rgba(16,16,22,.08);
}

.program-card.featured{
    grid-column:span 2;
    display:grid;
    grid-template-columns:minmax(0, .95fr) minmax(0, 1.05fr);
}

.program-image{
    position:relative;
    overflow:hidden;
    min-height:230px;
    background:#f7f7f5;
}

.program-card.featured .program-image{
    min-height:100%;
}

.program-image img{
    display:block;
    width:100%;
    height:100%;
    min-height:230px;
    object-fit:cover;
    transition:transform .35s ease;
}

.program-card:hover .program-image img{
    transform:scale(1.04);
}

.program-badge{
    position:absolute;
    left:18px;
    top:18px;
    padding:8px 12px;
    border-radius:999px;
    background:#1d9bf0;
    color:#fff;
    font-size:12px;
    font-weight:700;
}

.program-content{
    flex:1;
    display:flex;
    flex-direction:column;
    padding:var(--card-pad);
}

.program-meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:18px;
}

.program-meta span,
.program-details span{
    display:inline-flex;
    align-items:center;
    min-height:30px;
    padding:7px 11px;
    border-radius:999px;
    background:rgba(29,155,240,.1);
    color:#1d9bf0;
    font-size:11px;
    font-weight:700;
    
    
}

.program-meta span:last-child{
    background:#f7f7f5;
    color:#4d4d4d;
}

.program-content h3{
    margin-bottom:12px;
    font-size:clamp(24px, 2.6vw, 34px);
    line-height:1.06;
    
    font-weight:700;
}

.program-details{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:22px 0 28px;
}

.program-actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:12px;
}





.program-empty{
    margin-top:24px;
    padding:var(--card-pad);
    border:1px solid rgba(0,0,0,.06);
    border-radius:var(--radius-card);
    background:#f7f7f5;
    text-align:center;
}

.program-empty h3{
    margin-bottom:8px;
    font-size:26px;
    line-height:1.1;
}

.program-cta{
    margin-top:var(--section-y-tight);
    margin-bottom:var(--section-y-tight);
}

.program-cta .cta-card{
    max-width:820px;
}

.program-cta-actions{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
}



.program-detail-hero{
    position:relative;
    display:grid;
    min-height:760px;
    padding:0;
    color:#fff;
    overflow:hidden;
}

.program-detail-media{
    position:absolute;
    inset:0;
    background:#101016;
}

.program-detail-media::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg, rgba(16,16,22,.9) 0%, rgba(16,16,22,.68) 42%, rgba(16,16,22,.16) 100%);
}

.program-detail-media img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.program-detail-shell{
    position:relative;
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(290px, 380px);
    gap:clamp(28px, 5vw, 64px);
    align-items:end;
    padding-top:15rem;
    padding-bottom:clamp(54px, 8vw, 92px);
}

.program-detail-shell > *{
    min-width:0;
}

.program-detail-copy{
 margin: auto;
}

.program-back-link{
    display:inline-flex;
    margin-bottom:24px;
    color:rgba(255,255,255,.82);
    font-size:14px;
    font-weight:700;
}

.program-back-link::before{
    content:"";
    width:8px;
    height:8px;
    margin:4px 10px;
    border-left:2px solid currentColor;
    border-bottom:2px solid currentColor;
    transform:rotate(45deg);
}

.program-detail-tags,
.program-role-switch{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.program-detail-tags span{
    display:inline-flex;
    align-items:center;
    min-height:32px;
    padding:8px 12px;
    border:1px solid rgba(255,255,255,.18);
    border-radius:999px;
    background:rgba(255,255,255,.12);
    color:#fff;
    font-size:11px;
    font-weight:700;
    
    
    backdrop-filter:blur(12px);
}

.program-detail-copy h1{
    max-width:900px;
    margin:20px 0 22px;

    line-height:.94;
    
    font-weight:700;
}

.program-detail-copy > p{
    width:100%;
    max-width:720px;



    overflow-wrap:break-word;
}

.program-role-note{
    margin-top:24px;


}

.program-role-switch{
    margin-top:30px;
    padding:6px;
    width:max-content;
    max-width:100%;
    border:1px solid rgba(255,255,255,.16);
    border-radius:999px;
    background:rgba(255,255,255,.12);
    backdrop-filter:blur(14px);
}

.program-role-switch button{
    min-height:38px;
    padding:0 16px;
    border:0;
    border-radius:999px;
    background:transparent;
    color:rgba(255,255,255,.78);
    font:inherit;
    font-size:13px;
    font-weight:700;
    cursor:pointer;
}

.program-role-switch button.active{
    background:#fff;
    color:#101016;
}

.program-action-panel{
    padding:var(--card-pad);
    border:1px solid rgba(255,255,255,.16);
    border-radius:var(--radius-card);
    background:rgba(255,255,255,.94);
    color:#101016e6;
    box-shadow:0 24px 70px rgba(0,0,0,.22);
}

.program-action-label{
    display:block;
    margin-bottom:12px;
    color:#1d9bf0;
    font-size:12px;
    font-weight:700;
    
    
}

.program-action-panel strong{
    display:block;
    margin-bottom:12px;
    font-size:clamp(28px, 3.5vw, 42px);
    line-height:1;
    
}

.program-action-panel p{
    margin-bottom:22px;


}

.program-action-panel a,
.program-action-panel button{
    width:100%;
    text-align:center;
}



.program-summary{
    padding-top:var(--section-y-tight);
    padding-bottom:0;
}

.program-summary-head{
    display:flex;
    justify-content:space-between;
    gap:24px;
    align-items:end;
    margin-bottom:28px;
}

.program-summary-head h2{
    margin-bottom:0;
    line-height:1;
}

.program-summary-head > p{
    max-width:440px;

    text-align:right;

}

.program-metric-grid{
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:var(--grid-gap);
}

.program-metric-grid article,
.program-section-block,
.program-sticky-inner,
.program-compare-picker,
.program-compare-table{
    border:1px solid rgba(0,0,0,.06);
    border-radius:var(--radius-card);
    background:#fff;
}

.program-metric-grid article{
    padding:var(--card-pad);
}

.program-metric-grid span,
.program-field-list span,
.program-guideline-grid span,
.compare-row > span{
    display:block;
    margin-bottom:8px;
    color:#1d9bf0;
    font-size:12px;
    font-weight:700;
    
    
}

.program-metric-grid strong{
    display:block;
    margin-bottom:8px;
    color:#101016e6;
    font-size:clamp(30px, 3vw, 42px);
    line-height:1;
    ;
}

.program-detail-body{
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(270px, 340px);
    gap:var(--grid-gap);
    align-items:start;
    padding-top:var(--section-y-tight);
    padding-bottom:0;
}

.program-detail-main{
    display:grid;
    gap:var(--grid-gap);
}

.program-section-block{
    padding:var(--card-pad);
}

.program-section-heading{
    margin-bottom:24px;
}

.program-section-heading h2{
    margin-bottom:0;
    line-height:1;
}

.program-check-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:12px;
    margin-bottom:24px;
}

.program-check-item{
    display:grid;
    grid-template-columns:18px minmax(0, 1fr);
    gap:14px;
    padding:18px;
    border-radius:18px;
    background:#f7f7f5;
}

.program-check-item > span{
    width:18px;
    height:18px;
    margin-top:4px;
    border-radius:50%;
    background:#1fbf75;
    box-shadow:inset 0 0 0 5px rgba(255,255,255,.7);
}

.program-check-item.neutral > span{
    background:#1d9bf0;
}

.program-check-item.warn > span{
    background:#d79a2b;
}

.program-check-item strong{
    display:block;
    margin-bottom:4px;
    font-size:16px;
    line-height:1.25;
}

.program-field-list,
.program-guideline-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:12px;
}

.program-field-list div,
.program-guideline-grid article{
    padding:18px;
    border-radius:18px;
    background:#f7f7f5;
}

.program-field-list strong,
.program-guideline-grid strong{
    display:block;
    color:#101016e6;
    font-size:18px;
    line-height:1.35;
}

.program-service-layout{
    display:grid;
    grid-template-columns:minmax(220px, .8fr) minmax(0, 1.2fr);
    gap:12px;
}

.program-map-card{
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    min-height:260px;
    padding:24px;
    border-radius:22px;
    background:linear-gradient(135deg, #12324f, #1d9bf0 58%, #1fbf75);
    color:#fff;
}

.program-map-card span{
    font-size:64px;
    font-weight:700;
    line-height:1;
    
}

.program-map-card strong{
    font-size:22px;
    line-height:1.25;
    
}

.program-field-list.compact{
    grid-template-columns:1fr;
}

.program-locked{
    color:#1d9bf0 !important;
}

.program-login-gate{
    display:flex;
    justify-content:space-between;
    gap:24px;
    align-items:center;
    background:#101016e6;
    color:#fff;
}

.program-login-gate h2{
    margin-bottom:10px;
}

.program-login-gate p:not(.sec-label){
    max-width:620px;


}

.program-login-gate .primary-btn{
    flex:0 0 auto;
}

.program-sticky-card{
    position:sticky;
    top:116px;
}

.program-sticky-inner{
    padding:var(--card-pad);
    background:#f7f7f5;
}

.program-sticky-inner h3{
    margin-bottom:18px;
    font-size:30px;
    line-height:1;
    
}

.program-sticky-inner ol{
    display:grid;
    gap:12px;
    margin:0 0 24px;
    padding-left:20px;
    color:#4d4d4d;
}

.program-sticky-inner li{
    padding-left:4px;
}

.program-sticky-inner .primary-btn{
    width:100%;
    text-align:center;
}

.program-compare{
    padding-top:var(--section-y-tight);
    padding-bottom:0;
}

.program-compare-picker{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:16px;
    margin-bottom:18px;
    padding:16px;
    background:#f7f7f5;
}

.compare-picker label{
    display:block;
    margin:0 0 8px 4px;
    color:#4d4d4d;
    font-size:12px;
    font-weight:700;
    
    
}

.compare-picker input{
    width:100%;
    height:50px;
    padding:0 16px;
    border:1px solid rgba(0,0,0,.08);
    border-radius:999px;
    background:#fff;
    color:#101016e6;
    font:inherit;
}

.compare-options{
    display:grid;
    gap:8px;
    margin-top:10px;
    max-height:220px;
    overflow:auto;
}

.compare-options button{
    padding:13px 14px;
    border:1px solid rgba(0,0,0,.06);
    border-radius:16px;
    background:#fff;
    color:#101016e6;
    text-align:left;
    font:inherit;
    cursor:pointer;
}

.compare-options button.active{
    border-color:rgba(29,155,240,.38);
    background:rgba(29,155,240,.1);
}

.compare-options strong,
.compare-options span{
    display:block;
}

.compare-options strong{
    margin-bottom:2px;
    font-size:14px;
}

.compare-options span{
    color:#1d9bf0;
    font-size:12px;
}

.program-compare-table{
    overflow:hidden;
}

.compare-row{
    display:grid;
    grid-template-columns:minmax(150px, .7fr) repeat(2, minmax(0, 1fr));
    gap:14px;
    align-items:start;
    padding:18px 20px;
    border-top:1px solid rgba(0,0,0,.06);
}

.compare-row:first-child{
    border-top:0;
}

.compare-row.compare-head{
    background:#101016e6;
    color:#fff;
}

.compare-row.compare-head span{
    color:rgba(255,255,255,.62);
}

.compare-row strong{
    font-size:16px;
    line-height:1.45;
}

@media(max-width:1100px){
    .program-hero,
    .program-toolbar{
        grid-template-columns:1fr 1fr;
    }

    .program-toolbar-group.search{
        grid-column:span 2;
    }

    .program-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .program-detail-shell,
    .program-detail-body,
    .program-service-layout{
        grid-template-columns:1fr;
    }

    .program-action-panel{
        max-width:520px;
    }

    .program-sticky-card{
        position:static;
    }

    .program-metric-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }
}

@media(max-width:760px){
    .program-hero{
        grid-template-columns:1fr;
        padding-top:11rem;
    }

    .program-hero-copy h1{

        
}

    .program-toolbar,
    .program-grid,
    .program-card.featured{
        grid-template-columns:1fr;
    }

    .program-toolbar-group.search{
        grid-column:auto;
    }

    .program-results-head{
        align-items:flex-start;
        flex-direction:column;
    }

    .program-results-head > p{
        text-align:left;
}

    .program-card.featured{
        display:flex;
    }

    .program-actions,
    .program-cta-actions{
        flex-direction:column;
    }

    

    .program-detail-hero{
        min-height:auto;
    }

    .program-detail-media::after{
        background:linear-gradient(180deg, rgba(16,16,22,.86), rgba(16,16,22,.72));
    }

    .program-detail-shell{
        width:calc(100vw - 40px);
        margin-left:20px;
        margin-right:20px;
        padding-top:11rem;
    }

    .program-detail-copy h1{

        
        overflow-wrap:break-word;
}

    .program-detail-copy,
    .program-action-panel{
        width:100%;
        max-width:100%;
    }

    .program-detail-copy > p{
        max-width:calc(100vw - 40px);
}

    .program-role-switch{
        width:100%;
        border-radius:22px;
    }

    .program-role-switch button{
        flex:1 1 42%;
    }

    .program-summary-head,
    .program-login-gate{
        align-items:flex-start;
        flex-direction:column;
    }

    .program-summary-head > p{
        text-align:left;
}

    .program-metric-grid,
    .program-check-grid,
    .program-field-list,
    .program-guideline-grid,
    .program-compare-picker{
        grid-template-columns:1fr;
    }

    .compare-row{
        grid-template-columns:1fr;
        gap:6px;
    }

    .compare-row > span{
        margin-bottom:2px;
    }
}

@media(max-width:520px){
    .program-detail-shell,
    .program-summary,
    .program-detail-body,
    .program-compare,
    .program-cta{
        width:350px;
        max-width:calc(100% - 40px);
        margin-left:20px;
        margin-right:20px;
    }
}
