/* =========================================================
   TSJW NETWORK -- SPORTSPRESS STYLES
   Loaded only when the SportsPress plugin is active, after the plugin's
   own structural stylesheet. The theme declares "sportspress" support,
   which switches off SportsPress's light "Frontend Styles", so these
   rules style every SportsPress component to match the dark theme --
   anywhere it appears: game/team/player pages, the MSAHA page,
   shortcodes on any page, and widgets.
   ========================================================= */

/* ---------- Page layout (sportspress.php) ---------- */
.sp-page-section { padding: 56px 0 80px; }
.sp-page-hero .breadcrumb a { color: var(--silver-bright); }
.sp-page-hero .breadcrumb a:hover { color: var(--white); }
.sp-page-hero .sp-hero-meta {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 0.9rem;
  color: var(--silver-bright);
}

.sp-layout.has-sidebar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 32px;
  align-items: start;
}
.sp-main { min-width: 0; }
.sportspress-area.sp-single { margin-top: 0; }

/* Sports Sidebar widgets */
.sp-sidebar { display: grid; gap: 24px; min-width: 0; }
.sp-sidebar .widget,
.msaha-sidebar .widget {
  background: var(--charcoal);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 22px;
  min-width: 0;
}
.sp-sidebar .widget-title,
.msaha-sidebar .widget-title {
  font-size: 0.95rem;
  margin: 0 0 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}
.sp-sidebar .widget .sp-template:last-child,
.msaha-sidebar .widget .sp-template:last-child { margin-bottom: 0; }
.sp-sidebar .widget ul { list-style: none; margin: 0; padding: 0; }

.btn-secondary { background: transparent; color: var(--white); border: 1px solid var(--silver); }
.btn-secondary:hover { border-color: var(--white); background: rgba(255, 255, 255, 0.06); transform: translateY(-2px); }

/* ---------- Base ---------- */
.sp-template {
  clear: both;
  margin: 0 0 36px;
  color: var(--white);
  font-family: var(--font-body);
}
.sp-template:last-child { margin-bottom: 0; }
.sp-section-content { margin-bottom: 36px; }
.sp-section-content:last-child { margin-bottom: 0; }
.sp-section-content:empty { display: none; }

/* The theme sets img { display:block } globally -- logos and photos
   inside SportsPress need to sit inline next to names. */
.sp-template img,
.sp-data-table img,
.sp-event-logos img { display: inline-block; vertical-align: middle; height: auto; }

.sp-template a,
.sp-data-table a,
.sp-template-gallery a {
  color: var(--white);
  text-decoration: none;
  transition: color 0.2s;
}
.sp-template a:hover,
.sp-data-table a:hover { color: var(--silver-bright); text-decoration: underline; text-underline-offset: 3px; }

/* Override theme's generic link underline inside the MSAHA panel */
.sportspress-area .sp-template a,
.sportspress-area .sp-data-table a { text-decoration: none; }
.sportspress-area .sp-template a:hover,
.sportspress-area .sp-data-table a:hover { text-decoration: underline; }

.sp-post-content { margin: 0 0 28px; color: var(--silver-bright); }
.sp-post-content p:last-child { margin-bottom: 0; }
.sp-post-caption,
.sportspress-area .sp-post-caption {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-size: 0.75rem;
  color: var(--silver);
  margin: 0 0 10px;
}

/* ---------- Captions / headings above tables ---------- */
.sp-table-caption,
.sportspress-area .sp-table-caption {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.4;
  color: var(--white);
  background: var(--charcoal-mid);
  border: 1px solid var(--line);
  border-bottom: none;
  border-radius: 8px 8px 0 0;
  margin: 0;
  padding: 14px 16px;
}
caption.sp-table-caption { caption-side: top; text-align: center; }

