
:root{
  --navy:#03162d;
  --navy-2:#08284c;
  --navy-3:#0d3966;
  --orange:#ff7a00;
  --gold:#f4b632;
  --white:#ffffff;
  --muted:#c7d2df;
  --line:rgba(255,255,255,.15);
  --shadow:0 24px 70px rgba(0,0,0,.38);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:#021226;
  color:#fff;
  font-family:Arial,Helvetica,sans-serif;
  line-height:1.55;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{width:min(1180px,calc(100% - 40px));margin:auto}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.topbar{
  background:linear-gradient(90deg,#020d1e,#061b34);
  border-bottom:1px solid var(--line);
}
.topbar-inner{
  min-height:102px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
}
.brand{
  display:flex;
  align-items:center;
  gap:15px;
}
.brand img{width:88px;height:88px;object-fit:contain}
.brand-copy strong{
  display:block;
  font-size:clamp(1.7rem,3.7vw,3.15rem);
  line-height:.92;
  letter-spacing:.02em;
  font-family:Impact,"Arial Narrow",sans-serif;
}
.brand-copy span{
  display:block;
  margin-top:8px;
  color:var(--orange);
  font-weight:900;
  letter-spacing:.09em;
  text-transform:uppercase;
  font-size:.88rem;
}
.brand-copy small{display:block;font-weight:800;font-size:.72rem;letter-spacing:.05em}
.top-actions{display:flex;align-items:center;gap:14px}
.social-link{
  width:38px;height:38px;border:1px solid var(--line);border-radius:50%;
  display:grid;place-items:center;font-weight:900;
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:46px;
  padding:0 24px;
  border-radius:5px;
  border:1px solid transparent;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.035em;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:linear-gradient(180deg,#ff8a00,#f36b00);box-shadow:0 12px 28px rgba(255,122,0,.24)}
.btn-outline{border-color:var(--orange);background:rgba(1,11,25,.6)}
.btn-dark{background:#07182d;border-color:rgba(255,122,0,.65)}

.mainnav{
  position:relative;
  z-index:20;
  background:#04152b;
  border-bottom:1px solid var(--line);
}
.nav-inner{display:flex;align-items:center;justify-content:space-between}
.navlinks{display:flex;align-items:center;gap:3px;margin:0;padding:0;list-style:none}
.navlinks a{
  display:block;
  padding:19px 17px 17px;
  font-weight:900;
  font-size:.83rem;
  text-transform:uppercase;
  border-bottom:3px solid transparent;
}
.navlinks a:hover,.navlinks a.active{color:var(--orange);border-bottom-color:var(--orange)}
.menu-toggle{display:none;background:none;border:0;color:#fff;font-size:1.5rem;padding:12px}

.hero{
  position:relative;
  overflow:hidden;
  min-height:575px;
  background:
    linear-gradient(90deg,rgba(1,10,23,.96) 0%,rgba(2,18,40,.72) 43%,rgba(2,14,31,.63) 68%,rgba(1,10,23,.92) 100%),
    radial-gradient(circle at 52% 64%,rgba(255,122,0,.24),transparent 24%),
    linear-gradient(180deg,#08244a 0%,#03152c 65%,#060e17 100%);
}
.hero:before{
  content:"";
  position:absolute;inset:0;
  background-image:
    radial-gradient(circle at 12% 38%,rgba(255,255,255,.14) 0 1px,transparent 2px),
    radial-gradient(circle at 80% 25%,rgba(255,255,255,.12) 0 1px,transparent 2px);
  background-size:32px 32px,46px 46px;
  opacity:.35;
}
.hero:after{
  content:"";
  position:absolute;left:-5%;right:-5%;bottom:0;height:105px;
  background:
    linear-gradient(180deg,transparent,rgba(255,118,0,.1)),
    repeating-linear-gradient(90deg,rgba(255,255,255,.08) 0 2px,transparent 2px 140px);
  border-top:2px solid rgba(255,144,37,.35);
  transform:perspective(280px) rotateX(48deg);
  transform-origin:bottom;
}
.hero-grid{
  position:relative;
  z-index:2;
  min-height:575px;
  display:grid;
  grid-template-columns:1fr 1.05fr .78fr;
  align-items:center;
  gap:28px;
  padding:42px 0;
}
.eyebrow{
  display:flex;align-items:center;gap:12px;
  color:var(--orange);
  font-weight:900;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;
}
.eyebrow:before{content:"";width:21px;height:4px;background:var(--orange)}
.hero-copy h1{
  margin:14px 0 4px;
  font-family:Impact,"Arial Narrow",sans-serif;
  font-size:clamp(2.75rem,5vw,4.7rem);
  line-height:.94;
  text-transform:uppercase;
  letter-spacing:.015em;
}
.hero-copy h2{
  margin:0 0 16px;
  color:var(--orange);
  text-transform:uppercase;
  font-family:Impact,"Arial Narrow",sans-serif;
  letter-spacing:.025em;
  font-size:1.45rem;
}
.hero-copy p{max-width:460px;color:#eef4fa;font-weight:700}
.hero-buttons{display:flex;flex-wrap:wrap;gap:14px;margin-top:26px}

/* The animation is completely isolated from every old site stylesheet. */
.logo-animation-stage{
  position:relative;
  height:390px;
  display:grid;
  place-items:center;
  overflow:visible;
}
.logo-glow{
  position:absolute;
  width:330px;height:330px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,168,44,.28),rgba(255,122,0,.08) 47%,transparent 72%);
  animation:glowPulse 2.8s ease-in-out infinite;
}
.logo-drop{
  position:relative;
  z-index:4;
  animation:logoDropBounce 1.45s cubic-bezier(.2,.8,.25,1.2) both;
}
.logo-float{
  animation:logoFloat 3.1s ease-in-out 1.45s infinite;
  transform-origin:center bottom;
}
.logo-float img{
  width:min(365px,92vw);
  max-height:365px;
  object-fit:contain;
  filter:drop-shadow(0 30px 28px rgba(0,0,0,.5));
}
.logo-impact{
  position:absolute;bottom:38px;left:50%;width:180px;height:24px;
  transform:translateX(-50%);
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(255,164,41,.78),rgba(255,122,0,.18) 42%,transparent 72%);
  animation:impactPulse 3.1s ease-in-out 1.45s infinite;
}
.logo-sparks{
  position:absolute;bottom:38px;left:50%;width:220px;height:110px;transform:translateX(-50%);
  background:
    radial-gradient(circle at 50% 90%,#fff 0 2px,transparent 3px),
    radial-gradient(circle at 34% 64%,var(--gold) 0 2px,transparent 3px),
    radial-gradient(circle at 68% 56%,var(--orange) 0 2px,transparent 3px),
    radial-gradient(circle at 20% 80%,#fff 0 1px,transparent 2px),
    radial-gradient(circle at 82% 76%,var(--gold) 0 2px,transparent 3px);
  animation:sparkFlicker 1.6s ease-in-out infinite alternate;
}
@keyframes logoDropBounce{
  0%{opacity:0;transform:translateY(-430px) scale(.58) rotate(-8deg)}
  48%{opacity:1;transform:translateY(30px) scale(1.08,.9) rotate(2deg)}
  64%{transform:translateY(-38px) scale(.96,1.04) rotate(-1deg)}
  77%{transform:translateY(16px) scale(1.025,.975)}
  88%{transform:translateY(-9px) scale(.99,1.01)}
  100%{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes logoFloat{
  0%,100%{transform:translateY(0) rotate(-1deg)}
  50%{transform:translateY(-18px) rotate(1deg)}
}
@keyframes impactPulse{
  0%,100%{opacity:.9;transform:translateX(-50%) scaleX(1)}
  50%{opacity:.3;transform:translateX(-50%) scaleX(.68)}
}
@keyframes glowPulse{
  0%,100%{transform:scale(.94);opacity:.7}
  50%{transform:scale(1.06);opacity:1}
}
@keyframes sparkFlicker{
  from{opacity:.55;transform:translateX(-50%) scale(.93)}
  to{opacity:1;transform:translateX(-50%) scale(1.06)}
}

.meeting-card{
  background:linear-gradient(180deg,rgba(6,32,62,.96),rgba(4,19,38,.96));
  border:1px solid rgba(99,158,209,.52);
  border-radius:7px;
  padding:26px;
  box-shadow:var(--shadow);
}
.meeting-card h3{margin:0 0 26px;text-transform:uppercase;font-family:Impact,"Arial Narrow",sans-serif;font-size:1.65rem}
.meeting-date{margin-bottom:24px}
.meeting-date small{display:block;font-weight:700}
.meeting-date strong{
  display:block;color:var(--orange);
  font-family:Impact,"Arial Narrow",sans-serif;font-size:2.2rem;letter-spacing:.025em;
}
.meeting-card p{color:#f4f7fa}
.meeting-card .btn{width:100%;margin-top:16px}

.stats{
  position:relative;z-index:5;
  background:linear-gradient(90deg,#04254a,#06172d);
  border-top:1px solid rgba(79,147,207,.5);
  border-bottom:1px solid rgba(79,147,207,.35);
}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{
  padding:25px 24px;text-align:center;border-right:1px solid var(--line);
}
.stat:last-child{border-right:0}
.stat-number{font-family:Impact,"Arial Narrow",sans-serif;font-size:3rem;line-height:1}
.stat h3{margin:8px 0 1px;text-transform:uppercase;font-size:.9rem}
.stat p{margin:0;color:var(--muted);font-size:.82rem}

.features{padding:55px 0;background:linear-gradient(180deg,#06182f,#031226)}
.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.feature-card{
  min-height:310px;display:flex;flex-direction:column;justify-content:flex-end;
  padding:22px;border:1px solid rgba(255,122,0,.75);border-radius:6px;
  background:
    linear-gradient(180deg,rgba(4,23,44,.15),rgba(3,16,32,.96)),
    radial-gradient(circle at 50% 0,rgba(255,122,0,.18),transparent 46%),
    #0a2746;
  box-shadow:0 18px 45px rgba(0,0,0,.2);
}
.feature-icon{
  width:52px;height:52px;border-radius:50%;border:2px solid var(--orange);
  display:grid;place-items:center;margin-bottom:auto;background:#fff;color:var(--orange);font-weight:900;
}
.feature-card h3{font-family:Impact,"Arial Narrow",sans-serif;font-size:1.45rem;text-transform:uppercase;margin:20px 0 5px}
.feature-card p{font-size:.88rem;color:#e3eaf1;min-height:68px}
.feature-card .btn{width:100%;margin-top:12px}

.lower{padding:50px 0;background:#03152a}
.lower-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:28px}
.section-title{
  display:flex;justify-content:space-between;align-items:center;
  border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:8px;
}
.section-title h2{font-family:Impact,"Arial Narrow",sans-serif;text-transform:uppercase;margin:0}
.news-item{
  display:grid;grid-template-columns:115px 1fr auto;gap:16px;align-items:center;
  padding:13px 0;border-bottom:1px solid var(--line);
}
.news-thumb{
  height:62px;border:1px solid rgba(255,255,255,.2);border-radius:5px;
  display:grid;place-items:center;background:linear-gradient(145deg,#0b3c68,#07182d);
  color:var(--orange);font-weight:900;
}
.news-item h3{margin:0;color:var(--orange);font-size:.95rem}
.news-item p{margin:3px 0 0;color:#eef3f7;font-size:.84rem}
.news-item time{font-size:.75rem;color:#e2e8ef}
.affiliation{
  min-height:100%;padding:32px;border:1px solid rgba(91,142,194,.55);border-radius:7px;
  background:linear-gradient(145deg,#0a315b,#061a33);
}
.affiliation small{font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.affiliation h2{font-family:Impact,"Arial Narrow",sans-serif;font-size:2.4rem;margin:10px 0 2px}
.affiliation h3{margin:0 0 20px}
.affiliation p{color:#e3eaf2}

.partners{padding:24px 0;background:#08294c;border-top:1px solid var(--line)}
.partner-title{text-align:center;color:var(--orange);font-size:.8rem;font-weight:900;text-transform:uppercase}
.partner-row{display:flex;align-items:center;justify-content:space-around;gap:30px;flex-wrap:wrap;margin-top:17px}
.partner{font-family:Impact,"Arial Narrow",sans-serif;font-size:1.7rem;opacity:.9}

.footer{padding:24px 0;background:#020c1b;border-top:1px solid var(--line)}
.footer-inner{display:flex;justify-content:space-between;gap:25px;font-size:.8rem;color:#d5dde7}

@media(max-width:1030px){
  .hero-grid{grid-template-columns:1fr 1fr}
  .meeting-card{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:20px}
  .feature-grid{grid-template-columns:repeat(2,1fr)}
  .navlinks a{padding-left:10px;padding-right:10px}
}
@media(max-width:800px){
  .topbar-inner{min-height:84px}
  .brand img{width:66px;height:66px}
  .brand-copy span,.brand-copy small{display:none}
  .top-actions .social-link{display:none}
  .menu-toggle{display:block}
  .navlinks{
    display:none;position:absolute;left:0;right:0;top:100%;
    flex-direction:column;align-items:stretch;background:#04152b;padding:8px 20px 18px;
  }
  .navlinks.open{display:flex}
  .navlinks a{padding:12px 4px}
  .hero-grid{grid-template-columns:1fr;padding:45px 0}
  .hero-copy{text-align:center}
  .hero-copy .eyebrow,.hero-buttons{justify-content:center}
  .hero-copy p{margin-left:auto;margin-right:auto}
  .logo-animation-stage{height:330px}
  .meeting-card{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .feature-grid,.lower-grid{grid-template-columns:1fr}
}
@media(max-width:520px){
  .container{width:min(100% - 26px,1180px)}
  .brand-copy strong{font-size:1.75rem}
  .top-actions .btn{padding:0 12px;font-size:.72rem}
  .hero-copy h1{font-size:3rem}
  .logo-animation-stage{height:285px}
  .logo-float img{width:275px}
  .feature-grid{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:1fr 1fr}
  .stat{padding:20px 8px}
  .news-item{grid-template-columns:84px 1fr}
  .news-item time{display:none}
  .footer-inner{flex-direction:column}
}


/* WNYBOWS requested animation — intentionally remains enabled. */
.logo-animation-stage .logo-drop{
  animation-name:logoDropBounce !important;
  animation-duration:1.45s !important;
  animation-timing-function:cubic-bezier(.2,.8,.25,1.2) !important;
  animation-delay:0s !important;
  animation-iteration-count:1 !important;
  animation-fill-mode:both !important;
  animation-play-state:running !important;
}
.logo-animation-stage .logo-float{
  animation-name:logoFloat !important;
  animation-duration:3.1s !important;
  animation-timing-function:ease-in-out !important;
  animation-delay:1.45s !important;
  animation-iteration-count:infinite !important;
  animation-fill-mode:none !important;
  animation-play-state:running !important;
}
.logo-animation-stage .logo-glow{
  animation:glowPulse 2.8s ease-in-out infinite !important;
}
.logo-animation-stage .logo-impact{
  animation:impactPulse 3.1s ease-in-out 1.45s infinite !important;
}
.logo-animation-stage .logo-sparks{
  animation:sparkFlicker 1.6s ease-in-out infinite alternate !important;
}


/* =========================================================
   PROFESSIONAL RESPONSIVE PARTNER GRID
   ========================================================= */
.partners {
  background:
    radial-gradient(circle at top center, rgba(243, 179, 38, 0.08), transparent 38%),
    linear-gradient(180deg, #0b3159 0%, #092845 100%);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  padding: 58px 24px 64px;
}

.partners-inner {
  width: min(1180px, 100%);
  margin: 0 auto;
}

.partners-heading {
  max-width: 760px;
  margin: 0 auto 30px;
  text-align: center;
}

.partners-kicker {
  display: inline-block;
  margin-bottom: 8px;
  color: #f3b326;
  font-size: 0.82rem;
  font-weight: 900;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.partners-heading h2 {
  margin: 0;
  color: #ffffff;
  font-size: clamp(1.65rem, 3vw, 2.35rem);
  line-height: 1.08;
}

.partners-heading p {
  max-width: 650px;
  margin: 12px auto 0;
  color: rgba(255, 255, 255, 0.76);
  font-size: 1rem;
  line-height: 1.55;
}

.partners-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  align-items: stretch;
}

.partner-card {
  min-height: 188px;
  padding: 24px 20px;
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 16px;
  background: linear-gradient(145deg, rgba(255,255,255,0.075), rgba(255,255,255,0.035));
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.16);
  text-decoration: none;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transition: transform 180ms ease, border-color 180ms ease, background 180ms ease, box-shadow 180ms ease;
}

.partner-card:hover,
.partner-card:focus-visible {
  transform: translateY(-4px);
  border-color: rgba(243, 179, 38, 0.68);
  background: linear-gradient(145deg, rgba(255,255,255,0.11), rgba(255,255,255,0.05));
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.22);
  outline: none;
}

.partner-name {
  color: #ffffff;
  font-family: "Arial Narrow", Arial, sans-serif;
  font-size: clamp(1.45rem, 2vw, 2.05rem);
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: 0.015em;
}

.partner-subtitle {
  display: block;
  margin-top: 13px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.82rem;
  line-height: 1.35;
}

.partner-logo {
  display: block;
  width: auto;
  max-width: 100%;
  object-fit: contain;
}

.partner-logo-section6 {
  max-height: 76px;
}

.partner-logo-card .partner-subtitle {
  margin-top: 12px;
}

@media (max-width: 920px) {
  .partners-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .partners {
    padding: 44px 16px 48px;
  }

  .partners-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .partner-card {
    min-height: 150px;
    padding: 22px 18px;
  }

  .partner-logo-section6 {
    max-height: 64px;
  }
}


/* Erie 1 BOCES partner logo */
.partner-logo-e1b {
  width: min(190px, 90%);
  max-height: 72px;
}

@media (max-width: 560px) {
  .partner-logo-e1b {
    width: min(175px, 88%);
    max-height: 64px;
  }
}

.partner-logo-nfhs,.partner-logo-ncaa{max-height:72px;width:auto;max-width:90%;object-fit:contain;}


/* VERSION 7 — smaller partner logos only */
.partners .partner-logo,
.partners .partner-logo-nfhs,
.partners .partner-logo-ncaa,
.partners .partner-logo-section6,
.partners .partner-logo-e1b {
  width: auto !important;
  max-width: 145px !important;
  max-height: 38px !important;
  object-fit: contain !important;
}

@media (max-width: 560px) {
  .partners .partner-logo,
  .partners .partner-logo-nfhs,
  .partners .partner-logo-ncaa,
  .partners .partner-logo-section6,
  .partners .partner-logo-e1b {
    max-width: 125px !important;
    max-height: 32px !important;
  }
}


/* VERSION 10A — login-aware account menu; public homepage layout preserved */
.account-menu { position: relative; }
.account-button,
.member-login-button {
  min-height: 52px;
  padding: 0 18px;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 7px;
  background: transparent;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font: inherit;
  font-size: .88rem;
  font-weight: 900;
  text-decoration: none;
  text-transform: uppercase;
  cursor: pointer;
}
.account-dropdown {
  display: none;
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 200;
  min-width: 220px;
  padding: 8px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 10px;
  background: #071a33;
  box-shadow: 0 18px 35px rgba(0,0,0,.34);
}
.account-dropdown.open { display: grid; }
.account-dropdown a {
  padding: 11px 12px;
  border-radius: 7px;
  color: #fff;
  text-decoration: none;
  font-weight: 800;
}
.account-dropdown a:hover { background: rgba(255,255,255,.08); color: #f3b326; }
.account-dropdown .logout-link {
  color: #ffb7b7;
  border-top: 1px solid rgba(255,255,255,.1);
  margin-top: 4px;
}
@media (max-width: 700px) {
  .account-button,
  .member-login-button {
    min-height: 44px;
    padding-inline: 12px;
    font-size: .7rem;
  }
}
