@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@600;700;800&display=swap');
:root{
    --green:#079f88;
    --green-dark:#087d70;
    --navy:#092629;
    --ink:#102d30;
    --muted:#647477;
    --pale:#f5f8fb;
    --line:#e8eef0;
    --white:#fff;
    --shadow:0 12px 28px rgba(14,45,48,.09);
}

*{
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
    scroll-padding-top:86px;
}

body{
    margin:0;
    background:#f7f9fc;
    color:var(--ink);
    font-family:'DM Sans',Arial,sans-serif;
    font-size:15px;line-height:1.65;
}

a{
    color:inherit;
    text-decoration:none;
}

button,input,select{
    font:inherit;
}
button{
    cursor:pointer;
}
.container{
    width:min(1180px,92%);
    margin:auto;
}
.site-header{
    height:78px;
    background:#fff;
    position:sticky;
    top:0;
    z-index:1000;
    border-bottom:1px solid #e9eff1;
    box-shadow:0 3px 14px #0b2c3010;
}
.header-inner{
    height:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:22px;
}
.brand{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:275px;
}
.brand img{
    width:48px;
    height:54px;
    object-fit:contain;
}
.brand-title{
    font:700 23px 'Playfair Display',serif;
    line-height:1.1;
}
.brand-sub{
    font-size:10px;
    color:#627477;margin-top:4px;
}
.brand-sub strong{
    color:var(--green-dark);
    letter-spacing:1px;
    margin-left:5px;
}
.nav{
    display:flex;
    align-items:center;
    gap:8px;
}
.nav a{
    font-size:13px;
    font-weight:600;
    color:#506166;
    padding:10px 12px;
    border-radius:9px;
    white-space:nowrap;
    transition:.2s;
}
.nav a:hover,.nav a.active{
    background:#e5f7f3;
    color:var(--green-dark);
}
.nav a span{
    margin-right:6px;
    color:#829296;
}
.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;border:0;
    border-radius:10px;
    padding:12px 19px;
    background:var(--green);
    color:white;
    font-size:13px;
    font-weight:700;
    box-shadow:0 5px 12px #079f8826;
    transition:.2s;
}
.btn:hover{
    background:var(--green-dark);
    transform:translateY(-1px);
}
.menu-toggle{
    display:none;
    background:#e7f7f3;
    border:0;
    border-radius:8px;
    padding:9px 12px;
    color:var(--green-dark);
}
.hero{
    position:relative;
    min-height:435px;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;background:#092a27;
    color:#fff;
}
.hero-slide{
    position:absolute;
    inset:0;
    background-size:cover;
    background-position:center;
    opacity:0;
    transition:opacity 1s ease;
}
.hero-slide:after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(2,28,25,.76),rgba(2,28,25,.47),rgba(2,28,25,.64));
}
.hero-slide.active{
    opacity:1;
}
.hero-content{
    position:relative;
    z-index:2;
    text-align:center;
    width:min(900px,90%);
    padding:65px 0;
}
.hero h1{
    font:800 clamp(34px,5vw,55px)/1.12 'Playfair Display',serif;
    margin:0 auto 18px;
    max-width:900px;
    color:white;
}
.hero p{
    max-width:650px;
    margin:0 auto 24px;
    color:#e6f3f1;
    font-size:16px;
}
.hero .btn{
    margin-top:8px;
}
.quick-links{
    background:#030708;
    color:#fff;padding:22px 0;
    border-bottom:2px solid #0b5550;
}
.quick-grid{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:14px;
}
.quick-link{display:flex;
    flex-direction:column;
    align-items:center;
    gap:8px;
    text-align:center;
    padding:2px 8px;
    border-radius:12px;
    transition:.2s;
    font-size:11px;
    font-weight:600;
}
.quick-icon{
    display:grid;
    place-items:center;
    width:47px;
    height:47px;
    border:1px solid #087d70;
    background:#092d2b;
    border-radius:50%;
    font-size:20px;
    color:#8be1d0;
    transition:.2s;
}
.quick-link:hover,.quick-link:focus{
    color:#7ce2cf;transform:translateY(-3px);
}
.quick-link:hover .quick-icon,.quick-link:focus .quick-icon{
    background:var(--green);
    color:white;
    box-shadow:0 0 0 5px #079f8820;
}
.stats{
    background:#092629;
    color:#fff;
    padding:22px 0;
}
.stats-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
}
.stat{
    text-align:center;
    border-right:1px solid #244245;
}
.stat:last-child{
    border:0;
}
.stat strong{
    display:block;
    font:800 27px 'Playfair Display',serif;
    color:#15b7a0;
}
.stat span{
    font-size:12px;
    font-weight:600;
}
section{
    padding:72px 0;
}
.section-title{
    text-align:center;
    margin:0 auto 36px;
    max-width:780px;
}
.eyebrow{
    font-size:11px;
    letter-spacing:1.5px;
    text-transform:uppercase;
    color:var(--green-dark);
    font-weight:800;
}
.section-title h2,.page-heading h1{
    font:800 clamp(28px,4vw,39px)/1.18 'Playfair Display',serif;
    margin:5px 0 12px;
    color:#102d30;
}
.section-title p,.page-heading p{
    color:var(--muted);
    font-size:14px;
    margin:0 auto;
    max-width:720px;
}
.welcome-grid{
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:48px;
    align-items:center;
}
.welcome-copy h2{
    font:700 31px/1.2 'Playfair Display',serif;
    margin:0 0 17px;
}
.welcome-copy p{
    color:#627174;
    font-size:13px;
}
.photo-frame{
    border:3px solid #b8e6db;
    border-radius:17px;
    overflow:hidden;
    box-shadow:var(--shadow);
}
.photo-frame img{
    display:block;
    width:100%;
    height:300px;
    object-fit:cover;
    transition:transform .45s ease;
}
.photo-frame:hover img{
    transform:scale(1.06);
}
.program-section{
    background:#f0f4fa;
}
.program-tabs{
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:7px;
    margin:-3px auto 24px;
}
.program-tab,.filter-btn{
    border:1px solid #edf0f3;
    background:white;
    color:#33494c;
    border-radius:9px;
    padding:10px 13px;
    font-size:12px;
    font-weight:700;
    transition:.2s;
}
.program-tab:hover,.program-tab.active,.filter-btn:hover,.filter-btn.active{
    background:var(--green);
    border-color:var(--green);
    color:white;
}
.program-card{
    display:grid;
    grid-template-columns:1.2fr .8fr;
    background:#fff;
    border:1px solid #e5ebef;
    border-radius:15px;
    overflow:hidden;
    box-shadow:0 3px 12px #102d3008;
}
.program-info{
    padding:27px;
}
.program-info h3{
    font:700 23px 'Playfair Display',serif;margin:0 0 4px;
}
.program-info .age{
    color:var(--green-dark);
    font-weight:700;
    font-size:12px;
}
.program-info p,.program-info li{
    font-size:13px;
    color:#647477;
}
.program-info ul{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:5px;
    padding-left:18px;
}
.program-image{
    min-height:310px;
}
.program-image img{
    width:100%;
    height:100%;
    min-height:310px;
    object-fit:cover;
    display:block;
}
.cta-band{
    background:var(--navy);
    color:white;
    text-align:center;
    padding:58px 0;
}
.cta-band h2{
    font:800 clamp(28px,4vw,40px)/1.15 'Playfair Display',serif;
    margin:12px auto;
    max-width:800px;
}
.cta-band p{
    color:#c4d7d7;
    max-width:650px;
    margin:0 auto 24px;
    font-size:13px;
}
.btn-row{display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:10px;
}
.btn.light{
    background:#19c56c;
}
.site-footer{
    background:var(--navy);
    color:#d9e4e4;
    border-top:3px solid #0a8e80;
    padding:23px 0 0;
}
.footer-top{
    display:flex;
    align-items:center;
    gap:12px;
    padding-bottom:20px;
}
.footer-top img{
    width:48px;
    height:48px;
    background:white;
    border-radius:9px;
    padding:4px;
}
.footer-top strong{
    font:700 18px 'Playfair Display',serif;
}
.footer-top small{
    display:block;
    color:#6fd4c2;
    font-size:10px;
    letter-spacing:1px;
}
.footer-bottom{
    border-top:1px solid #244245;
    padding:16px 0;
    display:flex;
    justify-content:space-between;
    gap:15px;color:#a8b9bb;
    font-size:11px;
}
.footer-bottom a{
    margin-left:18px;
}
.powered{
    text-align:center;
    background:#ffe500;
    color:#526060;
    padding:5px;
    font-size:10px;
}
.page-heading{
    text-align:center;
    padding:53px 0 34px;
    background:radial-gradient(circle at 8% 20%,#e1f7f2 0,transparent 20%),#f7f9fc;
}
.page-heading h1{
    max-width:850px;
    margin:0 auto 15px;
}
.page-content{
    padding:15px 0 70px;
}
.white-card{
    background:white;
    border:1px solid #edf0f2;
    border-radius:19px;
    padding:28px;
    box-shadow:0 5px 15px #102d3008;
    margin-bottom:24px;
}
.campus-photo{width:100%;
    height:390px;
    object-fit:cover;
    border-radius:13px;
    display:block;
}
.principal h2{
    font:700 27px 'Playfair Display',serif;
    margin:4px 0;
}
.principal .quote{
    font-style:italic;
    color:#4b6668;
}
.accreditation-grid,.pillar-grid,.council-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px;
}
.mini-card{
    background:#fff;
    border:1px solid #e7edf0;
    border-radius:15px;
    padding:22px;
    box-shadow:0 4px 12px #102d3005;
}
.mini-card h3{
    font:700 19px 'Playfair Display',serif;margin:12px 0 7px;
}
.mini-card p{
    font-size:13px;
    color:#647477;
    margin-bottom:0;
}
.mini-icon{
    width:42px;height:42px;
    border-radius:12px;
    background:#e3f7f2;
    color:#078776;
    display:grid;
    place-items:center;
    font-size:20px;
}
.life-hero{
    position:relative;
    max-width:1000px;
    margin:auto;
    border-radius:20px;
    overflow:hidden;
    box-shadow:var(--shadow);
}
.life-hero img{
    display:block;
    width:100%;
    height:380px;
    object-fit:cover;
}
.life-overlay{
    position:absolute;
    inset:0;
    display:flex;
    align-items:flex-end;
    padding:36px;color:white;
    background:linear-gradient(0deg,rgba(2,28,31,.86),transparent 65%);
    transition:.35s;
}
.life-overlay h2{
    font:700 27px 'Playfair Display',serif;margin:0;
}
.life-overlay p{
    margin:4px 0;
}
.life-hero:hover .life-overlay{
    padding-bottom:52px;
}
.council-grid{
    grid-template-columns:repeat(4,1fr);
}
.council-card{
    background:#fff;
    border:1px solid #e7edf0;
    border-radius:16px;
    padding:20px;
}
.council-card h3{
    font-size:16px;
    margin:12px 0 6px;
}
.council-card p{
    font-size:12px;
    color:#657578;
}
.safe-band{
    background:var(--navy);
    color:white;
    border-radius:20px;
    padding:28px;
}
.safe-band h2{
    font:700 28px 'Playfair Display',serif;
    margin:0 0 10px;
}
.safe-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;
    margin-top:20px;
}
.safe-grid p{
    font-size:12px;
    color:#c1d1d1;
}
.event-filters{
    display:flex;
    justify-content:center;
    flex-wrap:wrap;gap:8px;
    margin:0 0 30px;
}
.events-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px;
}
.event-card{
    background:#fff;
    border:1px solid #e6ecef;
    border-radius:16px;
    overflow:hidden;
    box-shadow:0 4px 12px #102d3008;
    transition:transform .25s,box-shadow .25s;
}
.event-card:hover{
    transform:translateY(-4px);
    box-shadow:var(--shadow);
}
.event-image{
    height:190px;
    overflow:hidden;
    position:relative;
}
.event-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .45s;
}
.event-card:hover .event-image img{
    transform:scale(1.08);
}
.event-label{
    position:absolute;
    top:12px;
    left:12px;
    background:#073a37df;
    color:#fff;
    border-radius:20px;
    padding:4px 10px;
    font-size:10px;
    font-weight:800;
    text-transform:uppercase;
}
.event-body{
    padding:18px;
}
.event-date{
    font-size:11px;
    color:var(--green-dark);
    font-weight:800;
}
.event-body h3{
    font:700 18px/1.25 'Playfair Display',serif;
    margin:8px 0;
    transition:color .2s;
}
.event-card:hover h3{
    color:var(--green-dark);
}
.event-body p{
    font-size:12px;
    color:#647477;
}
.event-meta{
    font-size:11px;
    color:#718083;
    border-top:1px solid #eef1f3;
    padding-top:10px;
    margin-top:10px;
}
.event-actions{
    display:flex;
    gap:8px;
    margin-top:14px;
}
.event-actions button{
    flex:1;
    padding:9px 7px;
    border-radius:8px;
    border:1px solid #e7eef0;
    background:white;
    font-size:11px;
    font-weight:700;
}
.event-actions .save-btn{
    background:var(--green);
    border-color:var(--green);
    color:white;
}
.event-actions .save-btn.saved{
    background:#e6f7f2;
    color:var(--green-dark);
}
.form-shell{
    max-width:720px;
    margin:0 auto 70px;background:white;
    border-radius:23px;
    overflow:hidden;
    box-shadow:0 16px 30px #102d3014;
    border:1px solid #edf0f2;
}
.form-head{
    background:var(--navy);
    color:white;
    text-align:center;
    padding:36px 22px;
}
.form-head h1{
    font:800 36px 'Playfair Display',serif;
    margin:10px 0;
}
.form-head p{
    color:#c7d7d8;
    margin:0;
}
.form-body{
    padding:32px 40px;
}
.field{
    margin-bottom:21px;
}
.field label{
    display:block;
    font-size:13px;
    font-weight:800;
    margin-bottom:8px;
}
.field input,.field select{
    width:100%;
    padding:14px 15px;
    border:1px solid #e5eaef;
    background:#f8fafc;
    border-radius:11px;
    outline:none;
    color:#243c3f;
}
.field input:focus,.field select:focus{
    border-color:var(--green);
    box-shadow:0 0 0 3px #079f881c;
}
.submit-btn{
    width:100%;padding:16px;
    font-size:15px;
}
.form-note{
    text-align:center;
    font-size:12px;
    color:#7a898b;
    margin-top:20px;
}
.form-message{
    display:none;
    padding:13px;
    background:#e6f8f1;
    color:#087d70;
    border-radius:10px;
    margin-bottom:15px;
    font-size:13px;
}
.terms-wrap{
    max-width:920px;
    margin:auto;
}
.terms-header{
    display:flex;
    align-items:center;
    gap:14px;
}
.terms-header img{
    width:54px;
    height:60px;
}
.terms-header h1{
    font:700 28px 'Playfair Display',serif;
    margin:0;
}
.terms-header p{
    margin:2px 0;
    color:#6b7b7e;
    font-size:12px;
}
.terms-number{
    display:inline-grid;
    place-items:center;
    width:35px;
    height:35px;
    background:#e4f7f2;
    color:var(--green-dark);
    border-radius:10px;
    font-weight:800;
    margin-right:10px;
}
.back-link{
    display:inline-block;
    margin:10px 0 22px;
    color:var(--green-dark);
    font-weight:700;
    font-size:13px;
}


