/* assets/css/style.css */
:root{
  --bg:#ffffff;
  --text:#0f172a;
  --muted:#64748b;
  --line:rgba(15,23,42,0.10);

  --green-900:#063a2a;
  --green-800:#0a4a34;
  --green-700:#0f5a3f;
  --green-600:#0f766e;

  --shadow:0 18px 40px rgba(0,0,0,0.16);
  --shadow-soft:0 14px 34px rgba(0,0,0,0.10);

  --radius:16px;
  --radius-sm:12px;
 --solar-500:#fbbf24;

  --font:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
}

*{box-sizing:border-box;}
html,body{height:100%;}
body{
  margin:0;
  font-family:var(--font);
  color:var(--text);
  background:var(--bg);
}

a{color:inherit;}
img{max-width:100%;display:block;}

.container{
  width:min(1200px,calc(100% - 32px));
  margin:0 auto;
}

/* Utilities */
.dot{
  width:4px;height:4px;border-radius:999px;
  background:rgba(255,255,255,0.35);
  display:inline-block;
}
.sr{position:absolute;left:-9999px;}

/* Topbar */
.topbar{
  background:linear-gradient(90deg,var(--green-900),#052d22);
  color:#e5f4ee;
  font-size:13px;
}
.topbar__wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:44px;
  gap:14px;
}
.topbar__left,.topbar__right{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.topbar__item{
  display:inline-flex;
  align-items:center;
  gap:8px;
  white-space:nowrap;
}
.tIcon,.pIcon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  opacity:0.95;
}
.topbar__link{
  text-decoration:none;
  opacity:0.95;
}
.topbar__link:hover{opacity:1;text-decoration:underline;}
.topbar__text{opacity:0.95;}
.topbar__sep{
  width:1px;height:18px;
  background:rgba(255,255,255,0.25);
}
.topbar__portal{
  display:inline-flex;
  align-items:center;
  gap:8px;
  text-decoration:none;
  font-weight:800;
}
.topbar__portal:hover{text-decoration:underline;}
.topbar__social{
  display:flex;
  align-items:center;
  gap:8px;
}
.topbar__icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:30px;height:30px;
  border-radius:999px;
  text-decoration:none;
  color:#e5f4ee;
}
.topbar__icon:hover{background:rgba(255,255,255,0.10);}

/* Header */
.header{
  background:#ffffff;
  border-bottom:1px solid var(--line);
  position:sticky;
  top:0;
  z-index:1000;
}
.header__wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:78px;
  gap:18px;
}
.brand{display:flex;align-items:center;text-decoration:none;}
.brand__img{height:60px;width:auto;}

/* Nav */
.nav{display:flex;align-items:center;}
.nav__toggle{
  display:none;
  border:0;
  background:transparent;
  width:44px;height:44px;
  border-radius:12px;
  cursor:pointer;
}
.nav__bars{
  width:22px;height:2px;
  background:#0f172a;
  display:block;
  position:relative;
  margin:0 auto;
}
.nav__bars::before,.nav__bars::after{
  content:"";
  position:absolute;
  left:0;
  width:22px;height:2px;
  background:#0f172a;
}
.nav__bars::before{top:-7px;}
.nav__bars::after{top:7px;}

.nav__menu{display:flex;align-items:center;}
.nav__list{
  display:flex;
  align-items:center;
  gap:10px;
  list-style:none;
  margin:0;
  padding:0;
}
.nav__item{position:relative;}
.nav__link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:10px 12px;
  border-radius:12px;
  text-decoration:none;
  font-weight:700;
  font-size:13px;
  letter-spacing:0.03em;
  text-transform:uppercase;
  color:#334155;
  white-space:nowrap;
}
.nav__link:hover{
  background:rgba(15,118,110,0.08);
  color:#0f172a;
}
.nav__link.is-active{
  background:rgba(15,118,110,0.10);
  color:#0f172a;
}

/* Remove black dots on ALL sub menus */
.sub-menu,.sub-menu li{list-style:none;margin:0;padding:0;}

/* Arrow indicators */
.menu-item-has-children > .nav__link::after{
  content:"";
  width:6px;height:6px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:translateY(-1px) rotate(45deg);
  opacity:0.75;
  margin-left:6px;
}
.menu-item-has-children.is-open > .nav__link::after{
  transform:translateY(1px) rotate(-135deg);
}

/* Submenu base */
.sub-menu{
  background:#ffffff;
  border:1px solid var(--line);
  border-radius:14px;
  box-shadow:var(--shadow-soft);
  min-width:280px;

  position:absolute;
  left:0;
  top:calc(100% + 12px);

  display:none;
  z-index:9999;
  padding:10px;
}
.sub__link{
  display:block;
  padding:10px 12px;
  border-radius:10px;
  text-decoration:none;
  font-weight:650;
  font-size:13px;
  text-transform:none;
  letter-spacing:normal;
  color:#0f172a;
  white-space:nowrap;
}
.sub__link:hover{background:rgba(15,118,110,0.08);}

/* Nested submenus */
.sub-menu .menu-item-has-children{position:relative;}
.sub-menu .menu-item-has-children > .sub__link{padding-right:28px;}
.sub-menu .menu-item-has-children > .sub__link::after{
  content:"";
  position:absolute;
  right:10px;
  top:50%;
  width:6px;height:6px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:translateY(-50%) rotate(-45deg);
  opacity:0.75;
}
.sub-menu .sub-menu{
  top:0;
  left:calc(100% + 10px);
}

/* Mega menu like sample */
.is-mega > .sub-menu.megaMenu{
  left:50%;
  transform:translateX(-50%);
  width:min(980px,calc(100vw - 40px));
  padding:0;
  border-radius:16px;
  overflow:hidden;
  box-shadow:var(--shadow);
}
.megaMenu__wrap{
  display:grid;
  grid-template-columns:300px 1fr;
  min-height:320px;
}
.megaMenu__media{
  background:#f3f4f6;
  border-right:1px solid rgba(0,0,0,0.06);
}
.megaMenu__media img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.megaMenu__cols{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
  padding:22px;
}
.megaMenu__cap{
  font-size:11px;
  font-weight:900;
  letter-spacing:0.12em;
  opacity:0.65;
  margin-bottom:10px;
}
.mega__link{
  display:block;
  padding:10px 12px;
  border-radius:12px;
  text-decoration:none;
  font-weight:650;
  font-size:13px;
  color:#0f172a;
}
.mega__link:hover{background:rgba(15,118,110,0.08);}

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 14px;
  border-radius:12px;
  text-decoration:none;
  font-weight:800;
  font-size:13px;
  border:1px solid transparent;
  cursor:pointer;
}
.btn--primary{background:#0f766e;color:#fff;}
.btn--primary:hover{filter:brightness(0.95);}
.btn--ghost{background:transparent;border-color:rgba(15,118,110,0.25);color:#0f172a;}
.btn--ghost:hover{background:rgba(15,118,110,0.08);}
.btn--sm{padding:8px 12px;border-radius:10px;font-size:12px;}

/* Hero */
.hero{
  background:linear-gradient(180deg,rgba(15,118,110,0.10),rgba(15,118,110,0));
  padding:22px 0 28px;
}
.hero__grid{
  display:grid;
  grid-template-columns:1.15fr 0.85fr;
  gap:22px;
  margin-top:18px;
  align-items:start;
}

/* Top banner slider */
.hb{
  position:relative;
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(0,0,0,0.08);
  box-shadow:var(--shadow-soft);
  min-height:360px;
}
.hbSlide{
  position:absolute;
  inset:0;
  opacity:0;
  pointer-events:none;
  background:#0b1f18;
  background-size:cover;
  background-position:center;
  transition:opacity 0.35s ease;
}
.hbSlide.is-active{
  opacity:1;
  pointer-events:auto;
}
.hbShade{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,0.62),rgba(0,0,0,0.20),rgba(0,0,0,0.10));
}
.hbContent{
  position:absolute;
  left:24px;
  bottom:22px;
  max-width:520px;
  color:#fff;
}
.hbKicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  font-weight:800;
  opacity:0.95;
  margin-bottom:10px;
}
.hbTitle{
  font-size:40px;
  line-height:1.05;
  font-weight:900;
  margin:0 0 10px;
}
.hbText{
  margin:0 0 14px;
  opacity:0.95;
  line-height:1.55;
}
.hbActions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;}
.hbVideo{
  display:inline-flex;
  gap:10px;
  align-items:center;
  text-decoration:none;
  color:#fff;
  font-weight:800;
  opacity:0.95;
}
.hbVideo:hover{opacity:1;text-decoration:underline;}
.hbPlay{
  width:34px;height:34px;
  border-radius:999px;
  background:rgba(255,255,255,0.14);
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.hbNav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:44px;height:44px;
  border-radius:999px;
  border:0;
  background:rgba(0,0,0,0.35);
  color:#fff;
  font-size:26px;
  cursor:pointer;
}
.hbNav:hover{background:rgba(0,0,0,0.48);}
.hbPrev{left:14px;}
.hbNext{right:14px;}
.hbDots{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  bottom:12px;
  display:flex;
  gap:8px;
}
.hbDot{
  width:9px;height:9px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,0.6);
  background:rgba(255,255,255,0.25);
  cursor:pointer;
}
.hbDot.is-active{background:#fff;border-color:#fff;}

/* Hero copy */
.pill{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:8px 12px;
  border-radius:999px;
  background:#fff;
  border:1px solid var(--line);
  font-weight:700;
  font-size:12px;
  color:#0f172a;
}
.pill__dot{
  width:8px;height:8px;
  border-radius:999px;
  background:#0f766e;
}
.hero__title{
  margin:12px 0 10px;
  font-size:44px;
  line-height:1.05;
  letter-spacing:-0.02em;
}
.hero__text{
  margin:0 0 16px;
  color:var(--muted);
  line-height:1.65;
}
.hero__actions{display:flex;gap:10px;flex-wrap:wrap;}
.hero__kpis{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:16px;
}
.kpi{
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px;
}
.kpi__value{font-weight:900;font-size:18px;}
.kpi__label{color:var(--muted);font-size:12px;margin-top:4px;}

/* Right hero slider */
.hero__slider{position:relative;}
.heroSlider{
  position:relative;
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(0,0,0,0.08);
  background:#0b1f18;
  min-height:260px;
}
.heroSlide{
  position:absolute;
  inset:0;
  opacity:0;
  pointer-events:none;
  transition:opacity 0.35s ease;
  background-size:cover;
  background-position:center;
}
.heroSlide.is-active{opacity:1;pointer-events:auto;}
.slide--1{background-image:linear-gradient(180deg,rgba(0,0,0,0.25),rgba(0,0,0,0.55)),url("../img/slide-1.jpg");}
.slide--2{background-image:linear-gradient(180deg,rgba(0,0,0,0.25),rgba(0,0,0,0.55)),url("../img/slide-2.jpg");}
.slide--3{background-image:linear-gradient(180deg,rgba(0,0,0,0.25),rgba(0,0,0,0.55)),url("../img/slide-3.jpg");}

.heroSlide__overlay{
  position:absolute;
  left:16px;
  right:16px;
  bottom:16px;
  color:#fff;
  background:rgba(0,0,0,0.30);
  border:1px solid rgba(255,255,255,0.10);
  border-radius:16px;
  padding:14px;
  backdrop-filter:blur(6px);
}
.heroSlide__cap{
  font-weight:900;
  font-size:12px;
  opacity:0.95;
  margin-bottom:8px;
}
.heroSlide__title{
  font-weight:900;
  font-size:18px;
  line-height:1.15;
  margin:0 0 6px;
}
.heroSlide__text{
  margin:0;
  opacity:0.95;
  line-height:1.45;
  font-size:13px;
}

.heroNav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:40px;height:40px;
  border-radius:999px;
  border:0;
  background:rgba(0,0,0,0.35);
  color:#fff;
  font-size:24px;
  cursor:pointer;
}
.heroNav:hover{background:rgba(0,0,0,0.48);}
.heroNav--prev{left:10px;}
.heroNav--next{right:10px;}

.heroDots{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  bottom:10px;
  display:flex;
  gap:8px;
}
.heroDot{
  width:9px;height:9px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,0.6);
  background:rgba(255,255,255,0.25);
  cursor:pointer;
}
.heroDot.is-active{background:#fff;border-color:#fff;}

.miniStrip{
  margin-top:12px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.miniStrip__item{
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px;
}
.miniStrip__k{font-weight:900;font-size:12px;color:#0f172a;}
.miniStrip__v{color:var(--muted);font-size:12px;margin-top:4px;}

/* Marquee */
.marquee{padding:14px 0;}
.marquee__track{
  display:flex;
  gap:14px;
  align-items:center;
  overflow:hidden;
  white-space:nowrap;
  border:1px solid var(--line);
  border-radius:999px;
  padding:10px 12px;
  background:#fff;
}
.marquee__item{font-weight:800;font-size:13px;color:#0f172a;opacity:0.9;}
.marquee__dot{
  width:6px;height:6px;border-radius:999px;background:rgba(15,118,110,0.35);
}
.marquee__spacer{width:26px;}

/* Sections */
.section{padding:44px 0;}
.section--alt{background:#f6f7f8;border-top:1px solid rgba(0,0,0,0.04);border-bottom:1px solid rgba(0,0,0,0.04);}
.section__head{margin-bottom:16px;}
.section__title{margin:0;font-size:30px;letter-spacing:-0.01em;}
.section__subtitle{margin:6px 0 0;color:var(--muted);line-height:1.55;}

/* Layout */
.grid2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
.cards3{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}

/* Cards */
.card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:18px;
  box-shadow:0 10px 24px rgba(0,0,0,0.06);
}
.card--soft{background:rgba(255,255,255,0.72);}
.card__title{margin:0 0 8px;font-size:18px;}
.card__text{margin:0;color:var(--muted);line-height:1.6;}

.list{margin:12px 0 0;padding-left:18px;color:#0f172a;}
.list li{margin:8px 0;}

.values{display:grid;gap:12px;margin-top:10px;}
.value__cap{font-weight:900;font-size:12px;color:#0f172a;opacity:0.9;}
.value__body{color:var(--muted);line-height:1.55;margin-top:4px;}

.stats{
  margin-top:16px;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.statCard{
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  padding:14px;
}
.statCard__v{font-weight:900;font-size:22px;}
.statCard__k{color:var(--muted);font-size:12px;margin-top:4px;}

.icon{
  width:44px;height:44px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(15,118,110,0.10);
  margin-bottom:10px;
}
.link{display:inline-flex;margin-top:10px;color:#0f766e;font-weight:900;text-decoration:none;}
.link:hover{text-decoration:underline;}

/* Accordion */
.accordion{margin-top:16px;display:grid;gap:10px;}
.acc__item{
  width:100%;
  text-align:left;
  border:1px solid var(--line);
  background:#fff;
  border-radius:16px;
  padding:14px;
  cursor:pointer;
  display:grid;
  grid-template-columns:1fr auto;
  grid-template-areas:
    "q chev"
    "a a";
  gap:8px 10px;
}
.acc__q{grid-area:q;font-weight:900;}
.acc__chev{grid-area:chev;font-weight:900;opacity:0.8;}
.acc__a{grid-area:a;color:var(--muted);line-height:1.55;display:none;}
.acc__item.is-open .acc__a{display:block;}
.acc__item.is-open .acc__chev{transform:rotate(45deg);}

/* Projects */
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px;}
.filter{
  border:1px solid var(--line);
  background:#fff;
  border-radius:999px;
  padding:8px 12px;
  cursor:pointer;
  font-weight:900;
  font-size:12px;
}
.filter.is-active{background:rgba(15,118,110,0.10);border-color:rgba(15,118,110,0.25);}

.projects{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.project{
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 10px 24px rgba(0,0,0,0.06);
}
.project__media{height:180px;background:#0b1f18;}
.project__media--a{background:linear-gradient(180deg,rgba(0,0,0,0.1),rgba(0,0,0,0.55)),url("../img/proj-1.jpg") center/cover;}
.project__media--b{background:linear-gradient(180deg,rgba(0,0,0,0.1),rgba(0,0,0,0.55)),url("../img/proj-2.jpg") center/cover;}
.project__media--c{background:linear-gradient(180deg,rgba(0,0,0,0.1),rgba(0,0,0,0.55)),url("../img/proj-3.jpg") center/cover;}
.project__media--d{background:linear-gradient(180deg,rgba(0,0,0,0.1),rgba(0,0,0,0.55)),url("../img/proj-4.jpg") center/cover;}
.project__body{padding:14px;}
.project__tag{
  display:inline-flex;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(15,118,110,0.10);
  color:#0f172a;
  font-weight:900;
  font-size:12px;
}
.project__title{margin:10px 0 6px;font-size:18px;}
.project__text{margin:0;color:var(--muted);line-height:1.55;}

/* Docs */
.docs{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.doc{
  display:flex;
  gap:12px;
  align-items:center;
  text-decoration:none;
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  padding:14px;
}
.doc:hover{background:rgba(15,118,110,0.06);}
.doc__icon{
  width:46px;height:46px;
  border-radius:14px;
  background:rgba(15,118,110,0.10);
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
}
.doc__title{font-weight:900;}
.doc__meta{color:var(--muted);font-size:12px;margin-top:2px;}

/* News slider */
.newsWrap{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:0 10px 24px rgba(0,0,0,0.06);}
.newsSlider{
  display:flex;
  gap:12px;
  overflow:hidden;
}
.newsCard{
  flex:0 0 calc(33.333% - 8px);
  border:1px solid var(--line);
  border-radius:18px;
  overflow:hidden;
  background:#fff;
}
.newsCard__media{height:140px;background:#0b1f18;}
.newsCard__media--a{background:linear-gradient(180deg,rgba(0,0,0,0.12),rgba(0,0,0,0.55)),url("../img/news-1.jpg") center/cover;}
.newsCard__media--b{background:linear-gradient(180deg,rgba(0,0,0,0.12),rgba(0,0,0,0.55)),url("../img/news-2.jpg") center/cover;}
.newsCard__media--c{background:linear-gradient(180deg,rgba(0,0,0,0.12),rgba(0,0,0,0.55)),url("../img/news-3.jpg") center/cover;}
.newsCard__media--d{background:linear-gradient(180deg,rgba(0,0,0,0.12),rgba(0,0,0,0.55)),url("../img/news-4.jpg") center/cover;}
.newsCard__body{padding:14px;}
.newsCard__meta{color:var(--muted);font-weight:800;font-size:12px;}
.newsCard__title{margin:8px 0 6px;font-size:16px;}
.newsCard__text{margin:0 0 10px;color:var(--muted);line-height:1.55;}

.newsControls{
  margin-top:12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.newsDots{display:flex;gap:8px;align-items:center;}
.newsDot{
  width:9px;height:9px;
  border-radius:999px;
  border:1px solid rgba(15,23,42,0.25);
  background:rgba(15,23,42,0.12);
  cursor:pointer;
}
.newsDot.is-active{background:#0f766e;border-color:#0f766e;}

/* Form */
.form{margin-top:10px;}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;}
.row--1{grid-template-columns:1fr;}
.field label{display:block;font-weight:900;font-size:12px;margin-bottom:6px;}
.field input,.field textarea{
  width:100%;
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px;
  font-family:var(--font);
  font-size:13px;
  outline:none;
  background:#fff;
}
.field input:focus,.field textarea:focus{border-color:rgba(15,118,110,0.50);}
.form__actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;}
.form__status{color:var(--muted);font-weight:700;font-size:12px;}

/* Contact side */
.contactGrid{display:grid;gap:10px;margin-top:12px;}
.contactItem__k{font-weight:900;font-size:12px;color:#0f172a;}
.contactItem__v{color:var(--muted);}
.map{
  margin-top:14px;
  height:180px;
  border-radius:16px;
  border:1px dashed rgba(15,23,42,0.22);
  display:flex;
  align-items:center;
  justify-content:center;
}
.map__hint{color:var(--muted);font-weight:800;font-size:12px;}

/* Footer */
.footer{border-top:1px solid var(--line);padding:26px 0 18px;}
.footer__grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:18px;
  margin-bottom:14px;
}
.footer__brand{display:flex;align-items:center;gap:10px;}
.footer__logo{height:40px;width:auto;}
.footer__name{font-weight:900;}
.footer__meta{color:var(--muted);font-size:12px;margin-top:2px;}
.footer__text{color:var(--muted);line-height:1.6;margin:10px 0 0;}
.footer__cap{font-weight:900;font-size:12px;margin-bottom:10px;}
.footer__link{display:block;text-decoration:none;color:#0f172a;opacity:0.85;margin:8px 0;}
.footer__link:hover{opacity:1;text-decoration:underline;}
.footer__bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  color:var(--muted);
  font-size:12px;
}
.footer__bottomLinks{display:flex;align-items:center;gap:10px;}
.footer__bottomLinks a{text-decoration:none;color:var(--muted);}
.footer__bottomLinks a:hover{text-decoration:underline;color:#0f172a;}

/* To top */
.toTop{
  position:fixed;
  right:16px;
  bottom:16px;
  width:44px;height:44px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  box-shadow:0 12px 26px rgba(0,0,0,0.12);
  cursor:pointer;
  display:none;
  font-weight:900;
}

/* Modals */
.modal{
  position:fixed;
  inset:0;
  display:none;
  z-index:3000;
}
.modal.is-open{display:block;}
.modal__overlay{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,0.55);
}
.modal__panel{
  position:relative;
  width:min(820px,calc(100% - 32px));
  margin:70px auto 0;
  background:#fff;
  border-radius:18px;
  box-shadow:var(--shadow);
  overflow:hidden;
}
.modal__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  padding:16px;
  border-bottom:1px solid var(--line);
}
.modal__cap{color:var(--muted);font-weight:900;font-size:12px;}
.modal__title{font-weight:900;font-size:18px;margin-top:4px;}
.modal__close{
  width:40px;height:40px;
  border-radius:12px;
  border:1px solid var(--line);
  background:#fff;
  cursor:pointer;
  font-size:18px;
  font-weight:900;
}
.modal__body{padding:16px;color:#0f172a;line-height:1.65;}
.modal__foot{padding:16px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:10px;}

.vframe{
  width:100%;
  aspect-ratio:16/9;
  background:#000;
  border-radius:14px;
  overflow:hidden;
}
.vframe iframe{width:100%;height:100%;border:0;display:block;}

/* Reveal */
.reveal{opacity:0;transform:translateY(10px);transition:opacity 0.35s ease,transform 0.35s ease;}
.reveal.is-in{opacity:1;transform:translateY(0);}

/* Mobile */
@media (max-width: 980px){
  .topbar__wrap{flex-direction:column;align-items:flex-start;padding:10px 0;}
  .nav__toggle{display:inline-flex;align-items:center;justify-content:center;}
  .nav__menu{
    position:fixed;
    left:16px;right:16px;
    top:86px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:16px;
    padding:12px;
    box-shadow:var(--shadow);
    display:none;
    z-index:2000;
  }
  .nav__menu.is-open{display:block;}
  .nav__list{flex-direction:column;align-items:stretch;gap:6px;}
  .nav__link{width:100%;justify-content:space-between;}
  .sub-menu{
    position:static;
    transform:none;
    width:100%;
    min-width:0;
    margin-top:8px;
    box-shadow:none;
    display:none;
  }
  .menu-item-has-children.is-open > .sub-menu{display:block;}

  .is-mega > .sub-menu.megaMenu{
    left:0;
    transform:none;
    width:100%;
  }
  .megaMenu__wrap{grid-template-columns:1fr;min-height:auto;}
  .megaMenu__media{min-height:160px;border-right:0;border-bottom:1px solid rgba(0,0,0,0.06);}

  .hero__grid{grid-template-columns:1fr;gap:14px;}
  .hb{min-height:320px;}
  .hbTitle{font-size:30px;}
  .hero__title{font-size:36px;}

  .cards3{grid-template-columns:1fr;}
  .grid2{grid-template-columns:1fr;}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr));}
  .projects{grid-template-columns:1fr;}
  .docs{grid-template-columns:1fr;}
  .newsCard{flex:0 0 85%;}
  .footer__grid{grid-template-columns:1fr;}
  .footer__bottom{flex-direction:column;align-items:flex-start;}
  .row{grid-template-columns:1fr;}
}
/* ADD this at the END of your CSS (after the mega menu styles) */

/* Pro font for menu + mega menu */
#navMenu > .nav__link,
#navMenu > .menu-item-has-children > a.nav__link{
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

#navMenu .megaMenu__cap{
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-weight: 800;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

#navMenu .megaMenu__col a.nav__link{
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0;
  text-transform: none;
  line-height: 1.25;
}

/* Fix overlap inside mega menu */
#navMenu .megaMenu__cols{
  align-items: start;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px;
}

#navMenu .megaMenu__col{
  min-width: 0;
}

#navMenu .megaMenu__col a.nav__link{
  display: block;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
  padding: 10px 12px;
  border-radius: 10px;
}

#navMenu .megaMenu__col a.nav__link:hover{
  background: rgba(0,0,0,0.06);
}

/* Make each link take full row spacing so lines never collide */
#navMenu .megaMenu__col a.nav__link + a.nav__link{
  margin-top: 4px;
}

/* Optional: slightly wider mega menu so columns breathe */
#navMenu .is-mega > .sub-menu.megaMenu{
  width: min(1100px, calc(100vw - 40px));
}

/* If media image is too wide, reduce it */
#navMenu .megaMenu__media{
  width: 260px;
}

