/* BODY */

body{
    margin:0;
    font-family: Arial, Helvetica, sans-serif;
    background:white;

}

.navbar{
    position:fixed;
    top:0;
    left:0;

    width:100%;
    box-sizing:border-box;

    display:flex;
    justify-content:space-between;
    align-items:center;

    padding:12px 40px;

    background:#205F30;
    box-shadow:0 4px 18px rgba(0,0,0,.15);

    z-index:1000;
}
/* ---------- Left Side ---------- */

.nav-brand{
    display: flex;
    align-items: center;
    gap: 16px;
}

.nav-logo{
    width:85px;
    height:85px;
    object-fit:contain;
    flex-shrink:0;
}

.brand-text{
    display:flex;
    flex-direction:column;
}

.brand-text h2{
    margin:0;
    color:white;
    font-size:1.8rem;
    font-weight:700;
    line-height:1.1;
}

.brand-text p{
    margin-top:4px;
    color:rgba(255,255,255,.8);
    font-size:.8rem;
    letter-spacing:.4px;
}

/* ---------- Right Side ---------- */

.nav-links{
    display:flex;
    align-items:center;

    list-style:none;

    gap:40px;

    margin:0;
    padding:0;
}

.nav-links a{
    color:white;
    text-decoration:none;
    font-weight:600;
    font-size:1rem;

    transition:.25s;
}

.nav-links a:hover{
    opacity:.75;
}

.nav-links a.active{
    border-bottom:2px solid white;
    padding-bottom:4px;
}

/* ---------------- HERO ---------------- */

/* HERO */
.hero h1{

    font-size:72px;

    line-height:1.05;

    margin:20px 0;

    color:#1E6B3B;

}

.hero{

    display:grid;

    grid-template-columns: 1fr 1fr;

    align-items:center;

    gap:70px;

    max-width:1400px;

    margin:auto;

    padding:60px;

    min-height:90vh;

}

.hero-left{

    display:flex;

    flex-direction:column;

    justify-content:center;

}

.hero-right img{

    width:100%;
    height:650px;
    object-fit:cover;
    border-radius:24px;
}

/* Frame the activity below the window, keeping all four children visible. */
.hero-right--classroom{
    position:relative;
    aspect-ratio:800 / 715;
    overflow:hidden;
    border-radius:24px;
}

.hero-right--classroom img{
    position:absolute;
    width:150%;
    max-width:none;
    height:111.888112%;
    left:-25%;
    top:-11.888112%;
    border-radius:0;
}

.description{

    font-size:22px;
    line-height:1.6;
    color:#666;
    max-width:520px;
    margin-top:20px;
}


/* ---------------- Cards ---------------- */
.program-links{

    display:flex;

    gap:20px;

    margin-top:40px;

}

.program-card{

    border-top:5px solid #1E6B3B;

}

.program-card p:last-child{
    margin-top: 28px;
    font-size: .95rem;
    font-weight: 600;
    color: #1E6F43;
    transition: .3s;
}

.program-card:hover p:last-child{
    transform: translateX(6px);
}

.program-card{

    width:280px;

    padding:28px;

    border-radius:18px;

    background:white;

    box-shadow:0 10px 30px rgba(0,0,0,.08);

    transition:.3s;

}

.program-card h3{

    font-size:28px;

    margin-bottom:12px;

}

.program-card p{

    color:#666;

    margin-bottom:18px;

}

.program-card:hover{

    transform:translateY(-8px);

    box-shadow:0 18px 40px rgba(0,0,0,.15);

}

.program-card{

    text-decoration:none;

    color:#222;

}

.program-card span{

    display:block;

    margin-top:20px;

    color:#1E6B3B;

    font-weight:700;

}

/* ---------------- Impact ---------------- */

html{
    scroll-behavior:smooth;
}

.impact{
    padding:88px 60px;
    background:#F7FAF8;
    /* Keep the mint section tucked under the fixed navigation on anchor jumps. */
    scroll-margin-top:100px;
}

