.container{max-width:var(--container-max);margin:0 auto;padding-left:24px;padding-right:24px}

.section{background:transparent}
.section--sunken{background:var(--surface-sunken)}
.section--dark{background:var(--surface-inverse)}
.section--red{background:var(--pg-red)}
.section__inner{max-width:var(--container-max);margin:0 auto;padding:var(--section-y) 24px}

/* ---------------------------------------------------------------- */
/* Header */
/* ---------------------------------------------------------------- */
.site-header{position:sticky;top:0;z-index:30;background:var(--surface-card);border-bottom:1px solid var(--border-subtle);box-shadow:var(--shadow-xs)}
.site-header__bar{background:var(--pg-red);color:#fff}
.site-header__bar-inner{
  max-width:var(--container-max);margin:0 auto;padding:7px 24px;
  display:flex;justify-content:space-between;gap:var(--space-4);
  font-family:var(--font-condensed);font-size:var(--text-sm);text-transform:uppercase;
  letter-spacing:var(--tracking-caps);font-weight:var(--weight-semibold);
}
.site-header__bar-inner .gold{color:var(--pg-gold)}
.site-header__main{max-width:var(--container-max);margin:0 auto;padding:14px 24px;display:flex;align-items:center;gap:var(--space-8)}
.site-header__logo img{height:46px;width:auto;display:block}
.site-header__nav{margin-left:auto;display:flex;align-items:center;gap:var(--space-6)}
.nav-link{
  font-family:var(--font-condensed);font-weight:var(--weight-bold);font-size:var(--text-md);
  text-transform:uppercase;letter-spacing:var(--tracking-caps);text-decoration:none;white-space:nowrap;
  color:var(--ink-700);padding-bottom:3px;border-bottom:3px solid transparent;
  transition:var(--transition-control);
}
.nav-link:hover{color:var(--pg-red)}
.nav-link[aria-current]{color:var(--pg-red);border-bottom-color:var(--pg-gold)}
.nav-group{position:relative}
.nav-group__head{display:flex;align-items:center;gap:2px}
.nav-group__toggle{display:inline-flex;align-items:center;justify-content:center;background:none;border:0;padding:6px 4px;margin-bottom:3px;color:var(--ink-500);cursor:pointer;border-radius:var(--radius-sm)}
.nav-group__toggle svg{transition:transform var(--duration-base) var(--ease-standard)}
.nav-group__toggle:hover{color:var(--pg-red)}
.nav-group.is-open .nav-group__toggle svg{transform:rotate(180deg)}
.nav-menu{list-style:none;margin:0;padding:0}
.nav-menu__link{display:block;text-decoration:none;color:var(--ink-800);font-weight:var(--weight-semibold)}
.nav-menu__link:hover{color:var(--pg-red)}
.nav-menu__link[aria-current]{color:var(--pg-red)}

/* Desktop: dropdown panel under each group */
@media (min-width:861px){
  .nav-menu{
    position:absolute;top:100%;left:-16px;min-width:240px;padding:var(--space-2) 0;margin-top:10px;
    background:var(--surface-card);border:1px solid var(--border-subtle);border-top:3px solid var(--pg-gold);
    border-radius:0 0 var(--radius-md) var(--radius-md);box-shadow:var(--shadow-lg);
    opacity:0;visibility:hidden;transform:translateY(-4px);
    transition:opacity var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard),visibility 0s linear var(--duration-fast);
    z-index:40;
  }
  /* Invisible bridge so the menu stays open while the pointer crosses the gap */
  .nav-menu::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
  .nav-group.is-open .nav-menu{opacity:1;visibility:visible;transform:none;transition-delay:0s}
  .nav-menu__link{padding:10px 16px;font-size:var(--text-sm)}
  .nav-menu__link:hover,.nav-menu__link:focus-visible{background:var(--surface-sunken)}
  .nav-menu__link[aria-current]{box-shadow:inset 3px 0 0 var(--pg-gold)}
}
@media (min-width:861px) and (hover:hover){
  .nav-group:hover .nav-menu{opacity:1;visibility:visible;transform:none;transition-delay:0s}
}
@media (min-width:861px) and (max-width:1100px){
  .site-header__nav{gap:var(--space-4)}
  .nav-link{letter-spacing:var(--tracking-wide)}
}
.site-header__toggle{display:none;margin-left:auto;background:none;border:none;padding:8px;cursor:pointer}
.site-header__toggle span,.site-header__toggle span::before,.site-header__toggle span::after{
  content:"";display:block;width:22px;height:2px;background:var(--ink-800);position:relative;transition:var(--transition-control);
}
.site-header__toggle span::before{position:absolute;top:-7px}
.site-header__toggle span::after{position:absolute;top:7px}
.site-header.is-nav-open .site-header__toggle span{background:transparent}
.site-header.is-nav-open .site-header__toggle span::before{top:0;transform:rotate(45deg)}
.site-header.is-nav-open .site-header__toggle span::after{top:0;transform:rotate(-45deg)}

