:root{--navy:#09243d;--blue:#0e5b92;--cyan:#32a9d8;--gold:#f0b429;--ink:#16202a;--muted:#667788;--bg:#f4f7fa;--white:#fff;--line:#dce4ea}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;color:var(--ink);background:#fff;line-height:1.6}.wrap{width:min(1180px,92%);margin:auto}.ticker{height:38px;background:#041726;color:#fff;display:flex;overflow:hidden;font-size:.88rem}.ticker-label{background:var(--gold);color:#111;font-weight:800;padding:9px 18px;white-space:nowrap}.ticker-window{overflow:hidden;flex:1}.ticker-track{display:flex;gap:4rem;width:max-content;animation:scroll 34s linear infinite;padding:8px 0}.ticker-track span{white-space:nowrap}.ticker a{color:#fff}@keyframes scroll{from{transform:translateX(100vw)}to{transform:translateX(-100%)}}.site-header{background:var(--navy);color:#fff;position:sticky;top:0;z-index:20;box-shadow:0 5px 20px #0002}.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:84px}.brand{display:flex;align-items:center;gap:14px;color:#fff;text-decoration:none}.brand img{width:68px;height:68px;object-fit:contain}.brand strong{font-size:1.2rem;display:block}.brand small{opacity:.75}.nav{display:flex;gap:20px}.nav a{color:#fff;text-decoration:none;font-weight:600;font-size:.94rem}.nav a:hover{color:var(--gold)}.menu-btn{display:none}.hero{background:linear-gradient(115deg,#08233c,#0d4f7a);color:#fff;padding:88px 0}.hero-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:60px;align-items:center}.hero h1,.page-hero h1{font-size:clamp(2.4rem,5vw,4.7rem);line-height:1.03;margin:.35rem 0 1.2rem}.hero p{font-size:1.14rem;color:#d9e7f2;max-width:720px}.eyebrow{font-weight:800;letter-spacing:.12em;font-size:.75rem;color:var(--gold)}.actions{display:flex;gap:12px;margin-top:28px}.btn{display:inline-block;border:1px solid #ffffff50;color:#fff;text-decoration:none;padding:12px 18px;border-radius:8px;font-weight:800}.btn.primary{background:var(--gold);border-color:var(--gold);color:#15202a}.radio-card{background:#ffffff10;border:1px solid #ffffff28;border-radius:18px;padding:30px;backdrop-filter:blur(4px)}.radio-card .signal{font-size:2.5rem;color:#5bde8a}.radio-card .big{font-size:2rem;font-weight:900}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:56px 0}.cards article{border:1px solid var(--line);padding:28px;border-radius:14px;box-shadow:0 8px 30px #0b29400b}.cards h3{color:var(--navy)}.band{background:var(--bg);padding:58px 0}.section-head{display:flex;justify-content:space-between;align-items:end}.section-head h2{font-size:2rem;margin:.2rem 0}.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:20px}.news-grid article,.news-list article{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px}.news-grid a,.news-list a{color:var(--navy);text-decoration:none}.page-hero{background:linear-gradient(115deg,#08233c,#0e5b92);color:#fff;padding:54px 0}.page-hero h1{font-size:clamp(2rem,4vw,3.7rem)}.content{padding:48px 0}.prose{max-width:900px}.prose h2,.prose h3{color:var(--navy)}.prose a{color:var(--blue)}.doc-list{display:grid;gap:10px}.doc{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:var(--ink)}.doc small{display:block;color:var(--muted)}footer{background:#061a2b;color:#d9e4ed;padding:48px 0 0}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:30px}.copyright{text-align:center;border-top:1px solid #ffffff1f;margin-top:30px;padding:18px}.copyright a{color:#fff}@media(max-width:850px){.hero-grid,.cards,.news-grid,.footer-grid{grid-template-columns:1fr}.nav{display:none;position:absolute;top:84px;left:0;right:0;background:var(--navy);padding:20px;flex-direction:column}.nav.open{display:flex}.menu-btn{display:block;background:none;border:0;color:#fff;font-size:1.6rem}.hero{padding:56px 0}.ticker-label{display:none}}

.link-section{margin-bottom:38px}.link-section h2{color:var(--navy)}.link-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.resource-link{display:flex;flex-direction:column;gap:7px;padding:22px;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink);background:#fff;transition:.18s transform,.18s box-shadow}.resource-link:hover{transform:translateY(-3px);box-shadow:0 12px 28px #09243d18}.resource-link strong{color:var(--navy);font-size:1.08rem}.resource-link span{color:var(--muted);flex:1}.resource-link small{color:var(--blue);font-weight:700}.gallery-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.gallery-filter{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 15px;font-weight:800;cursor:pointer;color:var(--navy)}.gallery-filter.active{background:var(--navy);color:#fff;border-color:var(--navy)}.photo-collage{columns:4 240px;column-gap:14px}.photo-tile{display:block;width:100%;margin:0 0 14px;padding:0;border:0;background:#111;border-radius:12px;overflow:hidden;position:relative;cursor:pointer;break-inside:avoid;text-align:left}.photo-tile[hidden]{display:none}.photo-tile img{display:block;width:100%;height:auto;transition:transform .25s ease}.photo-tile:hover img{transform:scale(1.025)}.photo-tile span{position:absolute;left:0;right:0;bottom:0;padding:32px 14px 13px;background:linear-gradient(transparent,#000c);color:#fff}.photo-tile strong{display:block}.photo-tile small{display:block;opacity:.88;margin-top:3px}.lightbox{position:fixed;inset:0;background:#020a10ed;z-index:100;display:none;align-items:center;justify-content:center;padding:24px}.lightbox.open{display:flex}.lightbox figure{margin:0;max-width:min(1100px,86vw);max-height:88vh;text-align:center;color:#fff}.lightbox img{max-width:100%;max-height:76vh;object-fit:contain;border-radius:8px}.lightbox figcaption{margin-top:12px}.lightbox figcaption p{margin:.25rem 0;color:#d8e0e6}.lightbox-close,.lightbox-prev,.lightbox-next{position:absolute;background:#ffffff18;color:#fff;border:1px solid #ffffff35;border-radius:50%;width:48px;height:48px;font-size:2rem;cursor:pointer}.lightbox-close{right:22px;top:20px}.lightbox-prev{left:22px;top:50%}.lightbox-next{right:22px;top:50%}@media(max-width:850px){.link-grid{grid-template-columns:1fr}.photo-collage{columns:2 150px}.lightbox-prev{left:5px}.lightbox-next{right:5px}}
.site-banner{width:100%;height:var(--banner-height,280px);background:#061a2b;overflow:hidden;line-height:0}.site-banner a{display:block;width:100%;height:100%}.site-banner img{display:block;width:100%;height:100%;object-fit:var(--banner-fit,cover);object-position:var(--banner-position,center)}@media(max-width:850px){.site-banner{height:min(var(--banner-height,280px),220px)}}


/* Member profiles */
.member-directory{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:18px;
  margin:24px 0;
}
.member-card{
  display:flex;
  gap:16px;
  align-items:center;
  padding:18px;
  border:1px solid rgba(127,127,127,.25);
  border-radius:12px;
  background:var(--panel,#fff);
  color:inherit;
  text-decoration:none;
  transition:transform .15s ease,box-shadow .15s ease;
}
.member-card:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(0,0,0,.10);
}
.member-card h2{margin:0 0 6px;font-size:1.2rem}
.member-card p{margin:5px 0 0}
.member-avatar{
  width:82px;
  height:82px;
  border-radius:12px;
  object-fit:cover;
  display:block;
  background:#dbe6ee;
}
.member-avatar.large{width:140px;height:140px}
.member-avatar.xl{width:210px;height:210px;border-radius:16px}
.member-avatar.placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:2rem;
  font-weight:800;
}
.call-sign{
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.call-sign.large{font-size:1.35rem;margin-bottom:18px}
.member-profile-view{
  display:grid;
  grid-template-columns:240px 1fr;
  gap:30px;
  align-items:start;
  max-width:900px;
  margin:30px auto;
}
.profile-details{
  display:grid;
  grid-template-columns:max-content 1fr;
  gap:9px 18px;
}
.profile-details dt{font-weight:800}
.profile-details dd{margin:0}
.profile-photo-current{margin:15px 0 20px}
.button.secondary{margin-left:8px}
@media(max-width:700px){
  .member-profile-view{grid-template-columns:1fr}
  .member-profile-photo{display:flex;justify-content:center}
  .profile-details{grid-template-columns:1fr}
  .profile-details dd{margin-bottom:8px}
}


/* Clean public/member navigation */
.nav{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}
.nav > a,
.nav-dropbtn{
  display:inline-flex;
  align-items:center;
  gap:4px;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  font-weight:700;
  text-decoration:none;
  padding:10px 12px;
  border-radius:8px;
  cursor:pointer;
}
.nav > a:hover,
.nav-dropbtn:hover,
.nav-dropdown.open > .nav-dropbtn{
  background:rgba(127,127,127,.12);
}
.nav-dropdown{
  position:relative;
}
.nav-dropdown-menu{
  display:none;
  position:absolute;
  top:calc(100% + 6px);
  left:0;
  min-width:220px;
  padding:7px;
  background:var(--panel,#fff);
  border:1px solid rgba(127,127,127,.25);
  border-radius:10px;
  box-shadow:0 12px 28px rgba(0,0,0,.16);
  z-index:1000;
}
.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown.open .nav-dropdown-menu{
  display:block;
}
.nav-dropdown-menu-right{
  left:auto;
  right:0;
}
.nav-dropdown-menu a{
  display:block;
  padding:10px 12px;
  border-radius:7px;
  color:inherit;
  text-decoration:none;
  white-space:nowrap;
}
.nav-dropdown-menu a:hover{
  background:rgba(127,127,127,.12);
}
.nav-menu-separator{
  height:1px;
  margin:6px 4px;
  background:rgba(127,127,127,.25);
}
.nav-member-login{
  border:1px solid rgba(127,127,127,.35);
}
.member-menu > .nav-dropbtn{
  border:1px solid rgba(127,127,127,.25);
}
@media(max-width:850px){
  .nav{
    align-items:stretch;
  }
  .nav.open{
    display:flex;
    flex-direction:column;
    width:100%;
    padding-top:8px;
  }
  .nav:not(.open){
    display:none;
  }
  .nav > a,
  .nav-dropbtn{
    width:100%;
    justify-content:space-between;
    box-sizing:border-box;
  }
  .nav-dropdown{
    width:100%;
  }
  .nav-dropdown-menu,
  .nav-dropdown-menu-right{
    position:static;
    width:100%;
    min-width:0;
    box-shadow:none;
    margin-top:3px;
    box-sizing:border-box;
  }
  .nav-dropdown:hover .nav-dropdown-menu{
    display:none;
  }
  .nav-dropdown.open .nav-dropdown-menu{
    display:block;
  }
  .nav-dropdown-menu a{
    white-space:normal;
  }
}


/* Public navigation dropdown visibility fix */
.nav-dropdown-menu{
  background:#ffffff;
  color:#17263a;
}
.nav-dropdown-menu a,
.nav-dropdown-menu a:visited{
  color:#17263a !important;
  background:transparent;
  opacity:1;
  text-shadow:none;
}
.nav-dropdown-menu a:hover,
.nav-dropdown-menu a:focus{
  color:#0b3f75 !important;
  background:#edf4fb;
}
@media (prefers-color-scheme: dark){
  .nav-dropdown-menu{
    background:#17263a;
    color:#ffffff;
    border-color:rgba(255,255,255,.18);
  }
  .nav-dropdown-menu a,
  .nav-dropdown-menu a:visited{
    color:#ffffff !important;
  }
  .nav-dropdown-menu a:hover,
  .nav-dropdown-menu a:focus{
    color:#ffffff !important;
    background:rgba(255,255,255,.10);
  }
}


/* Public calendar */
.calendar-heading{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  margin-bottom:18px;
}
.calendar-toolbar{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:12px;
  margin:18px 0 10px;
}
.calendar-toolbar h2{text-align:center;margin:0}
.calendar-toolbar a:last-child{text-align:right}
.calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
}
.calendar-weekdays>div{
  padding:9px;
  text-align:center;
  font-weight:800;
  border-bottom:1px solid rgba(127,127,127,.25);
}
.calendar-month{
  border-left:1px solid rgba(127,127,127,.22);
  border-top:1px solid rgba(127,127,127,.22);
}
.calendar-day{
  min-height:130px;
  padding:8px;
  border-right:1px solid rgba(127,127,127,.22);
  border-bottom:1px solid rgba(127,127,127,.22);
  background:rgba(255,255,255,.03);
}
.calendar-day.empty{background:rgba(127,127,127,.05)}
.calendar-day.today{box-shadow:inset 0 0 0 2px currentColor}
.calendar-day-number{font-weight:900;margin-bottom:6px}
.calendar-event{
  display:block;
  margin:5px 0;
  padding:6px 7px;
  border-radius:6px;
  background:rgba(14,91,146,.14);
  color:inherit;
  text-decoration:none;
  line-height:1.25;
  font-size:.88rem;
}
.calendar-event small{display:block;margin-top:3px;opacity:.75}
.calendar-event.cancelled{text-decoration:line-through;opacity:.65}
.calendar-mobile-list{display:none}
.event-detail{max-width:850px;margin:28px auto}
.event-meta{margin:18px 0}
.event-description{line-height:1.65;margin:22px 0}
.event-cancelled-label{color:#a52626}
.member-event-list{display:grid;gap:10px}
.member-event-list article{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  padding:12px 0;
  border-bottom:1px solid rgba(127,127,127,.22);
}
.member-event-list p{margin:4px 0 0}
@media(max-width:800px){
  .calendar-heading{display:block}
  .calendar-heading .button{display:inline-block;margin-top:10px}
  .calendar-weekdays,.calendar-month{display:none}
  .calendar-mobile-list{display:grid;gap:10px}
  .calendar-mobile-list article{
    display:grid;
    grid-template-columns:70px 1fr;
    gap:14px;
    padding:14px;
    border:1px solid rgba(127,127,127,.22);
    border-radius:10px;
  }
  .calendar-mobile-list h3,.calendar-mobile-list p{margin:0 0 5px}
  .calendar-list-date{font-weight:900}
  .member-event-list article{align-items:flex-start;flex-direction:column}
}


.members-only-badge{
  display:inline-block;
  margin-top:4px;
  padding:2px 7px;
  border-radius:999px;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.03em;
  background:rgba(127,127,127,.16);
}


.weekday-checks{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:7px 0 4px;
}
.weekday-check{
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin:0;
  padding:7px 9px;
  border:1px solid rgba(127,127,127,.28);
  border-radius:8px;
  font-weight:700;
}
.weekday-check input{
  width:auto;
  margin:0;
}
.repeat-days-block{
  margin-top:12px;
}


.member-online-status{
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin:8px 0 10px;
  padding:5px 10px;
  border-radius:999px;
  font-size:.86rem;
  font-weight:800;
  background:rgba(46,125,50,.10);
}
.member-online-dot{
  display:inline-block;
  width:9px;
  height:9px;
  border-radius:50%;
  background:#2e7d32;
  box-shadow:0 0 0 3px rgba(46,125,50,.12);
}
