/* ============================================================
   Events page
   ============================================================ */

/* ── Page head ───────────────────────────────────────────── */
.ev-head{
  background:var(--ink); color:var(--on-dark);
  padding-top:calc(74px + clamp(3.5rem,8vw,6rem));
  padding-bottom:clamp(2.5rem,5vw,4.5rem);
  position:relative;
}
.ev-head::after{
  content:''; position:absolute; left:0; right:0; bottom:0; height:1px;
  background:linear-gradient(90deg, var(--moss), transparent 55%);
}
.ev-head h1{ font-size:var(--step-4); margin:0 0 .85rem; max-width:18ch; }
.ev-head__lede{
  font-size:var(--step-0); color:var(--on-dark-mute);
  line-height:1.7; max-width:54ch; margin:0 0 1.75rem;
}
/* "Look elsewhere" external resource pills */
.ev-head__external{
  display:flex; flex-wrap:wrap; gap:.55rem; margin-top:1.25rem;
}
.ev-head__external a{
  display:inline-flex; align-items:center; gap:.4rem;
  padding:.5rem 1rem; border-radius:999px;
  font-family:var(--ui); font-size:.76rem; font-weight:600;
  text-decoration:none;
  border:1px solid var(--line-dark); color:var(--on-dark-mute);
  transition:color .22s var(--ease-out), border-color .22s var(--ease-out),
             background-color .22s var(--ease-out);
}
.ev-head__external a:hover,.ev-head__external a:focus-visible{
  color:var(--on-dark); border-color:var(--moss-lt);
  background:rgba(87,167,143,0.1); outline:none;
}
.ev-head__external a::after{ content:'↗'; font-size:.7rem; opacity:.6; }

/* Honest-scope notice */
.ev-scope{
  background:var(--slate); color:var(--on-dark-mute);
  border-top:1px solid var(--line-dark);
  border-bottom:1px solid var(--line-dark);
  font-family:var(--ui); font-size:.76rem; line-height:1.6;
  padding:.75rem var(--gutter);
  display:flex; align-items:center; gap:1rem;
}
.ev-scope::before{
  content:''; flex:0 0 7px; width:7px; height:7px;
  border-radius:50%; background:var(--fog);
}

/* ── In-page nav ─────────────────────────────────────────── */
.ev-nav{
  position:sticky; top:74px; z-index:90;
  background:var(--paper);
  border-bottom:1px solid var(--line-light);
  overflow-x:auto; scrollbar-width:none;
}
.ev-nav::-webkit-scrollbar{ display:none; }
.ev-nav__inner{
  display:flex; align-items:center;
  padding:0 var(--gutter); min-width:max-content;
}
.ev-nav__link{
  display:inline-flex; align-items:center;
  padding:.85rem 1.1rem;
  font-family:var(--ui); font-size:.78rem; font-weight:600;
  color:var(--on-light-mute); text-decoration:none;
  border-bottom:2px solid transparent; white-space:nowrap;
  transition:color .22s var(--ease-out), border-color .22s var(--ease-out);
}
.ev-nav__link:hover,.ev-nav__link:focus-visible{
  color:var(--on-light); outline:none;
}
.ev-nav__link.is-active{ color:var(--moss); border-bottom-color:var(--moss); }

/* ── Body ────────────────────────────────────────────────── */
.ev-body{ padding-block:clamp(2.5rem,5vw,4.5rem); }
.ev-section{
  padding-inline:var(--gutter);
  padding-bottom:clamp(3rem,6vw,5rem);
  border-bottom:1px solid var(--line-light);
  scroll-margin-top:calc(74px + 52px + 1rem);
}
.ev-section:last-child{ border-bottom:none; }
.ev-section .channel{ margin-bottom:1.1rem; }
.ev-section > h2{
  font-size:var(--step-3); margin:0 0 1.5rem; max-width:22ch;
}

