/* Tempeo Foundation — brand colours taken from the Foundation logo */
:root{
  --teal:#0E7C7B;
  --teal-deep:#14403E;
  --teal-ink:#0B2B2A;
  --red:#E10A2E;
  --red-deep:#B00722;
  --yellow:#F5C518;
  --yellow-deep:#D9A800;
  --cream:#FBF8F1;
  --sand:#E7DFD1;
  --ink:#14312F;
  --muted:#4A6A68;
  --muted-light:#7A8F8D;
  --white:#fff;
  --display:"League Spartan","Trebuchet MS",sans-serif;
  --body:"Karla","Trebuchet MS",sans-serif;
  --logo:"Nunito","Trebuchet MS",sans-serif;
  --wrap:1200px;
  --r:14px;
  --shadow:0 2px 6px rgba(20,49,47,.06),0 12px 32px rgba(20,49,47,.08);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
h1,h2,h3,h4{font-family:var(--display);margin:0;line-height:1.06;letter-spacing:-.01em;font-weight:700}
p{margin:0}
a{color:var(--red);text-decoration:none}
a:hover{color:var(--red-deep);text-decoration:underline}
:focus-visible{outline:3px solid var(--yellow);outline-offset:3px;border-radius:4px}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 24px}
.skip{position:absolute;left:-9999px;top:0;background:var(--yellow);color:var(--ink);padding:12px 18px;font-family:var(--display);font-weight:700;z-index:200}
.skip:focus{left:8px;top:8px}
.eyebrow{font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--red)}
.eyebrow--light{color:var(--yellow)}
.lede{font-size:19px;line-height:1.65;color:var(--muted)}