/* ---------- Data tables (standings, schedules, rosters, box scores) ---------- */
.sp-table-wrapper,
.sp-template-event-calendar .sp-calendar-wrapper {
  background: var(--charcoal);
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
}
.sp-table-caption + .sp-table-wrapper,
.sp-table-caption + .sp-calendar-wrapper { border-radius: 0 0 8px 8px; }
.sp-table-wrapper:has(+ .sp-view-all-link) { border-radius: 8px 8px 0 0; }
.sp-table-caption + .sp-table-wrapper:has(+ .sp-view-all-link) { border-radius: 0; }

.sp-scrollable-table-wrapper,
.sp-table-wrapper .dataTables_wrapper { overflow-x: auto; -webkit-overflow-scrolling: touch; }

.sp-data-table,
.sportspress-area .sp-data-table {
  width: 100%;
  margin: 0;
  border: 0;
  border-collapse: collapse;
  border-spacing: 0;
  background: transparent;
  color: var(--white);
  font-size: 0.9rem;
}
.sp-data-table th,
.sp-data-table td,
.sportspress-area .sp-data-table th,
.sportspress-area .sp-data-table td {
  border: 0;
  border-bottom: 1px solid var(--line);
  padding: 11px 14px;
  line-height: 1.4;
  text-align: center;
  vertical-align: middle;
}
.sp-data-table thead th,
.sportspress-area .sp-data-table thead th {
  font-family: var(--font-display);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 0.72rem;
  color: var(--silver-bright);
  background: var(--charcoal-mid);
  white-space: nowrap;
}
.sp-data-table thead th a { color: inherit; }
.sp-data-table tbody tr:nth-child(even) td,
.sportspress-area .sp-data-table tbody tr:nth-child(even) td { background: rgba(212, 215, 219, 0.03); }
.sp-data-table tbody tr:hover td,
.sportspress-area .sp-data-table tbody tr:hover td { background: rgba(212, 215, 219, 0.07); }
.sp-data-table tbody tr:last-child td { border-bottom: 0; }

.sportspress-area .sp-data-table .data-name, .sp-data-table td.data-name, .sp-data-table th.data-name,
.sportspress-area .sp-data-table .data-event, .sp-data-table td.data-event, .sp-data-table th.data-event,
.sportspress-area .sp-data-table .data-player, .sp-data-table td.data-player, .sp-data-table th.data-player,
.sportspress-area .sp-data-table .data-team, .sp-data-table td.data-team, .sp-data-table th.data-team,
.sportspress-area .sp-data-table .data-venue, .sp-data-table td.data-venue, .sp-data-table th.data-venue,
.sportspress-area .sp-data-table .data-league, .sp-data-table td.data-league, .sp-data-table th.data-league,
.sportspress-area .sp-data-table .data-season, .sp-data-table td.data-season, .sp-data-table th.data-season,
.sportspress-area .sp-data-table .data-label, .sp-data-table td.data-label, .sp-data-table th.data-label,
.sportspress-area .sp-data-table .data-position, .sp-data-table td.data-position, .sp-data-table th.data-position { text-align: left; }
.sp-event-list td.data-home, .sp-event-list th.data-home, .sportspress-area .sp-event-list .data-home { text-align: right; }
.sp-event-list td.data-away, .sp-event-list th.data-away, .sportspress-area .sp-event-list .data-away { text-align: left; }
.sp-data-table .data-name,
.sp-data-table .data-player,
.sp-data-table .data-position { white-space: nowrap; }
.sp-data-table .data-name a,
.sp-data-table .data-event a,
.sp-data-table .data-player a { font-weight: 600; }
.sp-data-table .data-rank,
.sp-data-table .data-number { color: var(--silver); font-variant-numeric: tabular-nums; }
.sp-data-table td { font-variant-numeric: tabular-nums; }
.sp-data-table .data-date,
.sp-data-table .data-time { white-space: nowrap; color: var(--silver-bright); }

/* Totals / highlighted rows */
.sp-data-table tfoot td,
.sp-data-table tfoot th,
.sp-data-table .sp-total-row td {
  background: var(--charcoal-mid);
  font-weight: 600;
  border-top: 1px solid var(--line);
  border-bottom: 0;
}
.sp-data-table .sp-highlight,
.sp-data-table .highlighted td,
.sp-data-table tr.highlighted td,
.sp-highlight { background: rgba(255, 255, 255, 0.09) !important; color: var(--white); font-weight: 600; }
.sp-heading { color: var(--white); background: var(--charcoal-mid); }

