* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font-family: Arial, Helvetica, sans-serif;
}

.wrap {
  width: min(1100px, calc(100% - 32px));
  margin: auto;
}

.hero {
  background: var(--paper);
  color: var(--ink);
  padding: 52px 0 46px;
}

.hero h1 {
  margin: 5px 0 8px;
  font-size: clamp(34px, 6vw, 58px);
  line-height: 1;
}

.hero p {
  margin: 0;
  color: var(--muted);
  font-size: 18px;
}

.eyebrow {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .13em;
}

.date-nav,
.sport-filter {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.date-nav {
  margin-top: 28px;
}

.sport-filter {
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}

button {
  border: 1px solid var(--line);
  background: var(--paper);
  padding: 10px 15px;
  border-radius: 999px;
  cursor: pointer;
  font-weight: 700;
}

button.active {
  background: var(--paper);
  border-color: var(--action);
  color: var(--ink);
}

.date-picker {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  font-size: 13px;
  font-weight: 700;
}

.date-picker input {
  padding: 8px;
}

.schedule-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  margin: 34px 0 18px;
}

.schedule-head h2 {
  margin: 4px 0 0;
  font-size: 32px;
}

.event-count {
  font-weight: 800;
}

.day {
  margin-bottom: 34px;
}

.day-title {
  margin: 0 0 12px;
  padding-bottom: 9px;
  border-bottom: 2px solid var(--line);
  font-size: 20px;
}

.event-card {
  display: grid;
  grid-template-columns: 90px 1fr auto;
  gap: 20px;
  background: var(--paper);
  padding: 20px;
  margin-bottom: 10px;
  border-radius: 10px;
}

.event-time {
  font-size: 20px;
  font-weight: 900;
}

.event-title {
  margin: 0 0 5px;
  font-size: 19px;
}

.matchup {
  margin-bottom: 8px;
  font-weight: 700;
}

.venue {
  color: var(--muted);
  line-height: 1.45;
}

.badge {
  align-self: start;
  padding: 6px 9px;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
}

.status {
  padding: 30px 0;
  color: var(--muted);
}

@media (max-width: 700px) {
  .event-card {
    grid-template-columns: 70px 1fr;
  }

  .badge {
    grid-column: 2;
    justify-self: start;
  }

  .date-picker {
    width: 100%;
    margin: 8px 0 0;
  }
}

/* Boone Buzz sports treatment */
button {
  color: var(--ink);
}

button.active {
  background: var(--action);
  border-color: var(--action);
  color: var(--action-text);
}

.hero {
  border-bottom: 1px solid var(--line);
}

.hero .eyebrow,
.schedule-head .eyebrow {
  color: var(--orange);
}

.event-card {
  border: 1px solid var(--line);
}

.event-card:hover {
  border-color: var(--action);
}

.badge {
  color: var(--ink);
  background: var(--light);
}

.event-card .event-title {
  color: var(--ink);
}

.upcoming {
  margin: 56px 0 80px;
  padding-top: 32px;
  border-top: 1px solid var(--line);
}

.upcoming-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 20px;
  margin-bottom: 20px;
}

.upcoming-head h2 {
  margin: 5px 0 0;
  font-size: 30px;
}

.upcoming-head .eyebrow {
  color: var(--orange);
}

.upcoming-head p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}

.upcoming-list {
  display: grid;
  gap: 10px;
}

.upcoming-day {
  display: grid;
  grid-template-columns: 160px 1fr auto;
  align-items: center;
  gap: 18px;
  padding: 17px 19px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--paper);
  color: var(--ink);
  cursor: pointer;
}

.upcoming-day:hover {
  border-color: var(--action);
}

.upcoming-date {
  font-weight: 800;
}

.upcoming-preview {
  color: var(--muted);
  font-size: 13px;
}

.upcoming-count {
  font-size: 12px;
  font-weight: 800;
  color: var(--action);
}

@media(max-width:700px) {
  .upcoming-head {
    align-items: start;
    flex-direction: column;
  }

  .upcoming-day {
    grid-template-columns: 1fr auto;
  }

  .upcoming-preview {
    grid-column: 1 / -1;
  }
}

/* Boone Buzz integrated WHS page */
.whs-sports-main {
  width: min(1100px, calc(100% - 32px));
  margin: 0 auto;
  padding-bottom: 30px;
}

.whs-hero {
  padding: 48px 0 28px;
  border-bottom: 1px solid var(--line);
}

.whs-hero .eyebrow {
  color: var(--orange);
}

.whs-hero h1 {
  margin: 7px 0 12px;
  font-size: clamp(38px, 6vw, 62px);
  line-height: 1;
}

.whs-hero h1 em {
  color: var(--orange);
  font-style: normal;
}

.whs-description {
  max-width: 720px;
  margin: 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.6;
}

.whs-sports-main .date-nav {
  margin-top: 26px;
}

.whs-sports-main button {
  font: inherit;
}

