/*
Theme Name: Football Network V5 Basketball
Theme URI: https://seoprize.ru
Author: SEOPrize
Author URI: https://seoprize.ru
Description: Баскетбольная тема на основе V5. ОТДЕЛЬНАЯ КОПИЯ, а не дочерняя: футбольные
 темы и их сайты этой темой не затрагиваются никак. Плата принята сознательно — правка
 футбольной темы сюда НЕ приезжает, здесь остаётся версия, с которой копия снята.
 Решение владельца от 01.09.2026.
Version: 5.0.0-bb1
Text Domain: football-network-theme-v5
*/

/* ============================================================
   FONTS — Inter (sole family)
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');

/* ============================================================
   CSS VARIABLES — DEFAULTS
   Brand overrides injected by header.php via inline <style>:
     --club-primary   (fnw_primary_color)
     --club-secondary (fnw_secondary_color)
     --accent         (fnw_theme_color)
     --bg, --bg-alt, --border — пересчитываются из --club-secondary
       в header.php (light tint of brand вместо нейтрального бежевого).
   ============================================================ */
:root {
  /* Page backgrounds — нейтральный белый по умолчанию,
     переопределяется в header.php оттенком secondary из site.json. */
  --bg:      #ffffff;
  --bg-alt:  #f7fafc;
  --bg-dark: #0E1A14;
  --bg-dark-2: #102b1f;
  /* Ink */
  --ink:   #111111;
  --ink2:  #333333;
  --muted: #6b6b6b;
  --faint: #9a9a9a;
  --border: rgba(0,0,0,0.08);
  --border-dark: rgba(255,255,255,0.08);
  /* Aliases legacy V2 — клубные цвета (переопределяются в header.php) */
  --green:     var(--club-primary, #1B4332);
  --green-mid: var(--club-secondary, #2D6A4F);
  --green-soft:#D8F3DC;
  /* Club brand (injected by PHP) */
  --club-primary:   #1B4332;
  --club-secondary: #2D6A4F;
  /* Neon accents (sparse) */
  --cyan:       #00b4d8;
  --cyan-strong:#00d4ff;
  --purple:     #7c3aed;
  --pink:       #ff2d6b;
  --gold:       #C49A3C;
  /* Status */
  --win:  #2D6A4F;
  --draw: #C49A3C;
  --loss: #8B2020;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  background: var(--bg);
  color: var(--ink);
  font-family: 'Inter', system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }
ul { list-style: none; }
img { max-width: 100%; display: block; }

/* ─── TOP STRIP (classic accent bar) ─────────────────────────
   Layout: LEFT = next-match ticker; RIGHT = languages + geo. */
.fnwv2-topstrip, .top-strip {
  background: var(--accent, var(--bg-dark));
  color: rgba(255,255,255,0.92);
  font-size: 12px; height: 38px;
  display: flex; align-items: center;
  font-weight: 600; letter-spacing: 0.4px;
}
.fnwv2-topstrip-inner, .top-strip-inner {
  max-width: 1280px; margin: 0 auto; width: 100%;
  padding: 0 32px; display: flex; align-items: center;
  justify-content: space-between; gap: 24px;
}
/* LEFT: next match ticker */
.topstrip-next-match {
  display: inline-flex; align-items: center; gap: 8px;
  color: rgba(255,255,255,0.95); font-weight: 600;
  letter-spacing: 0.3px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  min-width: 0; flex: 1;
}
.tnm-icon { font-size: 14px; line-height: 1; }
.tnm-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* RIGHT: lang switcher + geo */
.topstrip-right {
  display: inline-flex; align-items: center; gap: 22px;
  flex: none;
}
.fnwv2-topstrip-loc, .top-strip-left {
  display: inline-flex; align-items: center; gap: 8px;
  font-weight: 600; letter-spacing: 0.3px;
  color: rgba(255,255,255,0.92);
}
.fnwv2-topstrip-loc span, .top-strip-left span {
  display: inline-flex; align-items: center; gap: 6px;
}
.fnwv2-topstrip-flag, .top-strip-left .flag { font-size: 14px; line-height: 1; }

/* Languages — text links, no pills */
.top-strip-langs, .fnwv3-langs { display: inline-flex; gap: 16px; align-items: center; }
.top-strip-langs a, .fnwv3-langs .lang-btn {
  padding: 0; font-size: 11.5px; font-weight: 700;
  letter-spacing: 1.2px; text-transform: uppercase;
  color: rgba(255,255,255,0.7); border-radius: 0;
  background: transparent; border: none;
  transition: color .2s;
}
.top-strip-langs a:hover, .fnwv3-langs .lang-btn:hover { color: #fff; background: transparent; }
.top-strip-langs a.active, .fnwv3-langs .lang-btn.active { color: #fff; background: transparent; }

/* ─── NAV (classic: white bg, accent border-bottom, round shield) ── */
nav.site-nav {
  position: sticky; top: 0; z-index: 100;
  background: #ffffff;
  border-bottom: 3px solid var(--accent, var(--bg-dark));
  height: 84px;
  display: flex; align-items: center;
  box-shadow: 0 1px 0 rgba(0,0,0,0.02);
}
.nav-inner {
  max-width: 1280px; margin: 0 auto; width: 100%;
  padding: 0 32px; display: flex; align-items: center;
  justify-content: space-between; gap: 28px;
}
/* Logo area — round crest + name + founded sub */
a.nav-logo { display: flex; align-items: center; gap: 16px; text-decoration: none; flex: none; }
.nav-shield {
  width: 56px; height: 56px; border-radius: 50%;
  background: var(--accent, var(--bg-dark));
  display: flex; align-items: center; justify-content: center;
  color: white; font-weight: 900; font-size: 22px;
  border: 3px solid var(--secondary, var(--accent));
  overflow: hidden; flex: none;
}
.nav-shield img { width: 78%; height: 78%; object-fit: contain; border-radius: 50%; background: white; }
.nav-logo-text { display: flex; flex-direction: column; line-height: 1.15; }
.nav-club-name {
  font-size: 22px; font-weight: 900; color: var(--accent, var(--bg-dark));
  letter-spacing: -0.3px; line-height: 1.1;
  font-family: inherit;
  text-transform: none;
}
.nav-club-sub {
  font-size: 11px; color: var(--muted); font-weight: 600;
  letter-spacing: 2px; text-transform: uppercase; margin-top: 3px;
}
/* Nav menu wrap */
.nav-menu-wrap { display: flex; flex: 1; }
.nav-links { display: flex; gap: 4px; flex: 1; justify-content: center; }
.nav-links li { display: flex; align-items: center; }
.nav-links a {
  display: flex; align-items: center; height: 84px;
  padding: 0 16px;
  font-size: 14px; font-weight: 600; color: var(--ink, #1A1A1A);
  letter-spacing: 0.3px; transition: color .2s, border-color .2s;
  border-bottom: 3px solid transparent; margin-bottom: -3px;
}
.nav-links a:hover {
  color: var(--accent, var(--bg-dark));
  border-bottom-color: var(--accent, var(--bg-dark));
}
.nav-links li.current-menu-item > a,
.nav-links a.active {
  color: var(--accent, var(--bg-dark));
  border-bottom-color: var(--accent, var(--bg-dark));
}
/* Nav right (lang switcher + burger) */
.nav-right { display: flex; align-items: center; gap: 8px; }
.lang-btn {
  padding: 5px 10px; font-size: 11px; font-weight: 700;
  letter-spacing: 1px; text-transform: uppercase;
  color: var(--muted); border: 1px solid var(--border); border-radius: 6px;
  transition: color .2s, border-color .2s;
}
.lang-btn:hover { color: var(--green); border-color: var(--green); }
.lang-btn.active { color: var(--ink); background: var(--bg-alt); }
/* Burger */
.nav-burger {
  background: none; border: none; cursor: pointer; padding: 8px;
  color: var(--ink); display: none; align-items: center; justify-content: center;
  z-index: 110;
}

/* ─── PAGE HEADER (breadcrumb + title) ─────────────────────── */
.page-header { background: var(--bg-alt); border-bottom: 1px solid var(--border); padding: 56px 32px 48px; }
.page-header-inner { max-width: 1280px; margin: 0 auto; }
.breadcrumb { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 500; color: var(--muted); margin-bottom: 18px; letter-spacing: 0.3px; }
.breadcrumb a { color: var(--muted); transition: color .2s; }
.breadcrumb a:hover { color: var(--green); }
.breadcrumb-sep { color: var(--faint); }
.page-title { font-size: clamp(40px, 5vw, 64px); font-weight: 900; line-height: 1; letter-spacing: -2.5px; color: var(--ink); }
.page-title em { font-style: normal; color: var(--primary); }
.page-subtitle { margin-top: 14px; font-size: 17px; line-height: 1.55; color: var(--muted); max-width: 720px; }

/* ─── PAGE CONTENT ─────────────────────────────────────────── */
.page-content { max-width: 1280px; margin: 0 auto; padding: 64px 32px; }

/* ─── SECTION HEAD ─────────────────────────────────────────── */
.sec-head { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.sec-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: var(--green); margin-bottom: 10px; display: flex; align-items: center; gap: 10px; }
.sec-eyebrow::before { content: ''; width: 24px; height: 1px; background: var(--green); opacity: 0.5; }
.sec-title { font-size: clamp(28px, 3vw, 40px); font-weight: 900; line-height: 1.05; letter-spacing: -1.5px; color: var(--ink); }
.sec-link { font-size: 13px; font-weight: 600; color: var(--green); display: inline-flex; align-items: center; gap: 6px; border-bottom: 1px solid transparent; padding-bottom: 2px; transition: border-color .2s, gap .2s; }
.sec-link:hover { border-color: var(--green); gap: 10px; }

/* ─── BUTTONS ──────────────────────────────────────────────── */
.btn { display: inline-flex; align-items: center; gap: 10px; padding: 16px 30px; border-radius: 12px; font-size: 14px; font-weight: 600; letter-spacing: 0.3px; cursor: pointer; transition: transform .2s, box-shadow .2s, background .2s; border: 1px solid transparent; font-family: inherit; }
.btn-primary { background: linear-gradient(135deg, var(--cyan), var(--purple)); color: white; box-shadow: 0 10px 24px -8px rgba(124,58,237,0.45); }
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 14px 32px -8px rgba(124,58,237,0.55); }
.btn-ghost { background: var(--bg-alt); color: var(--ink); border-color: var(--border); }
.btn-ghost:hover { border-color: var(--ink); }
/* Hero buttons */
.hero-btn-main {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 14px 28px; border-radius: 12px; font-size: 14px;
  font-weight: 700; background: var(--green); color: white;
  box-shadow: 0 8px 20px -6px rgba(27,67,50,0.5);
  transition: transform .2s, box-shadow .2s;
}
.hero-btn-main:hover { transform: translateY(-2px); box-shadow: 0 14px 28px -6px rgba(27,67,50,0.6); }
.hero-btn-sec {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 14px 28px; border-radius: 12px; font-size: 14px;
  font-weight: 600; background: var(--bg-alt); color: var(--ink);
  border: 1px solid var(--border); transition: border-color .2s;
}
.hero-btn-sec:hover { border-color: var(--ink); }

/* ─── FILTER BAR ───────────────────────────────────────────── */
.filter-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 14px 18px; background: var(--bg-alt); border: 1px solid var(--border); border-radius: 14px; margin-bottom: 32px; }
.filter-btn { padding: 7px 16px; background: transparent; border: 1px solid var(--border); border-radius: 999px; font-size: 12px; font-weight: 600; color: var(--ink2); cursor: pointer; transition: all .2s; font-family: inherit; }
.filter-btn:hover { border-color: var(--green); color: var(--green); }
.filter-btn.active { background: var(--green); color: white; border-color: var(--green); }

/* ─── PAGINATION ───────────────────────────────────────────── */
.pagination { display: flex; gap: 8px; justify-content: center; margin: 40px 0 0; }
.page-numbers {
  width: 40px; height: 40px; display: inline-flex; align-items: center;
  justify-content: center; background: var(--bg-alt); border: 1px solid var(--border);
  border-radius: 10px; font-size: 13px; font-weight: 700; color: var(--ink2);
  transition: all .2s;
}
.page-numbers:hover { border-color: var(--green); color: var(--green); }
.page-numbers.current { background: var(--green); color: white; border-color: var(--green); }

/* ─── PANEL ────────────────────────────────────────────────── */
.panel { background: var(--bg-alt); border: 1px solid var(--border); border-radius: 18px; overflow: hidden; }
.panel-head { padding: 20px 24px; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; }
.panel-head h3 { font-size: 22px; font-weight: 800; letter-spacing: -0.5px; color: var(--ink); display: flex; align-items: center; gap: 10px; }
.panel-head h3::before { content: ''; width: 4px; height: 22px; background: var(--green); border-radius: 2px; }

/* ─── INFO CARD (used on About/Contacts) ───────────────────── */
.info-card { background: var(--bg-alt); border: 1px solid var(--border); border-radius: 18px; overflow: hidden; }
.info-row { display: flex; justify-content: space-between; align-items: center; padding: 14px 20px; border-bottom: 1px solid var(--border); font-size: 14px; gap: 16px; }
.info-row:last-child { border-bottom: none; }
.info-label { color: var(--muted); font-weight: 500; }
.info-val { color: var(--ink); font-weight: 600; text-align: right; }

/* ─── ACHIEVEMENTS ─────────────────────────────────────────── */
.ach-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.ach-card { background: var(--bg-alt); border: 1px solid var(--border); border-radius: 18px; padding: 32px 24px; position: relative; overflow: hidden; }
.ach-card::after { content: ''; position: absolute; top: 0; left: 0; bottom: 0; width: 3px; background: var(--green); opacity: 0.5; }
.ach-card.gold::after { background: var(--gold); opacity: 1; }
.ach-card.featured::after { background: linear-gradient(180deg, var(--cyan-strong), var(--purple)); opacity: 1; }
.ach-num { font-size: 56px; font-weight: 900; line-height: 1; letter-spacing: -3px; color: var(--ink); margin-bottom: 10px; font-variant-numeric: tabular-nums; }
.ach-lbl { font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--muted); }

/* ─── HISTORY TIMELINE (horizontal, dark) ──────────────────── */
.history-timeline {
  background: var(--bg-dark); color: white;
  padding: 64px 48px 56px; border-radius: 22px;
  margin-bottom: 80px;
}
.history-timeline .sec-eyebrow { color: var(--cyan-strong); }
.history-timeline .sec-eyebrow::before { background: var(--cyan-strong); opacity: 0.6; }
.history-timeline .sec-title { color: white; margin-bottom: 56px; }
.history-timeline .sec-title em { color: var(--gold); font-style: normal; }
.ht-track {
  position: relative; display: grid; gap: 32px;
}
.ht-track[data-cols="1"] { grid-template-columns: 1fr; }
.ht-track[data-cols="2"] { grid-template-columns: repeat(2, 1fr); }
.ht-track[data-cols="3"] { grid-template-columns: repeat(3, 1fr); }
.ht-track[data-cols="4"] { grid-template-columns: repeat(4, 1fr); }
.ht-track[data-cols="5"] { grid-template-columns: repeat(5, 1fr); }
.ht-track[data-cols="6"] { grid-template-columns: repeat(6, 1fr); }
.ht-track::before {
  content: ''; position: absolute; top: 8px; left: 24px; right: 24px;
  height: 1px; background: rgba(255,255,255,0.14);
}
.ht-item { position: relative; padding-top: 38px; }
.ht-item::before {
  content: ''; position: absolute; top: 2px; left: 0;
  width: 14px; height: 14px; border-radius: 50%;
  background: var(--cyan-strong);
  box-shadow: 0 0 0 4px rgba(0,212,255,0.18);
}
.ht-year {
  font-size: 36px; font-weight: 900; line-height: 1; letter-spacing: -1.5px;
  color: var(--gold); font-variant-numeric: tabular-nums; margin-bottom: 12px;
}
.ht-event-title { font-size: 14px; font-weight: 700; color: white; margin-bottom: 6px; line-height: 1.3; }
.ht-event-text  { font-size: 12.5px; line-height: 1.55; color: rgba(255,255,255,0.6); }

/* legacy (no longer used by templates, kept for compatibility) */
.history-rows { display: flex; flex-direction: column; }
.h-row { display: grid; grid-template-columns: 110px 1fr; gap: 32px; padding: 22px 0; border-bottom: 1px solid var(--border); align-items: start; }
.h-row:last-child { border-bottom: none; }
.h-year, .hm-year { font-size: 36px; font-weight: 900; line-height: 1; letter-spacing: -1.5px; color: var(--green-mid); font-variant-numeric: tabular-nums; }
.h-event-title { font-size: 16px; font-weight: 800; letter-spacing: -0.2px; color: var(--ink); margin-bottom: 6px; }
.h-event-text { font-size: 14px; line-height: 1.6; color: var(--muted); }
.history-milestones { display: flex; flex-direction: column; }

/* ─── LAST MATCH FULL-WIDTH BANNER (classic) ────────────────── */
.lm-banner {
  background: var(--accent, var(--bg-dark));
  color: #fff;
  padding: 40px 32px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  position: relative; overflow: hidden;
}
.lm-banner::before,
.lm-banner::after {
  content: ''; position: absolute; top: 0; bottom: 0; width: 240px;
  pointer-events: none; opacity: 0.08;
}
.lm-banner::before { left: 0;  background: radial-gradient(closest-side at 0% 50%, #fff, transparent 70%); }
.lm-banner::after  { right: 0; background: radial-gradient(closest-side at 100% 50%, #fff, transparent 70%); }

.lm-banner-inner {
  max-width: 1280px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr auto 1fr;
  align-items: center; gap: 32px;
  position: relative; z-index: 1;
}
.lmb-side { display: flex; flex-direction: column; gap: 12px; }
.lmb-eyebrow {
  font-size: 11px; font-weight: 700; letter-spacing: 2.5px; text-transform: uppercase;
  color: rgba(255,255,255,0.55);
}
.lmb-home { align-items: flex-start; }
.lmb-away { align-items: flex-end; text-align: right; }
.lmb-team { display: flex; align-items: center; gap: 18px; }
.lmb-crest {
  width: 92px; height: 92px; border-radius: 50%;
  background: rgba(255,255,255,0.08);
  display: flex; align-items: center; justify-content: center;
  border: 3px solid rgba(255,255,255,0.18);
  flex-shrink: 0; overflow: hidden;
}
.lmb-crest img { width: 80%; height: 80%; object-fit: contain; }
.lmb-crest span { font-size: 32px; }
.lmb-team-text { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.lmb-team-text-r { text-align: right; }
.lmb-team-name { font-size: 26px; font-weight: 900; letter-spacing: -0.5px; line-height: 1.05; word-break: break-word; }
.lmb-team-sub  { font-size: 12px; color: rgba(255,255,255,0.55); font-weight: 600; letter-spacing: 0.3px; }
.lmb-center { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.lmb-status {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase;
  padding: 6px 14px; border-radius: 999px;
}
.lmb-status-win  { background: rgba(46,204,113,0.18); color: #4ade80; }
.lmb-status-loss { background: rgba(239,68,68,0.18);  color: #fca5a5; }
.lmb-status-draw { background: rgba(255,255,255,0.10); color: rgba(255,255,255,0.85); }
.lmb-status-sep  { opacity: 0.5; }
.lmb-status-date { font-weight: 600; letter-spacing: 0.4px; }
.lmb-score {
  font-size: 64px; font-weight: 900; line-height: 1; letter-spacing: -2px;
  display: inline-flex; align-items: center; gap: 18px;
}
.lmb-score-dash { opacity: 0.55; font-weight: 400; }
.lmb-meta {
  font-size: 12px; color: rgba(255,255,255,0.55); font-weight: 600;
  letter-spacing: 0.3px; text-align: center; max-width: 360px;
}

/* ─── NEXT MATCH STRIP (full-width band under LM banner) ───── */
.nm-strip {
  background: var(--secondary, #f4c843);
  color: #fff;
  border-top: 1px solid rgba(0,0,0,0.06);
}
.nm-strip-inner {
  max-width: 1280px; margin: 0 auto;
  padding: 14px 32px;
  display: flex; flex-wrap: wrap; align-items: center; gap: 14px;
  font-size: 13px; font-weight: 700; letter-spacing: 0.4px;
}
.nm-label {
  background: rgba(0,0,0,0.18); color: #fff;
  padding: 6px 14px; border-radius: 4px;
  font-size: 11px; font-weight: 800; letter-spacing: 2px; text-transform: uppercase;
}
.nm-vs { font-weight: 800; }
.nm-vs-sep { font-weight: 400; opacity: 0.7; padding: 0 6px; }
.nm-sep { opacity: 0.5; }
.nm-date, .nm-time, .nm-venue { font-weight: 600; }

/* ─── SEASON STATS BAR (compact, under match strips) ───────── */
.season-stats-bar {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  background: var(--bg-alt); border: 1px solid var(--border);
  border-radius: 14px; padding: 22px 24px;
}
.ssb-item { text-align: center; }
.ssb-num {
  font-size: 36px; font-weight: 900; color: var(--accent, var(--ink));
  letter-spacing: -1px; line-height: 1;
}
.ssb-lbl {
  margin-top: 6px;
  font-size: 11px; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase;
  color: var(--muted);
}

@media (max-width: 760px) {
  .lm-banner { padding: 24px 16px; }
  .lm-banner-inner { grid-template-columns: 1fr; gap: 18px; text-align: center; }
  .lmb-home, .lmb-away { align-items: center; text-align: center; }
  .lmb-team { flex-direction: column; gap: 10px; }
  .lmb-team-text-r { text-align: center; }
  .lmb-crest { width: 68px; height: 68px; border-width: 2px; }
  .lmb-team-name { font-size: 20px; }
  .lmb-score { font-size: 44px; gap: 10px; }
  .lmb-center { order: -1; }
  .nm-strip-inner { padding: 12px 16px; gap: 8px; font-size: 12px; }
  .nm-label { padding: 5px 10px; font-size: 10px; letter-spacing: 1.6px; }
  .season-stats-bar { grid-template-columns: repeat(2, 1fr); gap: 12px; padding: 18px; }
  .ssb-num { font-size: 28px; }
}

/* ─── HERO (front-page) — legacy, оставлен для page-club/etc ── */
.hero {
  background: var(--bg-alt); border-bottom: 1px solid var(--border);
  padding: 64px 32px 48px;
}
.hero-content {
  max-width: 1280px; margin: 0 auto;
  display: grid; grid-template-columns: 1.1fr 1fr; gap: 64px; align-items: center;
}
.hero-flag {
  font-size: 12px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase;
  color: var(--green); margin-bottom: 16px;
  display: flex; align-items: center; gap: 10px;
}
.hero-flag::before { content: ''; width: 24px; height: 1px; background: var(--green); opacity: 0.5; }
.hero-title {
  font-size: clamp(40px, 5vw, 72px); font-weight: 900;
  line-height: 1; letter-spacing: -3px; color: var(--ink); margin-bottom: 20px;
}
.hero-desc {
  font-size: 16px; line-height: 1.65; color: var(--muted); margin-bottom: 32px; max-width: 480px;
}
.hero-btns { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 0; }

/* ─── LAST MATCH / STATS STRIP ──────────────────────────────── */
.last-match {
  position: relative; overflow: hidden;
  background: var(--bg-dark); color: white; padding: 30px 32px;
  border-radius: 20px; box-shadow: 0 24px 48px -16px rgba(14,26,20,0.4);
}
.last-match::before {
  /* accent vertical band on the left (cyan→purple gradient like mockup) */
  content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 5px;
  background: linear-gradient(180deg, var(--cyan-strong), var(--purple));
}
.lm-label {
  display: flex; align-items: center; gap: 10px;
  font-size: 10px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase;
  color: rgba(255,255,255,0.55); margin-bottom: 22px;
}
.lm-label::after {
  content: ''; flex: 1; height: 1px;
  background: repeating-linear-gradient(90deg, rgba(255,255,255,0.18) 0 4px, transparent 4px 8px);
}
.lm-date-line {
  display: flex; align-items: center; gap: 12px;
  font-size: 11px; color: rgba(255,255,255,0.45);
  margin: 18px 0 12px;
  border-top: 1px dashed rgba(255,255,255,0.12); padding-top: 14px;
}
.lm-date-line .lm-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--cyan-strong); box-shadow: 0 0 0 4px rgba(0,212,255,0.18);
}
.lm-teams {
  display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px;
}
.lm-team { display: flex; flex-direction: column; align-items: center; gap: 8px; flex: 1; min-width: 0; }
.lm-crest {
  width: 52px; height: 52px; border-radius: 50%; background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12); display: flex; align-items: center; justify-content: center;
  font-size: 20px; overflow: hidden;
}
.lm-crest img { width: 100%; height: 100%; object-fit: contain; }
.lm-name {
  font-size: 12px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.5px; text-align: center; opacity: 0.9;
  word-break: break-word; line-height: 1.2;
}
.lm-score-box { text-align: center; flex-shrink: 0; }
.lm-score {
  font-size: 36px; font-weight: 900; letter-spacing: -1.5px;
  font-variant-numeric: tabular-nums;
}
.lm-time { font-size: 11px; opacity: 0.55; margin-top: 2px; }
.lm-stats {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px;
  border-top: 1px solid rgba(255,255,255,0.1); padding-top: 18px;
}
.lm-stat { text-align: center; }
.lm-stat-num { font-size: 22px; font-weight: 900; font-variant-numeric: tabular-nums; }
.lm-stat-label { font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; opacity: 0.5; margin-top: 2px; }

/* ─── NEWS GRID HOME (featured left 2×2 + 4 small 2×2 right) ── */
/*
  Layout:
  ┌──────────────┬────┬────┐
  │              │ s1 │ s2 │
  │   FEATURED   ├────┼────┤
  │              │ s3 │ s4 │
  └──────────────┴────┴────┘
*/
.news-grid-home {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr;
  grid-template-rows: 220px 220px;
  gap: 14px;
}
.news-grid-home .news-card.featured {
  grid-column: 1;
  grid-row: 1 / 3;
}
/* Overlay layout: image fills card, body pinned to bottom with gradient */
.news-grid-home .news-card {
  position: relative;
}
.news-grid-home .news-card .news-img {
  position: absolute;
  inset: 0;
  aspect-ratio: unset !important;
  width: 100%;
  height: 100%;
  flex: none;
}
.news-grid-home .news-card .news-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.news-grid-home .news-card .news-body {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 14px 16px 16px;
  background: linear-gradient(to top, rgba(0,0,0,0.80) 0%, rgba(0,0,0,0.45) 55%, transparent 100%);
  flex: none;
  z-index: 2;
}
.news-grid-home .news-card .news-date {
  color: rgba(255,255,255,0.70);
  font-size: 11px;
  margin-bottom: 4px;
}
.news-grid-home .news-card .news-title {
  color: #fff;
  font-size: 13px;
  line-height: 1.35;
  font-weight: 700;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.news-grid-home .news-card.featured .news-body {
  padding: 20px 22px 22px;
}
.news-grid-home .news-card.featured .news-title {
  font-size: 19px;
  font-weight: 800;
  -webkit-line-clamp: 3;
  letter-spacing: -0.3px;
}
.news-grid-home .news-card.featured .news-date {
  font-size: 12px;
}

@media (max-width: 900px) {
  .news-grid-home { grid-template-rows: 180px 180px; }
}
@media (max-width: 700px) {
  .news-grid-home { grid-template-columns: 1fr 1fr; grid-template-rows: 180px 180px; }
  .news-grid-home .news-card.featured { grid-column: 1 / 3; grid-row: 1; }
}
@media (max-width: 400px) {
  .news-grid-home { grid-template-columns: 1fr; grid-template-rows: repeat(5, 200px); }
  .news-grid-home .news-card.featured { grid-column: auto; grid-row: auto; }
}

/* ─── NEWS GRID (asymmetric 1.55fr 1fr) ─────────────────────── */
.content-wrap { max-width: 1280px; margin: 0 auto; padding: 64px 32px; }
.news-grid { display: grid; grid-template-columns: 1.4fr 1fr; grid-auto-rows: 1fr; gap: 16px; max-width: 860px; }
.news-card {
  background: var(--bg-alt); border: 1px solid var(--border); border-radius: 14px;
  overflow: hidden; display: flex; flex-direction: column;
  transition: transform .2s, box-shadow .2s, border-color .2s;
}
.news-card:hover { transform: translateY(-4px); box-shadow: 0 20px 40px -20px rgba(17,17,17,0.18); border-color: var(--green-mid); }
.news-card.featured { grid-row: span 2; }
.news-card.featured .news-img { aspect-ratio: 4/3; flex: none; }
.news-card.featured .news-body { flex: 1; padding: 16px 20px 20px; }
.news-card.featured .news-title { font-size: 20px; font-weight: 800; line-height: 1.2; letter-spacing: -0.5px; }
.news-card.small .news-img { aspect-ratio: 16/9; }
.news-card.small .news-body { padding: 12px 16px 16px; }
.news-card.small .news-title { font-size: 14px; line-height: 1.3; letter-spacing: -0.1px; }
.news-card.small .news-date { font-size: 11px; margin-bottom: 5px; }
.news-img {
  position: relative; aspect-ratio: 16/9;
  background: linear-gradient(135deg, var(--green), var(--green-mid)); overflow: hidden;
}
.news-img img { width: 100%; height: 100%; object-fit: cover; }
.nc-img { position: relative; aspect-ratio: 16/9; overflow: hidden; background: linear-gradient(135deg, var(--green), var(--green-mid)); }
.nc-img img, .news-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nc-img.has-photo img { object-fit: cover; }
.nc-img.navy-g { display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.15); font-size: 48px; }
.news-body { padding: 22px 22px 24px; flex: 1; display: flex; flex-direction: column; }
.nc-body { padding: 16px 18px 18px; flex: 1; display: flex; flex-direction: column; }
.news-date, .nc-date { font-size: 12px; font-weight: 500; color: var(--muted); margin-bottom: 10px; letter-spacing: 0.3px; }
.nc-meta { margin-bottom: 8px; }
.news-title, .nc-title { font-size: 19px; font-weight: 700; line-height: 1.3; color: var(--ink); letter-spacing: -0.4px; }
.nc-title a { color: var(--ink); }
.news-card:hover .news-title,
.news-card:hover .nc-title a { color: var(--green); }
/* 3-column uniform grid */
.news-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }

/* ─── NEWS BENTO GRID ────────────────────────────────────────── */
/* Layout: Top (hero-L 2×2 + 2 side), Mid (3 equal), Bot (2 side + hero-R 2×2) */
/* All cells are 1:1 squares. Hero squares by row-size inheritance. */

.news-bento { display: flex; flex-direction: column; gap: 8px; max-width: 720px; margin: 0 auto; }

/* ── Shared block ─────────────────────────────────────────────── */
.bento-block {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}

/* ── Shared card base ─────────────────────────────────────────── */
.bento-card {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 16px;
  text-decoration: none;
  background: var(--green);
  aspect-ratio: 1 / 1;
}
.bento-img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform .5s ease;
}
.bento-card:hover .bento-img { transform: scale(1.05); }

.bento-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.86) 0%, rgba(0,0,0,0.28) 50%, rgba(0,0,0,0.04) 100%);
  transition: background .3s;
}
.bento-card:hover .bento-overlay {
  background: linear-gradient(to top, rgba(0,0,0,0.74) 0%, rgba(0,0,0,0.16) 50%, transparent 100%);
}

.bento-body {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 18px 20px;
  display: flex; flex-direction: column; gap: 6px;
}

.bento-tag {
  display: inline-flex; align-items: center; width: fit-content;
  background: var(--green); color: #fff;
  font-size: 9px; font-weight: 800; letter-spacing: 1.8px; text-transform: uppercase;
  padding: 4px 10px; border-radius: 999px; margin-bottom: 2px;
}

.bento-date {
  font-size: 10px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase;
  color: rgba(255,255,255,0.50);
}

.bento-title {
  font-size: 13px; font-weight: 700; line-height: 1.3; letter-spacing: -0.1px; color: #fff;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.bento-title-lg {
  font-size: 17px; font-weight: 800; line-height: 1.2; letter-spacing: -0.3px;
  -webkit-line-clamp: 4;
}

/* Accent bar on hover */
.bento-card::after {
  content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 3px;
  background: var(--green); transform: scaleX(0); transform-origin: left;
  transition: transform .3s ease;
}
.bento-card:hover::after { transform: scaleX(1); }

/* ── TOP BLOCK: hero left (col 1-2, row 1-2) ─────────────────── */
.bento-top .bento-hero {
  grid-column: 1 / 3;
  grid-row: 1 / 3;
  aspect-ratio: unset; /* height = 2 rows + gap = square, set by bento-side */
}
/* Side cards auto-place: col 3 row 1, col 3 row 2 */
.bento-top .bento-body { padding: 18px 20px; gap: 6px; }

/* ── MIDDLE BLOCK: 3 equal squares ───────────────────────────── */
/* .bento-cell inherits aspect-ratio: 1/1 from .bento-card */

/* ── BOTTOM BLOCK: hero right (col 2-4, row 1-2) ─────────────── */
.bento-hero-r {
  grid-column: 2 / 4;
  grid-row: 1 / 3;
  aspect-ratio: unset;
}
.bento-bot .bento-side:nth-child(2) { grid-column: 1; grid-row: 1; }
.bento-bot .bento-side:nth-child(3) { grid-column: 1; grid-row: 2; }
.bento-bot .bento-body { padding: 18px 20px; gap: 6px; }

/* ── RESPONSIVE ───────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .bento-title-lg { font-size: 16px; }
}

@media (max-width: 640px) {
  .news-bento { gap: 8px; }
  .bento-block { grid-template-columns: repeat(2, 1fr); gap: 8px; }

  /* Heroes collapse to full-width, 4:3 ratio */
  .bento-top .bento-hero,
  .bento-hero-r {
    grid-column: 1 / 3;
    grid-row: auto;
    aspect-ratio: 4 / 3;
  }
  /* Bottom sides: reset explicit placement */
  .bento-bot .bento-side:nth-child(2),
  .bento-bot .bento-side:nth-child(3) {
    grid-column: auto;
    grid-row: auto;
  }
  .bento-title-lg { font-size: 15px; }
  .bento-title { font-size: 12px; }
  .bento-body { padding: 12px 14px; }
  .bento-top .bento-body,
  .bento-bot .bento-body { padding: 14px 16px; }
}

/* ─── FIXTURES (cards with logos) ──────────────────────────── */
.fixtures-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.fix-card { background: var(--bg-alt); border: 1px solid var(--border); border-radius: 16px; padding: 18px 20px; transition: border-color .2s, transform .2s; }
.fix-card:hover { border-color: var(--green); transform: translateY(-2px); }
.fix-meta { font-size: 10px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--muted); margin-bottom: 14px; display: flex; align-items: center; gap: 8px; }
.fix-meta .tour-pill { color: var(--green); background: var(--green-soft); padding: 3px 9px; border-radius: 999px; font-size: 9px; }
.fix-teams { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; margin-bottom: 14px; }
.fix-team { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 600; color: var(--ink); }
.fix-team.away { justify-content: flex-end; }
.ft-team { display: flex; align-items: center; gap: 8px; }
.ft-team.away { flex-direction: row-reverse; }
.fix-logo, .ft-logo {
  width: 32px; height: 32px; border-radius: 50%; background: var(--bg);
  border: 1px solid var(--border); display: flex; align-items: center; justify-content: center;
  font-weight: 900; font-size: 10px; color: var(--green); flex: none;
  overflow: hidden; object-fit: contain;
}
.fix-logo img, .ft-logo img { width: 100%; height: 100%; object-fit: contain; }
.fix-vs, .ft-score { font-size: 11px; font-weight: 700; letter-spacing: 1.5px; color: var(--faint); }
.ft-score.live { color: var(--green); }
.fix-when { font-size: 12px; font-weight: 500; color: var(--muted); border-top: 1px dashed var(--border); padding-top: 12px; display: flex; align-items: center; gap: 8px; }
.ft-date { font-size: 11px; color: var(--muted); font-weight: 500; padding-top: 12px; border-top: 1px dashed var(--border); }
.ft-comp { font-size: 10px; color: var(--faint); margin-bottom: 12px; }

/* ─── RESULTS LIST ─────────────────────────────────────────── */
.results-list { padding: 6px 0; }
.result-row { display: grid; grid-template-columns: 64px 1fr auto 1fr 64px; align-items: center; padding: 16px 24px; border-bottom: 1px solid var(--border); gap: 16px; }
.result-row:last-child { border-bottom: none; }
.res-date, .rr-date { font-size: 11px; font-weight: 700; color: var(--muted); letter-spacing: 0.5px; }
.res-team, .rr-team { font-size: 14px; font-weight: 600; color: var(--ink); display: flex; align-items: center; gap: 8px; }
.res-team.away, .rr-team.away { text-align: right; flex-direction: row-reverse; }
.rr-logo { width: 36px; height: 36px; object-fit: contain; flex: none; }
.res-score, .rr-score {
  font-weight: 900; font-size: 16px; background: var(--bg); border: 1px solid var(--border);
  border-radius: 8px; padding: 6px 14px; letter-spacing: 0.3px; color: var(--ink);
  font-variant-numeric: tabular-nums; white-space: nowrap;
}
.res-pill, .rr-badge, .rt-badge {
  width: 26px; height: 26px; border-radius: 6px; display: inline-flex;
  align-items: center; justify-content: center; font-size: 11px; font-weight: 800; color: white; text-transform: uppercase;
}
.res-pill.w, .rr-badge.w, .rt-badge.w { background: var(--win); }
.res-pill.d, .rr-badge.d, .rt-badge.d { background: var(--draw); }
.res-pill.l, .rr-badge.l, .rt-badge.l { background: var(--loss); }

/* ─── STANDINGS TABLE ──────────────────────────────────────── */
.standings { width: 100%; border-collapse: collapse; }
.standings thead th { font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--muted); padding: 14px 12px; text-align: left; border-bottom: 1px solid var(--border); background: var(--bg); }
.standings thead th.num { text-align: center; }
.standings tbody td { padding: 16px 12px; border-bottom: 1px solid var(--border); font-size: 14px; color: var(--ink2); }
.standings tbody tr:last-child td { border-bottom: none; }
.standings tbody td.num { text-align: center; font-weight: 600; }
.standings tbody td.pts { font-weight: 900; color: var(--ink); font-size: 15px; font-variant-numeric: tabular-nums; }
.standings tbody tr.us { background: linear-gradient(90deg, rgba(0,180,216,0.06), transparent); box-shadow: inset 3px 0 0 var(--green); }
.standings tbody tr.us td.team { color: var(--green); font-weight: 700; }
.team-cell { display: flex; align-items: center; gap: 10px; }
.st-logo { width: 28px; height: 28px; object-fit: contain; }
.form-row { display: flex; gap: 4px; }
.form-dot { width: 12px; height: 12px; border-radius: 50%; }
.form-dot.w { background: var(--win); }
.form-dot.d { background: var(--draw); }
.form-dot.l { background: var(--loss); }
/* Compact standings used in home Results+Table 2-col block */
.standings-mini thead th { padding: 12px 8px; font-size: 9.5px; letter-spacing: 1px; }
.standings-mini tbody td { padding: 12px 8px; font-size: 13px; }
.standings-mini tbody td.pts { font-size: 14px; }
.standings-mini .st-logo { width: 22px; height: 22px; }
.standings-mini .form-dot { width: 10px; height: 10px; }
/* Results+Table 2-col grid */
.results-table-grid > .panel { min-width: 0; }
@media (max-width: 1024px) {
  .results-table-grid { grid-template-columns: 1fr !important; }
}