/* Sort arrows */
.sp-data-table .sorting:after,
.sp-data-table .sorting_asc:after,
.sp-data-table .sorting_desc:after { color: var(--silver); margin-left: 2px; }
.sp-data-table .sorting:after { color: transparent; }

/* Team logos / player photos in table cells */
.sp-league-table .team-logo,
.sp-event-list .team-logo,
.sp-player-list .team-logo,
.sp-player-list .player-photo { margin-right: 10px; }
.sp-data-table .team-logo img,
.sp-data-table .player-photo img { border-radius: 4px; margin: 0; }
.sp-data-table .player-photo img { border-radius: 50%; }
.sportspress-area .sp-data-table td img,
.sportspress-area .sp-data-table th img { max-height: 2em; margin-right: 0; }

/* Pagination (DataTables) */
.sp-table-wrapper .dataTables_paginate {
  padding: 10px 16px;
  border-top: 1px solid var(--line);
  overflow: hidden;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.78rem;
}
.sp-table-wrapper .dataTables_paginate .paginate_button {
  color: var(--silver-bright);
  margin: 0.25em 0.5em;
  text-decoration: none;
}
.sp-table-wrapper .dataTables_paginate .paginate_button:hover { color: var(--white); }
.sp-table-wrapper .dataTables_paginate .current { color: var(--white); opacity: 1; border-bottom: 2px solid var(--silver-bright); }

/* "View all" links under tables */
.sp-view-all-link {
  display: block;
  margin: 0;
  padding: 10px 16px;
  text-align: right;
  background: var(--charcoal-mid);
  border: 1px solid var(--line);
  border-top: 0;
  border-radius: 0 0 8px 8px;
}
.sp-view-all-link a,
.sportspress-area .sp-view-all-link a {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 0.75rem;
  color: var(--silver-bright);
  text-decoration: none;
}
.sp-view-all-link a:hover { color: var(--white); }

/* ---------- Event list (schedule / results) ---------- */
.sp-event-list .data-home { text-align: right; }
.sp-event-list .data-away { text-align: left; }
.sp-event-list .data-results,
.sp-event-list .data-time {
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: 0.03em;
  white-space: nowrap;
}
.sp-event-list .data-results a { color: var(--white); }
.sp-event-list .data-article a .dashicons { color: var(--silver-bright); }

/* ---------- Event blocks (game cards) ---------- */
.sp-template-event-blocks .sp-table-wrapper { background: transparent; border: 0; border-radius: 0; overflow: visible; }
.sp-event-blocks,
.sportspress-area .sp-event-blocks { border-collapse: separate; border-spacing: 0 14px; margin-top: -14px; }
.sp-event-blocks td,
.sportspress-area .sp-event-blocks td {
  background: var(--charcoal-mid) !important;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 20px 18px;
  overflow: hidden;
}
.sp-event-blocks tbody tr:nth-child(even) td { background: var(--charcoal-mid); }
.sp-event-blocks tbody tr:hover td { border-color: rgba(212, 215, 219, 0.4); }
.sp-event-blocks .team-logo { margin: 4px; height: 4.5em; display: flex; align-items: center; justify-content: center; }
.sp-event-blocks .team-logo img { max-height: 100%; }
.sp-event-blocks .sp-event-date,
.sp-event-blocks .sp-event-league,
.sp-event-blocks .sp-event-season,
.sp-event-blocks .sp-event-venue {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.72rem;
  color: var(--silver);
  margin: 4px 0;
}
.sp-event-blocks .sp-event-date a { color: inherit; }
.sp-event-blocks .sp-event-results {
  font-family: var(--font-display);
  font-size: 1.7rem;
  font-weight: 600;
  line-height: 1.2;
  margin: 6px 0;
  color: var(--white);
}
.sp-event-blocks .sp-event-results a { color: var(--white); text-decoration: none; }
.sp-event-blocks .sp-event-title { font-size: 0.95rem; margin: 6px 0 0; }
.sp-event-blocks .sp-event-title a { color: var(--silver-bright); }
.sp-event-blocks .sp-event-status { font-size: 0.75rem; color: var(--silver); }