/* Responsive: keep clean single column on small screens */
@media (max-width: 980px){
  #navMenu .megaMenu__cols{
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 16px;
  }
  #navMenu .megaMenu__media{
    height: 150px;
  }
}
/* Transparent (glass) mega menu card */
#navMenu .is-mega > .sub-menu.megaMenu{
  background: rgba(255,255,255,0.72) !important;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255,255,255,0.35);
  box-shadow: 0 18px 40px rgba(0,0,0,0.18);
}

/* If you have any inner white blocks, keep them transparent too */
#navMenu .megaMenu__media{
  background: rgba(255,255,255,0.18);
}
/* Live power panel */
.livePanel{
  border-radius: 18px;
  padding: 16px;
  min-height: 360px;
  background: linear-gradient(180deg, rgba(7, 59, 42, 0.92), rgba(5, 30, 22, 0.92));
  color: #fff;
  box-shadow: 0 18px 38px rgba(0,0,0,0.20);
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.10);
}

.liveHead{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.liveKicker{
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  opacity: 0.80;
}

.liveTitle{
  font-size: 16px;
  font-weight: 800;
  margin-top: 4px;
}

.livePill{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,0.10);
  border: 1px solid rgba(255,255,255,0.14);
  font-size: 12px;
  white-space: nowrap;
}

.dotPulse{
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #19c37d;
  box-shadow: 0 0 0 0 rgba(25,195,125,0.7);
  animation: pulse 1.6s infinite;
}

@keyframes pulse{
  0%{ box-shadow: 0 0 0 0 rgba(25,195,125,0.7) }
  70%{ box-shadow: 0 0 0 10px rgba(25,195,125,0) }
  100%{ box-shadow: 0 0 0 0 rgba(25,195,125,0) }
}

.liveGrid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 12px;
}

.liveStat{
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 14px;
  padding: 12px;
}

.liveStat__k{
  font-size: 12px;
  opacity: 0.86;
}

.liveStat__v{
  font-size: 22px;
  font-weight: 900;
  margin-top: 6px;
  line-height: 1.1;
}

.liveStat__v .u{
  font-size: 12px;
  font-weight: 700;
  opacity: 0.85;
}

.liveStat__s{
  margin-top: 6px;
  font-size: 12px;
  opacity: 0.82;
}

.bar{
  height: 10px;
  margin-top: 10px;
  background: rgba(255,255,255,0.12);
  border-radius: 999px;
  overflow: hidden;
}