.section-intro{
    max-width:760px;
}

.impact-intro-grid{
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(360px, 520px);
    gap:40px;
    align-items:center;
}

.impact-intro-photo{
    height:320px;
    margin:0;
    overflow:hidden;
    box-sizing:border-box;
    border:1px solid #D7E5DA;
    border-top:6px solid #C98C00;
    border-radius:22px;
    background:#fff;
    box-shadow:0 12px 28px rgba(24,79,45,.1);
}

.impact-intro-photo img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:50% 62%;
    filter:brightness(1.08) contrast(1.06) saturate(1.04);
}

.section-intro--centered{
    margin:0 auto;
    text-align:center;
}

.eyebrow,
.section-kicker{
    margin:0 0 14px;
    color:#C98C00;
    font-size:1.4rem;
    font-weight:800;
    letter-spacing:.12em;
    line-height:1.15;
}

.section-intro h2,
.home-apply h2{
    margin:0;
    color:#1E6B3B;
    font-size:clamp(2.2rem, 4vw, 3.25rem);
    line-height:1.15;
}

.section-intro > p:last-child{
    margin:20px 0 0;
    color:#536057;
    font-size:1.1rem;
    line-height:1.7;
}

.impact-data-heading{
    max-width:980px;
    margin:48px 0 0;
    padding:30px 34px;
    border-left:6px solid #C98C00;
    border-radius:0 18px 18px 0;
    background:rgba(255,255,255,.72);
    box-shadow:0 10px 24px rgba(24,79,45,.06);
}

.impact-data-heading h3{
    margin:0;
    color:#1E6B3B;
    font-size:clamp(1.8rem, 3vw, 2.35rem);
    line-height:1.15;
}

.impact-data-heading > p:last-child{
    margin:14px 0 0;
    color:#536057;
    font-size:1.05rem;
    line-height:1.65;
}

.impact-metrics{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:1px;
    margin:30px 0 72px;
    overflow:hidden;
    border-radius:18px;
    background:rgba(255,255,255,.3);
}

.impact-metric{
    min-height:150px;
    padding:28px 20px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    background:#2A7048;
    color:white;
    text-align:center;
    text-decoration:none;
    transition:background .2s ease, transform .2s ease;
}

.impact-metric:hover,
.impact-metric:focus-visible{
    background:#205F30;
    transform:translateY(-3px);
}

.impact-metric strong{
    font-size:clamp(2.5rem, 4vw, 3.5rem);
    line-height:1;
}

.impact-metric span{
    margin-top:12px;
    font-weight:600;
}

.impact-metric small{
    margin-top:8px;
    color:rgba(255,255,255,.78);
    font-size:.78rem;
    line-height:1.35;
}

.impact-report-source{
    max-width:1000px;
    margin:-52px auto 72px;
    color:#5D6D62;
    font-size:.84rem;
    line-height:1.5;
    text-align:center;
}

.impact-report-source a{
    color:#1E6B3B;
    font-weight:700;
}

.impact-survey{
    margin:0 auto 80px;
    padding:64px 40px;
    border-radius:22px;
    background:#EAF4EC;
}

.impact-survey-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:20px;
    max-width:900px;
    margin:40px auto 0;
}

.impact-survey-card{
    display:flex;
    min-height:210px;
    padding:30px;
    flex-direction:column;
    border:1px solid #D7E5DA;
    border-top:5px solid #C98C00;
    border-radius:16px;
    background:white;
    color:#34483c;
    box-shadow:0 10px 24px rgba(24,79,45,.08);
    text-decoration:none;
    transition:transform .2s ease, box-shadow .2s ease;
}

.impact-survey-card:hover,
.impact-survey-card:focus-visible{
    transform:translateY(-4px);
    box-shadow:0 16px 30px rgba(24,79,45,.14);
}