/* ---------- Scoreboard at the top of a game page ---------- */
.sp-template-event-logos {
  text-align: center;
  background: radial-gradient(ellipse at top, var(--charcoal-light), var(--charcoal-deep) 70%);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 34px 20px;
}
.sp-event-logos {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 14px 28px;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.85rem;
  color: var(--silver);
}
.sp-event-logos .sp-team-logo,
.sp-event-logos-2 .sp-team-logo {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  margin: 0;
  white-space: normal;
}
.sp-event-logos .sp-team-logo .sp-team-result { margin: 0; }
.sp-event-logos img { max-height: 110px; width: auto; }
.sp-template-event-logos .sp-team-name {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--white);
}
.sp-template-event-logos .sp-team-result {
  font-family: var(--font-display);
  font-size: 2.6rem;
  font-weight: 700;
  line-height: 1;
  color: var(--white);
  background: var(--black);
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 8px 16px;
  font-variant-numeric: tabular-nums;
}
.sp-event-logos-time { display: block; margin-top: 14px; font-family: var(--font-display); text-transform: uppercase; letter-spacing: 0.08em; color: var(--silver-bright); }
.sp-template-event-logos-block .sp-team-name { font-size: 1.4rem; }
.sp-template-event-logos-block .sp-event-results { font-family: var(--font-display); font-size: 2.6rem; font-weight: 700; color: var(--white); }
.sp-template-event-logos-block .team-logo { color: var(--white); }

/* ---------- Event extras ---------- */
.sp-template-event-video iframe,
.sp-event-video iframe,
.sp-template-event-video video { width: 100%; height: auto; aspect-ratio: 16 / 9; border: 0; border-radius: 8px; display: block; }
.sp-event-performance .sub { background: rgba(255, 255, 255, 0.04); }
.sp-event-performance-teams .sp-template-event-performance-icons .sp-table-wrapper { margin-bottom: 0; }
.sp-event-venue-map-row td { padding: 0 !important; }
.sp-event-venue-address-row td { color: var(--silver-bright); }
.sp-google-map,
.sp-google-map-container iframe { display: block; width: 100%; border: 0; filter: grayscale(0.4) brightness(0.85); }
.sp-venue-map { margin-bottom: 28px; border-radius: 8px; overflow: hidden; border: 1px solid var(--line); }

/* Match statistics bars (where available) */
.sp-event-statistics { background: transparent; border: 0; }
.sp-event-statistics td { border: 0 !important; }
.sp-statistic-label { font-family: var(--font-display); text-transform: uppercase; letter-spacing: 0.05em; font-size: 0.72rem; color: var(--silver); }
.sp-statistic-bar { background: var(--charcoal-mid); border: 1px solid var(--line); border-radius: 999px; overflow: hidden; }
.sp-statistic-bar-fill { background: var(--silver-bright); }

/* ---------- Tabs (game, team, player pages) ---------- */
.sp-tab-menu,
.sportspress-area .sp-tab-menu {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 24px;
  list-style: none;
  margin: 0 0 28px;
  padding: 0;
  border-bottom: 1px solid var(--line);
}
.sp-tab-menu-item { margin: 0; padding: 0; list-style: none; }
.sp-tab-menu-item a,
.sportspress-area .sp-tab-menu-item a {
  display: block;
  margin: 0 0 -1px;
  padding: 12px 2px;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.82rem;
  color: var(--silver-bright);
  opacity: 1;
  text-decoration: none;
  border-bottom: 2px solid transparent;
}
.sp-tab-menu-item a:hover { color: var(--white); text-decoration: none; }
.sp-tab-menu-item-active a,
.sp-tab-menu-item-active a:hover { color: var(--white); border-bottom-color: var(--white); }

