/* HTBF v4 — readability, live-data components and native WordPress content.
   Loaded after styles.css and refined.css. Minimum text size: 18px.
   Body copy: 20px. Gold accent warmed toward the homepage photo's sunset. */
:root{
  --gold:#e39a5c;          /* was #e8b356; matches the quarterback photo's sunset (#cf8e60) */
  --gold-ink:#7c3f12;      /* text-on-light version, 8.6:1 on white */
  --gold-soft:#fcefe4;
  --muted:#38434f;         /* darker supporting text, 9.6:1 on white */
  --line:#c3cbd4;
  --live:#c8102e;
  --ok:#1c6248;
}
body{font-size:20px;line-height:1.65;font-weight:500;color:var(--ink)}
p,li,dd,td,th,label,input,select,textarea,button,summary{font-size:max(18px,1em)}
small,.small-copy,.eyebrow,.footer-bottom,.footer a,.breadcrumb,.legend,.board-footer,.data-label,.form-message,.field-hint{font-size:18px!important;line-height:1.5}
.eyebrow{letter-spacing:.06em;font-weight:800;color:var(--gold-ink)}
.footer .eyebrow,.front-copy .eyebrow,.sport-hero .eyebrow,.footer-bottom{color:inherit}
.button{min-height:52px;font-size:18px;font-weight:800}
.button-small{min-height:46px;padding:10px 16px;font-size:18px}
.field{font-size:20px;min-height:52px}
a:focus-visible,button:focus-visible,summary:focus-visible,.field:focus-visible{outline:3px solid var(--gold);outline-offset:3px;box-shadow:0 0 0 6px var(--navy)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---------- team icons (decorated by the site's existing mascot script) ---------- */
.htbf-g{position:relative}
.htbf-g-lg{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.htbf-t-dot{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:50px;height:50px;border-radius:50%;color:#fff;font-size:18px!important;font-weight:900;letter-spacing:-.06em;line-height:1;overflow:hidden;white-space:nowrap;box-shadow:inset 0 0 0 2px rgba(255,255,255,.18)}
.htbf-t-dot svg{width:36px;height:36px}
.htbf-t-dot[data-m]{background:#fff!important;box-shadow:inset 0 0 0 1px var(--line)}

/* ---------- state boxes ---------- */
.live-slot{min-height:120px}
.live-loading{display:flex;align-items:center;gap:14px;padding:26px;border:1px dashed var(--line);border-radius:var(--radius);color:var(--muted);font-weight:700}
.spinner{width:22px;height:22px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--navy);animation:htbf-spin .9s linear infinite}
@keyframes htbf-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.spinner{animation:none}}
.state-box{background:#fff;border:1px solid var(--line);border-left:6px solid var(--navy);border-radius:var(--radius);padding:22px 24px;margin:0 0 20px}
.state-box strong{display:block;font-size:21px;margin-bottom:6px}
.state-box p{margin:0 0 12px;color:var(--muted)}
.state-error{border-left-color:var(--live)}
.source-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:14px 0 0;color:var(--muted);font-size:18px}
.source-line .dot{width:10px;height:10px;border-radius:50%;background:var(--ok);display:inline-block}
.source-line.is-stale .dot{background:var(--gold)}
.source-line.is-stale{color:var(--gold-ink)}

/* ---------- score cards ---------- */
.score-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.score-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px 18px 14px;display:flex;flex-direction:column;gap:10px;box-shadow:0 1px 0 rgba(16,30,49,.04)}
.score-card.is-live{border-color:var(--live);box-shadow:0 0 0 2px rgba(200,16,46,.12)}
.score-card header{display:flex;justify-content:space-between;gap:10px;align-items:baseline;font-size:18px;font-weight:800;color:var(--muted)}
.score-card.is-live .score-status{color:var(--live)}
.score-tv{font-weight:700;font-size:18px;text-align:right}
.live-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--live);margin-right:8px;animation:htbf-pulse 1.6s ease-in-out infinite}
@keyframes htbf-pulse{50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.live-dot{animation:none}}
.score-team{display:flex;align-items:center;gap:12px;min-height:46px}
.score-name{flex:1;font-size:20px;font-weight:750;line-height:1.3}
.score-name a{color:inherit;text-decoration:none}
.score-name a:hover{text-decoration:underline}
.score-name small{font-weight:600;color:var(--muted)}
.score-name .rank{font-weight:800;color:var(--gold-ink);margin-right:6px}
.score-value{font-size:28px;font-weight:900;min-width:2ch;text-align:right;font-variant-numeric:tabular-nums}
.score-team.is-winner .score-name,.score-team.is-winner .score-value{color:var(--ink)}
.score-card.is-final .score-team:not(.is-winner) .score-value{color:var(--muted);font-weight:700}
.score-card footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 14px;border-top:1px solid var(--line);padding-top:10px;margin-top:2px}
.line-summary{font-size:18px;font-weight:650}
.line-summary.muted{color:var(--muted);font-weight:600}
.day-heading{margin:30px 0 14px;font-size:24px}