.whs-sports-main .source-note {
  margin: 30px 0 10px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.6;
}

@media(max-width:700px) {
  .whs-hero {
    padding-top: 34px;
  }

  .whs-sports-main {
    width: min(100% - 24px, 1100px);
  }
}

/* Compact Watauga calendar cards; preserve date and sport controls. */
.whs-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.whs-card-grid .whs-calendar-card{min-width:0;display:flex;flex-direction:column;gap:12px;border:1px solid var(--line);border-top:3px solid #2f80d0;border-radius:12px;background:var(--paper);padding:17px;margin:0}
.whs-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.whs-card-state,.whs-card-sport{font-size:9px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}
.whs-card-state.is-today{color:var(--action)}
.whs-calendar-card .badge{padding:0;border:0;background:none;font-size:9px;color:var(--muted);letter-spacing:1px}
.whs-game-line{display:flex;gap:11px;align-items:center}
.whs-game-copy{min-width:0}
.whs-date-tile{flex:none;width:49px;min-height:76px;display:flex;flex-direction:column;justify-content:center;align-items:center;border:1px solid var(--line);border-radius:8px;background:var(--event);padding:7px 4px;line-height:1.15}
.whs-date-tile>span{font-size:9px;font-weight:900;letter-spacing:1px;text-transform:uppercase;color:var(--orange)}
.whs-date-tile strong{font:800 28px/1.15 Arial,Helvetica,sans-serif;color:var(--ink);margin:3px 0}
.whs-date-tile small{font-size:9px;color:var(--muted)}
.whs-card-grid .event-title{font:800 17px/1.25 Arial,Helvetica,sans-serif;color:var(--ink);margin:5px 0 6px;overflow-wrap:anywhere}
.whs-card-grid .event-time{font-size:12px;font-weight:700;margin:0;line-height:1.5}
.whs-card-grid .venue{font-size:11px;line-height:1.5;color:var(--muted);overflow-wrap:anywhere}
.whs-card-watch{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:10px;border-top:1px solid var(--line);font-size:12px;font-weight:700}
.whs-card-watch>span{font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}
.whs-card-watch a,.whs-broadcast a{color:var(--action)}
.whs-stream-note{color:var(--muted);font-size:10px;line-height:1.5;margin-top:-6px}
.whs-broadcast{margin:20px 0 0;font-size:13px;line-height:1.6;color:var(--muted)}
@media(max-width:800px){.whs-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.whs-card-grid{grid-template-columns:1fr}.whs-card-grid .event-title{font-size:19px}}

/* Pioneer identity uses the existing Watauga calendar-card blue. */
.whs-sports-main { --pioneer-blue:#2f80d0; }
.whs-hero { text-align:center; padding:48px 0 32px; }
.whs-hero h1 { font-size:clamp(36px,5.8vw,64px); }
.whs-hero h1 em { color:var(--pioneer-blue); font-style:italic; }
.whs-hero .eyebrow, .whs-sports-main .schedule-head .eyebrow, .whs-sports-main .upcoming-head .eyebrow { color:var(--pioneer-blue); }
.whs-description { margin:0 auto; }
.whs-sports-main .date-nav button.active, .whs-sports-main .sport-filter button.active { background:var(--pioneer-blue); border-color:var(--pioneer-blue); color:#0a0b1a; }
.whs-sports-main .date-nav button:focus-visible, .whs-sports-main .sport-filter button:focus-visible { outline:2px solid var(--pioneer-blue); outline-offset:3px; }
.whs-sports-main .whs-card-sport, .whs-sports-main .whs-date-tile > span, .whs-sports-main .whs-card-state.is-today, .whs-sports-main .upcoming-count { color:var(--pioneer-blue); }
.whs-sports-main .whs-calendar-card { border-top-color:var(--pioneer-blue); }
.whs-sports-main .event-card:hover, .whs-sports-main .upcoming-day:hover { border-color:var(--pioneer-blue); }

.upcoming-date { display:flex; align-items:center; gap:14px; }
.upcoming-day {grid-template-columns:210px 1fr auto;}
@media(max-width:700px){.upcoming-day {grid-template-columns:1fr auto;}.upcoming-preview{grid-column:1/-1;grid-row:2;}}

.upcoming-day {padding:11px 19px;}
.upcoming-list {gap:8px;}

.whs-broadcast a.sports-return-link,.athletics-links a.sports-return-link {color:var(--ink);}
.sports-return-link span {color:#ff2a85;}

.whs-broadcast a.sports-return-link,.athletics-links a.sports-return-link {text-decoration:none;border-bottom:0;}

/* Match App State athletics typography. */
.whs-sports-main {font-family:-apple-system, system-ui, "Segoe UI", sans-serif;}
.whs-sports-main .sports-return-link {font-size:15px;font-weight:700;}
.whs-sports-main [data-sport] {font-weight:700;}
.whs-sports-main .schedule-head h2 {font-size:30px;}