/* ---------- Profiles: team logo, player/staff photo, details ---------- */
.sp-template-logo,
.sp-template-photo { margin: 0 28px 24px 0; max-width: 40%; }
.sp-template-logo img,
.sp-template-photo img {
  display: block;
  max-width: 100%;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: var(--charcoal-mid);
  padding: 14px;
}
.sp-template-details { display: block; overflow: hidden; }
.sp-template-details dl {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 10px 26px;
  margin: 0;
  padding: 22px 24px;
  background: var(--charcoal-mid);
  border: 1px solid var(--line);
  border-radius: 8px;
}
.sp-template-details dt {
  margin: 0;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 0.75rem;
  color: var(--silver);
  align-self: center;
}
.sp-template-details dd { margin: 0; color: var(--white); }
.sp-template-details dd img { max-height: 1.2em; margin-right: 6px; }
.sp-player-details, .sp-staff-details, .sp-team-details { margin-bottom: 0; }

/* Player / staff / team switcher dropdowns */
.sp-template-profile-selector { margin-bottom: 18px; }
.sp-template select,
.sp-profile-selector select,
.sp-template-profile-selector select,
.sp-sidebar select {
  background: var(--charcoal-mid);
  border: 1px solid var(--line);
  color: var(--white);
  border-radius: 4px;
  padding: 8px 12px;
  font-family: var(--font-body);
  font-size: 0.9rem;
  max-width: 100%;
}

/* ---------- Galleries (player gallery, team gallery) ---------- */
.sp-template-gallery .gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 16px;
  margin: 0;
}
.sp-template-gallery .gallery-item {
  position: relative;
  width: auto !important;
  float: none !important;
  margin: 0 !important;
  padding: 0;
  background: var(--charcoal-mid);
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
  text-align: center;
  transition: border-color 0.2s, transform 0.2s;
}
.sp-template-gallery .gallery-item:hover { border-color: rgba(212, 215, 219, 0.45); transform: translateY(-2px); }
.sp-template-gallery .gallery-item img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
}
.sp-template-gallery .gallery-caption {
  display: block;
  padding: 10px 10px 12px;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-size: 0.82rem;
  color: var(--white);
  line-height: 1.3;
}
.sp-template-gallery .gallery-caption strong {
  position: absolute;
  top: 8px;
  left: 8px;
  background: var(--black);
  color: var(--white);
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 2px 8px;
  font-size: 0.8rem;
}
.sp-template-gallery .sp-gallery-group-name,
.sp-template-gallery .player-group-name {
  font-size: 1rem;
  margin: 24px 0 14px;
}
.sp-template-gallery .sp-gallery-wrapper { background: transparent; border: 0; }

/* ---------- Countdown ---------- */
.sp-template-countdown {
  text-align: center;
  background: var(--charcoal-mid);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 24px 20px;
}
.sp-template-countdown .event-name,
.sp-template-countdown .sp-event-name {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-size: 1.15rem;
  margin: 0 0 6px;
  color: var(--white);
}
.sp-template-countdown .sp-event-name a { color: var(--white); }
.sp-template-countdown .sp-event-date,
.sp-template-countdown .sp-event-venue,
.sp-template-countdown .sp-event-league,
.sp-template-countdown .event-date,
.sp-template-countdown .event-venue,
.sp-template-countdown .event-league {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.75rem;
  color: var(--silver);
  margin: 0 0 4px;
}
.sp-template-countdown .sp-event-venue a,
.sp-template-countdown .sp-event-league a { color: inherit; }
.sp-countdown { margin: 18px 0 0; }
.sp-countdown time {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
.sp-countdown span {
  display: block;
  background: var(--black);
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 14px 4px 10px;
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 600;
  line-height: 1;
  color: var(--white);
  font-variant-numeric: tabular-nums;
}
.sp-countdown span small {
  display: block;
  margin-top: 8px;
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--silver);
}
.sp-template-countdown .team-logo img { max-height: 3.5em; }