/* Mobile: hamburger panel; each group expands in place */
@media (max-width:860px){
  .site-header__bar-inner .right{display:none}
  .site-header__toggle{display:block}
  .site-header__nav{
    position:absolute;left:0;right:0;top:100%;background:var(--surface-card);
    border-bottom:1px solid var(--border-subtle);box-shadow:var(--shadow-md);
    flex-direction:column;align-items:stretch;gap:0;padding:var(--space-2) 24px var(--space-6);
    max-height:calc(100vh - 120px);max-height:calc(100dvh - 120px);overflow-y:auto;overscroll-behavior:contain;
    display:none;
  }
  .site-header.is-nav-open .site-header__nav{display:flex}
  .site-header__nav > .nav-link,.nav-group{border-bottom:1px solid var(--border-subtle)}
  .nav-link{display:block;flex:1;padding:14px 0;border-bottom:0}
  .nav-link[aria-current]{border-bottom:0}
  .nav-group__toggle{width:44px;height:44px;margin:0 -10px 0 0;color:var(--ink-700)}
  .nav-menu{display:none;padding:0 0 var(--space-3) var(--space-4);border-left:3px solid var(--pg-gold);margin-bottom:var(--space-3)}
  .nav-group.is-open .nav-menu{display:block}
  .nav-menu__link{padding:10px 0;font-size:var(--text-md)}
  .site-header__nav .btn{margin-top:var(--space-5)}
}

/* ---------------------------------------------------------------- */
/* Footer */
/* ---------------------------------------------------------------- */
.site-footer{background:var(--surface-inverse);color:var(--text-on-dark);margin-top:var(--space-12)}
.site-footer__cols{
  max-width:var(--container-max);margin:0 auto;padding:var(--space-10) 24px var(--space-8);
  display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--space-8);
}
.site-footer__brand p{font-size:var(--text-sm);color:rgba(255,255,255,.75);margin:var(--space-4) 0 0}
.site-footer__logo{background:#fff;display:inline-block;padding:10px 14px;border-radius:var(--radius-md);line-height:0}
.site-footer__logo img{height:36px;width:auto}
.site-footer h2{font-family:var(--font-condensed);font-weight:var(--weight-bold);font-size:var(--text-sm);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--pg-gold);margin:0 0 var(--space-3)}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li{margin-bottom:var(--space-2)}
.site-footer a{color:rgba(255,255,255,.82);text-decoration:none;font-size:var(--text-sm)}
.site-footer a:hover{color:#fff}
.site-footer h2 a{color:inherit;font-size:inherit}
.site-footer__bottom{border-top:1px solid rgba(255,255,255,.12)}
.site-footer__bottom-inner{
  max-width:var(--container-max);margin:0 auto;padding:var(--space-5) 24px;
  display:flex;justify-content:space-between;font-size:var(--text-xs);color:rgba(255,255,255,.55);
}

@media (max-width:860px){
  .site-footer__cols{grid-template-columns:1fr 1fr;}
  .site-footer__bottom-inner{flex-direction:column;gap:var(--space-2)}
}
@media (max-width:520px){
  .site-footer__cols{grid-template-columns:1fr}
}

/* ---------------------------------------------------------------- */
/* Page header band (used by Divisions/Schedule/Register/Volunteer) */
/* ---------------------------------------------------------------- */
.page-header{background:var(--pg-red);padding:var(--space-8) 24px var(--space-9)}
.page-header--black{background:var(--pg-black);position:relative;overflow:hidden}
.page-header__inner{max-width:var(--container-max);margin:0 auto;position:relative}
.page-header h1{font-family:var(--font-display);font-weight:var(--weight-regular);font-size:var(--text-5xl);text-transform:uppercase;color:#fff;line-height:1;margin:0}
.page-header p{font-size:var(--text-lg);color:rgba(255,255,255,.84);max-width:620px;margin:var(--space-3) 0 0}
.page-header__watermark{position:absolute;right:-40px;top:-20px;opacity:.10;pointer-events:none}
.page-header__watermark img{height:320px;width:auto}

/* generic responsive grid helpers */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6)}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6)}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-6)}
@media (max-width:860px){
  .grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:600px){
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr}
  .sponsor-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .page-header h1{font-size:var(--text-4xl)}
}
@media (max-width:440px){
  .sponsor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
