/*
Theme Name: TEBA League
Theme URI: https://tebaleague.com
Author: TEBA League
Author URI: https://tebaleague.com
Description: Official theme for the Thai Elite Basketball Association. Built on the TEBA design system — Archivo Black display, JetBrains Mono data, Inter UI, warm court palette.
Version: 1.0.106
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: Proprietary
Text Domain: teba-league
Tags: sports, basketball, custom-menu, featured-images, full-width-template, woocommerce
*/

/* ==========================================================================
   DESIGN TOKENS
   Extracted from TEBA League Hub Claude Design export
   ========================================================================== */

:root {

  /* Typography */
  --font-display: 'Archivo Black', 'Archivo', 'Helvetica Neue', sans-serif;
  --font-ui:      'Inter', system-ui, -apple-system, sans-serif;
  --font-mono:    'JetBrains Mono', ui-monospace, 'Cascadia Code', monospace;
  --font-serif:   'Lora', Georgia, 'Times New Roman', serif;

  /* Palette — Light Court (default) */
  --color-paper:    #F2EFE6;   /* warm off-white — primary background */
  --color-paper-2:  #EAE6D9;   /* slightly darker — secondary sections */
  --color-card:     #FAF7EE;   /* lightest — card surfaces */
  --color-ink:      #0B0B0C;   /* near-black — primary text */
  --color-ink-2:    #2A2A2A;   /* dark gray — body text */
  --color-mute:     #777268;   /* warm gray — labels, captions */

  /* Borders (alpha-based for flexibility) */
  --color-line:     rgba(26, 26, 26, 0.10);   /* subtle dividers */
  --color-line-2:   rgba(26, 26, 26, 0.20);   /* stronger dividers */

  /* Brand */
  --color-accent:   #D62246;   /* TEBA red */
  --color-navy:     #2D2557;   /* deep navy */
  --color-gold:     #B5A06D;   /* warm gold */

  /* Semantic */
  --color-good:     #1F8A5B;   /* win / positive */
  --color-bad:      #C13434;   /* loss / negative */
  --color-warn:     #D9A227;   /* caution */

  /* Spacing scale */
  --space-xs:   4px;
  --space-sm:   8px;
  --space-md:   16px;
  --space-lg:   24px;
  --space-xl:   32px;
  --space-2xl:  48px;
  --space-3xl:  72px;

  /* Layout */
  --container-max:  1440px;
  --container-pad:  56px;
  --container-pad-sm: 24px;

  /* Transitions */
  --transition-fast: 0.12s ease;
  --transition-mid:  0.18s ease;

}

/* ==========================================================================
   RESET & BASE
   ========================================================================== */

*, *::before, *::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  font-size: 16px;
}

body {
  margin: 0;
  padding: 0;
  background: var(--color-paper);
  color: var(--color-ink);
  font-family: var(--font-ui);
  font-size: 1rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
}

a:hover {
  color: var(--color-accent);
}

button {
  font-family: inherit;
  cursor: pointer;
}

/* ==========================================================================
   LAYOUT
   ========================================================================== */

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

.teba-container--narrow {
  max-width: 880px;
  margin: 0 auto;
  padding-left: var(--container-pad);
  padding-right: var(--container-pad);
}

.teba-grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-xl); }
.teba-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-xl); }
.teba-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-lg); }
.teba-grid-sidebar { display: grid; grid-template-columns: 2fr 1fr; gap: var(--space-2xl); }

/* ==========================================================================
   TYPOGRAPHY SYSTEM
   ========================================================================== */

/* Display — Archivo Black */
.teba-display {
  font-family: var(--font-display);
  font-weight: 900;
  letter-spacing: -0.025em;
  text-transform: uppercase;
  line-height: 0.95;
}

.teba-display--xl  { font-size: clamp(3rem, 6vw, 6rem); }
.teba-display--lg  { font-size: clamp(2rem, 4vw, 3.5rem); }
.teba-display--md  { font-size: clamp(1.5rem, 3vw, 2.5rem); }
.teba-display--sm  { font-size: 1.25rem; }

/* Mono — JetBrains Mono (labels, stats, metadata) */
.teba-label {
  font-family: var(--font-mono);
  font-size: 0.6875rem;   /* 11px */
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-mute);
}

.teba-label--accent { color: var(--color-accent); }
.teba-label--ink    { color: var(--color-ink); }
.teba-label--light  { color: rgba(255,255,255,0.7); }

/* Section kicker (red bar + mono label) */
.teba-kicker {
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-ink);
}

.teba-kicker::before {
  content: '';
  display: block;
  width: 14px;
  height: 2px;
  background: var(--color-accent);
  flex-shrink: 0;
}

.teba-kicker--dark { color: var(--color-paper); }
.teba-kicker--dark::before { background: var(--color-accent); }

/* Stat block (big number + label) */
.teba-stat {}
.teba-stat__value {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 2.625rem;   /* 42px */
  line-height: 0.9;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
  color: var(--color-ink);
}
.teba-stat__label {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-mute);
  margin-top: 4px;
}
.teba-stat--dark .teba-stat__value { color: var(--color-paper); }
.teba-stat--dark .teba-stat__label { color: rgba(255,255,255,0.6); }

/* Section heading */
.teba-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-lg);
  padding-bottom: var(--space-md);
  margin-bottom: var(--space-lg);
  border-bottom: 1px solid var(--color-line);
}

.teba-section-head h2 {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 2.375rem;   /* 38px */
  line-height: 0.95;
  letter-spacing: -0.025em;
  text-transform: uppercase;
  color: var(--color-ink);
}

.teba-section-head--dark { border-bottom-color: rgba(255,255,255,0.15); }
.teba-section-head--dark h2 { color: var(--color-paper); }

/* ==========================================================================
   BUTTONS
   ========================================================================== */

.teba-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: 0.6875rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 12px 18px;
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: filter var(--transition-fast), transform var(--transition-fast);
  white-space: nowrap;
}

.teba-btn:hover  { filter: brightness(1.05); color: inherit; }
.teba-btn:active { transform: translateY(1px); }

.teba-btn--primary { background: var(--color-accent); color: #fff; }
.teba-btn--solid   { background: var(--color-ink);   color: var(--color-paper); }
.teba-btn--ghost   { background: transparent; color: var(--color-ink); border: 1px solid var(--color-ink); }
.teba-btn--ghost-dark { background: transparent; color: var(--color-paper); border: 1px solid rgba(255,255,255,0.4); }
.teba-btn--light   { background: rgba(255,255,255,0.1); color: var(--color-paper); border: 1px solid rgba(255,255,255,0.2); }
.teba-btn--full    { width: 100%; }

/* ==========================================================================
   TEAM MARK (shield badge)
   ========================================================================== */

.teba-mark {
  display: inline-grid;
  place-items: center;
  position: relative;
  font-family: var(--font-display);
  font-weight: 900;
  letter-spacing: -0.02em;
  color: #fff;
  clip-path: polygon(0 0, 100% 0, 100% 70%, 50% 100%, 0 70%);
  flex-shrink: 0;
}

.teba-mark--sm  { width: 24px; height: 24px; font-size: 10px; }
.teba-mark--md  { width: 32px; height: 32px; font-size: 13px; }
.teba-mark--lg  { width: 48px; height: 48px; font-size: 20px; }
.teba-mark--xl  { width: 72px; height: 72px; font-size: 30px; }
.teba-mark--2xl { width: 96px; height: 96px; font-size: 40px; }

/* ==========================================================================
   LIVE DOT ANIMATION
   ========================================================================== */

@keyframes teba-blink {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.35; }
}

.teba-live-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--color-accent);
  animation: teba-blink 1.2s infinite;
  flex-shrink: 0;
}

.teba-live-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-accent);
}

/* ==========================================================================
   WIN/LOSS FORM PIPS
   ========================================================================== */

.teba-form {
  display: inline-flex;
  gap: 3px;
}

.teba-form__pip {
  width: 18px;
  height: 18px;
  display: inline-grid;
  place-items: center;
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 800;
  color: #fff;
}

.teba-form__pip--w { background: var(--color-good); }
.teba-form__pip--l { background: var(--color-bad); }

/* ==========================================================================
   NAVIGATION — TOP UTILITY BAR
   ========================================================================== */

.teba-topbar {
  background: #000;
  color: #fff;
  padding: 7px var(--container-pad);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--font-mono);
  font-size: 0.65625rem;   /* 10.5px */
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/* ==========================================================================
   NAVIGATION — MAIN HEADER
   ========================================================================== */

.teba-header {
  background: var(--color-ink);
  color: var(--color-paper);
  border-bottom: 4px solid var(--color-accent);
  position: sticky;
  top: 0;
  z-index: 100;
}

.teba-header__inner {
  padding: 18px var(--container-pad) 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-xl);
  max-width: var(--container-max);
  margin: 0 auto;
}

.teba-header__logo {
  display: flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
  color: inherit;
}

.teba-header__logo img {
  height: 56px;
  width: auto;
}

.teba-header__logo-text {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 1.375rem;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  line-height: 1;
}

.teba-header__logo-sub {
  font-family: var(--font-mono);
  font-size: 0.59375rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: rgba(255,255,255,0.67);
  margin-top: 3px;
}

/* Main nav */
.teba-nav {
  display: flex;
  gap: 4px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.teba-nav a {
  display: block;
  padding: 10px 14px;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 0.8125rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-paper);
  text-decoration: none;
  transition: background var(--transition-fast), color var(--transition-fast);
}

.teba-nav a:hover,
.teba-nav .current-menu-item a,
.teba-nav .current-page-ancestor a {
  background: var(--color-accent);
  color: #fff;
}

/* ==========================================================================
   SCORE CARD
   ========================================================================== */

.teba-score-card {
  background: var(--color-card);
  border: 1px solid var(--color-line);
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  transition: background var(--transition-fast);
}

.teba-score-card:hover {
  background: #F5F2EA;
  color: inherit;
}

.teba-score-card--dark {
  background: rgba(21, 21, 24, 0.5);
  border-color: rgba(255,255,255,0.1);
}

.teba-score-card__header {
  padding: 10px 14px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid var(--color-line);
}

.teba-score-card--dark .teba-score-card__header {
  border-bottom-color: rgba(255,255,255,0.08);
}

.teba-score-card__body {
  padding: 14px 16px 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.teba-score-card__team {
  display: flex;
  align-items: center;
  gap: 12px;
}

.teba-score-card__team-name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.0625rem;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  line-height: 1;
}

.teba-score-card__team-name--winner { font-weight: 900; }

.teba-score-card__team-meta {
  font-family: var(--font-mono);
  font-size: 0.625rem;
  color: var(--color-mute);
  letter-spacing: 0.1em;
  margin-top: 3px;
  text-transform: uppercase;
}

.teba-score-card__score {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 2.25rem;
  letter-spacing: -0.04em;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  min-width: 54px;
  text-align: right;
  margin-left: auto;
}

.teba-score-card__score--winner { font-weight: 900; }
.teba-score-card__score--pending { color: var(--color-mute); }

.teba-score-card__footer {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid var(--color-line);
  font-family: var(--font-mono);
  font-size: 0.65625rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.teba-score-card__footer-action {
  padding: 10px 14px;
  text-align: center;
  color: var(--color-mute);
  cursor: pointer;
}

.teba-score-card__footer-action:first-child {
  border-right: 1px solid var(--color-line);
}

/* ==========================================================================
   STANDINGS TABLE
   ========================================================================== */

.teba-standings {
  width: 100%;
  border-collapse: collapse;
}

.teba-standings th {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-mute);
  padding: 10px 6px;
  text-align: center;
  border-bottom: 1px solid var(--color-line-2);
}

.teba-standings td {
  padding: 12px 6px;
  text-align: center;
  font-family: var(--font-ui);
  font-variant-numeric: tabular-nums;
  border-bottom: 1px solid var(--color-line);
  font-size: 0.8125rem;
}

.teba-standings__rank {
  display: inline-grid;
  place-items: center;
  width: 24px;
  height: 24px;
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: 0.6875rem;
}

.teba-standings__rank--playoff {
  background: var(--color-ink);
  color: var(--color-paper);
}

.teba-standings__team {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  text-align: left;
}

.teba-standings__team-name {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 0.9375rem;
  text-transform: uppercase;
  letter-spacing: -0.005em;
}

.teba-standings__team-city {
  font-family: var(--font-mono);
  font-size: 0.625rem;
  color: var(--color-mute);
  letter-spacing: 0.08em;
}

.teba-standings__diff--pos { color: var(--color-good); font-weight: 700; }
.teba-standings__diff--neg { color: var(--color-bad);  font-weight: 700; }

/* ==========================================================================
   BOX SCORE TABLE
   ========================================================================== */

.teba-box-table {
  width: 100%;
  border-collapse: collapse;
}

.teba-box-table th {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-mute);
  padding: 14px 10px;
  text-align: center;
  border-bottom: 2px solid var(--color-ink);
  background: var(--color-paper);
}

.teba-box-table td {
  padding: 12px 10px;
  text-align: center;
  font-family: var(--font-ui);
  font-variant-numeric: tabular-nums;
  border-bottom: 1px solid var(--color-line);
  font-size: 0.84375rem;
}

.teba-box-table tr:hover td { background: rgba(26,26,26,0.03); }

/* ==========================================================================
   NEWS CARDS
   ========================================================================== */

.teba-news-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}

.teba-news-card:hover .teba-news-card__title {
  color: var(--color-accent);
}

.teba-news-card__thumbnail {
  position: relative;
  width: 100%;
  background: #15151B;
  overflow: hidden;
}

.teba-news-card__thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.teba-news-card__cat {
  font-family: var(--font-mono);
  font-size: 0.65625rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-accent);
  margin-bottom: 8px;
}

.teba-news-card__title {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 1.25rem;
  line-height: 1.05;
  letter-spacing: -0.015em;
  text-transform: uppercase;
  color: var(--color-ink);
  margin: 0 0 8px;
  transition: color var(--transition-fast);
}

.teba-news-card__dek {
  font-family: var(--font-ui);
  font-size: 0.84375rem;
  line-height: 1.55;
  color: var(--color-ink-2);
  margin: 0;
}

/* ==========================================================================
   ARTICLE BODY
   ========================================================================== */

.teba-article-body {
  font-family: var(--font-serif);
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--color-ink);
}

.teba-article-body p { margin: 0 0 1rem; }

.teba-article-body blockquote {
  margin: 28px 0;
  border-left: 4px solid var(--color-accent);
  padding-left: 18px;
}

.teba-article-body blockquote p {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1.5rem;
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--color-ink);
}

.teba-article-body h2 {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 1.875rem;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  color: var(--color-ink);
  margin: 36px 0 14px;
}

/* ==========================================================================
   SHOP / PRODUCT
   ========================================================================== */

.teba-product-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
}

.teba-product-card__image {
  position: relative;
  overflow: hidden;
}

.teba-product-card__cat {
  font-family: var(--font-mono);
  font-size: 0.65625rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-mute);
  margin-top: 12px;
}

.teba-product-card__name {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 0.9375rem;
  text-transform: uppercase;
  letter-spacing: -0.005em;
  color: var(--color-ink);
  margin: 4px 0 0;
  line-height: 1.2;
}

.teba-product-card__price {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 1.125rem;
  color: var(--color-ink);
  margin-top: 6px;
  letter-spacing: -0.01em;
}

/* ==========================================================================
   MEDIA PLACEHOLDER (halftone + diagonal slash)
   Used when no featured image is set
   ========================================================================== */

.teba-media-placeholder {
  position: relative;
  width: 100%;
  background: #15151B;
  overflow: hidden;
}

.teba-media-placeholder::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255,255,255,0.12) 1px, transparent 1.5px);
  background-size: 10px 10px;
}

.teba-media-placeholder::after {
  content: '';
  position: absolute;
  right: -40px;
  top: -40px;
  width: 160px;
  height: 280px;
  transform: rotate(18deg);
  background: linear-gradient(
    180deg,
    var(--color-accent) 0% 38%,
    transparent 38% 50%,
    var(--color-accent) 50% 78%,
    transparent 78%
  );
  opacity: 0.95;
}

.teba-media-placeholder__label {
  position: absolute;
  left: 18px;
  bottom: 14px;
  font-family: var(--font-mono);
  font-size: 0.65625rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
  z-index: 1;
}

/* ==========================================================================
   FOOTER
   ========================================================================== */

.teba-footer {
  background: #000;
  color: #fff;
}

.teba-footer__main {
  padding: 48px var(--container-pad) 36px;
  max-width: var(--container-max);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr 1.4fr;
  gap: var(--space-xl);
}

.teba-footer__col-title {
  font-family: var(--font-mono);
  font-size: 0.65625rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--color-accent);
  margin-bottom: 14px;
}

.teba-footer__links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.teba-footer__links a {
  font-family: var(--font-ui);
  font-size: 0.875rem;
  color: rgba(255,255,255,0.87);
  text-decoration: none;
}

.teba-footer__links a:hover { color: var(--color-accent); }

.teba-footer__bottom {
  padding: 18px var(--container-pad);
  border-top: 1px solid rgba(255,255,255,0.12);
  max-width: var(--container-max);
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  color: rgba(255,255,255,0.5);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

/* ==========================================================================
   SPORTSPRESS OVERRIDES
   Override SP default styles to match TEBA design system
   ========================================================================== */

/* SP Player tables */
.sp-table-wrapper { overflow-x: auto; }

.sp-player-list,
.sp-performance,
.sp-event-performance {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-ui);
}

.sp-player-list th,
.sp-performance th,
.sp-event-performance th {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-mute);
  padding: 14px 10px;
  border-bottom: 2px solid var(--color-ink);
  background: var(--color-paper);
}

.sp-player-list td,
.sp-performance td,
.sp-event-performance td {
  padding: 12px 10px;
  border-bottom: 1px solid var(--color-line);
  font-variant-numeric: tabular-nums;
}

/* SP Event (game) list */
.sp-event-list a {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: -0.005em;
  color: var(--color-ink);
}

.sp-event-list a:hover { color: var(--color-accent); }

/* SP Countdown */
.sp-countdown {
  font-family: var(--font-display);
  font-weight: 900;
  letter-spacing: -0.03em;
}

/* SP Result badge */
.sp-result {
  font-family: var(--font-display);
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  font-size: 1.5rem;
  letter-spacing: -0.04em;
}

/* ==========================================================================
   WOOCOMMERCE OVERRIDES
   ========================================================================== */

.woocommerce .button,
.woocommerce button.button {
  font-family: var(--font-mono) !important;
  font-weight: 700 !important;
  font-size: 0.6875rem !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  background: var(--color-accent) !important;
  color: #fff !important;
  border: none !important;
  padding: 12px 18px !important;
  border-radius: 0 !important;
}

.woocommerce .button:hover { filter: brightness(1.05); }

.woocommerce .price {
  font-family: var(--font-display);
  font-weight: 900;
  letter-spacing: -0.02em;
  color: var(--color-ink);
}

/* ==========================================================================
   UTILITIES
   ========================================================================== */

.teba-section         { padding: var(--space-2xl) 0; }
.teba-section--dark   { background: var(--color-ink); color: var(--color-paper); }
.teba-section--paper  { background: var(--color-paper); }
.teba-section--paper2 { background: var(--color-paper-2); }
.teba-section--black  { background: #000; color: #fff; }

.teba-divider {
  height: 1px;
  background: var(--color-line);
  border: none;
  margin: 0;
}

.teba-divider--dark { background: rgba(255,255,255,0.15); }

/* Tabular numbers */
.teba-tabnum { font-variant-numeric: tabular-nums; }

/* Screen reader only */
.teba-sr-only {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px,1px,1px,1px);
  white-space: nowrap;
}

/* ==========================================================================
   RESPONSIVE — superseded by Hub Design System block at end of file.
   Breakpoints now: 1100px, 900px, 760px (design pivot), 430px.
   ========================================================================== */

/* ==========================================================================
   GOOGLE FONTS IMPORT
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Archivo+Black&family=Archivo:wght@400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;700&family=Inter:wght@400;500;600;700&family=Lora:ital,wght@0,400;0,500;1,400&display=swap');

/* ==========================================================================
   FOOTER — nav lists & legal bar
   (Design tokens already in :root above)
   ========================================================================== */

.teba-footer__links {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.teba-footer__links a {
    font-family: var(--font-ui);
    font-size: 14px;
    color: rgba(255, 255, 255, 0.87);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.teba-footer__links a:hover {
    color: var(--color-accent);
}

/* Legal links row */
.teba-footer__legal-links {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 0;
    align-items: center;
}

.teba-footer__legal-links li + li::before {
    content: '·';
    margin: 0 10px;
    opacity: 0.3;
}

.teba-footer__legal-links a {
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.5);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.teba-footer__legal-links a:hover {
    color: #fff;
}

/* Newsletter input focus — handled inline but also scoped here */
#teba-newsletter-email:focus {
    outline: none;
    border-color: var(--color-accent) !important;
}

/* Newsletter success message */
#teba-newsletter-msg.teba-msg--error {
    color: var(--color-bad);
}

/* ==========================================================================
   FOOTER RESPONSIVE
   ========================================================================== */