/* ─── PLAYERS (squad) ──────────────────────────────────────── */
.players-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.player-card {
  background: var(--bg-alt); border: 1px solid var(--border); border-radius: 16px;
  padding: 22px 24px; display: grid; grid-template-columns: 52px 1fr auto;
  gap: 18px; align-items: center; transition: border-color .2s, transform .2s;
}
.player-card:hover { border-color: var(--green-mid); transform: translateY(-2px); }
.player-avatar {
  position: relative; width: 52px; height: 52px; border-radius: 50%;
  background: var(--bg); border: 1px solid var(--border); display: flex;
  align-items: center; justify-content: center; font-weight: 900; font-size: 14px;
  color: var(--green); letter-spacing: -0.3px; overflow: hidden;
}
.player-avatar img { width: 100%; height: 100%; object-fit: cover; }
/* legacy overlay number — hidden in V3 (number now lives in .player-stat) */
.player-num { display: none; }
.player-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.player-pos { font-size: 10px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--green); }
.player-name { font-size: 15px; font-weight: 600; color: var(--ink); line-height: 1.25; }
.player-flag { font-size: 11.5px; color: var(--muted); display: inline-flex; align-items: center; gap: 6px; }
.player-flag .pf-emoji { font-size: 14px; line-height: 1; }
.player-stat { text-align: right; min-width: 64px; }
.player-stat .num { font-size: 32px; font-weight: 900; color: var(--ink); line-height: 1; letter-spacing: -1.5px; font-variant-numeric: tabular-nums; }
.player-stat .lbl { font-size: 9px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--muted); margin-top: 4px; }
/* Squad position groups */
.squad-position-title { font-size: 13px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: var(--green); margin-bottom: 16px; display: flex; align-items: center; gap: 12px; }
.squad-position-title::after { content: ''; flex: 1; height: 1px; background: var(--border); }
.squad-section { margin-bottom: 48px; }
.squad-section:last-child { margin-bottom: 0; }