.barFill{
  height: 100%;
  display: block;
  width: 0%;
  background: linear-gradient(90deg, #19c37d, #2dd4bf);
  border-radius: 999px;
  transition: width 300ms ease;
}

.liveMini{
  margin-top: 10px;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  font-size: 12px;
  opacity: 0.88;
}

.liveCharts{
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

.chartCard{
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 14px;
  padding: 12px;
}

.chartHead{
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 6px;
}

.chartTitle{
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.92;
}

.chartMeta{
  font-size: 12px;
  opacity: 0.72;
}

@media (max-width: 980px){
  .liveGrid{ grid-template-columns: 1fr }
}
/* Hide the whole charts area (graphs) */
/* SHOW live graphs */
.liveCharts{
  display:grid !important;
  grid-template-columns: 1fr;
  gap:12px;
}

/* Make canvas visible and sized */s
.chartCard{
  position:relative;
}

.chartCard canvas{
  display:block;
  width:100% !important;
  height:220px !important;
}

/* ABOUT strip like sample card row */
.aboutStrip{
  background: #fff;
  border: 1px solid rgba(17, 24, 39, 0.08);
  border-radius: 18px;
  box-shadow: 0 18px 40px rgba(0,0,0,0.08);
  overflow: hidden;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.aboutStrip__card{
  padding: 26px 26px 22px;
  min-height: 230px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  position: relative;
}

.aboutStrip__card + .aboutStrip__card{
  border-left: 1px solid rgba(17, 24, 39, 0.08);
}

.aboutStrip__icon{
  width: 56px;
  height: 56px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(15, 118, 110, 0.10);
  color: var(--accent, #0f766e);
}

.aboutStrip__kicker{
  font-size: 12px;
  font-weight: 700;
  color: var(--accent, #0f766e);
  letter-spacing: 0.02em;
}

.aboutStrip__title{
  margin: 0;
  font-size: 18px;
  line-height: 1.25;
  font-weight: 800;
  color: #0f172a;
}

.aboutStrip__text{
  margin: 0;
  font-size: 14px;
  line-height: 1.7;
  color: rgba(15, 23, 42, 0.72);
  max-width: 28ch;
}

.aboutStrip__more{
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--accent, #0f766e);
  font-weight: 800;
  text-decoration: none;
  font-size: 14px;
}

.aboutStrip__moreIcon{
  width: 28px;
  height: 28px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(15, 118, 110, 0.12);
  line-height: 1;
}

.aboutStrip__card:hover{
  background: rgba(15, 118, 110, 0.03);
}

/* Responsive */
@media (max-width: 1100px){
  .aboutStrip{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .aboutStrip__card + .aboutStrip__card{
    border-left: 0;
  }
  .aboutStrip__card:nth-child(2),
  .aboutStrip__card:nth-child(4){
    border-left: 1px solid rgba(17, 24, 39, 0.08);
  }
  .aboutStrip__card:nth-child(3),
  .aboutStrip__card:nth-child(4){
    border-top: 1px solid rgba(17, 24, 39, 0.08);
  }
}

@media (max-width: 640px){
  .aboutStrip{
    grid-template-columns: 1fr;
  }
  .aboutStrip__card{
    border-left: 0 !important;
    border-top: 1px solid rgba(17, 24, 39, 0.08);
  }
  .aboutStrip__card:first-child{
    border-top: 0;
  }
  .aboutStrip__text{
    max-width: none;
  }
}
/* ABOUT strip like sample card row */
.aboutStrip{
  background: #fff;
  border: 1px solid rgba(17, 24, 39, 0.08);
  border-radius: 18px;
  box-shadow: 0 18px 40px rgba(0,0,0,0.08);
  overflow: hidden;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.aboutStrip__card{
  padding: 26px 26px 22px;
  min-height: 230px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  position: relative;
}

.aboutStrip__card + .aboutStrip__card{
  border-left: 1px solid rgba(17, 24, 39, 0.08);
}

.aboutStrip__icon{
  width: 56px;
  height: 56px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(15, 118, 110, 0.10);
  color: var(--accent, #0f766e);
}

.aboutStrip__kicker{
  font-size: 12px;
  font-weight: 700;
  color: var(--accent, #0f766e);
  letter-spacing: 0.02em;
}

.aboutStrip__title{
  margin: 0;
  font-size: 18px;
  line-height: 1.25;
  font-weight: 800;
  color: #0f172a;
}

.aboutStrip__text{
  margin: 0;
  font-size: 14px;
  line-height: 1.7;
  color: rgba(15, 23, 42, 0.72);
  max-width: 28ch;
}

.aboutStrip__more{
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--accent, #0f766e);
  font-weight: 800;
  text-decoration: none;
  font-size: 14px;
}

.aboutStrip__moreIcon{
  width: 28px;
  height: 28px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(15, 118, 110, 0.12);
  line-height: 1;
}

.aboutStrip__card:hover{
  background: rgba(15, 118, 110, 0.03);
}

/* Responsive */
@media (max-width: 1100px){
  .aboutStrip{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .aboutStrip__card + .aboutStrip__card{
    border-left: 0;
  }
  .aboutStrip__card:nth-child(2),
  .aboutStrip__card:nth-child(4){
    border-left: 1px solid rgba(17, 24, 39, 0.08);
  }
  .aboutStrip__card:nth-child(3),
  .aboutStrip__card:nth-child(4){
    border-top: 1px solid rgba(17, 24, 39, 0.08);
  }
}

@media (max-width: 640px){
  .aboutStrip{
    grid-template-columns: 1fr;
  }
  .aboutStrip__card{
    border-left: 0 !important;
    border-top: 1px solid rgba(17, 24, 39, 0.08);
  }
  .aboutStrip__card:first-child{
    border-top: 0;
  }
  .aboutStrip__text{
    max-width: none;
  }
}
/* Mission block (replaces the big headline area) */
.missionBlock{
  padding-right: 10px;
}

.missionBlock__title{
  margin: 12px 0 10px;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.06;
  font-size: clamp(30px, 3vw, 44px);
  color: #0b1220;
}

.missionBlock__text{
  margin: 0 0 16px;
  color: #475569;
  line-height: 1.7;
  font-size: 15px;
  max-width: 58ch;
}

.missionBlock__highlights{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 14px 0 16px;
}

.mHi{
  background: #ffffff;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 14px;
  padding: 12px 12px;
  box-shadow: 0 12px 26px rgba(2, 6, 23, 0.06);
}

.mHi__k{
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: #0f766e;
  margin-bottom: 4px;
}

.mHi__v{
  font-size: 14px;
  font-weight: 700;
  color: #0b1220;
}

.missionBlock__actions{
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 6px;
}

/* Make it stack nicely on smaller screens */
@media (max-width: 980px){
  .missionBlock__highlights{
    grid-template-columns: 1fr;
  }
}
/* Partners slider */
.partners{
  position: relative;
  display: grid;
  grid-template-columns: 44px 1fr 44px;
  align-items: center;
  gap: 12px;
}

.partners__viewport{
  overflow: hidden;
  border-radius: 16px;
  padding: 10px;
  outline: none;
}

.partners__track{
  display: flex;
  gap: 14px;
  transform: translateX(0);
  transition: transform 420ms ease;
  will-change: transform;
}

.partnerCard{
  flex: 0 0 auto;
  width: 190px;
  height: 92px;
  border-radius: 14px;
  background: rgba(255,255,255,0.75);
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: 0 14px 30px rgba(2, 6, 23, 0.08);
  display: grid;
  place-items: center;
  text-decoration: none;
}

.partnerCard img{
  max-width: 78%;
  max-height: 70%;
  object-fit: contain;
  filter: grayscale(100%);
  opacity: 0.85;
  transition: filter 200ms ease, opacity 200ms ease, transform 200ms ease;
}

.partnerCard:hover img,
.partnerCard:focus img{
  filter: grayscale(0%);
  opacity: 1;
  transform: scale(1.03);
}

.partners__btn{
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: rgba(255,255,255,0.8);
  box-shadow: 0 10px 22px rgba(2, 6, 23, 0.10);
  cursor: pointer;
  font-size: 20px;
  line-height: 1;
}

.partners__btn:hover{
  background: rgba(255,255,255,0.95);
}

.partners__dots{
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 14px;
}

.partnersDot{
  width: 8px;
  height: 8px;
  border-radius: 999px;
  border: 0;
  background: rgba(2, 6, 23, 0.18);
  cursor: pointer;
}

.partnersDot.is-active{
  background: rgba(15, 118, 110, 0.9);
  width: 18px;
}

/* Responsive widths */
@media (max-width: 1100px){
  .partnerCard{ width: 170px; }
}
@media (max-width: 820px){
  .partners{ grid-template-columns: 40px 1fr 40px; }
  .partnerCard{ width: 160px; }
}
@media (max-width: 520px){
  .partnerCard{ width: 140px; height: 84px; }
}
/* Videos section */
.ytHead{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:18px;
}

.ytAvatarWrap{
  width:46px;
  height:46px;
  border-radius:999px;
  overflow:hidden;
  background:#eef2f7;
  border:1px solid rgba(17,24,39,0.10);
  display:flex;
  align-items:center;
  justify-content:center;
}

.ytAvatar{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.ytChannelName{
  font-weight:800;
  font-size:18px;
  color:#0f172a;
}

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

.ytCard{
  border-radius:10px;
  overflow:hidden;
  background:#fff;
  border:1px solid rgba(17,24,39,0.08);
  box-shadow:0 12px 26px rgba(0,0,0,0.06);
  cursor:pointer;
  transform:translateY(0);
  transition:transform 180ms ease, box-shadow 180ms ease;
}

.ytCard:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 38px rgba(0,0,0,0.10);
}

.ytThumb{
  position:relative;
  aspect-ratio:16/9;
  background:#e5e7eb;
}

.ytThumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.ytPlay{
  position:absolute;
  left:50%;
  top:50%;
  width:54px;
  height:54px;
  border-radius:999px;
  transform:translate(-50%, -50%);
  background:rgba(0,0,0,0.42);
  border:1px solid rgba(255,255,255,0.35);
  display:flex;
  align-items:center;
  justify-content:center;
}

.ytPlay svg{
  width:18px;
  height:18px;
  margin-left:2px;
}

.ytMeta{
  padding:12px 12px 14px;
}

.ytTitle{
  font-weight:800;
  font-size:14px;
  line-height:1.25;
  color:#0f172a;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:34px;
}

.ytSub{
  margin-top:6px;
  font-size:12px;
  color:#64748b;
}

.ytActions{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  margin-top:18px;
}

.ytBtn{
  border:0;
  border-radius:10px;
  padding:10px 16px;
  font-weight:800;
  font-size:13px;
  cursor:pointer;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:140px;
}

.ytBtnGhost{
  background:#111827;
  color:#fff;
}

.ytBtnGhost:hover{
  opacity:0.92;
}

.ytBtnPrimary{
  background:#2563eb;
  color:#fff;
}

.ytBtnPrimary:hover{
  opacity:0.92;
}

@media (max-width: 980px){
  .ytGrid{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px){
  .ytGrid{ grid-template-columns:1fr; }
  .ytBtn{ width:100%; }
  .ytActions{ flex-direction:column; }
}
/* NEWS SLIDER */
.newsWrap{ overflow:hidden; }

.newsViewport{
  overflow:hidden;
  border-radius:18px;
}

.newsSlider{
  display:flex;
  gap:18px;
  transition:transform 320ms ease;
  will-change:transform;
  padding: 2px;
}

.newsCard{
  flex: 0 0 calc((100% - 36px) / 3);
  overflow:hidden;
  border-radius:16px;
  background:#fff;
  box-shadow: 0 18px 40px rgba(0,0,0,0.08);
  display:flex;
  flex-direction:column;
}

@media (max-width: 980px){
  .newsCard{ flex-basis: calc((100% - 18px) / 2); }
}
@media (max-width: 640px){
  .newsCard{ flex-basis: 100%; }
}

.newsCard__media{
  height:190px;
  background:#e5e7eb;
  position:relative;
  overflow:hidden;
}

.newsCard__media img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
}

.newsCard__media::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(to bottom, rgba(0,0,0,0) 55%, rgba(0,0,0,0.25) 100%);
  pointer-events:none;
}

.newsCard__body{
  padding:16px 16px 18px;
  display:flex;
  flex-direction:column;
  gap:6px;
  flex:1;
}

.newsCard__title{
  font-weight:800;
  letter-spacing:-0.01em;
}

.newsCard__text{ color:#475569; }

.newsCard__body .btn{ margin-top:auto; }

.newsControls{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-top:14px;
}

.newsDots{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  flex:1;
}

.newsDot{
  width:9px;
  height:9px;
  border-radius:999px;
  border:0;
  background:#cbd5e1;
  cursor:pointer;
}
.newsDot.is-active{
  width:20px;
  background: var(--accent, #0f766e);
}
/* NEWS SLIDER */
.newsWrap{ overflow:hidden; }

.newsViewport{
  overflow:hidden;
  border-radius:18px;
}

.newsSlider{
  display:flex;
  gap:18px;
  transition:transform 320ms ease;
  will-change:transform;
  padding: 2px;
}

.newsCard{
  flex: 0 0 calc((100% - 36px) / 3);
  overflow:hidden;
  border-radius:16px;
  background:#fff;
  box-shadow: 0 18px 40px rgba(0,0,0,0.08);
  display:flex;
  flex-direction:column;
}

@media (max-width: 980px){
  .newsCard{ flex-basis: calc((100% - 18px) / 2); }
}
@media (max-width: 640px){
  .newsCard{ flex-basis: 100%; }
}

.newsCard__media{
  height:190px;
  background:#e5e7eb;
  position:relative;
  overflow:hidden;
}

.newsCard__media img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
}

.newsCard__media::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(to bottom, rgba(0,0,0,0) 55%, rgba(0,0,0,0.25) 100%);
  pointer-events:none;
}

.newsCard__body{
  padding:16px 16px 18px;
  display:flex;
  flex-direction:column;
  gap:6px;
  flex:1;
}

.newsCard__title{
  font-weight:800;
  letter-spacing:-0.01em;
}

.newsCard__text{ color:#475569; }

.newsCard__body .btn{ margin-top:auto; }

.newsControls{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-top:14px;
}

.newsDots{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  flex:1;
}

.newsDot{
  width:9px;
  height:9px;
  border-radius:999px;
  border:0;
  background:#cbd5e1;
  cursor:pointer;
}
.newsDot.is-active{
  width:20px;
  background: var(--accent, #0f766e);
}
/* NEWS SLIDER OVERRIDES */
#news .newsViewport { overflow: hidden; }

#news .newsSlider{
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 18px;
  transform: translateX(0);
  transition: transform 320ms ease;
  will-change: transform;
}

#news .newsCard{
  flex: 0 0 calc((100% - 36px) / 3) !important;
}

@media (max-width: 980px){
  #news .newsCard{ flex-basis: calc((100% - 18px) / 2) !important; }
}
@media (max-width: 640px){
  #news .newsCard{ flex-basis: 100% !important; }
}
/* =========================
   LATEST NEWS SLIDER FIX
   Put this at the END
========================= */

#news .newsWrap,
#news .newsViewport{
  overflow: hidden !important;
  width: 100%;
}

#news .newsSlider{
  display: flex !important;
  flex-wrap: nowrap !important;
  overflow: visible !important; /* important, track must NOT clip itself */
  gap: 18px !important;
  transform: translate3d(0,0,0);
  transition: transform 420ms ease;
  will-change: transform;
}

#news .newsCard{
  flex: 0 0 calc((100% - 36px) / 3) !important;
  max-width: calc((100% - 36px) / 3) !important;
}

@media (max-width: 980px){
  #news .newsCard{
    flex-basis: calc((100% - 18px) / 2) !important;
    max-width: calc((100% - 18px) / 2) !important;
  }
}

@media (max-width: 640px){
  #news .newsCard{
    flex-basis: 100% !important;
    max-width: 100% !important;
  }
}


/* Accessibility and polish */
html{scroll-behavior:smooth;}
section[id]{scroll-margin-top:92px;}

.skiplink{
  position:absolute;
  left:12px;
  top:-48px;
  z-index:2000;
  background:#ffffff;
  border:1px solid var(--line);
  border-radius:12px;
  padding:10px 12px;
  text-decoration:none;
  font-weight:900;
  box-shadow:0 10px 24px rgba(0,0,0,0.10);
}
.skiplink:focus{top:12px;}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible{
  outline:3px solid rgba(15,118,110,0.35);
  outline-offset:2px;
}

.map--embed{
  border:1px solid var(--line);
  background:#fff;
  display:block;
  overflow:hidden;
}
.map--embed iframe{
  width:100%;
  height:100%;
  border:0;
  display:block;
}


/* Spacing helpers */
.mt16{margin-top:16px;}
/* Who We Are page */
.pageHero{
  position:relative;
  padding:54px 0 46px;
  background:linear-gradient(90deg,var(--green-900),var(--green-800));
  color:#eafff6;
  overflow:hidden;
}
.pageHero__bg{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,rgba(0,0,0,0.18),rgba(0,0,0,0.28)),
    url("../img/banner-2.jpg") center/cover no-repeat;
  opacity:0.46;
  transform:scale(1.04);
  transform-origin:center;
  animation:pageHeroFloat 18s ease-in-out infinite alternate;
  filter:saturate(1.06) contrast(1.02);
}
.pageHero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 18% 28%, rgba(158,236,196,0.18), transparent 30%),
    radial-gradient(circle at 82% 24%, rgba(255,255,255,0.08), transparent 22%),
    linear-gradient(90deg, rgba(5, 54, 39, 0.30), rgba(0,0,0,0.05), rgba(5, 54, 39, 0.24));
  pointer-events:none;
}
@keyframes pageHeroFloat{
  from{ transform:scale(1.04) translate3d(0,0,0); }
  to{ transform:scale(1.085) translate3d(0,-8px,0); }
}
.pageHero__wrap{position:relative;}
.pageHero__title{
  margin:10px 0 8px;
  font-size:40px;
  letter-spacing:-0.02em;
}
.pageHero__sub{
  margin:0;
  max-width:780px;
  color:rgba(234,255,246,0.85);
  line-height:1.6;
}

.crumbs{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:800;
  font-size:13px;
  letter-spacing:0.02em;
  text-transform:uppercase;
  color:rgba(234,255,246,0.85);
}
.crumbs__link{color:inherit;text-decoration:none;}
.crumbs__link:hover{text-decoration:underline;}
.crumbs__sep{opacity:0.65;}
.crumbs__current{opacity:0.95;}

.whoGrid{
  display:grid;
  grid-template-columns:1.6fr 1fr;
  gap:16px;
  align-items:start;
}
.whoMain{display:grid;gap:16px;}
.whoSide{display:block;}
.whoSticky{
  position:sticky;
  top:96px;
}

.whoCap{
  font-weight:900;
  font-size:12px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:rgba(15,118,110,0.95);
  margin-bottom:6px;
}
.whoTitle{
  margin:0 0 8px;
  font-size:22px;
  letter-spacing:-0.01em;
}
.whoDivider{
  height:1px;
  background:rgba(15,23,42,0.10);
  margin:14px 0;
}

.whoValues{margin-top:10px;}
.whoValue{
  border:1px solid rgba(15,23,42,0.10);
  border-radius:16px;
  padding:14px;
  background:rgba(255,255,255,0.70);
}
.whoValue__k{font-weight:900;}
.whoValue__t{margin-top:6px;color:var(--muted);line-height:1.55;}

.whoList{
  margin:10px 0 0;
  padding-left:18px;
  color:#0f172a;
}
.whoList li{margin:8px 0;color:#0f172a;}
.whoToc{
  display:grid;
  gap:8px;
  margin-top:10px;
}
.whoToc a{
  text-decoration:none;
  font-weight:900;
  color:#0f172a;
  opacity:0.85;
}
.whoToc a:hover{opacity:1;text-decoration:underline;}

.whoCta{
  background:linear-gradient(90deg,rgba(15,118,110,0.10),rgba(6,58,42,0.08));
}
.whoCta__k{font-weight:900;letter-spacing:0.06em;text-transform:uppercase;font-size:12px;color:#0f172a;opacity:0.85;}
.whoCta__t{margin-top:6px;color:var(--muted);line-height:1.55;}
.whoCta__a{margin-top:12px;display:flex;gap:10px;flex-wrap:wrap;}

@media (max-width: 980px){
  .pageHero__title{font-size:32px;}
  .whoGrid{grid-template-columns:1fr;}
  .whoSticky{position:static;top:auto;}
}
/* Our School page */
.pageHero--school .pageHero__bg--school{
  background:
    linear-gradient(180deg,rgba(0,0,0,0.18),rgba(0,0,0,0.55)),
    url("../img/school10.jpg") center/cover no-repeat;
  opacity:0.42;
}

.schoolGrid{
  display:grid;
  grid-template-columns:1.6fr 1fr;
  gap:16px;
  align-items:start;
}
.schoolMain{display:grid;gap:16px;}
.schoolSticky{position:sticky;top:96px;}

.pillList{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:12px;
}
.pill{
  border:1px solid rgba(15,23,42,0.10);
  background:rgba(255,255,255,0.72);
  padding:8px 10px;
  border-radius:999px;
  font-weight:800;
  font-size:12px;
  color:#0f172a;
  opacity:0.9;
}

.cleanList{
  margin:10px 0 0;
  padding-left:18px;
  color:#0f172a;
}
.cleanList li{margin:8px 0;color:#0f172a;}

.schoolHead{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}

.schoolGallery{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
  margin-top:12px;
}
.schoolPhoto{
  display:block;
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(15,23,42,0.10);
  background:#fff;
}
.schoolPhoto img{
  display:block;
  width:100%;
  height:220px;
  object-fit:cover;
  transition:transform 220ms ease;
}
.schoolPhoto:hover img{transform:scale(1.03);}

.schoolHint{margin-top:12px;}

.schoolContact{display:grid;gap:10px;margin-top:10px;}
.schoolContact__row{display:grid;gap:4px;}
.schoolContact__k{
  font-weight:900;
  font-size:12px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:rgba(15,118,110,0.95);
}
.schoolContact__v{
  color:#0f172a;
  text-decoration:none;
  font-weight:700;
  opacity:0.85;
}
.schoolContact__v:hover{opacity:1;text-decoration:underline;}

.schoolCta{
  display:grid;
  gap:10px;
  background:linear-gradient(90deg,rgba(15,118,110,0.10),rgba(6,58,42,0.08));
  border:1px solid rgba(15,23,42,0.10);
  border-radius:16px;
  padding:14px;
}
.schoolCta__k{
  font-weight:900;
  letter-spacing:0.06em;
  text-transform:uppercase;
  font-size:12px;
  color:#0f172a;
  opacity:0.85;
}
.schoolCta__t{color:var(--muted);line-height:1.55;}

@media (max-width: 980px){
  .schoolGrid{grid-template-columns:1fr;}
  .schoolSticky{position:static;top:auto;}
  .schoolPhoto img{height:200px;}
}
/* Our School hero mosaic */
.pageHero{ position:relative; }

.heroMosaic{
  position:absolute;
  inset:0;
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  grid-template-rows:repeat(2, 1fr);
  gap:0;
  overflow:hidden;
  z-index:0;
}

.heroTile{
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  filter:saturate(1.05) contrast(1.05);
  transform:scale(1.02);
}

/* Dark overlay for readable text */
.heroMosaic::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(0,0,0,0.70), rgba(0,0,0,0.25) 55%, rgba(0,0,0,0.55));
  z-index:2;
}

/* Ensure hero content sits above mosaic */
.pageHero__wrap{
  position:relative;
  z-index:5;
}

/* Map images */
.heroTile.t1{ background-image:url("assets/img/school1.jpg"); }
.heroTile.t2{ background-image:url("assets/img/school2.jpg"); }
.heroTile.t3{ background-image:url("assets/img/school3.jpg"); }
.heroTile.t4{ background-image:url("assets/img/school4.jpg"); }
.heroTile.t5{ background-image:url("assets/img/school5.jpg"); }
.heroTile.t6{ background-image:url("assets/img/school6.jpg"); }
.heroTile.t7{ background-image:url("assets/img/school7.jpg"); }
.heroTile.t8{ background-image:url("assets/img/school8.jpg"); }
.heroTile.t9{ background-image:url("assets/img/school9.jpg"); }
.heroTile.t10{ background-image:url("assets/img/school10.jpg"); }

/* Mobile */
@media (max-width: 980px){
  .heroMosaic{
    grid-template-columns:repeat(2, 1fr);
    grid-template-rows:repeat(5, 1fr);
  }
}
/* FOIC page */
.pageHero{
  position:relative;
  padding:64px 0 54px;
  color:#e5f4ee;
  background:linear-gradient(90deg,var(--green-900),#052d22);
  overflow:hidden;
}
.pageHero__bg{
  position:absolute;
  inset:0;
  background:url("assets/img/foic-hero.jpg") center/cover no-repeat;
  opacity:0.22;
  filter:saturate(1.1) contrast(1.05);
}
.pageHero::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(6,58,42,0.92), rgba(6,58,42,0.55));
}
.pageHero__wrap{position:relative;z-index:2;max-width:820px;}
.pageHero__kicker{
  font-size:12px;
  font-weight:900;
  letter-spacing:0.12em;
  text-transform:uppercase;
  opacity:0.9;
}
.pageHero__title{
  margin:12px 0 8px;
  font-size:44px;
  letter-spacing:-0.02em;
}
.pageHero__lead{
  margin:0;
  color:rgba(229,244,238,0.92);
  line-height:1.65;
  max-width:68ch;
}

.pillRow{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin-top:-22px;
}
.pill{
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  padding:14px 14px 12px;
  box-shadow:var(--shadow-soft);
}
.pill__t{font-weight:900;}
.pill__s{margin-top:4px;color:var(--muted);font-size:13px;line-height:1.4;}

.statsRow{
  margin-top:14px;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.statBox{
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  padding:14px 14px 12px;
  box-shadow:var(--shadow-soft);
}
.statBox__k{font-size:12px;font-weight:900;color:var(--green-700);letter-spacing:0.08em;text-transform:uppercase;}
.statBox__v{margin-top:6px;font-size:18px;font-weight:900;color:#0f172a;}

.twoCol{
  display:grid;
  grid-template-columns:1.6fr 0.9fr;
  gap:18px;
  align-items:start;
}
.contentCard{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow-soft);
  padding:18px;
  margin-bottom:14px;
}
.contentCard h2{margin:0 0 10px;font-size:22px;}
.contentCard p{margin:0 0 12px;color:var(--muted);line-height:1.75;}
.contentCard p:last-child{margin-bottom:0;}

.iconList{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:10px;}
.iconDot{
  width:10px;height:10px;border-radius:999px;
  background:rgba(15,118,110,0.25);
  border:2px solid rgba(15,118,110,0.55);
  flex:0 0 10px;
  margin-top:4px;
}
.iconList .k{font-weight:900;}
.iconList .m{color:var(--muted);}

.timeline{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:12px;}
.timeline li{
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px;
  background:rgba(255,255,255,0.70);
}
.timeline .time{
  font-size:12px;
  font-weight:900;
  color:var(--green-700);
  letter-spacing:0.08em;
  text-transform:uppercase;
}
.timeline .txt{margin-top:6px;color:var(--muted);line-height:1.65;}

.galleryGrid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:12px;
}
.galleryGrid a{
  display:block;
  border-radius:16px;
  overflow:hidden;
  border:1px solid var(--line);
  box-shadow:var(--shadow-soft);
  background:#fff;
}
.galleryGrid img{
  width:100%;
  height:220px;
  object-fit:cover;
}

.sideCard{
  position:sticky;
  top:94px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow-soft);
  padding:16px;
}
.sideCard__cap{font-weight:900;font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:var(--green-700);}
.sideLinks{margin-top:10px;display:grid;gap:6px;}
.sideLinks a{
  text-decoration:none;
  padding:10px 10px;
  border-radius:12px;
  font-weight:800;
  color:#0f172a;
}
.sideLinks a:hover{background:rgba(15,118,110,0.08);}
.sideDivider{height:1px;background:var(--line);margin:14px 0;}
.sideMeta{display:grid;gap:10px;color:var(--muted);line-height:1.5;}
.sideMeta .k{color:#0f172a;font-weight:900;}

.ctaBand{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:16px;
  background:linear-gradient(90deg, rgba(6,58,42,0.10), rgba(15,118,110,0.06));
  border:1px solid rgba(15,23,42,0.10);
  border-radius:var(--radius);
  box-shadow:var(--shadow-soft);
}
.ctaBand__t{font-weight:900;font-size:18px;}
.ctaBand__s{margin-top:4px;color:var(--muted);}

@media (max-width: 980px){
  .pageHero{padding:52px 0 44px;}
  .pageHero__title{font-size:34px;}
  .pillRow{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:18px;}
  .statsRow{grid-template-columns:repeat(2,minmax(0,1fr));}
  .twoCol{grid-template-columns:1fr;}
  .sideCard{position:relative;top:auto;}
  .galleryGrid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width: 560px){
  .galleryGrid{grid-template-columns:1fr;}
  .galleryGrid img{height:230px;}
}
/* Board page */
.pageHero--board .pageHero__bg--board{
  background:
    linear-gradient(180deg,rgba(0,0,0,0.18),rgba(0,0,0,0.55)),
    url("../img/board/board-hero.jpg") center/cover no-repeat;
  opacity:0.35;
}

.boardBar{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
}
.boardBar__title{font-weight:900;font-size:18px;}
.boardBar__meta{color:var(--muted);font-weight:700;margin-top:4px;}
.boardBar__controls{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  align-items:flex-end;
}

.field{display:grid;gap:6px;}
.field__label{
  font-weight:900;
  font-size:12px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:rgba(15,118,110,0.95);
}
.field__input,
.field__select{
  height:44px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(15,23,42,0.10);
  background:#fff;
  font-weight:700;
  outline:none;
}
.field__input:focus,
.field__select:focus{
  border-color:rgba(15,118,110,0.55);
  box-shadow:0 0 0 4px rgba(15,118,110,0.12);
}

.boardLayout{
  display:grid;
  grid-template-columns:1.6fr 1fr;
  gap:16px;
  align-items:start;
}
.boardSticky{position:sticky;top:96px;}

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

.directorCard{
  border:1px solid rgba(15,23,42,0.10);
  border-radius:16px;
  background:rgba(255,255,255,0.80);
  overflow:hidden;
  box-shadow:var(--shadow-soft);
  display:grid;
}
.directorCard__media{
  aspect-ratio: 4 / 3;
  background:rgba(15,23,42,0.04);
}
.directorCard__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.directorCard__body{
  padding:14px;
  display:grid;
  gap:8px;
}
.directorCard__name{font-weight:900;font-size:16px;}
.directorCard__role{color:var(--muted);font-weight:700;}
.directorCard__btn{justify-self:start;}

.tagRow{display:flex;gap:8px;flex-wrap:wrap;}
.tag{
  font-size:12px;
  font-weight:800;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(15,23,42,0.10);
  background:rgba(255,255,255,0.75);
}

.boardLinks{display:grid;gap:10px;margin-top:8px;}
.boardLink{
  font-weight:900;
  text-decoration:none;
  color:#0f172a;
  opacity:0.85;
}
.boardLink:hover{opacity:1;text-decoration:underline;}
.boardMeta{display:grid;gap:10px;color:var(--muted);}

.bioSplit{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:10px;
}
.bioK{
  font-weight:900;
  font-size:12px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:rgba(15,118,110,0.95);
}
.bioList{margin:8px 0 0;padding-left:18px;color:#0f172a;}
.bioList li{margin:6px 0;color:var(--muted);}

/* Modal */
body.modal-open{overflow:hidden;}

.dModal{
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(0,0,0,0.55);
  z-index:9999;
}
.dModal.is-open{display:flex;}

.dModal__panel{
  width:min(920px, 100%);
  background:#fff;
  border-radius:18px;
  border:1px solid rgba(15,23,42,0.10);
  box-shadow:var(--shadow);
  padding:16px;
  position:relative;
}
.dModal__close{
  position:absolute;
  top:10px;
  right:10px;
  width:40px;
  height:40px;
  border-radius:12px;
  border:1px solid rgba(15,23,42,0.10);
  background:#fff;
  font-size:22px;
  line-height:1;
  cursor:pointer;
}
.dModal__head{
  display:flex;
  gap:14px;
  align-items:center;
  padding-right:50px;
}
.dModal__photo{
  width:76px;
  height:76px;
  border-radius:16px;
  object-fit:cover;
  border:1px solid rgba(15,23,42,0.10);
  background:rgba(15,23,42,0.04);
}
.dModal__name{font-weight:900;font-size:20px;}
.dModal__role{color:var(--muted);font-weight:800;margin-top:4px;}
.dModal__body{
  margin-top:14px;
  color:var(--muted);
  line-height:1.75;
}
.dModal__body h3{margin:0 0 10px;color:#0f172a;}
.dModal__body p{margin:0 0 12px;}
.dModal__body p:last-child{margin-bottom:0;}

@media (max-width: 980px){
  .boardLayout{grid-template-columns:1fr;}
  .boardSticky{position:static;top:auto;}
  .boardGrid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .bioSplit{grid-template-columns:1fr;}
}
@media (max-width: 560px){
  .boardGrid{grid-template-columns:1fr;}
}
/* Management Team tree */
.pageHero--mgmt .pageHero__bg--mgmt{
  background:
    linear-gradient(180deg,rgba(0,0,0,0.18),rgba(0,0,0,0.22)),
    url("../img/management/mgmt-hero.jpg") center/cover no-repeat;
  opacity:0.30;
}

.mgmtTree{display:grid;gap:18px;}
.mgmtLevel{display:flex;justify-content:center;}
.mgmtLevel--dceo{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  align-items:start;
}

.mgmtLine{
  height:22px;
  width:2px;
  background:rgba(15,23,42,0.15);
  margin:0 auto;
  border-radius:999px;
  position:relative;
}
.mgmtLine::after{
  content:"";
  position:absolute;
  left:50%;
  top:100%;
  transform:translateX(-50%);
  width:72%;
  height:2px;
  background:rgba(15,23,42,0.15);
  border-radius:999px;
}

.mgmtBranch{
  display:grid;
  gap:12px;
  justify-items:center;
  position:relative;
  padding-top:6px;
}
.mgmtBranch::before{
  content:"";
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);
  width:2px;
  height:22px;
  background:rgba(15,23,42,0.15);
  border-radius:999px;
}

.mgmtNode{
  width:min(360px,100%);
  border:1px solid rgba(15,23,42,0.10);
  border-radius:18px;
  background:rgba(255,255,255,0.85);
  box-shadow:var(--shadow-soft);
  padding:14px;
  text-align:center;
}
.mgmtNode__photo{
  width:96px;
  height:96px;
  margin:0 auto 10px;
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(15,23,42,0.10);
  background:rgba(15,23,42,0.04);
}
.mgmtNode__photo img{width:100%;height:100%;object-fit:cover;display:block;}
.mgmtNode__name{font-weight:900;font-size:16px;}
.mgmtNode__role{margin-top:4px;color:var(--muted);font-weight:800;}
.mgmtNode__btn{
  margin-top:10px;
  width:100%;
  height:42px;
  border-radius:14px;
  border:1px solid rgba(15,23,42,0.10);
  background:rgba(255,255,255,0.78);
  font-weight:900;
  cursor:pointer;
}
.mgmtNode__btn:hover{background:rgba(15,118,110,0.10);}

.mgmtChildren{
  width:100%;
  max-width:7000px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:150px;
  padding-top:6px;
  position:relative;
}
.mgmtChildren::before{
  content:"";
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);
  width:2px;
  height:14px;
  background:rgba(15,23,42,0.15);
  border-radius:999px;
}

.dirCard{
  border:1px solid rgba(15,23,42,0.10);
  border-radius:16px;
  background:rgba(255,255,255,0.85);
  box-shadow:var(--shadow-soft);
  overflow:hidden;
  cursor:pointer;
}
.dirCard img{
  width:100%;
  height:160px;
  object-fit:cover;
  display:block;
}
.dirCard__t{padding:10px 10px 12px;}
.dirCard__n{font-weight:900;}
.dirCard__r{margin-top:4px;color:var(--muted);font-weight:700;font-size:13px;line-height:1.35;}
.dirCard:hover{transform:translateY(-1px);}

@media (max-width: 980px){
  .mgmtLevel--dceo{grid-template-columns:1fr;}
  .mgmtLine::after{width:0;}
  .mgmtBranch::before{display:none;}
  .mgmtChildren{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width: 560px){
  .mgmtChildren{grid-template-columns:1fr;}
  .dirCard img{height:190px;}
}
/* Modal must overlay header */
.dModal{ z-index:10000; }
.dModal__panel{ border-radius:20px; }
.dModal__body{ font-size:14px; }

/* Management tree polish */
.mgmtTree{ padding-top:6px; }
.mgmtNode{
  background:rgba(255,255,255,0.92);
  border:1px solid rgba(15,23,42,0.10);
  border-radius:20px;
  box-shadow:0 16px 34px rgba(0,0,0,0.10);
}
.mgmtNode__photo{ cursor:pointer; }
.mgmtNode__name{ font-size:17px; }
.mgmtNode__role{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(15,23,42,0.10);
  background:rgba(15,118,110,0.08);
  color:#0f172a;
  font-weight:900;
  margin:8px auto 0;
}

.mgmtLevel--top .mgmtNode{
  width:min(420px,100%);
  border:1px solid rgba(15,118,110,0.28);
  box-shadow:0 22px 44px rgba(0,0,0,0.14);
}
.mgmtLevel--top .mgmtNode__photo{
  width:110px;height:110px;border-radius:22px;
}

.mgmtLine,
.mgmtBranch::before,
.mgmtChildren::before{
  background:rgba(15,23,42,0.14);
}

/* Directors cards polish */
.dirCard{
  transition:transform 160ms ease, box-shadow 160ms ease;
}
.dirCard:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 40px rgba(0,0,0,0.12);
}
.dirCard__n{ font-size:14px; }
.dirCard__r{ font-size:12.5px; }
/* Motion defaults */
@media (prefers-reduced-motion: reduce){
  *{scroll-behavior:auto !important;}
  .reveal, .dirCard, .mgmtNode, .dModal__panel{transition:none !important; animation:none !important;}
}

/* Tree entrance */
.mgmtNode, .dirCard{
  will-change:transform, opacity, box-shadow;
}

/* Hover micro motion */
.mgmtNode{
  transition:transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}
.mgmtNode:hover{
  transform:translateY(-2px);
  box-shadow:0 20px 44px rgba(0,0,0,0.13);
  border-color:rgba(15,118,110,0.26);
}

.dirCard{
  transition:transform 180ms ease, box-shadow 180ms ease;
}
.dirCard:hover{
  transform:translateY(-3px);
  box-shadow:0 18px 42px rgba(0,0,0,0.12);
}

/* Modal fade + pop */
.dModal{
  opacity:0;
  transition:opacity 180ms ease;
}
.dModal.is-open{
  opacity:1;
}
.dModal__panel{
  transform:translateY(10px) scale(0.98);
  opacity:0;
  transition:transform 220ms ease, opacity 220ms ease;
}
.dModal.is-open .dModal__panel{
  transform:translateY(0) scale(1);
  opacity:1;
}

/* Reveal animation (used on .reveal elements) */
.reveal{
  opacity:0;
  transform:translateY(14px);
  transition:opacity 520ms ease, transform 520ms ease;
}
.reveal.is-in{
  opacity:1;
  transform:translateY(0);
}

/* Stagger feel */
.reveal[data-delay="1"]{transition-delay:60ms;}
.reveal[data-delay="2"]{transition-delay:120ms;}
.reveal[data-delay="3"]{transition-delay:180ms;}
.reveal[data-delay="4"]{transition-delay:240ms;}
/* Glass effect helpers */
:root{
  --glass-bg: rgba(255,255,255,0.14);
  --glass-border: rgba(255,255,255,0.22);
  --glass-shadow: 0 24px 60px rgba(0,0,0,0.18);
  --glass-blur: 18px;
}

/* Glass cards for the management tree */
.mgmtNode,
.dirCard,
.sideCard,
.contentCard,
.card{
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(var(--glass-blur));
}

/* Keep text readable on glass */
.mgmtNode__name,
.dirCard__n{
  color:#0f172a;
}
.mgmtNode__role{
  background: rgba(15,118,110,0.14);
  border-color: rgba(15,118,110,0.22);
}

/* Director card image polish */
.dirCard img{
  filter:saturate(1.05) contrast(1.02);
}

/* Transparent glass modal backdrop */
.dModal{
  background: rgba(3, 12, 9, 0.45);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

/* Transparent glass modal panel */
.dModal__panel{
  background: rgba(255,255,255,0.16);
  border: 1px solid rgba(255,255,255,0.22);
  backdrop-filter: blur(22px);
  -webkit-backdrop-filter: blur(22px);
  box-shadow: var(--glass-shadow);
}

/* Improve modal text contrast */
.dModal__name{ color:#0f172a; }
.dModal__role{ color: rgba(15,23,42,0.72); font-weight: 900; }
.dModal__body{ color: rgba(15,23,42,0.78); }

/* Close button glass */
.dModal__close{
  background: rgba(255,255,255,0.22);
  border: 1px solid rgba(255,255,255,0.28);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.dModal__close:hover{
  background: rgba(255,255,255,0.32);
}

/* Images in modal */
.dModal__photo{
  background: rgba(255,255,255,0.30);
}
/* FOB hero */
.pageHero--fob .pageHero__bg--fob{
  background:
    linear-gradient(180deg,rgba(0,0,0,0.18),rgba(0,0,0,0.22)),
    url("../img/fob/fob-hero.jpg") center/cover no-repeat;
  opacity:0.32;
}

/* Article layout */
.articleLayout{
  display:grid;
  grid-template-columns:1.65fr 1fr;
  gap:16px;
  align-items:start;
}
.articleMain{
  border:1px solid rgba(15,23,42,0.10);
  border-radius:18px;
  background:rgba(255,255,255,0.14);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  box-shadow:0 20px 50px rgba(0,0,0,0.12);
  overflow:hidden;
}
.articleHead{padding:18px 18px 8px;}
.articleTitle{
  margin:0;
  font-size:16px;
  font-weight:900;
  line-height:1.35;
}
.articleFigure{
  margin:0;
  padding:0 18px 12px;
}
.articleFigure img{
  width:100%;
  height:auto;
  display:block;
  border-radius:16px;
  border:1px solid rgba(15,23,42,0.10);
}
.articleBody{
  padding:0 18px 18px;
  color:rgba(15,23,42,0.78);
  line-height:1.8;
}
.articleBody p{margin:0 0 12px;}
.articleBody p:last-child{margin-bottom:0;}

/* Side */
.articleSide{position:sticky;top:96px;}
.sideCard{
  border:1px solid rgba(255,255,255,0.22);
  border-radius:18px;
  background:rgba(255,255,255,0.14);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  box-shadow:0 20px 50px rgba(0,0,0,0.10);
  padding:14px;
}
.sideCard__cap{
  font-weight:900;
  font-size:12px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:rgba(15,118,110,0.95);
}
.sideNav{display:grid;gap:10px;margin-top:10px;}
.sideNav__link{
  text-decoration:none;
  font-weight:900;
  color:#0f172a;
  opacity:0.85;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(15,23,42,0.10);
  background:rgba(255,255,255,0.22);
}
.sideNav__link:hover{opacity:1;}
.sideNav__link.is-active{
  background:rgba(15,118,110,0.16);
  border-color:rgba(15,118,110,0.28);
  opacity:1;
}
.sideDivider{
  height:1px;
  background:rgba(255,255,255,0.18);
  margin:14px 0;
}
.sideMeta{display:grid;gap:10px;color:rgba(15,23,42,0.75);}

@media (max-width: 980px){
  .articleLayout{grid-template-columns:1fr;}
  .articleSide{position:static;top:auto;}
}
/* Bui Generating Station hero */
.pageHero--bgs .pageHero__bg--bgs{
  background:
    linear-gradient(180deg, rgba(0,0,0,0.08), rgba(0,0,0,0.22)),
    url("../img/portfolio/bgs-hero.jpg") center/cover no-repeat;
  opacity:0.55;
}
/* Tsatsadu hero, lighter overlay so image shows well */
.pageHero--tgs .pageHero__bg--tgs{
  background:
    linear-gradient(180deg, rgba(0,0,0,0.06), rgba(0,0,0,0.22)),
    url("../img/portfolio/tgs-hero.jpg") center/cover no-repeat;
  opacity:0.72;
}

/* Quick facts row */
.statsRow{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
}
.statBox{
  border:1px solid rgba(255,255,255,0.22);
  border-radius:18px;
  background:rgba(255,255,255,0.14);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  box-shadow:0 18px 44px rgba(0,0,0,0.10);
  padding:12px 14px;
}
.statBox__k{
  font-size:12px;
  font-weight:900;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:rgba(15,118,110,0.95);
}
.statBox__v{
  margin-top:4px;
  font-size:14px;
  font-weight:900;
  color:#0f172a;
  opacity:0.92;
}
.articleH3{
  margin:16px 0 8px;
  font-size:14px;
  font-weight:900;
  color:#0f172a;
}
@media (max-width: 980px){
  .statsRow{grid-template-columns:1fr 1fr;}
}
/* Transmission hero */
.pageHero--tx .pageHero__bg--tx{
  background:
    linear-gradient(180deg, rgba(0,0,0,0.06), rgba(0,0,0,0.22)),
    url("../img/portfolio/tx-hero.jpg") center/cover no-repeat;
  opacity:0.72;
}

/* Article list */
.articleList{
  margin:10px 0 14px;
  padding-left:18px;
  color:rgba(15,23,42,0.78);
  line-height:1.75;
}
.articleList li{margin:6px 0;}
.articleFigure--inset{padding-top:8px;}
/* Hydro Solar Hybrid hero */
.pageHero--hsh .pageHero__bg--hsh{
  background:
    linear-gradient(180deg, rgba(0,0,0,0.06), rgba(0,0,0,0.22)),
    url("../img/portfolio/hsh-hero.jpg") center/cover no-repeat;
  opacity:0.72;
}
/* Floating Solar hero */
.pageHero--fs .pageHero__bg--fs{
  background:
    linear-gradient(180deg, rgba(0,0,0,0.06), rgba(0,0,0,0.22)),
    url("../img/portfolio/fs-hero.jpg") center/cover no-repeat;
  opacity:0.72;
}
/* Wind hero */
.pageHero--wind .pageHero__bg--wind{
  background:
    linear-gradient(180deg, rgba(0,0,0,0.06), rgba(0,0,0,0.26)),
    url("../img/portfolio/wind-hero.jpg") center/cover no-repeat;
  opacity:0.72;
}

/* Gallery */
.galleryWrap{
  padding:0 18px 18px;
  display:grid;
  gap:14px;
}
.galleryItem{
  margin:0;
  border:1px solid rgba(15,23,42,0.10);
  border-radius:16px;
  overflow:hidden;
  background:rgba(255,255,255,0.14);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  box-shadow:0 16px 44px rgba(0,0,0,0.10);
}
.galleryItem img{
  width:100%;
  height:auto;
  display:block;
}
.galleryItem figcaption{
  padding:10px 12px;
  font-weight:900;
  font-size:12px;
  color:rgba(15,23,42,0.78);
  border-top:1px solid rgba(255,255,255,0.18);
  background:rgba(255,255,255,0.12);
}
/* ESMM hero */
.pageHero--esmm .pageHero__bg--esmm{
  background:
    linear-gradient(180deg, rgba(0,0,0,0.06), rgba(0,0,0,0.22)),
    url("../img/social/esmm-hero.jpg") center/cover no-repeat;
  opacity:0.72;
}

/* Long content tuning */
.articleBody--long{
  font-size:14px;
}
.articleBody--long p{
  margin:0 0 12px;
}
.articleList{
  margin:8px 0 16px;
  padding-left:18px;
  line-height:1.75;
  color:rgba(15,23,42,0.78);
}
.articleList li{margin:6px 0;}
.articleList--ordered{padding-left:22px;}
.articleH3{
  margin:16px 0 8px;
  font-size:13px;
  font-weight:900;
  letter-spacing:0.02em;
  color:#0f172a;
}
.articleFigure{
  margin:0 0 14px;
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(15,23,42,0.10);
  box-shadow:0 16px 44px rgba(0,0,0,0.10);
}
.articleFigure img{width:100%; height:auto; display:block;}
/* Resettlement hero */
.pageHero--resettle .pageHero__bg--resettle{
  background:
    linear-gradient(180deg, rgba(0,0,0,0.06), rgba(0,0,0,0.26)),
    url("../img/social/resettle-hero.jpg") center/cover no-repeat;
  opacity:0.72;
}

/* Featured image */
.articleFigure{
  margin:0 0 14px;
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(15,23,42,0.10);
  box-shadow:0 16px 44px rgba(0,0,0,0.10);
}
.articleFigure img{width:100%; height:auto; display:block;}
.articleFigure--tight{margin-top:14px;}

/* Table */
.tableWrap{
  margin:10px 0 16px;
  overflow:auto;
  border-radius:14px;
  border:1px solid rgba(15,23,42,0.10);
  background:rgba(255,255,255,0.14);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
.articleTable{
  width:100%;
  border-collapse:collapse;
  min-width:700px;
}
.articleTable th,
.articleTable td{
  padding:10px 12px;
  border-bottom:1px solid rgba(15,23,42,0.08);
  text-align:left;
  font-size:13px;
  color:rgba(15,23,42,0.78);
}
.articleTable th{
  font-weight:900;
  color:#0f172a;
  background:rgba(255,255,255,0.12);
}
.articleTable tr:last-child td{border-bottom:0;}
/* Resettlement hero (resettle-hero.jpg) */
.pageHero--resettle .pageHero__bg--resettle{
  background:
    linear-gradient(180deg, rgba(0,0,0,0.06), rgba(0,0,0,0.22)),
    url("../img/social/resettle-hero.jpg") center/cover no-repeat;
  opacity:0.72;
}
/* FREP hero */
.pageHero--frep .pageHero__bg--frep{
  background:
    linear-gradient(180deg, rgba(0,0,0,0.06), rgba(0,0,0,0.22)),
    url("../img/social/frep-hero.jpg") center/cover no-repeat;
  opacity:0.72;
}
/* Salvage hero */
.pageHero--salvage .pageHero__bg--salvage{
  background:
    linear-gradient(180deg, rgba(0,0,0,0.06), rgba(0,0,0,0.26)),
    url("../img/social/salvage-hero.jpg") center/cover no-repeat;
  opacity:0.72;
}

/* Gallery grid */
.galleryGrid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
  margin:10px 0 16px;
}
.galleryItem{
  margin:0;
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(15,23,42,0.10);
  background:rgba(255,255,255,0.14);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
.galleryItem img{
  width:100%;
  height:auto;
  display:block;
  cursor:pointer;
  transition:transform 180ms ease, filter 180ms ease;
}
.galleryItem img:hover{
  transform:scale(1.02);
  filter:saturate(1.04) contrast(1.02);
}
@media (max-width: 760px){
  .galleryGrid{grid-template-columns:1fr;}
}

/* Image modal */
.dModal__panel--img{
  max-width:980px;
}
.dModal__imgWrap{
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,0.20);
  background:rgba(255,255,255,0.12);
}
.dModal__img{
  width:100%;
  height:auto;
  display:block;
}
.dModal__cap{
  margin-top:10px;
  font-weight:800;
  color:rgba(15,23,42,0.78);
}
.dModal{display:none;}
.dModal.is-open{display:flex;}
body.modal-open{overflow:hidden;}
/* Irrigation hero */
.pageHero--irrigation .pageHero__bg--irrigation{
  background:
    linear-gradient(180deg, rgba(0,0,0,0.06), rgba(0,0,0,0.22)),
    url("../img/social/irrigation-hero.jpg") center/cover no-repeat;
  opacity:0.72;
}
/* CSR Policy hero */
.pageHero--csr .pageHero__bg--csr{
  background:
    linear-gradient(180deg, rgba(0,0,0,0.06), rgba(0,0,0,0.26)),
    url("../img/csr/csr-hero.jpg") center/cover no-repeat;
  opacity:0.72;
}
/* BPA Scholarship Scheme hero */
.pageHero--scholarship .pageHero__bg--scholarship{
  background:
    linear-gradient(180deg, rgba(0,0,0,0.06), rgba(0,0,0,0.26)),
    url("../img/csr/scholarship-hero.jpg") center/cover no-repeat;
  opacity:0.78;
}
/* CSR Projects hero */
.pageHero--csrProjects .pageHero__bg--csrProjects{
  background:
    linear-gradient(180deg, rgba(0,0,0,0.06), rgba(0,0,0,0.26)),
    url("../img/csr/csr-projects-hero.jpg") center/cover no-repeat;
  opacity:0.80;
}

/* Projects grid */
.cardsHead{ margin-bottom: 14px; }
.cardsTitle{ margin: 0; font-size: 22px; }
.cardsSub{ margin: 6px 0 0; color: rgba(0,0,0,0.65); }

.cardsGrid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin-top: 16px;
}

@media (max-width: 980px){
  .cardsGrid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px){
  .cardsGrid{ grid-template-columns: 1fr; }
}

/* Project card */
.projCard{
  background: rgba(255,255,255,0.92);
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 10px 24px rgba(0,0,0,0.08);
  transform: translateY(0);
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.projCard:hover{
  transform: translateY(-4px);
  box-shadow: 0 14px 34px rgba(0,0,0,0.12);
}

.projCard__media{
  display: block;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: rgba(0,0,0,0.04);
}

.projCard__media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1);
  transition: transform 220ms ease;
}

.projCard:hover .projCard__media img{
  transform: scale(1.04);
}

.projCard__body{
  padding: 14px 14px 16px;
}

.projCard__title{
  margin: 0 0 8px;
  font-size: 15px;
  line-height: 1.3;
}

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

.projCard__text{
  margin: 0 0 10px;
  color: rgba(0,0,0,0.70);
  font-size: 13px;
  line-height: 1.5;
}

.projCard__link{
  display: inline-block;
  font-weight: 600;
  font-size: 13px;
  text-decoration: none;
}

:root{
  --glass-bg: rgba(255,255,255,0.10);
  --glass-brd: rgba(255,255,255,0.22);
}

.pageHero{position:relative;isolation:isolate;overflow:hidden;padding:92px 0 44px}
.pageHero__bg{position:absolute;inset:0;z-index:-2;transform:scale(1.04);background:center/cover no-repeat;opacity:0.34}
.pageHero__tint{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(16,146,77,0.14),rgba(0,0,0,0.55))}
.pageHero__inner{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}
.pageHero__title{margin:0;color:#fff;font-size:34px;letter-spacing:-0.02em}
.pageHero__crumbs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;color:rgba(255,255,255,0.82);font-size:13px}
.pageHero__crumbs a{color:rgba(255,255,255,0.92);text-decoration:none}
.pageHero__crumbs a:hover{text-decoration:underline}

.pageWrap{padding:34px 0 64px}
.pageGrid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:26px;align-items:start}
@media (max-width: 980px){
  .pageGrid{grid-template-columns:1fr}
}

