:root{
  --bg:#ffffff;
  --text:#0e1114;
  --muted:#6c757d;
  --accent:#1f6f5c;
  --border:#e5e7eb;
  --radius:14px;
  --max:1200px;
  --headerH:80px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}

/* Offset anchor jumps for sticky header */
html{ scroll-padding-top: calc(var(--headerH) + 12px); }

body{
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  color:var(--text);
  background:var(--bg);
}

a{text-decoration:none;color:inherit}

.wrap{
  max-width:var(--max);
  margin:0 auto;
  padding:0 24px;
}

/* Header */
header{
  border-bottom:1px solid var(--border);
  background:#fff;
  position:sticky;
  top:0;
  z-index:20;
}

.nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  height:var(--headerH);
}

.brand img{height:52px}

/* Desktop nav */
.mainNav{
  flex:1;
  display:flex;
  justify-content:center;
}

.mainNav ul{
  list-style:none;
  display:flex;
  gap:14px;
  margin:0;
  padding:0;
  flex-wrap:wrap;
  justify-content:center;
}

.mainNav a{
  font-size:14px;
  color:#333;
  padding:10px 12px;
  border-radius:12px;
}

.mainNav a:hover{
  color:var(--accent);
  background:rgba(31,111,92,.08);
}

/* Mobile menu button */
.menuBtn{
  display:none;
  border:1px solid var(--border);
  background:#fff;
  border-radius:12px;
  padding:10px 12px;
  font-weight:700;
  cursor:pointer;
}

.menuBtn:hover{ background:rgba(0,0,0,.04); }

/* Mobile nav */
.mobileNav{
  display:none;
  border-top:1px solid var(--border);
  background:#fff;
}

.mobileNav.open{ display:block; }

.mobileNav ul{
  list-style:none;
  margin:0;
  padding:10px 24px 18px;
  display:grid;
  gap:6px;
}

.mobileNav a{
  display:block;
  padding:12px 12px;
  border-radius:12px;
  color:#333;
  font-weight:600;
}

.mobileNav a:hover{
  color:var(--accent);
  background:rgba(31,111,92,.08);
}

/* HERO (Optimal: swap images by breakpoint) */
.hero{
  /* Put the gradient on top of the photo */
  background-image:
    linear-gradient(to top, rgba(0,0,0,.78), rgba(0,0,0,.18)),
    url("hero-desktop.jpg");
  background-position: center;
  background-size: cover;      /* desktop cinematic look */
  background-repeat: no-repeat;

  min-height:70vh;
  display:flex;
  align-items:flex-end;
  padding: clamp(24px, 4vw, 60px) 0;
}

.heroContent{
  color:#fff;
  text-align:left;
  padding-bottom: clamp(12px, 3vw, 26px);
}

.hero h1{
  font-size:clamp(34px,4.6vw,64px);
  margin:0 0 10px;
  font-weight:650;
  letter-spacing:.2px;
  line-height:1.05;
}

.tagline{
  font-size:clamp(16px, 2.1vw, 18px);
  margin:0 0 18px;
  opacity:.92;
  line-height:1.35;
  max-width:54ch;
}

/* Buttons */
.btn{
  padding:12px 20px;
  border-radius:12px;
  font-weight:700;
  display:inline-block;
}

.btnPrimary{
  background:#fff;
  color:#000;
}

/* Sections */
.section{padding:70px 0}

h2{margin:0 0 20px}
.sectionNote{margin:-6px 0 18px; color:var(--muted); line-height:1.5}

.eventsGrid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
}

.eventCard{
  padding:24px;
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:#fff;
  text-align:center;
  box-shadow: 0 6px 18px rgba(0,0,0,.04);
}

.eventCard h3{margin:0 0 10px}
.linkList{list-style:none;padding:0;margin:0}

.linkList li{padding:10px 0;border-top:1px solid var(--border)}
.linkList li:first-child{border-top:none}
.linkList a{color:var(--accent); font-weight:600}
.linkList a:hover{text-decoration:underline}

.mutedP{color:var(--muted);font-size:14px;margin-top:16px}

/* Footer */
footer{
  border-top:1px solid var(--border);
  padding:24px 0;
  font-size:14px;
  color:var(--muted);
}

/* Mobile improvements + MOBILE HERO IMAGE */
@media(max-width:900px){
  .mainNav{display:none}
  .menuBtn{display:inline-block}
  .brand img{height:46px}
  .wrap{padding:0 16px}
  .section{padding:52px 0}

  .eventsGrid{grid-template-columns:1fr; gap:12px}
  .eventCard{padding:18px; text-align:left}
  .eventCard h3{font-size:18px}
  .linkList a{display:block; line-height:1.3}

  /* Swap to mobile-optimized hero image */
  .hero{
    background-image:
      linear-gradient(to top, rgba(0,0,0,.80), rgba(0,0,0,.22)),
      url("hero-mobile.jpg");
    background-position: center top; /* usually best for portrait crops */
    background-size: cover;          /* still looks premium, but crop is controlled by the photo */
    min-height:62vh;
    padding-bottom:40px;
  }
}

@media(max-width:420px){
  :root{ --headerH:72px; }
  .nav{height:72px}
  .btn{width:100%; text-align:center}

  .hero{
    min-height:56vh;
    padding-bottom:32px;
  }
}