/* ─── STAFF (coaching) ─────────────────────────────────────── */
.staff-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.staff-card { background: var(--bg-alt); border: 1px solid var(--border); border-radius: 16px; padding: 28px 24px; transition: border-color .2s, transform .2s; }
.staff-card:hover { border-color: var(--green-mid); transform: translateY(-2px); }
.staff-avatar { width: 52px; height: 52px; border-radius: 50%; background: var(--bg); border: 1px solid var(--border); display: flex; align-items: center; justify-content: center; font-weight: 900; font-size: 14px; color: var(--green); margin-bottom: 18px; letter-spacing: -0.3px; }
.staff-role { font-size: 10px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--green); margin-bottom: 8px; }
.staff-name { font-size: 20px; font-weight: 800; line-height: 1.2; color: var(--ink); margin-bottom: 6px; letter-spacing: -0.4px; }
.staff-since { font-size: 12px; color: var(--muted); }
.staff-empty { background: var(--bg-alt); border: 1px dashed var(--border); border-radius: 16px; padding: 24px; color: var(--faint); font-size: 13px; text-align: center; }

/* ─── SINGLE NEWS / ARTICLE ────────────────────────────────── */
.article-hero { background: var(--bg-alt); border-bottom: 1px solid var(--border); padding: 40px 32px 24px; }
.article-hero-inner { max-width: 880px; margin: 0 auto; }
.article-h1 { font-size: clamp(32px, 4vw, 52px); font-weight: 900; line-height: 1.1; letter-spacing: -2px; color: var(--ink); margin-bottom: 18px; }
.article-meta { font-size: 13px; color: var(--muted); display: flex; flex-wrap: wrap; gap: 16px; }
.article-cover { aspect-ratio: 16/9; background: linear-gradient(135deg, var(--green), var(--green-mid)); border-radius: 18px; max-width: 1280px; margin: 0 auto; overflow: hidden; position: relative; }
.article-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.article-body { max-width: 760px; margin: 0 auto; padding: 56px 32px; font-size: 17px; line-height: 1.75; color: var(--ink2); }
.article-body p { margin-bottom: 22px; }
.article-body h2 { font-size: 28px; font-weight: 800; letter-spacing: -0.8px; color: var(--ink); margin: 36px 0 16px; }
.article-body h3 { font-size: 22px; font-weight: 800; letter-spacing: -0.5px; color: var(--ink); margin: 28px 0 12px; }
.article-body blockquote { border-left: 4px solid var(--green); background: var(--bg-alt); padding: 20px 24px; margin: 28px 0; font-size: 19px; line-height: 1.55; color: var(--ink); border-radius: 8px; font-weight: 500; }
.article-body ul, .article-body ol { margin: 0 0 22px 22px; }
.article-body li { margin-bottom: 8px; }
.article-body a { color: var(--green); border-bottom: 1px solid var(--green-soft); }
.article-body a:hover { background: var(--green-soft); }
/* Post content wrap (single.php) */
.post-content-wrap { max-width: 1280px; margin: 0 auto; padding: 0 32px 64px; display: grid; grid-template-columns: 1fr 340px; gap: 48px; }
.post-article { padding-top: 40px; }
.post-thumbnail-wrap { margin-bottom: 28px; border-radius: 18px; overflow: hidden; }
.post-thumbnail { width: 100%; height: auto; display: block; }
.post-meta { display: flex; align-items: center; gap: 12px; margin-bottom: 24px; flex-wrap: wrap; }
.post-meta-date { font-size: 13px; font-weight: 500; color: var(--muted); }
.post-body { font-size: 17px; line-height: 1.75; color: rgba(255,255,255,0.88); }
.post-body p { margin-bottom: 18px; }
.post-sidebar { padding-top: 40px; }
.sidebar-widget { background: var(--bg-alt); border: 1px solid var(--border); border-radius: 16px; padding: 20px 24px; margin-bottom: 20px; }
.sidebar-widget-title { font-size: 13px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--muted); margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--border); }
.sidebar-related__item { padding: 12px 0; border-bottom: 1px solid var(--border); }
.sidebar-related__item:last-child { border-bottom: none; }
.sidebar-related__date { font-size: 11px; color: var(--faint); margin-bottom: 4px; }
.sidebar-related__link { font-size: 14px; font-weight: 600; color: var(--ink); line-height: 1.3; }
.sidebar-related__link:hover { color: var(--green); }

