:root{
  --navy:#0F2E56;
  --navy-dk:#0A2140;
  --cyan:#00A0DD;
  --cyan-dk:#0082B3;
  --paper:#F7F4EC;
  --paper-dk:#EDE7D8;
  --ink:#1B222C;
  --white:#FFFFFF;
  --radius: 3px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Public Sans', sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
}
h1,h2,h3,h4{
  font-family:'Fraunces', serif;
  margin:0;
  color:var(--navy-dk);
}
a{color:inherit;}
img{max-width:100%;display:block;}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px;}
.eyebrow{
  font-size:0.72rem;
  letter-spacing:0.16em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--cyan-dk);
}

/* Header */
header{
  background:var(--paper);
  border-bottom:1px solid rgba(15,46,86,0.12);
  position:sticky;
  top:0;
  z-index:50;
}
.header-inner{
  max-width:1180px;
  margin:0 auto;
  padding:14px 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.header-inner img.logo-img{height:50px;width:auto;}
nav{display:flex;align-items:center;gap:30px;}
nav a{
  text-decoration:none;
  font-weight:600;
  font-size:0.9rem;
  color:var(--navy-dk);
  position:relative;
}
nav a::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:-4px;
  height:2px;
  background:var(--cyan);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .2s ease;
}
nav a:hover::after{transform:scaleX(1);}
.btn{
  display:inline-block;
  padding:13px 28px;
  border-radius:var(--radius);
  font-weight:700;
  font-size:0.88rem;
  text-decoration:none;
  letter-spacing:0.02em;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
  border:2px solid transparent;
  cursor:pointer;
}
.btn:hover{transform:translateY(-1px);}
.btn-cyan{background:var(--cyan);color:var(--white);}
.btn-cyan:hover{box-shadow:0 8px 20px rgba(0,160,221,0.32);}
.btn-outline{background:transparent;border-color:var(--navy-dk);color:var(--navy-dk);}
.btn-outline:hover{background:var(--navy-dk);color:var(--paper);}
.btn-outline-white{background:transparent;border-color:rgba(255,255,255,0.6);color:var(--white);}
.btn-outline-white:hover{background:var(--white);color:var(--navy-dk);border-color:var(--white);}

/* Hero - full photo with an anchored, off-center headline card */
.hero{
  position:relative;
  min-height:400px;
  max-width:1180px;
  margin:32px auto 0;
  background-size:cover;
  background-position:center;
  display:flex;
  align-items:flex-end;
  border-radius:6px;
  overflow:hidden;
}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(100deg, rgba(10,33,64,0.88) 0%, rgba(10,33,64,0.55) 30%, rgba(10,33,64,0) 60%);
}
.hero-card{
  position:relative;
  z-index:2;
  background:transparent;
  color:var(--paper);
  max-width:480px;
  padding:36px 40px 40px 48px;
}
.hero-card .eyebrow{color:var(--cyan);margin-bottom:16px;}
.hero-card h1{
  color:var(--paper);
  font-size:clamp(1.9rem, 3.4vw, 2.7rem);
  font-weight:600;
  line-height:1.12;
}
.hero-card p{
  color:rgba(247,244,236,0.82);
  font-size:1.02rem;
  margin:20px 0 28px;
}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;}
@media (max-width: 860px){
  .hero{min-height:auto;}
  .hero-card{margin:0 16px 40px;padding:32px 28px 30px;max-width:none;}
}


/* Mission */
.mission{padding:88px 0 64px;}
.mission-grid{
  display:grid;
  grid-template-columns:1.15fr 0.85fr;
  gap:64px;
  align-items:start;
}
.mission h2{font-size:2.1rem;font-weight:600;line-height:1.18;margin-bottom:20px;letter-spacing:-0.01em;}
.mission p{font-size:1.03rem;color:#3C4550;}
.mission-quote{
  background:var(--navy);
  color:var(--paper);
  padding:40px 34px 34px;
  border-radius:var(--radius);
  position:relative;
}
.mission-quote .mark{
  font-family:'Fraunces', serif;
  font-size:4.2rem;
  line-height:1;
  color:var(--cyan);
  display:block;
  margin-bottom:-6px;
  font-weight:600;
}
.mission-quote blockquote{
  margin:0;
  font-family:'Fraunces', serif;
  font-style:italic;
  font-size:1.22rem;
  line-height:1.5;
}
.mission-quote cite{
  display:block;
  font-family:'Public Sans', sans-serif;
  font-style:normal;
  font-weight:700;
  font-size:0.78rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--cyan);
  margin-top:20px;
}