/* ---------- logo lockup ---------- */
.logo{display:inline-flex;align-items:center;text-decoration:none}
.logo:hover{text-decoration:none}
.logo img{height:52px;width:auto;display:block}
.logo--tile{background:#fff;border-radius:12px;padding:12px 16px}
.logo--tile img{height:42px}
.logo__mark{flex:0 0 auto}
.logo__type{display:flex;flex-direction:column;align-items:flex-end;line-height:1}
.logo__word{font-family:var(--logo);font-weight:900;font-size:30px;letter-spacing:-.03em;color:var(--teal);line-height:.92}
.logo__word i{font-style:normal;color:var(--red)}
.logo__sub{font-family:var(--logo);font-weight:900;font-size:12px;color:var(--yellow-deep);letter-spacing:-.01em}
.logo--light .logo__word{color:#fff}
.logo--light .logo__sub{color:var(--yellow)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 28px;border-radius:999px;font-family:var(--display);font-weight:700;font-size:16px;border:2px solid transparent;cursor:pointer;transition:transform .15s ease,background-color .15s ease,color .15s ease}
.btn:hover{text-decoration:none;transform:translateY(-1px)}
.btn--primary{background:var(--red);color:#fff}
.btn--primary:hover{background:var(--red-deep);color:#fff}
.btn--gold{background:var(--yellow);color:var(--ink)}
.btn--gold:hover{background:var(--yellow-deep);color:var(--ink)}
.btn--teal{background:var(--teal);color:#fff}
.btn--teal:hover{background:var(--teal-deep);color:#fff}
.btn--ghost{border-color:rgba(255,255,255,.6);color:#fff}
.btn--ghost:hover{background:rgba(255,255,255,.12);color:#fff}
.btn--outline{border-color:var(--teal);color:var(--teal)}
.btn--outline:hover{background:var(--teal);color:#fff}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:100;background:#fff;border-bottom:1px solid var(--sand)}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:76px}
.nav{display:flex;align-items:center;gap:28px}
.nav a{font-family:var(--display);font-weight:600;font-size:15.5px;color:var(--ink)}
.nav a:hover{color:var(--teal);text-decoration:none}
.nav-toggle{display:none;width:48px;height:48px;border:0;background:transparent;cursor:pointer;align-items:center;justify-content:center;flex-direction:column;gap:5px;border-radius:10px}
.nav-toggle span{display:block;width:24px;height:2.5px;border-radius:2px;background:var(--ink);transition:transform .2s ease,opacity .2s ease}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

/* ---------- hero ---------- */
.hero{background:var(--teal);color:#fff;position:relative;overflow:hidden}
.hero__inner{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;padding:78px 0 84px}
.hero__copy{display:flex;flex-direction:column;gap:22px}
.hero h1{font-size:clamp(38px,5vw,64px);color:#fff;text-wrap:balance}
.hero h1 em{font-style:normal;color:var(--yellow)}
.hero__lede{font-size:19px;line-height:1.6;color:#D9EAE8;max-width:34em}
.hero__cta{display:flex;flex-wrap:wrap;gap:12px;padding-top:4px}
.hero__note{display:flex;align-items:center;gap:10px;font-size:15px;color:#A9CFCD}
.hero__media{align-self:center}
.hero__figure{position:relative}
.hero__video{position:relative;aspect-ratio:16/9;border-radius:18px;overflow:hidden;background:#0B6968}
.facade{position:absolute;inset:0;display:block;width:100%;height:100%;padding:0;border:0;background:#0B6968;cursor:pointer}
.facade__thumb{width:100%;height:100%;object-fit:cover;display:block}
.facade__play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);transition:transform .18s ease,filter .18s ease;filter:drop-shadow(0 6px 18px rgba(0,0,0,.35))}
.facade:hover .facade__play,.facade:focus-visible .facade__play{transform:translate(-50%,-50%) scale(1.08)}
.facade__label{position:absolute;left:0;right:0;bottom:0;padding:44px 22px 20px;font-family:var(--display);font-weight:700;font-size:16px;color:#fff;text-align:left;background:linear-gradient(transparent,rgba(6,32,31,.72))}
.hero__video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.rule{width:36px;height:4px;border-radius:2px;background:var(--yellow)}

/* ---------- impact bar ---------- */
.impact{background:#fff;border-bottom:1px solid var(--sand)}
.impact__grid{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;padding:40px 0}
.stat__num{font-family:var(--display);font-weight:800;font-size:clamp(32px,3.4vw,44px);line-height:1;color:var(--teal)}
.stat:nth-child(2) .stat__num{color:var(--red)}
.stat:nth-child(3) .stat__num{color:var(--yellow-deep)}
.stat:nth-child(5) .stat__num{color:var(--red)}
.stat__label{display:block;margin-top:8px;font-size:14.5px;color:var(--muted)}

/* ---------- sections ---------- */
.section{padding:84px 0}
.section--cream{background:var(--cream)}
.section--white{background:#fff}
.section--teal{background:var(--teal);color:#fff}
.section--deep{background:var(--teal-deep);color:#fff}
.section--teal h2,.section--deep h2{color:#fff}
.section--teal .lede,.section--deep .lede{color:#BFD8D6}
.section__head{display:flex;flex-direction:column;gap:14px;max-width:760px;margin-bottom:40px}
.section__head h2{font-size:clamp(30px,3.6vw,44px)}
.section__head--center{margin-left:auto;margin-right:auto;text-align:center;align-items:center}

/* ---------- pillars (wave cards) ---------- */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.wave-card{display:flex;flex-direction:column;background:#fff;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow)}
.wave-card__body{display:flex;flex-direction:column;gap:14px;padding:34px 30px 24px;flex:1 1 auto}
.wave-card__body h3{font-size:24px;color:var(--teal)}
.wave-card__body p{font-size:16.5px;color:var(--muted)}
.wave-card__wave{display:block;width:100%;height:54px}

/* ---------- partnership carousel ---------- */
.carousel{position:relative}
.carousel__viewport{overflow:hidden;border-radius:18px;background:var(--teal-deep);box-shadow:var(--shadow)}
.carousel__track{display:flex;transition:transform .55s cubic-bezier(.4,0,.2,1)}
.slide{flex:0 0 100%;min-width:100%}
.slide__inner{display:grid;grid-template-columns:1fr 1fr;gap:0;min-height:400px}
.slide__copy{display:flex;flex-direction:column;justify-content:center;gap:16px;padding:48px}
.slide__tag{display:inline-flex;align-self:flex-start;align-items:center;height:30px;padding:0 13px;border-radius:999px;background:var(--yellow);color:var(--ink);font-family:var(--display);font-weight:700;font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.slide__hero{display:flex;align-items:center;justify-content:center;min-height:400px;padding:40px;background:#fff}
.slide__hero img{width:min(82%,430px);height:auto;max-height:290px;object-fit:contain}
.slide__copy h3{font-size:clamp(26px,3vw,36px);color:#fff}
.slide__copy p{color:#BFD8D6;font-size:17px}
.slide__meta{font-size:14.5px;color:#8FBEBC}
.slide__img{width:100%;height:100%;min-height:400px;object-fit:cover;background:#0B6968}
.carousel__controls{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:22px}
.carousel__btn{width:46px;height:46px;border-radius:999px;border:2px solid var(--sand);background:#fff;color:var(--teal);cursor:pointer;display:flex;align-items:center;justify-content:center}
.carousel__btn:hover{background:var(--teal);color:#fff;border-color:var(--teal)}
.section--teal .carousel__btn,.section--deep .carousel__btn{background:transparent;border-color:rgba(255,255,255,.45);color:#fff}
.section--teal .carousel__btn:hover{background:#fff;color:var(--teal)}
.carousel__dots{display:flex;gap:9px}
.carousel__dot{width:11px;height:11px;padding:0;border-radius:999px;border:0;background:var(--sand);cursor:pointer}
.carousel__dot[aria-current="true"]{background:var(--red);width:30px}
.section--teal .carousel__dot{background:rgba(255,255,255,.4)}
.section--teal .carousel__dot[aria-current="true"]{background:var(--yellow)}

/* ---------- timeline / events ---------- */
.events{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.event{display:flex;flex-direction:column;gap:12px;padding:30px 26px;background:#fff;border:1px solid var(--sand);border-radius:var(--r)}
.section--deep .event{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14)}
.event__kicker{font-family:var(--display);font-weight:700;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--yellow-deep)}
.section--deep .event__kicker{color:var(--yellow)}
.event h3{font-size:21px}
.section--deep .event h3{color:#fff}
.event p{font-size:15.5px;color:var(--muted)}
.section--deep .event p{color:#BFD8D6}

/* ---------- marquee walls ---------- */
.marquee{--gap:18px;display:flex;flex-direction:column;gap:var(--gap);overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.marquee__row{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--gap)}
.marquee__row.is-animated{flex-wrap:nowrap;justify-content:flex-start;width:max-content;animation:marquee 46s linear infinite}
.marquee__row--rev.is-animated{animation-direction:reverse;animation-duration:54s}
.marquee:hover .marquee__row,.marquee:focus-within .marquee__row{animation-play-state:paused}
.img-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:24px;background:#0B6968;color:rgba(255,255,255,.75);font-family:var(--display);font-weight:600;font-size:15px}
.img-placeholder span{max-width:26ch}
.section--cream .img-placeholder,.section--white .img-placeholder{background:#F1EADC;color:#8A7C63}
.carousel .img-placeholder{background:#0E7C7B;color:rgba(255,255,255,.8)}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(calc(-50% - (var(--gap) / 2)))}}
.chip{display:flex;align-items:center;justify-content:center;height:132px;padding:0 34px;font-family:var(--display);font-weight:700;font-size:19px;color:var(--ink);text-align:center;line-height:1.25}
.chip img{max-height:104px;max-width:260px;width:auto;height:auto;object-fit:contain}
.chip--name{font-size:18px;color:var(--muted)}
.section--teal .chip,.section--deep .chip{color:#fff}
.wall-note{margin-top:26px;font-size:15px;color:var(--muted-light);text-align:center}
.section--teal .wall-note,.section--deep .wall-note{color:#9FBEBC}

/* ---------- news ---------- */
.news{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.news__item{display:flex;flex-direction:column;gap:10px;padding:28px;background:#fff;border:1px solid var(--sand);border-radius:var(--r);color:var(--ink);transition:transform .15s ease,box-shadow .15s ease}
.news__item:hover{text-decoration:none;transform:translateY(-2px);box-shadow:var(--shadow)}
.news__src{font-family:var(--display);font-weight:700;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.news__item h3{font-size:19.5px}
.news__more{display:inline-flex;align-items:center;gap:7px;margin-top:auto;padding-top:8px;font-family:var(--display);font-weight:700;font-size:15px;color:var(--teal)}

/* ---------- involvement ---------- */
.doors{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.door{display:flex;flex-direction:column;gap:16px;padding:38px 32px;background:#fff;border-radius:var(--r);border-top:6px solid var(--teal);box-shadow:var(--shadow)}
.door:nth-child(2){border-top-color:var(--red)}
.door:nth-child(3){border-top-color:var(--yellow)}
.door h3{font-size:25px}
.door ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:9px;color:var(--muted);font-size:16.5px}
.door .btn{align-self:flex-start;margin-top:auto}

/* ---------- contact ---------- */
.contact{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.contact h2{font-size:clamp(30px,3.6vw,44px)}
.contact__list{display:flex;flex-direction:column;gap:14px;margin-top:8px}
.contact__row{display:flex;align-items:center;gap:12px;font-size:17px;color:#D9EAE8}
.contact__row a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.contact__row a:hover{color:var(--yellow)}
.contact__card{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:18px;padding:38px}
.contact__card h3{font-size:24px;color:#fff;margin-bottom:8px}
.contact__card p{color:#BFD8D6;font-size:16.5px}
.contact__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}

/* ---------- footer ---------- */
.site-footer{background:var(--teal-ink);color:#9FBEBC;padding:60px 0 36px}
.footer__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:40px}
.footer__col h4{font-family:var(--display);font-weight:700;font-size:14px;color:#fff;margin-bottom:14px;letter-spacing:.04em}
.footer__col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.footer__col a{color:#9FBEBC;font-size:15.5px}
.footer__col a:hover{color:var(--yellow);text-decoration:none}
.footer__about{font-size:15px;line-height:1.65;max-width:34ch;margin-top:14px}
.footer__bottom{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-top:44px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12);font-size:13.5px;color:#6E908E}
.social{display:flex;gap:10px;margin-top:16px}
.social a{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:999px;background:rgba(255,255,255,.08);color:#fff}
.social a:hover{background:var(--yellow);color:var(--ink);text-decoration:none}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.reveal.is-in{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .hero__inner{grid-template-columns:1fr;gap:34px;padding:52px 0 56px}

  .impact__grid{grid-template-columns:repeat(2,1fr);gap:28px}
  .pillars,.news,.doors{grid-template-columns:1fr}
  .events{grid-template-columns:repeat(2,1fr)}
  .slide__inner{grid-template-columns:1fr}
  .slide__img{min-height:240px;height:240px;order:-1}
  .logo img{height:44px}
  .chip{width:168px;height:92px;padding:14px 18px}

  .slide__copy{padding:34px 28px}
  .contact{grid-template-columns:1fr;gap:34px}
  .footer__grid{grid-template-columns:1fr 1fr}
  .nav-toggle{display:flex}
  .nav{position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;background:#fff;border-bottom:1px solid var(--sand);padding:8px 24px 20px;display:none;box-shadow:var(--shadow)}
  .nav.is-open{display:flex}
  .nav a{padding:14px 0;border-bottom:1px solid var(--sand)}
  .nav .btn{margin-top:14px;border-bottom:0}
}
@media (max-width:640px){
  .section{padding:60px 0}
  .impact__grid{grid-template-columns:repeat(2,1fr);padding:32px 0}
  .events{grid-template-columns:1fr}
  .footer__grid{grid-template-columns:1fr}
  .btn{width:100%}
  .hero__cta .btn{width:100%}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .marquee{overflow-x:auto}
  .marquee__row{width:auto;flex-wrap:wrap;justify-content:center}
  .reveal{opacity:1;transform:none}
}

/* ---------- sub-page hero ---------- */
.page-hero{background:var(--teal);color:#fff;padding:64px 0 60px}
.page-hero h1{font-size:clamp(34px,4.4vw,54px);color:#fff;margin:14px 0 16px}
.page-hero__lede{font-size:19px;line-height:1.6;color:#D9EAE8;max-width:60ch}
.news-year{margin-bottom:52px}
.news-year:last-of-type{margin-bottom:0}
.news-year__label{font-size:22px;color:var(--teal);padding-bottom:12px;margin-bottom:26px;border-bottom:2px solid var(--sand)}

/* ---------- programme partners ---------- */
.pp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.pp{display:flex;flex-direction:column;gap:22px;padding:30px;border-radius:var(--r);background:var(--cream);border:1px solid var(--sand)}
.pp--lead{grid-column:span 3;display:grid;grid-template-columns:240px 1fr;gap:38px;align-items:center;padding:34px;background:var(--teal);border-color:var(--teal);color:#fff}
.pp--lead h3{color:#fff}
.pp--lead .pp__body{color:#D9EAE8}
.pp--lead .pp__where{color:var(--yellow)}
.pp--lead .pp__prog{background:rgba(255,255,255,.18);color:#fff}
.pp__logo{display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--sand);border-radius:12px;padding:20px;min-height:124px}
.pp--lead .pp__logo{min-height:196px;padding:24px;border-color:transparent}
.pp__logo img{max-height:84px;max-width:100%;width:auto;height:auto;object-fit:contain}
.pp--lead .pp__logo img{max-height:152px}
.pp__wordmark{font-family:var(--display);font-weight:700;font-size:22px;color:var(--teal);text-align:center}
.pp__copy{display:flex;flex-direction:column;gap:12px;flex:1 1 auto}
.pp__where{font-family:var(--display);font-weight:700;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.pp h3{font-size:26px}
.pp__body{font-size:16.5px;line-height:1.6;color:var(--muted)}
.pp__progs{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:8px}
.pp__prog{display:inline-flex;align-items:center;height:30px;padding:0 13px;border-radius:999px;background:var(--teal);color:#fff;font-family:var(--display);font-weight:600;font-size:13px}
@media (max-width:1000px){
  .pp-grid{grid-template-columns:1fr}
  .pp--lead{grid-column:auto;grid-template-columns:1fr;gap:22px}
  .pp--lead .pp__logo{min-height:140px}
  .pp--lead .pp__logo img{max-height:104px}
  .slide__hero{min-height:220px;padding:28px;order:-1}
  .slide__hero img{width:min(72%,300px);max-height:150px}
  .chip{height:104px;padding:0 24px}
  .chip img{max-height:80px;max-width:200px}
}
}

/* the two logo walls run back to back on white; a hairline keeps them apart */
#partners{border-top:1px solid var(--sand)}