@media (max-width: 1100px) {
    .teba-footer > div:first-child {
        grid-template-columns: 1fr 1fr 1fr;
        gap: 28px;
    }
    /* Brand col spans full width on mid breakpoint */
    .teba-footer > div:first-child > div:first-child {
        grid-column: 1 / -1;
    }
    /* Newsletter moves below nav cols */
    .teba-footer > div:first-child > div:last-child {
        grid-column: 1 / -1;
    }
}

@media (max-width: 768px) {
    .teba-footer > div {
        padding-left: var(--container-pad-sm) !important;
        padding-right: var(--container-pad-sm) !important;
        grid-template-columns: 1fr 1fr !important;
    }
    .teba-footer > div:first-child > div:first-child {
        grid-column: 1 / -1;
    }
    .teba-footer > div:last-child {
        flex-direction: column;
        gap: 12px;
        align-items: flex-start;
    }
    .teba-footer__legal-links {
        flex-wrap: wrap;
    }
}

@media (max-width: 480px) {
    .teba-footer > div:first-child {
        grid-template-columns: 1fr !important;
    }
}

/* ==========================================================================
   MATCH PAGE — single-sp_event.php
   ========================================================================== */

/* Tab bar sticky offset accounts for WP admin bar */
body.admin-bar .teba-match-tabs {
    top: 78px;
}

/* Article body (recap tab) */
.teba-article-body {
    font-family: var(--font-serif);
    font-size: 1.0625rem;
    line-height: 1.7;
    color: var(--color-ink);
}

.teba-article-body p { margin: 0 0 1.1em; }

.teba-article-body h2 {
    font-family: var(--font-display);
    font-weight: 900;
    font-size: 1.875rem;
    letter-spacing: -.02em;
    text-transform: uppercase;
    margin: 2.25rem 0 .875rem;
}

.teba-article-body h3 {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 1.375rem;
    text-transform: uppercase;
    margin: 1.75rem 0 .625rem;
}

.teba-article-body blockquote {
    margin: 1.75rem 0;
    border-left: 4px solid var(--color-accent);
    padding-left: 1.125rem;
}

.teba-article-body blockquote p {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 1.5rem;
    line-height: 1.2;
    letter-spacing: -.015em;
}

/* Compare bar (team stats tab) */
.teba-compare-bar {
    height: 6px;
    display: flex;
}

/* PBP tab — play type colour hints */
.teba-pbp-made  { color: var(--color-good); }
.teba-pbp-miss  { color: var(--color-mute); }
.teba-pbp-foul  { color: var(--color-warn); }
.teba-pbp-to    { color: var(--color-bad);  }

/* Box score overflow on smaller screens */
@media (max-width: 900px) {
    .teba-box-table { font-size: 12px; }
    .teba-box-table th,
    .teba-box-table td { padding: 10px 6px; }
}

@media (max-width: 768px) {
    /* Hero scoreboard stacks vertically */
    .teba-match-hero-grid {
        grid-template-columns: 1fr !important;
    }
    /* Tab bar scrolls horizontally */
    .teba-tab-bar {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .teba-tab-bar::-webkit-scrollbar { display: none; }
    /* Overview grid */
    .teba-match-overview-grid {
        grid-template-columns: 1fr !important;
    }
    /* Stats grid */
    .teba-match-stats-grid {
        grid-template-columns: 1fr !important;
    }
}

/* ==========================================================================
   ARTICLE / SINGLE.PHP
   ========================================================================== */

/* Drop cap — first letter of first paragraph */
.teba-drop-cap {
    float: left;
    font-family: var(--font-display);
    font-weight: 900;
    font-size: 5.5rem;
    line-height: 0.8;
    padding-right: 14px;
    padding-top: 6px;
    color: var(--color-accent);
    text-transform: uppercase;
}

/* Article body — all editorial content inside max-720px wrapper */
.teba-article-body p,
[itemprop="articleBody"] p {
    font-family: var(--font-serif);
    font-size: 1.0625rem;
    line-height: 1.75;
    color: var(--color-ink);
    margin: 0 0 1.25em;
}

[itemprop="articleBody"] h2 {
    font-family: var(--font-display);
    font-weight: 900;
    font-size: 1.875rem;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    color: var(--color-ink);
    margin: 2.5rem 0 0.875rem;
    line-height: 1;
}

[itemprop="articleBody"] h3 {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 1.375rem;
    text-transform: uppercase;
    letter-spacing: -0.01em;
    color: var(--color-ink);
    margin: 2rem 0 0.625rem;
    line-height: 1.1;
}

[itemprop="articleBody"] blockquote {
    margin: 2rem 0;
    border-left: 4px solid var(--color-accent);
    padding: 0 0 0 1.25rem;
}

[itemprop="articleBody"] blockquote p {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 1.5rem;
    line-height: 1.2;
    letter-spacing: -0.015em;
    color: var(--color-ink);
    margin-bottom: 0.5em;
}

[itemprop="articleBody"] blockquote footer,
[itemprop="articleBody"] blockquote cite {
    font-family: var(--font-mono);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--color-mute);
    font-style: normal;
}

[itemprop="articleBody"] ul,
[itemprop="articleBody"] ol {
    font-family: var(--font-ui);
    font-size: 1rem;
    line-height: 1.65;
    color: var(--color-ink);
    padding-left: 1.5rem;
    margin: 0 0 1.25em;
}

[itemprop="articleBody"] li {
    margin-bottom: 0.375em;
}

[itemprop="articleBody"] strong {
    font-weight: 700;
    color: var(--color-ink);
}

[itemprop="articleBody"] em {
    font-style: italic;
}

[itemprop="articleBody"] a {
    color: var(--color-accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

[itemprop="articleBody"] a:hover {
    text-decoration-thickness: 2px;
}

[itemprop="articleBody"] hr {
    border: none;
    border-top: 1px solid var(--color-line);
    margin: 2.5rem 0;
}

[itemprop="articleBody"] figure {
    margin: 2rem 0;
}

[itemprop="articleBody"] figure img {
    width: 100%;
    height: auto;
    display: block;
}

[itemprop="articleBody"] figcaption {
    margin-top: 8px;
    font-family: var(--font-mono);
    font-size: 0.6875rem;
    color: var(--color-mute);
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

/* Wordpress-generated image alignment classes */
[itemprop="articleBody"] .alignleft  { float: left;  margin: 0 1.5rem 1rem 0; }
[itemprop="articleBody"] .alignright { float: right; margin: 0 0 1rem 1.5rem; }
[itemprop="articleBody"] .aligncenter { display: block; margin: 0 auto 1rem; }
[itemprop="articleBody"] .wp-caption { max-width: 100%; }

/* Gutenberg block styles */
[itemprop="articleBody"] .wp-block-pullquote {
    border-top: 4px solid var(--color-accent);
    border-bottom: 4px solid var(--color-accent);
    padding: 1.5rem 0;
    margin: 2.5rem 0;
    text-align: center;
}

[itemprop="articleBody"] .wp-block-pullquote p {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 1.625rem;
    line-height: 1.2;
    letter-spacing: -0.015em;
    text-align: center;
    color: var(--color-ink);
}

[itemprop="articleBody"] .wp-block-pullquote cite {
    font-family: var(--font-mono);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--color-mute);
}

/* Article responsive */
@media (max-width: 768px) {
    .teba-drop-cap {
        font-size: 4rem;
        padding-right: 10px;
    }
    [itemprop="articleBody"] blockquote p {
        font-size: 1.25rem;
    }
    [itemprop="articleBody"] h2 { font-size: 1.5rem; }
}

/* ==========================================================================
   WPBakery integration
   ========================================================================== */
.teba-builder-page {
  background: var(--color-paper);
  min-height: 60vh;
}

.teba-builder-page > .wpb-content-wrapper,
.teba-builder-page > .vc_row,
.teba-builder-page > .wpb_row,
.teba-builder-page > .vc_section {
  margin-left: 0;
  margin-right: 0;
}

.teba-builder-page .vc_row[data-vc-full-width] {
  overflow: visible;
}

.teba-builder-page .teba-section-head {
  margin-bottom: 18px;
}

.teba-builder-live-score {
  background: var(--color-ink);
  color: #fff;
  padding: clamp(24px, 4vw, 48px);
}

/* ==========================================================================
   v1.0.5 — DESIGN SYSTEM UPDATES from TEBA League Hub design file
   Changes:
   1. Real team logos — img-based marks where logo asset exists
   2. Team conference badges (East / West)
   3. Conference toggle on standings sidebar + full standings page
   4. Team logo strip section on homepage
   5. Sponsor section with styled logo cards
   6. Player game log in Overview tab (above story/vitals)
   7. Quarter score timeline in match hero
   8. Mini-standings conference toggle on homepage sidebar
   ========================================================================== */

/* Team logo mark — used when team has a real logo asset */
.teba-mark-logo {
    display: inline-grid;
    place-items: center;
    background: transparent;
    flex-shrink: 0;
}
.teba-mark-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

/* Conference badge */
.teba-conf-badge {
    display: inline-block;
    padding: 2px 7px;
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    border-radius: 0;
}
.teba-conf-badge--east {
    background: var(--color-navy);
    color: #fff;
}
.teba-conf-badge--west {
    background: var(--color-accent);
    color: #fff;
}

/* Conference toggle (All / East / West) */
.teba-conf-toggle {
    display: flex;
    border: 1px solid var(--color-ink);
    overflow: hidden;
}
.teba-conf-toggle__btn {
    flex: 1;
    padding: 8px 0;
    font-family: var(--font-mono);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    background: transparent;
    color: var(--color-mute);
    border: none;
    cursor: pointer;
    border-right: 1px solid var(--color-ink);
    transition: background .12s, color .12s;
}
.teba-conf-toggle__btn:last-child { border-right: none; }
.teba-conf-toggle__btn--active {
    background: var(--color-ink);
    color: var(--color-paper);
}
.teba-conf-toggle__btn:not(.teba-conf-toggle__btn--active):hover {
    background: var(--color-paper-2);
    color: var(--color-ink);
}

/* Team logo strip */
.teba-team-strip {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 0;
    background: var(--color-card);
    border: 1px solid var(--color-line);
    padding: 22px 18px;
}
.teba-team-strip__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 8px 4px;
    background: none;
    border: none;
    cursor: pointer;
    text-align: center;
    text-decoration: none;
    color: inherit;
    transition: transform .14s;
}
.teba-team-strip__item:hover {
    transform: translateY(-2px);
}
.teba-team-strip__logo {
    width: 64px;
    height: 64px;
    object-fit: contain;
    display: block;
}
.teba-team-strip__name {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 12.5px;
    text-transform: uppercase;
    letter-spacing: -.005em;
    color: var(--color-ink);
    line-height: 1.15;
}
.teba-team-strip__conf {
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .16em;
    color: var(--color-mute);
    text-transform: uppercase;
    margin-top: 2px;
}

/* Quarter timeline strip */
.teba-quarter-strip {
    display: flex;
    gap: 0;
    border-top: 1px solid rgba(255,255,255,.2);
    margin-top: 28px;
    padding-top: 0;
}
.teba-quarter-strip__cell {
    flex: 1;
    padding: 10px 12px;
    border-right: 1px solid rgba(255,255,255,.12);
}
.teba-quarter-strip__cell:last-child { border-right: none; }
.teba-quarter-strip__cell--live { background: rgba(255,255,255,.06); }
.teba-quarter-strip__label {
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .16em;
    color: rgba(255,255,255,.6);
}
.teba-quarter-strip__label--live { color: var(--color-accent); }
.teba-quarter-strip__scores {
    display: flex;
    justify-content: space-between;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 18px;
    font-variant-numeric: tabular-nums;
    margin-top: 6px;
}
.teba-quarter-strip__score { color: rgba(255,255,255,.3); }
.teba-quarter-strip__score--played { color: #fff; }

/* Sponsor logo strip */
.teba-sponsor-strip {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 12px;
    padding: 36px var(--container-pad);
    background: var(--color-paper-2);
    border-top: 1px solid var(--color-line);
}
.teba-sponsor-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 20px 14px;
    border: 1px solid var(--color-line);
    text-decoration: none;
    color: inherit;
    transition: border-color .12s, background .12s;
    min-height: 80px;
}
.teba-sponsor-card:hover {
    border-color: var(--color-accent);
    background: var(--color-card);
    color: inherit;
}
.teba-sponsor-card img {
    max-height: 36px;
    max-width: 100%;
    object-fit: contain;
    display: block;
}
.teba-sponsor-card__name {
    font-family: var(--font-display);
    font-weight: 900;
    font-size: 15px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--color-mute);
}
.teba-sponsor-card__role {
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--color-mute);
}

/* Player game log table (used in overview tab) */
.teba-gamelog-table {
    width: 100%;
    border-collapse: collapse;
    overflow-x: auto;
    display: block;
    white-space: nowrap;
}
.teba-gamelog-table th {
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--color-mute);
    padding: 10px 8px;
    text-align: center;
    border-bottom: 2px solid var(--color-ink);
    background: var(--color-paper);
    position: sticky;
    top: 0;
}
.teba-gamelog-table th:first-child,
.teba-gamelog-table th:nth-child(2) { text-align: left; }
.teba-gamelog-table td {
    padding: 10px 8px;
    text-align: center;
    font-family: var(--font-ui);
    font-variant-numeric: tabular-nums;
    font-size: 13px;
    border-bottom: 1px solid var(--color-line);
}
.teba-gamelog-table td:first-child,
.teba-gamelog-table td:nth-child(2) { text-align: left; }
.teba-gamelog-table tbody tr:hover td { background: rgba(26,26,26,.04); }

/* W/L result badge in game log */
.teba-result-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--font-mono);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .1em;
}
.teba-result-badge--w { color: var(--color-good); }
.teba-result-badge--l { color: var(--color-bad); }

/* Responsive adjustments */
@media (max-width: 1024px) {
    .teba-team-strip { grid-template-columns: repeat(3, 1fr); }
    .teba-sponsor-strip { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
    .teba-team-strip { grid-template-columns: repeat(2, 1fr); }
    .teba-sponsor-strip { grid-template-columns: repeat(2, 1fr); }
    .teba-conf-toggle { width: 100%; }
}


/* ==========================================================================
   v1.0.8 — WPBakery homepage visual editing fixes
   Keeps editable homepage sections contained so they match the original theme.
   ========================================================================== */
.teba-builder-page {
    background: var(--color-paper);
    overflow-x: hidden;
}
.teba-builder-page .vc_row,
.teba-builder-page .wpb_row {
    width: 100%;
    max-width: var(--container-max);
    margin-left: auto !important;
    margin-right: auto !important;
    margin-bottom: 0 !important;
    padding-left: var(--container-pad);
    padding-right: var(--container-pad);
    box-sizing: border-box;
}
.teba-builder-page .wpb_column > .vc_column-inner {
    box-sizing: border-box;
    padding-left: 12px;
    padding-right: 12px;
}
.teba-builder-page .vc_row > .wpb_column:first-child > .vc_column-inner { padding-left: 0; }
.teba-builder-page .vc_row > .wpb_column:last-child > .vc_column-inner { padding-right: 0; }
.teba-builder-page .wpb_content_element { margin-bottom: 0; }
.teba-builder-page .teba-vc-block { margin: 0; }
.teba-wpb-section-dark,
.teba-wpb-section-scoreboard,
.teba-wpb-section-paper {
    clip-path: inset(0 -100vmax);
}
.teba-wpb-section-dark {
    color: var(--color-paper);
    background: var(--color-ink);
    box-shadow: 0 0 0 100vmax var(--color-ink);
}
.teba-wpb-section-scoreboard {
    color: var(--color-paper);
    background: #111217;
    box-shadow: 0 0 0 100vmax #111217;
}
.teba-wpb-section-paper {
    background: var(--color-paper);
    box-shadow: 0 0 0 100vmax var(--color-paper);
}
.teba-wpb-pad-lg { padding-top: 56px; padding-bottom: 56px; }
.teba-wpb-pad-md { padding-top: 36px; padding-bottom: 36px; }
.teba-wpb-pad-sm { padding-top: 24px; padding-bottom: 24px; }
.teba-builder-page .teba-builder-live-score {
    padding: clamp(28px, 4vw, 48px) 0;
    background: transparent !important;
}
@media (max-width: 900px) {
    .teba-builder-page .vc_row,
    .teba-builder-page .wpb_row {
        padding-left: var(--container-pad-sm);
        padding-right: var(--container-pad-sm);
    }
    .teba-builder-page .vc_row > .wpb_column > .vc_column-inner {
        padding-left: 0;
        padding-right: 0;
    }
    .teba-builder-page .teba-grid-2,
    .teba-builder-page .teba-vc-block[style*="repeat(2"],
    .teba-builder-page .teba-vc-block[style*="repeat(3"] {
        grid-template-columns: 1fr !important;
    }
}

/* ==========================================================================
   v1.0.9 — WPBakery homepage section completions
   Extends v1.0.8's full-bleed box-shadow approach with section-specific
   padding, column gap rules, dark section text/heading overrides, and
   the paper-2 / accent section variants.
   ========================================================================== */

/* ── Additional background sections ──────────────────────────────────────── */

.teba-wpb-section-paper-2 {
    background: var(--color-paper-2);
    box-shadow: 0 0 0 100vmax var(--color-paper-2);
    clip-path: inset(0 -100vmax);
    border-top: 1px solid var(--color-line);
}

.teba-wpb-section-accent {
    background: var(--color-accent);
    color: #fff;
    box-shadow: 0 0 0 100vmax var(--color-accent);
    clip-path: inset(0 -100vmax);
}

/* ── Section-specific vertical padding ───────────────────────────────────── */

/* Hero: tight top, generous bottom — score strip sits flush below */
.teba-wpb-home-hero {
    padding-top:    40px;
    padding-bottom: 48px;
}

/* Scoreboard strip */
.teba-wpb-home-scoreboard {
    padding-top:    28px;
    padding-bottom: 32px;
}

/* Team strip: no bottom so news row starts right after */
.teba-wpb-home-teams {
    padding-top:    36px;
    padding-bottom: 0;
}

/* News + Standings: matches front-page.php 56px 36px */
.teba-wpb-home-news {
    padding-top:    56px;
    padding-bottom: 36px;
}

/* Leaders + Tickets bottom row */
.teba-wpb-home-bottom {
    padding-top:    48px;
    padding-bottom: 48px;
}

/* ── Column gaps — match front-page.php grid spacing ────────────────────── */
/* News row 2/3 + 1/3 split: 48px gutter */
.teba-wpb-home-news .vc_col-sm-8 > .vc_column-inner {
    padding-right: 24px !important;
}
.teba-wpb-home-news .vc_col-sm-4 > .vc_column-inner {
    padding-left: 24px !important;
    border-left: 1px solid var(--color-line) !important;
}

/* Bottom row 1/2 + 1/2 split */
.teba-wpb-home-bottom .vc_col-sm-6:first-child > .vc_column-inner {
    padding-right: 24px !important;
}
.teba-wpb-home-bottom .vc_col-sm-6:last-child > .vc_column-inner {
    padding-left: 24px !important;
}

/* ── Section heading inside dark builder rows ────────────────────────────── */
.teba-builder-page .teba-section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    padding-bottom: 14px;
    margin-bottom: 20px;
    border-bottom: 1px solid var(--color-line);
}
.teba-wpb-section-dark .teba-section-head,
.teba-wpb-section-scoreboard .teba-section-head {
    border-bottom-color: rgba(255,255,255,.18);
}
.teba-builder-page .teba-section-head h2 {
    margin: 0;
    font-family: var(--font-display);
    font-weight: 900;
    font-size: 2.375rem;
    line-height: 0.95;
    letter-spacing: -.025em;
    text-transform: uppercase;
    color: var(--color-ink);
}
.teba-wpb-section-dark .teba-section-head h2,
.teba-wpb-section-scoreboard .teba-section-head h2 {
    color: var(--color-paper);
}

/* ── Kicker colour overrides in dark sections ────────────────────────────── */
.teba-wpb-section-dark .teba-kicker,
.teba-wpb-section-scoreboard .teba-kicker {
    color: var(--color-paper);
}
.teba-wpb-section-dark .teba-kicker::before,
.teba-wpb-section-scoreboard .teba-kicker::before {
    background: var(--color-accent);
}

/* ── Score cards inside dark rows ───────────────────────────────────────── */
.teba-wpb-section-scoreboard .teba-score-card,
.teba-wpb-section-dark .teba-score-card {
    background: rgba(21,21,24,.5);
    border-color: rgba(255,255,255,.1);
}
.teba-wpb-section-scoreboard .teba-score-card__header,
.teba-wpb-section-dark .teba-score-card__header {
    border-bottom-color: rgba(255,255,255,.08);
}
.teba-wpb-section-scoreboard .teba-score-card__team-name,
.teba-wpb-section-dark .teba-score-card__team-name,
.teba-wpb-section-scoreboard .teba-score-card__score,
.teba-wpb-section-dark .teba-score-card__score {
    color: var(--color-paper);
}
.teba-wpb-section-scoreboard .teba-score-card__footer,
.teba-wpb-section-dark .teba-score-card__footer {
    border-top-color: rgba(255,255,255,.08);
}
.teba-wpb-section-scoreboard .teba-score-card__footer-action,
.teba-wpb-section-dark .teba-score-card__footer-action {
    color: rgba(255,255,255,.5);
}