.contentCard{background:#fff;border:1px solid rgba(15,23,42,0.08);border-radius:18px;box-shadow:0 18px 45px rgba(2,6,23,0.08);padding:20px}
.contentCard h2{margin:18px 0 10px;font-size:20px}
.contentMeta{display:flex;flex-wrap:wrap;gap:12px;align-items:center;color:var(--muted);font-size:13px;margin:10px 0 16px}

.figure{margin:0 0 16px}
.figure img{width:100%;display:block;border-radius:14px}
.figure figcaption{margin-top:8px;color:var(--muted);font-size:13px}

.sideCard{position:sticky;top:92px;border-radius:18px;padding:16px;background:rgba(15,23,42,0.03);border:1px solid rgba(15,23,42,0.08)}
@supports ((-webkit-backdrop-filter: blur(12px)) or (backdrop-filter: blur(12px))){
  .sideCard{background:var(--glass-bg);border-color:var(--glass-brd);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
}

.sideTitle{margin:0 0 10px;font-size:12px;letter-spacing:0.12em;text-transform:uppercase;color:rgba(15,23,42,0.72)}
.sideList{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}
.sideList a{display:flex;gap:10px;align-items:center;text-decoration:none;padding:10px 12px;border-radius:12px;background:#fff;border:1px solid rgba(15,23,42,0.06);color:var(--text);transition:transform .18s ease, box-shadow .18s ease}
.sideList a:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(2,6,23,0.10)}
.sideList a.is-active{border-color:rgba(16,146,77,0.35);box-shadow:0 14px 26px rgba(16,146,77,0.14)}
.sideList .dot{width:8px;height:8px;border-radius:999px;background:rgba(16,146,77,0.85);flex:0 0 auto}

.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}
.gallery a{display:block;border-radius:14px;overflow:hidden;border:1px solid rgba(15,23,42,0.08);transition:transform .18s ease, box-shadow .18s ease}
.gallery a:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(2,6,23,0.10)}
.gallery img{width:100%;height:140px;object-fit:cover;display:block}
@media (max-width: 980px){
  .gallery{grid-template-columns:repeat(2,1fr)}
}
@media (max-width: 520px){
  .gallery{grid-template-columns:1fr}
  .gallery img{height:180px}
}

/* Small reveal animation */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .55s ease, transform .55s ease}
.reveal.is-in{opacity:1;transform:translateY(0)}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1;transform:none}
}
/* =========================
   NEWS PAGE
========================= */

.pageHero--news .pageHero__bg--news{
  background:
    linear-gradient(180deg, rgba(0,0,0,0.18), rgba(0,0,0,0.58)),
    url("../img/news/news-hero.jpg") center/cover no-repeat;
  opacity: 0.42;
}

/* Latest news grid */
.newsGrid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-top: 14px;
}

.newsCard{
  background: rgba(255,255,255,0.72);
  border: 1px solid rgba(16, 24, 40, 0.10);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(16, 24, 40, 0.08);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transform: translateZ(0);
  transition: transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
}

.newsCard:hover{
  transform: translateY(-4px);
  box-shadow: 0 16px 44px rgba(16, 24, 40, 0.12);
  border-color: rgba(16, 24, 40, 0.16);
}

.newsCard__media{
  display: block;
  aspect-ratio: 16/10;
  background: rgba(0,0,0,0.06);
  overflow: hidden;
}

.newsCard__media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.02);
  transition: transform 240ms ease;
}

.newsCard:hover .newsCard__media img{
  transform: scale(1.07);
}

.newsCard__body{
  padding: 14px 14px 16px;
}

.newsCard__title{
  margin: 0 0 10px;
  font-size: 15px;
  line-height: 1.35;
  font-weight: 800;
  letter-spacing: -0.01em;
}

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

.newsCard__title a:hover{
  text-decoration: underline;
}

.newsMeta{
  display: flex;
  align-items: center;
  gap: 10px;
  color: rgba(17, 24, 39, 0.7);
  font-size: 12px;
  margin-bottom: 10px;
}

.newsCard__text{
  margin: 0 0 12px;
  color: rgba(17, 24, 39, 0.75);
  font-size: 13px;
  line-height: 1.55;
}

/* Archived list */
.archiveList{
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}

.archiveList li{
  background: rgba(255,255,255,0.7);
  border: 1px solid rgba(16, 24, 40, 0.08);
  border-radius: 12px;
  padding: 10px 12px;
  box-shadow: 0 8px 22px rgba(16, 24, 40, 0.06);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.archiveList a{
  color: inherit;
  text-decoration: none;
  font-weight: 700;
  font-size: 13px;
  line-height: 1.4;
}

.archiveList a:hover{
  text-decoration: underline;
}

/* Side search */
.sideSearch{
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
}

.sideSearch .input{
  min-width: 0;
}

/* Responsive */
@media (max-width: 980px){
  .newsGrid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px){
  .newsGrid{
    grid-template-columns: 1fr;
  }
}
/* =========================
   NEWS LIST + READ MORE
   ========================= */

/* Hero background for News pages */
.pageHero--news .pageHero__bg--news{
  background:
    linear-gradient(180deg, rgba(0,0,0,0.18), rgba(0,0,0,0.62)),
    url("../img/hero/news-hero.jpg") center/cover no-repeat;
  opacity: 0.45;
}

/* News cards grid (Latest News) */
.newsGrid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-top: 14px;
}

@media (max-width: 980px){
  .newsGrid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px){
  .newsGrid{ grid-template-columns: 1fr; }
}

.newsCard{
  display: block;
  border-radius: 16px;
  overflow: hidden;
  background: rgba(255,255,255,0.78);
  border: 1px solid rgba(20, 40, 40, 0.10);
  box-shadow: 0 10px 26px rgba(0,0,0,0.08);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transform: translateY(0);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.newsCard:hover{
  transform: translateY(-3px);
  box-shadow: 0 16px 34px rgba(0,0,0,0.12);
  border-color: rgba(16, 185, 129, 0.22);
}

.newsCard__img{
  aspect-ratio: 16/10;
  width: 100%;
  object-fit: cover;
  display: block;
}

.newsCard__body{
  padding: 14px 14px 16px;
}

.newsCard__title{
  font-weight: 800;
  line-height: 1.25;
  margin: 0 0 10px;
  color: #0d1b1a;
  font-size: 15px;
}

.newsCard__meta{
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  color: rgba(13, 27, 26, 0.70);
  font-size: 12px;
}

.newsCard__link{
  margin-top: 10px;
  font-weight: 700;
  color: #0f9d58;
  font-size: 13px;
}

/* Archived list */
.archiveBox{
  margin-top: 26px;
  padding-top: 14px;
  border-top: 1px solid rgba(0,0,0,0.08);
}

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

.archiveList a{
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 10px 12px;
  border-radius: 12px;
  background: rgba(255,255,255,0.70);
  border: 1px solid rgba(0,0,0,0.06);
  transition: background .16s ease, border-color .16s ease, transform .16s ease;
}

.archiveList a:hover{
  background: rgba(255,255,255,0.88);
  border-color: rgba(16, 185, 129, 0.22);
  transform: translateY(-1px);
}

.archiveDot{
  width: 8px;
  height: 8px;
  border-radius: 99px;
  background: #0f9d58;
  margin-top: 6px;
}

/* Read more gallery: 2 columns like the old site */
.gallery--2{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

@media (max-width: 640px){
  .gallery--2{ grid-template-columns: 1fr; }
}

.gallery--2 .gItem img{
  width: 100%;
  height: 220px;
  object-fit: cover;
  border-radius: 14px;
  display: block;
}
/* Lightbox (gallery popup) */
body.noScroll { overflow: hidden; }

.lightbox{
  position:fixed;
  inset:0;
  z-index:9999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(8,12,10,0.68);
  backdrop-filter: blur(10px);
}

.lightbox.is-open{ display:flex; }

.lightbox__panel{
  position:relative;
  width:min(1100px,96vw);
  max-height:90vh;
  border-radius:18px;
  overflow:hidden;
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.18);
  box-shadow:0 24px 80px rgba(0,0,0,0.45);
}

.lightbox__img{
  display:block;
  width:100%;
  height:auto;
  max-height:90vh;
  object-fit:contain;
  background:#0b0f0c;
}

.lightbox__close{
  position:absolute;
  top:12px;
  right:12px;
  width:42px;
  height:42px;
  border-radius:999px;
  background:rgba(0,0,0,0.45);
  border:1px solid rgba(255,255,255,0.22);
  color:#fff;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
}

.lightbox__close:hover{ background:rgba(0,0,0,0.62); }
.lightbox__close:focus{ outline:2px solid rgba(255,255,255,0.6); outline-offset:2px; }
/* Events hero */
.pageHero--events .pageHero__bg--events{
  background:
    linear-gradient(180deg,rgba(0,0,0,0.14),rgba(0,0,0,0.56)),
    url("../img/hero/events-hero.jpg") center/cover no-repeat;
  opacity:0.46;
}

/* Events layout */
.evtTools{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-top:10px;
}
.evtSearch{min-width:260px}

.eventGrid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-top:14px;
}
@media (max-width:980px){ .eventGrid{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width:640px){ .eventGrid{grid-template-columns:1fr;} }

.eventCard{
  background:rgba(255,255,255,0.86);
  border:1px solid var(--line);
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 12px 28px rgba(0,0,0,0.07);
  transform:translateY(0);
  transition:transform .18s ease, box-shadow .18s ease;
}
.eventCard:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 34px rgba(0,0,0,0.10);
}
.eventCard__media{
  position:relative;
  height:170px;
  background:#0b1f18;
  display:block;
}
.eventCard__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.eventBadge{
  position:absolute;
  left:12px;
  bottom:12px;
  background:rgba(255,255,255,0.90);
  border:1px solid rgba(0,0,0,0.06);
  border-radius:999px;
  padding:6px 10px;
  font-weight:900;
  font-size:12px;
}
.eventCard__body{padding:14px}
.eventCard__title{
  margin:0 0 8px;
  font-size:16px;
  line-height:1.3;
}
.eventCard__meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  color:var(--muted);
  font-size:12px;
  margin-bottom:10px;
}
.eventCard__desc{
  margin:0 0 12px;
  color:var(--muted);
  line-height:1.55;
}
.eventCard__actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.evtEmpty{
  margin-top:14px;
  padding:16px;
  border:1px dashed var(--line);
  border-radius:16px;
  color:var(--muted);
  background:rgba(255,255,255,0.72);
}

/* Side divider */
.sideHr{
  height:1px;
  background:rgba(255,255,255,0.14);
  border:0;
  margin:16px 0;
}

/* Glass modal */
.modal--glass .modal__overlay{
  background:rgba(0,0,0,0.55);
  backdrop-filter:blur(6px);
}
.modal--glass .modal__panel{
  background:rgba(255,255,255,0.84);
  border:1px solid rgba(255,255,255,0.20);
  box-shadow:0 18px 60px rgba(0,0,0,0.30);
}

/* Event details */
.evtDetail{display:grid;gap:14px}
.evtDetail__hero{
  border-radius:16px;
  overflow:hidden;
  border:1px solid var(--line);
}
.evtDetail__hero img{width:100%;height:auto;display:block}
.evtDetail__meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  color:var(--muted);
  font-size:13px;
}

/* Registration form */
.formGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
@media (max-width:720px){ .formGrid{grid-template-columns:1fr;} }
.evtForm__actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:12px;
}
.evtForm__note{margin:10px 0 0;color:var(--muted)}

/* Image lightbox with close button */
.imgLightbox{
  position:fixed;
  inset:0;
  display:none;
  z-index:9999;
}
.imgLightbox.is-open{
  display:grid;
  place-items:center;
}
.imgLightbox__back{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,0.70);
  backdrop-filter:blur(6px);
}
.imgLightbox__wrap{
  position:relative;
  max-width:min(1000px,92vw);
  max-height:88vh;
  z-index:1;
}
.imgLightbox__img{
  width:100%;
  height:auto;
  max-height:88vh;
  object-fit:contain;
  border-radius:14px;
  box-shadow:0 18px 60px rgba(0,0,0,0.35);
  background:#0b1f18;
}
.imgLightbox__close{
  position:absolute;
  top:-12px;
  right:-12px;
  width:42px;
  height:42px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,0.25);
  background:rgba(255,255,255,0.12);
  color:#fff;
  display:grid;
  place-items:center;
  cursor:pointer;
}
.imgLightbox__close:hover{
  background:rgba(255,255,255,0.18);
}
/* Press hero */
.pageHero--press .pageHero__bg--press{
  background:
    linear-gradient(180deg,rgba(0,0,0,0.14),rgba(0,0,0,0.58)),
    url("../img/hero/press-hero.jpg") center/cover no-repeat;
  opacity:0.46;
}

/* Press tools */
.prTools{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-top:10px;
}
.prSearch{min-width:260px}

/* Press grid */
.prGrid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-top:14px;
}
@media (max-width:980px){ .prGrid{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width:640px){ .prGrid{grid-template-columns:1fr;} }

.prCard{
  background:rgba(255,255,255,0.86);
  border:1px solid var(--line);
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 12px 28px rgba(0,0,0,0.07);
  transform:translateY(0);
  transition:transform .18s ease, box-shadow .18s ease;
}
.prCard:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 34px rgba(0,0,0,0.10);
}

.prCard__media{
  position:relative;
  height:170px;
  background:#0b1f18;
  display:block;
}
.prCard__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.prCard__body{padding:14px}
.prCard__title{
  margin:0 0 8px;
  font-size:16px;
  line-height:1.3;
}
.prCard__meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  color:var(--muted);
  font-size:12px;
  margin-bottom:10px;
}
.prCard__desc{
  margin:0 0 12px;
  color:var(--muted);
  line-height:1.55;
}

.prCard__actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.prTag{
  position:absolute;
  left:12px;
  bottom:12px;
  background:rgba(255,255,255,0.90);
  border:1px solid rgba(0,0,0,0.06);
  border-radius:999px;
  padding:6px 10px;
  font-weight:900;
  font-size:12px;
}

/* Empty */
.prEmpty{
  margin-top:14px;
  padding:16px;
  border:1px dashed var(--line);
  border-radius:16px;
  color:var(--muted);
  background:rgba(255,255,255,0.72);
}

/* Press detail */
.prDetail{display:grid;gap:14px}
.prDetail__hero{
  border-radius:16px;
  overflow:hidden;
  border:1px solid var(--line);
  background:#0b1f18;
}
.prDetail__hero img{width:100%;height:auto;display:block}
.prDetail__meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  color:var(--muted);
  font-size:13px;
}
/* Financial Statements page */
.page-hero{
  background:
    radial-gradient(1000px 300px at 18% 22%, rgba(255,255,255,0.18), rgba(255,255,255,0)),
    linear-gradient(135deg, var(--green-900), var(--green-700));
  color:#fff;
  padding:42px 0;
}

.crumbs{
  font-size:13px;
  opacity:0.9;
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}

.crumbs a{
  color:#fff;
  text-decoration:none;
  opacity:0.95;
}

.crumbs a:hover{ text-decoration:underline; }
.crumb-sep{ opacity:0.7; }

.hero-split{
  display:grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap:18px;
  margin-top:18px;
  align-items:stretch;
}

.page-title{
  margin:0;
  font-size:34px;
  line-height:1.15;
  letter-spacing:-0.02em;
}

.page-lead{
  margin:10px 0 0;
  max-width:56ch;
  opacity:0.92;
}

.fs-hero-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:18px;
}

.hero-mini-card{
  background: rgba(255,255,255,0.10);
  border:1px solid rgba(255,255,255,0.16);
  border-radius:16px;
  padding:16px;
  box-shadow: var(--shadow-soft);
  backdrop-filter: blur(8px);
}

.mini-kpi{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
}

.mini-kpi-label{
  font-size:13px;
  opacity:0.9;
}

.mini-kpi-value{
  font-size:26px;
  font-weight:700;
  letter-spacing:-0.02em;
}

.mini-note{
  margin-top:12px;
  font-size:13px;
  opacity:0.92;
}

.mini-note a{
  color:#fff;
  text-decoration:underline;
}

.fs-layout{
  display:grid;
  grid-template-columns: 1fr 320px;
  gap:18px;
  align-items:start;
}

.fs-toolbar{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  padding:14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  box-shadow: 0 10px 24px rgba(0,0,0,0.06);
}

.fs-search{
  flex: 1 1 240px;
  min-width:220px;
}

.fs-search input{
  width:100%;
  height:42px;
  border-radius:12px;
  border:1px solid var(--line);
  padding:0 12px;
  outline:0;
  font-family:var(--font);
}

.fs-search input:focus{
  border-color: rgba(15,90,63,0.45);
  box-shadow: 0 0 0 4px rgba(15,90,63,0.12);
}

.fs-filters{
  display:flex;
  gap:8px;
  flex: 0 0 auto;
}

.chip{
  height:36px;
  padding:0 12px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--text);
  font-weight:600;
  font-size:13px;
  cursor:pointer;
}

.chip:hover{ border-color: rgba(15,90,63,0.35); }
.chip.is-active{
  background: rgba(15,90,63,0.12);
  border-color: rgba(15,90,63,0.35);
}

.fs-meta{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  color:var(--muted);
}

.fs-meta-dot{
  width:8px;
  height:8px;
  border-radius:999px;
  background: var(--green-700);
  display:inline-block;
}

.fs-grid{
  margin-top:14px;
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:14px;
}

.fs-card{
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  padding:14px;
  box-shadow: 0 10px 24px rgba(0,0,0,0.06);
  transition: transform 140ms ease, box-shadow 140ms ease, border-color 140ms ease;
}

.fs-card:hover{
  transform: translateY(-2px);
  border-color: rgba(15,90,63,0.28);
  box-shadow: 0 14px 30px rgba(0,0,0,0.10);
}

.fs-card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.fs-year{
  font-size:14px;
  font-weight:800;
  letter-spacing:0.02em;
  color: var(--green-900);
  background: rgba(15,90,63,0.10);
  padding:7px 10px;
  border-radius:12px;
}

.fs-badge{
  font-size:12px;
  font-weight:700;
  color:#0f172a;
  background: rgba(15,23,42,0.06);
  padding:7px 10px;
  border-radius:999px;
}

.fs-title{
  margin:12px 0 0;
  font-size:16px;
  font-weight:800;
  color:var(--text);
}

.fs-sub{
  margin:6px 0 0;
  font-size:13px;
  color:var(--muted);
}

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

.btn-block{
  width:100%;
  justify-content:center;
}

.fs-empty{
  margin-top:14px;
}

.fs-empty-card{
  border:1px dashed rgba(15,23,42,0.22);
  border-radius:16px;
  padding:18px;
  text-align:center;
  background:#fff;
}

.fs-empty-title{
  font-weight:800;
  font-size:16px;
  color:var(--text);
}

.fs-empty-text{
  margin-top:6px;
  font-size:13px;
  color:var(--muted);
}

.fs-aside{
  position:sticky;
  top:16px;
  display:flex;
  flex-direction:column;
  gap:14px;
}