/* Single post: meta category pill */
.post-meta-cat { font-size: 12px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--green); background: rgba(var(--green-rgb, 0,100,0), 0.1); padding: 3px 10px; border-radius: 4px; text-decoration: none; }
.post-meta-cat:hover { opacity: 0.8; }

/* News card category badge (inside nc-img) */
.nc-cat { position: absolute; top: 10px; left: 10px; font-size: 10px; font-weight: 800; letter-spacing: 2px; text-transform: uppercase; background: var(--green); color: #fff; padding: 2px 8px; border-radius: 3px; }

/* ─── CONTACT BLOCKS ───────────────────────────────────────── */
.contact-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 32px; align-items: start; }
.contact-card { background: var(--bg-alt); border: 1px solid var(--border); border-radius: 18px; padding: 32px; }
.contact-block { padding: 18px 0; border-bottom: 1px solid var(--border); }
.contact-block:first-child { padding-top: 0; }
.contact-block:last-child { padding-bottom: 0; border-bottom: none; }
.contact-h { font-size: 11px; font-weight: 700; letter-spacing: 2.5px; text-transform: uppercase; color: var(--muted); margin-bottom: 12px; }
.contact-val { font-size: 15px; color: var(--ink); line-height: 1.55; font-weight: 500; }
.contact-val a { color: var(--green); border-bottom: 1px solid var(--green-soft); }