/* ── Ticket promo: strip double padding when inside builder column ────────── */
.teba-builder-page .teba-vc-block.teba-wpb-tickets-inner {
    padding-left: 0;
    padding-right: 0;
}
.teba-builder-page .teba-vc-block.teba-wpb-tickets-inner > h2,
.teba-builder-page .teba-vc-block.teba-wpb-tickets-inner .teba-section-head {
    color: var(--color-ink);
}

/* ── Responsive: mobile column stacking ─────────────────────────────────── */
@media (max-width: 768px) {
    .teba-wpb-home-news .vc_col-sm-8 > .vc_column-inner,
    .teba-wpb-home-news .vc_col-sm-4 > .vc_column-inner {
        padding-left:  0 !important;
        padding-right: 0 !important;
        border-left: none !important;
    }
    .teba-wpb-home-news .vc_col-sm-4 > .vc_column-inner {
        padding-top: 36px !important;
        border-top: 1px solid var(--color-line);
    }
    .teba-wpb-home-bottom .vc_col-sm-6 > .vc_column-inner {
        padding-left:  0 !important;
        padding-right: 0 !important;
    }
    .teba-wpb-home-bottom .vc_col-sm-6:last-child > .vc_column-inner {
        padding-top: 36px !important;
    }
}

/* ==========================================================================
   TEBA SCOREBOARD STRIP — [teba_scoreboard]
   v1.0.11
   ========================================================================== */

/* ── Block wrapper ──────────────────────────────────────────────────────── */
.teba-scoreboard-block {
    container-type: inline-size;
}

/* ── Section head ───────────────────────────────────────────────────────── */
.teba-scoreboard-head {
    margin-bottom: 20px;
}
.teba-scoreboard-head h2 {
    margin: 6px 0 0;
    font-family: var(--font-display);
    font-weight: 900;
    font-size: clamp( 1.75rem, 3vw, 2.5rem );
    line-height: 0.95;
    letter-spacing: -0.025em;
    text-transform: uppercase;
    color: var(--color-ink);
}

/* Inside dark WPBakery sections */
.teba-wpb-section-dark .teba-scoreboard-head h2,
.teba-wpb-section-scoreboard .teba-scoreboard-head h2 {
    color: var(--color-paper);
}

/* ── Strip — horizontal scrollable row of cards ─────────────────────────── */
.teba-scoreboard-strip {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 8px;           /* room for scrollbar on some browsers */
}

/* Hide scrollbar visually but keep scroll functional */
.teba-scoreboard-strip::-webkit-scrollbar { height: 4px; }
.teba-scoreboard-strip::-webkit-scrollbar-track { background: transparent; }
.teba-scoreboard-strip::-webkit-scrollbar-thumb {
    background: var(--color-line-2, rgba(26,26,26,.15));
    border-radius: 2px;
}

/* On wider viewports, let cards wrap into a grid */
@media (min-width: 900px) {
    .teba-scoreboard-strip {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
        overflow-x: visible;
        scroll-snap-type: none;
        padding-bottom: 0;
    }
}