.aside-card{
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  padding:14px;
  box-shadow: 0 10px 24px rgba(0,0,0,0.06);
}

.aside-title{
  font-weight:800;
  font-size:13px;
  color:var(--text);
  margin-bottom:10px;
}

.aside-link{
  display:block;
  padding:10px 10px;
  border-radius:12px;
  color:var(--text);
  text-decoration:none;
  background: rgba(15,23,42,0.04);
  margin-bottom:8px;
  font-weight:600;
  font-size:13px;
}

.aside-link:hover{
  background: rgba(15,90,63,0.10);
}

.aside-link.is-active{
  background: rgba(15,90,63,0.12);
  border:1px solid rgba(15,90,63,0.22);
}

.fs-toast{
  position:fixed;
  left:50%;
  bottom:18px;
  transform: translateX(-50%);
  background: rgba(15,23,42,0.92);
  color:#fff;
  padding:10px 12px;
  border-radius:999px;
  font-size:13px;
  opacity:0;
  pointer-events:none;
  transition: opacity 140ms ease, transform 140ms ease;
  z-index:9999;
}

.fs-toast.is-show{
  opacity:1;
  transform: translateX(-50%) translateY(-4px);
}

@media (max-width: 980px){
  .hero-split{ grid-template-columns: 1fr; }
  .fs-layout{ grid-template-columns: 1fr; }
  .fs-aside{ position:static; }
  .fs-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px){
  .fs-grid{ grid-template-columns: 1fr; }
  .page-title{ font-size:28px; }
}
/* Annual Reports page (small override) */
.ar-hero{
  background:
    radial-gradient(1000px 300px at 18% 22%, rgba(255,255,255,0.18), rgba(255,255,255,0)),
    linear-gradient(135deg, var(--green-900), var(--green-600));
}
/* Newsletters page (small override) */
.nl-hero{
  background:
    radial-gradient(1000px 300px at 18% 22%, rgba(255,255,255,0.18), rgba(255,255,255,0)),
    linear-gradient(135deg, var(--green-800), var(--green-600));
}
/* BPA Acts page (small override) */
.act-hero{
  background:
    radial-gradient(1000px 300px at 18% 22%, rgba(255,255,255,0.18), rgba(255,255,255,0)),
    linear-gradient(135deg, var(--green-900), var(--green-800));
}

.fs-note{
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  padding:14px;
  box-shadow: 0 10px 24px rgba(0,0,0,0.06);
  margin-bottom:14px;
}

.fs-note-title{
  font-weight:800;
  font-size:13px;
  color:var(--text);
  margin-bottom:10px;
}

.fs-note-list{
  margin:0;
  padding-left:18px;
  color:var(--muted);
  font-size:13px;
  line-height:1.6;
}
/* RTI page (small override) */
.rti-hero{
  background:
    radial-gradient(1000px 300px at 18% 22%, rgba(255,255,255,0.18), rgba(255,255,255,0)),
    linear-gradient(135deg, var(--green-900), var(--green-700));
}
/* Media Enquiries page */
.me-hero{
  background:
    radial-gradient(1000px 300px at 18% 22%, rgba(255,255,255,0.18), rgba(255,255,255,0)),
    linear-gradient(135deg, var(--green-900), var(--green-700));
}

.me-layout{
  display:grid;
  grid-template-columns: 1fr 320px;
  gap:18px;
  align-items:start;
}

.me-card{
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  padding:16px;
  box-shadow: 0 10px 24px rgba(0,0,0,0.06);
}

.me-card + .me-card{ margin-top:14px; }

.me-card-soft{
  background: rgba(15,23,42,0.02);
}

.me-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:12px;
}

.me-title{
  margin:0;
  font-size:18px;
  font-weight:800;
  color:var(--text);
}

.me-sub{
  margin:6px 0 0;
  font-size:13px;
  color:var(--muted);
}

.me-badges{
  display:flex;
  gap:8px;
  align-items:center;
}

.me-pill{
  font-size:12px;
  font-weight:700;
  border:1px solid var(--line);
  background:#fff;
  color:var(--text);
  padding:6px 10px;
  border-radius:999px;
}

.me-pill.is-strong{
  border-color: rgba(15,90,63,0.28);
  background: rgba(15,90,63,0.10);
  color: var(--green-900);
}

.me-form label{
  display:block;
  font-size:13px;
  font-weight:700;
  margin:0 0 6px;
  color:var(--text);
}

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

.me-field-full{
  grid-column: 1 / -1;
}

.me-form input,
.me-form select,
.me-form textarea{
  width:100%;
  border:1px solid var(--line);
  border-radius:12px;
  padding:10px 12px;
  font-family:var(--font);
  outline:0;
  background:#fff;
}

.me-form textarea{ resize:vertical; }

.me-form input:focus,
.me-form select:focus,
.me-form textarea:focus{
  border-color: rgba(15,90,63,0.45);
  box-shadow: 0 0 0 4px rgba(15,90,63,0.12);
}

.me-consent{
  margin-top:2px;
}

.me-check{
  display:flex;
  gap:10px;
  align-items:flex-start;
  font-size:13px;
  color:var(--muted);
  user-select:none;
}

.me-check input{
  width:18px;
  height:18px;
  margin-top:2px;
}

.me-actions{
  margin-top:12px;
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}

.me-hint{
  font-size:12px;
  color:var(--muted);
}

.me-success{
  border-top:1px solid var(--line);
  margin-top:14px;
  padding-top:14px;
}

.me-success-title{
  font-weight:900;
  color:var(--green-900);
  font-size:16px;
}

.me-success-text{
  margin-top:6px;
  font-size:13px;
  color:var(--muted);
}

.me-mini-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:12px;
}

.me-mini{
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px;
  background:#fff;
}

.me-mini-label{
  font-size:12px;
  color:var(--muted);
  font-weight:700;
}

.me-mini-value{
  margin-top:6px;
  font-size:13px;
  font-weight:800;
  color:var(--text);
  text-decoration:none;
  display:block;
  word-break:break-word;
}

.me-mini-value:hover{ text-decoration:underline; }

.me-bullets{
  margin:0;
  padding-left:18px;
  color:var(--muted);
  font-size:13px;
  line-height:1.6;
}

.me-aside{
  position:sticky;
  top:16px;
  display:flex;
  flex-direction:column;
  gap:14px;
}

.me-kpi{
  font-size:18px;
  font-weight:800;
  letter-spacing:-0.01em;
}

@media (max-width: 980px){
  .me-layout{ grid-template-columns: 1fr; }
  .me-aside{ position:static; }
  .me-mini-grid{ grid-template-columns: 1fr; }
  .me-grid{ grid-template-columns: 1fr; }
}
/* Media Enquiries form patch
   Add this at the END of assets/css/style.css
*/

/* Auto style for legacy markup */
.me-form--legacy{
  max-width: 640px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(0,0,0,0.06);
}

/* If your form is already inside .me-card, avoid double card styling */
.me-card .me-form--legacy{
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

/* Make fields stack and fill width even if markup is "Label <input>" */
.me-form--legacy input[type="text"],
.me-form--legacy input[type="email"],
.me-form--legacy input[type="tel"],
.me-form--legacy input[type="number"],
.me-form--legacy input[type="url"],
.me-form--legacy select,
.me-form--legacy textarea{
  width: 100%;
  max-width: 100%;
  display: block;
  margin: 6px 0 12px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  font-family: var(--font);
  font-size: 13px;
  outline: 0;
  box-sizing: border-box;
}

.me-form--legacy textarea{
  min-height: 140px;
  resize: vertical;
}

.me-form--legacy input:focus,
.me-form--legacy select:focus,
.me-form--legacy textarea:focus{
  border-color: rgba(15,90,63,0.45);
  box-shadow: 0 0 0 4px rgba(15,90,63,0.12);
}

/* Checkbox row */
.me-form--legacy input[type="checkbox"]{
  width: 18px;
  height: 18px;
  display: inline-block;
  margin: 0 8px 0 0;
  vertical-align: middle;
}

/* Buttons (works for <input type="submit"> and <button>) */
.me-form--legacy input[type="submit"],
.me-form--legacy button[type="submit"]{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 14px;
  border-radius: 12px;
  border: 1px solid transparent;
  background: #0f766e;
  color: #fff;
  font-weight: 800;
  font-size: 13px;
  cursor: pointer;
}

.me-form--legacy input[type="reset"],
.me-form--legacy button[type="reset"]{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 14px;
  border-radius: 12px;
  border: 1px solid rgba(15,118,110,0.25);
  background: transparent;
  color: #0f172a;
  font-weight: 800;
  font-size: 13px;
  cursor: pointer;
}

.me-form--legacy input[type="submit"]:hover,
.me-form--legacy button[type="submit"]:hover{
  filter: brightness(0.95);
}

.me-form--legacy input[type="reset"]:hover,
.me-form--legacy button[type="reset"]:hover{
  background: rgba(15,118,110,0.08);
}

/* Optional: small text inside the form */
.me-form--legacy small,
.me-form--legacy .hint{
  color: var(--muted);
  font-size: 12px;
}
/* Request for a Document page (small override) */
.rfd-hero{
  background:
    radial-gradient(1000px 300px at 18% 22%, rgba(255,255,255,0.18), rgba(255,255,255,0)),
    linear-gradient(135deg, var(--green-900), var(--green-600));
}

.rfd-kpi{
  font-size:18px;
  font-weight:800;
  letter-spacing:-0.01em;
}
/* Contact page */
.contact-hero{
  background:
    radial-gradient(1000px 300px at 18% 22%, rgba(255,255,255,0.18), rgba(255,255,255,0)),
    linear-gradient(135deg, var(--green-900), var(--green-600));
}

.contact-layout{
  display:grid;
  grid-template-columns: 1fr 360px;
  gap:18px;
  align-items:start;
}

.contact-card{
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  padding:16px;
  box-shadow: 0 10px 24px rgba(0,0,0,0.06);
}

.contact-card + .contact-card{ margin-top:14px; }

.contact-card-soft{
  background: rgba(15,23,42,0.02);
}

.contact-aside{
  position:sticky;
  top:16px;
  display:flex;
  flex-direction:column;
  gap:14px;
}

.contact-kpi{
  font-size:18px;
  font-weight:800;
  letter-spacing:-0.01em;
}

.contact-mini-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:12px;
}

.contact-mini{
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px;
  background:#fff;
}

.contact-mini-label{
  font-size:12px;
  color:var(--muted);
  font-weight:700;
}

.contact-mini-value{
  margin-top:6px;
  font-size:13px;
  font-weight:800;
  color:var(--text);
  text-decoration:none;
  display:block;
  word-break:break-word;
}

.contact-mini-value:hover{ text-decoration:underline; }

.contact-lines{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:6px;
}

.contact-line{
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px;
  background:#fff;
}

.contact-line-label{
  font-size:12px;
  color:var(--muted);
  font-weight:700;
}

.contact-line-value{
  margin-top:6px;
  font-size:13px;
  font-weight:800;
  color:var(--text);
}

.contact-line-value a{
  color:var(--text);
  text-decoration:none;
}

.contact-line-value a:hover{ text-decoration:underline; }

.contact-quick{
  margin-top:12px;
  display:grid;
  grid-template-columns: 1fr;
  gap:10px;
}

.contact-map{
  width:100%;
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
  background:#fff;
}

.contact-map iframe{
  width:100%;
  height:260px;
  border:0;
  display:block;
}

@media (max-width: 980px){
  .contact-layout{ grid-template-columns: 1fr; }
  .contact-aside{ position:static; }
  .contact-mini-grid{ grid-template-columns: 1fr; }
}
.noscriptBar{
  background:#0f172a;
  color:#fff;
  padding:12px 16px;
  text-align:center;
  font-weight:600;
}
.liveGrid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

@media (max-width: 1100px){
  .liveGrid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width: 700px){
  .liveGrid{grid-template-columns:1fr;}
}

.liveStat--solar .barFill{
  background: linear-gradient(90deg,#d4af37,rgba(212,175,55,0.45));
}
.liveCharts{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

@media (max-width: 1100px){
  .liveCharts{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width: 700px){
  .liveCharts{grid-template-columns:1fr;}
}
.liveCharts{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

@media (max-width: 1100px){
  .liveCharts{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width: 700px){
  .liveCharts{grid-template-columns:1fr;}
}
/* =========================================================
   Section Titles Pro Pack
   Applies to all: <h2 class="section__title">...</h2>
========================================================= */

/* Make headings look premium */
.section__title{
  margin:0;
  font-family: var(--font);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.05;
  font-size: clamp(1.65rem, 1.15rem + 1.6vw, 2.6rem);
  color: var(--text);
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 12px;
}

/* Accent bar */
.section__title::before{
  content:"";
  width: 10px;
  height: 30px;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--green-800), var(--green-600));
  box-shadow: 0 10px 22px rgba(6,58,42,0.20);
  flex: 0 0 auto;
}

/* Subtle underline glow */
.section__title::after{
  content:"";
  position:absolute;
  left: 22px;
  bottom: -10px;
  width: min(220px, 70%);
  height: 10px;
  border-radius: 999px;
  background: rgba(212,175,55,0.30);
  filter: blur(8px);
  opacity: 0.9;
  pointer-events: none;
}

/* Subtitles align better with the new title */
.section__subtitle{
  margin-top: 10px;
  max-width: 70ch;
  color: var(--muted);
  font-size: 1.02rem;
  line-height: 1.65;
}

/* Dark sections support */
.section--alt .section__title{
  color: var(--text);
}

/* Optional: centered section heads if you use it */
.section__head.is-center{
  text-align:center;
}
.section__head.is-center .section__title{
  justify-content:center;
}
.section__head.is-center .section__title::after{
  left: 50%;
  transform: translateX(-40%);
}

/* Tiny entrance polish if you already use .reveal */
.section__head.reveal .section__title{
  transform: translateY(6px);
}
.section__head.reveal.is-in .section__title{
  transform: translateY(0);
  transition: transform 420ms ease;
}

/* Mobile spacing */
@media (max-width: 700px){
  .section__title::before{ height: 26px; }
  .section__title::after{ bottom: -8px; }
}
/* =========================================================
   Button hover animations
   Works with: .btn .btn--primary .btn--ghost .btn--sm
========================================================= */

.btn{
  position: relative;
  overflow: hidden;
  transform: translateZ(0);
  transition: transform 180ms ease, box-shadow 220ms ease, filter 220ms ease;
  will-change: transform;
}

/* Shine sweep */
.btn::after{
  content:"";
  position:absolute;
  top:-30%;
  left:-60%;
  width:60%;
  height:160%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.22), transparent);
  transform: skewX(-18deg);
  opacity:0;
  pointer-events:none;
}

/* Hover and focus */
.btn:hover,
.btn:focus-visible{
  transform: translateY(-2px);
  box-shadow: 0 16px 30px rgba(0,0,0,0.16);
}

.btn:hover::after,
.btn:focus-visible::after{
  opacity:1;
  animation: btnShine 700ms ease;
}

.btn:active{
  transform: translateY(0);
  box-shadow: 0 10px 18px rgba(0,0,0,0.12);
}

@keyframes btnShine{
  from{ left:-60%; }
  to{ left:120%; }
}

/* Primary gets a stronger glow */
.btn--primary:hover,
.btn--primary:focus-visible{
  box-shadow: 0 18px 34px rgba(6,58,42,0.30);
  filter: brightness(1.02);
}

/* Ghost buttons get a subtle background fill on hover */
.btn--ghost{
  background: transparent;
  transition: background-color 220ms ease, border-color 220ms ease, transform 180ms ease, box-shadow 220ms ease;
}

.btn--ghost:hover,
.btn--ghost:focus-visible{
  background: rgba(15,118,110,0.10);
  border-color: rgba(15,118,110,0.35);
}

/* Small buttons keep smaller motion */
.btn--sm:hover,
.btn--sm:focus-visible{
  transform: translateY(-1px);
}
/* =========================================================
   Global link hover animation
   Excludes: top nav menu (.nav__menu .nav__link) and buttons
========================================================= */

a{
  transition: color 180ms ease, opacity 180ms ease;
}

/* underline animation for normal links */
a:not(.btn):not(.nav__link){
  position: relative;
  text-decoration: none;
}

a:not(.btn):not(.nav__link)::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-6px;
  width:100%;
  height:2px;
  border-radius:999px;
  background: linear-gradient(90deg, var(--green-800), var(--green-600), rgba(212,175,55,0.9));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 240ms ease;
}

a:not(.btn):not(.nav__link):hover::after,
a:not(.btn):not(.nav__link):focus-visible::after{
  transform: scaleX(1);
}

/* subtle lift */
a:not(.btn):not(.nav__link):hover,
a:not(.btn):not(.nav__link):focus-visible{
  opacity: 0.95;
}

/* respect reduced motion */
@media (prefers-reduced-motion: reduce){
  a,
  a:not(.btn):not(.nav__link)::after{
    transition: none !important;
  }
}
/* =========================================================
   Hero video button hover animation
   Targets: <a class="hbVideo"> <span class="hbPlay">▶</span> ...
========================================================= */

.hbVideo{
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border-radius: 999px;
  padding: 8px 12px;
  transition: transform 180ms ease, filter 220ms ease;
}

.hbVideo:hover,
.hbVideo:focus-visible{
  transform: translateY(-1px);
  filter: brightness(1.03);
}

/* Play circle */
.hbVideo .hbPlay{
  position: relative;
  width: 38px;
  height: 38px;
  border-radius: 999px;
  display: inline-grid;
  place-items: center;
  font-size: 14px;
  line-height: 1;
  background: rgba(255,255,255,0.14);
  border: 1px solid rgba(255,255,255,0.28);
  box-shadow: 0 12px 26px rgba(0,0,0,0.22);
  transition: transform 180ms ease, background-color 220ms ease, border-color 220ms ease;
}

/* Ripple ring */
.hbVideo .hbPlay::after{
  content:"";
  position:absolute;
  inset:-10px;
  border-radius: 999px;
  border: 2px solid rgba(212,175,55,0.45);
  opacity: 0;
  transform: scale(0.92);
  pointer-events: none;
}

/* Hover effects */
.hbVideo:hover .hbPlay,
.hbVideo:focus-visible .hbPlay{
  transform: scale(1.08);
  background: rgba(212,175,55,0.18);
  border-color: rgba(212,175,55,0.55);
}

.hbVideo:hover .hbPlay::after,
.hbVideo:focus-visible .hbPlay::after{
  opacity: 1;
  animation: hbRing 900ms ease-out infinite;
}

.hbVideo:hover .hbPlay{
  animation: hbPop 550ms ease;
}

/* Subtle text underline slide */
.hbVideo span:last-child{
  position: relative;
}

.hbVideo span:last-child::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-4px;
  width:100%;
  height:2px;
  border-radius: 999px;
  background: rgba(212,175,55,0.75);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 220ms ease;
}

.hbVideo:hover span:last-child::after,
.hbVideo:focus-visible span:last-child::after{
  transform: scaleX(1);
}

@keyframes hbRing{
  0%{ transform: scale(0.92); opacity: 0.65; }
  100%{ transform: scale(1.16); opacity: 0; }
}

@keyframes hbPop{
  0%{ transform: scale(1.00); }
  55%{ transform: scale(1.12); }
  100%{ transform: scale(1.08); }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .hbVideo,
  .hbVideo .hbPlay,
  .hbVideo .hbPlay::after,
  .hbVideo span:last-child::after{
    transition: none !important;
    animation: none !important;
  }
}
.scrollProg{
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 4px;
  background: rgba(255,255,255,0.06);
  z-index: 9999;
}
.scrollProg span{
  display:block;
  height:100%;
  width:0%;
  background: linear-gradient(90deg, var(--green-600), rgba(212,175,55,0.9));
  box-shadow: 0 10px 24px rgba(0,0,0,0.18);
}
.section__title{
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.08;
  font-size: clamp(24px, 3.2vw, 42px);
  margin: 0;
  position: relative;
}

.section__title::after{
  content:"";
  display:block;
  width: 64px;
  height: 4px;
  border-radius: 999px;
  margin-top: 10px;
  background: linear-gradient(90deg, rgba(212,175,55,0.95), var(--green-600));
  opacity: 0.95;
}

.section__subtitle{
  max-width: 70ch;
}
.miniToast{
  position: fixed;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%) translateY(12px);
  background: rgba(15,23,42,0.92);
  color: #fff;
  padding: 10px 14px;
  border-radius: 999px;
  font-size: 13px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 180ms ease, transform 180ms ease;
  z-index: 9999;
  border: 1px solid rgba(255,255,255,0.12);
}
.miniToast.is-show{
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
.card, .aboutStrip__card, .newsCard, .doc{
  transition: transform 180ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.card:hover, .aboutStrip__card:hover, .newsCard:hover, .doc:hover{
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(0,0,0,0.16);
  border-color: rgba(212,175,55,0.35);
}
.preload{
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: grid;
  place-items: center;
  background: linear-gradient(180deg, rgba(6,58,42,0.92), rgba(6,58,42,0.78));
  backdrop-filter: blur(10px);
  transition: opacity 260ms ease, visibility 260ms ease;
}

.preload.is-done{
  opacity: 0;
  visibility: hidden;
}

.preload__card{
  width: min(360px, 92vw);
  padding: 20px 18px;
  border-radius: 18px;
  background: rgba(255,255,255,0.10);
  border: 1px solid rgba(255,255,255,0.14);
  box-shadow: 0 24px 60px rgba(0,0,0,0.28);
  text-align: center;
}

.preload__logo{
  width: 78px;
  height: auto;
}

.preload__txt{
  margin-top: 10px;
  color: rgba(255,255,255,0.92);
  font-weight: 600;
}

.preload__bar{
  margin-top: 14px;
  height: 8px;
  border-radius: 999px;
  background: rgba(255,255,255,0.14);
  overflow: hidden;
}

.preload__bar span{
  display:block;
  height:100%;
  width:0%;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--green-600), rgba(212,175,55,0.95));
  transition: width 140ms ease;
}

@media (prefers-reduced-motion: reduce){
  .preload{ transition: none !important; }
  .preload__bar span{ transition: none !important; }
}
.reveal{
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 520ms ease, transform 520ms ease;
}

.reveal.is-in{
  opacity: 1;
  transform: translateY(0);
}

.reveal[data-stagger] > *{
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 520ms ease, transform 520ms ease;
}

.reveal.is-in[data-stagger] > *{
  opacity: 1;
  transform: translateY(0);
}

.reveal.is-in[data-stagger] > *:nth-child(1){ transition-delay: 0ms; }
.reveal.is-in[data-stagger] > *:nth-child(2){ transition-delay: 70ms; }
.reveal.is-in[data-stagger] > *:nth-child(3){ transition-delay: 140ms; }
.reveal.is-in[data-stagger] > *:nth-child(4){ transition-delay: 210ms; }
.reveal.is-in[data-stagger] > *:nth-child(5){ transition-delay: 280ms; }
.reveal.is-in[data-stagger] > *:nth-child(6){ transition-delay: 350ms; }

@media (prefers-reduced-motion: reduce){
  .reveal, .reveal[data-stagger] > *{
    transition: none !important;
    transform: none !important;
  }
}
.hero{ position: relative; }
.heroFx{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  pointer-events:none;
  opacity: 0.55;
  z-index: 0;
}
.hero .container{ position: relative; z-index: 1; }

@media (prefers-reduced-motion: reduce){
  .heroFx{ display:none; }
}
.livePanel{
  position: relative;
  overflow: hidden;
}

.livePanel::before{
  content:"";
  position:absolute;
  inset:-2px;
  background: conic-gradient(from 180deg, rgba(212,175,55,0.55), rgba(15,118,110,0.55), rgba(212,175,55,0.55));
  filter: blur(10px);
  opacity: 0.35;
  animation: liveGlow 6s linear infinite;
  pointer-events:none;
}

@keyframes liveGlow{
  from{ transform: rotate(0deg); }
  to{ transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce){
  .livePanel::before{ animation: none !important; }
}
/* Footer background to green */
.footer{
  background: var(--green-900) !important;
  color: rgba(255,255,255,0.92) !important;
}

.footer__cap,
.footer__name{
  color: #ffffff !important;
}

.footer__text,
.footer__meta,
.footer__link,
.footer__bottom,
.footer__bottomLinks a{
  color: rgba(255,255,255,0.82) !important;
}

.footer__link:hover,
.footer__bottomLinks a:hover{
  color: rgba(212,175,55,0.95) !important;
}

/* Divider line in footer */
.footer__bottom{
  border-top: 1px solid rgba(255,255,255,0.12) !important;
}
/* Footer quick links nicer */
.footer__cap{
  font-weight: 700;
  letter-spacing: 0.02em;
  margin-bottom: 10px;
}

.footer__link{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 0;
  position: relative;
  opacity: 0.9;
}

.footer__link::before{
  content:"";
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: rgba(255,255,255,0.28);
  transition: transform 180ms ease, background-color 180ms ease;
}

.footer__link:hover{
  opacity: 1;
}

.footer__link:hover::before{
  background: rgba(212,175,55,0.95);
  transform: scale(1.12);
}

@media (max-width: 700px){
  .footer__link{ padding: 8px 0; }
}
/* Mega menu polish */
.megaMenu{
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 22px 60px rgba(0,0,0,0.22);
  border: 1px solid rgba(255,255,255,0.08);
}

.megaMenu__media img{
  transform: scale(1.02);
  transition: transform 260ms ease;
}

.menu-item-has-children:hover .megaMenu__media img{
  transform: scale(1.06);
}
/* =========================
   WHO WE ARE page upgrades
   ========================= */

/* Hero */
.pageHero{
  position: relative;
  padding: clamp(38px, 5vw, 64px) 0;
  overflow: hidden;
}

.pageHero__bg{
  position:absolute;
  inset:0;
  background:
    linear-gradient(120deg, rgba(6,58,42,0.20), rgba(6,58,42,0.20)),
    url("assets/img/banner-2.jpg") center/cover no-repeat;
  transform: scale(1.03);
}

.pageHero::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(700px 260px at 18% 18%, rgba(212,175,55,0.22), transparent 60%),
    radial-gradient(680px 260px at 82% 10%, rgba(15,118,110,0.22), transparent 60%);
  pointer-events:none;
}