/* ---------- Event calendar ---------- */
.sp-event-calendar,
.sportspress-area .sp-event-calendar { table-layout: fixed; }
.sp-event-calendar thead th { text-align: center; }
.sp-event-calendar tbody td,
.sportspress-area .sp-event-calendar tbody td {
  text-align: center;
  padding: 16px 4px;
  color: var(--silver);
  border: 1px solid var(--line);
  position: relative;
}
.sp-event-calendar tbody td.pad { background: rgba(0, 0, 0, 0.25) !important; }
.sp-event-calendar tbody td a {
  display: inline-block;
  color: var(--white);
  font-weight: 700;
  text-decoration: none;
}
.sp-event-calendar tbody td a::after {
  content: '';
  display: block;
  width: 6px;
  height: 6px;
  margin: 4px auto 0;
  border-radius: 50%;
  background: var(--silver-bright);
}
.sp-event-calendar tbody td#today,
.sp-event-calendar tbody td.today {
  background: rgba(255, 255, 255, 0.1) !important;
  color: var(--white);
  box-shadow: inset 0 0 0 1px var(--silver-bright);
}
.sp-event-calendar tfoot td {
  padding: 12px 16px;
  background: var(--charcoal-mid);
  border: 0;
  border-top: 1px solid var(--line);
}
.sp-event-calendar tfoot a,
.sp-event-calendar #prev a,
.sp-event-calendar #next a {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 0.78rem;
  color: var(--silver-bright);
}
.sp-event-calendar tfoot a:hover { color: var(--white); text-decoration: none; }
.sp-template-event-calendar caption.sp-table-caption { border-radius: 8px 8px 0 0; }

/* ---------- Buttons & messages ---------- */
.sp-button,
.sp-template .button,
.sp-template button,
.sp-template input[type="submit"],
.sp-ajax-show-all {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--silver-bright);
  color: var(--black) !important;
  font-family: var(--font-display);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 0.8rem;
  padding: 10px 20px;
  border-radius: 999px;
  border: none;
  cursor: pointer;
  text-decoration: none !important;
  transition: background 0.2s, transform 0.15s;
}
.sp-button:hover,
.sp-template .button:hover,
.sp-template button:hover,
.sp-ajax-show-all:hover { background: var(--white); transform: translateY(-1px); }

.sp-message,
.sp-template .sp-message {
  color: var(--silver-bright);
  border: 1px dashed var(--line);
  border-radius: 8px;
  background: transparent;
  padding: 20px;
}

/* ---------- Pro / extension components (styled if present) ---------- */
.sp-template-scoreboard td { background: var(--charcoal-mid); border-color: var(--line); }
.sp-template-scoreboard a { color: var(--white); }
.sp-template-scoreboard .sp-scoreboard-date { color: var(--silver); }
.sp-template-scoreboard .sp-scoreboard-nav { background: var(--silver-bright); color: var(--black); }
.sp-tournament-bracket { color: var(--white); background: transparent; border-collapse: separate; }
.sp-tournament-bracket th,
.sp-tournament-bracket td { border: 0 !important; background: transparent !important; }
.sp-tournament-bracket thead th { color: var(--silver); border-bottom: 1px solid var(--line) !important; }
.sp-tournament-bracket .sp-team-name { background: var(--charcoal-mid) !important; border: 1px solid var(--line) !important; color: var(--white); }
.sp-tournament-bracket .sp-heading { background: var(--silver-bright) !important; color: var(--black) !important; }
.sp-tournament-bracket .sp-event { border-color: var(--line) !important; }