.impact-survey-card strong{
    color:#1E6B3B;
    font-size:clamp(2.6rem, 5vw, 3.5rem);
    line-height:1;
}

.impact-survey-card span{
    margin-top:16px;
    font-size:1.05rem;
    font-weight:600;
    line-height:1.5;
}

.impact-survey-card small{
    margin-top:auto;
    padding-top:20px;
    color:#65736a;
    font-size:.78rem;
    line-height:1.4;
}

.impact-gallery-block{
    padding-top:20px;
}

.impact-gallery{
    display:grid;
    grid-template-columns:1.15fr 1fr 1fr;
    gap:22px;
    max-width:1280px;
    margin:42px auto 76px;
}

.impact-photo{
    position:relative;
    height:430px;
    margin:0;
    overflow:hidden;
    border-radius:18px;
    background:white;
    box-shadow:0 14px 34px rgba(24,79,45,.11);
}

.impact-photo img,
.impact-photo--tall img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}

.impact-photo figcaption{
    position:absolute;
    right:0;
    bottom:0;
    left:0;
    margin:0;
    padding:42px 18px 18px;
    background:linear-gradient(transparent, rgba(9, 41, 24, .82));
    color:white;
    font-size:.95rem;
    font-weight:600;
    line-height:1.45;
}

.impact-news{
    padding-top:12px;
}

.featured-video{
    display:grid;
    grid-template-columns:minmax(0, .85fr) minmax(0, 1.15fr);
    gap:42px;
    align-items:center;
    max-width:1120px;
    margin:48px auto 64px;
    padding:34px;
    border-radius:18px;
    background:#EAF4EC;
}

.featured-video-copy h3{
    margin:0;
    color:#1E6B3B;
    font-size:clamp(1.7rem, 3vw, 2.35rem);
    line-height:1.2;
}

.featured-video-copy > p:not(.section-kicker):not(.video-prompt){
    margin:18px 0 0;
    color:#536057;
    font-size:1.05rem;
    line-height:1.65;
}

.featured-video-copy .video-prompt{
    margin-top:24px;
    color:#1E6B3B;
    font-size:1rem;
    font-weight:800;
}

.featured-video-media video{
    display:block;
    width:100%;
    aspect-ratio:16 / 9;
    object-fit:cover;
    border-radius:12px;
    background:#143A25;
}

.video-credit{
    margin:10px 0 0;
    color:#5D6D62;
    font-size:.85rem;
    font-style:italic;
    line-height:1.4;
}

.news-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:24px;
    max-width:1280px;
    margin:48px auto 0;
}

.news-card{
    display:flex;
    min-height:220px;
    padding:30px;
    flex-direction:column;
    border:1px solid #DCE8DE;
    border-top:5px solid #F6B40E;
    border-radius:14px;
    background:white;
    color:#1E6B3B;
    box-shadow:0 10px 24px rgba(0,0,0,.05);
    text-decoration:none;
    transition:transform .25s ease, box-shadow .25s ease;
}

.news-card:hover{
    transform:translateY(-5px);
    box-shadow:0 16px 30px rgba(24,79,45,.12);
}

.news-source{
    margin:0 0 16px;
    color:#8A6700;
    font-size:.75rem;
    font-weight:700;
    letter-spacing:1.2px;
}

.news-card h3{
    margin:0;
    color:#1E6B3B;
    font-size:1.35rem;
    line-height:1.35;
}

.news-card > span{
    margin-top:auto;
    padding-top:24px;
    font-weight:700;
}

.home-apply{
    padding:90px 60px;
    background:#1E6B3B;
    color:white;
    text-align:center;
    scroll-margin-top:110px;
}

.home-apply h2{
    color:white;
}

.home-apply p{
    margin:16px 0 32px;
    font-size:1.1rem;
}

.home-apply-links{
    display:flex;
    justify-content:center;
    gap:16px;
    flex-wrap:wrap;
}