/* ── Event cards grid ────────────────────────────────────── */
.ev-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(300px,1fr));
  gap:1rem;
}
.ev-card{
  position:relative; isolation:isolate;
  display:flex; flex-direction:column;
  border:1px solid var(--line-light); border-radius:18px;
  overflow:hidden;
  background:var(--paper-2);
  transition:transform .35s var(--ease-out), border-color .35s var(--ease-out),
             box-shadow .35s var(--ease-out);
}
.ev-card:hover,.ev-card:focus-within{
  transform:translateY(-4px);
  border-color:rgba(46,115,97,0.5);
  box-shadow:0 18px 40px -24px rgba(10,26,32,0.55);
}
.ev-card__season{
  padding:.55rem 1rem;
  font-family:var(--ui); font-size:.68rem; font-weight:700;
  letter-spacing:0.05em; text-transform:uppercase;
  color:var(--on-dark);
}
/* Season color bands */
.ev-card__season--fall   { background:#3D2A1A; color:#E8B87A; }
.ev-card__season--winter { background:#152530; color:#7FC4D6; }
.ev-card__season--spring { background:#1A2E1E; color:#82D4A0; }
.ev-card__season--summer { background:#2E2614; color:#F2C872; }
.ev-card__season--year   { background:#1F1F2A; color:#A09BE0; }

.ev-card__body{ padding:1.1rem 1.15rem; flex:1 1 auto; display:flex; flex-direction:column; gap:.6rem; }
.ev-card h3{ font-size:var(--step-1); margin:0; line-height:1.1; }
.ev-card__when{
  font-family:var(--ui); font-size:.76rem; font-weight:600;
  color:var(--moss); margin:0;
}
.ev-card__where{
  font-family:var(--ui); font-size:.75rem; color:var(--on-light-mute);
  display:flex; align-items:center; gap:.4rem; margin:0;
}
.ev-card__where::before{
  content:''; width:5px; height:5px; border-radius:50%;
  background:var(--fog); flex:0 0 5px;
}
.ev-card p{
  font-size:.85rem; color:var(--on-light-mute);
  line-height:1.6; margin:0; flex:1 1 auto;
}
.ev-card__tags{ display:flex; flex-wrap:wrap; gap:.35rem; margin-top:auto; padding-top:.75rem; }
.ev-card__tags span{
  font-family:var(--ui); font-size:.68rem; font-weight:600;
  padding:.2rem .55rem; border-radius:999px;
  background:rgba(18,38,44,0.06); color:var(--on-light-mute);
  border:1px solid var(--line-light);
}

/* ── Recurring list ──────────────────────────────────────── */
.ev-recurring{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(260px,1fr));
  gap:.75rem;
}
.ev-rec{
  padding:.9rem 1rem; border-radius:14px;
  border:1px solid var(--line-light); background:var(--paper-2);
  display:flex; flex-direction:column; gap:.3rem;
}
.ev-rec h3{ font-size:var(--step-0); margin:0; }
.ev-rec__freq{
  font-family:var(--ui); font-size:.7rem; font-weight:700;
  letter-spacing:0.04em; color:var(--moss); text-transform:uppercase;
}
.ev-rec p{ font-size:.8rem; color:var(--on-light-mute); margin:0; line-height:1.55; }

/* ── Venues ──────────────────────────────────────────────── */
.ev-venues{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(270px,1fr));
  gap:.85rem;
}
.ev-venue{
  padding:1rem 1.1rem; border-radius:14px;
  border:1px solid var(--line-light); background:var(--paper-2);
}
.ev-venue__type{
  font-family:var(--ui); font-size:.67rem; font-weight:700;
  letter-spacing:0.05em; text-transform:uppercase;
  color:var(--fog); margin-bottom:.35rem;
}
.ev-venue h3{ font-size:var(--step-0); margin:0 0 .3rem; }
.ev-venue p{ font-size:.8rem; color:var(--on-light-mute); margin:0; line-height:1.55; }
.ev-venue__cap{
  font-family:var(--ui); font-size:.72rem; font-weight:600;
  color:var(--on-light-mute); margin-top:.45rem;
  display:flex; align-items:center; gap:.4rem;
}
.ev-venue__cap::before{
  content:''; width:5px; height:5px; border-radius:50%;
  background:var(--fog); flex:0 0 5px;
}

/* ── Sports ──────────────────────────────────────────────── */
.ev-sports{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr));
  gap:.85rem;
}
.ev-sport{
  padding:1rem 1.1rem; border-radius:14px;
  border:1px solid var(--line-light); background:var(--paper-2);
  display:flex; flex-direction:column; gap:.3rem;
}
.ev-sport__league{
  font-family:var(--ui); font-size:.67rem; font-weight:700;
  letter-spacing:0.05em; text-transform:uppercase; color:var(--fog);
}
.ev-sport h3{ font-size:var(--step-0); margin:0; }
.ev-sport__season{
  font-family:var(--ui); font-size:.74rem; font-weight:600; color:var(--moss);
}
.ev-sport p{ font-size:.8rem; color:var(--on-light-mute); margin:0; line-height:1.55; }

/* ── External resource banner ────────────────────────────── */
.ev-elsewhere{
  background:var(--ink); color:var(--on-dark);
  border-radius:16px; padding:1.6rem 1.75rem;
  margin-top:1.5rem;
}
.ev-elsewhere h3{ font-size:var(--step-1); margin:0 0 .35rem; }
.ev-elsewhere p{ font-size:var(--step--1); color:var(--on-dark-mute); margin:0 0 1.1rem; max-width:54ch; }
.ev-elsewhere__links{
  display:flex; flex-wrap:wrap; gap:.55rem;
}
.ev-elsewhere__links a{
  display:inline-flex; align-items:center; gap:.4rem;
  padding:.55rem 1.05rem; border-radius:999px;
  font-family:var(--ui); font-size:.78rem; font-weight:600;
  text-decoration:none;
  border:1px solid var(--line-dark); color:var(--on-dark-mute);
  transition:color .22s var(--ease-out), border-color .22s var(--ease-out),
             background-color .22s var(--ease-out);
}
.ev-elsewhere__links a:hover,.ev-elsewhere__links a:focus-visible{
  color:var(--on-dark); border-color:var(--moss-lt);
  background:rgba(87,167,143,0.1); outline:none;
}
.ev-elsewhere__links a::after{ content:'↗'; font-size:.68rem; opacity:.55; }