.pageHero__wrap{ position: relative; z-index: 1; }

.crumbs{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  font-size: 13px;
  color: rgba(255,255,255,0.78);
  margin-bottom: 12px;
}

.crumbs__link{
  color: rgba(255,255,255,0.92);
  text-decoration:none;
}
.crumbs__link:hover{ color: rgba(212,175,55,0.95); }

.pageHero__title{
  margin: 0;
  color:#fff;
  font-weight: 900;
  letter-spacing: -0.03em;
  line-height: 1.05;
  font-size: clamp(30px, 4.2vw, 54px);
}

.pageHero__sub{
  margin: 12px 0 0;
  max-width: 68ch;
  color: rgba(255,255,255,0.85);
  font-size: clamp(14px, 1.35vw, 18px);
  line-height: 1.6;
}

/* Layout */
.whoGrid{
  display:grid;
  grid-template-columns: 1.6fr 0.9fr;
  gap: 18px;
  align-items:start;
}

@media (max-width: 980px){
  .whoGrid{ grid-template-columns: 1fr; }
}

/* Main cards */
.whoMain .card{
  border: 1px solid rgba(15,23,42,0.10);
  box-shadow: 0 14px 34px rgba(0,0,0,0.10);
}

.whoCap{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--green-800);
  margin-bottom: 10px;
}

.whoCap::before{
  content:"";
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(212,175,55,0.95), var(--green-600));
  box-shadow: 0 10px 24px rgba(0,0,0,0.12);
}

.whoTitle{
  margin: 0 0 10px;
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1.12;
  font-size: clamp(18px, 2.2vw, 26px);
}

/* Values */
.whoValues{
  margin-top: 12px;
}

.whoValue{
  border: 1px solid rgba(15,23,42,0.10);
  border-radius: 16px;
  padding: 14px 14px;
  background: rgba(255,255,255,0.75);
  backdrop-filter: blur(6px);
  transition: transform 180ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

.whoValue .icon{
  width: 38px;
  height: 38px;
  border-radius: 12px;
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(6,58,42,0.08);
  color: var(--green-800);
  border: 1px solid rgba(6,58,42,0.10);
  margin-bottom: 10px;
}

.whoValue__k{
  font-weight: 800;
  letter-spacing: -0.01em;
}

.whoValue__t{
  margin-top: 6px;
  color: rgba(15,23,42,0.75);
  line-height: 1.55;
}

.whoValue:hover{
  transform: translateY(-4px);
  border-color: rgba(212,175,55,0.35);
  box-shadow: 0 18px 40px rgba(0,0,0,0.16);
}

/* Side card */
.whoSticky{
  position: sticky;
  top: 96px;
}

.whoDivider{
  height: 1px;
  background: rgba(255,255,255,0.10);
  border-top: 1px solid rgba(15,23,42,0.10);
  margin: 14px 0;
}

/* Mandate list */
.whoList{
  margin: 10px 0 0;
  padding-left: 18px;
}
.whoList li{
  margin: 10px 0;
  color: rgba(15,23,42,0.80);
  line-height: 1.55;
}

/* On this page TOC */
.whoToc{
  display:flex;
  flex-wrap:wrap;
  gap: 10px;
  margin-top: 10px;
}

.whoToc a{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 9px 12px;
  border-radius: 999px;
  text-decoration:none;
  font-weight: 700;
  font-size: 13px;
  color: rgba(15,23,42,0.86);
  background: rgba(255,255,255,0.75);
  border: 1px solid rgba(15,23,42,0.10);
  transition: transform 160ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

.whoToc a::before{
  content:"";
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: rgba(6,58,42,0.22);
  transition: transform 160ms ease, background-color 160ms ease;
}

.whoToc a:hover{
  transform: translateY(-2px);
  border-color: rgba(212,175,55,0.35);
  box-shadow: 0 16px 34px rgba(0,0,0,0.12);
}

.whoToc a:hover::before{
  background: rgba(212,175,55,0.95);
  transform: scale(1.12);
}

.whoToc a.is-on{
  border-color: rgba(212,175,55,0.55);
}

.whoToc a.is-on::before{
  background: rgba(212,175,55,0.95);
}

/* Fix anchor offset under fixed header */
#mission, #vision, #values, #profile, #mandate{
  scroll-margin-top: 92px;
}

/* =========================================================
   FOIC / Our School page polish
========================================================= */

/* Hero variant */
.pageHero--foic{
  position: relative;
  padding: clamp(44px, 5.5vw, 74px) 0;
  overflow: hidden;
}

.pageHero--foic .pageHero__bg{
  position:absolute;
  inset:0;
  background:
    linear-gradient(120deg, rgba(6,58,42,0.94), rgba(6,58,42,0.58)),
    url("assets/img/school-hero.jpg") center/cover no-repeat;
  transform: scale(1.03);
}

.pageHero--foic::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(700px 260px at 16% 18%, rgba(212,175,55,0.22), transparent 60%),
    radial-gradient(680px 260px at 84% 12%, rgba(15,118,110,0.22), transparent 60%);
  pointer-events:none;
}

.pageHero--foic .pageHero__wrap{ position: relative; z-index: 1; }

.pageHero__kicker{
  display:inline-flex;
  gap: 10px;
  align-items:center;
  color: rgba(255,255,255,0.78);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 12px;
}

.pageHero__lead{
  margin-top: 12px;
  max-width: 72ch;
  color: rgba(255,255,255,0.86);
  font-size: clamp(14px, 1.35vw, 18px);
  line-height: 1.65;
}

/* Pills */
.pillRow{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}

@media (max-width: 980px){
  .pillRow{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px){
  .pillRow{ grid-template-columns: 1fr; }
}

.pill{
  border-radius: 18px;
  padding: 14px 14px;
  background: rgba(255,255,255,0.78);
  border: 1px solid rgba(15,23,42,0.10);
  box-shadow: 0 14px 34px rgba(0,0,0,0.08);
  transition: transform 180ms ease, box-shadow 220ms ease, border-color 220ms ease;
  position: relative;
  overflow: hidden;
}

.pill::before{
  content:"";
  position:absolute;
  inset:-2px;
  background:
    radial-gradient(260px 140px at 10% 10%, rgba(212,175,55,0.14), transparent 60%),
    radial-gradient(260px 140px at 90% 10%, rgba(15,118,110,0.12), transparent 60%);
  opacity: 0;
  transition: opacity 220ms ease;
  pointer-events:none;
}

.pill__t{
  font-weight: 900;
  letter-spacing: -0.01em;
  margin-bottom: 6px;
}

.pill__s{
  color: rgba(15,23,42,0.72);
  line-height: 1.5;
}

.pill:hover{
  transform: translateY(-4px);
  border-color: rgba(212,175,55,0.35);
  box-shadow: 0 18px 40px rgba(0,0,0,0.14);
}
.pill:hover::before{ opacity: 1; }

/* Stats row */
.statsRow{
  margin-top: 14px;
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}

@media (max-width: 980px){
  .statsRow{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px){
  .statsRow{ grid-template-columns: 1fr; }
}

.statBox{
  border-radius: 18px;
  padding: 14px 14px;
  background: rgba(6,58,42,0.06);
  border: 1px solid rgba(6,58,42,0.10);
}

.statBox__k{
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(15,23,42,0.70);
}

.statBox__v{
  margin-top: 8px;
  font-weight: 900;
  letter-spacing: -0.02em;
  color: var(--green-900);
}

/* Two column layout */
.twoCol{
  display:grid;
  grid-template-columns: 1.6fr 0.9fr;
  gap: 18px;
  align-items:start;
}

@media (max-width: 980px){
  .twoCol{ grid-template-columns: 1fr; }
}

.twoCol__main{ min-width: 0; }

/* Content cards */
.contentCard{
  border-radius: 18px;
  background: #fff;
  border: 1px solid rgba(15,23,42,0.10);
  box-shadow: 0 14px 34px rgba(0,0,0,0.08);
  padding: 18px 18px;
  margin-bottom: 14px;
}

.contentCard h2{
  margin: 0 0 10px;
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1.12;
  font-size: clamp(18px, 2.1vw, 26px);
}

.contentCard p{
  margin: 10px 0 0;
  color: rgba(15,23,42,0.78);
  line-height: 1.7;
}

/* Icon list */
.iconList{
  list-style: none;
  padding: 0;
  margin: 12px 0 0;
  display: grid;
  gap: 12px;
}

.iconList li{
  display:grid;
  grid-template-columns: 18px 1fr;
  gap: 12px;
  align-items:start;
}

.iconDot{
  width: 12px;
  height: 12px;
  border-radius: 999px;
  margin-top: 4px;
  background: linear-gradient(90deg, rgba(212,175,55,0.95), var(--green-600));
  box-shadow: 0 10px 24px rgba(0,0,0,0.12);
}

.iconList .k{ font-weight: 900; }
.iconList .m{ color: rgba(15,23,42,0.72); }

/* Timeline */
.timeline{
  list-style:none;
  padding: 0;
  margin: 12px 0 0;
  display:grid;
  gap: 12px;
}

.timeline li{
  border-radius: 18px;
  padding: 14px 14px;
  background: rgba(255,255,255,0.82);
  border: 1px solid rgba(15,23,42,0.10);
  box-shadow: 0 14px 34px rgba(0,0,0,0.08);
}

.timeline .time{
  font-weight: 900;
  color: var(--green-900);
  letter-spacing: -0.01em;
}

.timeline .txt{
  margin-top: 6px;
  color: rgba(15,23,42,0.78);
  line-height: 1.65;
}

/* Gallery */
.galleryGrid{
  margin-top: 12px;
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

@media (max-width: 980px){
  .galleryGrid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px){
  .galleryGrid{ grid-template-columns: 1fr; }
}

.galleryGrid a{
  border-radius: 18px;
  overflow: hidden;
  display:block;
  border: 1px solid rgba(15,23,42,0.10);
  box-shadow: 0 14px 34px rgba(0,0,0,0.10);
  transition: transform 180ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

.galleryGrid img{
  width: 100%;
  height: 220px;
  object-fit: cover;
  display:block;
  transform: scale(1.02);
  transition: transform 260ms ease;
}

.galleryGrid a:hover{
  transform: translateY(-4px);
  border-color: rgba(212,175,55,0.35);
  box-shadow: 0 18px 44px rgba(0,0,0,0.18);
}
.galleryGrid a:hover img{ transform: scale(1.06); }

/* CTA band */
.ctaBand{
  border-radius: 20px;
  padding: 16px 16px;
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 14px;
  background:
    linear-gradient(120deg, rgba(6,58,42,0.94), rgba(6,58,42,0.72));
  border: 1px solid rgba(255,255,255,0.14);
  box-shadow: 0 22px 60px rgba(0,0,0,0.22);
  margin-top: 14px;
}

.ctaBand__t{
  color:#fff;
  font-weight: 900;
  letter-spacing: -0.02em;
}

.ctaBand__s{
  margin-top: 6px;
  color: rgba(255,255,255,0.84);
}

@media (max-width: 680px){
  .ctaBand{ flex-direction: column; align-items:flex-start; }
}

/* Side card */
.sideCard{
  border-radius: 20px;
  padding: 16px 16px;
  background: rgba(255,255,255,0.86);
  border: 1px solid rgba(15,23,42,0.10);
  box-shadow: 0 14px 34px rgba(0,0,0,0.10);
  position: sticky;
  top: 96px;
}

.sideCard__cap{
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--green-800);
  margin-bottom: 10px;
}

.sideLinks{
  display:flex;
  flex-direction: column;
  gap: 10px;
}

.sideLinks a{
  display:inline-flex;
  align-items:center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 14px;
  text-decoration:none;
  font-weight: 800;
  color: rgba(15,23,42,0.84);
  background: rgba(255,255,255,0.78);
  border: 1px solid rgba(15,23,42,0.10);
  transition: transform 160ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

.sideLinks a::before{
  content:"";
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: rgba(6,58,42,0.22);
  transition: transform 160ms ease, background-color 160ms ease;
}

.sideLinks a:hover{
  transform: translateY(-2px);
  border-color: rgba(212,175,55,0.35);
  box-shadow: 0 16px 34px rgba(0,0,0,0.12);
}

.sideLinks a:hover::before{
  background: rgba(212,175,55,0.95);
  transform: scale(1.12);
}

.sideDivider{
  height: 1px;
  background: rgba(15,23,42,0.10);
  margin: 14px 0;
}

.sideMeta{
  display:grid;
  gap: 10px;
  color: rgba(15,23,42,0.78);
  line-height: 1.5;
}

.sideMeta .k{
  font-weight: 900;
  color: rgba(15,23,42,0.92);
}

/* Anchor offset under fixed header */
#overview, #facilities, #programme, #outreach, #gallery, #visit{
  scroll-margin-top: 92px;
}
/* =========================================================
   Board of Directors page polish
========================================================= */

/* Hero variant */
.pageHero--board{
  position: relative;
  padding: clamp(44px, 5.5vw, 74px) 0;
  overflow: hidden;
}

.pageHero__bg--board{
  position:absolute;
  inset:0;
  background:
    linear-gradient(120deg, rgba(6,58,42,0.94), rgba(6,58,42,0.58)),
    url("assets/img/board/board-hero.jpg") center/cover no-repeat;
  transform: scale(1.03);
}

.pageHero--board::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(700px 260px at 16% 18%, rgba(212,175,55,0.22), transparent 60%),
    radial-gradient(680px 260px at 84% 12%, rgba(15,118,110,0.22), transparent 60%);
  pointer-events:none;
}

.boardPage .pageHero__wrap{ position: relative; z-index: 1; }

/* Top bar */
.boardBar{
  border-radius: 20px;
  padding: 14px 14px;
  background: rgba(255,255,255,0.82);
  border: 1px solid rgba(15,23,42,0.10);
  box-shadow: 0 14px 34px rgba(0,0,0,0.08);
  display:flex;
  align-items:flex-end;
  justify-content: space-between;
  gap: 14px;
}

.boardBar__title{
  font-weight: 900;
  letter-spacing: -0.02em;
  font-size: 18px;
}

.boardBar__meta{
  color: rgba(15,23,42,0.68);
  margin-top: 4px;
}

.boardBar__controls{
  display:flex;
  gap: 12px;
  align-items:flex-end;
  flex-wrap: wrap;
}

@media (max-width: 980px){
  .boardBar{ flex-direction: column; align-items: stretch; }
  .boardBar__controls{ width:100%; }
  .boardBar__controls .field{ flex: 1; min-width: 220px; }
}

/* Board layout */
.boardLayout{
  display:grid;
  grid-template-columns: 1.6fr 0.9fr;
  gap: 18px;
  align-items:start;
}

@media (max-width: 980px){
  .boardLayout{ grid-template-columns: 1fr; }
}

/* Board grid */
.boardGrid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}

@media (max-width: 980px){
  .boardGrid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px){
  .boardGrid{ grid-template-columns: 1fr; }
}

/* Director cards */
.directorCard{
  border-radius: 20px;
  background: rgba(255,255,255,0.86);
  border: 1px solid rgba(15,23,42,0.10);
  box-shadow: 0 14px 34px rgba(0,0,0,0.10);
  overflow: hidden;
  display:flex;
  flex-direction: column;
  transition: transform 180ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

.directorCard__media{
  position: relative;
  height: 190px;
  overflow: hidden;
}

.directorCard__media::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,0.22));
  pointer-events:none;
}

.directorCard__media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.02);
  transition: transform 260ms ease;
  display:block;
}

.directorCard__body{
  padding: 14px 14px 16px;
  display:flex;
  flex-direction: column;
  gap: 8px;
}

.directorCard__name{
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1.15;
}

.directorCard__role{
  display:inline-flex;
  width: fit-content;
  padding: 6px 10px;
  border-radius: 999px;
  font-weight: 800;
  font-size: 12px;
  color: rgba(6,58,42,0.95);
  background: rgba(6,58,42,0.08);
  border: 1px solid rgba(6,58,42,0.12);
}

.tagRow{
  display:flex;
  flex-wrap:wrap;
  gap: 8px;
}

.tag{
  border-radius: 999px;
  padding: 6px 10px;
  font-weight: 800;
  font-size: 12px;
  color: rgba(15,23,42,0.76);
  background: rgba(255,255,255,0.78);
  border: 1px solid rgba(15,23,42,0.10);
}

.directorCard__btn{
  margin-top: 6px;
  width: 100%;
}

.directorCard:hover{
  transform: translateY(-5px);
  border-color: rgba(212,175,55,0.35);
  box-shadow: 0 18px 46px rgba(0,0,0,0.18);
}

.directorCard:hover .directorCard__media img{
  transform: scale(1.06);
}

/* Side card */
.boardSticky{
  position: sticky;
  top: 96px;
}

.boardLinks{
  display:flex;
  flex-direction: column;
  gap: 10px;
}

.boardLink{
  display:inline-flex;
  align-items:center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 14px;
  text-decoration:none;
  font-weight: 800;
  color: rgba(15,23,42,0.86);
  background: rgba(255,255,255,0.78);
  border: 1px solid rgba(15,23,42,0.10);
  transition: transform 160ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

.boardLink::before{
  content:"";
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: rgba(6,58,42,0.22);
  transition: transform 160ms ease, background-color 160ms ease;
}

.boardLink:hover{
  transform: translateY(-2px);
  border-color: rgba(212,175,55,0.35);
  box-shadow: 0 16px 34px rgba(0,0,0,0.12);
}

.boardLink:hover::before{
  background: rgba(212,175,55,0.95);
  transform: scale(1.12);
}

.boardMeta{
  display:grid;
  gap: 10px;
  color: rgba(15,23,42,0.78);
  line-height: 1.5;
}

/* Modal polish */
.dModal{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.55);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 18px;
  z-index: 1000;
}

.dModal.is-open{ display:flex; }

.dModal__panel{
  width: min(860px, 96vw);
  border-radius: 22px;
  background: rgba(255,255,255,0.92);
  border: 1px solid rgba(255,255,255,0.24);
  box-shadow: 0 26px 90px rgba(0,0,0,0.30);
  overflow: hidden;
}

.dModal__close{
  position:absolute;
  top: 10px;
  right: 10px;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  border: 1px solid rgba(15,23,42,0.12);
  background: rgba(255,255,255,0.92);
  font-size: 22px;
  cursor: pointer;
  line-height: 1;
  transition: transform 160ms ease, box-shadow 220ms ease;
}

.dModal__close:hover{
  transform: scale(1.04);
  box-shadow: 0 16px 34px rgba(0,0,0,0.14);
}

.dModal__head{
  display:flex;
  gap: 14px;
  align-items:center;
  padding: 18px 18px 12px;
  border-bottom: 1px solid rgba(15,23,42,0.08);
}

.dModal__photo{
  width: 78px;
  height: 78px;
  border-radius: 18px;
  object-fit: cover;
  border: 1px solid rgba(15,23,42,0.10);
}

.dModal__name{
  font-weight: 900;
  letter-spacing: -0.02em;
  font-size: 20px;
}

.dModal__role{
  margin-top: 4px;
  display:inline-flex;
  padding: 6px 10px;
  border-radius: 999px;
  font-weight: 800;
  font-size: 12px;
  color: rgba(6,58,42,0.95);
  background: rgba(6,58,42,0.08);
  border: 1px solid rgba(6,58,42,0.12);
}

.dModal__body{
  padding: 16px 18px 18px;
  color: rgba(15,23,42,0.78);
  line-height: 1.7;
}

.directorBio h3{
  margin: 0 0 10px;
  font-weight: 900;
  letter-spacing: -0.02em;
}

.bioSplit{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 12px;
}

@media (max-width: 700px){
  .bioSplit{ grid-template-columns: 1fr; }
}

.bioK{
  font-weight: 900;
  color: rgba(15,23,42,0.90);
  margin-bottom: 8px;
}

.bioList{
  margin: 0;
  padding-left: 18px;
}
.bioList li{ margin: 8px 0; }
/* =========================================================
   Management Team page polish
========================================================= */

/* Hero variant */
.pageHero--mgmt{
  position: relative;
  padding: clamp(44px, 5.5vw, 74px) 0;
  overflow: hidden;
}

.pageHero__bg--mgmt{
  position:absolute;
  inset:0;
  background:
    linear-gradient(120deg, rgba(6,58,42,0.94), rgba(6,58,42,0.60)),
    url("assets/img/management/mgmt-hero.jpg") center/cover no-repeat;
  transform: scale(1.03);
}

.pageHero--mgmt::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(720px 260px at 18% 18%, rgba(212,175,55,0.22), transparent 60%),
    radial-gradient(720px 260px at 82% 14%, rgba(15,118,110,0.22), transparent 60%);
  pointer-events:none;
}

.mgmtPage .pageHero__wrap{ position: relative; z-index: 1; }

/* Tree container */
.mgmtTree{
  border-radius: 22px;
  background: rgba(255,255,255,0.86);
  border: 1px solid rgba(15,23,42,0.10);
  box-shadow: 0 18px 46px rgba(0,0,0,0.10);
  padding: 18px;
  overflow: hidden;
}

/* Connector line */
.mgmtLine{
  height: 22px;
  width: 2px;
  margin: 14px auto;
  background: linear-gradient(to bottom, rgba(212,175,55,0.70), rgba(6,58,42,0.65));
  border-radius: 999px;
  box-shadow: 0 10px 24px rgba(0,0,0,0.10);
}

/* Level layouts */
.mgmtLevel{
  display:flex;
  justify-content:center;
  gap: 18px;
  flex-wrap: wrap;
}

.mgmtLevel--top{ margin-bottom: 10px; }

.mgmtLevel--dceo{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  align-items:start;
}

@media (max-width: 980px){
  .mgmtLevel--dceo{ grid-template-columns: 1fr; }
}

/* Branch card area */
.mgmtBranch{
  border-radius: 20px;
  background: rgba(255,255,255,0.74);
  border: 1px solid rgba(15,23,42,0.10);
  padding: 14px;
  box-shadow: 0 14px 34px rgba(0,0,0,0.08);
}

/* CEO / DCEO Node */
.mgmtNode{
  border-radius: 20px;
  background: rgba(255,255,255,0.86);
  border: 1px solid rgba(15,23,42,0.10);
  box-shadow: 0 16px 42px rgba(0,0,0,0.10);
  padding: 14px;
  width: min(330px, 100%);
  text-align:center;
  transition: transform 180ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

.mgmtNode__photo{
  width: 110px;
  height: 110px;
  border-radius: 22px;
  overflow:hidden;
  margin: 0 auto 10px;
  border: 1px solid rgba(15,23,42,0.10);
  box-shadow: 0 14px 34px rgba(0,0,0,0.10);
}

.mgmtNode__photo img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.02);
  transition: transform 260ms ease;
  display:block;
}

.mgmtNode__name{
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1.1;
  font-size: 18px;
}

.mgmtNode__role{
  margin-top: 6px;
  display:inline-flex;
  padding: 6px 10px;
  border-radius: 999px;
  font-weight: 800;
  font-size: 12px;
  color: rgba(6,58,42,0.95);
  background: rgba(6,58,42,0.08);
  border: 1px solid rgba(6,58,42,0.12);
}