/* ─── CLUB LOGO BACKGROUND WATERMARK ─────────────────────────────────── */
.page-bg-watermark {
  display: block;
  position: fixed;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width:  clamp(360px, 58vmin, 680px);
  height: clamp(360px, 58vmin, 680px);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  opacity: 0.14;
  pointer-events: none;
  z-index: 0;
  filter: grayscale(0.6) brightness(1.8);
}
@media (max-width: 600px) { .page-bg-watermark { display: none; } }
/* All content blocks must stack above the fixed watermark (z-index:0).
   Covers: homepage, interior pages, single post, nav, footer. */
.content-wrap,
.lm-banner,
.nm-strip,
.nav-wrap,
.site-footer,
.page-header,
.page-content,
.post-content-wrap { position: relative; z-index: 1; }

/* ─── CLUB RICH CONTENT (full AI-generated H2 sections below info-card) ─ */
.club-rich-content {
  margin-top: 40px;
  margin-bottom: 80px;
}
.club-rich-content h2 {
  font-size: clamp(20px, 2.2vw, 28px);
  font-weight: 800;
  color: #fff;
  margin: 48px 0 14px;
  line-height: 1.25;
  letter-spacing: -0.3px;
}
.club-rich-content h2:first-child { margin-top: 0; }
.club-rich-content h3 {
  font-size: clamp(16px, 1.8vw, 21px);
  font-weight: 700;
  color: rgba(255, 255, 255, 0.92);
  margin: 32px 0 10px;
  line-height: 1.3;
}
.club-rich-content p {
  font-size: 17px;
  line-height: 1.78;
  color: rgba(255, 255, 255, 0.85);
  margin-bottom: 18px;
}
.club-rich-content ul,
.club-rich-content ol {
  padding-left: 26px;
  margin-bottom: 18px;
  color: rgba(255, 255, 255, 0.85);
}
.club-rich-content li {
  font-size: 17px;
  line-height: 1.65;
  margin-bottom: 8px;
}

/* ─── FOOTER ───────────────────────────────────────────────── */
footer.site-footer { background: var(--bg-dark); color: rgba(255,255,255,0.78); margin-top: 96px; padding: 64px 32px 32px; }
.footer-inner { max-width: 1280px; margin: 0 auto; }
.footer-cols { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 56px; padding-bottom: 48px; }
.footer-col-brand, .footer-brand { display: flex; flex-direction: column; gap: 16px; }
.footer-logo-name, .footer-brand .brand { display: flex; align-items: center; gap: 12px; color: white; }
.footer-logo-shield { width: 36px; height: 36px; border-radius: 9px; overflow: hidden; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,0.1); }
.footer-logo-shield img { width: 100%; height: 100%; object-fit: contain; }
.footer-desc { font-size: 13px; line-height: 1.6; color: rgba(255,255,255,0.55); max-width: 280px; }
.footer-col-title, .fc-title {
  font-size: 11px; font-weight: 700; letter-spacing: 2.5px; text-transform: uppercase;
  color: rgba(255,255,255,0.5); margin-bottom: 18px;
}
.footer-col-links, .fc-list { display: flex; flex-direction: column; gap: 11px; }
.footer-col-links a, .fc-list a {
  font-size: 13.5px; color: rgba(255,255,255,0.78); transition: color .2s;
  display: inline-flex; align-items: center; gap: 6px;
}
.footer-col-links a::before, .fc-list a::before { content: '›'; color: var(--cyan-strong); font-weight: 700; }
.footer-col-links a:hover, .fc-list a:hover { color: white; }
/* Footer contacts (V3: no phone, email CTA + socials) */
.fnwv2-fc-wrap, .footer-contacts {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; padding: 0 0 36px;
}
.fnwv2-fc-row, .fnwv2-fc-col { }
.fnwv2-fc-col h4, .fctt h4 { font-size: 11px; font-weight: 700; letter-spacing: 2.5px; text-transform: uppercase; color: rgba(255,255,255,0.5); margin-bottom: 14px; }
.fctt p { font-size: 13.5px; color: rgba(255,255,255,0.85); line-height: 1.55; }
.fctt a { color: rgba(255,255,255,0.85); border-bottom: 1px solid rgba(255,255,255,0.2); padding-bottom: 1px; }
.fctt a:hover { border-color: var(--cyan-strong); color: white; }
/* "Связаться с нами →" CTA */
.fctt-cta, .fnwv2-fc-cta {
  display: inline-flex !important; align-items: center; justify-content: center;
  text-align: center; gap: 6px; margin-top: 14px;
  padding: 11px 22px; background: linear-gradient(135deg, var(--cyan), var(--purple));
  color: white !important; border-radius: 10px; font-size: 12.5px; font-weight: 700;
  letter-spacing: 0.5px; border-bottom: none !important; white-space: nowrap;
  width: auto !important; min-width: 0; line-height: 1.2;
  transition: transform .2s, box-shadow .2s;
}
.fctt-cta:hover, .fnwv2-fc-cta:hover { transform: translateY(-1px); box-shadow: 0 8px 18px -6px rgba(124,58,237,0.55); }
.fctt-cta .fctt-cta-arrow { display: inline-block; transform: translateY(-1px); }
/* Social icons */
.fctt-socials, .fnwv2-fc-socials { display: flex; gap: 8px; flex-wrap: wrap; }
.fctt-soc, .fnwv2-fc-social-link {
  width: 36px; height: 36px; border-radius: 50%; border: 1px solid rgba(255,255,255,0.18);
  display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.7);
  transition: border-color .2s, color .2s; flex: none;
}
.fctt-soc:hover, .fnwv2-fc-social-link:hover { border-color: var(--cyan-strong); color: var(--cyan-strong); }
.fnwv2-fc-social-link svg, .fctt-soc svg { width: 16px; height: 16px; }
.fctt p { margin-bottom: 6px; }
.fctt p:last-child { margin-bottom: 0; }

/* ─── Footer/Page Contact Form (V3) — Glass Pill ──────────── */
.fctt-form-wrap form { display: flex; flex-direction: column; gap: 10px; }