/* ---------- chips, tabs, day nav ---------- */
.sport-chips{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 18px}
.chip{min-height:48px;padding:8px 18px;border-radius:999px;border:2px solid var(--navy);background:#fff;color:var(--navy);font-weight:800;font-size:18px;cursor:pointer}
.chip[aria-pressed="true"]{background:var(--navy);color:#fff}
.section-tabs{display:flex;gap:6px;overflow-x:auto;border-bottom:2px solid var(--line);margin:22px 0 26px;scrollbar-width:thin}
.section-tabs a{flex:0 0 auto;padding:14px 18px;font-size:18px;font-weight:800;color:var(--muted);text-decoration:none;border-bottom:4px solid transparent;margin-bottom:-2px}
.section-tabs a:hover{color:var(--ink)}
.section-tabs a.active{color:var(--ink);border-bottom-color:var(--gold)}
.day-nav{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin:0 0 22px}
.day-nav strong{font-size:22px}
.day-pick .field{min-height:46px;font-size:18px;padding:6px 10px}

/* ---------- tables ---------- */
.data-table{width:100%;border-collapse:collapse;background:#fff;font-size:18px}
.data-table th,.data-table td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;font-size:18px}
.data-table thead th{background:var(--navy);color:#fff;font-weight:800;white-space:nowrap}
.data-table tbody th{font-weight:750}
.data-table td{font-variant-numeric:tabular-nums}
.table-team{display:inline-flex;align-items:center;gap:10px}
.table-team a{color:inherit;font-weight:750}
.standings-group{margin:0 0 30px}
.standings-group h3{margin:0 0 10px;font-size:24px}
.status-pill{display:inline-block;padding:2px 10px;border-radius:999px;background:var(--gold-soft);color:var(--gold-ink);font-weight:800;font-size:18px}
.injury-team{background:#fff;border:1px solid var(--line);border-radius:var(--radius);margin:0 0 12px}
.injury-team summary{cursor:pointer;padding:16px 18px;font-size:20px;display:flex;justify-content:space-between;gap:12px}
.injury-team summary span{color:var(--muted);font-weight:700}

/* ---------- teams ---------- */
.team-search{max-width:520px;margin:0 0 20px}
.team-search label{display:block;font-weight:800;margin-bottom:6px}
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.team-tile{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;color:var(--ink);text-decoration:none}
.team-tile:hover{border-color:var(--navy)}
.team-tile strong{display:block;font-size:20px;line-height:1.25}
.team-tile small{color:var(--muted);font-weight:700}
.team-hero{display:flex;align-items:center;gap:22px;padding:26px}
.team-hero .htbf-t-dot{width:84px;height:84px;font-size:22px!important}
.team-hero .htbf-t-dot svg{width:62px;height:62px}
.team-hero h1{margin:4px 0}
.team-record{margin:0;font-size:20px;font-weight:700;color:var(--muted)}

/* ---------- game detail ---------- */
.game-hero{padding:26px}
.game-hero-status{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:baseline;margin-bottom:18px}
.game-hero-status strong{font-size:22px}
.game-hero-teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px}
.game-hero-team{display:grid;justify-items:center;text-align:center;gap:6px}
.game-hero-team .htbf-t-dot{width:72px;height:72px}
.game-hero-team .htbf-t-dot svg{width:54px;height:54px}
.game-hero-team a{color:inherit;text-decoration:none;font-size:22px}
.game-hero-team small{color:var(--muted);font-weight:700}
.game-hero-score{font-size:52px;font-weight:900;font-variant-numeric:tabular-nums;line-height:1}
.game-hero-team.is-winner .game-hero-score{color:var(--ok)}
.game-at{font-size:26px;font-weight:900;color:var(--muted)}
.game-venue{margin:18px 0 0;text-align:center;color:var(--muted);font-weight:700}
.leader-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.leader-grid ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.leader-grid li{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
.leader-grid li span{color:var(--muted);font-weight:700;min-width:120px}

/* ---------- news, headlines, share ---------- */
.headline-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.headline-list li{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}
.headline-list a{color:var(--ink);text-decoration:none;display:grid;gap:4px}
.headline-list a strong{font-size:21px;line-height:1.3}
.headline-list a:hover strong{text-decoration:underline}
.headline-list a span{color:var(--muted)}
.headline-list small{display:block;margin-top:8px;color:var(--muted);font-weight:700}
.post-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.post-card{padding:22px}
.post-card h3{margin:8px 0;font-size:24px;line-height:1.25}
.post-card h3 a{color:inherit}
.post-card p{color:var(--muted)}
.share-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:18px 0 6px}
.share-bar>span{font-weight:800}
.share-link{font-weight:800}
.two-col{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:30px}
.research-cards.compact{grid-template-columns:1fr!important}
.research-cards.compact .panel{padding:18px 20px}

/* ---------- help and site map ---------- */
.faq-list{display:grid;gap:12px}
.faq-item{background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
.faq-item summary{cursor:pointer;padding:18px 20px;font-size:21px;font-weight:800}
.faq-item p{margin:0;padding:0 20px 20px;color:var(--muted)}
.map-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:30px}
.map-list{list-style:none;padding:0;margin:0 0 24px}
.map-list li{margin:8px 0}
.map-list ul{list-style:none;padding:0 0 0 18px;margin:6px 0}
.map-list a{font-weight:700}

/* ---------- ticker ---------- */
.ticker-empty{display:flex;align-items:center;padding:0 18px;font-weight:700;color:inherit;opacity:.9}
.ticker-game small{font-size:18px!important}

/* ---------- footer social ---------- */
.social-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.social-links a{display:inline-flex;align-items:center;min-height:46px;padding:8px 14px;border:1px solid rgba(255,255,255,.35);border-radius:999px;font-weight:800;color:#fff;text-decoration:none}
.social-links a:hover{background:rgba(255,255,255,.1)}

/* ---------- native WordPress content (pages and posts) ---------- */
.native-page{padding-top:28px;padding-bottom:60px}
.native-content{max-width:860px;font-size:20px;line-height:1.7}
.native-content h1{font-size:clamp(36px,4vw,54px);line-height:1.1;margin:10px 0 18px}
.native-content h2{font-size:32px;margin:40px 0 12px}
.native-content h3{font-size:25px;margin:30px 0 10px}
.native-content p,.native-content li{font-size:20px}
.native-content a{font-weight:700}
.native-content img{max-width:100%;height:auto;border-radius:var(--radius)}
.native-content table{width:100%;border-collapse:collapse}
.native-content th,.native-content td{border-bottom:1px solid var(--line);padding:10px;font-size:18px}
.post-meta{color:var(--muted);font-weight:700;margin:0 0 18px}
.archive-list{display:grid;gap:18px;max-width:860px}
.legacy-content{max-width:none}
/* Zero-specificity defaults; the previous theme's scoped CSS overrides them when it is loaded. */
:where(.legacy-content)>:where(.wp-block-post-content){max-width:var(--max);margin-inline:auto;padding:0 16px 40px}
:where(.legacy-content) :where(p,li){font-size:max(18px,1em)}
.pagination-links{display:flex;gap:16px;margin:30px 0}

@media (max-width:900px){
  .two-col{grid-template-columns:1fr}
  .game-hero-teams{grid-template-columns:1fr;gap:10px}
  .game-at{display:none}
  .game-hero-team{grid-template-columns:auto 1fr auto;justify-items:start;text-align:left;align-items:center}
  .game-hero-team small{grid-column:2}
  .game-hero-score{grid-row:1/3;grid-column:3;font-size:42px}
}
@media (max-width:560px){
  .score-grid,.post-grid,.team-grid{grid-template-columns:1fr}
  .team-hero{flex-direction:column;align-items:flex-start}
  .day-nav strong{width:100%;order:-1}
  .data-table th,.data-table td{padding:10px}
}

/* Phone odds board: fit the posted lines on screen instead of a sideways scroll. */
@media (max-width:640px){
  .odds-table{min-width:0!important;width:100%;table-layout:fixed}
  .odds-table thead th:first-child,.odds-table td:first-child{width:48%}
  .odds-table th,.odds-table td{padding:10px 6px}
  .odds-table .book-heading{flex-direction:column;align-items:center;text-align:center;gap:2px;white-space:normal;word-break:break-word}
  .odds-table .book-mark{display:inline-flex;align-items:center;justify-content:center;width:auto;height:auto;min-width:46px;padding:4px 8px;white-space:nowrap;font-size:18px!important}
  .odds-table .book-title{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .odds-table .matchup-cell .htbf-t-dot,.odds-table .team-badge{width:38px;height:38px}
  .odds-table .team-line{gap:6px;min-width:0}
  .odds-table .team-line>span:last-child{min-width:0;hyphens:auto;overflow-wrap:anywhere}
  .odds-table .matchup-cell .htbf-t-dot,.odds-table .team-badge{width:34px!important;height:34px!important}
  .odds-stack{gap:6px}
  .odd-button{width:100%;min-width:0;padding:8px 2px;display:flex;flex-direction:column;align-items:center}
  .odd-button span,.odd-button small{font-size:18px!important;line-height:1.25}
  .game-meta{flex-wrap:wrap;gap:2px 8px}
}

/* Text floor on pages that keep their original content: beats the old theme's sizes, WordPress's
   small-font presets (13px !important) and inline sizes. Headings keep their own sizes. */
html body .legacy-content:not(#x1):not(#x2):not(#x3):not(#x4):not(#x5):not(#x6) :is(p,li,dd,dt,td,th,label,small,figcaption,blockquote,span,a,button,input,select,textarea,.has-small-font-size,.has-x-small-font-size,.has-medium-font-size){font-size:max(18px,1em)!important}

/* Homepage quarterback: keep the whole player (number 12 and his right side) in frame on wider screens. */
@media (min-width: 641px) { .front-visual > .photo img { object-position: 82% center; } }

/* Page headings: the picture fills the space beside the title on computers
   instead of leaving an empty gap (clubs, news, odds, scores, teams, guides). */
@media (min-width: 1001px) {
  .visual-page-head { max-width: none; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); }
  .page-heading-image { height: 320px; }
}

/* Clubs: every club's Join Free button uses the same filled color as the header Join Free (Abe, Oct 20) */
.club-card .button-outline,.hx-club .button-outline{background:var(--gold);border:1px solid var(--gold);color:#142235}