.mgmtNode__btn{
  margin-top: 10px;
  width: 100%;
  border-radius: 14px;
  padding: 10px 12px;
  border: 1px solid rgba(15,23,42,0.12);
  background: rgba(255,255,255,0.82);
  font-weight: 900;
  cursor:pointer;
  transition: transform 160ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

.mgmtNode__btn:hover{
  transform: translateY(-2px);
  border-color: rgba(212,175,55,0.35);
  box-shadow: 0 18px 38px rgba(0,0,0,0.14);
}

/* Hover lift */
.mgmtNode:hover{
  transform: translateY(-5px);
  border-color: rgba(212,175,55,0.35);
  box-shadow: 0 22px 54px rgba(0,0,0,0.16);
}

.mgmtNode:hover .mgmtNode__photo img{
  transform: scale(1.07);
}

/* Children directors grid */
.mgmtChildren{
  margin-top: 12px;
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

@media (max-width: 1200px){
  .mgmtChildren{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px){
  .mgmtChildren{ grid-template-columns: 1fr; }
}

/* Small director cards */
.dirCard{
  display:flex;
  gap: 10px;
  align-items:center;
  padding: 10px;
  border-radius: 18px;
  background: rgba(255,255,255,0.82);
  border: 1px solid rgba(15,23,42,0.10);
  box-shadow: 0 12px 28px rgba(0,0,0,0.08);
  cursor: pointer;
  transition: transform 180ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

.dirCard img{
  width: 56px;
  height: 56px;
  border-radius: 14px;
  object-fit: cover;
  border: 1px solid rgba(15,23,42,0.10);
}

.dirCard__n{
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1.15;
}

.dirCard__r{
  margin-top: 2px;
  font-weight: 800;
  font-size: 12px;
  color: rgba(15,23,42,0.68);
}

.dirCard:hover{
  transform: translateY(-4px);
  border-color: rgba(212,175,55,0.35);
  box-shadow: 0 18px 40px rgba(0,0,0,0.14);
}

/* Use same modal styles as board page */
.mgmtPage .dModal__panel{
  width: min(900px, 96vw);
}

/* Reduce spacing issues on mobile */
@media (max-width: 700px){
  .mgmtTree{ padding: 14px; }
  .mgmtBranch{ padding: 12px; }
}
/* Management page layout polish */
.mgmtLayout{
  display:grid;
  grid-template-columns: 1fr 340px;
  gap: 18px;
  align-items:start;
}
@media (max-width: 980px){
  .mgmtLayout{ grid-template-columns: 1fr; }
}

.mgmtSide .card,
.mgmtSideCard{
  border-radius: 22px;
  background: rgba(255,255,255,0.86);
  border: 1px solid rgba(15,23,42,0.10);
  box-shadow: 0 18px 46px rgba(0,0,0,0.10);
  padding: 16px;
}

.mgmtSideToc{
  display:grid;
  gap: 10px;
  margin-top: 10px;
}
.mgmtSideToc a{
  display:flex;
  justify-content:space-between;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(15,23,42,0.10);
  background: rgba(255,255,255,0.78);
  font-weight: 800;
}
.mgmtSideToc a:hover{
  border-color: rgba(212,175,55,0.35);
  box-shadow: 0 16px 34px rgba(0,0,0,0.12);
  transform: translateY(-2px);
}

img[data-person]{
  background: rgba(15,23,42,0.06);
}

/* ============================
   NAV: click-to-open mega menu
============================ */

.header, .header__wrap, .nav{ overflow: visible; }
.nav__menu{ position: relative; }

.menu-item-has-children{
  position: relative;
}

/* Disable hover-open. We will use .is-open only */
.menu-item-has-children > .sub-menu{
  display: none;
}
.menu-item-has-children:hover > .sub-menu{
  display: none;
}
.menu-item-has-children.is-open > .sub-menu{
  display: block;
}

/* Keep submenu above everything */
.menu-item-has-children > .sub-menu{
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 3000;
}

/* Bridge the gap so it does not close when moving mouse down */
.menu-item-has-children::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:100%;
  height: 14px;
}

/* Caret on parent items */
.menu-item-has-children > a.nav__link{
  position: relative;
  padding-right: 22px;
}
.menu-item-has-children > a.nav__link::after{
  content:"▾";
  position:absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 12px;
  opacity: 0.65;
}
.menu-item-has-children.is-open > a.nav__link::after{
  transform: translateY(-50%) rotate(180deg);
  opacity: 0.9;
}

/* Mobile: submenu should flow inside the open menu */
@media (max-width: 980px){
  .menu-item-has-children > .sub-menu{
    position: static;
    width: 100%;
    margin-top: 8px;
  }
  .menu-item-has-children::after{
    display:none;
  }
}
/* ===== NAV caret (removes the square glyph) ===== */
.nav__menu .menu-item-has-children > .nav__link{
  display:flex;
  align-items:center;
  gap:8px;
  position:relative;
}

/* kill any old icon glyph injected by theme/font */
.nav__menu .menu-item-has-children > .nav__link::before{
  content:none !important;
}

/* draw a clean caret with borders */
.nav__menu .menu-item-has-children > .nav__link::after{
  content:"";
  width:8px;
  height:8px;
  margin-left:6px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:rotate(45deg);
  opacity:.55;
  transition:transform .18s ease, opacity .18s ease;
}

/* caret rotates when open */
.nav__menu .menu-item-has-children.is-open > .nav__link::after{
  transform:rotate(-135deg);
  opacity:.9;
}

/* make submenu hover area stable */
.nav__menu .menu-item-has-children{ position:relative; }

/* if your submenu is absolute-positioned, remove the gap that causes flicker */
.nav__menu .menu-item-has-children > .sub-menu{
  top:100%;
  margin-top:0;
}

/* invisible bridge so mouse can move from link to submenu without closing */
.nav__menu .menu-item-has-children > .sub-menu::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-12px;
  height:12px;
}
/* Flip nav caret down */
.nav__menu .menu-item-has-children > .nav__link::after{
  transform: rotate(225deg);
}

.nav__menu .menu-item-has-children.is-open > .nav__link::after{
  transform: rotate(-45deg);
}
/* -------------------------------------------------
   Mobile menu overlay fix (prevents header push-down)
   ------------------------------------------------- */
@media (max-width: 980px){
  /* keep the header stable on scroll */
  header{
    position: sticky;
    top: 0;
    z-index: 3000;
  }

  /* If your menu element is #navMenu (your JS toggles .is-open on it) */
  #navMenu{
    display: none;
    position: fixed !important;
    top: 86px !important;          /* sits under the header */
    right: 12px;
    left: auto;
    width: min(92vw, 360px);
    max-height: calc(100vh - 98px);
    overflow: auto;
    margin: 0 !important;          /* stop layout shifts */
    z-index: 3500;
  }
  #navMenu.is-open{ display: block; }

  /* If your menu element uses .nav__menu class instead */
  .nav__menu{
    position: fixed !important;
    top: 86px !important;
    right: 12px;
    left: auto;
    width: min(92vw, 360px);
    max-height: calc(100vh - 98px);
    overflow: auto;
    margin: 0 !important;
    z-index: 3500;
  }

  /* Submenus must expand inside the panel, not affect header flow */
  #navMenu .sub-menu,
  .nav__menu .sub-menu{
    position: static !important;
    width: 100%;
    margin: 6px 0 10px;
  }
}
/* ===== Portfolio article polish (BGS page) ===== */

/* Hero background image + overlay */
.pageHero__bg--bgs{
  background:
    linear-gradient(180deg, rgba(6,58,42,.74), rgba(6,58,42,.10) 55%, rgba(255,255,255,.0)),
    url("../img/portfolio/bgs_main.jpg");
  background-size:cover;
  background-position:center;
}

/* Hero spacing */
.pageHero{
  padding:64px 0 44px;
}
@media (max-width: 980px){
  .pageHero{ padding:54px 0 34px; }
}
.pageHero__title{
  letter-spacing:-0.02em;
  line-height:1.05;
  max-width:860px;
}
.pageHero__sub{
  max-width:760px;
  opacity:.95;
}

/* Breadcrumb chip feel */
.crumbs{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.crumbs__link,
.crumbs__current{
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.14);
  padding:8px 10px;
  border-radius:999px;
  color:#fff;
  text-decoration:none;
}
.crumbs__sep{ display:none; }
.crumbs__link:hover{ background:rgba(255,255,255,.14); }

/* Quick facts row */
.statsRow{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:14px;
}
@media (max-width: 980px){
  .statsRow{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
.statBox{
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  padding:16px 16px;
  box-shadow:0 10px 26px rgba(0,0,0,.06);
}
.statBox__k{
  font-size:12px;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:6px;
}
.statBox__v{
  font-size:16px;
  font-weight:700;
  color:var(--text);
}

/* Article layout feel */
.articleLayout{
  gap:22px;
}
.articleMain{
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:22px;
  box-shadow:0 16px 40px rgba(0,0,0,.06);
}
@media (max-width: 980px){
  .articleMain{ padding:18px; }
}
.articleTitle{
  letter-spacing:-0.02em;
}
.articleFigure{
  border-radius:16px;
  overflow:hidden;
  border:1px solid var(--line);
  background:#f8fafc;
  margin:14px 0 16px;
}
.articleFigure img{
  width:100%;
  height:auto;
  display:block;
}
.articleBody p{
  color:#0f172a;
  line-height:1.75;
  margin:0 0 14px;
}
.articleBody p:last-child{ margin-bottom:0; }

/* Side card polish */
.sideCard{
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:18px;
  box-shadow:0 16px 40px rgba(0,0,0,.06);
  position:sticky;
  top:92px;
}
@media (max-width: 980px){
  .sideCard{ position:static; }
}
.sideNav__link{
  display:block;
  padding:10px 12px;
  border-radius:12px;
  text-decoration:none;
  color:var(--text);
  border:1px solid transparent;
}
.sideNav__link:hover{
  background:rgba(15,118,110,.06);
  border-color:rgba(15,118,110,.14);
}
.sideNav__link.is-active{
  background:rgba(15,118,110,.10);
  border-color:rgba(15,118,110,.18);
  font-weight:700;
}

/* Downloads look like actions */
.boardLink{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  padding:10px 12px;
  border-radius:12px;
  text-decoration:none;
  font-weight:700;
  border:1px solid rgba(15,118,110,.22);
  background:rgba(15,118,110,.08);
  color:var(--green-800);
  margin:6px 0;
}
.boardLink:hover{
  background:rgba(15,118,110,.12);
}
/* Partners logos: center and keep color */
.partnerCard { display:flex }
.partnerCard { align-items:center }
.partnerCard { justify-content:center }
.partnerCard { padding:12px 16px }
.partnerCard { min-height:72px }

.partnerCard img { display:block }
.partnerCard img { max-height:80px }
.partnerCard img { width:auto }
.partnerCard img { object-fit:contain }
.partnerCard img { margin:0 auto }

/* Remove gray look if your CSS was forcing it */
.partnerCard img { filter:none }
.partnerCard img { opacity:1 }
.partnerCard img { mix-blend-mode:normal }



/* ===== Premium enhancement layer ===== */
:root{
  --pro-shadow: 0 18px 45px rgba(6,58,42,.12);
  --pro-border: rgba(6,58,42,.10);
  --pro-panel: rgba(255,255,255,.86);
  --pro-panel-strong: rgba(255,255,255,.94);
  --pro-glow: rgba(11,122,85,.16);
}

body.site-enhanced .hbSlide,
body.site-enhanced .pageHero,
body.site-enhanced .page-hero,
body.site-enhanced .newsCard,
body.site-enhanced .statCard,
body.site-enhanced .fs-card,
body.site-enhanced .boardCard,
body.site-enhanced .teamCard,
body.site-enhanced .doc,
body.site-enhanced .contactCard,
body.site-enhanced .valueCard,
body.site-enhanced .projectCard,
body.site-enhanced .featureCard,
body.site-enhanced .metricCard{
  box-shadow: var(--pro-shadow);
}

body.site-enhanced .newsCard,
body.site-enhanced .fs-card,
body.site-enhanced .boardCard,
body.site-enhanced .teamCard,
body.site-enhanced .doc,
body.site-enhanced .contactCard,
body.site-enhanced .projectCard,
body.site-enhanced .featureCard{
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
body.site-enhanced .newsCard:hover,
body.site-enhanced .fs-card:hover,
body.site-enhanced .boardCard:hover,
body.site-enhanced .teamCard:hover,
body.site-enhanced .doc:hover,
body.site-enhanced .contactCard:hover,
body.site-enhanced .projectCard:hover,
body.site-enhanced .featureCard:hover{
  transform: translateY(-4px);
  box-shadow: 0 22px 48px rgba(6,58,42,.16);
  border-color: rgba(11,122,85,.22);
}

.quickLinksStrip{
  margin: 18px auto 0;
  display: grid;
  grid-template-columns: repeat(5, minmax(0,1fr));
  gap: 12px;
}
.quickLinksStrip__item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  border-radius:18px;
  background: linear-gradient(180deg, rgba(255,255,255,.95), rgba(255,255,255,.82));
  border:1px solid rgba(255,255,255,.55);
  backdrop-filter: blur(10px);
  box-shadow: 0 16px 40px rgba(6,58,42,.12);
  color:#063a2a;
  text-decoration:none;
  font-weight:700;
}
.quickLinksStrip__item span:last-child{
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background: rgba(6,58,42,.08);
}
.quickLinksStrip__item:hover{
  transform: translateY(-2px);
  box-shadow: 0 20px 40px rgba(6,58,42,.14);
}

.smartSectionNav{
  position: sticky;
  top: calc(var(--headerH, 78px) + 8px);
  z-index: 30;
  margin: 0 auto 22px;
}
.smartSectionNav__inner{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  padding:12px;
  border-radius:18px;
  background: rgba(255,255,255,.86);
  border:1px solid var(--pro-border);
  box-shadow: 0 16px 32px rgba(6,58,42,.10);
  backdrop-filter: blur(12px);
}
.smartSectionNav__label{
  display:flex;
  align-items:center;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#0b7a55;
  padding:0 6px;
}
.smartSectionNav__inner a{
  display:inline-flex;
  align-items:center;
  padding:10px 14px;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(6,58,42,.08);
  color:#063a2a;
  text-decoration:none;
  font-weight:700;
  font-size:.92rem;
}
.smartSectionNav__inner a:hover,
.smartSectionNav__inner a.is-on{
  background:#063a2a;
  color:#fff;
  border-color:#063a2a;
}

.pageMetaBar{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:16px;
}
.pageMetaBar__pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  border-radius:999px;
  background: rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  color:#fff;
  font-weight:700;
  font-size:.92rem;
  backdrop-filter: blur(10px);
}
.pageMetaBar--light .pageMetaBar__pill{
  background:#fff;
  border-color:rgba(6,58,42,.08);
  color:#063a2a;
}

.siteDock{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:100;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:12px;
}
.siteDock__toggle,
.siteDock__btn{
  width:54px;
  height:54px;
  border:none;
  border-radius:18px;
  cursor:pointer;
  position:relative;
  display:grid;
  place-items:center;
  transition: transform .24s ease, box-shadow .24s ease, background .24s ease, opacity .24s ease;
}
.siteDock__toggle{
  background: linear-gradient(180deg, rgba(255,255,255,.28), rgba(255,255,255,.12));
  border:1px solid rgba(255,255,255,.4);
  box-shadow: 0 18px 40px rgba(6,58,42,.18);
  backdrop-filter: blur(16px) saturate(140%);
  -webkit-backdrop-filter: blur(16px) saturate(140%);
}
.siteDock__toggle::before,
.siteDock__toggle::after,
.siteDock__toggle span{
  content:'';
  position:absolute;
  width:20px;
  height:2px;
  border-radius:999px;
  background: linear-gradient(90deg, #f4fffb, #c6f7e5);
  box-shadow: 0 1px 10px rgba(198,247,229,.35);
  transition: transform .24s ease, opacity .24s ease;
}
.siteDock__toggle::before{ transform: translateY(-6px); }
.siteDock__toggle::after{ transform: translateY(6px); }
.siteDock.is-open .siteDock__toggle::before{ transform: rotate(45deg); }
.siteDock.is-open .siteDock__toggle::after{ transform: rotate(-45deg); }
.siteDock.is-open .siteDock__toggle span{ opacity:0; }
.siteDock__menu{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:10px;
  opacity:0;
  pointer-events:none;
  transform: translateY(10px) scale(.92);
  transform-origin: bottom right;
  transition: opacity .24s ease, transform .24s ease;
}
.siteDock.is-open .siteDock__menu{
  opacity:1;
  pointer-events:auto;
  transform: translateY(0) scale(1);
}
.siteDock__btn{
  background: linear-gradient(180deg, rgba(255,255,255,.28), rgba(222,255,245,.14));
  border:1px solid rgba(255,255,255,.44);
  box-shadow: 0 18px 40px rgba(6,58,42,.14);
  backdrop-filter: blur(16px) saturate(150%);
  -webkit-backdrop-filter: blur(16px) saturate(150%);
  color:#eafff6;
}
.siteDock__btn svg{
  width:21px;
  height:21px;
  stroke:#eafff6;
  stroke-width:2;
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
  filter: drop-shadow(0 2px 8px rgba(234,255,246,.18));
}
.siteDock__btn:hover,
.siteDock__toggle:hover{
  transform: translateY(-3px) scale(1.02);
  box-shadow: 0 22px 46px rgba(6,58,42,.20);
}
.siteDock__btn:focus-visible,
.siteDock__toggle:focus-visible{
  outline:2px solid rgba(198,247,229,.85);
  outline-offset:3px;
}
.siteDock__tip{
  position:absolute;
  right:64px;
  top:50%;
  transform: translateY(-50%);
  white-space:nowrap;
  padding:7px 10px;
  border-radius:999px;
  background: rgba(7,44,32,.76);
  color:#effff8;
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.02em;
  opacity:0;
  pointer-events:none;
  transition: opacity .2s ease, transform .2s ease;
}
.siteDock__btn:hover .siteDock__tip,
.siteDock__toggle:hover .siteDock__tip{
  opacity:1;
  transform: translateY(-50%) translateX(-4px);
}

.sitePalette{
  position:fixed;
  inset:0;
  z-index:25000;
  display:none;
  padding:20px;
  background: rgba(3,22,15,.56);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  isolation:isolate;
}
.sitePalette.is-open{ display:block; }
.sitePalette__card{
  position:relative;
  z-index:1;
  width:min(860px, calc(100vw - 24px));
  max-height:min(82vh, 860px);
  overflow:hidden;
  margin: 4vh auto 0;
  border-radius:26px;
  background: var(--pro-panel-strong);
  border:1px solid rgba(255,255,255,.7);
  box-shadow: 0 30px 80px rgba(0,0,0,.20);
}
.sitePalette__head{
  padding:18px;
  border-bottom:1px solid rgba(6,58,42,.08);
}
.sitePalette__search{
  width:100%;
  height:58px;
  border:none;
  outline:none;
  background: rgba(6,58,42,.05);
  border-radius:18px;
  padding:0 18px;
  font-size:1rem;
  color:#063a2a;
}
.sitePalette__hint{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:10px 2px 0;
  color:#4a665d;
  font-size:.88rem;
}
.sitePalette__list{
  overflow:auto;
  max-height: calc(82vh - 120px);
  padding:10px;
}
.sitePalette__item{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:center;
  padding:14px 16px;
  border-radius:16px;
  color:#063a2a;
  text-decoration:none;
  border:1px solid transparent;
}
.sitePalette__item:hover,
.sitePalette__item.is-active{
  background:#f5fbf7;
  border-color:rgba(11,122,85,.16);
}
.sitePalette__meta{
  color:#5f786f;
  font-size:.86rem;
}
.sitePalette mark{
  background: rgba(11,122,85,.18);
  color:inherit;
  padding:0 .12em;
  border-radius:4px;
}

.docStatusChip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:10px;
  padding:7px 10px;
  border-radius:999px;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.03em;
}
.docStatusChip.is-live{
  background: rgba(16,185,129,.12);
  color:#067a55;
}
.docStatusChip.is-missing{
  background: rgba(245,158,11,.14);
  color:#9a5a00;
}
.is-file-missing .btn,
.is-file-missing [download]{
  opacity:.55;
}
.is-file-missing{
  border-color: rgba(245,158,11,.28) !important;
  box-shadow: 0 18px 36px rgba(245,158,11,.08) !important;
}

.hubGrid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:22px;
}
.hubCard{
  display:flex;
  flex-direction:column;
  min-height:100%;
  border-radius:24px;
  overflow:hidden;
  background:#fff;
  border:1px solid rgba(6,58,42,.08);
  box-shadow: var(--pro-shadow);
}
.hubCard__media{
  aspect-ratio: 16/9;
  background-size:cover;
  background-position:center;
}
.hubCard__body{
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:22px;
}
.hubCard__eyebrow{
  color:#0b7a55;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.hubCard__title{
  margin:0;
  color:#063a2a;
  font-size:1.2rem;
}
.hubCard__text{
  margin:0;
  color:#466158;
}
.hubCard__actions{
  margin-top:auto;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.hubIntro{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap:24px;
  align-items:start;
  margin-bottom:26px;
}
.hubPanel{
  background:#fff;
  border-radius:24px;
  border:1px solid rgba(6,58,42,.08);
  box-shadow: var(--pro-shadow);
  padding:22px;
}
.hubList{
  display:grid;
  gap:12px;
  margin:0;
  padding:0;
  list-style:none;
}
.hubList a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  text-decoration:none;
  color:#063a2a;
  font-weight:700;
  padding:12px 14px;
  border-radius:16px;
  background:#f6faf8;
  border:1px solid rgba(6,58,42,.07);
}
.hubList a:hover{ background:#eef7f2; }
.aliasNotice{
  margin-top:16px;
  padding:12px 14px;
  border-radius:16px;
  background: rgba(11,122,85,.08);
  color:#063a2a;
  font-weight:600;
}

.footer__text{ max-width: 42ch; }

@media (max-width: 1100px){
  .quickLinksStrip,
  .hubGrid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hubIntro{ grid-template-columns: 1fr; }
}
@media (max-width: 760px){
  .quickLinksStrip,
  .hubGrid{ grid-template-columns: 1fr; }
  .sitePalette{ padding:12px; }
  .sitePalette__card{ width:100%; margin-top: 12px; }
  .siteDock{ right:12px; bottom:12px; }
  .siteDock__btn,
  .siteDock__toggle{ width:46px; height:46px; }
  .smartSectionNav{ top: calc(var(--headerH, 72px) + 6px); }
  .smartSectionNav__inner{ overflow:auto; flex-wrap:nowrap; }
}

/* Dock visibility tune on white backgrounds */
.siteDock__toggle{
  background: linear-gradient(180deg, rgba(101, 214, 156, .58), rgba(29, 176, 122, .34));
  border:1px solid rgba(18, 137, 94, .36);
  box-shadow: 0 18px 40px rgba(6,58,42,.16), inset 0 1px 0 rgba(255,255,255,.24);
}
.siteDock__toggle::before,
.siteDock__toggle::after,
.siteDock__toggle span{
  background: linear-gradient(90deg, #ffffff, #eefcf5);
  box-shadow: 0 1px 10px rgba(255,255,255,.22);
}
.siteDock__btn{
  background: linear-gradient(180deg, rgba(120, 224, 171, .50), rgba(36, 178, 127, .30));
  border:1px solid rgba(18, 137, 94, .34);
  box-shadow: 0 18px 40px rgba(6,58,42,.12), inset 0 1px 0 rgba(255,255,255,.22);
  color:#f7fffb;
}
.siteDock__btn svg{
  stroke:#f7fffb;
  filter: drop-shadow(0 2px 8px rgba(255,255,255,.12));
}
.siteDock__btn:hover,
.siteDock__toggle:hover{
  box-shadow: 0 22px 46px rgba(6,58,42,.18), inset 0 1px 0 rgba(255,255,255,.28);
}
.siteDock__tip{
  background: rgba(14, 96, 67, .86);
  color:#f2fff8;
}



/* === Corporate Gallery page === */
.pageHero--gallery .pageHero__bg{
  background:
    linear-gradient(180deg, rgba(0,0,0,0.18), rgba(0,0,0,0.46)),
    url("../img/menu-gallery.jpg") center/cover no-repeat;
  opacity:0.48;
}
.galleryHeroMeta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}
.galleryHeroMeta__pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  border-radius:999px;
  background:rgba(255,255,255,0.10);
  border:1px solid rgba(255,255,255,0.18);
  color:#ecfdf5;
  font-weight:700;
  box-shadow:0 10px 24px rgba(0,0,0,0.12);
  backdrop-filter:blur(10px);
}
.galleryIntro{
  display:grid;
  gap:16px;
  grid-template-columns:1.25fr .75fr;
  align-items:start;
}
.galleryIntro .card__text{margin:0;}
.galleryIntro__aside{position:sticky;top:96px;}
.galleryNote{
  display:grid;
  gap:10px;
}
.galleryNote__cap,
.albumCard__cap,
.galleryBoard__cap,
.galleryStat__k{
  font-weight:900;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(15,118,110,.96);
}
.galleryStatRow{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:14px;
}
.galleryStat{
  padding:16px;
  border-radius:16px;
  border:1px solid rgba(15,23,42,.08);
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,250,252,.92));
  box-shadow:0 12px 30px rgba(2,6,23,.06);
}
.galleryStat__v{
  margin-top:8px;
  font-size:1.6rem;
  line-height:1;
  font-weight:900;
  letter-spacing:-.03em;
  color:#0f172a;
}
.albumDeck{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}
.albumCard{
  display:grid;
  gap:0;
  border-radius:20px;
  overflow:hidden;
  text-decoration:none;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  box-shadow:0 18px 40px rgba(2,6,23,.08);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.albumCard:hover{
  transform:translateY(-6px);
  box-shadow:0 24px 60px rgba(2,6,23,.13);
  border-color:rgba(15,118,110,.22);
}
.albumCard__media{
  position:relative;
  aspect-ratio: 4 / 3;
  overflow:hidden;
  background:#dbe7e3;
}
.albumCard__media::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,.42) 100%);
  pointer-events:none;
}
.albumCard__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .45s ease;
}
.albumCard:hover .albumCard__media img{transform:scale(1.06);}
.albumCard__count{
  position:absolute;
  right:12px;
  top:12px;
  z-index:1;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:8px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.26);
  color:#fff;
  font-size:12px;
  font-weight:800;
  backdrop-filter:blur(10px);
}
.albumCard__body{
  display:grid;
  gap:8px;
  padding:16px;
}
.albumCard__title{
  margin:0;
  font-size:1.05rem;
  letter-spacing:-.01em;
  color:#0f172a;
}
.albumCard__text{
  margin:0;
  color:var(--muted);
  line-height:1.58;
  font-size:.95rem;
}
.albumCard__link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-weight:800;
  color:#0f5a3f;
}
.galleryBoard{
  display:grid;
  gap:16px;
}
.galleryBoard__head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}
.galleryBoard__title{
  margin:6px 0 0;
  font-size:1.9rem;
  letter-spacing:-.03em;
}
.galleryBoard__text{
  margin:8px 0 0;
  max-width:760px;
  color:var(--muted);
  line-height:1.65;
}
.galleryBoard__meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}
.galleryBoard__chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  border-radius:999px;
  background:rgba(15,118,110,.08);
  border:1px solid rgba(15,118,110,.14);
  color:#0f172a;
  font-weight:700;
}
.galleryFilters{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:4px;
}
.galleryFilter{
  appearance:none;
  border:1px solid rgba(15,23,42,.10);
  background:#fff;
  color:#0f172a;
  padding:10px 14px;
  min-height:44px;
  border-radius:999px;
  font-weight:800;
  cursor:pointer;
  transition:transform .18s ease, background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
  box-shadow:0 10px 24px rgba(2,6,23,.04);
}
.galleryFilter:hover{
  transform:translateY(-1px);
  border-color:rgba(15,118,110,.20);
  color:#0f5a3f;
}
.galleryFilter.is-active{
  background:linear-gradient(90deg, rgba(15,118,110,.14), rgba(6,58,42,.12));
  border-color:rgba(15,118,110,.24);
  color:#063a2a;
  box-shadow:0 14px 30px rgba(6,58,42,.10);
}
.corpGallery{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}
.corpGallery__item{
  position:relative;
  display:block;
  border-radius:20px;
  overflow:hidden;
  text-decoration:none;
  border:1px solid rgba(15,23,42,.08);
  background:#dbe7e3;
  box-shadow:0 16px 34px rgba(2,6,23,.07);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease, opacity .22s ease;
  min-height:260px;
}
.corpGallery__item:hover{
  transform:translateY(-5px);
  box-shadow:0 24px 60px rgba(2,6,23,.14);
  border-color:rgba(15,118,110,.22);
}
.corpGallery__item.is-hidden{display:none;}
.corpGallery__item img{
  width:100%;
  height:100%;
  min-height:260px;
  object-fit:cover;
  transition:transform .45s ease;
}
.corpGallery__item:hover img{transform:scale(1.06);}
.corpGallery__item::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,0) 24%, rgba(0,0,0,.72) 100%);
  z-index:1;
  pointer-events:none;
}
.corpGallery__item--wide{grid-column:span 2;}
.corpGallery__item--tall{grid-row:span 2; min-height:540px;}
.corpGallery__item--tall img{min-height:540px;}
.corpGallery__overlay{
  position:absolute;
  inset:auto 0 0 0;
  z-index:2;
  display:grid;
  gap:8px;
  padding:18px;
  color:#fff;
}
.corpGallery__album{
  display:inline-flex;
  align-items:center;
  width:max-content;
  padding:7px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.22);
  backdrop-filter:blur(10px);
  font-size:12px;
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.corpGallery__title{
  margin:0;
  font-size:1rem;
  line-height:1.25;
  font-weight:800;
  letter-spacing:-.01em;
}
.corpGallery__caption{
  margin:0;
  color:rgba(255,255,255,.88);
  line-height:1.55;
  font-size:.93rem;
  max-width:40ch;
}
.galleryEmpty{
  display:none;
  padding:18px;
  border:1px dashed rgba(15,23,42,.16);
  border-radius:18px;
  color:var(--muted);
  background:rgba(255,255,255,.72);
}
.galleryEmpty.is-show{display:block;}
.galleryCta{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:16px;
  align-items:stretch;
}
.galleryCta .card{height:100%;}
.galleryMiniList{display:grid;gap:10px;margin-top:10px;}
.galleryMiniList__item{
  display:flex;
  align-items:flex-start;
  gap:10px;
  color:var(--muted);
  line-height:1.55;
}
.galleryMiniList__dot{
  width:10px;
  height:10px;
  border-radius:999px;
  margin-top:7px;
  background:linear-gradient(180deg, #0f766e, #063a2a);
  flex:0 0 auto;
}
@media (max-width: 1180px){
  .albumDeck,
  .corpGallery{grid-template-columns:repeat(3,minmax(0,1fr));}
  .galleryIntro,
  .galleryCta{grid-template-columns:1fr;}
  .galleryIntro__aside{position:static;top:auto;}
}
@media (max-width: 860px){
  .albumDeck,
  .corpGallery{grid-template-columns:repeat(2,minmax(0,1fr));}
  .corpGallery__item--wide,
  .corpGallery__item--tall{grid-column:span 1; grid-row:span 1; min-height:280px;}
  .corpGallery__item--tall img{min-height:280px;}
  .galleryStatRow{grid-template-columns:1fr;}
}
@media (max-width: 580px){
  .albumDeck,
  .corpGallery{grid-template-columns:1fr;}
  .galleryBoard__title{font-size:1.55rem;}
  .corpGallery__item,
  .corpGallery__item img,
  .corpGallery__item--wide,
  .corpGallery__item--tall,
  .corpGallery__item--tall img{min-height:240px;}
}


/* Generic page hero upgrades */
.pageHero--who .pageHero__bg{
  background:
    linear-gradient(180deg, rgba(0,0,0,0.16), rgba(0,0,0,0.42)),
    url("../img/about/corporate.jpg") center/cover no-repeat;
  opacity:0.52;
}
.pageHero--portfolioHub .pageHero__bg{
  background:
    linear-gradient(180deg, rgba(0,0,0,0.14), rgba(0,0,0,0.42)),
    url("../img/menu-portfolio.jpg") center/cover no-repeat;
  opacity:0.50;
}
.pageHero--publicationsHub .pageHero__bg{
  background:
    linear-gradient(180deg, rgba(0,0,0,0.16), rgba(0,0,0,0.46)),
    url("../img/menu-publications.jpg") center/cover no-repeat;
  opacity:0.52;
}
.pageHero--csrHub .pageHero__bg{
  background:
    linear-gradient(180deg, rgba(0,0,0,0.14), rgba(0,0,0,0.40)),
    url("../img/menu-csr.jpg") center/cover no-repeat;
  opacity:0.50;
}
.pageHero--socialHub .pageHero__bg,
.pageHero--resources .pageHero__bg{
  background:
    linear-gradient(180deg, rgba(0,0,0,0.12), rgba(0,0,0,0.42)),
    url("../img/menu-environment.jpg") center/cover no-repeat;
  opacity:0.50;
}
.pageHero--engagement .pageHero__bg{
  background:
    linear-gradient(180deg, rgba(0,0,0,0.14), rgba(0,0,0,0.40)),
    url("../img/Tree-2.jpg") center/cover no-repeat;
  opacity:0.52;
}
.pageHero--pressList .pageHero__bg{
  background:
    linear-gradient(180deg, rgba(0,0,0,0.14), rgba(0,0,0,0.44)),
    url("../img/menu-news.jpg") center/cover no-repeat;
  opacity:0.50;
}
.pageHero--foicAlias .pageHero__bg{
  background:
    linear-gradient(180deg, rgba(0,0,0,0.12), rgba(0,0,0,0.40)),
    url("../img/foic1.jpg") center/cover no-repeat;
  opacity:0.54;
}
/* Make existing hero images show more clearly too */
.pageHero--board .pageHero__bg--board,
.pageHero--mgmt .pageHero__bg--mgmt,
.pageHero--school .pageHero__bg--school,
.pageHero--foic .pageHero__bg--foic,
.pageHero--fob .pageHero__bg--fob,
.pageHero--bgs .pageHero__bg--bgs,
.pageHero--tgs .pageHero__bg--tgs,
.pageHero--tx .pageHero__bg--tx,
.pageHero--hsh .pageHero__bg--hsh,
.pageHero--fs .pageHero__bg--fs,
.pageHero--wind .pageHero__bg--wind,
.pageHero--esmm .pageHero__bg--esmm,
.pageHero--resettle .pageHero__bg--resettle,
.pageHero--frep .pageHero__bg--frep,
.pageHero--salvage .pageHero__bg--salvage,
.pageHero--irrigation .pageHero__bg--irrigation,
.pageHero--csr .pageHero__bg--csr,
.pageHero--scholarship .pageHero__bg--scholarship,
.pageHero--csrProjects .pageHero__bg--csrProjects,
.pageHero--gallery .pageHero__bg,
.pageHero--news .pageHero__bg--news,
.pageHero--events .pageHero__bg--events,
.pageHero--press .pageHero__bg--press{
  opacity:0.52;
}
@media (prefers-reduced-motion: reduce){
  .pageHero__bg{ animation:none; transform:none; }
}


/* === Final homepage news slider media fix === */
#news .newsCard {
  overflow: hidden;
  min-width: 0;
}