.fnwv3-contact-form input,
.fnwv3-contact-form textarea {
  width: 100%; box-sizing: border-box;
  padding: 10px 16px; font: inherit; font-size: 13px; line-height: 1.4;
  color: rgba(255,255,255,0.92);
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.22);
  border-radius: 999px;
  outline: none; -webkit-appearance: none; appearance: none;
  transition: border-color .2s, background .2s;
}
.fnwv3-contact-form textarea {
  border-radius: 16px;
  resize: none; min-height: 68px;
}
.fnwv3-contact-form input::placeholder,
.fnwv3-contact-form textarea::placeholder {
  color: rgba(255,255,255,0.4);
}
.fnwv3-contact-form input:focus,
.fnwv3-contact-form textarea:focus {
  border-color: rgba(255,255,255,0.55);
  background: rgba(255,255,255,0.12);
}
.fnwv3-contact-form button[type=submit] {
  width: 100%; margin-top: 2px; padding: 11px 18px;
  background: var(--cyan, #22d3ee);
  border: none; border-radius: 999px;
  color: #0a1628; font: inherit; font-size: 13px; font-weight: 700;
  cursor: pointer;
  transition: opacity .2s, transform .15s;
}
.fnwv3-contact-form button[type=submit]:hover {
  opacity: .88; transform: translateY(-1px);
}
.fnwv3-contact-form button[type=submit]:disabled {
  opacity: 0.45; cursor: default; transform: none;
}
.fctt-form-msg {
  min-height: 16px; font-size: 12px; line-height: 1.4;
  color: rgba(255,255,255,0.55); margin-top: 2px;
}
.fctt-form-msg.is-ok    { color: #34d399; }
.fctt-form-msg.is-error { color: #fca5a5; }

/* Footer bottom */
.footer-bottom { padding-top: 28px; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 18px; border-top: 1px solid rgba(255,255,255,0.08); }
.footer-bottom span, .fb-copy { font-size: 12px; color: rgba(255,255,255,0.5); }
.footer__legal, .fb-legal { display: flex; gap: 14px; flex-wrap: wrap; }
.footer__legal a, .footer__legal-link, .fb-legal a { font-size: 12px; color: rgba(255,255,255,0.6); transition: color .2s; }
.footer__legal a:hover, .fb-legal a:hover { color: white; }
.footer__legal-sep { color: rgba(255,255,255,0.3); }
.footer-lang, .fb-langs { display: flex; gap: 4px; }
.footer-lang a, .fb-langs a {
  padding: 5px 10px; font-size: 11px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase;
  color: rgba(255,255,255,0.55); border: 1px solid rgba(255,255,255,0.12); border-radius: 6px;
  transition: color .2s, background .2s;
}
.footer-lang a.active, .fb-langs a.active { color: white; background: rgba(255,255,255,0.08); }

/* ─── PARTNERS — HOME MARQUEE ──────────────────────────────── */
.section.partners-marquee-section { max-width: 1280px; margin: 80px auto 0; padding: 0 32px; }
.partners-marquee {
  position: relative; overflow: hidden; margin-top: 24px;
  padding: 18px 0; mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.partners-marquee-track {
  display: flex; align-items: center; gap: 56px; width: max-content;
  animation: pmMarquee 36s linear infinite;
}
.partners-marquee:hover .partners-marquee-track { animation-play-state: paused; }
.pm-item {
  display: inline-flex; align-items: center; gap: 14px;
  padding: 12px 26px; background: var(--bg-alt);
  border: 1px solid var(--border); border-radius: 14px;
  color: var(--ink); font-weight: 600; font-size: 14px; white-space: nowrap;
  flex: none; min-height: 64px; transition: border-color .2s, transform .2s;
}
.pm-item:hover { border-color: var(--green-mid); transform: translateY(-2px); }
.pm-item img { max-height: 36px; max-width: 130px; object-fit: contain; }
.pm-mark {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: 8px;
  background: linear-gradient(135deg, var(--green), var(--green-mid));
  color: white; font-weight: 900; font-size: 14px; letter-spacing: -0.5px;
}
.pm-name { color: var(--ink); }
@keyframes pmMarquee {
  from { transform: translate3d(0, 0, 0); }
  to   { transform: translate3d(-50%, 0, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .partners-marquee-track { animation: none; flex-wrap: wrap; gap: 16px; justify-content: center; }
}

/* ─── PARTNERS — FULL PAGE (tier-grouped) ─────────────────── */
.section.partners-section { max-width: 1280px; margin: 80px auto 0; padding: 0 32px; }
.partners-tier { margin-bottom: 36px; }
.partners-tier:last-child { margin-bottom: 0; }
.partners-tier-head { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
.partners-tier-label { font-size: 11px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: var(--green); white-space: nowrap; }
.partners-tier-line { flex: 1; height: 1px; background: var(--border); }
.partners-grid { display: grid; gap: 12px; }
.partners-grid.t-general { grid-template-columns: 1fr 1fr; }
.partners-grid.t-official { grid-template-columns: repeat(3, 1fr); }
.partners-grid.t-info { grid-template-columns: repeat(4, 1fr); }
.partner-card {
  background: var(--bg-alt); border: 1px solid var(--border); border-radius: 14px;
  padding: 28px 24px; display: flex; align-items: center; justify-content: center;
  min-height: 110px; text-align: center;
  transition: border-color .2s, transform .2s, box-shadow .2s;
}
.partner-card:hover { border-color: var(--green-mid); transform: translateY(-2px); box-shadow: 0 16px 32px -16px rgba(17,17,17,0.16); }
.partner-card.featured {
  background: linear-gradient(135deg, var(--bg-alt) 0%, rgba(0,180,216,0.04) 100%);
  border-color: rgba(0,180,216,0.25); min-height: 140px;
}
.partner-logo { display: flex; flex-direction: column; align-items: center; gap: 8px; width: 100%; }
.partner-logo img { max-width: 160px; max-height: 80px; object-fit: contain; }
.partner-mark { font-weight: 900; font-size: 28px; letter-spacing: -1px; color: var(--ink); line-height: 1; }
.partner-name { font-size: 12px; font-weight: 600; letter-spacing: 0.3px; color: var(--muted); }
.partners-cta { margin-top: 40px; text-align: center; padding: 40px; background: var(--bg-alt); border: 1px solid var(--border); border-radius: 18px; }
.partners-cta h3 { font-size: 24px; font-weight: 800; letter-spacing: -0.5px; color: var(--ink); margin-bottom: 10px; }
.partners-cta p { font-size: 14px; color: var(--muted); margin-bottom: 20px; }
@media (max-width: 1024px) {
  .partners-grid.t-general { grid-template-columns: 1fr; }
  .partners-grid.t-official { grid-template-columns: repeat(2, 1fr); }
  .partners-grid.t-info { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .partners-grid.t-official, .partners-grid.t-info { grid-template-columns: 1fr; }
}

/* ─── RESPONSIVE ───────────────────────────────────────────── */
@media (max-width: 900px) {
  .hero-content { grid-template-columns: 1fr; gap: 40px; }
}
@media (max-width: 1024px) {
  .news-grid { grid-template-columns: 1fr; grid-auto-rows: auto; }
  .news-card.featured { grid-row: span 1; }
  .news-card.featured .news-img { aspect-ratio: 16/9; }
  .news-card.featured .news-title { font-size: 22px; }
  .news-grid-3 { grid-template-columns: repeat(2, 1fr); }
  .news-hero { height: 360px; }
  .news-hero-body { padding: 24px 28px; }
  .news-hero-title { font-size: 22px; }
  .news-spotlight-grid { grid-template-columns: repeat(2, 1fr); }
  .news-archive-grid { grid-template-columns: 1fr; }
  .fixtures-grid, .players-grid { grid-template-columns: repeat(2, 1fr); }
  .ach-grid { grid-template-columns: repeat(2, 1fr); }
  .staff-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-cols { grid-template-columns: 1fr 1fr; gap: 40px; }
  .fnwv2-fc-wrap, .footer-contacts { grid-template-columns: 1fr; gap: 24px; }
  .nav-links { display: none; }
  .nav-burger { display: flex; }
  .nav-menu-wrap.is-open .nav-links { display: flex; flex-direction: column; position: absolute; top: 84px; left: 0; right: 0; background: #fff; border-bottom: 3px solid var(--accent, var(--bg-dark)); padding: 8px 32px; z-index: 99; gap: 0; box-shadow: 0 12px 24px -12px rgba(0,0,0,0.18); }
  .nav-menu-wrap.is-open .nav-links a { height: auto; margin-bottom: 0; padding: 14px 0; border-bottom: 1px solid var(--border); }
  .nav-menu-wrap.is-open .nav-links li:last-child a { border-bottom: none; }
  .nav-club-name { font-size: 18px; }
  .nav-club-sub { font-size: 10px; letter-spacing: 1.4px; }
  /* Top-strip on mobile: hide next-match ticker; right side stays. */
  .topstrip-next-match { display: none; }
  .topstrip-right { gap: 16px; margin-left: auto; }
  .fnwv2-topstrip-inner { justify-content: flex-end; }
  .post-content-wrap { grid-template-columns: 1fr; }
  .contact-grid { grid-template-columns: 1fr; }
}
@media (max-width: 1024px) {
  .ht-track[data-cols="3"], .ht-track[data-cols="4"] { grid-template-columns: repeat(2, 1fr); }
  .history-timeline { padding: 48px 24px; }
}
@media (max-width: 640px) {
  .ht-track[data-cols="2"], .ht-track[data-cols="3"], .ht-track[data-cols="4"] { grid-template-columns: 1fr; }
  .ht-track::before { display: none; }
  .ht-item { padding-top: 0; padding-left: 28px; }
  .ht-item::before { top: 4px; left: 0; }
  .fnwv2-topstrip-inner, .top-strip-inner, .nav-inner { padding: 0 16px; }
  .page-header { padding: 40px 16px 32px; }
  .page-content, .content-wrap { padding: 48px 16px; }
  .hero { padding: 48px 16px 36px; }
  .article-hero, .article-body, .post-content-wrap { padding-left: 16px; padding-right: 16px; }
  .news-grid-3, .fixtures-grid, .players-grid, .staff-grid, .ach-grid { grid-template-columns: 1fr; }
  .news-spotlight-grid { grid-template-columns: 1fr; }
  .news-spotlight { aspect-ratio: 16/9; }
  .news-hero { height: 300px; }
  .news-hero-title { font-size: 20px; }
  .news-hero-body { padding: 20px 20px 24px; }
  .footer-cols { grid-template-columns: 1fr; }
  footer.site-footer { padding: 48px 16px 24px; margin-top: 64px; }
  .result-row { grid-template-columns: 50px 1fr auto 1fr; padding: 14px 16px; }
  .res-pill { display: none; }
  .h-row { grid-template-columns: 70px 1fr; gap: 18px; }
  .h-year { font-size: 28px; }
  .lm-stats { grid-template-columns: repeat(2, 1fr); }
  .section.partners-section { padding: 0 16px; }
}

/* Mobile menu toggle — required by _validate_theme_burger_menu_fix() */
.nav-links.is-open { display: flex; }
body.menu-open { overflow: hidden; }

/* ============================================================
   /contacts/ PAGE
   ============================================================ */

/* Two-column layout: info panels left, form right */
.contact-top-grid {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 28px;
  align-items: start;
  margin-bottom: 48px;
}

.contacts-info-col {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* Info panel card */
.contacts-info-panel {
  display: flex;
  align-items: center;
  gap: 16px;
  background: #fff;
  border-radius: 16px;
  padding: 18px 20px;
}

.cip-icon {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg-soft, #f3f4f6);
  border-radius: 12px;
  color: var(--primary, #1B4332);
}
.cip-icon svg { width: 24px; height: 24px; }

.cip-body { min-width: 0; flex: 1; }
.cip-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.9px;
  text-transform: uppercase;
  color: var(--muted, #9ca3af);
  margin-bottom: 4px;
}
.cip-val {
  font-size: 14px;
  font-weight: 600;
  color: var(--ink, #111);
  line-height: 1.4;
}
.cip-val a {
  color: inherit;
  text-decoration: none;
}
.cip-val a:hover { text-decoration: underline; }
.cip-val--sm {
  font-size: 12px;
  font-weight: 400;
  color: var(--ink2, #444);
  margin-top: 2px;
}

/* Social icon links inside info panel */
.contacts-soc {
  display: flex;
  gap: 10px;
  margin-top: 8px;
  flex-wrap: wrap;
}
.contacts-soc-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 12px;
  color: #fff;
  text-decoration: none;
  transition: opacity 0.18s, transform 0.15s;
  background: #888;
}
.contacts-soc-link svg { width: 26px; height: 26px; fill: #fff; }
.contacts-soc-link:hover { opacity: 0.85; transform: translateY(-2px); }
/* Brand colours */
.contacts-soc-instagram { background: linear-gradient(45deg,#f09433 0%,#e6683c 25%,#dc2743 50%,#cc2366 75%,#bc1888 100%); }
.contacts-soc-facebook  { background: #1877F2; }
.contacts-soc-youtube   { background: #FF0000; }
.contacts-soc-telegram  { background: #2AABEE; }
.contacts-soc-twitter,
.contacts-soc-x         { background: #000; }
.contacts-soc-tiktok    { background: #010101; }
.contacts-soc-vk        { background: #0077FF; }

/* Form panel */
.contacts-form-panel {
  background: #fff;
  border-radius: 18px;
  padding: 28px 24px 24px;
}
.cfp-title {
  font-size: 17px;
  font-weight: 800;
  margin: 0 0 20px;
  color: var(--ink, #111);
}
.cfp-field { margin-bottom: 14px; }
.cfp-field label {
  display: block;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.7px;
  color: var(--muted, #9ca3af);
  margin-bottom: 5px;
}
.cfp-field input,
.cfp-field textarea {
  width: 100%;
  padding: 10px 13px;
  border: 1.5px solid var(--border, #e5e7eb);
  border-radius: 10px;
  font-size: 14px;
  font-family: inherit;
  color: var(--ink, #111);
  background: #fff;
  box-sizing: border-box;
  transition: border-color 0.18s;
  resize: vertical;
}
.cfp-field input:focus,
.cfp-field textarea:focus {
  border-color: var(--primary, #1B4332);
  outline: none;
}
.cfp-submit {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 12px 24px;
  background: var(--primary, #1B4332);
  color: #fff;
  border: none;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  margin-top: 6px;
  transition: opacity 0.18s;
}
.cfp-submit:hover { opacity: 0.88; }
.cfp-submit:disabled { opacity: 0.6; cursor: not-allowed; }
.cfp-msg {
  margin-top: 10px;
  font-size: 13px;
  min-height: 18px;
  text-align: center;
}
.cfp-msg.is-ok  { color: #16a34a; }
.cfp-msg.is-error { color: #dc2626; }

/* Full-width map section */
.contacts-map-section { margin-bottom: 48px; }
.cms-title {
  font-size: 17px;
  font-weight: 800;
  margin: 0 0 16px;
  color: var(--ink, #111);
}
.contacts-map-wrap {
  border-radius: 18px;
  overflow: hidden;
  line-height: 0;
}
.contacts-map-wrap iframe {
  display: block;
  width: 100%;
  height: 450px;
  border: 0;
}

/* Responsive: stack on tablet / mobile */
@media (max-width: 900px) {
  .contact-top-grid { grid-template-columns: 1fr; }
  .contacts-map-wrap iframe { height: 320px; }
}
@media (max-width: 640px) {
  .contacts-form-panel { padding: 20px 16px; }
  .contacts-map-wrap iframe { height: 260px; }
}

/* ═══════════════════════════════════════════════════════════
   SIDEBAR: "Последние новости" widget — stacked .news-card items
   ═══════════════════════════════════════════════════════════ */

/* Widget wrapper — no extra box, blends with sidebar background */
.sidebar-widget--news {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
}
.sidebar-widget--news .sidebar-widget-title {
  /* Inherit same style as other sidebar widget titles */
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border);
}

/* Vertical stack of full news cards */
.sidebar-news-cards {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* Each card — same .news-card base, but no forced aspect ratio / flex stretch */
.sidebar-news-cards .news-card {
  background: var(--bg-alt);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform .2s, box-shadow .2s;
}
.sidebar-news-cards .news-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 28px -14px rgba(0,0,0,0.25);
}

/* Thumbnail fixed height in sidebar */
.sidebar-news-cards .nc-img {
  position: relative;
  aspect-ratio: 16/9;
  overflow: hidden;
  background: rgba(0,0,0,0.15);
  flex-shrink: 0;
}
.sidebar-news-cards .nc-img img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
}

/* Card text area */
.sidebar-news-cards .nc-body {
  padding: 10px 14px 14px;
}
.sidebar-news-cards .nc-date {
  font-size: 11px;
  color: var(--muted);
  display: block;
  margin-bottom: 4px;
}
.sidebar-news-cards .nc-title a {
  font-size: 13px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.35;
  text-decoration: none;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.sidebar-news-cards .nc-title a:hover { color: var(--green); }

/* ── Post body: force readable contrast on dark V3 background ── */
.post-body p, .post-body li, .post-body blockquote {
  color: rgba(255,255,255,0.88);
}
.post-body h2, .post-body h3, .post-body h4 { color: #fff; }
.post-body a { color: var(--primary-light, #f87171); }

/* ═══════════════════════════════════════════════════════════
   SINGLE POST — fix watermark (5) and card-shadow (4)

   5: watermark fix — opaque bg only on the CONTENT cells (article
      + sidebar), NOT on the wrap's bottom padding, so empty space
      below the article stays transparent (watermark shows there).

   4: shadow fix — header.php injects box-shadow !important on
      .post-content-wrap > article AFTER style.css loads. We need
      a MORE SPECIFIC selector to win among !important rules.
   ═══════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════
   SINGLE POST — article layout: photo block + text block
   ═══════════════════════════════════════════════════════════ */

/* Wrapper: no sidebar bg (sidebar widgets keep their own white bg),
   no extra padding before the photo (top padding removed from article). */
.post-content-wrap { background: transparent; }

/* Article: accent (body) bg — same color as page, so no dark box visible.
   Hides the fixed watermark (opaque bg at z-index:1 stacking context).
   Top padding matches sidebar padding-top so photo aligns with first widget. */
.post-article {
  background: var(--accent, #9e2936);
  padding-top: 40px !important;
}

/* Remove card-shadow injected by header.php — need high specificity to beat !important */
html body .post-content-wrap > article.post-article,
html body .post-article {
  box-shadow: none !important;
  border-radius: 0 !important;
  border: none !important;
}

/* ── Photo block: same margins + border-radius as .post-text-block ── */
.post-photo-block {
  margin: 0 8px;
  border-radius: 14px;
  overflow: hidden;
  border: none;
  line-height: 0;
}
.post-photo-block .post-photo-img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 0;
}

/* ── Text block: rounded, padded, separate from photo ── */
.post-text-block {
  background: rgba(255,255,255,0.07);
  border-radius: 14px;
  padding: 20px;
  margin: 14px 8px 8px;
}

/* Nav row (prev/next buttons) */
.post-nav-row {
  display: flex;
  gap: 12px;
  margin-top: 28px;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,0.12);
}

/* Date and category tag: contrast on dark background */
html body .post-article .post-meta-date {
  color: rgba(255,255,255,0.68) !important;
}
html body .post-article .post-meta-cat {
  color: #fff !important;
  background: rgba(255,255,255,0.14) !important;
  border: 1px solid rgba(255,255,255,0.22) !important;
}

/* ============================================================
   FIXTURES-TABLE & RESULTS-TABLE (shortcode <table> layout)
   ============================================================ */

.fnwv3-fixtures,
.fnwv3-results { overflow-x: auto; }

.fixtures-table,
.results-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 8px;
}
.fixtures-table thead th,
.results-table thead th {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--muted);
  padding: 4px 16px 10px;
  text-align: left;
}
.fixtures-table tbody tr,
.results-table tbody tr {
  background: var(--bg-alt);
}
.fixtures-table tbody td,
.results-table tbody td {
  padding: 14px 16px;
  vertical-align: middle;
}
.fixtures-table tbody tr td:first-child,
.results-table tbody tr td:first-child { border-radius: 12px 0 0 12px; }
.fixtures-table tbody tr td:last-child,
.results-table tbody tr td:last-child  { border-radius: 0 12px 12px 0; }

/* Teams cell — V4 match-row contract: home | score/VS | away */
.ft-teams {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);
  gap: 12px;
  align-items: center;
}
.ft-team {
  display: grid;
  grid-template-columns: 32px minmax(0,1fr);
  align-items: center;
  gap: 8px;
  min-width: 0;
  overflow: visible;
  font-size: 14px;
  font-weight: 800;
  color: var(--ink);
}
.ft-team--away {
  grid-template-columns: minmax(0,1fr) 32px;
  justify-content: initial;
  text-align: right;
}
.ft-mark {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--accent, #9e2936);
  font-size: 10px;
  font-weight: 900;
}
.ft-mark .ft-logo {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.ft-name { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ft-center {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  flex-shrink: 0;
}
.ft-vs {
  display: inline-block; font-size: 11px; font-weight: 800;
  letter-spacing: 1px; color: var(--muted);
  background: var(--bg); border: 1px solid var(--border);
  border-radius: 999px; padding: 4px 12px;
}
.ft-date {
  font-size: 12px; color: var(--muted); font-weight: 600; white-space: nowrap;
}
.ft-comp { font-size: 12px; color: var(--muted); text-align: right; white-space: nowrap; }
.next-badge {
  display: inline-block; font-size: 10px; font-weight: 700; letter-spacing: 1px;
  text-transform: uppercase; color: #fff; background: var(--accent, #9e2936);
  border-radius: 999px; padding: 2px 8px; margin-left: 6px;
}
.rt-score {
  font-weight: 800; font-size: 15px; background: var(--bg);
  border: 1px solid var(--border); border-radius: 999px;
  padding: 5px 12px; white-space: nowrap; color: var(--ink);
}
.rt-badge { margin-top: 4px; }

/* ── MOBILE: compact V4 card pattern ≤640px ── */
@media (max-width: 640px) {
  .fixtures-table,
  .results-table { display: block !important; width: 100%; }
  .fixtures-table thead,
  .results-table thead { display: none; }
  .fixtures-table tbody,
  .results-table tbody {
    display: flex !important;
    flex-direction: column;
    gap: 12px;
    width: 100%;
  }

  /* Row = card: 3 rows stacked (date / teams / comp) */
  .fixtures-table tr,
  .results-table tr {
    display: block !important;
    width: 100%;
    gap: 10px;
    min-height: 0;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 14px;
  }
  .fixtures-table td,
  .results-table td {
    display: block !important;
    width: 100% !important;
    padding: 0;
    border-radius: 0 !important;
  }

  .fixtures-table td.ft-date,
  .results-table td.ft-date {
    width: 100%;
    font-size: 12px;
    font-weight: 800;
    color: var(--muted);
    white-space: nowrap;
    margin-bottom: 10px;
  }
  .fixtures-table td:nth-child(2),
  .results-table td:nth-child(2) { margin-bottom: 10px; }
  .fixtures-table td.ft-comp,
  .results-table td.ft-comp {
    width: 100%;
    font-size: 12px;
    line-height: 1.25;
    font-weight: 800;
    color: var(--muted);
    text-align: left;
    white-space: normal;
  }

  /* Teams zone: same geometry as V4 mobile */
  .fixtures-table .ft-teams,
  .results-table .ft-teams {
    display: grid;
    grid-template-columns: minmax(0,1fr) 58px minmax(0,1fr);
    gap: 8px;
    width: 100%;
    align-items: center;
  }

  .fixtures-table .ft-team,
  .results-table .ft-team {
    display: grid;
    grid-template-columns: 28px minmax(0,1fr);
    gap: 7px;
    align-items: center;
    min-width: 0;
    overflow: visible;
    white-space: normal;
    font-size: 14px;
    font-weight: 900;
  }
  .fixtures-table .ft-team--away,
  .results-table .ft-team--away {
    grid-template-columns: minmax(0,1fr) 28px;
    text-align: right;
  }

  .fixtures-table .ft-name,
  .results-table .ft-name {
    min-width: 0;
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
    line-height: 1.12;
    overflow-wrap: anywhere;
  }

  .fixtures-table .ft-mark,
  .results-table .ft-mark {
    width: 28px;
    height: 28px;
    border-radius: 9px;
  }
  .fixtures-table .ft-mark .ft-logo,
  .results-table .ft-mark .ft-logo {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain;
    padding: 3px;
  }

  .fixtures-table .ft-center,
  .results-table .ft-center {
    width: 58px;
    justify-self: center;
    display: grid;
    gap: 0;
    align-items: center;
    justify-content: center;
    padding: 0;
  }
  .fixtures-table .ft-center .rt-badge,
  .results-table .ft-center .rt-badge { display: none !important; }
  .fixtures-table .ft-vs,
  .results-table .ft-vs,
  .fixtures-table .rt-score,
  .results-table .rt-score {
    min-width: 58px;
    padding: 7px 8px;
    font-size: 16px;
    text-align: center;
  }
}


/* ============================================================
   БАСКЕТБОЛЬНЫЕ БЛОКИ — дописано поверх копии V5
   ============================================================ */

/* ── ТАБЛИЦА: баскетбольные колонки ─────────────────────────
   Отличия от футбольной разметки родителя, каждое обязательно:
     · нет колонки ничьих — в баскетболе ничья невозможна;
     · нет очков за победу — место определяет ПРОЦЕНТ побед;
     · вместо забитых и пропущенных мячей — очки за и против;
     · добавлено отставание в играх (GB) — базовая величина американских
       и филиппинских лиг, без неё таблица читается непривычно.
   ------------------------------------------------------------ */

.fnwbb-ltable__wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }

.fnwbb-ltable { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.fnwbb-ltable th,
.fnwbb-ltable td { padding: 10px 8px; text-align: center; white-space: nowrap; }
.fnwbb-ltable th.is-team,
.fnwbb-ltable td.is-team { text-align: left; white-space: normal; min-width: 168px; }

/* Процент побед — главная колонка баскетбольной таблицы, выделяется как «очки» в футболе. */
.fnwbb-ltable th.is-pct,
.fnwbb-ltable td.is-pct { font-weight: 800; }

.fnwbb-ltable tr.is-own { font-weight: 800; }

/* ── МОБИЛЬНАЯ АДАПТАЦИЯ ────────────────────────────────────
   На телефоне мировые баскетбольные таблицы (NBA, FIBA, PBA) показывают четыре
   величины: место, команда, баланс побед-поражений и процент. Остальное прячется,
   а не сжимается до нечитаемого. Ширина 414 — та, на которой мы проверяем рендер.
   ------------------------------------------------------------ */
@media (max-width: 640px) {
    .fnwbb-ltable th.is-opt,
    .fnwbb-ltable td.is-opt { display: none; }
    .fnwbb-ltable th,
    .fnwbb-ltable td { padding: 9px 5px; font-size: 14px; }
    .fnwbb-ltable th.is-team,
    .fnwbb-ltable td.is-team { min-width: 0; }
}

/* ── ЗНАЧКИ ФОРМЫ: только победа и поражение ────────────────
   ⛔ У родителя есть третий значок — ничья. Здесь его нет и быть не может.
   ------------------------------------------------------------ */
.fnwbb-form { display: inline-flex; gap: 3px; }
.fnwbb-form__i {
    width: 18px; height: 18px; line-height: 18px; border-radius: 50%;
    font-size: 11px; font-weight: 800; color: #fff;
}
.fnwbb-form__i.is-win  { background: #1f9d55; }
.fnwbb-form__i.is-loss { background: #c1272d; }

/* ── СЧЁТ ПО ЧЕТВЕРТЯМ ──────────────────────────────────────
   Футбольная тема показывает один счёт. Баскетбольный матч читается по четвертям,
   и без разбивки страница результатов теряет главное.
   ------------------------------------------------------------ */
.fnwbb-quarters { display: flex; gap: 10px; flex-wrap: wrap; font-size: 13px; opacity: .85; }
.fnwbb-quarters__q { white-space: nowrap; }
.fnwbb-quarters__q.is-ot { font-weight: 700; }

/* ── МАТЧИ ──────────────────────────────────────────────────
   Баскетбольный счёт всегда двузначный или трёхзначный, и ничьей не бывает —
   победитель есть у каждой игры. Поэтому имя победителя выделяется всегда,
   а не «если счёт больше».
   ------------------------------------------------------------ */
.fnwbb-matches { display: grid; gap: 12px; }

.fnwbb-match {
    padding: 14px 16px;
    border: 1px solid rgba(0, 0, 0, .09);
    border-radius: 12px;
    background: #fff;
}
.fnwbb-match.is-own { border-color: rgba(0, 0, 0, .28); }

.fnwbb-match__date { font-size: 12px; letter-spacing: .04em; text-transform: uppercase; opacity: .6; }

.fnwbb-match__teams {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 12px;
    margin: 6px 0 8px;
}
.fnwbb-match__t { font-size: 16px; font-weight: 600; }
.fnwbb-match__t:last-of-type { text-align: right; }
.fnwbb-match__t.is-win { font-weight: 800; }

.fnwbb-match__score {
    font-size: 20px; font-weight: 800; white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.fnwbb-match__venue { font-size: 12px; opacity: .55; margin-top: 6px; }

@media (max-width: 640px) {
    .fnwbb-match__t { font-size: 14px; }
    .fnwbb-match__score { font-size: 18px; }
    /* ⛔ Разбор по четвертям на телефоне НЕ прячем: ради него страницу и
       открывают. Он переносится на вторую строку, а не исчезает. */
    .fnwbb-quarters { font-size: 12px; gap: 8px; }
}

/* ── ЛИДЕРЫ КОМАНДЫ ─────────────────────────────────────────
   Очки, подборы и передачи за игру — то, чем в баскетболе описывают команду.
   В футбольной теме такого блока нет вовсе.
   ------------------------------------------------------------ */
.fnwbb-leaders {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}
.fnwbb-leader {
    padding: 14px;
    border-radius: 12px;
    background: rgba(0, 0, 0, .04);
    text-align: center;
}
.fnwbb-leader__lbl { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; opacity: .6; }
.fnwbb-leader__num { font-size: 28px; font-weight: 900; line-height: 1.15; font-variant-numeric: tabular-nums; }
.fnwbb-leader__name { font-size: 13px; opacity: .8; }

@media (max-width: 640px) {
    /* Три плитки в ряд на 414 сжимаются до нечитаемых чисел — ставим в столбец. */
    .fnwbb-leaders { grid-template-columns: 1fr; }
    .fnwbb-leader { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; text-align: left; }
    .fnwbb-leader__num { font-size: 22px; }
}

/* ── СВОДКА НАД ТАБЛИЦЕЙ ────────────────────────────────────
   Четыре величины, которыми в баскетболе описывают положение клуба: место,
   баланс побед-поражений, процент и отставание от лидера. У родителя на этом
   месте очки, разница мячей и ничьи — в баскетболе первые две означают другое,
   а третьей не существует.
   ------------------------------------------------------------ */
.fnwbb-summary {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin: 18px 0 22px;
}
.fnwbb-summary__tile {
    padding: 16px 12px;
    border-radius: 14px;
    background: rgba(0, 0, 0, .045);
    text-align: center;
}
.fnwbb-summary__lbl { font-size: 11px; letter-spacing: .07em; text-transform: uppercase; opacity: .6; }
.fnwbb-summary__num { font-size: 30px; font-weight: 900; line-height: 1.2; font-variant-numeric: tabular-nums; }

.fnwbb-page__league { display: block; font-size: 14px; font-weight: 500; opacity: .65; margin-top: 4px; }
.fnwbb-empty { padding: 28px 0; opacity: .7; }
.fnwbb-legend { margin-top: 14px; font-size: 12px; line-height: 1.6; opacity: .6; }

@media (max-width: 640px) {
    /* Четыре плитки в ряд на 414 дают числа в 12 пикселей — ставим по две. */
    .fnwbb-summary { grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .fnwbb-summary__num { font-size: 24px; }
}

/* ── ЛЕГЕНДА ────────────────────────────────────────────────
   Части, описывающие узкие колонки, помечены тем же is-opt и исчезают вместе
   с ними. Иначе на телефоне подпись рассказывает о колонках, которых на экране
   нет, и читатель ищет несуществующее.
   ------------------------------------------------------------ */
.fnwbb-legend__i { display: inline; }
.fnwbb-legend__i + .fnwbb-legend__i::before { content: " · "; opacity: .5; }
@media (max-width: 640px) {
    .fnwbb-legend__i.is-opt { display: none; }
}

/* ── МАТЧИ НА ТЕЛЕФОНЕ ──────────────────────────────────────
   На 414 длинные имена клубов («Abra Solid North Weavers») жмутся к счёту в
   три колонки и ломаются посреди слова. Ставим в столбец: дом, счёт, гости —
   так это и показывают приложения лиг.
   ------------------------------------------------------------ */
@media (max-width: 640px) {
    .fnwbb-match__teams { grid-template-columns: 1fr; gap: 2px; text-align: center; }
    .fnwbb-match__t,
    .fnwbb-match__t:last-of-type { text-align: center; }
    .fnwbb-match__score { order: 2; margin: 2px 0; }
    .fnwbb-match__t:last-of-type { order: 3; }
    .fnwbb-quarters { justify-content: center; }
    .fnwbb-match__venue { text-align: center; }
    .fnwbb-match__date { text-align: center; }
}