/* Recognition - oversized numeral instead of a generic badge circle */
.recognition{
  background:var(--navy-dk);
  color:var(--paper);
  padding:64px 0;
}
.recognition-inner{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:40px;
  align-items:center;
}
.recognition-number{
  font-family:'Fraunces', serif;
  font-weight:700;
  font-size:7rem;
  line-height:0.85;
  color:var(--cyan);
  letter-spacing:-0.02em;
}
.recognition-number span{
  display:block;
  font-family:'Public Sans', sans-serif;
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:rgba(247,244,236,0.65);
  margin-top:6px;
}
.recognition-text h3{color:var(--paper);font-size:1.5rem;font-weight:600;margin-bottom:10px;line-height:1.25;}
.recognition-text p{margin:0;color:rgba(247,244,236,0.78);font-size:1rem;max-width:62ch;}
@media (max-width: 700px){
  .recognition-inner{grid-template-columns:1fr;}
  .recognition-number{font-size:5rem;}
}

/* Future / new facility */
.future{padding:88px 0;}
.future-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.future img{border-radius:var(--radius);box-shadow:0 24px 50px rgba(15,46,86,0.2);}
.future h2{font-size:2rem;font-weight:600;margin-bottom:18px;letter-spacing:-0.01em;}
.future p{color:#3C4550;font-size:1.03rem;margin-bottom:24px;}

/* Board */
.board{background:var(--paper-dk);padding:80px 0;}
.board .eyebrow{color:var(--cyan-dk);}
.board h2{font-size:2rem;font-weight:600;margin:10px 0 8px;letter-spacing:-0.01em;}
.board > .wrap > p{color:#4A5260;max-width:60ch;margin-bottom:36px;font-size:0.98rem;}
.board-list{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  column-gap:40px;
}
.board-item{
  display:flex;
  align-items:baseline;
  gap:12px;
  flex-wrap:wrap;
  padding:14px 0;
  border-bottom:1px solid rgba(15,46,86,0.14);
}
.board-item .name{font-weight:600;font-size:1.02rem;color:var(--navy-dk);font-family:'Fraunces', serif;}
.board-item .role{font-size:0.82rem;font-weight:700;color:var(--cyan-dk);}
.exofficio-heading{margin:42px 0 8px;font-size:1.3rem;font-weight:600;color:var(--navy-dk);}
@media (max-width: 700px){
  .board-list{grid-template-columns:1fr;}
}

/* Coming events */
.events-teaser{padding:44px 0;background:var(--navy-dk);color:var(--paper);}
.events-teaser-inner{display:flex;align-items:center;justify-content:space-between;gap:28px;}
.events-teaser .eyebrow{color:#66D1F4;}
.events-teaser h2{color:var(--white);font-size:2rem;margin:4px 0;}
.events-teaser p{margin:0;color:#D2DFE8;}
.events-intro{padding:62px 0 58px;background:var(--navy-dk);color:var(--paper);}
.events-intro .eyebrow{color:#66D1F4;}
.events-intro h1{color:var(--white);font-size:clamp(2.7rem,6vw,4.6rem);line-height:1.1;margin:12px 0 18px;}
.events-intro p{max-width:650px;margin:0;color:#D2DFE8;font-size:1.06rem;}
.back-link{display:inline-block;margin-bottom:36px;color:#A6DEF2;text-decoration:none;font-size:0.86rem;font-weight:700;}
.back-link:hover{text-decoration:underline;}
.events-section{padding:72px 0 90px;}
.events-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;}
.event-card{display:grid;grid-template-columns:100px minmax(0,1fr);background:var(--white);border:1px solid rgba(15,46,86,0.12);box-shadow:0 12px 32px rgba(15,46,86,0.06);min-width:0;}
.event-date{background:var(--navy);color:var(--white);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:25px 8px;line-height:1;}
.event-date span{font-size:0.82rem;font-weight:800;letter-spacing:0.17em;}
.event-date strong{font-family:'Fraunces',serif;font-size:3rem;font-weight:600;line-height:1.13;margin:5px 0;}
.event-date small{font-size:0.75rem;letter-spacing:0.1em;}
.event-content{padding:26px 28px 28px;min-width:0;}
.event-content h2{font-size:1.5rem;line-height:1.2;margin:8px 0 12px;}
.event-content p{font-size:0.94rem;color:#45505E;margin:0 0 20px;}
.event-facts{list-style:none;margin:0;padding:14px 0 0;border-top:1px solid rgba(15,46,86,0.12);font-size:0.86rem;color:#394757;}
.event-facts li+li{margin-top:7px;}
.event-facts strong{color:var(--navy-dk);margin-right:6px;}
@media (max-width: 860px){.events-grid{grid-template-columns:1fr;}}
@media (max-width: 600px){
  .events-teaser-inner{align-items:flex-start;flex-direction:column;}
  .events-section{padding:42px 0 64px;}
  .event-card{grid-template-columns:78px minmax(0,1fr);}
  .event-date{padding:23px 5px;}
  .event-date strong{font-size:2.4rem;}
  .event-content{padding:22px 18px;}
  .event-content h2{font-size:1.28rem;}
}

/* Get involved */
.involved{padding:88px 0;}
.involved > .wrap > h2{font-size:2.1rem;font-weight:600;margin-bottom:10px;letter-spacing:-0.01em;}
.involved > .wrap > p{color:#3C4550;max-width:60ch;margin-bottom:44px;}
.involved-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.involved-card{
  background:var(--white);
  border:1px solid rgba(15,46,86,0.12);
  border-radius:var(--radius);
  padding:36px;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.involved-card.primary{background:var(--navy);color:var(--paper);border-color:var(--navy);}
.involved-card h3{font-size:1.35rem;font-weight:600;}
.involved-card.primary h3{color:var(--paper);}
.involved-card p{margin:0;font-size:0.96rem;color:#5a616b;flex:1;}
.involved-card.primary p{color:rgba(247,244,236,0.85);}

/* Contact */
.contact{background:var(--paper-dk);padding:80px 0;}
.contact-grid{display:grid;grid-template-columns:0.85fr 1.15fr;gap:56px;}
.contact h2{font-size:2rem;font-weight:600;margin-bottom:16px;letter-spacing:-0.01em;}
.contact p{color:#3C4550;margin-bottom:22px;}
.social-link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-weight:700;
  text-decoration:none;
  color:var(--navy-dk);
  font-size:0.95rem;
}
.form-msg{
  padding:12px 16px;
  border-radius:var(--radius);
  font-size:0.9rem;
  font-weight:600;
  margin-bottom:14px;
}
.form-msg.success{background:#DCF3E4;color:#186A3B;border:1px solid #A9E3BE;}
.form-msg.error{background:#FBE1DE;color:#8A2A20;border:1px solid #F3B7B0;}
form{display:flex;flex-direction:column;gap:14px;}
form input, form textarea{
  font-family:'Public Sans', sans-serif;
  padding:14px 16px;
  border:1px solid rgba(15,46,86,0.22);
  border-radius:var(--radius);
  font-size:0.95rem;
  background:var(--white);
}
form input:focus, form textarea:focus{
  outline:2px solid var(--cyan);
  outline-offset:1px;
}
form textarea{resize:vertical;min-height:110px;}
form button{align-self:flex-start;}

/* Footer */
footer{background:var(--navy-dk);color:rgba(247,244,236,0.65);padding:34px 0;font-size:0.85rem;}
.footer-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;}
footer a{color:var(--cyan);text-decoration:none;font-weight:600;}

@media (max-width: 860px){
  .mission-grid, .future-grid, .contact-grid, .involved-grid{grid-template-columns:1fr;}
  .future .img-wrap{order:-1;}
  nav{display:none;}
}