#news .newsCard__media {
  position: relative;
  display: block;
  width: 100%;
  height: 220px;
  overflow: hidden;
  background-color: #eef4f1;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  line-height: 0;
  border-radius: 18px 18px 0 0;
}

#news .newsCard__media img {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block;
  margin: 0;
  transform: none !important;
}

#news .newsCard:hover .newsCard__media img {
  transform: scale(1.04) !important;
}

#news .newsCard__body .btn,
#news .newsCard__body a.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}


/* ============================
   MANAGEMENT TEAM PAGE UPGRADE
============================ */
.mgmtOverviewSection{padding:22px 0 8px;}
.mgmtOverview{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);
  gap:18px;
  align-items:stretch;
  padding:22px;
  border-radius:24px;
  background:linear-gradient(135deg, rgba(255,255,255,0.96), rgba(244,248,246,0.96));
  border:1px solid rgba(6,58,42,0.08);
  box-shadow:0 18px 48px rgba(0,0,0,0.08);
}
.mgmtOverview__eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 12px;
  border-radius:999px;
  background:rgba(6,58,42,0.08);
  color:#0b6b52;
  font-weight:800;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.mgmtOverview__title{margin:14px 0 8px; font-size:clamp(26px, 3vw, 36px); line-height:1.02; letter-spacing:-.03em;}
.mgmtOverview__text{margin:0; max-width:64ch; color:var(--muted); font-size:15px;}
.mgmtOverview__stats{display:grid; grid-template-columns:repeat(3, 1fr); gap:12px;}
.mgmtStat{
  padding:18px 16px;
  border-radius:20px;
  background:linear-gradient(180deg, rgba(6,58,42,0.98), rgba(11,107,82,0.94));
  color:#fff;
  box-shadow:0 18px 42px rgba(6,58,42,0.22);
}
.mgmtStat__num{display:block; font-size:32px; font-weight:900; line-height:1;}
.mgmtStat__label{display:block; margin-top:8px; font-weight:700; font-size:12px; color:rgba(255,255,255,.82);}

.mgmtPage .section--alt{padding-top:18px;}
.mgmtTree{
  padding:26px;
  border-radius:28px;
  background:linear-gradient(180deg, rgba(255,255,255,0.98), rgba(247,250,248,0.96));
  border:1px solid rgba(6,58,42,0.08);
  box-shadow:0 20px 56px rgba(0,0,0,0.08);
  gap:22px;
}
.mgmtLevel--top .mgmtNode{
  width:min(430px,100%);
  background:linear-gradient(180deg, rgba(255,255,255,0.98), rgba(245,250,247,0.96));
  border:1px solid rgba(11,107,82,0.18);
  box-shadow:0 24px 56px rgba(6,58,42,0.14);
  position:relative;
}
.mgmtLevel--top .mgmtNode::before{
  content:'Executive Office';
  position:absolute;
  top:14px;
  left:14px;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(6,58,42,0.08);
  color:#0b6b52;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.mgmtLevel--top .mgmtNode__photo{width:132px; height:132px; border-radius:26px; margin-top:18px;}
.mgmtLevel--top .mgmtNode__name{font-size:24px;}
.mgmtLevel--top .mgmtNode__btn{background:linear-gradient(180deg, rgba(6,58,42,0.98), rgba(11,107,82,0.94)); color:#fff; border-color:transparent;}
.mgmtLevel--top .mgmtNode__btn:hover{box-shadow:0 18px 44px rgba(6,58,42,0.22);}

.mgmtLine{height:28px; background:linear-gradient(to bottom, rgba(212,175,55,0.9), rgba(11,107,82,0.82));}
.mgmtLevel--dceo{gap:22px;}
.mgmtBranch{
  display:grid !important;
  grid-template-rows:auto auto;
  gap:16px;
  align-content:start;
  padding:22px;
  border-radius:24px;
  background:linear-gradient(180deg, rgba(255,255,255,0.98), rgba(245,250,247,0.95));
  border:1px solid rgba(6,58,42,0.08);
  box-shadow:0 18px 44px rgba(0,0,0,0.06);
}
.mgmtBranch::before{height:18px; background:linear-gradient(to bottom, rgba(212,175,55,0.78), rgba(11,107,82,0.72));}
.mgmtBranch__label{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  justify-self:start;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(6,58,42,0.08);
  color:#0b6b52;
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.mgmtBranch > .mgmtNode{
  width:100%;
  max-width:none;
  display:grid;
  grid-template-columns:96px 1fr;
  gap:14px;
  align-items:center;
  text-align:left;
  padding:16px;
  border-radius:22px;
  background:linear-gradient(180deg, rgba(6,58,42,0.98), rgba(11,107,82,0.94));
  color:#fff;
  border:0;
  box-shadow:0 20px 42px rgba(6,58,42,0.2);
}
.mgmtBranch > .mgmtNode .mgmtNode__photo{margin:0; width:96px; height:96px; border-radius:22px; border-color:rgba(255,255,255,0.18);}
.mgmtBranch > .mgmtNode .mgmtNode__name{font-size:20px; color:#fff;}
.mgmtBranch > .mgmtNode .mgmtNode__role{margin:8px 0 0; color:#fff; background:rgba(255,255,255,0.12); border-color:rgba(255,255,255,0.14);}
.mgmtBranch > .mgmtNode .mgmtNode__btn{margin-top:12px; max-width:220px; background:#fff; color:#063a2a; border-color:transparent;}
.mgmtBranch > .mgmtNode .mgmtNode__btn:hover{box-shadow:0 18px 38px rgba(0,0,0,0.18);}

.mgmtChildren{
  margin-top:2px;
  width:100%;
  grid-template-columns:repeat(3, minmax(0,1fr)) !important;
  gap:14px !important;
  padding-top:0;
}
.mgmtChildren::before{display:none;}
.dirCard{
  display:flex !important;
  align-items:center;
  gap:12px;
  min-height:96px;
  padding:12px;
  border-radius:18px;
  background:rgba(255,255,255,0.96);
  border:1px solid rgba(15,23,42,0.08);
  box-shadow:0 12px 32px rgba(0,0,0,0.06);
}
.dirCard img{
  width:64px !important;
  height:64px !important;
  min-width:64px;
  border-radius:18px;
  object-fit:cover;
  object-position:center top;
  border:1px solid rgba(15,23,42,0.08);
}
.dirCard__t{padding:0 !important;}
.dirCard__n{font-size:15px; line-height:1.2;}
.dirCard__r{font-size:12px; line-height:1.35; margin-top:4px;}

.mgmtPage .dModal__panel{width:min(980px, 96vw); border-radius:26px; box-shadow:0 28px 80px rgba(0,0,0,0.22);}
.mgmtPage .dModal__head{gap:18px;}
.mgmtPage .dModal__photo{border-radius:24px; object-position:center top;}

@media (max-width: 1180px){
  .mgmtOverview{grid-template-columns:1fr;}
  .mgmtOverview__stats{grid-template-columns:repeat(3, minmax(0,1fr));}
  .mgmtChildren{grid-template-columns:repeat(2, minmax(0,1fr)) !important;}
}
@media (max-width: 860px){
  .mgmtBranch > .mgmtNode{grid-template-columns:1fr; text-align:center;}
  .mgmtBranch > .mgmtNode .mgmtNode__photo{margin:0 auto;}
  .mgmtBranch > .mgmtNode .mgmtNode__btn{max-width:none;}
  .mgmtChildren{grid-template-columns:1fr !important;}
}
@media (max-width: 640px){
  .mgmtOverview{padding:18px;}
  .mgmtOverview__stats{grid-template-columns:1fr;}
  .mgmtTree{padding:18px;}
  .mgmtLevel--top .mgmtNode__name{font-size:21px;}
}


/* 2026 strategic experience upgrade */
.skipLink{position:fixed;left:18px;top:14px;transform:translateY(-180%);padding:12px 16px;border-radius:999px;background:#063a2a;color:#fff;font-weight:800;z-index:1300;box-shadow:0 18px 36px rgba(6,58,42,.22);transition:transform .2s ease;}
.skipLink:focus{transform:translateY(0);}
:focus-visible{outline:3px solid rgba(0,133,99,.36);outline-offset:3px;}
.langSwitch{display:inline-flex;gap:6px;align-items:center;margin-left:10px;}
.langSwitch__btn{border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);color:#fff;border-radius:999px;padding:5px 10px;font-size:.72rem;font-weight:800;cursor:pointer;}
.langSwitch__btn.is-active{background:#dcefe7;color:#0c5a43;border-color:#dcefe7;}
.section--strategic{background:linear-gradient(180deg,#f7fbf9 0%,#fff 100%);} 
.featureBand{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.75fr);gap:22px;align-items:stretch;margin-bottom:28px;}
.featureBand__main,.featureBand__side,.miniPanel,.portalCard,.insightCard,.scoreCard,.langCard,.featureJumpCard{background:#fff;border:1px solid rgba(10,90,67,.1);border-radius:24px;box-shadow:0 22px 50px rgba(11,35,29,.07);} 
.featureBand__main{padding:34px;} .featureBand__main h2{font-size:clamp(1.9rem,2.8vw,3rem);line-height:1.08;margin:10px 0 14px;color:#0f1728;} .featureBand__main p{max-width:62ch;color:#516271;font-size:1.02rem;line-height:1.85;}
.featureBand__side{padding:24px;} .featureTag,.sectionEyebrow{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:rgba(10,122,96,.1);color:#0a7a60;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;}
.featureActions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px;} .miniPanel{padding:22px;} .miniPanel__cap{font-size:.82rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#0a7a60;margin-bottom:10px;} .miniList{display:grid;gap:10px;padding-left:18px;color:#415363;}
.featureStats{display:grid;gap:12px;} .featureStat{padding:16px 18px;border-radius:18px;background:rgba(10,122,96,.06);} .featureStat strong{display:block;font-size:1.3rem;color:#102033;} .featureStat span{display:block;color:#5c6d78;}
.smartBar{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;align-items:center;margin:12px 0 26px;} .smartBar__group{display:flex;flex-wrap:wrap;gap:10px;} .smartBar__search input{min-width:280px;padding:14px 16px;border-radius:999px;border:1px solid rgba(10,90,67,.16);background:#fff;}
.chipBtn{border:1px solid rgba(10,90,67,.16);background:#fff;color:#0f1728;border-radius:999px;padding:10px 14px;font-weight:700;cursor:pointer;} .chipBtn.is-active,.chipBtn:hover{background:#0a5a43;color:#fff;border-color:#0a5a43;}
.contentSection{margin:28px 0 34px;} .sectionIntro{margin-bottom:18px;} .sectionIntro h2{font-size:clamp(1.6rem,2.3vw,2.3rem);margin:8px 0 10px;color:#101928;} .sectionIntro p{color:#576978;max-width:66ch;line-height:1.8;}
.newsroomLead{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:20px;margin-bottom:18px;} .newsroomLead__main,.newsroomLead__side{background:#fff;border:1px solid rgba(10,90,67,.1);border-radius:26px;overflow:hidden;box-shadow:0 24px 54px rgba(11,35,29,.07);} .newsroomLead__media{min-height:330px;} .newsroomLead__media img{width:100%;height:100%;display:block;object-fit:cover;} .newsroomLead__body{padding:26px 28px;} .newsroomLead__body h3{font-size:clamp(1.5rem,2.2vw,2.3rem);line-height:1.08;margin:8px 0 12px;color:#102033;} .newsroomLead__meta,.storyMeta{display:flex;flex-wrap:wrap;gap:8px;color:#60717f;font-size:.9rem;}
.storyGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;} .storyCard{display:flex;flex-direction:column;border-radius:22px;overflow:hidden;background:#fff;border:1px solid rgba(10,90,67,.1);box-shadow:0 18px 42px rgba(11,35,29,.06);} .storyCard__thumb{aspect-ratio:16/10;overflow:hidden;background:#eef4f1;} .storyCard__thumb img{width:100%;height:100%;display:block;object-fit:cover;} .storyCard__body{padding:18px 20px 22px;} .storyCard__body h3{font-size:1.15rem;line-height:1.25;margin:8px 0 10px;color:#102033;} .storyCard__body p{color:#576978;line-height:1.75;} .storyCard__body a{text-decoration:none;} .storyCard.is-hidden,.insightCard.is-hidden{display:none !important;}
.insightGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;} .insightGrid--4{grid-template-columns:repeat(4,minmax(0,1fr));} .insightCard{padding:22px 22px 24px;} .insightCard h3{font-size:1.05rem;line-height:1.25;margin:0 0 10px;color:#102033;} .insightCard p{color:#586979;line-height:1.75;margin:0;} .insightCard--link{text-decoration:none;display:block;transition:transform .2s ease, box-shadow .2s ease;} .insightCard--link:hover{transform:translateY(-4px);box-shadow:0 26px 54px rgba(11,35,29,.12);}
.projectShowcase{display:grid;grid-template-columns:1.2fr .9fr .9fr;gap:18px;} .projectCard{display:block;overflow:hidden;text-decoration:none;background:#fff;border:1px solid rgba(10,90,67,.1);border-radius:28px;box-shadow:0 24px 52px rgba(11,35,29,.07);} .projectCard__image{aspect-ratio:16/11;overflow:hidden;background:#eaf2ef;} .projectCard__image img{width:100%;height:100%;display:block;object-fit:cover;} .projectCard__body{padding:22px 22px 24px;} .projectCard__body h3{font-size:1.28rem;margin:10px 0 10px;color:#102033;} .projectCard__body p{color:#556675;line-height:1.8;} .linkRow{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-weight:800;color:#0a7a60;}
.projectDetailHero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:22px;margin-bottom:24px;} .statStrip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;} .statStrip__card{padding:18px;border-radius:20px;background:rgba(10,122,96,.06);border:1px solid rgba(10,90,67,.1);} .statStrip__card strong{display:block;font-size:1.2rem;color:#102033;} .statStrip__card span{display:block;color:#60717f;margin-top:6px;line-height:1.5;}
.timelineMini{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;} .timelineMini__item{padding:18px 18px 20px;border-radius:20px;background:#fff;border:1px solid rgba(10,90,67,.1);box-shadow:0 14px 34px rgba(11,35,29,.05);} .timelineMini__item strong{display:block;color:#102033;margin-bottom:8px;} .timelineMini__item span{color:#5f7080;line-height:1.7;}
.scoreGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:22px 0;} .scoreCard{padding:22px 22px 24px;} .scoreCard span{display:inline-block;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#0a7a60;margin-bottom:10px;} .scoreCard strong{display:block;font-size:1.16rem;line-height:1.25;color:#102033;margin-bottom:10px;} .scoreCard p{color:#586979;line-height:1.75;margin:0;}
.portalGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;} .portalGrid--wide{grid-template-columns:repeat(2,minmax(0,1fr));} .portalCard{display:block;padding:24px;text-decoration:none;color:inherit;} .portalCard h3{margin:0 0 10px;color:#102033;} .portalCard p{margin:0;color:#576978;line-height:1.8;}
.storyStack{padding:28px;border-radius:24px;background:#fff;border:1px solid rgba(10,90,67,.1);}
.langGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:22px 0;} .langCard{padding:24px;} .langCard h3{margin:0 0 10px;color:#102033;} .langCard p{margin:0;color:#5b6d7a;line-height:1.75;} .langCard.is-active{border-color:#0a7a60;box-shadow:0 22px 48px rgba(10,122,96,.12);}
.featureJumpGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;} .featureJumpCard{display:block;padding:16px 18px;border-radius:18px;background:#fff;border:1px solid rgba(10,90,67,.12);text-decoration:none;color:inherit;} .featureJumpCard span{display:block;font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#0a7a60;margin-bottom:6px;} .featureJumpCard strong{display:block;color:#102033;line-height:1.35;}
.html-lang-fr .section__title,.html-lang-fr .pageHero__title{letter-spacing:-.02em;}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important;}}
@media (max-width: 1180px){.storyGrid,.portalGrid,.scoreGrid,.insightGrid--4,.timelineMini,.langGrid{grid-template-columns:repeat(2,minmax(0,1fr));}.projectShowcase,.projectDetailHero,.featureBand,.newsroomLead{grid-template-columns:1fr;}}
@media (max-width: 760px){.insightGrid,.storyGrid,.portalGrid,.portalGrid--wide,.scoreGrid,.projectShowcase,.statStrip,.timelineMini,.langGrid,.featureJumpGrid{grid-template-columns:1fr;} .featureBand__main,.featureBand__side,.storyCard__body,.insightCard,.scoreCard,.langCard{padding:20px;} .smartBar__search input{min-width:0;width:100%;} .newsroomLead__media{min-height:240px;}}
/* Board of Directors card image fix, show head properly */
.boardGrid .profileCard__media,
.boardGrid .directorCard__media,
.directorsGrid .profileCard__media,
.directorsGrid .directorCard__media,
.boardGrid .profileCard__image,
.boardGrid .directorCard__image,
.directorsGrid .profileCard__image,
.directorsGrid .directorCard__image {
  height: 320px;
  overflow: hidden;
  background: #eef4f1;
}

.boardGrid .profileCard__media img,
.boardGrid .directorCard__media img,
.directorsGrid .profileCard__media img,
.directorsGrid .directorCard__media img,
.boardGrid .profileCard__image img,
.boardGrid .directorCard__image img,
.directorsGrid .profileCard__image img,
.directorsGrid .directorCard__image img,
.boardGrid .profileCard > img:first-child,
.boardGrid .directorCard > img:first-child,
.directorsGrid .profileCard > img:first-child,
.directorsGrid .directorCard > img:first-child {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center top;
}