/* ── Score card ─────────────────────────────────────────────────────────── */
.teba-score-card {
    flex: 0 0 180px;               /* fixed width in scroll mode */
    min-width: 0;
    background: var(--color-card, #faf7ee);
    border: 1px solid var(--color-line, rgba(26,26,26,.1));
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
    transition: background 0.12s ease, border-color 0.12s ease, transform 0.12s ease;
    scroll-snap-align: start;
    position: relative;
    overflow: hidden;
}
.teba-score-card:hover {
    background: var(--color-paper-2, #eae6d9);
    border-color: var(--color-accent, #d62246);
    transform: translateY(-2px);
}
a.teba-score-card:focus-visible {
    outline: 2px solid var(--color-accent, #d62246);
    outline-offset: 2px;
}

/* Live card gets a pulsing left border accent */
.teba-score-card--live {
    border-left: 3px solid var(--color-accent, #d62246);
}

/* ── Status badge ───────────────────────────────────────────────────────── */
.teba-score-card__status {
    padding: 7px 12px 0;
    font-family: var(--font-mono, 'JetBrains Mono', monospace);
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    gap: 5px;
}
.teba-score-card__status--final     { color: var(--color-mute, #777268); }
.teba-score-card__status--live      { color: var(--color-accent, #d62246); }
.teba-score-card__status--upcoming  { color: var(--color-good, #1f8a5b); }
.teba-score-card__status--scheduled { color: var(--color-mute, #777268); }

/* ── Meta line (date · time · venue) ────────────────────────────────────── */
.teba-score-card__meta {
    padding: 3px 12px 8px;
    font-family: var(--font-mono, 'JetBrains Mono', monospace);
    font-size: 10px;
    color: var(--color-mute, #777268);
    letter-spacing: 0.1em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    border-bottom: 1px solid var(--color-line, rgba(26,26,26,.1));
}

/* ── Team row ───────────────────────────────────────────────────────────── */
.teba-score-team {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-bottom: 1px solid var(--color-line, rgba(26,26,26,.07));
}
.teba-score-team:last-of-type {
    border-bottom: none;
    padding-bottom: 12px;
}
.teba-score-team--winner .teba-score-team__abbr {
    font-weight: 900;
    color: var(--color-ink, #0b0b0c);
}

/* ── Team identity (logo + abbr) ────────────────────────────────────────── */
.teba-score-team__identity {
    display: flex;
    align-items: center;
    gap: 6px;
    flex: 1;
    min-width: 0;
}

/* Logo */
.teba-score-team__logo {
    width: 28px;
    height: 28px;
    object-fit: contain;
    flex-shrink: 0;
    display: block;
}

/* Shield mark fallback */
.teba-score-team__mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    flex-shrink: 0;
    font-family: var(--font-display, 'Archivo Black', sans-serif);
    font-weight: 900;
    font-size: 9px;
    color: #fff;
    letter-spacing: -0.02em;
    clip-path: polygon(0 0, 100% 0, 100% 70%, 50% 100%, 0 70%);
}

/* Abbreviation */
.teba-score-team__abbr {
    font-family: var(--font-display, 'Archivo Black', sans-serif);
    font-weight: 700;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: -0.01em;
    color: var(--color-ink-2, #2a2a2a);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
    min-width: 0;
}

/* ── Score ──────────────────────────────────────────────────────────────── */
.teba-score-team__score {
    font-family: var(--font-display, 'Archivo Black', sans-serif);
    font-weight: 700;
    font-size: 1.375rem;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.03em;
    color: var(--color-mute, #777268);
    flex-shrink: 0;
    margin-left: auto;
}
.teba-score-team__score--winner {
    font-weight: 900;
    color: var(--color-ink, #0b0b0c);
}

/* VS indicator (upcoming, no scores) */
.teba-score-team__vs {
    font-family: var(--font-mono, 'JetBrains Mono', monospace);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: var(--color-mute, #777268);
    margin-left: auto;
}

/* Dash when no score available */
.teba-score-dash { color: var(--color-mute, #777268); font-weight: 400; }

/* ── Inside dark WPBakery rows ──────────────────────────────────────────── */
.teba-wpb-section-dark .teba-score-card,
.teba-wpb-section-scoreboard .teba-score-card {
    background: rgba(21, 21, 24, 0.6);
    border-color: rgba(255, 255, 255, 0.1);
    color: var(--color-paper, #f2efe6);
}
.teba-wpb-section-dark .teba-score-card:hover,
.teba-wpb-section-scoreboard .teba-score-card:hover {
    background: rgba(255, 255, 255, 0.06);
}
.teba-wpb-section-dark .teba-score-card__meta,
.teba-wpb-section-scoreboard .teba-score-card__meta {
    border-bottom-color: rgba(255, 255, 255, 0.08);
    color: rgba(255, 255, 255, 0.5);
}
.teba-wpb-section-dark .teba-score-team,
.teba-wpb-section-scoreboard .teba-score-team {
    border-bottom-color: rgba(255, 255, 255, 0.07);
}
.teba-wpb-section-dark .teba-score-team__abbr,
.teba-wpb-section-scoreboard .teba-score-team__abbr {
    color: rgba(255, 255, 255, 0.8);
}
.teba-wpb-section-dark .teba-score-team--winner .teba-score-team__abbr,
.teba-wpb-section-scoreboard .teba-score-team--winner .teba-score-team__abbr {
    color: #fff;
}
.teba-wpb-section-dark .teba-score-team__score,
.teba-wpb-section-scoreboard .teba-score-team__score {
    color: rgba(255, 255, 255, 0.45);
}
.teba-wpb-section-dark .teba-score-team__score--winner,
.teba-wpb-section-scoreboard .teba-score-team__score--winner {
    color: #fff;
}

/* ── Empty state ─────────────────────────────────────────────────────────── */
.teba-scoreboard-empty {
    padding: 32px 0;
    font-family: var(--font-mono, 'JetBrains Mono', monospace);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--color-mute, #777268);
    text-align: center;
}

/* ── Admin-only SportsPress notice ──────────────────────────────────────── */
.teba-scoreboard-notice {
    padding: 12px 16px;
    background: #fff3cd;
    border-left: 4px solid #ffc107;
    font-family: var(--font-ui, 'Inter', sans-serif);
    font-size: 13px;
    color: #555;
    margin: 16px 0;
}

/* ── Responsive ─────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
    .teba-scoreboard-strip {
        /* Already horizontal-scroll flex — ensure cards don't collapse */
        gap: 10px;
    }
    .teba-score-card {
        flex: 0 0 164px;
    }
    .teba-score-team__score {
        font-size: 1.25rem;
    }
}

@media (max-width: 480px) {
    .teba-score-card {
        flex: 0 0 148px;
    }
}

/* ==========================================================================
   TEBA FEATURED GAME HERO — [teba_featured_game]
   v1.0.12
   ========================================================================== */

/* ── Section wrapper ─────────────────────────────────────────────────────── */
.teba-featured-game-hero {
    position: relative;
    background: var(--color-ink, #0b0b0c);
    color: var(--color-paper, #f2efe6);
    min-height: 360px;
    display: flex;
    flex-direction: column;
}

/* Live state: left accent stripe */
.teba-featured-game-hero--live::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: var(--color-accent, #d62246);
    z-index: 2;
}

/* ── Background image overlay ────────────────────────────────────────────── */
.teba-featured-game-hero__overlay {
    position: relative;
    z-index: 1;
    flex: 1;
    /* Dark gradient overlay when background image is set */
    background: linear-gradient(
        105deg,
        rgba(11, 11, 12, 0.97) 0%,
        rgba(11, 11, 12, 0.88) 55%,
        rgba(11, 11, 12, 0.6) 100%
    );
    display: flex;
    align-items: center;
}

/* ── Content layout: copy left, card right ───────────────────────────────── */
.teba-featured-game-hero__content {
    width: 100%;
    max-width: var(--container-max, 1440px);
    margin: 0 auto;
    padding: 48px var(--container-pad, 56px);
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 48px;
    align-items: center;
}

/* ── Copy column ─────────────────────────────────────────────────────────── */
.teba-featured-game-hero__copy {
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-width: 480px;
}

.teba-featured-game-hero__title {
    margin: 0;
    font-family: var(--font-display, 'Archivo Black', sans-serif);
    font-weight: 900;
    font-size: clamp(2rem, 4vw, 3.75rem);
    line-height: 0.92;
    letter-spacing: -0.03em;
    text-transform: uppercase;
    color: var(--color-paper, #f2efe6);
}

.teba-featured-game-hero__subtitle {
    margin: 0;
    font-family: var(--font-ui, 'Inter', sans-serif);
    font-size: 16px;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.7);
    max-width: 400px;
}

/* ── Game card ───────────────────────────────────────────────────────────── */
.teba-featured-game-card {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    padding: 24px;
    min-width: 320px;
    max-width: 440px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* ── Status badge ────────────────────────────────────────────────────────── */
.teba-featured-game-card__status {
    font-family: var(--font-mono, 'JetBrains Mono', monospace);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    gap: 6px;
}
.teba-featured-game-card__status--live     { color: var(--color-accent, #d62246); }
.teba-featured-game-card__status--final    { color: rgba(255, 255, 255, 0.5); }
.teba-featured-game-card__status--upcoming { color: var(--color-good, #1f8a5b); }
.teba-featured-game-card__status--scheduled{ color: rgba(255, 255, 255, 0.4); }

.teba-featured-game-card__clock {
    font-family: var(--font-mono, 'JetBrains Mono', monospace);
    font-size: 10px;
    color: rgba(255, 255, 255, 0.6);
}

/* ── Teams area ──────────────────────────────────────────────────────────── */
.teba-featured-game-card__teams {
    display: flex;
    align-items: center;
    gap: 16px;
}

/* ── Individual team ─────────────────────────────────────────────────────── */
.teba-featured-team {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    flex: 1;
    text-align: center;
    min-width: 0;
}

/* Logo */
.teba-featured-team__logo {
    width: 72px;
    height: 72px;
    object-fit: contain;
    display: block;
    filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.4));
}

/* Shield mark fallback */
.teba-featured-team__mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 72px;
    flex-shrink: 0;
    font-family: var(--font-display, 'Archivo Black', sans-serif);
    font-weight: 900;
    font-size: 20px;
    color: #fff;
    letter-spacing: -0.02em;
    clip-path: polygon(0 0, 100% 0, 100% 70%, 50% 100%, 0 70%);
}

/* Abbreviation */
.teba-featured-team__abbr {
    font-family: var(--font-mono, 'JetBrains Mono', monospace);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.55);
}

/* Full name */
.teba-featured-team__name {
    font-family: var(--font-display, 'Archivo Black', sans-serif);
    font-weight: 800;
    font-size: clamp(0.875rem, 1.2vw, 1.0625rem);
    text-transform: uppercase;
    letter-spacing: -0.01em;
    color: var(--color-paper, #f2efe6);
    line-height: 1.15;
    word-break: break-word;
}
.teba-featured-team--winner .teba-featured-team__name {
    color: #fff;
}

/* Score */
.teba-featured-team__score {
    font-family: var(--font-display, 'Archivo Black', sans-serif);
    font-weight: 900;
    font-size: clamp(2.5rem, 5vw, 4rem);
    line-height: 1;
    letter-spacing: -0.05em;
    font-variant-numeric: tabular-nums;
    color: rgba(255, 255, 255, 0.4);
    margin-top: 4px;
}
.teba-featured-team--winner .teba-featured-team__score {
    color: #fff;
}

/* ── VS separator ────────────────────────────────────────────────────────── */
.teba-featured-game-card__versus {
    font-family: var(--font-display, 'Archivo Black', sans-serif);
    font-weight: 900;
    font-size: 13px;
    letter-spacing: 0.1em;
    color: rgba(255, 255, 255, 0.3);
    border: 1px solid rgba(255, 255, 255, 0.2);
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* ── Meta line (date · time · venue) ────────────────────────────────────── */
.teba-featured-game-card__meta {
    font-family: var(--font-mono, 'JetBrains Mono', monospace);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.5);
    padding-top: 14px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

/* ── Action buttons ──────────────────────────────────────────────────────── */
.teba-featured-game-card__actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.teba-button {
    display: inline-block;
    font-family: var(--font-mono, 'JetBrains Mono', monospace);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    padding: 11px 18px;
    text-decoration: none;
    transition: background 0.12s, color 0.12s, border-color 0.12s;
    white-space: nowrap;
    border: 1px solid transparent;
}
.teba-button--primary {
    background: var(--color-accent, #d62246);
    color: #fff;
    border-color: var(--color-accent, #d62246);
}
.teba-button--primary:hover {
    background: #b81d3b;
    border-color: #b81d3b;
    color: #fff;
}
.teba-button--secondary {
    background: transparent;
    color: rgba(255, 255, 255, 0.85);
    border-color: rgba(255, 255, 255, 0.35);
}
.teba-button--secondary:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.7);
    color: #fff;
}

/* ── Empty state ─────────────────────────────────────────────────────────── */
.teba-featured-game-empty {
    padding: 48px var(--container-pad, 56px);
    font-family: var(--font-mono, 'JetBrains Mono', monospace);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.4);
    text-align: center;
}

/* ── Screenreader only ───────────────────────────────────────────────────── */
.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;
}

/* ── Responsive ─────────────────────────────────────────────────────────── */

/* Tablet: stack copy above card */
@media (max-width: 900px) {
    .teba-featured-game-hero__content {
        grid-template-columns: 1fr;
        gap: 28px;
        padding: 36px var(--container-pad, 56px);
    }
    .teba-featured-game-hero__copy {
        max-width: none;
    }
    .teba-featured-game-card {
        min-width: 0;
        max-width: none;
        width: 100%;
    }
}

/* Mobile */
@media (max-width: 600px) {
    .teba-featured-game-hero__content {
        padding: 28px var(--container-pad-sm, 24px);
    }
    .teba-featured-game-hero__title {
        font-size: 2rem;
    }
    .teba-featured-game-card {
        padding: 18px;
    }
    .teba-featured-game-card__teams {
        gap: 10px;
    }
    .teba-featured-team__logo,
    .teba-featured-team__mark {
        width: 52px;
        height: 52px;
    }
    .teba-featured-team__score {
        font-size: 2.25rem;
    }
    .teba-featured-team__name {
        font-size: 0.8125rem;
    }
    .teba-button {
        flex: 1 1 100%;
        text-align: center;
        padding: 13px 14px;
    }
}

/* ==========================================================================
   SPGB MATCHES THIS WEEK — [spgb_matches_this_week]
   v1.0.14 — Generic match card grid.
   Preserves existing .teba-matches-week classes for backward compatibility.
   ========================================================================== */

/* ── Grid wrapper ────────────────────────────────────────────────────────── */
.teba-matches-week__grid,
.spgb-matches-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}

@media (min-width: 1024px) {
    .teba-matches-week__grid,
    .spgb-matches-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

@media (max-width: 600px) {
    .teba-matches-week__grid,
    .spgb-matches-grid {
        grid-template-columns: 1fr;
    }
}

/* ── Empty state ─────────────────────────────────────────────────────────── */
.teba-matches-week__empty {
    padding: 32px;
    text-align: center;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--color-mute);
    border: 1px solid var(--color-line);
}

/* ── Match card ──────────────────────────────────────────────────────────── */
.teba-match-card,
.spgb-match-card {
    background: var(--color-card);
    border: 1px solid var(--color-line);
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
    transition: background 0.12s, border-color 0.12s, transform 0.12s;
    position: relative;
    overflow: hidden;
}
a.teba-match-card:hover,
a.spgb-match-card:hover {
    background: var(--color-paper-2);
    border-color: var(--color-accent);
    transform: translateY(-2px);
}
a.teba-match-card:focus-visible,
a.spgb-match-card:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}

/* Live accent */
.teba-match-card--live {
    border-left: 3px solid var(--color-accent);
}

/* ── Top bar (date + status) ─────────────────────────────────────────────── */
.teba-match-card__top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 9px 14px;
    border-bottom: 1px solid var(--color-line);
    gap: 8px;
}

.teba-match-card__date {
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-mute);
    white-space: nowrap;
}

.teba-match-card__status {
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
}
.teba-match-card__status--live     { color: var(--color-accent); }
.teba-match-card__status--final    { color: var(--color-mute); }
.teba-match-card__status--upcoming { color: var(--color-good, #1f8a5b); }
.teba-match-card__status--scheduled{ color: var(--color-mute); }

/* ── Teams area ──────────────────────────────────────────────────────────── */
.teba-match-card__teams {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 12px 14px;
    flex: 1;
}

/* ── Individual team row ─────────────────────────────────────────────────── */
.teba-match-team {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 0;
}
.teba-match-team + .teba-match-team {
    border-top: 1px solid var(--color-line);
}

/* Logo */
.teba-match-team__logo {
    width: 32px;
    height: 32px;
    object-fit: contain;
    flex-shrink: 0;
    display: block;
}

/* Abbreviation badge fallback (no logo) */
.teba-match-team__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    flex-shrink: 0;
    font-family: var(--font-display);
    font-weight: 900;
    font-size: 9px;
    color: #fff;
    letter-spacing: -0.02em;
    clip-path: polygon(0 0, 100% 0, 100% 70%, 50% 100%, 0 70%);
}

/* Abbreviation text */
.teba-match-team__abbr {
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-mute);
    width: 28px;
    flex-shrink: 0;
}

/* Team name */
.teba-match-team__name {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: -0.01em;
    color: var(--color-ink);
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    line-height: 1.2;
}
.teba-match-team--winner .teba-match-team__name {
    font-weight: 900;
}

/* Score */
.teba-match-team__score {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 1.5rem;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.04em;
    color: var(--color-mute);
    margin-left: auto;
    flex-shrink: 0;
    min-width: 32px;
    text-align: right;
}
.teba-match-team__score--winner {
    font-weight: 900;
    color: var(--color-ink);
}

/* VS separator (when no scores) */
.teba-match-card__versus {
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.18em;
    color: var(--color-mute);
    text-align: center;
    padding: 4px 0;
}

/* ── Venue ───────────────────────────────────────────────────────────────── */
.teba-match-card__venue {
    padding: 0 14px 10px;
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--color-mute);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Action buttons ──────────────────────────────────────────────────────── */
.teba-match-card__actions {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    padding: 10px 14px 14px;
    border-top: 1px solid var(--color-line);
}

/* Generic button (spgb-btn) — does not override existing .teba-btn */
.spgb-btn {
    display: inline-block;
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    padding: 8px 12px;
    text-decoration: none;
    border: 1px solid transparent;
    transition: background 0.12s, border-color 0.12s, color 0.12s;
    white-space: nowrap;
    flex: 1;
    text-align: center;
}
.spgb-btn--outline {
    background: transparent;
    border-color: var(--color-ink);
    color: var(--color-ink);
}
.spgb-btn--outline:hover {
    background: var(--color-ink);
    color: var(--color-paper);
}
.spgb-btn--accent {
    background: var(--color-accent);
    border-color: var(--color-accent);
    color: #fff;
}
.spgb-btn--accent:hover {
    background: #b81d3b;
    border-color: #b81d3b;
}

/* ── Dark section context ────────────────────────────────────────────────── */
.teba-wpb-section-dark .teba-match-card,
.teba-wpb-section-scoreboard .teba-match-card {
    background: rgba(21, 21, 24, 0.5);
    border-color: rgba(255, 255, 255, 0.1);
    color: var(--color-paper);
}
.teba-wpb-section-dark .teba-match-card__top,
.teba-wpb-section-dark .teba-match-team + .teba-match-team,
.teba-wpb-section-dark .teba-match-card__actions {
    border-color: rgba(255, 255, 255, 0.08);
}
.teba-wpb-section-dark .teba-match-team__name,
.teba-wpb-section-dark .teba-match-team__score--winner {
    color: #fff;
}
.teba-wpb-section-dark .teba-match-team__abbr,
.teba-wpb-section-dark .teba-match-card__date,
.teba-wpb-section-dark .teba-match-team__score,
.teba-wpb-section-dark .teba-match-card__venue {
    color: rgba(255, 255, 255, 0.5);
}
.teba-wpb-section-dark .spgb-btn--outline {
    border-color: rgba(255, 255, 255, 0.4);
    color: rgba(255, 255, 255, 0.8);
}
.teba-wpb-section-dark .spgb-btn--outline:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.7);
    color: #fff;
}

/* ── Mobile adjustments ──────────────────────────────────────────────────── */
@media (max-width: 480px) {
    .teba-match-team__name {
        font-size: 12px;
    }
    .teba-match-team__score {
        font-size: 1.25rem;
    }
    .spgb-btn {
        font-size: 9px;
        padding: 7px 10px;
    }
}

/* ==========================================================================
   v1.0.15 — Match card overlay link fix (no nested anchors)
   The card uses an overlay <a> for the click target when link_to=event.
   Buttons remain as normal links on top via z-index.
   ========================================================================== */

.teba-match-card,
.spgb-match-card {
    position: relative; /* already set, but reinforce */
}

/* Invisible full-card overlay link — sits below buttons */
.teba-match-card__overlay-link {
    position: absolute;
    inset: 0;
    z-index: 0;
    display: block;
}

/* Buttons and interactive elements sit above the overlay */
.teba-match-card__top,
.teba-match-card__teams,
.teba-match-card__venue,
.teba-match-card__actions {
    position: relative;
    z-index: 1;
}

/* Card hover state driven by :has() where supported, graceful degradation */
.teba-match-card:has(.teba-match-card__overlay-link:hover),
.spgb-match-card:has(.teba-match-card__overlay-link:hover) {
    background: var(--color-paper-2);
    border-color: var(--color-accent);
    transform: translateY(-2px);
}

/* ==========================================================================
   SPGB TEAM STRIP — [spgb_team_strip] v1.0.16
   Generic classes mirror existing .teba-team-strip rules for portability.
   Existing .teba-team-strip CSS is preserved and still applies.
   ========================================================================== */

/* Grid — inherits .teba-team-strip layout; spgb- class enables column override */
.spgb-team-strip {
    display: grid;
    gap: 0;
    background: var(--color-card);
    border: 1px solid var(--color-line);
    padding: 22px 18px;
    /* grid-template-columns is set inline via shortcode columns attr */
}

/* Item */
.spgb-team-strip__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 8px 4px;
    text-align: center;
    text-decoration: none;
    color: inherit;
    transition: transform 0.14s;
}
a.spgb-team-strip__item:hover {
    transform: translateY(-2px);
}
a.spgb-team-strip__item:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}

/* Logo wrap — sized via inline style from shortcode */
.spgb-team-strip__logo-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* Logo image */
.spgb-team-strip__logo {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

/* Abbreviation badge fallback (no logo) */
.spgb-team-strip__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-weight: 900;
    color: #fff;
    letter-spacing: -0.02em;
    clip-path: polygon(0 0, 100% 0, 100% 70%, 50% 100%, 0 70%);
    /* width/height/font-size set inline by shortcode */
}

/* Empty state */
.teba-team-strip-block__empty {
    padding: 24px;
    text-align: center;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--color-mute);
}

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
    .spgb-team-strip { grid-template-columns: repeat(3, 1fr) !important; }
    .teba-team-strip { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
    .teba-team-card-grid { grid-template-columns: 1fr; }
    .spgb-team-strip { grid-template-columns: repeat(2, 1fr) !important; }
    .teba-team-strip { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================================
   SPGB STANDINGS — v1.0.19 controls/tabs
   ============================================================================ */
.spgb-standings__head {
    margin-bottom: 14px;
}
.spgb-standings__tabs {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));
    border: 1px solid var(--color-line, #d8d2c6);
    margin-bottom: 16px;
}
.spgb-standings__tab {
    appearance: none;
    border: 0;
    border-right: 1px solid var(--color-line, #d8d2c6);
    background: transparent;
    color: var(--color-ink, #050505);
    cursor: pointer;
    font-family: var(--font-mono, monospace);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.16em;
    line-height: 1;
    padding: 14px 12px;
    text-transform: uppercase;
}
.spgb-standings__tab:last-child {
    border-right: 0;
}
.spgb-standings__tab.is-active {
    background: var(--color-ink, #050505);
    color: var(--color-paper, #f4f1e8);
}
.spgb-standings__team {
    min-width: 180px;
}
.spgb-standings__logo,
.spgb-standings__badge {
    flex: 0 0 26px;
    width: 26px;
    height: 26px;
}
.spgb-standings__logo {
    object-fit: contain;
}
.spgb-standings__badge {
    align-items: center;
    background: var(--color-accent, #d62246);
    clip-path: polygon(0 0, 100% 0, 100% 70%, 50% 100%, 0 70%);
    color: #fff;
    display: inline-flex;
    font-family: var(--font-display, sans-serif);
    font-size: 9px;
    font-weight: 900;
    justify-content: center;
    letter-spacing: -0.02em;
}
@media (max-width: 640px) {
    .teba-team-card-grid { grid-template-columns: 1fr; }
    .spgb-standings__tabs {
        grid-template-columns: repeat(auto-fit, minmax(70px, 1fr));
    }
    .spgb-standings__tab {
        font-size: 10px;
        padding: 12px 8px;
    }
    .spgb-standings__table th,
    .spgb-standings__table td {
        white-space: nowrap;
    }
}

/* ===========================================================================
   v1.0.22 — Matches calendar source + broadcast strip
   =========================================================================== */
.teba-match-card__broadcast {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 14px;
    border-top: 1px solid var(--color-line);
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--color-mute);
    min-width: 0;
    position: relative;
    z-index: 1;
}
.teba-match-card__broadcast span {
    flex: 0 0 auto;
}
.teba-match-card__broadcast a,
.teba-match-card__broadcast strong {
    display: inline-block;
    min-width: 0;
    max-width: 100%;
    padding: 5px 8px;
    background: var(--color-accent);
    color: #fff;
    text-decoration: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.teba-match-card__broadcast a:hover {
    background: #b81d3b;
    color: #fff;
}
.teba-wpb-section-dark .teba-match-card__broadcast,
.teba-wpb-section-scoreboard .teba-match-card__broadcast {
    border-top-color: rgba(255, 255, 255, 0.08);
    color: rgba(255, 255, 255, 0.5);
}
.teba-wpb-section-dark .teba-match-card__broadcast a,
.teba-wpb-section-dark .teba-match-card__broadcast strong,
.teba-wpb-section-scoreboard .teba-match-card__broadcast a,
.teba-wpb-section-scoreboard .teba-match-card__broadcast strong {
    color: #fff;
}
.teba-match-card__top,
.teba-match-card__teams,
.teba-match-card__venue,
.teba-match-card__broadcast,
.teba-match-card__actions {
    position: relative;
    z-index: 1;
}
@media (max-width: 480px) {
    .teba-match-card__broadcast {
        align-items: flex-start;
        flex-direction: column;
        gap: 6px;
    }
    .teba-match-card__broadcast a,
    .teba-match-card__broadcast strong {
        max-width: 100%;
    }
}

/* ==========================================================================
   v1.0.24 — Bug-fix CSS additions
   ========================================================================== */

/* Team strip subtitle paragraph */
.spgb-team-strip__subtitle {
    margin: 4px 0 0;
    font-family: var(--font-ui);
    font-size: 14px;
    line-height: 1.5;
    color: var(--color-mute);
    max-width: 480px;
}

/* Team strip meta wrapper (name + abbr) */
.teba-team-strip__meta {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

/* Scoreboard hero — base layout (responsive base in CSS, overrides in inline wp_head block) */
.spgb-scoreboard-hero .spgb-hero__matchup {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 20px;
    align-items: center;
}
.spgb-scoreboard-hero .spgb-hero__team {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.spgb-scoreboard-hero .spgb-hero__team--away {
    text-align: right;
    align-items: flex-end;
}
.spgb-scoreboard-hero .spgb-hero__actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 24px;
}
@media (max-width: 640px) {
    .teba-team-card-grid { grid-template-columns: 1fr; }
    .spgb-scoreboard-hero .spgb-hero__matchup {
        grid-template-columns: 1fr !important;
        text-align: left;
    }
    .spgb-scoreboard-hero .spgb-hero__team--away {
        text-align: left;
        align-items: flex-start;
    }
    .spgb-scoreboard-hero .spgb-hero__actions {
        flex-direction: column;
    }
    .spgb-scoreboard-hero .spgb-hero__actions .teba-btn {
        text-align: center;
    }
}

/* v1.0.30 — Up Next SportsPress block */
.spgb-up-next {
  width: 100%;
}
.spgb-up-next__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  border-bottom: 1px solid rgba(0,0,0,.12);
  margin-bottom: 1rem;
  padding-bottom: .75rem;
}
.spgb-up-next__head h2 {
  margin: .15rem 0 0;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.spgb-up-next__button {
  border: 1px solid currentColor;
  color: inherit;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.5rem;
  padding: .65rem 1rem;
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: .7rem;
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
}
.spgb-up-next__list {
  display: grid;
  gap: .85rem;
}
.spgb-up-next__item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: .85rem;
  background: rgba(255,255,255,.68);
  border: 1px solid rgba(0,0,0,.09);
  color: inherit;
  padding: .75rem .85rem;
  text-decoration: none;
  transition: transform .18s ease, border-color .18s ease, background-color .18s ease;
}
.spgb-up-next__item:hover {
  transform: translateY(-1px);
  border-color: rgba(0,0,0,.18);
  background: rgba(255,255,255,.9);
}
.spgb-up-next__team {
  display: grid;
  grid-template-columns: auto minmax(0, auto);
  align-items: center;
  column-gap: .55rem;
  min-width: 0;
}
.spgb-up-next__team--away {
  justify-content: end;
  text-align: right;
}
.spgb-up-next__team--away .spgb-up-next__logo,
.spgb-up-next__team--away .spgb-up-next__badge {
  order: 3;
}
.spgb-up-next__logo {
  width: 34px;
  height: 34px;
  object-fit: contain;
}
.spgb-up-next__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  background: #d7194a;
  color: #fff;
  font-size: .65rem;
  font-weight: 900;
  letter-spacing: .05em;
}
.spgb-up-next__abbr {
  display: block;
  color: #d7194a;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.spgb-up-next__team small {
  display: block;
  color: rgba(0,0,0,.45);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .12em;
  line-height: 1.15;
  text-transform: uppercase;
}
.spgb-up-next__meta {
  min-width: 96px;
  text-align: center;
  text-transform: uppercase;
}
.spgb-up-next__meta span,
.spgb-up-next__meta em {
  display: block;
  color: rgba(0,0,0,.45);
  font-size: .7rem;
  font-style: normal;
  font-weight: 800;
  letter-spacing: .14em;
}
.spgb-up-next__meta strong {
  display: block;
  color: #111;
  font-size: 1.1rem;
  line-height: 1.2;
  margin: .15rem 0;
}
.spgb-up-next__empty {
  border: 1px solid rgba(0,0,0,.1);
  padding: 1rem;
  color: rgba(0,0,0,.55);
  font-weight: 700;
}
@media (max-width: 640px) {
    .teba-team-card-grid { grid-template-columns: 1fr; }
  .spgb-up-next__head {
    align-items: stretch;
    flex-direction: column;
  }
  .spgb-up-next__button {
    width: 100%;
  }
  .spgb-up-next__item {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .spgb-up-next__team,
  .spgb-up-next__team--away {
    justify-content: center;
    text-align: center;
  }
  .spgb-up-next__team--away .spgb-up-next__logo,
  .spgb-up-next__team--away .spgb-up-next__badge {
    order: 0;
  }
}

/* v1.0.30 — Up Next per-game ticket CTA */
.spgb-up-next__item--tickets {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0;
  padding: 0;
  overflow: hidden;
}
.spgb-up-next__details {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: .85rem;
  color: inherit;
  min-width: 0;
  padding: .75rem .85rem;
  text-decoration: none;
}
.spgb-up-next__details:hover {
  text-decoration: none;
}
.spgb-up-next__ticket {
  align-self: stretch;
  background: #d7194a;
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .2rem;
  min-width: 8.75rem;
  padding: .75rem .9rem;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
}
.spgb-up-next__ticket:hover,
.spgb-up-next__ticket:focus {
  background: #be123f;
  color: #fff;
  text-decoration: none;
}
.spgb-up-next__ticket strong {
  color: inherit;
  display: block;
  font-size: 1.05rem;
  font-weight: 900;
  letter-spacing: .08em;
  line-height: 1;
}
.spgb-up-next__ticket small {
  color: rgba(255,255,255,.85);
  display: block;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .08em;
  line-height: 1.1;
}
.spgb-up-next__ticket-icon {
  color: inherit;
  font-size: .9rem;
  line-height: 1;
}
.spgb-up-next__ticket--disabled {
  background: #777;
  cursor: not-allowed;
}
.spgb-up-next__ticket--disabled:hover,
.spgb-up-next__ticket--disabled:focus {
  background: #777;
}
@media (max-width: 760px) {
  .spgb-up-next__item--tickets {
    grid-template-columns: 1fr;
  }
  .spgb-up-next__details {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .spgb-up-next__ticket {
    min-width: 0;
    width: 100%;
  }
}
.spgb-up-next__item--no-ticket {
  grid-template-columns: 1fr;
}
.spgb-up-next__item--no-ticket .spgb-up-next__details {
  grid-column: 1 / -1;
}


/* v1.0.33 — Custom WooCommerce ticket product page */
.teba-ticket-page {
  background: var(--teba-offwhite, #f3f0e6);
  color: #0d0d0f;
  min-height: 70vh;
  padding: clamp(32px, 5vw, 72px) 0;
}

.teba-ticket-container {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
}

.teba-ticket-back {
  display: inline-block;
  margin-bottom: 22px;
  color: #68635b;
  font-family: var(--teba-mono, monospace);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  text-decoration: none;
}

.teba-ticket-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
  gap: clamp(28px, 5vw, 64px);
  align-items: start;
}

.teba-ticket-title {
  max-width: 760px;
  margin: 8px 0 22px;
  font-family: var(--teba-display, 'Archivo Black', sans-serif);
  font-size: clamp(30px, 4.5vw, 54px);
  line-height: .92;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.teba-ticket-event-card {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr) 92px;
  align-items: center;
  gap: 18px;
  padding: 22px 24px;
  margin-bottom: 34px;
  background: rgba(255,255,255,.48);
  border: 1px solid rgba(13,13,15,.08);
}

.teba-ticket-event-team img {
  width: 72px;
  height: 72px;
  object-fit: contain;
  display: block;
}

.teba-ticket-event-team--away img {
  margin-left: auto;
}

.teba-ticket-event-meta span,
.teba-ticket-event-meta small {
  display: block;
  color: var(--teba-red, #d61a46);
  font-family: var(--teba-mono, monospace);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.teba-ticket-event-meta strong {
  display: block;
  margin: 6px 0 2px;
  font-family: var(--teba-display, 'Archivo Black', sans-serif);
  font-size: clamp(16px, 2vw, 24px);
  text-transform: uppercase;
}

.teba-ticket-seat-list {
  display: grid;
  gap: 14px;
  margin-top: 16px;
}

.teba-ticket-seat {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  min-height: 76px;
  padding: 18px 22px;
  background: rgba(255,255,255,.42);
  border: 1px solid rgba(13,13,15,.08);
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease;
}

.teba-ticket-seat.is-selected {
  border-color: var(--teba-red, #d61a46);
  background: rgba(255,255,255,.65);
}

.teba-ticket-seat input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.teba-ticket-seat__radio {
  width: 18px;
  height: 18px;
  border-radius: 999px;
  border: 2px solid rgba(13,13,15,.45);
  display: inline-block;
  position: relative;
}

.teba-ticket-seat.is-selected .teba-ticket-seat__radio {
  border-color: var(--teba-red, #d61a46);
}

.teba-ticket-seat.is-selected .teba-ticket-seat__radio::after {
  content: '';
  position: absolute;
  inset: 3px;
  border-radius: inherit;
  background: var(--teba-red, #d61a46);
}

.teba-ticket-seat__copy strong,
.teba-ticket-seat__price {
  display: block;
  font-family: var(--teba-display, 'Archivo Black', sans-serif);
  font-size: clamp(16px, 1.8vw, 22px);
  text-transform: uppercase;
}

.teba-ticket-seat__copy small {
  color: #777168;
  font-family: var(--teba-mono, monospace);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.teba-ticket-summary {
  background: #08090b;
  color: #fff;
  padding: 28px;
  position: sticky;
  top: 110px;
}

.teba-ticket-summary__tier {
  color: var(--teba-red, #d61a46);
}

.teba-ticket-summary__row {
  display: block;
  margin: 4px 0 24px;
  color: #a7a7aa;
  font-family: var(--teba-mono, monospace);
  letter-spacing: .14em;
  text-transform: uppercase;
}

.teba-ticket-summary__line,
.teba-ticket-summary__total {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 14px 0;
  border-top: 1px solid rgba(255,255,255,.08);
  font-family: var(--teba-mono, monospace);
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.teba-ticket-summary__total strong {
  font-family: var(--teba-display, 'Archivo Black', sans-serif);
  font-size: 24px;
}

.teba-ticket-qty {
  display: inline-flex;
  align-items: center;
  border: 1px solid rgba(255,255,255,.13);
}

.teba-ticket-qty button,
.teba-ticket-qty input {
  width: 38px;
  height: 34px;
  border: 0;
  background: transparent;
  color: #fff;
  text-align: center;
}

.teba-ticket-qty button {
  cursor: pointer;
  font-weight: 700;
}

.teba-ticket-checkout,
.woocommerce .teba-ticket-checkout.button {
  width: 100%;
  margin-top: 20px;
  min-height: 48px;
  border: 0;
  background: var(--teba-red, #d61a46);
  color: #fff;
  font-family: var(--teba-mono, monospace);
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  cursor: pointer;
}

.teba-ticket-summary--mobile { display: none; }

.teba-ticket-notices .woocommerce-message,
.teba-ticket-notices .woocommerce-error,
.teba-ticket-notices .woocommerce-info {
  margin: 0 0 24px;
}

@media (max-width: 900px) {
  .teba-ticket-grid {
    grid-template-columns: 1fr;
  }
  .teba-ticket-summary--desktop { display: none; }
  .teba-ticket-summary--mobile {
    display: block;
    position: static;
    margin-top: 24px;
  }
}

@media (max-width: 600px) {
  .teba-ticket-container { width: min(100% - 24px, 1180px); }
  .teba-ticket-event-card {
    grid-template-columns: 64px 1fr 64px;
    padding: 18px;
  }
  .teba-ticket-event-team img {
    width: 54px;
    height: 54px;
  }
  .teba-ticket-seat {
    grid-template-columns: 24px 1fr;
  }
  .teba-ticket-seat__price {
    grid-column: 2;
  }
}

/* ======================================================================
   v1.0.33 Tickets Listing Page / WPBakery Block
   ====================================================================== */
.spgb-tickets-list {
    background: var(--teba-cream, #f3f0e8);
    color: var(--teba-black, #07080b);
    width: 100%;
}
.spgb-tickets-list__hero {
    background: #07080b;
    color: #fff;
    border-top: 4px solid var(--teba-red, #d91445);
    padding: clamp(36px, 7vw, 72px) clamp(24px, 7vw, 72px);
}
.spgb-tickets-list__hero h1 {
    color: #fff;
    font-family: var(--teba-display-font, inherit);
    font-size: clamp(36px, 6vw, 72px);
    line-height: .9;
    letter-spacing: .02em;
    margin: 0 0 14px;
    text-transform: uppercase;
}
.spgb-tickets-list__hero p {
    color: rgba(255,255,255,.78);
    font-size: 15px;
    line-height: 1.55;
    max-width: 520px;
    margin: 0;
}
.spgb-tickets-list__body {
    padding: clamp(28px, 4vw, 48px);
}
.spgb-tickets-list__head {
    align-items: flex-start;
    border-bottom: 1px solid rgba(0,0,0,.12);
    display: flex;
    gap: 24px;
    justify-content: space-between;
    margin-bottom: 0;
    padding-bottom: 18px;
}
.spgb-tickets-list__head h2 {
    font-family: var(--teba-display-font, inherit);
    font-size: clamp(32px, 4vw, 56px);
    letter-spacing: .03em;
    line-height: .95;
    margin: 0;
    text-transform: uppercase;
}
.spgb-tickets-list__filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}
.spgb-tickets-list__filters select {
    background: transparent;
    border: 1px solid rgba(0,0,0,.18);
    color: #111;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .18em;
    min-width: 120px;
    padding: 11px 28px 11px 13px;
    text-transform: uppercase;
}
.spgb-tickets-list__items {
    border-top: 0;
}
.spgb-tickets-list__item {
    align-items: center;
    border-bottom: 1px solid rgba(0,0,0,.1);
    display: grid;
    gap: 24px;
    grid-template-columns: 96px 160px minmax(220px, 1.35fr) minmax(180px, .9fr) 120px 86px;
    min-height: 112px;
    padding: 24px 8px;
}
.spgb-tickets-list__date strong {
    display: block;
    font-family: var(--teba-display-font, inherit);
    font-size: 28px;
    letter-spacing: .04em;
    line-height: 1;
    text-transform: uppercase;
}
.spgb-tickets-list__date span,
.spgb-tickets-list__matchup small,
.spgb-tickets-list__venue small,
.spgb-tickets-list__price span,
.spgb-tickets-list__availability {
    color: rgba(0,0,0,.52);
    display: block;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .18em;
    margin-top: 5px;
    text-transform: uppercase;
}
.spgb-tickets-list__logos {
    align-items: center;
    color: #111;
    display: flex;
    gap: 14px;
    text-decoration: none;
}
.spgb-tickets-list__logos img {
    height: 34px;
    object-fit: contain;
    width: 44px;
}
.spgb-tickets-list__logos span {
    align-items: center;
    background: var(--teba-red, #d91445);
    color: #fff;
    display: inline-flex;
    font-size: 11px;
    font-weight: 900;
    height: 30px;
    justify-content: center;
    min-width: 34px;
    padding: 0 6px;
}
.spgb-tickets-list__logos em {
    color: rgba(0,0,0,.45);
    font-size: 12px;
    font-style: normal;
    font-weight: 900;
    text-transform: uppercase;
}
.spgb-tickets-list__matchup a,
.spgb-tickets-list__venue strong {
    color: #07080b;
    display: block;
    font-family: var(--teba-display-font, inherit);
    font-size: 17px;
    font-weight: 900;
    letter-spacing: .04em;
    line-height: 1.2;
    text-decoration: none;
    text-transform: uppercase;
}
.spgb-tickets-list__matchup a:hover {
    color: var(--teba-red, #d91445);
}
.spgb-tickets-list__price strong {
    color: #07080b;
    display: block;
    font-family: var(--teba-display-font, inherit);
    font-size: 30px;
    font-weight: 900;
    letter-spacing: .02em;
    line-height: 1;
}
.spgb-tickets-list__availability {
    color: #15915d;
}
.spgb-tickets-list__availability--limited,
.spgb-tickets-list__availability---100-left,
.spgb-tickets-list__availability--100-left {
    color: var(--teba-red, #d91445);
}
.spgb-tickets-list__action {
    justify-self: end;
}
.spgb-tickets-list__action a,
.spgb-tickets-list__action span {
    align-items: center;
    background: var(--teba-red, #d91445);
    border: 0;
    color: #fff;
    display: inline-flex;
    font-size: 11px;
    font-weight: 900;
    justify-content: center;
    letter-spacing: .18em;
    min-height: 38px;
    min-width: 76px;
    padding: 12px 16px;
    text-decoration: none;
    text-transform: uppercase;
}
.spgb-tickets-list__action span {
    background: rgba(0,0,0,.18);
    color: rgba(0,0,0,.6);
}
.spgb-tickets-list__empty {
    border: 1px dashed rgba(0,0,0,.16);
    color: rgba(0,0,0,.55);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .14em;
    margin-top: 20px;
    padding: 28px;
    text-align: center;
    text-transform: uppercase;
}
.teba-tickets-list-page .spgb-tickets-list__body,
.teba-tickets-list-page .spgb-tickets-list__hero > div {
    margin-left: auto;
    margin-right: auto;
    max-width: 1280px;
}
@media (max-width: 1100px) {
    .spgb-tickets-list__item {
        grid-template-columns: 88px 130px minmax(220px, 1fr) 150px 110px 80px;
        gap: 16px;
    }
    .spgb-tickets-list__matchup a,
    .spgb-tickets-list__venue strong {
        font-size: 14px;
    }
}
@media (max-width: 820px) {
    .spgb-tickets-list__head {
        display: block;
    }
    .spgb-tickets-list__filters {
        justify-content: flex-start;
        margin-top: 16px;
    }
    .spgb-tickets-list__item {
        align-items: start;
        grid-template-columns: 78px 1fr auto;
        gap: 12px 16px;
        padding: 20px 0;
    }
    .spgb-tickets-list__logos {
        grid-column: 2 / 3;
        grid-row: 1;
    }
    .spgb-tickets-list__matchup {
        grid-column: 2 / 4;
    }
    .spgb-tickets-list__venue {
        grid-column: 2 / 4;
    }
    .spgb-tickets-list__price {
        grid-column: 2 / 3;
    }
    .spgb-tickets-list__action {
        align-self: end;
        grid-column: 3;
        grid-row: 4;
    }
}
@media (max-width: 520px) {
    .spgb-tickets-list__body {
        padding: 24px 18px;
    }
    .spgb-tickets-list__hero {
        padding: 36px 20px;
    }
    .spgb-tickets-list__item {
        grid-template-columns: 1fr;
    }
    .spgb-tickets-list__logos,
    .spgb-tickets-list__matchup,
    .spgb-tickets-list__venue,
    .spgb-tickets-list__price,
    .spgb-tickets-list__action {
        grid-column: 1;
        grid-row: auto;
        justify-self: stretch;
    }
    .spgb-tickets-list__action a,
    .spgb-tickets-list__action span {
        width: 100%;
    }
}


/* ======================================================================
   v1.0.36 Tickets Listing Heading Alignment Fix
   ====================================================================== */
.spgb-tickets-list.teba-vc-block {
    box-sizing: border-box;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    max-width: none;
    width: 100vw;
}
.spgb-tickets-list__hero {
    box-sizing: border-box;
    width: 100%;
}
.spgb-tickets-list__hero > div,
.spgb-tickets-list__body {
    box-sizing: border-box;
    margin-left: auto;
    margin-right: auto;
    max-width: 1280px;
    width: 100%;
}
.spgb-tickets-list__hero h1 {
    max-width: 760px;
}
.spgb-tickets-list__hero p {
    max-width: 560px;
}
.teba-tickets-list-page .spgb-tickets-list.teba-vc-block {
    margin-top: 0;
}
@media (max-width: 520px) {
    .spgb-tickets-list.teba-vc-block {
        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
        width: 100vw;
    }
}

/* ======================================================================
   v1.0.36 Tickets Page Layout Match Fix
   ====================================================================== */
.teba-tickets-list-page {
    background: var(--teba-cream, #f3f0e8);
}
.teba-tickets-list-page .spgb-tickets-list.teba-vc-block,
.spgb-tickets-list.teba-vc-block {
    margin-top: 0;
}
.spgb-tickets-list__hero {
    border-top: 4px solid var(--teba-red, #d91445);
    min-height: 0;
    padding: clamp(28px, 3.8vw, 46px) clamp(22px, 3.8vw, 38px) clamp(24px, 3.2vw, 38px);
}
.spgb-tickets-list__hero > div,
.spgb-tickets-list__body {
    max-width: 1180px;
}
.spgb-tickets-list__hero h1 {
    font-size: clamp(30px, 4.4vw, 54px);
    line-height: .92;
    margin-bottom: 10px;
    max-width: 720px;
}
.spgb-tickets-list__hero p {
    font-size: 13px;
    line-height: 1.45;
    max-width: 510px;
}
.spgb-tickets-list__body {
    padding: clamp(26px, 3.5vw, 44px) clamp(22px, 3.8vw, 38px) clamp(38px, 4vw, 56px);
}
.spgb-tickets-list__head {
    align-items: center;
    margin-bottom: 0;
    padding-bottom: 16px;
}
.spgb-tickets-list__filters {
    align-items: center;
}
.spgb-tickets-list__filters select {
    min-height: 42px;
    min-width: 142px;
}
.spgb-tickets-list__item {
    gap: 22px;
    grid-template-columns: 96px 150px minmax(230px, 1.28fr) minmax(170px, .8fr) 118px 78px;
    min-height: 92px;
    padding: 18px 8px;
}
.spgb-tickets-list__date strong {
    font-size: 25px;
}
.spgb-tickets-list__logos img {
    height: 30px;
    width: 40px;
}
.spgb-tickets-list__matchup a,
.spgb-tickets-list__venue strong {
    font-size: 14px;
    line-height: 1.15;
}
.spgb-tickets-list__price strong {
    font-size: 27px;
}
.spgb-tickets-list__action a,
.spgb-tickets-list__action span {
    min-height: 34px;
    min-width: 66px;
    padding: 10px 14px;
}

@media (max-width: 820px) {
    .spgb-tickets-list__hero {
        padding: 34px 22px 30px;
    }
    .spgb-tickets-list__head {
        align-items: flex-start;
    }
    .spgb-tickets-list__filters select {
        min-width: 130px;
    }
}

@media (max-width: 520px) {
    .spgb-tickets-list__hero h1 {
        font-size: 34px;
    }
    .spgb-tickets-list__body {
        padding: 24px 18px 34px;
    }
}

/* v1.0.36 Player profile SportsPress data polish */
.teba-player-season-filter select:focus {
    outline: 2px solid rgba(214, 34, 70, .25);
    outline-offset: 2px;
}
.teba-gamelog-table,
.teba-box-table {
    border-collapse: collapse;
}
.teba-gamelog-table th,
.teba-gamelog-table td,
.teba-box-table th,
.teba-box-table td {
    vertical-align: middle;
}
@media (max-width: 720px) {
    .teba-player-season-filter {
        justify-content: flex-start !important;
        flex-wrap: wrap;
    }
}


/* v1.0.40 — Builder spacing normalization + player page admin support
   Keep WPBakery homepage sections aligned to the same contained grid even when
   rows are set to Stretch Row. Full-bleed backgrounds are still created by the
   section classes using box-shadow/clip-path. */
.teba-builder-page .teba-builder-content {
  width: 100%;
  overflow-x: hidden;
}
.teba-builder-page .vc_row,
.teba-builder-page .wpb_row,
.teba-builder-page .vc_row[data-vc-full-width="true"] {
  left: auto !important;
  right: auto !important;
  width: 100% !important;
  max-width: var(--container-max, 1440px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--container-pad, 56px) !important;
  padding-right: var(--container-pad, 56px) !important;
  box-sizing: border-box;
}
.teba-builder-page .teba-vc-block:not(.teba-builder-live-score):not(.spgb-tickets-list) {
  max-width: var(--container-max, 1440px);
  box-sizing: border-box;
}
.teba-builder-page .teba-builder-content > .teba-vc-block,
.teba-builder-page .teba-builder-content > .wpb_text_column,
.teba-builder-page .teba-builder-content > .spgb-standings,
.teba-builder-page .teba-builder-content > .teba-team-strip-block,
.teba-builder-page .teba-builder-content > .teba-matches-week {
  max-width: var(--container-max, 1440px);
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--container-pad, 56px);
  padding-right: var(--container-pad, 56px);
}
@media (max-width: 782px) {
  .teba-builder-page .vc_row,
  .teba-builder-page .wpb_row,
  .teba-builder-page .vc_row[data-vc-full-width="true"],
  .teba-builder-page .teba-builder-content > .teba-vc-block,
  .teba-builder-page .teba-builder-content > .wpb_text_column,
  .teba-builder-page .teba-builder-content > .spgb-standings,
  .teba-builder-page .teba-builder-content > .teba-team-strip-block,
  .teba-builder-page .teba-builder-content > .teba-matches-week {
    padding-left: var(--container-pad-sm, 24px) !important;
    padding-right: var(--container-pad-sm, 24px) !important;
  }
}

/* v1.0.41 — Builder block left-padding correction
   User-facing WPBakery blocks need the same visual left inset as the reference
   design without changing the working Up Next/tickets layouts. */
.teba-builder-page .teba-section-head h2 {
    padding-left: 43px;
}

.teba-builder-page .teba-vc-block {
    padding-left: 43px;
    box-sizing: border-box;
}

.teba-builder-page .teba-builder-live-score,
.teba-builder-page .spgb-tickets-list,
.teba-builder-page .teba-wpb-tickets-inner {
    padding-left: 0;
}

@media (max-width: 782px) {
    .teba-builder-page .teba-section-head h2,
    .teba-builder-page .teba-vc-block {
        padding-left: var(--container-pad-sm, 24px);
    }

    .teba-builder-page .teba-builder-live-score,
    .teba-builder-page .spgb-tickets-list,
    .teba-builder-page .teba-wpb-tickets-inner {
        padding-left: 0;
    }
}

/* ========================================================================== 
   v1.0.42 — Schedule page + match card readability fixes
   ========================================================================== */
.teba-section-head {
    align-items: flex-end;
}
.teba-section-head__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 22px;
    border: 1px solid var(--color-line);
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--color-ink);
    background: transparent;
    white-space: nowrap;
}
.teba-wpb-section-dark .teba-section-head__button,
.teba-wpb-section-scoreboard .teba-section-head__button {
    border-color: rgba(255,255,255,.18);
    color: #fff;
    background: rgba(255,255,255,.03);
}
.teba-wpb-section-dark .teba-section-head__button:hover,
.teba-wpb-section-scoreboard .teba-section-head__button:hover {
    border-color: rgba(255,255,255,.45);
    background: rgba(255,255,255,.09);
}
.teba-matches-week .teba-match-team__abbr {
    display: none;
}
.teba-matches-week .teba-match-team__name {
    font-size: 16px;
    font-weight: 900;
    letter-spacing: -.015em;
    color: var(--color-ink);
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    line-height: .95;
}
.teba-wpb-section-dark .teba-matches-week .teba-match-team__name,
.teba-wpb-section-scoreboard .teba-matches-week .teba-match-team__name {
    color: #fff;
    text-shadow: 0 0 1px rgba(255,255,255,.12);
}
.teba-wpb-section-dark .teba-matches-week .teba-match-card__date,
.teba-wpb-section-scoreboard .teba-matches-week .teba-match-card__date,
.teba-wpb-section-dark .teba-matches-week .teba-match-card__venue,
.teba-wpb-section-scoreboard .teba-matches-week .teba-match-card__venue {
    color: rgba(255,255,255,.62);
}
.teba-wpb-section-dark .teba-matches-week .teba-match-card__status--upcoming,
.teba-wpb-section-scoreboard .teba-matches-week .teba-match-card__status--upcoming {
    color: #22c77a;
}
.teba-wpb-section-dark .teba-matches-week .spgb-btn--outline,
.teba-wpb-section-scoreboard .teba-matches-week .spgb-btn--outline {
    color: rgba(255,255,255,.88);
}

.teba-schedule-page {
    background: var(--color-paper);
    color: var(--color-ink);
}
.teba-schedule-container {
    width: min(var(--container-max, 1440px), calc(100% - 112px));
    margin: 0 auto;
}
.teba-schedule-page__hero {
    padding: 52px 0 22px;
    border-top: 4px solid var(--color-accent);
}
.teba-schedule-page__heading-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 24px;
    border-bottom: 1px solid var(--color-line);
    padding-bottom: 18px;
}
.teba-schedule-page__heading-row h1 {
    margin: 8px 0 0;
    font-family: var(--font-display);
    font-weight: 900;
    font-size: clamp(2rem, 4vw, 3.25rem);
    line-height: .92;
    letter-spacing: -.035em;
    text-transform: uppercase;
}
.teba-schedule-page__filters {
    display: flex;
    gap: 8px;
    margin-top: 8px;
}
.teba-schedule-page__filters select {
    min-width: 132px;
    height: 40px;
    padding: 0 34px 0 14px;
    border: 1px solid var(--color-line);
    background: var(--color-card);
    color: var(--color-ink);
    font-family: var(--font-mono);
    font-weight: 800;
    font-size: 10px;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.teba-schedule-page__body {
    padding: 18px 0 72px;
}
.teba-schedule-day {
    margin-bottom: 28px;
}
.teba-schedule-day h2 {
    margin: 0 0 12px;
    font-family: var(--font-display);
    font-weight: 900;
    font-size: 22px;
    letter-spacing: -.015em;
    text-transform: uppercase;
}
.teba-schedule-day h2 span {
    margin-left: 8px;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .14em;
    color: var(--color-mute);
}
.teba-schedule-day__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
.teba-schedule-card {
    background: var(--color-card);
    border: 1px solid var(--color-line);
}
.teba-schedule-card__top {
    min-height: 34px;
    padding: 9px 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border-bottom: 1px solid var(--color-line);
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--color-mute);
}
.teba-schedule-card__status--live { color: var(--color-accent); }
.teba-schedule-card__status--upcoming { color: var(--color-mute); }
.teba-schedule-card__body {
    padding: 13px 14px;
    display: flex;
    flex-direction: column;
    gap: 9px;
}
.teba-schedule-card__team {
    display: grid;
    grid-template-columns: 34px 1fr auto;
    align-items: center;
    gap: 10px;
}
.teba-schedule-team-logo {
    width: 30px;
    height: 30px;
    object-fit: contain;
}
.teba-schedule-team-badge {
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-family: var(--font-display);
    font-weight: 900;
    font-size: 9px;
    clip-path: polygon(0 0,100% 0,100% 70%,50% 100%,0 70%);
}
.teba-schedule-card__team strong {
    font-family: var(--font-display);
    font-weight: 900;
    font-size: 18px;
    line-height: .95;
    letter-spacing: -.015em;
    text-transform: uppercase;
}
.teba-schedule-card__team span:last-child {
    font-family: var(--font-display);
    font-size: 34px;
    font-weight: 900;
    letter-spacing: -.04em;
    font-variant-numeric: tabular-nums;
    min-width: 44px;
    text-align: right;
}
.teba-schedule-card__broadcasts {
    min-height: 34px;
    padding: 8px 14px;
    border-top: 1px solid var(--color-line);
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-mute);
}
.teba-schedule-card__broadcasts a,
.teba-schedule-card__broadcasts strong {
    background: var(--color-accent);
    color: #fff;
    padding: 3px 8px;
    text-decoration: none;
}
.teba-schedule-card__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-top: 1px solid var(--color-line);
}
.teba-schedule-card__actions a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    border-right: 1px solid var(--color-line);
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--color-mute);
    text-decoration: none;
}
.teba-schedule-card__actions a:last-child {
    border-right: 0;
}
.teba-schedule-card__actions a:hover {
    color: var(--color-ink);
    background: var(--color-paper-2);
}
.teba-schedule-page__empty {
    padding: 48px 0;
    font-family: var(--font-mono);
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--color-mute);
}
@media (max-width: 900px) {
    .teba-schedule-container {
        width: calc(100% - 48px);
    }
    .teba-schedule-page__heading-row {
        flex-direction: column;
    }
    .teba-schedule-day__grid {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 520px) {
    .teba-schedule-page__filters {
        flex-direction: column;
        width: 100%;
    }
    .teba-schedule-page__filters select {
        width: 100%;
    }
    .teba-schedule-card__team strong {
        font-size: 15px;
    }
}


/* ==========================================================================
   v1.0.46 — Teams Directory WPBakery controls
   ========================================================================== */
.teba-dir-page {
    background: var(--color-paper, #f3f0e8);
    color: var(--color-ink, #070707);
    padding: 40px 0 72px;
}
.teba-dir-container {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 24px;
}
.teba-dir-head {
    margin-bottom: 24px;
    border-bottom: 1px solid rgba(0,0,0,.12);
    padding-bottom: 14px;
}
.teba-dir-head span {
    display: block;
    font-family: var(--font-mono, monospace);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .22em;
    text-transform: uppercase;
}
.teba-dir-head span::before {
    content: '';
    display: inline-block;
    width: 18px;
    height: 2px;
    margin-right: 8px;
    vertical-align: middle;
    background: var(--color-accent, #d7194a);
}
.teba-dir-head h1 {
    margin: 6px 0 0;
    font-family: var(--font-display, inherit);
    font-size: clamp(32px, 5vw, 54px);
    font-weight: 900;
    line-height: .92;
    letter-spacing: -.035em;
    text-transform: uppercase;
}
.teba-team-card-grid {
    display: grid;
    grid-template-columns: repeat(var(--teba-team-card-columns, 3), minmax(0, 1fr));
    gap: 16px;
}
.teba-team-card {
    background: #fff;
    border: 1px solid rgba(0,0,0,.11);
    overflow: hidden;
}
.teba-team-card__link {
    display: block;
    color: inherit;
    text-decoration: none;
}
.teba-team-card__header {
    position: relative;
    min-height: 126px;
    padding: 18px 22px;
    overflow: hidden;
    background: var(--team-color, #111);
    color: #fff;
}
.teba-team-card__city {
    display: block;
    min-height: 12px;
    margin-bottom: 4px;
    font-family: var(--font-mono, monospace);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .22em;
    text-transform: uppercase;
    opacity: .86;
}
.teba-team-card__header h2 {
    position: relative;
    z-index: 2;
    max-width: 86%;
    margin: 0;
    font-family: var(--font-display, inherit);
    font-size: 24px;
    font-weight: 900;
    line-height: .95;
    letter-spacing: .02em;
    text-transform: uppercase;
}
.teba-team-card__ghost {
    position: absolute;
    right: 12px;
    bottom: -20px;
    font-family: var(--font-display, inherit);
    font-size: 124px;
    font-weight: 900;
    line-height: .8;
    letter-spacing: -.08em;
    color: rgba(255,255,255,.12);
    pointer-events: none;
}
.teba-team-card__stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    padding: 18px 12px 14px;
}
.teba-team-card__stats div {
    text-align: center;
}
.teba-team-card__stats strong {
    display: block;
    font-family: var(--font-display, inherit);
    font-size: 32px;
    font-weight: 900;
    line-height: .9;
    letter-spacing: -.04em;
}
.teba-team-card__stats span {
    display: block;
    margin-top: 6px;
    font-family: var(--font-mono, monospace);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .2em;
    text-transform: uppercase;
    opacity: .62;
}
.teba-team-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 18px;
    border-top: 1px solid rgba(0,0,0,.1);
    font-family: var(--font-mono, monospace);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
}
.teba-dir-form {
    display: inline-flex;
    gap: 3px;
}
.teba-dir-form span {
    display: inline-grid;
    place-items: center;
    width: 14px;
    height: 14px;
    font-size: 8px;
    color: #fff;
    letter-spacing: 0;
}
.teba-dir-form .is-win { background: #138a4b; }
.teba-dir-form .is-loss { background: #c92d3f; }
.teba-dir-form .is-empty { background: #b8b4aa; color: #fff; }
.teba-roster-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    border-bottom: 1px solid rgba(0,0,0,.12);
    margin-bottom: 20px;
}
.teba-roster-head .teba-dir-head {
    border-bottom: 0;
    margin-bottom: 0;
}
.teba-roster-sort {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 6px;
    font-family: var(--font-mono, monospace);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.teba-roster-sort select {
    min-width: 138px;
    border: 1px solid rgba(0,0,0,.15);
    background: transparent;
    padding: 12px 14px;
    font: inherit;
    text-transform: uppercase;
}
.teba-roster-table-wrap {
    width: 100%;
    overflow-x: auto;
}
.teba-roster-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 860px;
    font-family: var(--font-mono, monospace);
    font-size: 12px;
}
.teba-roster-table th,
.teba-roster-table td {
    padding: 14px 12px;
    border-bottom: 1px solid rgba(0,0,0,.1);
    text-align: left;
    white-space: nowrap;
}
.teba-roster-table th {
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .18em;
    text-transform: uppercase;
    border-bottom-color: rgba(0,0,0,.75);
}
.teba-roster-table td,
.teba-roster-table td a {
    color: var(--color-ink, #070707);
    text-decoration: none;
}
.teba-roster-table td:nth-child(n+4),
.teba-roster-table th:nth-child(n+4) {
    text-align: center;
}
.teba-roster-team {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 800;
}
.teba-roster-team-logo {
    width: 22px;
    height: 22px;
    object-fit: contain;
}
.teba-roster-team-logo.teba-dir-logo--abbr {
    display: inline-grid;
    place-items: center;
    background: #d7194a;
    color: #fff;
    font-size: 9px;
    line-height: 1;
}
@media (max-width: 900px) {
    .teba-team-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .teba-team-card-grid { grid-template-columns: 1fr; }
    .teba-dir-container { padding: 0 16px; }
    .teba-team-card-grid { grid-template-columns: 1fr; }
    .teba-roster-head { flex-direction: column; }
    .teba-roster-sort { width: 100%; justify-content: space-between; }
}


/* v1.0.46 — On The Air video block */
.teba-builder-page .spgb-on-air,
.spgb-on-air {
    --spgb-video-dark: #111218;
}
.spgb-on-air__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 18px;
}
.spgb-on-air__button {
    flex: 0 0 auto;
    min-width: 112px;
    text-align: center;
}
.spgb-on-air__featured {
    position: relative;
    display: block;
    min-height: 270px;
    background: var(--spgb-video-dark);
    color: #fff;
    text-decoration: none;
    overflow: hidden;
}
.spgb-on-air__media {
    position: relative;
    display: block;
    width: 100%;
    background: var(--spgb-video-dark);
    overflow: hidden;
}
.spgb-on-air__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.spgb-on-air__media--featured {
    height: 270px;
}
.spgb-on-air__media--small {
    height: 104px;
}
.spgb-on-air__placeholder {
    position: absolute;
    inset: 0;
    background: #12131a;
    background-image: radial-gradient(rgba(255,255,255,.10) 1px, transparent 1.4px);
    background-size: 9px 9px;
}
.spgb-on-air__placeholder::after {
    content: '';
    position: absolute;
    right: -24px;
    top: -32px;
    width: 170px;
    height: 260px;
    transform: rotate(18deg);
    background: linear-gradient(180deg, var(--color-accent) 0 35%, transparent 35% 48%, var(--color-accent) 48% 72%, transparent 72%);
}
.spgb-on-air__placeholder span {
    position: absolute;
    right: 22px;
    bottom: -6px;
    z-index: 1;
    font-family: var(--font-display);
    font-weight: 900;
    font-size: 104px;
    line-height: .8;
    color: rgba(255,255,255,.09);
}
.spgb-on-air__play {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 58px;
    height: 58px;
    transform: translate(-50%, -50%);
    background: #f2f0e7;
    z-index: 2;
}
.spgb-on-air__play::before {
    content: '';
    position: absolute;
    left: 23px;
    top: 18px;
    border-left: 14px solid #111218;
    border-top: 10px solid transparent;
    border-bottom: 10px solid transparent;
}
.spgb-on-air__duration {
    position: absolute;
    right: 10px;
    bottom: 8px;
    z-index: 3;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 700;
    color: #f2f0e7;
    letter-spacing: .08em;
}
.spgb-on-air__label,
.spgb-on-air__small-label {
    display: block;
    margin-top: 10px;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--color-accent);
}
.spgb-on-air__featured .spgb-on-air__label,
.spgb-on-air__featured h3 {
    position: relative;
    z-index: 4;
    margin-left: 0;
}
.spgb-on-air__featured .spgb-on-air__label {
    margin: 12px 0 5px;
}
.spgb-on-air__featured h3,
.spgb-on-air__small-heading {
    margin: 0;
    font-family: var(--font-display);
    font-weight: 900;
    line-height: .98;
    letter-spacing: -.02em;
    text-transform: uppercase;
    color: var(--color-ink);
}
.spgb-on-air__featured h3 {
    color: var(--color-ink);
    font-size: 1.35rem;
}
.spgb-on-air__below {
    margin-top: 14px;
    overflow: hidden;
    max-height: none;
}
.spgb-on-air__small-heading {
    font-size: 1rem;
    margin-bottom: 12px;
}
.spgb-on-air__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}
.spgb-on-air__small {
    display: block;
    color: inherit;
    text-decoration: none;
}
.spgb-on-air__small strong {
    display: block;
    margin-top: 4px;
    font-family: var(--font-display);
    font-weight: 900;
    font-size: .78rem;
    line-height: 1.02;
    letter-spacing: -.01em;
    text-transform: uppercase;
    color: var(--color-ink);
}
@media (max-width: 767px) {
    .spgb-on-air__head { align-items: flex-start; flex-direction: column; }
    .spgb-on-air__media--featured { height: 210px; }
    .spgb-on-air__grid { grid-template-columns: 1fr; }
    .spgb-on-air__media--small { height: 150px; }
}

/* v1.0.46 — On The Air inline video playback + iframe overflow fix */
.teba-builder-page,
.teba-builder-page .vc_row,
.teba-builder-page .vc_column_container,
.teba-builder-page .vc_column-inner,
.teba-builder-page .wpb_wrapper,
.teba-builder-page .teba-vc-block,
.spgb-on-air {
    overflow: visible;
    max-height: none;
}
.spgb-on-air__featured-trigger,
.spgb-on-air__small {
    appearance: none;
    -webkit-appearance: none;
    border: 0;
    padding: 0;
    margin: 0;
    width: 100%;
    background: transparent;
    color: inherit;
    text-align: left;
    cursor: pointer;
    font: inherit;
}
.spgb-on-air__featured-trigger:disabled,
.spgb-on-air__small:disabled {
    cursor: default;
}
.spgb-on-air__player {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: var(--spgb-video-dark);
    overflow: hidden;
}
.spgb-on-air__player iframe {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}
.spgb-on-air iframe {
    max-width: 100%;
}
.spgb-on-air__media,
.spgb-on-air__media iframe,
.spgb-on-air__media img {
    max-width: 100%;
}


/* v1.0.47 — On The Air lower-video overflow + responsive standings fix */
.spgb-on-air__below {
    margin-top: 14px;
    overflow: hidden;
    max-height: none;
}
.spgb-standings__table-wrap {
    overflow-x: visible !important;
    max-width: 100%;
}
.spgb-standings__table {
    width: 100%;
    max-width: 100%;
    table-layout: auto;
}
.spgb-standings__team {
    min-width: 0;
    width: 100%;
    max-width: 100%;
}
.spgb-standings__team .teba-standings__team-name,
.teba-standings__team-name {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: normal;
}
.spgb-standings__logo,
.spgb-standings__badge {
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
}
.spgb-standings__table th,
.spgb-standings__table td {
    white-space: normal;
}
@media (max-width: 900px) {
    .spgb-standings__table th,
    .spgb-standings__table td {
        padding-left: 4px;
        padding-right: 4px;
        font-size: 0.75rem;
    }
    .spgb-standings__team {
        gap: 7px;
    }
    .spgb-standings__table .teba-standings__rank {
        width: 18px;
        min-width: 18px;
    }
    .spgb-standings__table .teba-standings__team-name {
        font-size: 0.82rem;
        line-height: 1.05;
    }
    .spgb-standings__form .teba-form__pip {
        width: 14px;
        height: 14px;
        font-size: 8px;
    }
}
@media (max-width: 640px) {
    .spgb-standings__table {
        table-layout: fixed;
    }
    .spgb-standings__table th:nth-child(1),
    .spgb-standings__table td:nth-child(1) {
        width: 58%;
    }
    .spgb-standings__table th:nth-child(2),
    .spgb-standings__table td:nth-child(2),
    .spgb-standings__table th:nth-child(3),
    .spgb-standings__table td:nth-child(3),
    .spgb-standings__table th:nth-child(4),
    .spgb-standings__table td:nth-child(4) {
        width: 14%;
    }
    .spgb-standings__table th:nth-child(5),
    .spgb-standings__table td:nth-child(5) {
        display: none;
    }
}

/* ========================================================================== 
   v1.0.48 WooCommerce Gear Up shop template
   ========================================================================== */
.teba-shop-page {
  background: #efede3;
  color: #030507;
}
.teba-shop-wrap {
  width: min(1280px, calc(100% - 72px));
  margin: 0 auto;
  padding: 58px 0 84px;
}
.teba-shop-head {
  border-bottom: 1px solid rgba(0,0,0,.12);
  padding-bottom: 18px;
  margin-bottom: 22px;
}
.teba-shop-head .teba-kicker,
.teba-shop-filters legend,
.teba-shop-card__meta,
.teba-shop-search .teba-shop-sort span {
  display: block;
  font-family: var(--font-mono, monospace);
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .25em;
  text-transform: uppercase;
}
.teba-shop-head .teba-kicker::before,
.teba-shop-filters legend::before {
  content: '';
  display: inline-block;
  width: 18px;
  height: 2px;
  background: var(--color-red, #d91a4d);
  margin-right: 8px;
  vertical-align: middle;
}
.teba-shop-head h1 {
  margin: 6px 0 0;
  font-family: var(--font-display, sans-serif);
  font-size: clamp(2rem, 4vw, 3.7rem);
  line-height: .9;
  font-weight: 900;
  letter-spacing: -.035em;
  text-transform: uppercase;
}
.teba-shop-search {
  display: grid;
  grid-template-columns: 1fr minmax(168px, 210px);
  align-items: stretch;
  border: 1px solid rgba(0,0,0,.11);
  background: rgba(255,255,255,.36);
  margin-bottom: 22px;
}
.teba-shop-search__field {
  display: flex;
  align-items: center;
  gap: 13px;
  min-height: 46px;
  padding: 0 18px;
  color: rgba(0,0,0,.48);
}
.teba-shop-search input[type="search"] {
  width: 100%;
  border: 0;
  background: transparent;
  outline: 0;
  font: 600 .86rem/1.2 var(--font-ui, sans-serif);
  color: #111;
}
.teba-shop-search input[type="search"]::placeholder { color: rgba(0,0,0,.46); }
.teba-shop-sort {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  border-left: 1px solid rgba(0,0,0,.08);
  padding: 0 14px;
}
.teba-shop-sort select {
  border: 0;
  background: transparent;
  font-family: var(--font-mono, monospace);
  font-size: .68rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .16em;
  color: #111;
  outline: 0;
}
.teba-shop-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: 22px;
}
.teba-shop-tabs a {
  min-width: 64px;
  padding: 10px 18px;
  border: 1px solid rgba(0,0,0,.22);
  background: transparent;
  color: #111;
  font-family: var(--font-mono, monospace);
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .16em;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
}
.teba-shop-tabs a.is-active,
.teba-shop-tabs a:hover {
  background: #050608;
  border-color: #050608;
  color: #fff;
}
.teba-shop-layout {
  display: grid;
  grid-template-columns: 218px 1fr;
  gap: 34px;
  align-items: start;
}
.teba-shop-filters {
  background: rgba(255,255,255,.36);
  border: 1px solid rgba(0,0,0,.08);
  padding: 0;
  position: sticky;
  top: 110px;
}
.teba-shop-filters__top {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  padding: 18px 18px 14px;
  border-bottom: 1px solid rgba(0,0,0,.08);
  font-family: var(--font-mono, monospace);
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: .66rem;
}
.teba-shop-filters__top a {
  color: var(--color-red, #d91a4d);
  text-decoration: none;
}
.teba-shop-filters__top span {
  grid-column: 1 / -1;
  color: rgba(0,0,0,.55);
}
.teba-shop-filter-group {
  border: 0;
  margin: 0;
  padding: 19px 18px;
  border-bottom: 1px solid rgba(0,0,0,.08);
}
.teba-shop-filter-group legend { margin-bottom: 13px; }
.teba-shop-filter-group label {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 28px;
  font-family: var(--font-ui, sans-serif);
  font-size: .8rem;
  font-weight: 700;
  color: rgba(0,0,0,.76);
}
.teba-shop-filter-group input[type="radio"],
.teba-shop-filter-group input[type="checkbox"] {
  accent-color: var(--color-red, #d91a4d);
}
.teba-shop-filter-group img {
  width: 18px;
  height: 18px;
  object-fit: contain;
}
.teba-shop-filter-group--price strong {
  display: block;
  margin: -24px 0 12px;
  text-align: right;
  font-family: var(--font-display, sans-serif);
  font-size: 1rem;
}
.teba-shop-filter-group--price input[type="range"] { width: 100%; accent-color: var(--color-red, #d91a4d); }
.teba-shop-filter-group--price div {
  display: flex;
  justify-content: space-between;
  margin-top: 6px;
  color: rgba(0,0,0,.45);
  font: 700 .68rem/1 var(--font-mono, monospace);
}
.teba-shop-filter-group--sizes {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.teba-shop-filter-group--sizes legend { flex: 0 0 100%; }
.teba-shop-filter-group--sizes button {
  min-width: 40px;
  height: 32px;
  border: 1px solid rgba(0,0,0,.14);
  background: transparent;
  cursor: pointer;
  font-family: var(--font-mono, monospace);
  font-size: .68rem;
  font-weight: 900;
  text-transform: uppercase;
}
.teba-shop-filter-group--sizes button.is-active,
.teba-shop-filter-group--sizes button:hover {
  background: #050608;
  border-color: #050608;
  color: #fff;
}
.teba-shop-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px 26px;
}
.teba-shop-card {
  position: relative;
  min-width: 0;
}
.teba-shop-card__media {
  position: relative;
  display: block;
  min-height: 250px;
  overflow: hidden;
  background: var(--team-color, #1e93d6);
  text-decoration: none;
  color: #fff;
  isolation: isolate;
}
.teba-shop-card__media::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: .16;
  background-image: radial-gradient(rgba(0,0,0,.65) 1px, transparent 1px);
  background-size: 9px 9px;
}
.teba-shop-card__media::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(0deg, rgba(0,0,0,.05), rgba(255,255,255,.1));
}
.teba-shop-card__img {
  width: 100%;
  height: 250px;
  object-fit: cover;
  display: block;
  position: relative;
  z-index: 2;
}
.teba-shop-card__abbr {
  position: absolute;
  right: -12px;
  bottom: -28px;
  z-index: 1;
  font-family: var(--font-display, sans-serif);
  font-size: 9.8rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -.08em;
  color: rgba(255,255,255,.11);
}
.teba-shop-card__jersey {
  position: absolute;
  inset: 38px 0 auto;
  margin: auto;
  z-index: 3;
  width: 150px;
  height: 160px;
  background: #f6f6f4;
  clip-path: polygon(25% 0, 39% 12%, 50% 16%, 61% 12%, 75% 0, 100% 16%, 82% 42%, 82% 100%, 18% 100%, 18% 42%, 0 16%);
  display: grid;
  place-items: center;
  color: var(--team-color, #1e93d6);
  font-family: var(--font-display, sans-serif);
  font-size: 3.2rem;
  font-weight: 900;
  letter-spacing: -.04em;
}
.teba-shop-card__badges {
  position: absolute;
  left: 16px;
  top: 14px;
  z-index: 5;
  display: flex;
  gap: 4px;
}
.teba-shop-card__badge {
  display: inline-flex;
  align-items: center;
  min-height: 18px;
  padding: 3px 7px;
  background: #050608;
  color: #fff;
  font-family: var(--font-mono, monospace);
  font-size: .58rem;
  font-weight: 900;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.teba-shop-card__badge--new,
.teba-shop-card__badge--sale { background: var(--color-red, #d91a4d); }
.teba-shop-card__body { padding-top: 14px; }
.teba-shop-card__meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 22px;
  color: rgba(0,0,0,.55);
}
.teba-shop-card__meta a { color: inherit; text-decoration: none; }
.teba-shop-card__meta img {
  width: 18px;
  height: 18px;
  object-fit: contain;
}
.teba-shop-card__title {
  margin: 4px 0 7px;
  font-family: var(--font-display, sans-serif);
  font-size: 1.06rem;
  line-height: 1.02;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -.01em;
}
.teba-shop-card__title a { color: inherit; text-decoration: none; }
.teba-shop-card__price {
  font-family: var(--font-display, sans-serif);
  font-size: 1.06rem;
  font-weight: 900;
}
.teba-shop-card__price del { color: rgba(0,0,0,.35); margin-right: 8px; }
.teba-shop-card__price ins { text-decoration: none; }
.teba-shop-pagination ul {
  display: flex;
  gap: 7px;
  list-style: none;
  padding: 0;
  margin: 42px 0 0;
}
.teba-shop-pagination a,
.teba-shop-pagination span {
  display: grid;
  place-items: center;
  min-width: 38px;
  height: 38px;
  border: 1px solid rgba(0,0,0,.14);
  color: #111;
  text-decoration: none;
  font-family: var(--font-mono, monospace);
  font-weight: 900;
}
.teba-shop-pagination .current,
.teba-shop-pagination a:hover {
  background: #050608;
  color: #fff;
}
.teba-shop-empty {
  padding: 48px;
  border: 1px solid rgba(0,0,0,.1);
  font-family: var(--font-display, sans-serif);
  font-weight: 900;
  text-transform: uppercase;
}
@media (max-width: 1100px) {
  .teba-shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .teba-shop-layout { grid-template-columns: 190px 1fr; gap: 24px; }
}
@media (max-width: 820px) {
  .teba-shop-wrap { width: min(100% - 32px, 680px); padding-top: 36px; }
  .teba-shop-search { grid-template-columns: 1fr; }
  .teba-shop-sort { justify-content: space-between; border-left: 0; border-top: 1px solid rgba(0,0,0,.08); min-height: 44px; }
  .teba-shop-layout { grid-template-columns: 1fr; }
  .teba-shop-filters { position: static; }
  .teba-shop-grid { grid-template-columns: 1fr; }
  .teba-shop-card__media { min-height: 220px; }
  .teba-shop-card__img { height: 220px; }
}


/* v1.0.50 — Header cleanup and game/leader readability */
.teba-topbar,
.teba-preheader,
.teba-header-sponsor,
.teba-top-sponsor,
.teba-header__sponsor,
.header-sponsor,
.header-sponsors,
.site-header-sponsor,
.site-header-sponsors,
.teba-header__above,
.teba-header__team-strip,
.teba-header__partner-strip {
    display: none !important;
}

.single-sp_event .teba-box-table td:first-child span {
    max-width: 280px;
}

@media (max-width: 760px) {
    .single-sp_event .teba-box-table td:first-child span {
        max-width: 190px;
        font-size: .86rem;
    }
}

/* v1.0.50 — Header logo/sponsor hide, leader card repair, footer builder blocks */
.sp-league-menu,
.sp-league-menu .sp-team-logo,
.sp-header-sponsors,
.sp-header-sponsors *,
.teba-header .sp-league-menu,
.teba-header .sp-header-sponsors,
.teba-header + .sp-league-menu,
.teba-header + .sp-header-sponsors {
    display: none !important;
}

.teba-leaders-card {
    background: var(--color-card, #f7f3ea);
    border: 1px solid var(--color-line, rgba(0,0,0,.1));
    min-width: 0;
    overflow: hidden;
}
.teba-leaders-card__head {
    padding: 12px 16px;
    background: var(--color-ink, #050608);
    color: var(--color-paper, #f4efe5);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}
.teba-leaders-card__head span {
    font-family: var(--font-display, sans-serif);
    font-weight: 900;
    font-size: 16px;
    line-height: 1;
    text-transform: uppercase;
}
.teba-leaders-card__head small {
    font-family: var(--font-mono, monospace);
    font-size: 10px;
    color: rgba(255,255,255,.58);
    letter-spacing: .18em;
    text-transform: uppercase;
    white-space: nowrap;
}
.teba-leaders-card__row {
    display: grid;
    grid-template-columns: 26px 34px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    min-height: 58px;
    padding: 10px 16px;
    border-top: 1px solid var(--color-line, rgba(0,0,0,.1));
    color: inherit;
    text-decoration: none;
    transition: background .12s;
}
.teba-leaders-card__row:first-of-type { border-top: 0; }
.teba-leaders-card__row:hover { background: rgba(26,26,26,.04); }
.teba-leaders-card__rank {
    font-family: var(--font-mono, monospace);
    font-size: 11px;
    color: var(--color-mute, #777);
    font-weight: 800;
}
.teba-leaders-card__logo {
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: visible;
}
.teba-leaders-card__logo img {
    max-width: 28px;
    max-height: 28px;
    width: auto !important;
    height: auto !important;
    object-fit: contain;
}
.teba-leaders-card__identity {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.05;
}
.teba-leaders-card__identity strong {
    display: block;
    font-family: var(--font-display, sans-serif);
    font-weight: 900;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: -.005em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.teba-leaders-card__identity em {
    margin-top: 2px;
    font-family: var(--font-mono, monospace);
    font-style: normal;
    font-size: 9px;
    color: var(--color-mute, #777);
    letter-spacing: .08em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.teba-leaders-card__value {
    font-family: var(--font-display, sans-serif);
    font-weight: 900;
    font-size: 20px;
    line-height: 1;
    font-variant-numeric: tabular-nums;
    letter-spacing: -.02em;
    text-align: right;
    white-space: nowrap;
}
.teba-footer-block-grid {
    display: grid;
    grid-template-columns: 1.35fr 1fr 1fr 1fr 1.45fr;
    gap: 36px;
    padding: 48px 0 36px;
}
.teba-footer-builder-block,
.teba-footer-builder-block a { color: rgba(255,255,255,.78); }
.teba-footer-builder-block a { text-decoration: none; }
.teba-footer-builder-block a:hover { color: #fff; }
.teba-footer-builder-title {
    font-family: var(--font-mono, monospace);
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--color-accent, #d62246);
    margin: 0 0 14px;
}
.teba-footer-builder-links {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 12px;
    font-family: var(--font-ui, sans-serif);
    font-size: 14px;
}
@media (max-width: 980px) {
    .teba-leaders-card__row { grid-template-columns: 24px 30px minmax(0, 1fr) auto; padding-inline: 12px; }
    .teba-leaders-card__value { font-size: 18px; }
    .teba-footer-block-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 680px) {
    .teba-leaders-card__row { grid-template-columns: 22px 28px minmax(0, 1fr) auto; }
    .teba-leaders-card__head span { font-size: 14px; }
    .teba-leaders-card__identity strong { font-size: 12px; }
    .teba-leaders-card__value { font-size: 17px; }
    .teba-footer-block-grid { grid-template-columns: 1fr; }
}


/* v1.0.52 — Sponsor card label cleanup */
.teba-sponsor-card__role {
    display: none !important;
}

/* v1.0.52 — Brevo footer newsletter integration */
.teba-newsletter-wrap--brevo form,
.teba-footer-builder-newsletter .sib_signup_form,
.teba-footer-builder-newsletter form[id^="sib_signup_form_"] {
    display: flex;
    align-items: stretch;
    width: 100%;
    margin: 0;
}

.teba-newsletter-wrap--brevo input[type="email"],
.teba-newsletter-wrap--brevo input[type="text"],
.teba-newsletter-wrap--brevo .sib-email-area input {
    flex: 1 1 auto;
    min-height: 42px;
    background: transparent;
    border: 1px solid rgba(255,255,255,.25);
    color: #fff;
    padding: 0 16px;
    font-family: var(--font-ui);
    font-size: 14px;
    outline: none;
}

.teba-newsletter-wrap--brevo input[type="email"]::placeholder,
.teba-newsletter-wrap--brevo input[type="text"]::placeholder {
    color: rgba(255,255,255,.45);
}

.teba-newsletter-wrap--brevo input[type="submit"],
.teba-newsletter-wrap--brevo button[type="submit"] {
    min-height: 42px;
    background: var(--color-accent);
    border: 0;
    color: #fff;
    padding: 0 22px;
    font-family: var(--font-mono);
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
    cursor: pointer;
}

.teba-newsletter-wrap--brevo .sib-default-btn {
    background: var(--color-accent) !important;
    color: #fff !important;
    border: 0 !important;
}

.teba-newsletter-warning {
    padding: 12px 14px;
    border: 1px solid rgba(255,255,255,.18);
    background: rgba(255,255,255,.04);
}

@media (max-width: 640px) {
    .teba-newsletter-wrap--brevo form,
    .teba-footer-builder-newsletter .sib_signup_form,
    .teba-footer-builder-newsletter form[id^="sib_signup_form_"] {
        flex-direction: column;
        gap: 10px;
    }

    .teba-newsletter-wrap--brevo input[type="submit"],
    .teba-newsletter-wrap--brevo button[type="submit"] {
        width: 100%;
    }
}

/* ======================================================================
   v1.0.54 Tickets template header/hero alignment fix
   Keep the Tickets page hero directly under the main header and align the
   heading/list area with the same site container used by the header.
   ====================================================================== */
.teba-tickets-list-page {
    margin: 0;
    padding: 0;
    background: var(--teba-cream, #f3f0e8);
}

.teba-tickets-list-page .spgb-tickets-list.teba-vc-block {
    margin: 0 !important;
    max-width: none !important;
    width: 100% !important;
}

.teba-tickets-list-page .spgb-tickets-list__hero {
    border-top: 0;
    padding: clamp(56px, 6.5vw, 84px) var(--container-pad) clamp(40px, 4.5vw, 58px);
}

.teba-tickets-list-page .spgb-tickets-list__hero > div,
.teba-tickets-list-page .spgb-tickets-list__body {
    box-sizing: border-box;
    max-width: var(--container-max);
    margin-left: auto;
    margin-right: auto;
    width: 100%;
}

.teba-tickets-list-page .spgb-tickets-list__hero h1 {
    font-size: clamp(44px, 6vw, 76px);
    line-height: .92;
    max-width: 1040px;
    margin: 0 0 14px;
}

.teba-tickets-list-page .spgb-tickets-list__hero p {
    font-size: clamp(14px, 1.3vw, 18px);
    line-height: 1.45;
    max-width: 650px;
}

.teba-tickets-list-page .spgb-tickets-list__body {
    padding: clamp(38px, 4.5vw, 58px) var(--container-pad) clamp(52px, 5vw, 72px);
}

.teba-tickets-list-page .spgb-tickets-list__head {
    align-items: center;
    gap: 24px;
}

@media (max-width: 782px) {
    .teba-tickets-list-page .spgb-tickets-list__hero,
    .teba-tickets-list-page .spgb-tickets-list__body {
        padding-left: var(--container-pad-sm);
        padding-right: var(--container-pad-sm);
    }

    .teba-tickets-list-page .spgb-tickets-list__head {
        align-items: flex-start;
    }
}


/* v1.0.54 — SportsPress season/league leader data */
.teba-league-leaders-grid {
    display: grid;
    gap: 14px;
    align-items: stretch;
}
.teba-leaders-card__empty {
    padding: 18px 16px;
    font-family: var(--font-mono, monospace);
    font-size: 11px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-mute, #777);
}
.teba-leaders-card__row {
    grid-template-columns: 28px 34px minmax(0, 1fr) auto;
}
.teba-leaders-card__logo .teba-mark,
.teba-leaders-card__logo .teba-mark-logo {
    flex: 0 0 auto;
}
@media (max-width: 980px) {
    .teba-league-leaders-grid {
        grid-template-columns: 1fr !important;
    }
}

/* v1.0.60: Roster WPBakery controls + full standings page template */
.teba-page-template--players,
.teba-page-template--standings {
    background: var(--color-cream, #f3f0e8);
}

.teba-roster-dir .teba-dir-container,
.teba-standings-page .teba-dir-container {
    max-width: 1320px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 43px;
    padding-right: 43px;
}

.teba-roster-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.teba-roster-table {
    min-width: 980px;
}

.teba-standings-page {
    padding: 56px 0 72px;
    background: var(--color-cream, #f3f0e8);
    color: var(--color-ink, #05080b);
}

.teba-standings-page__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    border-bottom: 1px solid rgba(0,0,0,.12);
    padding-bottom: 18px;
}

.teba-standings-page__head .teba-section-head h1 {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(2.5rem, 6vw, 5.25rem);
    line-height: .88;
    letter-spacing: -.035em;
    text-transform: uppercase;
}

.teba-standings-page__filters select {
    min-width: 138px;
    border: 1px solid rgba(0,0,0,.18);
    background: transparent;
    padding: 12px 18px;
    font-family: var(--font-display);
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .16em;
    font-size: .68rem;
}

.teba-standings-page__tabs {
    display: flex;
    margin: 28px 0 24px;
    border: 1px solid rgba(0,0,0,.22);
    width: fit-content;
    max-width: 100%;
}

.teba-standings-page__tabs button {
    appearance: none;
    border: 0;
    border-right: 1px solid rgba(0,0,0,.22);
    background: transparent;
    color: var(--color-ink, #05080b);
    padding: 13px 28px;
    font-family: var(--font-display);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .18em;
    text-transform: uppercase;
    cursor: pointer;
}

.teba-standings-page__tabs button:last-child { border-right: 0; }
.teba-standings-page__tabs button.is-active {
    background: #050505;
    color: #fff;
}

.teba-standings-page__table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.teba-standings-page__table {
    width: 100%;
    min-width: 1060px;
    border-collapse: collapse;
    font-family: var(--font-body);
}

.teba-standings-page__table th {
    border-bottom: 2px solid #050505;
    padding: 12px 8px;
    font-family: var(--font-display);
    font-size: .7rem;
    font-weight: 900;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: rgba(0,0,0,.55);
    text-align: center;
}

.teba-standings-page__table th:nth-child(2),
.teba-standings-page__table td:nth-child(2) { text-align: left; }

.teba-standings-page__table td {
    border-bottom: 1px solid rgba(0,0,0,.10);
    padding: 14px 8px;
    text-align: center;
    vertical-align: middle;
    font-size: .9rem;
}

.teba-standings-page__rank {
    display: inline-grid;
    place-items: center;
    width: 28px;
    height: 28px;
    background: #050505;
    color: #fff;
    font-family: var(--font-display);
    font-size: .75rem;
    font-weight: 900;
}

.teba-standings-page__team {
    display: flex;
    align-items: center;
    gap: 12px;
}

.teba-standings-page__logo {
    width: 34px;
    height: 34px;
    object-fit: contain;
    flex: 0 0 34px;
}

.teba-standings-page__team strong {
    display: block;
    font-family: var(--font-display);
    font-size: .98rem;
    font-weight: 900;
    letter-spacing: .02em;
    text-transform: uppercase;
}

.teba-standings-page__team strong a { color: inherit; text-decoration: none; }
.teba-standings-page__team em {
    display: block;
    margin-top: 2px;
    font-style: normal;
    color: rgba(0,0,0,.48);
    font-size: .75rem;
}

.teba-standings-page__conf {
    display: inline-block;
    min-width: 44px;
    padding: 4px 7px;
    background: #d51d46;
    color: #fff;
    font-family: var(--font-display);
    font-size: .62rem;
    font-weight: 900;
    letter-spacing: .12em;
}

.teba-standings-page__conf--east { background: #202052; }
.teba-standings-page__conf--west { background: #d51d46; }
.teba-standings-page__table .is-positive { color: #0f8c4d; font-weight: 900; }
.teba-standings-page__table .is-negative { color: #c7253f; font-weight: 900; }
.teba-standings-page .teba-dir-form { justify-content: center; }

@media (max-width: 768px) {
    .teba-roster-dir .teba-dir-container,
    .teba-standings-page .teba-dir-container {
        padding-left: 18px;
        padding-right: 18px;
    }
    .teba-standings-page__head {
        display: block;
    }
    .teba-standings-page__filters {
        margin-top: 18px;
    }
    .teba-standings-page__tabs {
        width: 100%;
    }
    .teba-standings-page__tabs button {
        flex: 1 1 0;
        padding-left: 10px;
        padding-right: 10px;
        font-size: .62rem;
    }
}

/* v1.0.61: Roster Directory SportsPress season/league filter cleanup */
.teba-roster-filters {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.teba-roster-filters label {
    margin-left: 8px;
}
.teba-roster-filters select {
    min-width: 150px;
}
@media (max-width: 768px) {
    .teba-roster-head {
        display: block;
    }
    .teba-roster-filters {
        justify-content: flex-start;
        margin-top: 16px;
    }
    .teba-roster-filters label {
        width: 100%;
        margin-left: 0;
    }
    .teba-roster-filters select {
        width: 100%;
    }
}

/* v1.0.62 — Team page SportsPress data + directory logo treatment */
.teba-team-card__bg-logo {
    position: absolute;
    right: 12px;
    top: 50%;
    z-index: 1;
    width: min(58%, 220px);
    height: 120%;
    object-fit: contain;
    transform: translateY(-50%);
    opacity: .35;
    filter: saturate(1.05) contrast(1.05);
    pointer-events: none;
    user-select: none;
}
.teba-team-card__city,
.teba-team-card__header h2 {
    position: relative;
    z-index: 3;
}
.teba-team-card__ghost {
    z-index: 2;
}
@media (max-width: 700px) {
    .teba-team-card__bg-logo {
        width: 64%;
        opacity: .3;
    }
}


/* v1.0.64 — Team top performers now use SportsPress player season averages. */


/* v1.0.67 — Global footer Brevo/customizer cleanup */
.teba-footer .teba-newsletter-wrap--brevo,
.teba-footer .teba-newsletter-wrap--shortcode {
    width: 100%;
}

.teba-footer .teba-newsletter-wrap--brevo form,
.teba-footer .teba-newsletter-wrap--shortcode form {
    max-width: 100%;
}

.teba-builder-page .teba-footer-block-grid + .teba-footer,
.teba-footer-block-grid .teba-footer {
    display: none !important;
}


/* v1.0.71 — WooCommerce side cart drawer */
.teba-side-cart-overlay {
    position: fixed;
    inset: 0;
    z-index: 9980;
    background: rgba(0, 0, 0, .58);
    opacity: 0;
    visibility: hidden;
    transition: opacity .22s ease, visibility .22s ease;
}
body.teba-side-cart-is-open .teba-side-cart-overlay {
    opacity: 1;
    visibility: visible;
}
body.teba-side-cart-is-open {
    overflow: hidden;
}
.teba-side-cart {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 9990;
    width: min(440px, calc(100vw - 22px));
    height: 100vh;
    background: #0b0b0c;
    color: #fff;
    transform: translateX(105%);
    transition: transform .28s ease;
    box-shadow: -24px 0 48px rgba(0,0,0,.42);
    display: flex;
    flex-direction: column;
}
body.teba-side-cart-is-open .teba-side-cart {
    transform: translateX(0);
}
.teba-side-cart__inner {
    height: 100%;
    overflow-y: auto;
    padding: 28px 28px 24px;
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.teba-side-cart__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    border-bottom: 1px solid rgba(255,255,255,.1);
    padding-bottom: 18px;
}
.teba-side-cart__kicker,
.teba-side-cart__summary-title {
    display: block;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .24em;
    text-transform: uppercase;
    color: rgba(255,255,255,.58);
}
.teba-side-cart__head h2 {
    margin: 7px 0 0;
    font-family: var(--font-display);
    font-size: 42px;
    line-height: .9;
    text-transform: uppercase;
    letter-spacing: -.03em;
}
.teba-side-cart__count {
    color: var(--color-accent);
}
.teba-side-cart__close {
    width: 42px;
    height: 42px;
    border: 1px solid rgba(255,255,255,.18);
    background: transparent;
    color: #fff;
    cursor: pointer;
    font-size: 28px;
    line-height: 1;
}
.teba-side-cart__empty {
    padding: 28px 0;
    font-family: var(--font-ui);
    color: rgba(255,255,255,.72);
}
.teba-side-cart__items {
    display: grid;
    gap: 12px;
}
.teba-side-cart__item {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid rgba(255,255,255,.1);
}
.teba-side-cart__thumb {
    width: 72px;
    height: 72px;
    background: #f2f0e7;
    display: grid;
    place-items: center;
    overflow: hidden;
}
.teba-side-cart__thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.teba-side-cart__item-title,
.teba-side-cart__item-title a {
    font-family: var(--font-display);
    font-size: 14px;
    font-weight: 900;
    line-height: 1.05;
    text-transform: uppercase;
    color: #fff;
    text-decoration: none;
}
.teba-side-cart__meta,
.teba-side-cart__item-row {
    margin-top: 7px;
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(255,255,255,.56);
}
.teba-side-cart__item-row {
    display: flex;
    gap: 12px;
    align-items: center;
}
.teba-side-cart__remove {
    color: var(--color-accent);
    text-decoration: none;
}
.teba-side-cart__item-price {
    font-family: var(--font-display);
    font-size: 15px;
    font-weight: 900;
    white-space: nowrap;
}
.teba-side-cart__summary {
    margin-top: auto;
    padding-top: 20px;
    border-top: 1px solid rgba(255,255,255,.13);
}
.teba-side-cart__summary-title {
    text-align: center;
    margin-bottom: 16px;
    color: #fff;
}
.teba-side-cart__line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 8px 0;
    font-family: var(--font-ui);
    font-size: 14px;
    color: rgba(255,255,255,.75);
}
.teba-side-cart__line em {
    margin-left: 4px;
    font-family: var(--font-mono);
    font-style: normal;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: #20a460;
}
.teba-side-cart__line strong {
    font-family: var(--font-display);
    font-size: 17px;
    color: #fff;
}
.teba-side-cart__line--coupon strong {
    color: #20a460;
}
.teba-side-cart__line--total {
    margin-top: 10px;
    padding-top: 14px;
    border-top: 1px solid rgba(255,255,255,.1);
    text-transform: uppercase;
    letter-spacing: .14em;
    font-family: var(--font-mono);
    font-size: 11px;
    color: #fff;
}
.teba-side-cart__line--total strong {
    font-size: 28px;
}
.teba-side-cart__coupon {
    display: grid;
    grid-template-columns: 1fr 104px;
    gap: 0;
}
.teba-side-cart__coupon input {
    min-width: 0;
    border: 1px solid rgba(255,255,255,.2);
    border-right: 0;
    background: #f2f0e7;
    color: #0b0b0c;
    padding: 13px 14px;
    font-family: var(--font-ui);
    font-size: 13px;
}
.teba-side-cart__coupon button {
    border: 0;
    background: var(--color-accent);
    color: #fff;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .16em;
    text-transform: uppercase;
    cursor: pointer;
}
.teba-side-cart__notice {
    grid-column: 1 / -1;
    margin-top: 8px;
    min-height: 16px;
    font-family: var(--font-ui);
    font-size: 12px;
    color: rgba(255,255,255,.7);
}
.teba-side-cart__notice.is-success { color: #20a460; }
.teba-side-cart__notice.is-error { color: #ff6b7c; }
.teba-side-cart__actions {
    display: grid;
    grid-template-columns: 1fr 1.25fr;
    gap: 10px;
}
.teba-side-cart__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 12px 16px;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .16em;
    text-transform: uppercase;
    text-decoration: none;
}
.teba-side-cart__btn--ghost {
    border: 1px solid rgba(255,255,255,.32);
    color: #fff;
    background: transparent;
}
.teba-side-cart__btn--primary {
    border: 1px solid var(--color-accent);
    color: #fff;
    background: var(--color-accent);
}
@media (max-width: 520px) {
    .teba-side-cart__inner {
        padding: 22px 18px 20px;
    }
    .teba-side-cart__head h2 {
        font-size: 34px;
    }
    .teba-side-cart__item {
        grid-template-columns: 58px minmax(0, 1fr);
    }
    .teba-side-cart__thumb {
        width: 58px;
        height: 58px;
    }
    .teba-side-cart__item-price {
        grid-column: 2;
        justify-self: start;
    }
    .teba-side-cart__actions,
    .teba-side-cart__coupon {
        grid-template-columns: 1fr;
    }
    .teba-side-cart__coupon input {
        border-right: 1px solid rgba(255,255,255,.2);
    }
    .teba-side-cart__coupon button {
        min-height: 44px;
    }
}

/* ==========================================================================
   TEBA LEAGUE HUB — DESIGN SYSTEM IMPLEMENTATION  v1.0.81
   Source: TEBA League Hub Claude Design export
   Implements the exact responsive spec from league-hub-app.jsx + Hub CSS.

   Key design decisions (copied verbatim from design):
     • Gutter: 56px desktop → 18px (≤760px) → 14px (≤430px)
     • Breakpoints: 760px (mobile pivot), 430px (small phone), 1100px (tablet)
     • Mobile nav: burger button shows, .teba-nav-wrapper hides
     • Mobile menu: full-width dropdown inside <header>, JS-toggled
     • Grid collapse: all multi-col grids → 1fr at ≤760px
     • Type scale: h1 = clamp(30px,8.4vw,58px), h2 = clamp(22px,5.8vw,38px)
     • hub-table-lg: overflow-x scroll (not collapse) on mobile
   ========================================================================== */

/* ── Hub CSS variable aliases (design uses --hub-*, theme uses --color-*) ── */
:root {
  /* Design-system gutter — matches --hub-gutter from design */
  --hub-gutter: 56px;

  /* Hub colour aliases so design-sourced component CSS works unchanged */
  --hub-paper:   var(--color-paper);
  --hub-paper-2: var(--color-paper-2);
  --hub-card:    var(--color-card);
  --hub-ink:     var(--color-ink);
  --hub-ink-2:   var(--color-ink-2);
  --hub-mute:    var(--color-mute);
  --hub-line:    var(--color-line);
  --hub-line-2:  var(--color-line-2);
  --hub-accent:  var(--color-accent);
  --hub-navy:    var(--color-navy);
  --hub-gold:    var(--color-gold);
  --hub-good:    var(--color-good);
  --hub-bad:     var(--color-bad);

  /* Hub font aliases */
  --hub-display: var(--font-display);
  --hub-ui:      var(--font-ui);
  --hub-mono:    var(--font-mono);
  --hub-serif:   var(--font-serif);
}

/* ── Live dot animation (from design CSS verbatim) ───────────────────────── */
@keyframes hubBlink { 0%, 100% { opacity: 1 } 50% { opacity: .35 } }
.hub-live-dot {
  display: inline-block;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--color-accent);
  animation: hubBlink 1.2s infinite;
  flex-shrink: 0;
  vertical-align: middle;
}

/* ── Hub table system (used throughout sportspress pages) ───────────────── */
.hub-table { width: 100%; border-collapse: collapse; }
.hub-table th {
  font-family: var(--font-mono); font-size: 10px; font-weight: 700;
  letter-spacing: .16em; text-transform: uppercase; color: var(--color-mute);
  padding: 10px 6px; text-align: center;
  border-bottom: 1px solid var(--color-line-2);
}
.hub-table td {
  padding: 10px 6px; text-align: center;
  font-family: var(--font-ui); font-variant-numeric: tabular-nums;
  border-bottom: 1px solid var(--color-line); font-size: 13px;
}
.hub-table tr:last-child td { border-bottom: none; }

/* Larger variant — standings, box scores, game logs */
.hub-table-lg { width: 100%; border-collapse: collapse; }
.hub-table-lg th {
  font-family: var(--font-mono); font-size: 11px; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase; color: var(--color-mute);
  padding: 14px 10px; text-align: center;
  border-bottom: 2px solid var(--color-ink);
  background: var(--color-paper); white-space: nowrap;
}
.hub-table-lg td {
  padding: 14px 10px; text-align: center;
  font-family: var(--font-ui); font-variant-numeric: tabular-nums;
  border-bottom: 1px solid var(--color-line); font-size: 13.5px;
}
.hub-table-lg tbody tr:hover { background: rgba(26,26,26,.04); }

/* ── Hub inputs / selects (used in filter bars, newsletters, etc.) ───────── */
.hub-select {
  font-family: var(--font-mono); font-size: 11px; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase;
  padding: 9px 32px 9px 14px; background: var(--color-card);
  border: 1px solid var(--color-line-2); color: var(--color-ink);
  appearance: none; cursor: pointer;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'><path d='M2 4l3 3 3-3' stroke='%230B0B0C' stroke-width='1.6' fill='none'/></svg>");
  background-repeat: no-repeat; background-position: right 12px center;
}
.hub-input {
  font-family: var(--font-ui); font-size: 14px;
  padding: 12px 16px;
  background: var(--color-card); border: 1px solid var(--color-line-2);
  color: var(--color-ink); outline: none;
}
.hub-input:focus { border-color: var(--color-accent); }
.hub-input-dark { background: transparent; border-color: rgba(255,255,255,.25); color: #fff; }
.hub-input-dark::placeholder { color: rgba(255,255,255,.44); }

/* hub-btn matches design HubBtn component */
.hub-btn { transition: filter .14s, transform .04s; }
.hub-btn:hover { filter: brightness(1.05); }
.hub-btn:active { transform: translateY(1px); }
.hub-card-btn { transition: background .14s; }
.hub-card-btn:hover { background: rgba(26,26,26,.03); }

/* ── TOPBAR ─────────────────────────────────────────────────────────────── */
.teba-topbar {
  background: #000;
  color: #fff;
  padding: 7px var(--hub-gutter);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: .14em;
  text-transform: uppercase;
  line-height: 1.4;
}

.teba-topbar__left {
  display: flex;
  align-items: center;
  gap: 18px;
}

.teba-topbar__live {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.teba-topbar__right {
  display: flex;
  align-items: center;
  gap: 18px;
  opacity: .85;
}

.teba-topbar__sep { opacity: .4; }

/* ── MAIN HEADER ─────────────────────────────────────────────────────────── */
/* Override old rules with exact design spec */
.teba-header {
  background: var(--color-ink);
  color: var(--color-paper);
  border-bottom: 4px solid var(--color-accent);
  position: sticky;
  top: 0;
  z-index: 100;
}

.teba-header__inner {
  padding: 18px var(--hub-gutter) 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  max-width: var(--container-max);
  margin: 0 auto;
}

.teba-header__logo {
  display: flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
  color: inherit;
  flex-shrink: 0;
}

.teba-header__logo-img { height: 56px; width: auto; display: block; }
.teba-header__logo-fallback {
  width: 48px; height: 48px;
  background: var(--color-accent);
  display: grid; place-items: center;
  font-family: var(--font-display); font-weight: 900; font-size: 20px; color: #fff;
  flex-shrink: 0;
}

.teba-header__logo-words { min-width: 0; }

.teba-header__logo-text {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 22px;
  letter-spacing: -.02em;
  text-transform: uppercase;
  line-height: 1;
  color: #fff;
  white-space: nowrap;
}

.teba-header__logo-sub {
  font-family: var(--font-mono);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: .2em;
  color: rgba(255,255,255,.67);
  margin-top: 3px;
  white-space: nowrap;
}

/* Desktop nav wrapper — takes remaining space, hidden on mobile */
.teba-nav-wrapper {
  flex: 1;
  min-width: 0;
  display: flex;
  justify-content: center;
}

/* Nav list */
.teba-nav {
  display: flex;
  gap: 2px;
  list-style: none;
  margin: 0;
  padding: 0;
  flex-wrap: nowrap;
}

.teba-nav li { margin: 0; flex-shrink: 0; }

.teba-nav a {
  display: block;
  padding: 10px 12px;
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 12.5px;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--color-paper);
  text-decoration: none;
  transition: background var(--transition-fast), color var(--transition-fast);
  white-space: nowrap;
  line-height: 1.2;
}

.teba-nav a:hover,
.teba-nav .current-menu-item > a,
.teba-nav .current-page-ancestor > a,
.teba-nav .current_page_item > a {
  background: var(--color-accent);
  color: #fff;
}

/* Header actions cluster */
.teba-header__actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

/* Search btn — hidden on mobile */
.teba-header__search-btn {
  width: 36px; height: 36px;
  display: grid; place-items: center;
  padding: 0;
}

/* ── BURGER BUTTON ───────────────────────────────────────────────────────── */
/* Hidden on desktop; shown via media query on mobile */
.teba-burger {
  display: none;           /* desktop: hidden */
  width: 40px; height: 40px;
  place-items: center;     /* display:inline-grid set in media query */
  background: transparent;
  border: 1px solid rgba(255,255,255,.3);
  color: #fff;
  cursor: pointer;
  flex-shrink: 0;
  padding: 0;
  transition: border-color var(--transition-fast);
}
.teba-burger:hover { border-color: rgba(255,255,255,.6); }
.teba-burger[aria-expanded="true"] { border-color: var(--color-accent); }

/* ── MOBILE MENU DRAWER ──────────────────────────────────────────────────── */
/* Appended inside <header>, below the inner row.
   hidden attribute removes it from layout + a11y tree.
   When burger opens it: remove hidden, add .is-open for animation. */
.teba-mobile-menu {
  border-top: 1px solid rgba(255,255,255,.14);
  background: var(--color-ink);
  overflow: hidden;
  /* display is handled by hidden attr; animation via max-height */
}

.teba-mobile-nav {
  list-style: none;
  margin: 0;
  padding: 0;
}

.teba-mobile-nav li { margin: 0; }

.teba-mobile-nav a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  background: transparent;
  color: #fff;
  border: none;
  border-bottom: 1px solid rgba(255,255,255,.08);
  cursor: pointer;
  padding: 15px var(--hub-gutter);
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 16px;
  letter-spacing: .02em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background var(--transition-fast);
}

.teba-mobile-nav a:hover { background: rgba(255,255,255,.06); color: #fff; }

.teba-mobile-nav .current-menu-item > a,
.teba-mobile-nav .current-page-ancestor > a,
.teba-mobile-nav .current_page_item > a {
  background: var(--color-accent);
  color: #fff;
}

/* ── FOOTER (class-based, design-spec) ───────────────────────────────────── */
.teba-footer {
  background: #000;
  color: #fff;
}

.teba-footer__main {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 48px var(--hub-gutter) 36px;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr 1.4fr;
  gap: 36px;
}

/* Brand column */
.teba-footer__brand-link {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
  color: #fff;
  margin-bottom: 18px;
}

.teba-footer__logo-img { height: 64px; width: auto; display: block; }

.teba-footer__logo-fallback {
  width: 52px; height: 52px;
  background: var(--color-accent);
  display: grid; place-items: center;
  font-family: var(--font-display); font-weight: 900; font-size: 22px; color: #fff;
  clip-path: polygon(0 0, 100% 0, 100% 70%, 50% 100%, 0 70%);
  flex-shrink: 0;
}

.teba-footer__brand-name {
  font-family: var(--font-display);
  font-weight: 900; font-size: 22px;
  letter-spacing: -.02em; text-transform: uppercase; line-height: 1;
}

.teba-footer__brand-sub {
  font-family: var(--font-mono);
  font-size: 9.5px; font-weight: 700;
  letter-spacing: .2em; color: rgba(255,255,255,.5); margin-top: 2px;
}

.teba-footer__tagline {
  margin: 0 0 18px;
  font-family: var(--font-ui); font-size: 13px;
  line-height: 1.55; color: rgba(255,255,255,.63); max-width: 300px;
}

.teba-footer__socials {
  display: flex; gap: 8px;
}

.teba-footer__social-link {
  width: 34px; height: 34px;
  border: 1px solid rgba(255,255,255,.25);
  display: grid; place-items: center;
  font-family: var(--font-mono); font-size: 11px; font-weight: 700;
  letter-spacing: .06em; color: #fff; text-decoration: none;
  transition: border-color var(--transition-fast), background var(--transition-fast);
}
.teba-footer__social-link:hover {
  border-color: var(--color-accent);
  background: rgba(214,34,70,.15);
  color: #fff;
}

/* Nav columns */
.teba-footer__col-title {
  font-family: var(--font-mono);
  font-size: 10.5px; font-weight: 700;
  letter-spacing: .2em; text-transform: uppercase;
  color: var(--color-accent); margin-bottom: 14px;
  display: block;
}

.teba-footer__links {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 10px;
}

.teba-footer__links a {
  font-family: var(--font-ui); font-size: 14px;
  color: rgba(255,255,255,.87); text-decoration: none;
  transition: color var(--transition-fast);
}
.teba-footer__links a:hover { color: var(--color-accent); }

/* Newsletter column */
.teba-footer__newsletter-blurb {
  margin: 0 0 14px;
  font-family: var(--font-ui); font-size: 13px;
  color: rgba(255,255,255,.63); line-height: 1.55;
}

/* Bottom bar */
.teba-footer__bottom {
  max-width: var(--container-max); margin: 0 auto;
  padding: 18px var(--hub-gutter);
  border-top: 1px solid rgba(255,255,255,.12);
  display: flex; justify-content: space-between; align-items: center;
  font-family: var(--font-mono); font-size: 11px;
  color: rgba(255,255,255,.5); letter-spacing: .1em; text-transform: uppercase;
  gap: 12px; flex-wrap: wrap;
}

.teba-footer__legal-links {
  display: flex; gap: 18px; list-style: none; margin: 0; padding: 0;
}
.teba-footer__legal-links a,
.teba-footer__legal-link {
  color: rgba(255,255,255,.5); text-decoration: none;
  transition: color var(--transition-fast);
}
.teba-footer__legal-links a:hover,
.teba-footer__legal-link:hover { color: #fff; }
.teba-footer__sep { opacity: .3; }

/* ============================================================
   BREAKPOINTS — exact match to design system
   ============================================================ */

/* ── 1100px — tablet: tighten gutter, reflow footer ─────────────────────── */
@media (max-width: 1100px) {
  :root {
    --hub-gutter: 32px;
    --container-pad: 32px;
  }

  .teba-footer__main {
    grid-template-columns: 1.4fr 1fr 1fr;
    /* brand + 2 nav cols first row, newsletter spans below */
  }

  /* Push newsletter to full width on its own row */
  .teba-footer__newsletter-col {
    grid-column: 1 / -1;
  }

  .teba-nav a { padding: 9px 10px; font-size: 11.5px; }
}

/* ── 900px — extra footer collapse ──────────────────────────────────────── */
@media (max-width: 900px) {
  .teba-footer__main {
    grid-template-columns: 1fr 1fr;
  }
  .teba-footer__brand-col {
    grid-column: 1 / -1;  /* full width */
  }
}

/* ── 760px — MOBILE PIVOT (design primary breakpoint) ───────────────────── */
@media (max-width: 760px) {

  /* === Gutter === */
  :root {
    --hub-gutter: 18px;
    --container-pad: 18px;
  }

  /* === Topbar === */
  /* Hide date/season meta on mobile — exactly as design's .hub-hide-mobile */
  .teba-topbar__right { display: none; }

  /* === Header === */
  .teba-header__inner {
    padding: 14px var(--hub-gutter) 12px;
    gap: 14px;
  }

  /* Logo sub-line disappears on mobile */
  .teba-header__logo-sub { display: none; }
  .teba-header__logo-text { font-size: 18px; }
  .teba-header__logo-img { height: 42px; }

  /* Desktop nav wrapper disappears */
  .teba-nav-wrapper { display: none !important; }

  /* Search button hidden (touch users use mobile menu) */
  .teba-header__search-btn { display: none !important; }

  /* Burger appears */
  .teba-burger { display: inline-grid !important; }

  /* === Mobile drawer padding inherits --hub-gutter === */
  /* (already set via padding: 15px var(--hub-gutter) on .teba-mobile-nav a) */

  /* === Layout grids — all collapse to 1 column === */
  .teba-grid-2,
  .teba-grid-3,
  .teba-grid-4,
  .teba-grid-sidebar {
    grid-template-columns: 1fr !important;
  }

  /* Theme pages that use inline grid styles */
  #teba-content [style*="grid-template-columns"]:not([data-preserve-grid]) {
    grid-template-columns: 1fr !important;
  }

  /* === Typography — design spec clamp values === */
  /* Design: h1 = clamp(30px, 8.4vw, 58px) */
  h1,
  .teba-display--xl {
    font-size: clamp(30px, 8.4vw, 58px) !important;
    line-height: .92 !important;
    letter-spacing: -.03em !important;
    overflow-wrap: anywhere;
  }
  /* Design: h2 = clamp(22px, 5.8vw, 38px) */
  h2,
  .teba-display--lg {
    font-size: clamp(22px, 5.8vw, 38px) !important;
    overflow-wrap: anywhere;
  }
  h3 { overflow-wrap: anywhere; }
  .teba-display--md { font-size: clamp(18px, 4.5vw, 28px) !important; }

  /* === Tables — horizontal scroll per design spec === */
  /* Design: .hub-table-lg → display:block; overflow-x:auto */
  .hub-table-lg,
  .sp-table-wrapper,
  .teba-standings-wrap,
  .teba-boxscore-wrap {
    display: block !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  /* === Section heads — stack kicker + title + action vertically === */
  .teba-section-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }

  /* === Footer === */
  .teba-footer__main {
    grid-template-columns: 1fr;
    padding: 36px var(--hub-gutter) 28px;
    gap: 28px;
  }
  .teba-footer__brand-col,
  .teba-footer__newsletter-col {
    grid-column: auto;    /* reset the wider spans */
  }
  .teba-footer__bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding: 16px var(--hub-gutter);
  }
  .teba-footer__tagline { max-width: 100%; }

  /* === Container padding === */
  .teba-container,
  .teba-container--narrow {
    padding-left: var(--hub-gutter);
    padding-right: var(--hub-gutter);
  }

  /* === Score cards grid (scores page) === */
  .teba-scores-grid {
    grid-template-columns: 1fr !important;
  }

  /* === Shop / product grid: 2 columns on mobile (design keeps 2) === */
  .teba-shop-grid,
  .teba-product-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 12px !important;
  }

  /* === Single event — hero stacks === */
  .teba-event-hero__teams {
    gap: 16px;
  }
  .teba-event-hero__score { font-size: clamp(48px, 14vw, 80px) !important; }

  /* === Ticket layout === */
  .teba-ticket-layout { grid-template-columns: 1fr !important; }
  .teba-ticket-summary--desktop { display: none !important; }
  .teba-ticket-summary--mobile  { display: block !important; }

  /* === Player / team gamelog table — scrollable === */
  .teba-player-gamelog,
  .teba-team-gamelog {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* === Leaders page filters: stack === */
  .teba-leaders-filter-row {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }
  .teba-leaders-filter-row .hub-select { width: 100%; }

  /* === Standings filter tabs: allow wrapping === */
  .teba-standings-tabs {
    flex-wrap: wrap;
    gap: 4px;
  }

  /* === News grid: single column === */
  .teba-news-grid {
    grid-template-columns: 1fr !important;
  }

  /* === Player/team cards: 2-column grid → 1 column === */
  .teba-players-grid,
  .teba-teams-grid {
    grid-template-columns: 1fr !important;
  }

  /* === Hero sections: reduce vertical padding === */
  [style*="padding:\"40px 56px\""],
  [style*="padding: 40px 56px"] {
    padding: 24px var(--hub-gutter) !important;
  }
}

/* ── 430px — SMALL PHONE (design secondary breakpoint) ──────────────────── */
@media (max-width: 430px) {

  :root {
    --hub-gutter: 14px;
    --container-pad: 14px;
  }

  .teba-header__logo-text { font-size: 16px; }
  .teba-header__logo-img  { height: 36px; }
  .teba-footer__logo-img  { height: 48px; }

  /* Even tighter heading floor */
  h1, .teba-display--xl { font-size: clamp(26px, 8vw, 40px) !important; }
  h2, .teba-display--lg { font-size: clamp(20px, 6vw, 32px) !important; }

  /* Shop collapses to 1 column on smallest screens */
  .teba-shop-grid,
  .teba-product-grid {
    grid-template-columns: 1fr !important;
  }

  /* Stats reduce */
  .teba-stat__value,
  .hub-stat-value { font-size: 2rem !important; }

  /* Mobile nav font size holds */
  .teba-mobile-nav a { font-size: 15px; }

  /* Footer socials smaller gap */
  .teba-footer__socials { gap: 6px; }

  /* Newsletter form: stack input + button */
  .teba-newsletter-form,
  #teba-newsletter-form {
    flex-direction: column;
  }
  .teba-newsletter-form input,
  #teba-newsletter-form input {
    width: 100%;
  }
}

/* ── Reduced motion ──────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .hub-live-dot { animation: none !important; opacity: 1; }
  *  { transition-duration: .01ms !important; }
  *  { animation-duration: .01ms !important; }
}