@media(max-width:900px){
    .brand
    {min-width:0}
    .brand-title
    {font-size:18px}
    .nav
    {gap:0}
    .nav a
    {padding:9px 7px;
        font-size:12px}
    .admission-top
    {display:none}
    .welcome-grid
    {gap:25px}
    .council-grid
    {grid-template-columns:repeat(2,1fr)}
    .events-grid
    {grid-template-columns:repeat(2,1fr)}
}


@media(max-width:680px){
    .site-header
    {height:70px}
    .header-inner
    {position:relative}
    .brand img
    {width:39px;height:45px}
    .brand-title
    {font-size:16px}
    .brand-sub
    {font-size:8px}
    .menu-toggle
    {display:block}
    .nav{display:none;
        position:absolute;
        top:69px;
        left:0;
        right:0;
        background:white;
        padding:12px;
        border:1px solid #e8eef0;
        border-radius:0 0 14px 14px;
        box-shadow:var(--shadow);
        flex-direction:column;
        align-items:stretch}
        .nav.open
        {display:flex}
        .nav a
        {padding:12px}
        .header-inner>.btn
        {display:none}
        .hero
        {min-height:380px}
        .hero h1
        {font-size:34px}
        .hero p
        {font-size:13px}
        .quick-grid
        {grid-template-columns:repeat(3,1fr);row-gap:18px}
        .quick-link
        {font-size:10px}
        .quick-icon
        {width:43px;
            height:43px}
        .stats-grid
        {grid-template-columns:repeat(2,1fr);gap:18px}
        .stat:nth-child(2)
        {border:0}
        .stat strong
        {font-size:24px}
        section
        {padding:50px 0}
        .welcome-grid,.program-card
        {grid-template-columns:1fr}
        .welcome-grid
        {gap:24px}
        .welcome-copy h2
        {font-size:27px}
        .photo-frame img
        {height:260px}
        .program-info
        {padding:22px}
        .program-image,.program-image img
        {min-height:230px;height:230px}
        .section-title
        {margin-bottom:26px}
        .cta-band
        {padding:45px 0}
        .footer-bottom
        {flex-direction:column}
        .footer-bottom a
        {margin:0 14px 0 0}
        .page-heading
        {padding:40px 0 28px}
        .white-card
        {padding:20px}
        .campus-photo
        {height:240px}
        .accreditation-grid,.pillar-grid,.council-grid,.safe-grid,.events-grid
        {grid-template-columns:1fr}
        .life-hero img
        {height:300px}
        .life-overlay
        {padding:20px}
        .form-body
        {padding:25px 20px}
        .form-head h1
        {font-size:29px}
        .terms-header h1
        {font-size:23px}
        .event-image
        {height:210px}
    }
