:root{
  --green-900:#1F4B73;
  --green-700:#1573C2;
  --green-500:#29A8F7;
  --gold:#F28C45;
  --gold-soft:#FFD28A;
  --accent:#C8501A;
  --red:#F23A3A;
  --ivory:#FFFBF6;
  --ivory-2:#EAF4FC;
  --ink:#14283A;
  --muted:#506274;
  --line:#DCE6EF;
  --serif:'Fraunces',Georgia,serif;
  --sans:'Inter',system-ui,sans-serif;
  --max:1160px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--ivory);line-height:1.65;font-size:17px}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.2;color:var(--green-900)}
h1{font-size:clamp(2.2rem,5vw,3.6rem)}
h2{font-size:clamp(1.7rem,3.2vw,2.4rem);margin-bottom:16px}
h3{font-size:1.25rem;margin-bottom:8px}
p{color:var(--muted)}
.eyebrow{display:inline-block;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:14px}
.eyebrow::before{content:"";display:inline-block;width:28px;height:2px;background:var(--gold);vertical-align:middle;margin-right:10px}

/* header */
header.site{background:var(--ivory);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.nav{display:flex;align-items:center;justify-content:space-between;height:78px}
.brand{display:flex;align-items:center;gap:12px}
.mono{width:44px;height:44px;background:var(--green-700);color:var(--gold-soft);display:grid;place-items:center;font-family:var(--serif);font-weight:700;font-size:1.05rem;border:1px solid var(--gold)}
.brand span{font-family:var(--serif);font-weight:600;color:var(--green-900);font-size:1.1rem;line-height:1.1}
.brand small{display:block;font-family:var(--sans);font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:500}
nav ul{display:flex;gap:30px;list-style:none;align-items:center}
nav a{font-size:.92rem;font-weight:500;color:var(--ink);padding:6px 0;border-bottom:2px solid transparent}
nav a:hover,nav a.active{border-color:var(--gold)}
.menu-btn{display:none;background:none;border:1px solid var(--green-700);padding:8px 12px;font-size:.9rem;color:var(--green-700);cursor:pointer}

/* buttons */
.btn{display:inline-block;padding:14px 28px;font-weight:600;font-size:.92rem;border:1px solid var(--green-700);background:var(--green-700);color:var(--ivory);cursor:pointer;font-family:var(--sans);transition:.2s}
.btn:hover{background:var(--green-900)}
.btn.gold{background:var(--gold);border-color:var(--gold);color:var(--green-900)}
.btn.gold:hover{background:var(--gold-soft)}
.btn.ghost{background:transparent;color:var(--green-700)}
.btn.ghost:hover{background:var(--green-700);color:var(--ivory)}
.btn.ghost-light{background:transparent;color:var(--ivory);border-color:var(--gold-soft)}
.btn.ghost-light:hover{background:var(--gold);color:var(--green-900)}

/* hero */
.hero{background:linear-gradient(135deg,#0A2F52 0%,#12589A 100%);color:var(--ivory);padding:110px 0 100px;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;right:-120px;top:-120px;width:420px;height:420px;border:1px solid rgba(255,210,138,.3);border-radius:50%}
.hero h1{color:var(--ivory);max-width:820px}
.hero p{color:#cfe3f5;max-width:620px;margin:22px 0 34px;font-size:1.12rem}
.hero .eyebrow,.cta .eyebrow{color:var(--gold-soft)}
.hero .actions{display:flex;gap:14px;flex-wrap:wrap}
.page-hero{padding:80px 0 70px}

/* sections */
section.block{padding:90px 0}
section.alt{background:var(--ivory-2)}
.lead{font-size:1.1rem;max-width:680px}
.grid{display:grid;gap:28px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.card{background:#fff;border:1px solid var(--line);padding:32px;transition:.2s}
.card:hover{border-color:var(--gold);transform:translateY(-3px)}
.card .num{font-family:var(--serif);color:var(--gold);font-size:1.6rem;margin-bottom:10px}
.stats{background:var(--green-700);color:var(--ivory);padding:56px 0}
.stats .grid{text-align:center}
.stat b{display:block;font-family:var(--serif);font-size:2.6rem;color:#FFE2A8;font-weight:600}
.stat span{font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;color:#cfe3f5}
.split{display:grid;grid-template-columns:1fr;gap:30px;align-items:start}
.imgbox{background:var(--ivory-2);border:1px solid var(--line);aspect-ratio:4/3;display:grid;place-items:center;color:var(--muted);font-size:.85rem;text-align:center;padding:20px;position:relative}
.imgbox::before{content:"";position:absolute;inset:10px;border:1px solid var(--gold-soft)}
.pillar{border-top:3px solid var(--gold);padding-top:18px}
.values li{list-style:none;padding:14px 0;border-bottom:1px solid var(--line)}
.values strong{font-family:var(--serif);color:var(--green-900)}
.cta{background:var(--green-900);color:var(--ivory);text-align:center;padding:80px 0}
.cta h2{color:var(--ivory)}
.cta p{color:#cfe3f5;margin:0 auto 28px;max-width:560px}

/* program detail */
.program{display:grid;grid-template-columns:90px 1fr;gap:28px;padding:44px 0;border-bottom:1px solid var(--line)}
.program:last-child{border:none}
.program .big{font-family:var(--serif);font-size:3rem;color:var(--gold);line-height:1}
.program ul{margin:14px 0 0 18px;color:var(--muted)}

/* forms */
form{display:grid;gap:16px}
label{font-size:.85rem;font-weight:600;color:var(--green-900)}
input,select,textarea{width:100%;padding:13px 14px;border:1px solid var(--line);background:#fff;font-family:var(--sans);font-size:.95rem;color:var(--ink);margin-top:6px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--gold);border-color:var(--gold)}
textarea{min-height:130px;resize:vertical}
.tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:28px}
.tab{padding:12px 24px;background:none;border:none;font-family:var(--sans);font-weight:600;color:var(--muted);cursor:pointer;border-bottom:3px solid transparent}
.tab.on{color:var(--green-900);border-color:var(--gold)}
.panel{display:none}.panel.on{display:block}
.ok{display:none;background:#e6f3fd;border:1px solid var(--green-500);padding:14px;color:var(--green-900);font-size:.92rem}
.info p{margin-bottom:14px}.info b{color:var(--green-900);display:block;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase}

/* footer */
footer.site{background:var(--green-900);border-top:5px solid;border-image:linear-gradient(90deg,#29A8F7,#FFB45E,#F23A3A) 1;color:#cfe3f5;padding:64px 0 28px}
footer .cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}
footer h4{font-family:var(--serif);color:var(--gold-soft);margin-bottom:14px;font-weight:600}
footer p,footer a{color:#cfe3f5;font-size:.92rem}
footer li{list-style:none;margin-bottom:8px}
footer a:hover{color:var(--gold-soft)}
footer .legal{border-top:1px solid rgba(255,210,138,.25);margin-top:40px;padding-top:20px;font-size:.8rem}

@media(max-width:860px){
  .g2,.g3,.g4,.split,footer .cols{grid-template-columns:1fr}
  .split{gap:30px}
  .menu-btn{display:block}
  nav ul{display:none;position:absolute;top:78px;left:0;right:0;background:var(--ivory);flex-direction:column;padding:20px 24px;border-bottom:1px solid var(--line);align-items:flex-start;gap:16px}
  nav ul.open{display:flex}
  .program{grid-template-columns:1fr;gap:10px}
  .g4.stat-grid{grid-template-columns:1fr 1fr}
}


/* Program photo cards */
.pcard {
  background: #fff;
  box-shadow: 0 6px 24px rgba(10, 47, 82, .08);
  overflow: hidden;
  transition: .2s;
}

.pcard:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 30px rgba(10, 47, 82, .14);
}

/* Fixed image size for all program cards */
.photo {
  height: 260px;
  width: 100%;
  background: var(--ivory-2);
  position: relative;
  display: grid;
  place-items: center;
  overflow: hidden;
}

.photo::after {
  content: "Add photo: images/";
  position: absolute;
  color: var(--muted);
  font-size: .8rem;
}

.photo img {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Program cards: 3 per row, last row centred */
.pcards {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 28px;
}

.pcards .pcard {
  flex: 0 0 calc((100% - 56px) / 3);
  min-width: 0;
}

.pcards .photo {
  height: 260px;
  min-height: 260px;
}

.pcards .photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.pbody {
  padding: 26px 28px 30px;
}

.pbody h3 {
  font-size: 1.3rem;
}

/* Tablet: 2 cards per row */
@media (max-width: 980px) {
  .pcards .pcard {
    flex: 0 0 calc((100% - 28px) / 2);
  }
}

/* Mobile: 1 card per row */
@media (max-width: 620px) {
  .pcards .pcard {
    flex: 0 0 100%;
  }
}


/* logo */
.logo{height:52px;width:auto;display:block}
.card .num,.program .big{color:var(--gold)}
footer .eyebrow{color:var(--gold-soft)}
.btn.gold{color:var(--green-900)}

/* ---- light pastel theme overrides ---- */
.hero{background:linear-gradient(135deg,#DDF0FD 0%,#FFF1E0 62%,#FFE4E1 100%);color:var(--ink)}
.hero h1{color:var(--green-900)}
.hero p{color:var(--muted)}
.hero .eyebrow,.cta .eyebrow{color:var(--accent)}
.hero::after{border-color:rgba(242,140,69,.35)}
.hero .btn.ghost-light{color:var(--green-700);border-color:var(--green-700)}
.hero .btn.ghost-light:hover{background:var(--green-700);color:#fff}

.stats{background:#E3F2FD;color:var(--ink)}
.stat b{color:var(--green-700)}
.stat span{color:var(--muted)}

.cta{background:linear-gradient(135deg,#FFEBDD 0%,#FFE3E1 100%);color:var(--ink)}
.cta h2{color:var(--green-900)}
.cta p{color:var(--muted)}

footer.site{background:#EAF4FC;color:var(--muted)}
footer h4{color:var(--green-900)}
footer p,footer a{color:#42596E}
footer a:hover{color:var(--accent)}
footer .legal{border-top-color:var(--line)}
footer .eyebrow{color:var(--accent)}

/* hero background photo: add images/hero-bg.jpg */
.hero:not(.page-hero){background:linear-gradient(135deg,rgba(221,240,253,.88) 0%,rgba(255,241,224,.80) 62%,rgba(255,228,225,.72) 100%),url("images/hero-bg.jpeg") center/cover no-repeat,linear-gradient(135deg,#DDF0FD 0%,#FFF1E0 62%,#FFE4E1 100%)}