.home-apply a{
    padding:14px 22px;
    border-radius:999px;
    background:#F6B40E;
    color:#184F2D;
    font-weight:700;
    text-decoration:none;
}

/* ---------------- Current Apprentices ---------------- */

.resources-page{
    background:#F7FAF8;
    color:#24362c;
}

.resources-hero{
    box-sizing:border-box;
    min-height:500px;
    padding:190px 60px 90px;
    background:#EAF4EC;
    text-align:center;
}

.resources-hero h1{
    max-width:850px;
    margin:0 auto;
    color:#1E6B3B;
    font-size:clamp(2.8rem, 5vw, 4.5rem);
    line-height:1.05;
}

.resources-hero > p:last-child{
    max-width:650px;
    margin:24px auto 0;
    color:#536057;
    font-size:1.15rem;
    line-height:1.65;
}

.resources{
    padding:88px 60px;
    background:white;
}

.resources-intro{
    max-width:700px;
}

.resources-intro--centered{
    margin:0 auto;
    text-align:center;
}

.resources-intro h2,
.resources-faq h2{
    margin:0;
    color:#1E6B3B;
    font-size:clamp(2.2rem, 4vw, 3.25rem);
    line-height:1.15;
}

.resources-intro > p:last-child{
    margin:18px 0 0;
    color:#536057;
    font-size:1.1rem;
    line-height:1.65;
}

.resource-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:26px;
    max-width:1280px;
    margin:44px auto 0;
}

.resource-card{
    padding:38px;
    border:1px solid #D7E5DA;
    border-top:7px solid #1E6B3B;
    border-radius:18px;
    background:#F7FAF8;
    box-shadow:0 12px 30px rgba(24,79,45,.08);
}

.resource-card--eeap{
    border-top-color:#C98C00;
}

.resource-program{
    margin:0 0 16px;
    color:#C98C00;
    font-size:.95rem;
    font-weight:800;
    letter-spacing:.1em;
    line-height:1.3;
}

.resource-card h3{
    margin:0;
    color:#1E6B3B;
    font-size:2rem;
    line-height:1.15;
}

.resource-card > p:not(.resource-program):not(.resource-note){
    margin:16px 0 0;
    color:#536057;
    line-height:1.6;
}

.resource-application{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    margin:30px 0;
    padding:24px;
    border-radius:14px;
    background:#1E6B3B;
    color:white;
}

.resource-application p{
    margin:0;
    color:#F4B400;
    font-size:.75rem;
    font-weight:800;
    letter-spacing:.11em;
}

.resource-card .resource-application h4{
    margin:7px 0 5px;
    color:white;
    font-size:1.35rem;
}

.resource-application span{
    color:rgba(255,255,255,.84);
    line-height:1.45;
}

.resource-application a{
    flex:0 0 auto;
    padding:13px 17px;
    border-radius:8px;
    background:#F4B400;
    color:#1E6B3B;
    font-weight:800;
    text-decoration:none;
    white-space:nowrap;
}

.resource-application a:hover,
.resource-application a:focus-visible{
    background:#fff;
}

.resource-card h4{
    margin:30px 0 14px;
    color:#1E6B3B;
    font-size:1.1rem;
}

.resource-list{
    display:grid;
    gap:11px;
    margin:0;
    padding:0;
    list-style:none;
}

.resource-list li{
    display:flex;
    align-items:flex-start;
    gap:10px;
    color:#34483c;
    line-height:1.45;
}

.resource-list li::before{
    content:'→';
    color:#1E6B3B;
    font-weight:800;
}

.resource-document-list{
    display:grid;
    gap:10px;
    margin:0;
    padding:0;
    list-style:none;
}

