/* ============================================================
   ETHICS & INTEGRITY INSTITUTE — design tokens
   Color:  deep indigo-purple (brand), magenta-purple, mustard gold accent
   Type:   Fraunces (display/serif) + Inter (body/UI)
   Layout: editorial / certificate-inspired, hairline rules, generous space
   ============================================================ */

:root{
  --purple-950:#241A3D;
  --purple-900:#33234F;
  --purple-800:#402C63;
  --purple-700:#4E3378;
  --purple-600:#623E8C;
  --purple-500:#7A4A96;
  --magenta-600:#7C3B84;

  --gold-500:#E3A22E;
  --gold-600:#C88A22;
  --gold-100:#FBEBD1;

  --cream:#FAF7F1;
  --paper:#FFFFFF;
  --ink:#211A33;
  --ink-soft:#544B6B;
  --line:rgba(33,26,51,0.12);
  --line-light:rgba(255,255,255,0.18);

  --font-display:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-body:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;

  --container:1240px;
  --radius-sm:4px;
  --radius-md:10px;

  --shadow-card:0 18px 40px -22px rgba(36,26,61,0.35);
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--cream);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
button{font-family:inherit;cursor:pointer;}
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:700;
  line-height:1.15;
  margin:0 0 .5em;
  color:var(--purple-950);
  letter-spacing:-0.02em;
}
p{margin:0 0 1em;color:var(--ink-soft);}
.section-inner{
  max-width:var(--container);
  margin:0 auto;
  padding:0 32px;
}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
}

/* ---------- focus visibility ---------- */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline:2px solid var(--gold-500);
  outline-offset:3px;
}

/* ---------- eyebrow / typography helpers ---------- */
.eyebrow{
  font-family:var(--font-body);
  font-size:13px;
  font-weight:600;
  color:var(--gold-600);
  letter-spacing:.04em;
  margin:0 0 12px;
  position:relative;
  padding-left:28px;
}
.eyebrow::before{
  content:"";
  position:absolute;
  left:0; top:50%;
  width:18px; height:2px;
  background:var(--gold-500);
  transform:translateY(-50%);
}
.eyebrow--center{text-align:center;padding-left:0;display:flex;align-items:center;justify-content:center;gap:10px;}
.eyebrow--center::before{position:static;transform:none;}
.eyebrow--light{color:var(--gold-500);}

.text-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-weight:600;
  color:var(--purple-800);
  border-bottom:1px solid var(--purple-800);
  padding-bottom:2px;
  transition:gap .25s var(--ease), color .25s var(--ease);
}
.text-link i{font-size:12px;transition:transform .25s var(--ease);}
.text-link:hover{gap:12px;color:var(--gold-600);border-color:var(--gold-600);}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:13px 26px;
  border-radius:3px;
  font-weight:600;
  font-size:14.5px;
  border:1px solid transparent;
  transition:transform .2s var(--ease), background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), box-shadow .25s var(--ease);
  white-space:nowrap;
}
.btn--lg{padding:16px 32px;font-size:15px;}
.btn--block{width:100%;}
.btn--gold{
  background:var(--gold-500);
  color:var(--purple-950);
  box-shadow:0 12px 24px -12px rgba(227,162,46,.65);
}
.btn--gold:hover{background:var(--gold-600); transform:translateY(-2px);}
.btn--ghost{
  background:transparent;
  color:var(--purple-900);
  border-color:var(--line);
}
.btn--ghost:hover{border-color:var(--purple-900);}
.btn--outline-light{
  background:transparent;
  color:#fff;
  border-color:rgba(255,255,255,.55);
}
.btn--outline-light:hover{background:rgba(255,255,255,.12); border-color:#fff;}

/* ============================================================
   PRELOADER
   ============================================================ */
.preloader{
  position:fixed; inset:0; z-index:9999;
  background:var(--purple-950);
  display:flex; align-items:center; justify-content:center;
  transition:opacity .6s var(--ease), visibility .6s var(--ease);
}
.preloader.is-hidden{opacity:0; visibility:hidden; pointer-events:none;}
.preloader__mark img{width:120px; animation:pulse 1.4s ease-in-out infinite;}
@keyframes pulse{
  0%,100%{opacity:.55; transform:scale(.94);}
  50%{opacity:1; transform:scale(1);}
}

/* ============================================================
   TOP UTILITY BAR
   ============================================================ */
.topbar{
  background:var(--purple-950);
  color:rgba(255,255,255,.82);
  font-size:12.5px;
  position:fixed; top:0; left:0; right:0;
  z-index:1001;
}
.topbar__inner{
  max-width:var(--container);
  margin:0 auto;
  padding:8px 32px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
.topbar__contact{display:flex; align-items:center; gap:24px;}
.topbar__contact li a{display:flex; align-items:center; gap:7px; transition:color .2s;}
.topbar__contact li a:hover{color:var(--gold-500);}
.topbar__contact i{color:var(--gold-500); font-size:11px;}
.topbar__addr{display:flex; align-items:center; gap:7px;}
.topbar__addr i{color:var(--gold-500); font-size:11px;}
.topbar__social{display:flex; align-items:center; gap:14px;}
.topbar__social a{
  width:24px; height:24px;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.25);
  transition:background .2s, border-color .2s;
  font-size:11px;
}
.topbar__social a:hover{background:var(--gold-500); border-color:var(--gold-500); color:var(--purple-950);}

/* ============================================================
   NAVBAR
   ============================================================ */
.navbar{
  position:fixed; top:36px; left:0; right:0; z-index:1000;
  background:rgba(250,247,241,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid transparent;
  transition:top .35s var(--ease), background .35s var(--ease), box-shadow .35s var(--ease), padding .35s var(--ease);
}
.navbar.scrolled{
  top:0;
  background:rgba(255,255,255,.96);
  box-shadow:0 8px 30px -18px rgba(33,26,51,.35);
  border-bottom-color:var(--line);
}
.navbar__inner{
  max-width:1400px;
  margin:0 auto;
  padding:14px 28px;
  display:flex;
  align-items:center;
  gap:16px;
}
.navbar.scrolled .navbar__inner{padding:10px 28px;}
.navbar__brand{flex-shrink:0;}
.navbar__brand img{height:46px; transition:height .3s var(--ease);}
.navbar.scrolled .navbar__brand img{height:38px;}
.navbar__nav{flex:1 1 auto; min-width:0;}
.navbar__nav > ul{display:flex; align-items:center; gap:2px; justify-content:flex-start; flex-wrap:nowrap;}
.navbar__nav > ul > li{position:relative; flex-shrink:0;}
.navbar__nav > ul > li > a{
  display:flex; align-items:center; gap:6px;
  padding:10px 14px;
  font-weight:600;
  font-size:14px;
  color:var(--ink);
  border-radius:3px;
  white-space:nowrap;
  transition:color .2s, background .2s;
}
.navbar__nav > ul > li > a i{font-size:10px; opacity:.6;}
.navbar__nav > ul > li > a:hover,
.navbar__nav > ul > li > a.active{color:var(--purple-800); background:rgba(122,74,150,.08);}

.dropdown{
  position:absolute; top:calc(100% + 8px); left:0;
  min-width:240px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  box-shadow:var(--shadow-card);
  padding:8px;
  opacity:0; visibility:hidden; transform:translateY(8px);
  transition:opacity .25s var(--ease), transform .25s var(--ease), visibility .25s var(--ease);
}
.has-dropdown:hover .dropdown, .has-dropdown:focus-within .dropdown{
  opacity:1; visibility:visible; transform:translateY(0);
}
.dropdown li a{
  display:block; padding:10px 14px; border-radius:5px; font-size:14px; font-weight:500; color:var(--ink-soft);
  transition:background .2s, color .2s;
}
.dropdown li a:hover{background:var(--cream); color:var(--purple-800);}

.navbar__cta{display:flex; align-items:center; gap:10px; flex-shrink:0; margin-left:auto; white-space:nowrap;}
.navbar__toggle{
  display:none;
  flex-direction:column;
  gap:5px;
  flex-shrink:0;
  background:none; border:none; padding:8px;
}
.navbar__toggle span{width:24px; height:2px; background:var(--purple-950); transition:transform .3s var(--ease), opacity .3s var(--ease);}
.navbar__toggle.active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.navbar__toggle.active span:nth-child(2){opacity:0;}
.navbar__toggle.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ============================================================
   HERO
   ============================================================ */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  overflow:hidden;
  padding-top:110px;
  background:var(--purple-950);
}
.hero__track{
  position:absolute; inset:0;
  display:flex;
  width:max-content;
  animation:heroScroll 60s linear infinite;
}
.hero__slide{
  width:46vw;
  min-width:640px;
  height:100vh;
  background-size:cover;
  background-position:center;
  flex-shrink:0;
  position:relative;
  filter:saturate(.85);
}
.hero__slide + .hero__slide{margin-left:6px;}
@keyframes heroScroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}
.hero__scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(90deg, rgba(36,26,61,.94) 0%, rgba(36,26,61,.72) 32%, rgba(51,35,79,.55) 60%, rgba(36,26,61,.85) 100%),
    linear-gradient(180deg, rgba(36,26,61,.35) 0%, rgba(36,26,61,.15) 40%, rgba(36,26,61,.75) 100%);
}
.hero__content{
  position:relative; z-index:2;
  max-width:var(--container);
  margin:0 auto;
  width:100%;
  padding:60px 32px 40px;
  color:#fff;
}
.hero__eyebrow{
  font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  font-size:12.5px; color:var(--gold-500);
  display:flex; align-items:center; gap:12px;
  margin-bottom:22px;
}
.hero__eyebrow::before{content:"";width:34px;height:2px;background:var(--gold-500);}
.hero__title{
  font-size:clamp(38px, 5.4vw, 68px);
  color:#fff;
  max-width:820px;
  font-weight:800;
  margin-bottom:24px;
}
.hero__lede{
  font-size:18px;
  color:rgba(255,255,255,.82);
  max-width:560px;
  margin-bottom:38px;
}
.hero__actions{display:flex; flex-wrap:wrap; gap:16px;}