/* ---------- League / season / position archive list ---------- */
.sp-term-description { color: var(--silver-bright); margin-bottom: 28px; }
.sp-term-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 14px;
}
.sp-term-item a {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px;
  background: var(--charcoal-mid);
  border: 1px solid var(--line);
  border-radius: 8px;
  text-decoration: none !important;
  transition: border-color 0.2s;
}
.sp-term-item a:hover { border-color: rgba(212, 215, 219, 0.45); }
.sp-term-thumb { flex: 0 0 52px; width: 52px; height: 52px; display: flex; align-items: center; justify-content: center; }
.sp-term-thumb img { max-width: 52px; max-height: 52px; width: auto; height: auto; border-radius: 4px; }
.sp-term-initial {
  width: 52px; height: 52px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: var(--black); border: 1px solid var(--line);
  font-family: var(--font-display); font-size: 1.3rem; color: var(--white);
}
.sp-term-text { display: flex; flex-direction: column; min-width: 0; }
.sp-term-type { font-family: var(--font-display); text-transform: uppercase; letter-spacing: 0.1em; font-size: 0.66rem; color: var(--silver); }
.sp-term-title { font-family: var(--font-display); text-transform: uppercase; letter-spacing: 0.02em; color: var(--white); font-size: 1rem; line-height: 1.3; }
.sp-term-date { font-size: 0.82rem; color: var(--silver-bright); }

/* ---------- Widgets anywhere (footer/sidebars from plugins) ---------- */
.widget .sp-template-countdown { padding: 18px 14px; }
.widget .sp-countdown span { font-size: 1.4rem; padding: 10px 2px 8px; }
.widget .sp-data-table th,
.widget .sp-data-table td { padding: 8px 8px; font-size: 0.82rem; }
.widget .sp-event-blocks td { padding: 14px 10px; }
.widget .sp-event-blocks .sp-event-results { font-size: 1.3rem; }

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
  .sp-layout.has-sidebar { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 700px) {
  .sp-page-section { padding: 32px 0 56px; }
  .sp-data-table th,
  .sp-data-table td,
  .sportspress-area .sp-data-table th,
  .sportspress-area .sp-data-table td { padding: 9px 10px; font-size: 0.84rem; }
  .sp-data-table td { white-space: nowrap; }
  .sp-template-logo,
  .sp-template-photo { float: none; max-width: 70%; margin: 0 auto 22px; }
  .sp-template-details dl { grid-template-columns: 1fr; gap: 2px; padding: 18px; }
  .sp-template-details dd { margin-bottom: 10px; }
  .sp-template-details dd:last-child { margin-bottom: 0; }
  .sp-template-event-logos { padding: 24px 12px; }
  .sp-event-logos .sp-team-logo { margin: 8px 6px; }
  .sp-event-logos img { max-height: 72px; }
  .sp-template-event-logos .sp-team-result { font-size: 2rem; padding: 6px 12px; }
  .sp-event-blocks .sp-event-results { font-size: 1.35rem; }
  .sp-event-blocks .team-logo { height: 3.2em; }
  .sp-countdown span { font-size: 1.5rem; }
  .sp-event-calendar tbody td { padding: 10px 2px; font-size: 0.8rem; }
  .sp-template-gallery .gallery { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .sp-tab-menu { gap: 0 16px; }
  .sp-event-performance-teams .sp-template-event-performance-icons { float: none; width: 100%; padding: 0; }
}

/* Schedules scroll sideways instead of stacking every word */
.sp-event-list td { white-space: nowrap; }

/* Game cards must wrap text and stay inside their column on phones */
.sp-event-blocks,
.sportspress-area .sp-event-blocks { table-layout: fixed; width: 100%; }
.sp-event-blocks td,
.sportspress-area .sp-event-blocks td { white-space: normal !important; }
.sp-event-blocks .team-logo img { max-width: 100%; width: auto; }
.sp-event-venue-map-row td,
.sp-google-map-container,
.sp-venue-map { overflow: hidden; }

/* Scoreboard: keep both teams on one row on tablets/desktops */
.sp-template-event-logos .sp-team-name { max-width: 14ch; line-height: 1.2; }
.sp-event-logos img { max-height: 92px; }
@media (min-width: 701px) {
  .sp-event-logos { flex-wrap: nowrap; gap: 14px 22px; }
}