.resource-document-list a{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:15px 16px;
    border:1px solid #D7E5DA;
    border-radius:12px;
    background:#fff;
    color:#1E6B3B;
    text-decoration:none;
    transition:transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.resource-document-list a:hover,
.resource-document-list a:focus-visible{
    border-color:#C98C00;
    box-shadow:0 8px 18px rgba(24,79,45,.1);
    transform:translateY(-2px);
}

.resource-document-list span{
    display:grid;
    gap:3px;
    color:#1E6B3B;
    font-weight:700;
    line-height:1.3;
}

.resource-document-list small{
    color:#65736a;
    font-size:.8rem;
    font-weight:500;
}

.resource-document-list b{
    flex:0 0 auto;
    color:#C98C00;
    font-size:.83rem;
    white-space:nowrap;
}

.resource-note{
    margin:28px 0 0;
    padding-top:18px;
    border-top:1px solid #D7E5DA;
    color:#65736a;
    font-size:.92rem;
    font-style:italic;
    line-height:1.5;
}

.resources-faq{
    padding:88px 60px 100px;
    background:#EAF4EC;
}

.faq-list{
    display:grid;
    gap:12px;
    max-width:900px;
    margin:40px auto 0;
}

.faq-list details{
    padding:0 24px;
    border:1px solid #D7E5DA;
    border-radius:12px;
    background:white;
}

.faq-list summary{
    padding:21px 30px 21px 0;
    color:#1E6B3B;
    font-size:1.05rem;
    font-weight:700;
    cursor:pointer;
}

.faq-list p{
    margin:0 0 21px;
    color:#536057;
    line-height:1.6;
}

.faq-list a{
    color:#1E6B3B;
    font-weight:700;
}

@media(max-width:900px){
    .impact-intro-grid{
        grid-template-columns:1fr;
        gap:32px;
    }

    .impact-intro-photo{
        height:300px;
        max-width:760px;
    }

    .impact{
        padding:80px 30px;
    }

    .impact-metrics,
    .news-grid{
        grid-template-columns:repeat(2, 1fr);
    }

    .featured-video{
        grid-template-columns:1fr;
    }

    .impact-gallery{
        grid-template-columns:1fr 1fr;
    }

    .impact-photo--tall{
        grid-column:span 2;
    }

    .impact-photo--tall img{
        height:100%;
    }

    .resource-grid{
        grid-template-columns:1fr;
    }

    .impact-survey-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:600px){
    .hero,
    .impact,
    .home-apply{
        padding-right:24px;
        padding-left:24px;
    }

    .impact-metrics,
    .news-grid,
    .impact-gallery{
        grid-template-columns:1fr;
    }

    .featured-video{
        gap:26px;
        padding:24px;
    }

    .impact-photo--tall{
        grid-column:auto;
    }

    .impact-photo img,
    .impact-photo--tall img{
        height:100%;
    }

    .impact-photo{
        height:340px;
    }

    .section-kicker{
        font-size:1.05rem;
    }

    .resources-hero,
    .resources,
    .resources-faq{
        padding-right:24px;
        padding-left:24px;
    }

    .resources-hero{
        min-height:440px;
        padding-top:165px;
        padding-bottom:70px;
    }

    .resource-card{
        padding:28px 24px;
    }

    .resource-application{
        align-items:flex-start;
        flex-direction:column;
    }
}

.program-partners{
    max-width:1280px;
    margin:84px auto 0;
    padding:72px 40px;
    border-radius:24px;
    background:#fff;
    box-shadow:0 16px 38px rgba(24,79,45,.08);
}

.partner-grid{
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:16px;
    max-width:1080px;
    margin:36px auto 0;
    padding:0;
    list-style:none;
}

.partner-card{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:170px;
    padding:26px;
    box-sizing:border-box;
    border:1px solid #D7E5DA;
    border-radius:16px;
    background:#F7FAF8;
}

.partner-card img{
    display:block;
    width:100%;
    max-width:175px;
    max-height:108px;
    object-fit:contain;
}

@media(max-width:900px){
    .partner-grid{grid-template-columns:repeat(2, minmax(0, 1fr));}
}
@media(max-width:480px){
    .partner-grid{grid-template-columns:1fr;gap:14px;}
    .partner-card{min-height:136px;}
    .program-partners{margin-top:56px;padding:48px 20px;}
}

/* Phone framework: the navigation becomes a compact two-row header rather
   than trying to fit the desktop links beside the site name. */
@media(max-width:720px){
    .navbar{
        position:static;
        flex-direction:column;
        align-items:stretch;
        gap:10px;
        padding:14px 20px 10px;
    }

    .nav-brand{
        justify-content:center;
        gap:10px;
    }

    .nav-logo{
        width:54px;
        height:54px;
    }

    .brand-text h2{
        font-size:1.3rem;
    }

    .brand-text p{
        margin:2px 0 0;
        font-size:.7rem;
    }

    .nav-links{
        justify-content:flex-start;
        gap:2px;
        width:100%;
        overflow-x:auto;
        padding:0 0 3px;
        scrollbar-width:none;
    }

    .nav-links::-webkit-scrollbar{
        display:none;
    }

    .nav-links li{
        flex:0 0 auto;
    }

    .nav-links a{
        display:block;
        padding:8px 10px;
        font-size:.84rem;
        white-space:nowrap;
    }

    .nav-links a.active{
        padding-bottom:6px;
    }

    .hero{
        grid-template-columns:1fr;
        gap:32px;
        min-height:0;
        padding:48px 24px 56px;
    }

    .hero h1{
        margin:14px 0;
        font-size:clamp(2.55rem, 12vw, 4rem);
    }

    .description{
        font-size:1.08rem;
        line-height:1.55;
    }

    .hero-right img{
        height:330px;
        border-radius:18px;
    }

    .hero-right--classroom img{
        height:111.888112%;
        border-radius:0;
    }

    .hero-right--classroom{
        border-radius:18px;
    }

    .program-links{
        flex-direction:column;
        gap:16px;
        margin-top:30px;
    }

    .program-card{
        width:auto;
        padding:24px;
    }

    .impact{
        padding:64px 24px;
        scroll-margin-top:0;
    }

    .section-intro h2,
    .home-apply h2,
    .resources-intro h2,
    .resources-faq h2{
        font-size:clamp(2rem, 9vw, 2.75rem);
    }

    .impact-metrics{
        grid-template-columns:repeat(2, 1fr);
        margin:36px 0 56px;
    }

    .impact-metric{
        min-height:132px;
        padding:24px 14px;
    }

    .impact-metric strong{
        font-size:2.5rem;
    }

    .impact-data-heading{
        margin-top:36px;
        padding:24px 22px;
    }

    .impact-intro-photo{
        height:260px;
        border-radius:18px;
    }

    .impact-metric small{
        font-size:.72rem;
    }

    .impact-report-source{
        margin:-38px 0 56px;
        text-align:left;
    }

    .impact-survey{
        margin-bottom:56px;
        padding:48px 20px;
    }

    .impact-survey-card{
        min-height:0;
        padding:26px 22px;
    }

    .impact-gallery{
        gap:16px;
        margin:32px auto 56px;
    }

    .impact-photo{
        height:300px;
    }

    .impact-photo--tall{
        grid-column:auto;
    }

    .featured-video{
        padding:26px 22px;
        border-radius:18px;
    }

    .news-card{
        min-height:185px;
        padding:24px;
    }

    .home-apply{
        padding:64px 24px;
        scroll-margin-top:0;
    }

    .home-apply-links{
        align-items:stretch;
        flex-direction:column;
    }

    .home-apply a{
        text-align:center;
    }

    .resources-hero{
        min-height:0;
        padding:68px 24px 64px;
    }

    .resources-hero h1{
        font-size:clamp(2.45rem, 11vw, 3.6rem);
    }

    .resources,
    .resources-faq{
        padding:64px 24px;
    }

    .faq-list details{
        padding:0 18px;
    }
}
