
  :root{
    --paper:#F1F3EF;
    --ink:#1A2530;
    --navy:#0F1F2E;
    --navy-deep:#0A1620;
    --lime:#ECFE6A;
    --orange:#ED7445;
    --line:rgba(26,37,48,0.14);
    --line-on-dark:rgba(241,243,239,0.18);
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--paper);
    color:var(--ink);
    font-family:'IBM Plex Sans', sans-serif;
    -webkit-font-smoothing:antialiased;
  }
  .wrap{max-width:1180px;margin:0 auto;padding:0 32px;}
  a{color:inherit;text-decoration:none;}
  img{max-width:100%; display:block;}
  .eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:#5B7A6E;
  }
  h1,h2,h3{font-family:'Fraunces', serif; font-weight:500; letter-spacing:-0.01em;}

  /* NAV */
  nav{
    position:sticky; top:0; z-index:50;
    background:var(--navy);
    border-bottom:1px solid rgba(241,243,239,0.08);
  }
  nav .wrap{display:flex; align-items:center; justify-content:space-between; height:76px;}
  .nav-logo{height:38px; width:auto;}
  .navlinks{display:flex; gap:36px; font-size:14px; font-weight:500; color:var(--paper);}
  .navlinks a{opacity:0.72; transition:opacity .15s;}
  .navlinks a:hover{opacity:1;}
  .nav-cta{
    font-family:'IBM Plex Mono', monospace;
    font-size:12.5px;
    border:1px solid rgba(241,243,239,0.35);
    color:var(--paper);
    padding:9px 18px;
    border-radius:2px;
    letter-spacing:0.02em;
  }
  .nav-cta:hover{background:var(--lime); color:var(--navy-deep); border-color:var(--lime);}

  /* HERO */
  .hero{
    background:var(--navy);
    background-image:
      linear-gradient(180deg, rgba(15,31,46,0.55) 0%, rgba(15,31,46,0.88) 55%, var(--navy) 100%),
      url('images/team-photo.jpg');
    background-size:cover;
    background-position:center 30%;
    color:var(--paper);
    position:relative;
    overflow:hidden;
    padding:40px 0 0;
  }
  .hero .wrap{position:relative; z-index:2;}
  .hero-eyebrow{color:var(--lime);}
  .hero h1{
    font-size:clamp(38px, 5.4vw, 66px);
    line-height:1.04;
    max-width:820px;
    margin:22px 0 26px;
  }
  .hero p{
    font-size:18px;
    line-height:1.55;
    max-width:520px;
    color:rgba(241,243,239,0.72);
    margin-bottom:40px;
  }
  .hero-ctas{display:flex; gap:14px; margin-bottom:64px;}
  .btn-primary{
    background:var(--lime); color:var(--navy-deep);
    padding:14px 26px; border-radius:2px;
    font-weight:600; font-size:14.5px;
    display:inline-block;
  }
  .btn-ghost{
    border:1px solid var(--line-on-dark);
    color:var(--paper);
    padding:14px 26px; border-radius:2px;
    font-weight:500; font-size:14.5px;
    display:inline-block;
  }
  .btn-primary:hover{filter:brightness(1.06);}
  .btn-ghost:hover{border-color:var(--paper);}

  /* Route line — signature element */
  .route{
    position:relative;
    padding:0 0 54px;
    border-top:1px solid var(--line-on-dark);
    padding-top:34px;
  }
  .route-label{
    font-family:'IBM Plex Mono', monospace;
    font-size:11.5px; letter-spacing:0.1em; text-transform:uppercase;
    color:rgba(241,243,239,0.4);
    margin-bottom:26px;
  }
  .route-timeline{position:relative; height:78px; margin-top:16px;}
  .route-timeline-line{position:absolute; left:0; right:0; top:39px; height:1px; background:rgba(241,243,239,0.22);}
  .route-point{position:absolute; top:39px;}
  .route-point .dot{
    position:absolute; top:0; left:0;
    width:10px; height:10px; margin:-5px 0 0 -5px;
    border-radius:50%;
  }
  .route-name{
    position:absolute; left:-2px; width:max-content; max-width:150px;
    font-size:13px; color:rgba(241,243,239,0.85); font-weight:500;
  }
  .route-point.above .route-name{bottom:16px;}
  .route-point.below .route-name{top:16px;}
  .route-point.edge-right .route-name{left:auto; right:-2px; text-align:right;}

  @media (max-width:640px){
    .route-timeline{height:72px;}
    .route-name{max-width:110px; font-size:12px;}
  }

  /* SECTION scaffolding */
  section{padding:96px 0;}
  .section-head{max-width:640px; margin-bottom:56px;}
  .section-head h2{font-size:clamp(28px,3.4vw,40px); margin-top:14px; line-height:1.12;}
  .section-head p{margin-top:16px; font-size:16px; line-height:1.6; color:rgba(26,37,48,0.68);}

  /* EVENTS GRID */
  .events-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    border-top:1px solid var(--line);
    border-left:1px solid var(--line);
  }
  .event-card{
    border-right:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding:28px 24px 30px;
    height:250px;
    display:flex; flex-direction:column; justify-content:space-between;
    transition:background .15s;
  }
  .event-card:hover{background:rgba(15,31,46,0.04);}
  .event-card .wp{
    font-family:'IBM Plex Mono', monospace;
    font-size:11px; color:var(--orange); letter-spacing:0.08em;
  }
  .event-logo{height:38px; width:auto; margin-top:16px; object-fit:contain; object-position:left;}
  .event-wordmark{font-family:'Fraunces', serif; font-weight:500; font-size:19px; margin-top:16px;}
  .event-card .region{font-size:13px; color:rgba(26,37,48,0.55); margin-top:10px;}
  .event-card .go{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px; margin-top:20px; color:var(--ink);
    display:flex; align-items:center; gap:6px;
  }

  /* PURPOSE */
  .purpose{background:#E7E9E1;}
  .purpose-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
  .purpose-card{background:#E7E9E1; padding:38px 30px;}
  .purpose-card .mark{
    width:34px; height:34px; border:1.5px solid var(--orange); border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    font-family:'IBM Plex Mono', monospace; font-size:13px; color:var(--orange);
    margin-bottom:20px;
  }
  .purpose-card h3{font-size:19px; margin-bottom:10px; font-weight:500;}
  .purpose-card p{font-size:14.5px; line-height:1.55; color:rgba(26,37,48,0.68);}

  /* PARTNERS LOGO ROW */
  .partners-strip{border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:44px 0;}
  .partners-row{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:36px;}
  .partners-row img{height:58px; width:auto; object-fit:contain; filter:grayscale(15%);}

  /* PARTNER WITH US */
  .partner-cols{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); margin-top:50px;}
  .partner-col{background:var(--paper); padding:44px 40px;}
  .partner-col .eyebrow{margin-bottom:16px;}
  .partner-col h3{font-size:24px; margin-bottom:14px;}
  .partner-col p{font-size:15px; line-height:1.6; color:rgba(26,37,48,0.68); margin-bottom:26px;}
  .link-cta{
    font-family:'IBM Plex Mono', monospace;
    font-size:13px; font-weight:500;
    border-bottom:1.5px solid var(--ink);
    padding-bottom:3px;
    display:inline-block;
  }

  /* VIDEO */
  .video-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:50px;}
  .video-thumb{
    aspect-ratio:16/9;
    background:var(--navy-deep);
    border-radius:3px;
    position:relative;
    overflow:hidden;
    display:flex; align-items:center; justify-content:center;
    background-image:linear-gradient(135deg, rgba(236,254,106,0.15), rgba(10,22,32,0.95));
  }
  .play{
    width:56px; height:56px; border-radius:50%;
    border:1.5px solid rgba(241,243,239,0.6);
    display:flex; align-items:center; justify-content:center;
    color:var(--paper); font-size:14px;
  }
  .video-thumb .cap{
    position:absolute; bottom:16px; left:18px;
    font-family:'IBM Plex Mono', monospace; font-size:11.5px;
    color:rgba(241,243,239,0.7); letter-spacing:0.05em;
  }

  /* FINAL CTA */
  .final-cta{background:var(--navy-deep); color:var(--paper); text-align:left; padding:110px 0;}
  .final-cta .wrap{display:flex; align-items:flex-end; justify-content:space-between; flex-wrap:wrap; gap:36px;}
  .final-cta h2{font-size:clamp(32px,4.2vw,52px); max-width:640px; line-height:1.08; color:var(--paper);}
  .final-cta .eyebrow{color:var(--lime); margin-bottom:16px;}

  /* FOOTER */
  footer{padding:48px 0; border-top:1px solid var(--line);}
  .foot-links{display:flex; gap:26px; font-size:13.5px; color:rgba(26,37,48,0.65);}
  .foot-copy{font-family:'IBM Plex Mono', monospace; font-size:11.5px; color:rgba(26,37,48,0.45);}

  @media (max-width:860px){
    .events-grid{grid-template-columns:repeat(2,1fr);}
    .purpose-grid{grid-template-columns:1fr;}
    .partner-cols, .video-grid{grid-template-columns:1fr;}
    .navlinks{display:none;}
  }

  /* HAMBURGER / MOBILE MENU */
  .hamburger{
    display:none; flex-direction:column; justify-content:center; gap:5px;
    background:none; border:none; cursor:pointer; padding:6px; width:34px; height:34px;
  }
  .hamburger span{width:22px; height:2px; background:var(--paper); display:block; transition:transform .15s, opacity .15s;}
  .mobile-menu{display:none; flex-direction:column; background:var(--navy); border-top:1px solid rgba(241,243,239,0.1);}
  .mobile-menu.open{display:flex;}
  .mobile-menu a{
    padding:17px 32px; color:var(--paper); font-size:15px; font-weight:500;
    border-bottom:1px solid rgba(241,243,239,0.08); opacity:0.85;
  }
  .mobile-menu a:hover{opacity:1;}
  @media (max-width:860px){
    .navlinks{display:none;}
    .nav-cta{display:none;}
    .hamburger{display:flex;}
  }
  @media (min-width:861px){
    .mobile-menu{display:none !important;}
  }


  /* WRAP / OVERFLOW FIXES */
  html, body{overflow-x:hidden;}
  .hero-ctas{flex-wrap:wrap;}
  .foot-links{flex-wrap:wrap; row-gap:8px;}

  /* FOOTER — brand block */
  footer{padding:0;}
  .footer-top{padding:56px 0 32px; border-bottom:1px solid var(--line);}
  .footer-logo{height:26px; width:auto; margin-bottom:16px; display:block;}
  .footer-mission{font-size:14.5px; line-height:1.6; color:rgba(26,37,48,0.62); max-width:460px;}
  .footer-bottom{
    padding:28px 0 40px; display:flex; justify-content:space-between;
    align-items:center; flex-wrap:wrap; gap:16px;
  }


  /* PAGE BANNER (shared across all sub-pages) */
  .page-banner{background:var(--navy); color:var(--paper); padding:64px 0 56px;}
  .page-banner h1{font-size:clamp(32px,4.4vw,52px); line-height:1.08; max-width:720px; margin-top:16px;}
  .page-banner .eyebrow{color:var(--lime);}
  .page-banner p{font-size:16px; line-height:1.6; max-width:600px; color:rgba(241,243,239,0.72); margin-top:16px;}



  .events-list{display:flex; flex-direction:column; margin-top:50px;}
  .event-row{
    display:grid; grid-template-columns:180px 1fr auto;
    align-items:center; gap:36px;
    padding:36px 0; border-top:1px solid var(--line);
  }
  .events-list .event-row:last-child{border-bottom:1px solid var(--line);}
  .event-row .event-logo{height:44px; width:auto; object-fit:contain; object-position:left;}
  .event-row .event-name{font-family:'Fraunces', serif; font-weight:500; font-size:19px; margin-top:14px;}
  .event-row .region{font-family:'IBM Plex Mono', monospace; font-size:11.5px; color:var(--moss,#5B7A6E); letter-spacing:0.06em; text-transform:uppercase; margin-bottom:8px; display:block;}
  .event-row .desc{font-size:14.5px; line-height:1.6; color:rgba(26,37,48,0.7); max-width:480px;}
  .event-row .go{
    font-family:'IBM Plex Mono', monospace; font-size:12.5px; font-weight:500;
    border-bottom:1.5px solid var(--ink); padding-bottom:3px; white-space:nowrap;
  }
  @media (max-width:760px){
    .event-row{grid-template-columns:1fr; gap:14px;}
  }



  .services-grid{
    display:grid; grid-template-columns:repeat(3,1fr);
    border-top:1px solid var(--line); border-left:1px solid var(--line);
    margin-top:50px;
  }
  .service-card{
    border-right:1px solid var(--line); border-bottom:1px solid var(--line);
    padding:32px 28px; min-height:200px;
  }
  .service-card .service-num{
    font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--orange); letter-spacing:0.08em;
  }
  .service-card h3{font-size:18px; margin:14px 0 10px; font-weight:500;}
  .service-card p{font-size:14px; line-height:1.55; color:rgba(26,37,48,0.68);}

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



  .steps-row{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:50px;}
  .step-card{background:var(--paper); padding:34px 30px;}
  .step-card .step-num{
    font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--orange); letter-spacing:0.08em;
  }
  .step-card h3{font-size:18px; margin:14px 0 8px; font-weight:500;}
  .step-card p{font-size:14px; line-height:1.55; color:rgba(26,37,48,0.68);}

  .volunteer-cta{
    background:var(--navy-deep); color:var(--paper);
    padding:56px 48px; border-radius:3px;
    display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:28px;
    margin-top:60px;
  }
  .volunteer-cta h3{font-size:24px; max-width:440px; line-height:1.2; font-family:'Fraunces', serif; font-weight:500;}
  .volunteer-cta p{font-size:14.5px; color:rgba(241,243,239,0.65); margin-top:8px; max-width:440px;}

  @media (max-width:860px){
    .steps-row{grid-template-columns:1fr;}
  }



  .intro-lead{padding:80px 0 0;}
  .intro-lead p{font-size:19px; line-height:1.6; max-width:760px; color:rgba(26,37,48,0.75);}

  .team-split{display:grid; grid-template-columns:1.1fr 1fr; gap:56px; align-items:center;}
  .team-split img{border-radius:3px; width:100%; display:block;}
  .team-split .copy p{font-size:15.5px; line-height:1.65; color:rgba(26,37,48,0.72); margin-bottom:16px;}

  .bio-cols{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); margin-top:50px;}
  .bio-col{background:var(--paper); padding:36px 34px;}
  .bio-col h3{font-size:20px; margin-bottom:8px;}
  .bio-col .role{font-family:'IBM Plex Mono', monospace; font-size:11.5px; color:var(--moss,#5B7A6E); letter-spacing:0.06em; text-transform:uppercase; margin-bottom:14px; display:block;}
  .bio-col p{font-size:14.5px; line-height:1.6; color:rgba(26,37,48,0.68);}

  .impact-strip{background:var(--navy-deep); color:var(--paper); padding:80px 0;}
  .impact-strip .eyebrow{color:var(--lime);}
  .impact-strip h2{color:var(--paper); font-size:clamp(26px,3vw,36px); margin-top:14px; max-width:640px; line-height:1.15;}
  .impact-strip p{color:rgba(241,243,239,0.72); font-size:16px; line-height:1.65; max-width:640px; margin-top:18px;}

  .partner-strip-text{padding:80px 0;}
  .partner-strip-text .section-head p{max-width:720px;}
  .partner-strip-text .body-copy{font-size:16px; line-height:1.7; color:rgba(26,37,48,0.72); max-width:760px; margin-top:8px;}

  @media (max-width:860px){
    .team-split{grid-template-columns:1fr;}
    .bio-cols{grid-template-columns:1fr;}
  }



  .contact-wrap{padding:88px 0 110px;}
  .contact-grid{display:grid; grid-template-columns:1fr; gap:1px; background:var(--line); border:1px solid var(--line); max-width:720px; margin:0 auto 20px;}
  .contact-form-col{background:var(--paper); padding:48px 44px;}

  .field{margin-bottom:22px;}
  .field label{
    display:block; font-family:'IBM Plex Mono', monospace; font-size:11.5px;
    letter-spacing:0.06em; text-transform:uppercase; color:rgba(26,37,48,0.6);
    margin-bottom:8px;
  }
  .field input, .field select, .field textarea{
    width:100%; border:1px solid var(--line); background:#fff;
    padding:13px 14px; font-family:'IBM Plex Sans', sans-serif; font-size:14.5px;
    color:var(--ink); border-radius:2px;
  }
  .field textarea{resize:vertical; min-height:130px;}
  .field input:focus, .field select:focus, .field textarea:focus{
    outline:none; border-color:var(--ink);
  }
  .field-row{display:grid; grid-template-columns:1fr 1fr; gap:18px;}

  .enquiry-type{display:flex; gap:10px; flex-wrap:wrap;}
  .enquiry-type label{
    display:inline-flex; align-items:center; gap:7px;
    font-family:'IBM Plex Sans', sans-serif; font-size:13.5px; font-weight:500;
    text-transform:none; letter-spacing:0; color:var(--ink);
    border:1px solid var(--line); border-radius:2px; padding:9px 14px;
    cursor:pointer;
  }
  .enquiry-type input{width:auto; padding:0;}

  .submit-btn{
    background:var(--ink); color:var(--paper);
    border:none; padding:14px 28px; border-radius:2px;
    font-family:'IBM Plex Sans', sans-serif; font-weight:600; font-size:14.5px;
    cursor:pointer;
  }
  .submit-btn:hover{background:var(--navy);}




  @media (max-width:860px){
    .field-row{grid-template-columns:1fr;}
  }


  /* PRIVACY POLICY PAGE ADDITIONS */
  .page-banner.compact{padding:56px 0 48px;}
  .page-banner.compact h1{font-size:clamp(28px,3.6vw,42px); line-height:1.1; max-width:640px; margin-top:14px;}
  .page-banner .meta{
    font-family:'IBM Plex Mono', monospace; font-size:12px;
    color:rgba(241,243,239,0.5); margin-top:16px;
  }

  .legal-wrap{padding:80px 0 120px;}
  .legal-wrap .inner{max-width:740px;}
  .legal-wrap h2{
    font-size:22px; font-weight:500; margin:52px 0 14px;
    padding-top:28px; border-top:1px solid var(--line);
  }
  .legal-wrap h2:first-child{margin-top:0; padding-top:0; border-top:none;}
  .legal-wrap h3{
    font-family:'IBM Plex Sans', sans-serif; font-size:15.5px; font-weight:600;
    margin:26px 0 10px; color:var(--ink);
  }
  .legal-wrap p{font-size:15px; line-height:1.75; color:rgba(26,37,48,0.72); margin-bottom:14px;}
  .legal-wrap ul{padding-left:22px; margin-bottom:16px;}
  .legal-wrap li{font-size:15px; line-height:1.75; color:rgba(26,37,48,0.72); margin-bottom:6px;}
  .legal-wrap .num{
    font-family:'IBM Plex Mono', monospace; color:var(--orange);
    margin-right:8px; font-size:15px;
  }
  .legal-toc{
    font-family:'IBM Plex Mono', monospace; font-size:13px;
    border:1px solid var(--line); border-radius:2px; padding:22px 24px;
    margin-bottom:8px;
  }
  .legal-toc a{display:block; padding:5px 0; color:rgba(26,37,48,0.7);}
  .legal-toc a:hover{color:var(--ink);}