.hero__stats{
  position:relative; z-index:2;
  max-width:var(--container);
  margin:0 auto;
  width:100%;
  padding:34px 32px 46px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
  border-top:1px solid rgba(255,255,255,.16);
}
.hero__stat{display:flex; align-items:baseline; gap:4px; flex-wrap:wrap; color:#fff;}
.hero__stat-num{
  font-family:var(--font-display);
  font-size:clamp(28px,3.4vw,40px);
  font-weight:600;
  color:var(--gold-500);
}
.hero__stat-plus{font-family:var(--font-display); font-size:22px; color:var(--gold-500); font-weight:600;}
.hero__stat-label{
  width:100%;
  font-size:13px;
  color:rgba(255,255,255,.68);
  margin-top:2px;
}

.hero__scroll{
  position:absolute; right:32px; bottom:36px; z-index:3;
  width:44px; height:44px;
  border:1px solid rgba(255,255,255,.4);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:#fff;
  animation:bob 2.4s ease-in-out infinite;
}
@keyframes bob{0%,100%{transform:translateY(0);}50%{transform:translateY(8px);}}

/* ============================================================
   ABOUT
   ============================================================ */
.about{padding:120px 0 0;}
.about__grid{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:72px;
  align-items:start;
  margin-bottom:100px;
}
.about__media-frame{
  border-radius:6px;
  overflow:hidden;
  box-shadow:var(--shadow-card);
  position:relative;
}
.about__media-frame::after{
  content:"";
  position:absolute; inset:0;
  border:6px solid var(--paper);
  box-sizing:border-box;
}
.about__media-frame img{width:100%; height:460px; object-fit:cover;}
.about__media-caption{
  margin-top:-46px;
  margin-left:24px;
  position:relative;
  background:var(--purple-950);
  color:#fff;
  padding:26px 26px 22px;
  max-width:340px;
  border-left:4px solid var(--gold-500);
}
.about__media-caption-mark{
  font-family:var(--font-display);
  font-size:44px;
  color:var(--gold-500);
  line-height:0;
  display:block;
  margin-bottom:10px;
}
.about__media-caption p{
  font-family:var(--font-display);
  font-style:italic;
  font-size:16.5px;
  color:#fff;
  margin:0;
}
.about__copy h2{font-size:clamp(28px,3.2vw,40px); max-width:520px;}
.about__lead{font-size:17px; max-width:540px;}
.about__cols{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:32px;
  margin:36px 0 32px;
  padding-top:32px;
  border-top:1px solid var(--line);
}
.about__cols h3{font-size:18px; margin-bottom:8px;}
.about__cols p{font-size:14.5px; margin:0;}

/* core values */
.values{background:var(--purple-950); padding:64px 0;}
.values .eyebrow--center{color:var(--gold-500);}
.values .eyebrow--center::before,.values .eyebrow--center::after{content:"";width:18px;height:2px;background:var(--gold-500);}
.values__row{
  display:grid;
  grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;
  align-items:start;
  gap:28px;
  margin-top:34px;
}
.values__item{color:#fff; text-align:center; padding:0 6px;}
.values__item h4{color:var(--gold-500); font-size:19px; margin-bottom:10px;}
.values__item p{color:rgba(255,255,255,.72); font-size:14px; margin:0;}
.values__divider{width:1px; background:rgba(255,255,255,.18); align-self:stretch;}

/* ============================================================
   ABOUT TEASER (homepage)
   ============================================================ */
.about-teaser{padding:120px 0;}
.about-teaser__grid{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:72px;
  align-items:start;
}
.about-teaser__media-frame{
  border-radius:6px;
  overflow:hidden;
  box-shadow:var(--shadow-card);
  position:relative;
}
.about-teaser__media-frame::after{
  content:"";
  position:absolute; inset:0;
  border:6px solid var(--paper);
  box-sizing:border-box;
}
.about-teaser__media-frame img{width:100%; height:460px; object-fit:cover;}
.about-teaser__media-caption{
  margin-top:-46px;
  margin-left:24px;
  position:relative;
  background:var(--purple-950);
  color:#fff;
  padding:26px 26px 22px;
  max-width:340px;
  border-left:4px solid var(--gold-500);
}
.about-teaser__media-caption-mark{
  font-family:var(--font-display);
  font-size:44px;
  color:var(--gold-500);
  line-height:0;
  display:block;
  margin-bottom:10px;
}
.about-teaser__media-caption p{
  font-family:var(--font-display);
  font-style:italic;
  font-size:16.5px;
  color:#fff;
  margin:0;
}
.about-teaser__copy h2{font-size:clamp(28px,3.2vw,40px); max-width:520px;}
.about-teaser__lead{font-size:17px; max-width:540px;}
.about-teaser__values{
  display:flex; flex-wrap:wrap; gap:12px;
  margin:30px 0 34px;
  padding-top:30px;
  border-top:1px solid var(--line);
}
.about-teaser__values li span{
  display:inline-block;
  border:1px solid var(--line);
  border-radius:30px;
  padding:9px 20px;
  font-size:13.5px;
  font-weight:600;
  color:var(--purple-800);
  background:var(--paper);
}

/* ============================================================
   PROGRAMS TEASER (homepage)
   ============================================================ */
.programs-teaser{padding:110px 0; background:var(--purple-950);}
.programs-teaser__head{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  align-items:end;
  margin-bottom:52px;
}
.programs-teaser__head h2{color:#fff; font-size:clamp(28px,3.2vw,40px); margin:0;}
.programs-teaser__intro{color:rgba(255,255,255,.68); font-size:15.5px; margin:0;}
.programs-teaser__grid{display:grid; grid-template-columns:repeat(3,1fr); gap:32px;}

/* ============================================================
   PORTFOLIO TEASER (homepage)
   ============================================================ */
.portfolio-teaser{padding:110px 0 0; background:var(--paper);}
.portfolio-teaser h2{font-size:clamp(28px,3.2vw,40px); max-width:640px;}
.portfolio-teaser__intro{max-width:560px; font-size:16px;}
.portfolio-teaser__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  margin-top:48px;
}
.portfolio-teaser__link{margin-top:40px; display:inline-flex;}
.portfolio-card{background:var(--paper); padding:38px 34px; transition:background .25s var(--ease);}
.portfolio-card:hover{background:var(--cream);}
.portfolio-card__tag{display:inline-block; font-size:11.5px; font-weight:700; letter-spacing:.03em; color:var(--gold-600); margin-bottom:14px;}
.portfolio-card h3{font-size:19px; margin-bottom:10px;}
.portfolio-card p{font-size:14.5px; margin:0;}

/* ============================================================
   NEWS TEASER (homepage)
   ============================================================ */
.news-teaser{padding:110px 0; background:var(--cream);}
.news-teaser__head{display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:46px;}
.news-teaser__head h2{font-size:clamp(28px,3.2vw,38px); margin:0;}
.news-teaser__grid{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:28px;}
.news-card{background:var(--paper); border-radius:8px; overflow:hidden; box-shadow:var(--shadow-card); transition:transform .3s var(--ease);}
.news-card:hover{transform:translateY(-6px);}
.news-card img{width:100%; height:210px; object-fit:cover;}
.news-card--feature img{height:340px;}
.news-card__body{padding:24px 26px 28px;}
.news-card__date{display:inline-block; font-size:11.5px; font-weight:700; letter-spacing:.04em; color:var(--gold-600); text-transform:uppercase; margin-bottom:10px;}
.news-card h3{font-size:17px; margin:0;}
.news-card--feature h3{font-size:23px;}

/* ============================================================
   CTA BANNER (homepage)
   ============================================================ */
.cta-banner{background:var(--purple-800); padding:80px 0;}
.cta-banner__inner{
  display:flex; align-items:center; justify-content:space-between; gap:40px; flex-wrap:wrap;
}
.cta-banner h2{color:#fff; font-size:clamp(26px,3vw,34px); max-width:520px; margin-bottom:10px;}
.cta-banner p{color:rgba(255,255,255,.72); max-width:460px; margin:0;}
.cta-banner__actions{display:flex; gap:16px; flex-wrap:wrap;}

/* footer newsletter */
.footer__col--newsletter p{color:rgba(255,255,255,.6); font-size:13.5px; margin-bottom:16px;}
.footer__newsletter{display:flex; border:1px solid rgba(255,255,255,.25); border-radius:5px; overflow:hidden;}
.footer__newsletter input{
  flex:1; border:none; background:rgba(255,255,255,.06); color:#fff;
  padding:11px 14px; font-size:13.5px; font-family:inherit;
}
.footer__newsletter input::placeholder{color:rgba(255,255,255,.45);}
.footer__newsletter input:focus{outline:none; background:rgba(255,255,255,.12);}
.footer__newsletter button{
  border:none; background:var(--gold-500); color:var(--purple-950);
  width:44px; flex-shrink:0; font-size:14px; transition:background .2s;
}
.footer__newsletter button:hover{background:var(--gold-600);}

/* ============================================================
   WHY / TESTIMONIALS
   ============================================================ */
.why{padding:110px 0; background:var(--paper);}
.why__grid{display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center;}
.why__copy h2{font-size:clamp(28px,3.2vw,38px); max-width:480px;}
.why__list{margin-top:26px; display:flex; flex-direction:column; gap:14px;}
.why__list li{display:flex; align-items:flex-start; gap:12px; font-size:15px; color:var(--ink-soft); font-weight:500;}
.why__list i{color:var(--gold-600); margin-top:3px;}
.why__testimonial{
  background:var(--cream);
  border:1px solid var(--line);
  border-radius:8px;
  padding:44px;
  position:relative;
}
.why__quote-mark{color:var(--gold-500); font-size:28px; margin-bottom:16px;}
.why__quote{
  font-family:var(--font-display);
  font-style:italic;
  font-size:21px;
  color:var(--purple-950);
  line-height:1.5;
  margin-bottom:28px;
}
.why__person{display:flex; align-items:center; gap:14px;}
.why__avatar{
  width:48px; height:48px; border-radius:50%;
  background:var(--purple-800); color:var(--gold-100);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:600; font-size:15px;
}
.why__name{font-weight:600; font-size:14.5px; color:var(--purple-950); margin:0;}
.why__role{font-size:13px; margin:0; color:var(--ink-soft);}

/* ============================================================
   PROGRAMS
   ============================================================ */
.programs{padding:110px 0; background:var(--cream);}
.programs__head{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  align-items:end;
  margin-bottom:48px;
}
.programs__head h2{font-size:clamp(28px,3.2vw,40px); margin:0;}
.programs__intro{font-size:15.5px; margin:0;}
.programs__tabs{
  display:flex; flex-wrap:wrap; gap:10px;
  border-bottom:1px solid var(--line);
  padding-bottom:22px;
  margin-bottom:38px;
}
.programs__tab{
  background:transparent; border:1px solid var(--line);
  padding:11px 20px; border-radius:30px;
  font-size:14px; font-weight:600; color:var(--ink-soft);
  transition:all .25s var(--ease);
}
.programs__tab:hover{border-color:var(--purple-700); color:var(--purple-800);}
.programs__tab.active{background:var(--purple-950); border-color:var(--purple-950); color:#fff;}

.programs__panel{display:none;}
.programs__panel.active{display:grid; grid-template-columns:.9fr 1.4fr; gap:56px; animation:fadeUp .5s var(--ease);}
@keyframes fadeUp{from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:translateY(0);}}
.programs__panel-desc{font-size:16px; max-width:400px; align-self:start;}
.programs__list{margin:0; padding:0; counter-reset:none;}
.programs__list li{
  display:flex; align-items:center; gap:22px;
  padding:18px 0;
  border-bottom:1px solid var(--line);
  font-weight:500; color:var(--purple-950);
  font-size:15.5px;
}
.programs__list li:first-child{padding-top:0;}
.programs__code{
  font-family:var(--font-display); font-style:italic;
  color:var(--gold-600); font-size:14px; min-width:78px; flex-shrink:0;
}

.programs__sub{background:var(--purple-950); padding:80px 0; margin-top:100px;}
.programs__sub-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:32px;}
.feature-card{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.12);
  border-radius:8px;
  padding:34px 30px;
  transition:transform .3s var(--ease), background .3s var(--ease), border-color .3s var(--ease);
}
.feature-card:hover{transform:translateY(-6px); background:rgba(255,255,255,.07); border-color:rgba(227,162,46,.4);}
.feature-card__icon{
  width:52px; height:52px; border-radius:50%;
  background:var(--gold-500); color:var(--purple-950);
  display:flex; align-items:center; justify-content:center;
  font-size:20px; margin-bottom:22px;
}
.feature-card h3{color:#fff; font-size:19px;}
.feature-card p{color:rgba(255,255,255,.68); font-size:14.5px;}
.feature-card .text-link{color:var(--gold-500); border-color:var(--gold-500);}
.feature-card .text-link:hover{color:#fff; border-color:#fff;}

/* ============================================================
   MISSIONS STRIP
   ============================================================ */
.missions{background:var(--purple-800); padding:70px 0; overflow:hidden;}
.missions__inner{display:grid; grid-template-columns:1fr; gap:36px;}
.missions__copy h2{color:#fff; font-size:clamp(24px,2.8vw,32px); max-width:640px;}
.missions__copy p{color:rgba(255,255,255,.72); max-width:680px;}
.missions__chips{
  display:flex; flex-wrap:wrap; gap:12px;
}
.missions__chips span{
  border:1px solid rgba(255,255,255,.28);
  color:#fff;
  padding:9px 18px;
  border-radius:30px;
  font-size:13.5px;
  font-weight:500;
  transition:background .25s var(--ease), border-color .25s var(--ease);
}
.missions__chips span:hover{background:var(--gold-500); border-color:var(--gold-500); color:var(--purple-950);}

/* ============================================================
   GOVERNANCE PAGE — accountability framework cards
   ============================================================ */
.framework{padding:110px 0; background:var(--paper);}
.framework__head{max-width:680px; margin-bottom:52px;}
.framework__head h2{font-size:clamp(28px,3.2vw,38px);}
.framework__grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.framework-card{
  position:relative;
  background:var(--cream);
  border:1px solid var(--line);
  border-radius:10px;
  padding:38px 32px;
  overflow:hidden;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.framework-card::before{
  content:"";
  position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg, var(--gold-500), var(--purple-600));
  transform:scaleX(0); transform-origin:left;
  transition:transform .4s var(--ease);
}
.framework-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-card); border-color:transparent;}
.framework-card:hover::before{transform:scaleX(1);}
.framework-card__num{
  font-family:var(--font-display); font-weight:800; font-size:13px;
  color:var(--gold-600); letter-spacing:.08em; margin-bottom:18px; display:block;
}
.framework-card i{font-size:26px; color:var(--purple-800); margin-bottom:20px; display:block;}
.framework-card h3{font-size:19px; margin-bottom:10px;}
.framework-card p{font-size:14.5px; margin:0;}

/* ============================================================
   GOVERNANCE PAGE — interactive accordion (Our Approach)
   ============================================================ */
.gov-accordion{padding:110px 0; background:var(--cream);}
.gov-accordion__head{max-width:680px; margin-bottom:20px;}
.gov-accordion__head h2{font-size:clamp(28px,3.2vw,38px);}
.gov-accordion__intro{max-width:640px; font-size:16px; margin-bottom:54px;}
.accordion{border-top:1px solid var(--line);}
.accordion__item{border-bottom:1px solid var(--line);}
.accordion__header{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:28px 4px; background:none; border:none; text-align:left; cursor:pointer;
}
.accordion__header-left{display:flex; align-items:center; gap:22px; min-width:0;}
.accordion__num{
  font-family:var(--font-display); font-weight:800; font-size:14px;
  color:var(--line); flex-shrink:0; width:28px;
  transition:color .3s var(--ease);
}
.accordion__icon{
  width:54px; height:54px; border-radius:50%; flex-shrink:0;
  background:var(--paper); border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  color:var(--purple-800); font-size:20px;
  transition:background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
}
.accordion__title{font-weight:700; font-size:18px; color:var(--purple-950); margin:0;}
.accordion__chevron{color:var(--ink-soft); transition:transform .35s var(--ease), color .3s var(--ease); flex-shrink:0;}
.accordion__item.active .accordion__num{color:var(--gold-600);}
.accordion__item.active .accordion__icon{background:var(--gold-500); border-color:var(--gold-500); color:var(--purple-950);}
.accordion__item.active .accordion__chevron{transform:rotate(180deg); color:var(--gold-600);}
.accordion__panel{max-height:0; overflow:hidden; transition:max-height .45s var(--ease);}
.accordion__panel-inner{padding:0 4px 32px 104px;}
.accordion__panel-inner p{font-size:15px; margin-bottom:14px;}
.accordion__example{
  font-size:13.5px; font-weight:600; color:var(--purple-800);
  padding-left:16px; border-left:3px solid var(--gold-500); margin:0;
}
@media (max-width:620px){
  .accordion__panel-inner{padding-left:4px;}
  .accordion__num{display:none;}
}

/* ============================================================
   GOVERNANCE PAGE — interactive process stepper
   ============================================================ */
.gov-stepper{padding:110px 0; background:var(--purple-950); color:#fff;}
.gov-stepper__head{max-width:640px; margin-bottom:60px;}
.gov-stepper__head h2{color:#fff; font-size:clamp(28px,3.2vw,38px);}
.gov-stepper__intro{color:rgba(255,255,255,.7); font-size:16px; margin:0;}
.stepper-nav{display:flex; justify-content:space-between; position:relative; margin-bottom:54px; gap:8px;}
.stepper-nav::before{content:""; position:absolute; top:23px; left:5%; right:5%; height:2px; background:rgba(255,255,255,.16); z-index:0;}
.stepper-nav__progress{position:absolute; top:23px; left:5%; height:2px; background:var(--gold-500); z-index:0; transition:width .4s var(--ease); width:0%;}
.stepper-nav__item{
  position:relative; z-index:1;
  display:flex; flex-direction:column; align-items:center; gap:12px;
  background:none; border:none; cursor:pointer; flex:1; padding:0;
}
.stepper-nav__circle{
  width:46px; height:46px; border-radius:50%;
  border:2px solid rgba(255,255,255,.25);
  background:var(--purple-950);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:800; font-size:16px; color:rgba(255,255,255,.6);
  transition:all .3s var(--ease);
}
.stepper-nav__label{font-size:12.5px; font-weight:600; color:rgba(255,255,255,.55); max-width:120px; text-align:center; transition:color .3s;}
.stepper-nav__item.active .stepper-nav__circle{background:var(--gold-500); border-color:var(--gold-500); color:var(--purple-950);}
.stepper-nav__item.active .stepper-nav__label{color:#fff;}
.stepper-nav__item.done .stepper-nav__circle{border-color:var(--gold-500); color:var(--gold-500);}

.stepper-panels{max-width:720px; margin:0 auto; text-align:center; min-height:150px;}
.stepper-panel{display:none;}
.stepper-panel.active{display:block; animation:fadeUp .5s var(--ease) both;}
.stepper-panel__tag{
  display:inline-block; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  color:var(--gold-500); margin-bottom:14px;
}
.stepper-panel h3{color:#fff; font-size:24px; margin-bottom:14px;}
.stepper-panel p{color:rgba(255,255,255,.72); font-size:16px; margin:0;}
.stepper-controls{display:flex; justify-content:center; gap:14px; margin-top:40px;}
.stepper-controls button{
  width:44px; height:44px; border-radius:50%;
  border:1px solid rgba(255,255,255,.28); background:transparent; color:#fff;
  display:flex; align-items:center; justify-content:center;
  transition:background .25s, border-color .25s;
}
.stepper-controls button:hover{background:var(--gold-500); border-color:var(--gold-500); color:var(--purple-950);}
.stepper-controls button:disabled{opacity:.3; cursor:not-allowed;}
.stepper-controls button:disabled:hover{background:transparent; border-color:rgba(255,255,255,.28); color:#fff;}

/* ============================================================
   GOVERNANCE PAGE — publications & resources
   ============================================================ */
.publications{padding:110px 0; background:var(--paper);}
.publications__head{max-width:640px; margin-bottom:48px;}
.publications__head h2{font-size:clamp(28px,3.2vw,38px);}
.publications__grid{display:grid; grid-template-columns:repeat(2,1fr); gap:24px;}
.publication-card{
  display:flex; align-items:center; gap:22px;
  border:1px solid var(--line); border-radius:10px;
  padding:28px 30px;
  transition:border-color .3s var(--ease), background .3s var(--ease), transform .3s var(--ease);
}
.publication-card:hover{border-color:var(--purple-700); background:var(--cream); transform:translateY(-3px);}
.publication-card__icon{
  width:56px; height:56px; border-radius:10px; flex-shrink:0;
  background:var(--purple-950); color:var(--gold-500);
  display:flex; align-items:center; justify-content:center; font-size:20px;
}
.publication-card h4{font-size:16.5px; margin-bottom:4px;}
.publication-card p{font-size:13.5px; margin:0; color:var(--ink-soft);}
.publication-card i.fa-arrow-right{margin-left:auto; color:var(--ink-soft); flex-shrink:0; transition:transform .3s var(--ease), color .3s var(--ease);}
.publication-card:hover i.fa-arrow-right{transform:translateX(4px); color:var(--purple-800);}

@media (max-width:860px){
  .framework__grid{grid-template-columns:1fr;}
  .publications__grid{grid-template-columns:1fr;}
  .stepper-nav__label{display:none;}
  .approach--teaser__grid{flex-direction:column; align-items:flex-start;}
}

/* ============================================================
   COURSES CATALOGUE
   ============================================================ */
.courses{padding:70px 0 110px; background:var(--cream);}
.courses__toolbar{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  gap:20px; margin-bottom:40px; padding-bottom:26px; border-bottom:1px solid var(--line);
}
.courses__count{font-size:14px; color:var(--ink-soft); font-weight:600;}
.courses__count strong{color:var(--purple-950);}
.course-filters{display:flex; flex-wrap:wrap; gap:10px;}
.course-filter{
  background:var(--paper); border:1px solid var(--line);
  padding:9px 18px; border-radius:30px;
  font-size:13.5px; font-weight:600; color:var(--ink-soft);
  transition:all .25s var(--ease);
}
.course-filter:hover{border-color:var(--purple-700); color:var(--purple-800);}
.course-filter.active{background:var(--purple-950); border-color:var(--purple-950); color:#fff;}

.courses__grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(300px,1fr)); gap:28px;
}
.course-card{
  background:var(--paper); border:1px solid var(--line); border-radius:12px;
  overflow:hidden; display:flex; flex-direction:column;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.course-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-card);}
.course-card__media{position:relative; height:170px; overflow:hidden;}
.course-card__media img{width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease);}
.course-card:hover .course-card__media img{transform:scale(1.07);}
.course-card__category{
  position:absolute; top:14px; left:14px;
  background:rgba(36,26,61,.82); color:#fff; backdrop-filter:blur(4px);
  font-size:11px; font-weight:700; letter-spacing:.03em; text-transform:uppercase;
  padding:6px 12px; border-radius:20px;
}
.course-card__like{
  position:absolute; top:12px; right:12px;
  width:36px; height:36px; border-radius:50%;
  background:rgba(255,255,255,.9); border:none;
  display:flex; align-items:center; justify-content:center;
  color:var(--ink-soft); font-size:15px; cursor:pointer;
  transition:transform .2s var(--ease), color .2s var(--ease);
}
.course-card__like:hover{transform:scale(1.1);}
.course-card__like.liked{color:#e0435c;}
.course-card__like.liked i{font-weight:900;}
.course-card__body{padding:22px 22px 24px; display:flex; flex-direction:column; flex:1;}
.course-card__code{font-size:11.5px; font-weight:700; letter-spacing:.05em; color:var(--gold-600); margin-bottom:8px;}
.course-card__title{font-size:17px; line-height:1.3; margin-bottom:10px; min-height:44px;}
.course-card__desc{font-size:13.5px; color:var(--ink-soft); margin-bottom:16px; flex:1;}
.course-card__meta{display:flex; flex-wrap:wrap; gap:14px; font-size:12.5px; color:var(--ink-soft); margin-bottom:16px;}
.course-card__meta span{display:flex; align-items:center; gap:6px;}
.course-card__meta i{color:var(--purple-700); font-size:12px;}
.course-card__rating{display:flex; align-items:center; gap:8px; margin-bottom:16px;}
.course-card__stars{color:var(--gold-500); font-size:13px; letter-spacing:1px;}
.course-card__rating-num{font-size:12.5px; font-weight:700; color:var(--purple-950);}
.course-card__rating-count{font-size:12px; color:var(--ink-soft);}
.course-card__footer{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding-top:16px; border-top:1px solid var(--line); margin-top:auto;
}
.course-card__price{display:flex; flex-direction:column;}
.course-card__price-label{font-size:10.5px; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.04em;}
.course-card__price-value{font-family:var(--font-display); font-weight:800; font-size:16px; color:var(--purple-950);}
.course-card__register{
  background:var(--gold-500); color:var(--purple-950);
  padding:10px 18px; border-radius:30px; font-size:13px; font-weight:700; border:none;
  display:inline-flex; align-items:center; gap:8px;
  transition:background .25s var(--ease), transform .2s var(--ease);
}
.course-card__register:hover{background:var(--gold-600); transform:translateY(-2px);}
.course-card__price-note{font-size:10.5px; color:var(--ink-soft); margin-top:16px; text-align:center;}

.courses__empty{display:none; text-align:center; padding:60px 0; color:var(--ink-soft); font-size:15px;}

@media (max-width:620px){
  .courses__toolbar{flex-direction:column; align-items:flex-start;}
  .courses__grid{grid-template-columns:1fr;}
}

/* ============================================================
   PAGE HEADER (interior pages — About, Programs, Portfolio, etc.)
   ============================================================ */
.page-header{
  position:relative;
  padding:170px 0 90px;
  background:var(--purple-950);
  overflow:hidden;
}
.page-header::before{
  content:"";
  position:absolute; inset:0;
  background:
    radial-gradient(600px 320px at 85% 0%, rgba(227,162,46,.16), transparent 70%),
    radial-gradient(500px 300px at 10% 100%, rgba(122,74,150,.35), transparent 70%);
}
.page-header__inner{position:relative; z-index:1;}
.page-header__crumbs{
  display:flex; align-items:center; gap:10px;
  font-size:13px; font-weight:600; color:rgba(255,255,255,.6);
  margin-bottom:20px;
}
.page-header__crumbs a{color:rgba(255,255,255,.85); transition:color .2s;}
.page-header__crumbs a:hover{color:var(--gold-500);}
.page-header__crumbs i{font-size:9px; opacity:.6;}
.page-header h1{color:#fff; font-size:clamp(32px,4.4vw,50px); max-width:720px; margin-bottom:16px;}
.page-header p{color:rgba(255,255,255,.72); font-size:17px; max-width:600px; margin:0;}

/* ============================================================
   HISTORY / TIMELINE
   ============================================================ */
.history{padding:110px 0; background:var(--cream);}
.history h2{font-size:clamp(28px,3.2vw,38px); max-width:640px;}
.history__intro{max-width:600px; font-size:16px;}
.timeline{margin-top:56px; position:relative; padding-left:32px;}
.timeline::before{content:""; position:absolute; left:5px; top:6px; bottom:6px; width:2px; background:var(--line);}
.timeline__item{position:relative; padding-bottom:44px;}
.timeline__item:last-child{padding-bottom:0;}
.timeline__item::before{
  content:""; position:absolute; left:-32px; top:4px;
  width:12px; height:12px; border-radius:50%;
  background:var(--gold-500); border:3px solid var(--cream); box-shadow:0 0 0 2px var(--gold-500);
}
.timeline__year{font-family:var(--font-display); font-weight:800; font-size:15px; color:var(--purple-800); margin-bottom:6px; letter-spacing:.02em;}
.timeline__item h4{font-size:18px; margin-bottom:6px;}
.timeline__item p{font-size:14.5px; margin:0; max-width:600px;}

/* ============================================================
   TESTIMONIALS GRID
   ============================================================ */
.testimonials{padding:110px 0; background:var(--paper);}
.testimonials__head{margin-bottom:48px;}
.testimonials__head h2{font-size:clamp(28px,3.2vw,38px); max-width:640px;}
.testimonials__grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.testimonial-card{
  background:var(--cream); border:1px solid var(--line); border-radius:8px;
  padding:36px 32px; display:flex; flex-direction:column;
}
.testimonial-card .why__quote-mark{margin-bottom:14px;}
.testimonial-card p.quote{
  font-family:var(--font-display); font-style:italic; font-size:17px;
  color:var(--purple-950); line-height:1.5; margin-bottom:24px; flex:1;
}
.testimonial-card .why__person{margin-top:auto;}

/* ============================================================
   GOVERNANCE / APPROACH
   ============================================================ */
.approach{padding:110px 0; background:var(--purple-950);}
.approach--teaser{padding:90px 0;}
.approach--teaser__grid{display:flex; align-items:center; justify-content:space-between; gap:40px; flex-wrap:wrap;}
.approach--teaser__grid .approach__head{flex:1 1 480px; margin-bottom:0;}
.approach--teaser__grid .btn{flex-shrink:0;}
.approach__head{max-width:640px; margin-bottom:20px;}
.approach__head h2{color:#fff; font-size:clamp(28px,3.2vw,38px);}
.approach__intro{color:rgba(255,255,255,.72); font-size:16px; max-width:640px; margin-bottom:54px;}
.approach__grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.12);
  margin-bottom:70px;
}
.approach__item{
  background:var(--purple-950); padding:32px 26px; transition:background .25s var(--ease);
}
.approach__item:hover{background:rgba(255,255,255,.05);}
.approach__item i{font-size:22px; color:var(--gold-500); margin-bottom:18px; display:block;}
.approach__item h4{color:#fff; font-size:15.5px; margin:0;}

.process{border-top:1px solid rgba(255,255,255,.12); padding-top:60px;}
.process h3{color:#fff; font-size:22px; margin-bottom:36px;}
.process__steps{display:grid; grid-template-columns:repeat(5,1fr); gap:20px;}
.process__step{position:relative; padding-top:44px;}
.process__step-num{
  position:absolute; top:0; left:0;
  width:32px; height:32px; border-radius:50%;
  border:1px solid rgba(255,255,255,.3);
  color:var(--gold-500); font-family:var(--font-display); font-weight:800; font-size:14px;
  display:flex; align-items:center; justify-content:center;
}
.process__step h5{color:#fff; font-size:14.5px; font-weight:700; margin-bottom:6px;}
.process__step p{color:rgba(255,255,255,.62); font-size:13px; margin:0;}

/* ============================================================
   PORTFOLIO
   ============================================================ */
.portfolio{padding:110px 0 0; background:var(--paper);}
.portfolio h2{font-size:clamp(28px,3.2vw,40px); max-width:640px;}
.portfolio__intro{max-width:560px; font-size:16px;}
.portfolio__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  margin-top:48px;
}
.portfolio__card{
  background:var(--paper);
  padding:38px 34px;
  transition:background .25s var(--ease);
}
.portfolio__card:hover{background:var(--cream);}
.portfolio__tag{
  display:inline-block;
  font-size:11.5px; font-weight:700; letter-spacing:.03em;
  color:var(--gold-600);
  margin-bottom:14px;
}
.portfolio__card h3{font-size:19px; margin-bottom:10px;}
.portfolio__card p{font-size:14.5px; margin:0;}

.clients{padding:64px 0 90px; margin-top:60px; border-top:1px solid var(--line);}
.clients__label{
  text-align:center; font-size:12.5px; font-weight:700; letter-spacing:.06em;
  color:var(--ink-soft); text-transform:uppercase; margin-bottom:34px;
}
.clients__marquee{overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);}
.clients__track{display:flex; align-items:center; gap:52px; width:max-content; animation:marquee 42s linear infinite;}
.clients__track img{height:56px; width:auto; object-fit:contain; filter:grayscale(1); opacity:.6; transition:opacity .3s, filter .3s;}
.clients__track img:hover{filter:grayscale(0); opacity:1;}
@keyframes marquee{from{transform:translateX(0);} to{transform:translateX(-50%);}}

/* ============================================================
   NEWS
   ============================================================ */
.news{padding:110px 0; background:var(--cream);}
.news__head{display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:46px;}
.news__head h2{font-size:clamp(28px,3.2vw,38px); margin:0;}
.news__grid{
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr;
  gap:28px;
}
.news__card{
  background:var(--paper);
  border-radius:8px;
  overflow:hidden;
  box-shadow:var(--shadow-card);
  transition:transform .3s var(--ease);
}
.news__card:hover{transform:translateY(-6px);}
.news__card img{width:100%; height:210px; object-fit:cover;}
.news__card--feature img{height:340px;}
.news__card-body{padding:24px 26px 28px;}
.news__date{
  display:inline-block;
  font-size:11.5px; font-weight:700; letter-spacing:.04em;
  color:var(--gold-600); text-transform:uppercase; margin-bottom:10px;
}
.news__card h3{font-size:17px; margin:0;}
.news__card--feature h3{font-size:23px;}

/* gallery */
.gallery{margin-top:70px;}
.gallery__grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-auto-rows:190px;
  gap:6px;
}
.gallery__item{overflow:hidden; cursor:pointer; position:relative;}
.gallery__item:nth-child(4n+1){grid-row:span 2;}
.gallery__item img{width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease);}
.gallery__item::after{
  content:"\f00e";
  font-family:"Font Awesome 6 Free"; font-weight:900;
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:20px;
  background:rgba(36,26,61,0);
  opacity:0;
  transition:opacity .3s var(--ease), background .3s var(--ease);
}
.gallery__item:hover img{transform:scale(1.08);}
.gallery__item:hover::after{opacity:1; background:rgba(36,26,61,.45);}

/* ============================================================
   TEAM / GOVERNANCE
   ============================================================ */
.team{padding:110px 0; background:var(--paper);}
.team h2{font-size:clamp(28px,3.2vw,38px); max-width:640px;}
.team__intro{max-width:560px; font-size:16px;}
.team__grid{display:grid; grid-template-columns:repeat(3,1fr); gap:32px; margin-top:48px;}
.team__card{border:1px solid var(--line); border-radius:8px; overflow:hidden;}
.team__photo{height:220px; background-size:cover; background-position:center;}
.team__card h3{font-size:18px; margin:22px 26px 10px;}
.team__card p{font-size:14px; margin:0 26px 24px;}

/* ============================================================
   CONTACT
   ============================================================ */
.contact{background:var(--purple-950); padding:110px 0 0; color:#fff;}
.contact__grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:72px; padding-bottom:90px;}
.contact__copy h2{color:#fff; font-size:clamp(28px,3.2vw,38px); max-width:480px;}
.contact__copy > p{color:rgba(255,255,255,.72); max-width:440px;}
.contact__list{margin:34px 0; display:flex; flex-direction:column; gap:20px;}
.contact__list li{display:flex; gap:16px; align-items:flex-start; font-size:14.5px; color:rgba(255,255,255,.85);}
.contact__list i{color:var(--gold-500); margin-top:3px; width:16px;}
.contact__social{display:flex; gap:12px;}
.contact__social a{
  width:40px; height:40px; border-radius:50%;
  border:1px solid rgba(255,255,255,.28);
  display:flex; align-items:center; justify-content:center;
  transition:background .25s, border-color .25s;
}
.contact__social a:hover{background:var(--gold-500); border-color:var(--gold-500); color:var(--purple-950);}

.contact__form{
  background:var(--paper);
  border-radius:10px;
  padding:40px;
  box-shadow:0 30px 60px -30px rgba(0,0,0,.5);
}
.form__row{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
.form__field{margin-bottom:20px;}
.form__field label{display:block; font-size:13px; font-weight:600; color:var(--purple-950); margin-bottom:7px;}
.form__field input, .form__field select, .form__field textarea{
  width:100%;
  border:1px solid var(--line);
  border-radius:5px;
  padding:12px 14px;
  font-family:inherit; font-size:14.5px; color:var(--ink);
  background:var(--cream);
  transition:border-color .2s, background .2s;
}
.form__field input:focus, .form__field select:focus, .form__field textarea:focus{
  border-color:var(--purple-700); background:#fff; outline:none;
}
.form__field textarea{resize:vertical;}
.form__note{margin:14px 0 0; font-size:13.5px; color:var(--purple-800); font-weight:600; min-height:1em;}

.contact__map{width:100%; height:360px; filter:grayscale(.25) contrast(1.05);}
.contact__map iframe{width:100%; height:100%; border:0; display:block;}

/* ============================================================
   AUTH MODAL
   ============================================================ */
.auth-modal{position:fixed; inset:0; z-index:2000; display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden; transition:opacity .3s var(--ease), visibility .3s var(--ease);}
.auth-modal.is-open{opacity:1; visibility:visible;}
.auth-modal__backdrop{position:absolute; inset:0; background:rgba(33,26,51,.6); backdrop-filter:blur(3px);}
.auth-modal__panel{
  position:relative; background:#fff; border-radius:10px; width:min(420px,92vw);
  padding:40px; box-shadow:0 40px 80px -30px rgba(0,0,0,.5);
  transform:translateY(16px); transition:transform .35s var(--ease);
}
.auth-modal.is-open .auth-modal__panel{transform:translateY(0);}
.auth-modal__close{position:absolute; top:16px; right:18px; background:none; border:none; font-size:24px; color:var(--ink-soft); line-height:1;}
.auth-modal__tabs{display:flex; gap:4px; background:var(--cream); border-radius:30px; padding:4px; margin-bottom:26px;}
.auth-modal__tabs button{flex:1; background:none; border:none; padding:10px; border-radius:26px; font-weight:600; font-size:14px; color:var(--ink-soft); transition:background .25s, color .25s;}
.auth-modal__tabs button.active{background:var(--purple-950); color:#fff;}
.auth-modal__panel h3{font-size:22px; margin-bottom:20px;}
.auth-modal__form{display:flex; flex-direction:column; gap:14px;}
.auth-modal__form label{font-size:13px; font-weight:600; color:var(--purple-950);}
.auth-modal__form input{border:1px solid var(--line); border-radius:5px; padding:12px 14px; font-size:14.5px; background:var(--cream);}
.auth-modal__form input:focus{border-color:var(--purple-700); background:#fff; outline:none;}
.auth-modal__form button{margin-top:6px;}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{background:var(--purple-950); color:rgba(255,255,255,.78); position:relative;}
.footer__top{
  display:grid;
  grid-template-columns:1.6fr 1fr 1fr 1fr 1.1fr;
  gap:40px;
  padding:80px 32px 60px;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.footer__brand img{height:46px; margin-bottom:18px;}
.footer__brand p{color:rgba(255,255,255,.6); font-size:14px; max-width:280px;}
.footer__social{display:flex; gap:10px; margin-top:18px;}
.footer__social a{
  width:36px; height:36px; border-radius:50%;
  border:1px solid rgba(255,255,255,.22);
  display:flex; align-items:center; justify-content:center;
  transition:background .25s, border-color .25s;
}
.footer__social a:hover{background:var(--gold-500); border-color:var(--gold-500); color:var(--purple-950);}
.footer__col h4{color:#fff; font-family:var(--font-body); font-size:14.5px; font-weight:700; margin-bottom:20px;}
.footer__col ul{display:flex; flex-direction:column; gap:12px;}
.footer__col ul a{font-size:14px; color:rgba(255,255,255,.66); transition:color .2s, padding-left .2s;}
.footer__col ul a:hover{color:var(--gold-500); padding-left:4px;}
.footer__contact li{display:flex; align-items:flex-start; gap:10px; font-size:13.5px; color:rgba(255,255,255,.66);}
.footer__contact i{color:var(--gold-500); margin-top:3px; width:14px;}

.footer__bottom{
  max-width:var(--container); margin:0 auto;
  padding:26px 32px;
  display:flex; align-items:center; justify-content:space-between;
  font-size:13px; color:rgba(255,255,255,.5);
}
.footer__powered a{color:var(--gold-500); font-weight:600;}

.back-to-top{
  position:fixed; right:28px; bottom:28px; z-index:900;
  width:46px; height:46px; border-radius:50%;
  background:var(--purple-950); color:var(--gold-500);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 14px 30px -12px rgba(36,26,61,.6);
  opacity:0; visibility:hidden; transform:translateY(12px);
  transition:opacity .3s var(--ease), transform .3s var(--ease), visibility .3s var(--ease), background .25s;
}
.back-to-top.visible{opacity:1; visibility:visible; transform:translateY(0);}
.back-to-top:hover{background:var(--gold-500); color:var(--purple-950);}

/* ============================================================
   LIGHTBOX
   ============================================================ */
.lightbox{
  position:fixed; inset:0; z-index:3000;
  background:rgba(20,14,33,.94);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transition:opacity .3s var(--ease), visibility .3s var(--ease);
}
.lightbox.is-open{opacity:1; visibility:visible;}
.lightbox img{max-width:88vw; max-height:84vh; border-radius:4px; box-shadow:0 40px 80px rgba(0,0,0,.5);}
.lightbox__close{position:absolute; top:28px; right:34px; font-size:30px; color:#fff; background:none; border:none;}
.lightbox__nav{position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.3); color:#fff; width:48px; height:48px; border-radius:50%; font-size:18px;}
.lightbox__nav--prev{left:28px;}
.lightbox__nav--next{right:28px;}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1080px){
  .about__grid, .why__grid, .contact__grid, .about-teaser__grid{grid-template-columns:1fr;}
  .about__media, .about-teaser__media{margin-bottom:20px;}
  .programs__panel.active{grid-template-columns:1fr;}
  .news__grid, .news-teaser__grid{grid-template-columns:1fr 1fr;}
  .news__card--feature, .news-card--feature{grid-column:1/-1;}
  .footer__top{grid-template-columns:1fr 1fr 1fr;}
  .footer__brand{grid-column:1/-1;}
  .values__row{grid-template-columns:1fr 1fr; row-gap:36px;}
  .values__divider{display:none;}
  .team__grid, .portfolio__grid, .programs__sub-grid,
  .portfolio-teaser__grid, .programs-teaser__grid{grid-template-columns:1fr 1fr;}
  .programs-teaser__head{grid-template-columns:1fr;}
  .cta-banner__inner{flex-direction:column; align-items:flex-start;}
  .testimonials__grid{grid-template-columns:1fr 1fr;}
  .approach__grid{grid-template-columns:1fr 1fr;}
  .process__steps{grid-template-columns:1fr 1fr;}
}

@media (max-width: 1200px){
  .topbar__addr{display:none;}
  .navbar__nav{display:none;}
  .navbar__cta{display:none;}
  .navbar__toggle{display:flex; margin-left:auto;}
  .navbar{top:0;}
  .hero{padding-top:88px;}
  .hero__stats{grid-template-columns:1fr 1fr;}
  .gallery__grid{grid-template-columns:1fr 1fr;}
  .news__grid, .news-teaser__grid{grid-template-columns:1fr;}
  .portfolio__grid, .programs__sub-grid, .team__grid,
  .portfolio-teaser__grid, .programs-teaser__grid{grid-template-columns:1fr;}
  .form__row{grid-template-columns:1fr;}
  .about-teaser__media-caption{margin-left:0; max-width:none;}
  .cta-banner__actions{flex-direction:column; align-items:stretch;}
  .cta-banner__actions .btn{width:100%;}
  .testimonials__grid{grid-template-columns:1fr;}
  .approach__grid{grid-template-columns:1fr;}
  .process__steps{grid-template-columns:1fr;}
  .timeline{padding-left:26px;}
  .footer__top{grid-template-columns:1fr 1fr; padding:60px 24px 40px;}
  .footer__bottom{flex-direction:column; gap:10px; text-align:center;}
  .section-inner{padding:0 20px;}
  .about, .why, .programs, .portfolio, .news, .team, .contact{padding-top:80px;}
  .contact{padding-bottom:0;}
  .contact__grid{padding-bottom:60px;}

  /* mobile nav drawer */
  .navbar__nav.open{
    display:block;
    position:fixed; top:0; right:0; bottom:0;
    width:min(320px,84vw);
    background:#fff;
    padding:100px 28px 28px;
    box-shadow:-20px 0 50px rgba(0,0,0,.25);
    overflow-y:auto;
  }
  .navbar__nav.open > ul{flex-direction:column; align-items:stretch; gap:2px;}
  .navbar__nav.open .dropdown{
    position:static; opacity:1; visibility:visible; transform:none;
    box-shadow:none; border:none; padding-left:14px; display:none;
  }
  .navbar__nav.open li.dropdown-open .dropdown{display:block;}
}

@media (max-width: 620px){
  .values__row{grid-template-columns:1fr;}
  .hero__stats{grid-template-columns:1fr 1fr;}
  .gallery__grid{grid-template-columns:1fr 1fr; grid-auto-rows:150px;}
  .about__media-caption{margin-left:0; max-width:none;}
  .programs__head{grid-template-columns:1fr;}
}

/* nav overlay backdrop for mobile drawer */
.nav-backdrop{
  position:fixed; inset:0; background:rgba(20,14,33,.5); z-index:998;
  opacity:0; visibility:hidden; transition:opacity .3s, visibility .3s;
}
.nav-backdrop.visible{opacity:1; visibility:visible;}