/*
Theme Name: Woodball India — Theme 10
Theme URI: https://woodballindia.com/
Author: Raj Kumar Sen
Author URI: https://woodballindia.com/
Description: Official WordPress theme for the Woodball Association of India (WbAI). Ships with the full one-page design pre-loaded as an editable page (Gutenberg and Elementor compatible), plus real, editable post types for Players, Board Members, Technical Officials, Calendar Events, Hero Slides and a filterable Results Notice Board. Hero Slides feed either the main hero carousel or the sponsor card slider, chosen per slide. Players are organised into Men / Women / Boys / Girls teams and Technical Officials into International / National, each showing a first six with a "view more" page for the rest. The Hero and About sections are fully editable from the Home page's own boxes. Pages left over from the older Woodball theme are converted into normal, editable pages automatically. Uploaded photos keep their full original resolution everywhere. Latest News and Promotion & Development are wired to real WordPress posts and categories.
Version: 10.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: woodball-india
Tags: one-column, custom-logo, custom-menu, editor-style, featured-images, full-width-template, translation-ready, block-styles, wide-blocks

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned with others.
*/
/* =========================================================
   Woodball Association of India
   Identity: deep blues and white, maple-wood mallet tones,
   and the Indian tricolour used as a line motif.
   ========================================================= */
:root {
  --blue-950: #06142E;
  --blue-900: #0B2A5B;
  --blue-700: #1546A0;
  --blue-500: #2A6FDB;
  --blue-300: #A9C8FF;
  --mist: #EEF4FC;
  --white: #FFFFFF;
  --ink: #0E1B33;
  --ink-soft: #4A5870;
  --line: #D4E0F0;
  --maple: #C98B4A;
  --maple-light: #E6B77D;
  --maple-dark: #7F5227;
  --saffron: #F08A24;
  --india-green: #1E9E5A;
  --tricolour: linear-gradient(90deg, var(--saffron) 0 33.33%, #fff 33.33% 66.66%, var(--india-green) 66.66%);

  --display: "Big Shoulders Display", "Arial Narrow", "Roboto Condensed", sans-serif;
  --body: "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
  --deva: "Tiro Devanagari Hindi", "Noto Serif Devanagari", serif;

  --wrap: 1240px;
  --header-h: 76px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--body);
  font-size: 17px;
  line-height: 1.62;
  color: var(--ink);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.menu-open { overflow: hidden; }
img { max-width: 100%; display: block; }
a { color: inherit; }
button { font: inherit; }
[hidden] { display: none !important; }
h1, h2, h3, h4 { margin: 0; line-height: 1; font-family: var(--display); }
p { margin: 0 0 1em; }
address { font-style: normal; }
main:focus { outline: none; }

.wrap { width: min(var(--wrap), 100% - 40px); margin-inline: auto; }
.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;
}
.skip {
  position: fixed; left: 12px; top: -80px; z-index: 100;
  background: var(--saffron); color: var(--ink); padding: 10px 16px; border-radius: 8px;
  font-weight: 700; text-decoration: none;
}
.skip:focus { top: 12px; }
:focus-visible { outline: 3px solid var(--saffron); outline-offset: 3px; }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 13px 24px; border-radius: 999px; border: 2px solid transparent;
  font-family: var(--body); font-size: 15px; font-weight: 700; line-height: 1.2;
  text-decoration: none; cursor: pointer; white-space: nowrap;
  transition: transform .15s ease, background-color .2s ease, border-color .2s ease, color .2s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }
.btn:disabled { opacity: .6; cursor: default; transform: none; }
.btn-saffron { background: var(--saffron); color: #1C1206; }
.btn-saffron:hover { background: #FF9D3F; }
.btn-ghost { border-color: rgba(255,255,255,.45); color: #fff; }
.btn-ghost:hover { border-color: #fff; background: rgba(255,255,255,.07); }
.btn-dark { background: var(--blue-900); color: #fff; }
.btn-dark:hover { background: var(--blue-700); }

/* ---------- Header & flat main menu ---------- */
.site-header {
  position: fixed; inset: 0 0 auto; z-index: 50; height: var(--header-h);
  color: #fff; transition: background-color .3s ease, box-shadow .3s ease;
}
.site-header.is-solid {
  background: rgba(6, 20, 46, .94);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  box-shadow: 0 1px 0 rgba(255,255,255,.08);
}
.bar {
  height: 100%; width: min(1440px, 100% - 32px); margin-inline: auto;
  display: flex; align-items: center; gap: 20px;
}
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; flex-shrink: 0; }
.brand img { width: 52px; height: 52px; border-radius: 50%; background: #fff; padding: 3px; object-fit: contain; }
.brand-text { display: flex; flex-direction: column; line-height: 1.05; }
.brand-text strong { font-family: var(--display); font-size: 26px; font-weight: 800; letter-spacing: .02em; }
.brand-text small { font-size: 12px; opacity: .78; }

.primary { margin-left: auto; }
.primary ul { display: flex; gap: 2px; margin: 0; padding: 0; list-style: none; }
.primary a {
  position: relative; display: block; padding: 9px 11px; border-radius: 8px;
  font-size: 15px; font-weight: 600; text-decoration: none; color: rgba(255,255,255,.84);
  transition: color .2s ease, background-color .2s ease;
}
.primary a:hover { color: #fff; background: rgba(255,255,255,.08); }
.primary a.is-active { color: #fff; }
.primary a.is-active::after {
  content: ""; position: absolute; left: 11px; right: 11px; bottom: 1px; height: 3px;
  border-radius: 3px; background: var(--tricolour);
}
.nav-cta { flex-shrink: 0; padding: 11px 20px; }

.menu-toggle {
  display: none; margin-left: auto; width: 48px; height: 48px; border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,.35); background: transparent; color: #fff; cursor: pointer;
  align-items: center; justify-content: center;
}
.menu-lines, .menu-lines::before, .menu-lines::after {
  display: block; width: 20px; height: 2px; background: currentColor; border-radius: 2px;
  transition: transform .25s ease, background-color .25s ease;
}
.menu-lines { position: relative; }
.menu-lines::before, .menu-lines::after { content: ""; position: absolute; left: 0; }
.menu-lines::before { top: -6px; }
.menu-lines::after { top: 6px; }
.menu-toggle[aria-expanded="true"] .menu-lines { background: transparent; }
.menu-toggle[aria-expanded="true"] .menu-lines::before { transform: translateY(6px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-lines::after { transform: translateY(-6px) rotate(-45deg); }

.menu-panel {
  position: fixed; inset: 0; z-index: 40; overflow-y: auto;
  padding: calc(var(--header-h) + 28px) 24px 48px;
  background: var(--blue-950); color: #fff;
}
.menu-grid {
  width: min(1100px, 100%); margin-inline: auto;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 30px 36px;
}
.menu-group > a {
  font-family: var(--display); font-size: 32px; font-weight: 800; line-height: 1;
  text-transform: uppercase; text-decoration: none;
}
.menu-group > a:hover { color: var(--maple-light); }
.menu-group ul { margin: 10px 0 0; padding: 0 0 0 14px; list-style: none; border-left: 2px solid rgba(255,255,255,.14); }
.menu-group li a { display: block; padding: 5px 0; font-size: 16px; color: var(--blue-300); text-decoration: none; }
.menu-group li a:hover { color: #fff; }
.menu-cta { display: flex; width: min(1100px, 100%); margin: 40px auto 0; max-width: 320px; }

@media (max-width: 1279px) {
  .primary, .nav-cta { display: none; }
  .menu-toggle { display: inline-flex; }
}
@media (max-width: 480px) {
  .brand-text small { display: none; }
}

/* ---------- Hero ---------- */
.hero {
  position: relative; overflow: hidden; color: #fff; padding-top: var(--header-h);
  background:
    radial-gradient(80% 65% at 78% 88%, rgba(42,111,219,.55), transparent 65%),
    radial-gradient(55% 45% at 5% 0%, rgba(240,138,36,.14), transparent 70%),
    repeating-linear-gradient(104deg, #0E3470 0 120px, #0A2B5E 120px 240px);
}
.hero::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .09; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.hero-bharat {
  position: absolute; left: 50%; top: 50%; z-index: 0;
  width: 100%; text-align: center; transform: translate(-50%, -50%);
  font-family: var(--deva); font-size: clamp(100px, 9vw, 145px); line-height: 1.2;
  color: #d6e9ff08; -webkit-text-stroke: 1px #d6e9ff45;
  pointer-events: none; user-select: none; transition: transform .35s cubic-bezier(.2,.7,.2,1);
}
.hero-motion-toggle { margin-top: 18px; padding: 10px 16px; border: 1px solid #ffffff60; border-radius: 6px; background: #ffffff12; color: #fff; font: inherit; cursor: pointer; }
.hero-motion-toggle[hidden] { display: none; }
.hero-motion-status { margin: 8px 0 0; color: #d5e3f6; font-size: 12px; }
.hero-motion-status:empty { display: none; }
.hero-editorial { position: relative; z-index: 2; width: min(1520px, calc(100% - 64px)); margin: 0 auto; padding: 24px 0 40px; }
.hero-masthead { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 0 0 22px; font-size: 13px; letter-spacing: .04em; }
.hero-masthead p { margin: 0; font-weight: 700; }
.hero-masthead > span { color: #b7cce9; }
.hero-showcase { display: grid; grid-template-columns: minmax(0, 3.5fr) minmax(285px, 1fr); gap: 24px; }
.hero-story { display: grid; grid-template-columns: minmax(200px, .9fr) minmax(0, 2fr); min-height: 590px; overflow: hidden; border-radius: 4px; background: #123568; }
.hero-story-copy { display: flex; flex-direction: column; padding: 32px 26px; background: linear-gradient(155deg, #2459a4, #133268); }
.hero-story-label { margin: 0 0 32px; color: #ffce92; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; }
.hero-story-copy h1 { margin: 0 0 24px; font-family: var(--display); font-size: clamp(42px, 4vw, 66px); font-weight: 900; line-height: .96; text-transform: uppercase; }
#heroSummary { color: #d5e3f6; font-size: 15px; line-height: 1.6; }
.hero-story-link { display: flex; justify-content: space-between; gap: 16px; margin-top: 12px; padding: 14px 0; border-top: 1px solid #ffffff40; text-decoration: none; font-size: 14px; font-weight: 700; }
.hero-story-bottom { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 16px; margin-top: auto; padding-top: 34px; }
.hero-story-bottom > span:last-child { max-width: 70px; font-size: 10px; letter-spacing: .15em; opacity: .6; }
.hero-slide-count { font-size: 15px; color: #ffc586; }
.hero-slide-count b { font-family: var(--display); font-size: 56px; font-weight: 800; line-height: 1; }
.hero-story-media { position: relative; min-width: 0; background: #123568; }
.hero-story-media > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-story-media::after { content: ''; position: absolute; inset: 60% 0 0; background: linear-gradient(transparent, #06142ec9); pointer-events: none; }
.hero-photo-caption { position: absolute; left: 26px; right: 100px; bottom: 28px; z-index: 1; font-size: 13px; line-height: 1.4; }
.hero-slider-controls { position: absolute; right: 0; bottom: 0; z-index: 2; display: flex; flex-direction: column; }
.hero-slider-controls button { width: 56px; height: 56px; border: 0; background: var(--saffron); color: var(--ink); font-size: 26px; cursor: pointer; }
.hero-slider-controls button:first-child { background: #fff; }
.hero-slider-controls button:hover { background: #ffd7a6; }
.hero-ribbon { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; margin-top: 28px; padding: 18px 24px; border-block: 1px solid #ffffff30; background: #ffffff08; }
.hero-ribbon > span:first-child { font-weight: 800; font-size: 12px; letter-spacing: .12em; color: #ffce92; }
.hero-ribbon > span:nth-child(2) { font-family: var(--display); font-size: clamp(24px, 3vw, 38px); font-weight: 800; text-transform: uppercase; }
.hero-ribbon a { font-size: 12px; text-underline-offset: 4px; }
/* Sponsor poster */
.hero-sponsor { position: relative; isolation: isolate; display: flex; flex-direction: column; overflow: hidden; padding: 26px; border: 1px solid #e9bf7b80; border-radius: 4px; background: radial-gradient(ellipse at 70% 15%, #266eaa 0, transparent 52%), linear-gradient(160deg, #102e55, #07162e 75%); box-shadow: 0 18px 50px #020d244d, inset 0 0 45px #eeb76c0d; }
.hero-sponsor::before { content: ''; position: absolute; z-index: -1; width: 340px; height: 340px; right: -160px; top: 100px; border-radius: 50%; border: 1px solid #edc28a50; box-shadow: 0 0 0 28px #edc28a0a, 0 0 0 56px #edc28a08, 0 0 0 84px #edc28a06;  pointer-events: none; }
.hero-sponsor::after { content: ''; position: absolute; z-index: 3; inset: -80% -100%; background: linear-gradient(110deg, transparent 44%, #ffffff13 49%, #ffffff25 50%, transparent 56%); transform: translateX(-70%);  pointer-events: none; }
.sponsor-poster-top { display: flex; justify-content: space-between; align-items: center; font-size: 10px; font-weight: 700; letter-spacing: .16em; color: #f1c990; }
.sponsor-poster-top > span:last-child { font-size: 24px; }
.sponsor-poster-emblem { position: relative; display: grid; place-items: center; margin: 10px 0 18px; }
.sponsor-poster-emblem img { width: 130px; height: 150px; object-fit: contain; filter: drop-shadow(0 8px 18px #0005); transition: transform .6s ease; }
.hero-sponsor:hover .sponsor-poster-emblem img { transform: translateY(-5px) rotate(-3deg); }
.sponsor-poster-kicker { font-size: 10px; text-transform: uppercase; letter-spacing: .09em; color: #b9cfe8; margin: 0 0 14px; }
.sponsor-poster-copy h2 { font-family: var(--display); font-size: clamp(46px, 4vw, 64px); font-weight: 900; text-transform: uppercase; line-height: .88; margin: 0 0 20px; }
.sponsor-poster-copy h2 em { font-style: normal; color: #f1c990; }
.sponsor-poster-copy > p:last-child { color: #c4d2e4; font-size: 13px; line-height: 1.5; margin: 0 0 24px; }
.sponsor-poster-cta { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: auto; padding: 15px; background: linear-gradient(110deg, #e8b573, #ffe5b5, #edc085); color: #10213b; font-size: 13px; font-weight: 800; text-decoration: none; }
.sponsor-poster-cta:hover { background: #ffe5b5; }
.sponsor-poster-cta:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
.sponsor-poster-foot { margin-top: 14px; font-size: 8px; letter-spacing: .1em; color: #c4d2e4; text-align: center; }
@keyframes sponsor-halo { to { transform: translate(-22px, 30px) scale(1.12); opacity: .5; } }
@keyframes sponsor-shimmer { 0%, 65% { transform: translateX(-70%); } 100% { transform: translateX(70%); } }
@media (prefers-reduced-motion: reduce) {
  .hero-sponsor::before, .hero-sponsor::after { animation: none; }
  .hero-sponsor:hover .sponsor-poster-emblem img { transform: none; }
}
@media (min-width: 601px) and (max-width: 1100px) {
  .hero-sponsor { display: grid; grid-template-columns: 180px 1fr; column-gap: 32px; }
  .sponsor-poster-top { grid-column: 1 / -1; margin-bottom: 16px; }
  .sponsor-poster-emblem { grid-column: 1; grid-row: 2 / 4; }
  .sponsor-poster-copy { grid-column: 2; }
  .sponsor-poster-copy h2 { font-size: 46px; }
  .sponsor-poster-copy h2 br { display: none; }
  .sponsor-poster-copy h2 em::before { content: ' '; }
  .sponsor-poster-cta { grid-column: 2; }
  .sponsor-poster-foot { grid-column: 1 / -1; }
}
@media (max-width: 1100px) {
  .hero-editorial { width: calc(100% - 40px); }
  .hero-showcase { grid-template-columns: minmax(0, 1fr); }
  .hero-story { min-height: 510px; grid-template-columns: minmax(220px, 1fr) minmax(0, 2fr); }
}
@media (max-width: 600px) {
  .hero-editorial { width: calc(100% - 28px); padding-top: 16px; }
  .hero-masthead > span { display: none; }
  .hero-story { display: flex; flex-direction: column; }
  .hero-story-media { order: -1; height: 280px; }
  .hero-story-copy { padding: 26px; }
  .hero-story-label { margin-bottom: 18px; }
  .hero-story-copy h1 { font-size: 46px; }
  .hero-story-bottom { padding-top: 20px; }
  .hero-ribbon { justify-content: center; text-align: center; }
}

/* Raised hero display frames */
.hero-showcase { perspective: 1800px; padding: 10px 4px 24px; gap: 32px; }
.hero-story, .hero-sponsor {
  position: relative; border: 1px solid #9dbfea60; border-radius: 12px;
  box-shadow: 0 2px 0 #45658c, 0 5px 0 #122e50, 0 9px 0 #08182d,
    0 18px 22px -10px #000b, 0 38px 65px -20px #000b,
    -8px -8px 30px -18px #80b8ff80;
  transition: transform .55s cubic-bezier(.2,.7,.2,1), box-shadow .55s ease;
}
.hero-story::after {
  content: ''; position: absolute; z-index: 4; inset: 0; border-radius: inherit;
  box-shadow: inset 0 2px 1px #ffffff50, inset 2px 0 1px #ffffff20,
    inset -2px -3px 2px #0007;
  pointer-events: none;
}
.hero-story-copy { position: relative; z-index: 1; box-shadow: 12px 0 24px -12px #020e2cbb, inset 0 1px 0 #ffffff20; }
.hero-story-copy h1, .sponsor-poster-copy h2 {
  text-shadow: 0 1px 0 #ffffff15, 0 3px 0 #031c3740, 0 8px 16px #0005;
}
.hero-sponsor {
  border-color: #f3cf957a;
  box-shadow: 0 2px 0 #b18b56, 0 5px 0 #4c4134, 0 9px 0 #08182d,
    0 18px 22px -10px #000c, 0 38px 65px -20px #000b,
    inset 0 2px 1px #ffe7be50, inset 2px 0 1px #ffffff1a, inset -2px -3px 3px #0009;
}
.sponsor-poster-emblem img { filter: drop-shadow(0 4px 1px #020c234d) drop-shadow(0 15px 12px #0009); }
.sponsor-poster-cta {
  border-radius: 5px; border: 1px solid #ffe5bc;
  box-shadow: inset 0 2px 0 #ffffff70, 0 4px 0 #997143, 0 10px 20px #0006;
  transition: transform .25s ease, box-shadow .25s ease;
}
.sponsor-poster-cta:active { transform: translateY(3px); box-shadow: inset 0 1px 0 #ffffff70, 0 1px 0 #997143, 0 4px 8px #0006; }
.hero-slider-controls { box-shadow: -6px -3px 20px #0004; }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .hero-story:hover { transform: translateY(-6px) rotateY(.65deg) rotateX(.4deg); }
  .hero-sponsor:hover { transform: translateY(-8px) rotateY(-1.5deg) rotateX(.8deg); }
}
@media (max-width: 600px) {
  .hero-showcase { gap: 30px; padding-inline: 2px; }
  .hero-story, .hero-sponsor { box-shadow: 0 2px 0 #45658c, 0 6px 0 #08182d, 0 20px 30px -10px #0009; }
}

/* Static gradient lighting inside the hero cards. */
.hero-story-copy {
  isolation: isolate; overflow: hidden;
  background: linear-gradient(135deg, #173973, #2b65ad, #153466, #246398);
  background-size: 300% 300%; 
}
.hero-story-copy::before {
  content: ''; position: absolute; z-index: -1; inset: -35%; pointer-events: none;
  background: radial-gradient(ellipse at 35% 40%, #8ecbff35, transparent 50%);
  
}
.hero-sponsor {
  background: radial-gradient(ellipse at 70% 15%, #2878ad70, transparent 60%), linear-gradient(145deg, #153f70, #07162e, #215883, #102642);
  background-size: 150% 150%, 300% 300%; 
}
.sponsor-poster-emblem { isolation: isolate; overflow: hidden; min-height: 180px; align-self: center; width: 100%; }
.sponsor-poster-emblem img { position: relative; z-index: 1; }
@keyframes hero-gradient-drift {
  0%, 100% { background-position: 0% 30%; }
  50% { background-position: 100% 70%; }
}
@keyframes hero-light-drift {
  from { transform: translate(-8%, -5%) rotate(-12deg); }
  to { transform: translate(15%, 12%) rotate(20deg); }
}
@media (prefers-reduced-motion: reduce) {
  .hero-story-copy, .hero-story-copy::before, .hero-sponsor,
  .hero-sponsor::before, .hero-sponsor::after { animation: none !important; }
}

/* Scorecard strip */
.scorecard {
  position: relative; z-index: 2; margin: 0;
  display: grid; grid-template-columns: auto repeat(5, minmax(0, 1fr));
  color: var(--ink);
  background:
    repeating-linear-gradient(90deg, rgba(0,0,0,.035) 0 2px, transparent 2px 11px),
    linear-gradient(180deg, #D6A064, #BE8044);
}
.score-head {
  display: flex; flex-direction: column; justify-content: center; padding: 18px 30px;
  background: var(--ink); color: #fff;
  font-family: var(--display); font-size: 30px; font-weight: 800; line-height: 1; text-transform: uppercase;
}
.score-head small { margin-top: 6px; font-family: var(--body); font-size: 13px; font-weight: 500; text-transform: none; opacity: .72; }
.score { display: flex; flex-direction: column-reverse; justify-content: flex-end; padding: 16px 22px; border-left: 1px solid rgba(14,27,51,.22); }
.score dt { font-size: 14px; font-weight: 600; line-height: 1.25; color: #3B2915; }
.score dd { margin: 0 0 4px; font-family: var(--display); font-size: clamp(40px, 3.6vw, 58px); font-weight: 900; line-height: .9; }

@media (max-width: 979px) {
  .scorecard { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .score-head { grid-column: 1 / -1; flex-direction: row; align-items: baseline; gap: 12px; flex-wrap: wrap; }
  .score { border-top: 1px solid rgba(14,27,51,.22); }
  .score:nth-child(even) { border-left: 0; }
  .score:last-child { grid-column: 1 / -1; border-left: 0; }
}
@media (max-width: 600px) {
  .hero-title { font-size: clamp(48px, 15vw, 96px); }
  .hero-disciplines a { font-size: 20px; }
}
@media (max-width: 420px) {
  .hud { padding-left: 16px; }
  .hud-text { font-size: 20px; }
}

/* ---------- Registration notice ---------- */
.notice { background: var(--blue-900); color: #fff; }
.notice-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px 40px; align-items: center; padding: 34px 0; }
.notice h2 { margin-bottom: 8px; font-family: var(--body); font-size: 19px; font-weight: 700; line-height: 1.3; }
.notice p { max-width: 86ch; margin: 0; color: rgba(255,255,255,.8); }
.notice strong { color: var(--maple-light); }
@media (max-width: 760px) { .notice-inner { grid-template-columns: 1fr; } .notice .btn { justify-self: start; } }

/* ---------- Sections ---------- */
.section { padding: clamp(72px, 9vw, 128px) 0; }
.section--mist { background: var(--mist); }
.section--dark { background: var(--blue-900); color: #fff; }
.section--maple {
  color: var(--ink);
  background:
    repeating-linear-gradient(92deg, rgba(0,0,0,.03) 0 2px, transparent 2px 13px),
    linear-gradient(135deg, #DDA96C, #C28146);
}
.section-head {
  display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 20px 56px; align-items: end;
  margin-bottom: 48px;
}
.section-title { font-size: clamp(46px, 6.2vw, 94px); font-weight: 900; line-height: .88; text-transform: uppercase; }
.section-lede { max-width: 58ch; margin: 0; color: var(--ink-soft); }
.section--dark .section-lede { color: rgba(255,255,255,.76); }
@media (max-width: 860px) { .section-head { grid-template-columns: 1fr; margin-bottom: 36px; } }

/* ---------- Tabs ---------- */
.tabs {
  display: flex; gap: 4px 28px; margin-bottom: 44px;
  border-bottom: 1px solid var(--line);
  overflow-x: auto; scrollbar-width: none;
}
.tabs::-webkit-scrollbar { display: none; }
.tab {
  position: relative; flex-shrink: 0; padding: 14px 0; border: 0; background: none; cursor: pointer;
  font-size: 16px; font-weight: 600; color: var(--ink-soft); white-space: nowrap;
}
.tab::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; border-radius: 3px 3px 0 0;
  background: transparent; transition: background-color .2s ease;
}
.tab:hover { color: var(--ink); }
.tab[aria-selected="true"] { color: var(--ink); }
.tab[aria-selected="true"]::after { background: var(--saffron); }
.tab:focus-visible { outline-offset: -3px; }
.section--dark .tabs { border-color: rgba(255,255,255,.16); }
.section--dark .tab { color: rgba(255,255,255,.64); }
.section--dark .tab:hover, .section--dark .tab[aria-selected="true"] { color: #fff; }
.panel:not([hidden]) { animation: panelIn .35s ease; }
@keyframes panelIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* Nested tabs (e.g. Woodball Players > Men/Women/Boys/Girls) — smaller and
   tighter than a top-level section's tabs, so the hierarchy reads clearly. */
.tabs--sub { gap: 4px 20px; margin-bottom: 28px; }
.tabs--sub .tab { padding: 10px 0; font-size: 14px; }

.players-more { margin-top: 28px; text-align: center; }

/* ---------- Prose ---------- */
.prose { max-width: 68ch; }
.prose h3 { margin-bottom: 22px; font-size: clamp(34px, 3.4vw, 46px); font-weight: 800; text-transform: uppercase; }
.prose h4 { margin: 30px 0 10px; font-family: var(--body); font-size: 19px; font-weight: 700; line-height: 1.3; }
.prose p, .prose li { color: var(--ink-soft); }
.prose ol { padding-left: 1.3em; margin: 0 0 1.2em; }
.prose li { margin-bottom: .6em; padding-left: .3em; }
.two-col { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 56px; align-items: start; }
@media (max-width: 900px) { .two-col { grid-template-columns: 1fr; gap: 40px; } }

.fact-card {
  position: sticky; top: calc(var(--header-h) + 24px);
  padding: 32px; border-radius: 6px; background: var(--blue-900); color: #fff;
}
.fact-quote { margin-bottom: 26px; font-size: 20px; line-height: 1.45; }
.facts { margin: 0; }
.facts div { padding: 12px 0; border-top: 1px solid rgba(255,255,255,.15); }
.facts dt { font-size: 13px; font-weight: 600; color: var(--blue-300); }
.facts dd { margin: 2px 0 0; font-family: var(--display); font-size: 24px; font-weight: 700; line-height: 1.1; }

.timeline { margin: 8px 0 0; padding: 0; list-style: none; border-left: 3px solid var(--maple); }
.timeline li { position: relative; padding: 0 0 30px 32px; }
.timeline li:last-child { padding-bottom: 0; }
.timeline li::before {
  content: ""; position: absolute; left: -12px; top: 2px; width: 21px; height: 21px; border-radius: 50%;
  background: radial-gradient(circle at 34% 30%, #F6CF9A, var(--maple) 55%, #6E451F);
  box-shadow: 0 0 0 4px var(--white);
}
.timeline time { display: block; margin-bottom: 4px; font-family: var(--display); font-size: 34px; font-weight: 800; line-height: 1; }
.timeline p { margin: 0; color: var(--ink-soft); }

.rules { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: center; }
.rules-big { font-size: clamp(20px, 2vw, 26px); line-height: 1.45; color: var(--ink) !important; margin-bottom: 28px; }
.fairways { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; margin: 0; padding: 0; list-style: none; }
.fairways li {
  aspect-ratio: 1; display: grid; place-items: center; border-radius: 50%;
  font-family: var(--display); font-size: clamp(22px, 2.4vw, 34px); font-weight: 800; color: #3B2915;
  background: radial-gradient(circle at 34% 30%, #F6CF9A, var(--maple) 58%, #7A4E24);
}
.fairways li:first-child, .fairways li:last-child { outline: 3px solid var(--saffron); outline-offset: 3px; }
@media (max-width: 860px) { .rules { grid-template-columns: 1fr; } }

.gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-top: 64px; }
.gallery figure { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 4px; background: var(--mist); }
.gallery img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 760px) { .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } }


/* ---------- Disciplines ---------- */
.disciplines { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1fr) minmax(0, 1fr); gap: 16px; margin-bottom: 72px; }
.disciplines-intro { align-self: center; padding-right: 20px; }
.disciplines-intro h3 { margin-bottom: 12px; font-size: clamp(30px, 2.8vw, 40px); font-weight: 900; text-transform: uppercase; }
.disciplines-intro p { margin: 0; color: var(--ink-soft); }
.discipline { position: relative; overflow: hidden; padding: 34px 30px 30px; border-radius: 6px; color: #fff; min-height: 220px; display: flex; flex-direction: column; justify-content: flex-end; }
.discipline h4 { margin-bottom: 10px; font-size: clamp(34px, 3.2vw, 46px); font-weight: 900; text-transform: uppercase; }
.discipline p { margin: 0; color: rgba(255,255,255,.86); }
.discipline--beach { background: radial-gradient(120% 90% at 100% 0%, #3E86F0 0, transparent 60%), linear-gradient(160deg, #1546A0, #0B2A5B); }
.discipline--beach::before { content: ""; position: absolute; left: 0; right: 0; top: 18px; height: 40px; opacity: .22;
  background: repeating-radial-gradient(circle at 50% -30px, transparent 0 18px, #fff 18px 20px); }
.discipline--lawn { background: linear-gradient(160deg, #0B2A5B, #06142E); }
.discipline--lawn::before { content: ""; position: absolute; inset: 0 0 auto; height: 70px; opacity: .14;
  background: repeating-linear-gradient(104deg, #fff 0 2px, transparent 2px 16px); }
@media (max-width: 900px) { .disciplines { grid-template-columns: 1fr 1fr; } .disciplines-intro { grid-column: 1 / -1; padding: 0; } }
@media (max-width: 600px) { .disciplines { grid-template-columns: 1fr; } }

/* ---------- Recognition band ---------- */
.recognition { padding: 64px 0; background: var(--blue-950); color: #fff; }
.recognition-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 36px 56px; align-items: center; }
.recognition h2 { margin-bottom: 18px; font-size: clamp(34px, 4vw, 56px); font-weight: 900; line-height: .92; text-transform: uppercase; }
.recognition p { margin: 0; max-width: 56ch; color: rgba(255,255,255,.78); }
.logo-marquee { min-width: 0; }
.logo-marquee-row { overflow: hidden; margin-bottom: 12px; mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent); }
.logo-marquee-track { display: flex; width: max-content; animation: logo-marquee-scroll 32s linear infinite; }
.logo-marquee-row--reverse .logo-marquee-track { animation-direction: reverse; }
.logos { display: flex; flex-shrink: 0; gap: 12px; margin: 0; padding: 0 12px 0 0; list-style: none; }
.logos li { display: grid; place-items: center; flex: 0 0 108px; width: 108px; height: 86px; padding: 10px; border-radius: 10px; background: #fff; }
.logos img { width: 100%; height: 100%; min-height: 0; object-fit: contain; }
@keyframes logo-marquee-scroll { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .logo-marquee-track { animation: none; width: auto; }
  .logo-marquee-row { mask-image: none; }
  .logo-marquee .logos { flex-wrap: wrap; flex-shrink: 1; padding: 0; }
  .logo-marquee .logos[aria-hidden], .logo-marquee-row--reverse { display: none; }
}
@media (max-width: 900px) { .recognition-inner { grid-template-columns: 1fr; } }

/* ---------- Board ---------- */
.roster {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px;
  margin: 0 0 80px; padding: 0; list-style: none; border-top: 2px solid var(--ink);
}
.roster li { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 20px; align-items: center; padding: 26px 0; border-bottom: 1px solid var(--line); }
.roster .roster-lead { grid-column: 1 / -1; grid-template-columns: 104px minmax(0, 1fr); padding: 34px 0; }
.avatar {
  display: grid; place-items: center; width: 72px; height: 72px; border-radius: 50%;
  background: var(--blue-900); color: var(--maple-light);
  font-family: var(--display); font-size: 28px; font-weight: 800;
}
.roster-lead .avatar { width: 104px; height: 104px; font-size: 40px; box-shadow: 0 0 0 4px var(--mist), 0 0 0 7px var(--saffron); }
.role { margin: 0 0 6px; font-size: 14px; font-weight: 700; color: var(--maple-dark); }
.roster h3 { font-size: clamp(30px, 3vw, 42px); font-weight: 800; text-transform: uppercase; }
.roster-lead h3 { font-size: clamp(40px, 5vw, 68px); }
.aff { margin: 8px 0 0; font-size: 15px; color: var(--ink-soft); }
@media (max-width: 760px) {
  .roster { grid-template-columns: 1fr; }
  .roster .roster-lead { grid-template-columns: 80px minmax(0, 1fr); }
  .roster-lead .avatar { width: 80px; height: 80px; font-size: 32px; }
}

.zones {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px;
  grid-template-areas: "intro north northeast" "west central east" ". south .";
}
.zones-intro { grid-area: intro; align-self: center; padding-right: 16px; }
.zones-intro h3 { margin-bottom: 12px; font-size: clamp(32px, 3vw, 44px); font-weight: 900; text-transform: uppercase; }
.zones-intro p { margin: 0; color: var(--ink-soft); }
.zone { padding: 24px; border: 1px solid var(--line); border-radius: 4px; background: var(--white); }
.zone--north { grid-area: north; } .zone--northeast { grid-area: northeast; }
.zone--west { grid-area: west; } .zone--central { grid-area: central; border-color: var(--blue-500); }
.zone--east { grid-area: east; } .zone--south { grid-area: south; }
.zone h4 { margin-bottom: 10px; font-family: var(--body); font-size: 14px; font-weight: 700; line-height: 1.3; color: var(--blue-500); }
.zone .person { margin: 0; font-family: var(--display); font-size: 28px; font-weight: 800; line-height: 1; text-transform: uppercase; }
.zone address { margin-top: 10px; font-size: 14.5px; line-height: 1.5; color: var(--ink-soft); }
@media (max-width: 900px) {
  .zones { grid-template-columns: 1fr 1fr; grid-template-areas: "intro intro" "north northeast" "west east" "central south"; }
}
@media (max-width: 600px) {
  .zones { grid-template-columns: 1fr; grid-template-areas: "intro" "north" "northeast" "west" "central" "east" "south"; }
}

.states-tools { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 24px; }
.states-count { margin: 0; font-family: var(--display); font-size: 28px; font-weight: 800; text-transform: uppercase; }
.search { position: relative; width: min(380px, 100%); }
.search svg { position: absolute; left: 16px; top: 50%; width: 20px; height: 20px; transform: translateY(-50%); color: var(--ink-soft); }
.search input {
  width: 100%; padding: 13px 18px 13px 46px; border: 1.5px solid var(--line); border-radius: 999px;
  background: #fff; color: var(--ink); font: 16px var(--body);
}
.search input:focus { border-color: var(--blue-500); outline: none; box-shadow: 0 0 0 3px rgba(42,111,219,.22); }
.states { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 36px; margin: 0; padding: 0; list-style: none; }
.state { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 2px 12px; padding: 22px 0; border-top: 1px solid var(--line); }
.state-no { grid-row: span 3; font-family: var(--display); font-size: 24px; font-weight: 800; line-height: 1; color: var(--maple-dark); }
.state h4 { font-size: 26px; font-weight: 800; text-transform: uppercase; }
.state .person { margin: 6px 0 2px; font-weight: 700; }
.state address { font-size: 14.5px; line-height: 1.5; color: var(--ink-soft); }
.empty-inline { margin: 24px 0 0; color: var(--ink-soft); }
@media (max-width: 1000px) { .states { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .states { grid-template-columns: 1fr; } }

/* ---------- Technical ---------- */
.officials { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.official {
  display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 24px; align-items: center;
  padding: 36px; border-radius: 6px; background: var(--mist); border-left: 6px solid var(--saffron);
}
.official:nth-child(2) { border-left-color: var(--blue-500); }
.whistle {
  display: grid; place-items: center; width: 96px; height: 96px; border-radius: 50%;
  background: var(--blue-900); color: var(--maple-light); font-family: var(--display); font-size: 36px; font-weight: 800;
}
.official h3 { font-size: clamp(32px, 3.2vw, 46px); font-weight: 800; text-transform: uppercase; }
.official p { margin: 8px 0 0; font-weight: 600; color: var(--maple-dark); }
@media (max-width: 800px) {
  .officials { grid-template-columns: 1fr; }
  .official { grid-template-columns: 72px minmax(0, 1fr); padding: 26px; }
  .whistle { width: 72px; height: 72px; font-size: 28px; }
}

.doc-gallery { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.doc-gallery a { display: block; aspect-ratio: 3 / 4; overflow: hidden; border-radius: 4px; background: var(--mist); border: 1px solid var(--line); }
.doc-gallery img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform .3s ease; }
.doc-gallery a:hover img { transform: scale(1.03); }
.hint { margin: 14px 0 0; font-size: 14px; color: var(--ink-soft); }
@media (max-width: 900px) { .doc-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- Development ---------- */
.dev-body { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 40px; align-items: end; }
.dev-panel h3 { margin-bottom: 18px; font-size: clamp(48px, 7vw, 104px); font-weight: 900; line-height: .86; text-transform: uppercase; }
.dev-panel p { margin: 0; font-size: 20px; color: rgba(255,255,255,.78); }
.dev-contact { display: flex; flex-direction: column; gap: 6px; padding: 28px; border-radius: 6px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); }
.dev-contact p { margin: 0 0 8px; color: rgba(255,255,255,.8); }
.dev-contact a { font-family: var(--display); font-size: 26px; font-weight: 700; line-height: 1.2; text-decoration: none; color: var(--maple-light); overflow-wrap: anywhere; }
.dev-contact a:hover { color: #fff; }
@media (max-width: 860px) { .dev-body { grid-template-columns: 1fr; } }

/* ---------- Athletes ---------- */
.group-title { margin: 0 0 18px; font-size: 30px; font-weight: 800; text-transform: uppercase; }
.captain {
  display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  width: 100%; margin-bottom: 60px; padding: 0; border: 0; border-radius: 8px; overflow: hidden;
  background: var(--blue-900); color: #fff; text-align: left; cursor: pointer;
}
.captain-photo {
  position: relative; display: block; aspect-ratio: 4 / 5; align-self: start; overflow: hidden;
  background: var(--mist);
}
.captain-photo img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform .35s ease; }
.captain:hover .captain-photo img { transform: scale(1.03); }
.jersey {
  position: absolute; left: 20px; bottom: 6px; font-family: var(--display); font-size: 150px; font-weight: 900; line-height: .8;
  color: transparent; -webkit-text-stroke: 2px rgba(255,255,255,.85);
}
.captain-body { display: flex; flex-direction: column; justify-content: center; padding: clamp(28px, 4vw, 56px); }
.captain-role { font-size: 15px; font-weight: 700; color: var(--maple-light); }
.captain-name { margin: 10px 0 26px; font-family: var(--display); font-size: clamp(52px, 6vw, 96px); font-weight: 900; line-height: .86; text-transform: uppercase; }
.captain-meta { display: grid; grid-template-columns: repeat(4, auto); justify-content: start; gap: 12px 34px; padding: 18px 0; border-top: 1px solid rgba(255,255,255,.16); border-bottom: 1px solid rgba(255,255,255,.16); }
.captain-meta small { display: block; font-size: 13px; color: var(--blue-300); }
.captain-meta b { font-family: var(--display); font-size: 30px; font-weight: 800; }
.captain-achieve { margin: 22px 0 18px; max-width: 46ch; color: rgba(255,255,255,.82); }
.link-like { align-self: flex-start; padding-bottom: 2px; font-weight: 700; border-bottom: 2px solid var(--saffron); }
.captain:hover .link-like { color: var(--maple-light); }
@media (max-width: 860px) {
  .captain { grid-template-columns: 1fr; }
  .captain-meta { grid-template-columns: repeat(2, auto); }
}

.players { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.player { display: flex; flex-direction: column; padding: 0; border: 0; background: none; text-align: left; cursor: pointer; color: var(--ink); }
.player-photo { position: relative; display: block; aspect-ratio: 4 / 5; overflow: hidden; border-radius: 6px; background: var(--mist); }
.player-photo img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform .35s ease; }
.player:hover .player-photo img { transform: scale(1.03); }
.num {
  position: absolute; right: 14px; bottom: 8px; font-family: var(--display); font-size: 84px; font-weight: 900; line-height: .8;
  color: transparent; -webkit-text-stroke: 2px #fff; text-shadow: 0 2px 20px rgba(0,0,0,.25);
}
.player-captain-tag {
  position: absolute; left: 10px; top: 10px; padding: 4px 10px; border-radius: 4px;
  background: var(--saffron); color: var(--ink); font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .02em;
}
.player-name { margin-top: 16px; font-family: var(--display); font-size: 36px; font-weight: 800; line-height: 1; text-transform: uppercase; }
.player-meta { margin-top: 4px; font-weight: 600; color: var(--maple-dark); }
.player-stats { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); font-size: 14px; color: var(--ink-soft); }
.player-stats b { color: var(--ink); }
@media (max-width: 900px) { .players { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .players { grid-template-columns: 1fr; } }

.empty-state { max-width: 62ch; padding: 44px; border: 2px dashed var(--line); border-radius: 8px; }
.empty-state h3 { margin-bottom: 12px; font-size: 38px; font-weight: 800; text-transform: uppercase; }
.empty-state p { margin: 0; color: var(--ink-soft); }
.empty-state a { color: var(--blue-700); font-weight: 700; }

.policy { display: grid; grid-template-columns: minmax(0, .6fr) minmax(0, 1.4fr); gap: 56px; align-items: start; }
.policy-side { position: sticky; top: calc(var(--header-h) + 24px); }
.policy-side figure { margin: 0; border-radius: 6px; overflow: hidden; background: var(--mist); min-height: 120px; }
.policy-date { margin: 14px 0 0; font-family: var(--display); font-size: 24px; font-weight: 800; }
@media (max-width: 860px) { .policy { grid-template-columns: 1fr; gap: 28px; } .policy-side { position: static; max-width: 360px; } }

/* ---------- Sponsors ---------- */
.sponsor { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .9fr); gap: 40px 64px; align-items: center; }
.sponsor-quote { max-width: 52ch; margin: 28px 0 0; font-size: clamp(19px, 1.8vw, 23px); line-height: 1.5; color: #2B1D0E; }
.sponsor-card { padding: 36px; border-radius: 8px; background: var(--white); box-shadow: 0 24px 60px -30px rgba(60,35,10,.55); }
.sponsor-card h3 { margin-bottom: 12px; font-size: 34px; font-weight: 800; text-transform: uppercase; }
.sponsor-card p { color: var(--ink-soft); margin-bottom: 24px; }
@media (max-width: 860px) { .sponsor { grid-template-columns: 1fr; } }

/* ---------- Calendar ---------- */
.calendar-img { display: block; max-width: 920px; overflow: hidden; border-radius: 6px; background: var(--white); border: 1px solid var(--line); min-height: 160px; }
.calendar-img img { width: 100%; }

/* ---------- Results ---------- */
.results-table { width: 100%; max-width: 920px; border-collapse: collapse; }
.results-table caption { margin-bottom: 18px; text-align: left; font-weight: 700; color: var(--ink-soft); }
.results-table th, .results-table td { padding: 16px 18px 16px 0; text-align: left; border-bottom: 1px solid var(--line); vertical-align: middle; }
.results-table thead th { font-size: 14px; font-weight: 700; color: var(--ink-soft); border-bottom: 2px solid var(--ink); }
.results-table tbody th { font-family: var(--display); font-size: 30px; font-weight: 800; text-transform: uppercase; white-space: nowrap; }
.results-table a {
  display: inline-flex; align-items: center; gap: 10px; font-weight: 700; text-decoration: none;
  padding: 10px 16px; border-radius: 999px; background: var(--mist); transition: background-color .2s ease;
}
.results-table a:hover { background: #DCE8FA; }
.results-table a span { font-size: 11px; font-weight: 700; padding: 3px 7px; border-radius: 4px; background: var(--blue-900); color: #fff; }
@media (max-width: 600px) {
  .results-table tbody th { font-size: 22px; }
  .results-table a { padding: 8px 12px; font-size: 14px; }
}

/* ---------- News ---------- */
.latest-news { background: radial-gradient(ellipse at 90% 5%, #357fe6 0, transparent 55%), linear-gradient(135deg, #061b43, #134d9e 65%, #082655); color: #fff; }
.latest-news-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 32px; }
.latest-news-heading > p { max-width: 34ch; margin: 0; color: #d4e5ff; }
.news-eyebrow { margin: 0 0 10px; color: #b9d8ff; font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; }
.news-bento { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: repeat(2, 320px); gap: 18px; }
.news-card { position: relative; display: flex; flex-direction: column; min-width: 0; min-height: 0; padding: 26px; overflow: hidden; border: 1px solid #ffffffb3; border-radius: 22px; text-decoration: none; background: linear-gradient(145deg, #fff 5%, #f4f8ff 55%, #dce9fa); color: var(--ink); box-shadow: 0 16px 40px #03163226; transform-origin: top left; }
.news-card:first-child { grid-column: span 2; grid-row: span 2; }
.news-card > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .14; }
.news-card-copy { position: relative; z-index: 1; display: flex; flex-direction: column; flex: 1; }
.news-tag { position: relative; display: block; margin-bottom: 20px; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #205caa; }
.news-card h3 { position: relative; margin-bottom: 12px; font-size: clamp(24px, 2.1vw, 34px); font-weight: 800; line-height: 1.08; }
.news-card p { position: relative; margin: 0 0 16px; font-size: 14px; line-height: 1.5; color: #425573; }
.news-card-link { position: relative; display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: auto; font-size: 12px; font-weight: 800; color: #16498d; }
.news-card-link span { font-size: 24px; }
.news-card.is-lead { background: linear-gradient(135deg, #fff, #f1f7ff 60%, #c7defa); }
.news-card.is-lead h3 { font-size: clamp(38px, 4.2vw, 66px); margin-top: auto; }
.news-card.is-lead p { font-size: 17px; max-width: 38ch; }
.news-card.is-lead .news-card-link { margin-top: 24px; }
.news-card.is-lead .news-tag::after { content: ' / Featured'; opacity: .6; }
.news-card:focus-visible { outline: 3px solid #ffc779; outline-offset: 4px; }
@media (max-width: 980px) {
  .news-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: 340px repeat(2, 280px); }
  .news-card { min-height: 0; }
  .news-card.is-lead h3 { font-size: 36px; }
}
@media (max-width: 560px) {
  .latest-news-heading { flex-direction: column; align-items: start; }
  .news-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: 330px repeat(2, 250px); gap: 12px; }
  .news-card { padding: 16px; border-radius: 16px; }
  .news-card h3 { font-size: clamp(20px, 5.5vw, 28px); overflow-wrap: anywhere; }
  .news-card .news-tag { margin-bottom: 14px; font-size: 9px; letter-spacing: .04em; }
  .news-card:not(.is-lead) p { display: none; }
  .news-card-link { font-size: 11px; gap: 6px; }
  .news-card.is-lead { padding: 24px; }
  .news-card.is-lead h3 { font-size: clamp(30px, 8vw, 38px); }
  .news-card.is-lead p { font-size: 14px; }
}

/* ---------- Contact / join ---------- */
.contact-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; align-items: start; }
.contact-kicker { margin: 0 0 12px; font-size: 18px; font-weight: 700; color: var(--maple-light); }
.contact-photo { display: grid; place-items: center; margin: 32px 0; width: min(100%, 320px); aspect-ratio: 1; background: transparent; }
.contact-photo img { width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.contact-info h3 { margin-bottom: 14px; font-size: 30px; font-weight: 800; text-transform: uppercase; }
.contact-list { margin: 0; padding: 0; list-style: none; }
.contact-list li { padding: 12px 0; border-top: 1px solid rgba(255,255,255,.14); }
.contact-list a { font-size: 19px; font-weight: 600; text-decoration: none; overflow-wrap: anywhere; }
.contact-list a:hover { color: var(--maple-light); }
.contact-list address { color: rgba(255,255,255,.8); }

.join-form {
  display: grid; gap: 16px; padding: clamp(26px, 3.4vw, 44px); border-radius: 8px;
  background: var(--white); color: var(--ink);
  position: sticky; top: calc(var(--header-h) + 24px);
}
.join-form h3 { margin-bottom: 4px; font-size: clamp(40px, 4vw, 56px); font-weight: 900; text-transform: uppercase; }
.join-form label { display: grid; gap: 6px; font-size: 14px; font-weight: 700; }
.join-form input, .join-form textarea {
  width: 100%; padding: 12px 14px; border: 1.5px solid var(--line); border-radius: 6px;
  font: 16px/1.4 var(--body); color: var(--ink); background: #fff; resize: vertical;
}
.join-form input:focus, .join-form textarea:focus { outline: none; border-color: var(--blue-500); box-shadow: 0 0 0 3px rgba(42,111,219,.22); }
.join-form input:user-invalid { border-color: #C2410C; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.join-form .btn { justify-self: start; margin-top: 4px; }
.form-status { min-height: 1.5em; margin: 0; font-size: 14px; color: var(--blue-700); }
@media (max-width: 900px) { .contact-grid { grid-template-columns: 1fr; } .join-form { position: static; } }
@media (max-width: 520px) { .form-row { grid-template-columns: 1fr; } }

/* ---------- Footer ---------- */
.site-footer { position: relative; padding: 72px 0 28px; background: var(--blue-950); color: #fff; }
.site-footer::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 6px; background: var(--tricolour); }
.footer-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 2fr); gap: 48px; }
.footer-brand img { width: 84px; height: 84px; border-radius: 50%; background: #fff; padding: 4px; object-fit: contain; }
.footer-brand h2 { margin: 20px 0 8px; font-size: 32px; font-weight: 800; text-transform: uppercase; }
.footer-brand p { color: rgba(255,255,255,.72); max-width: 36ch; }
.social { display: flex; gap: 10px; margin: 18px 0 0; padding: 0; list-style: none; }
.social a { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 1.5px solid rgba(255,255,255,.3); transition: background-color .2s ease, border-color .2s ease; }
.social a:hover { background: var(--saffron); border-color: var(--saffron); color: var(--ink); }
.social svg { width: 20px; height: 20px; }
.footer-map { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; }
.footer-map div { display: flex; flex-direction: column; gap: 8px; }
.footer-map a { font-size: 14.5px; color: rgba(255,255,255,.66); text-decoration: none; }
.footer-map a:first-child { margin-bottom: 4px; font-family: var(--display); font-size: 22px; font-weight: 800; text-transform: uppercase; color: #fff; }
.footer-map a:hover { color: var(--maple-light); }
.footer-base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin-top: 56px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.12); font-size: 14px; color: rgba(255,255,255,.6); }
.footer-base p { margin: 0; }
.footer-base .credit { color: rgba(255,255,255,.8); font-weight: 600; }
@media (max-width: 1000px) { .footer-grid { grid-template-columns: 1fr; } }
@media (max-width: 700px) { .footer-map { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- Player profile dialog ---------- */
.profile {
  width: min(980px, 100% - 24px); max-width: none; max-height: calc(100dvh - 32px);
  padding: 0; border: 0; border-radius: 10px; color: var(--ink); background: var(--white); overflow: hidden;
}
.profile::backdrop { background: rgba(4, 14, 34, .74); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.profile[open] { animation: dialogIn .3s cubic-bezier(.2,.8,.2,1); }
@keyframes dialogIn { from { opacity: 0; transform: translateY(18px) scale(.98); } to { opacity: 1; transform: none; } }
.profile-inner { max-height: calc(100dvh - 32px); overflow-y: auto; }
.profile-close {
  position: absolute; top: 12px; right: 12px; z-index: 3;
  display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%;
  border: 0; background: rgba(255,255,255,.95); color: var(--ink); cursor: pointer;
}
.profile-close svg { width: 20px; height: 20px; }
.p-top { display: grid; grid-template-columns: 300px minmax(0, 1fr); background: var(--blue-900); color: #fff; }
.p-photo { position: relative; min-height: 340px; background: var(--blue-700); }
.p-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top; }
.p-head { padding: 40px 36px 32px; }
.p-role { margin: 0 0 8px; font-weight: 700; color: var(--maple-light); }
.p-head h2 { font-size: clamp(44px, 5vw, 72px); font-weight: 900; line-height: .88; text-transform: uppercase; }
.p-dept { margin: 10px 0 20px; color: rgba(255,255,255,.72); }
.p-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px 20px; margin: 0; padding: 18px 0; border-top: 1px solid rgba(255,255,255,.16); border-bottom: 1px solid rgba(255,255,255,.16); }
.p-facts dt { font-size: 12.5px; color: var(--blue-300); }
.p-facts dd { margin: 0; font-family: var(--display); font-size: 24px; font-weight: 800; line-height: 1.1; }
.p-phone { margin: 16px 0 0; font-size: 15px; color: rgba(255,255,255,.8); }
.p-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.p-links a { padding: 7px 14px; border-radius: 999px; border: 1.5px solid rgba(255,255,255,.3); font-size: 14px; font-weight: 600; text-decoration: none; }
.p-links a:hover { background: var(--saffron); border-color: var(--saffron); color: var(--ink); }
.p-content { padding: 12px 36px 40px; }
.p-block { padding: 28px 0; border-bottom: 1px solid var(--line); }
.p-block:last-child { border-bottom: 0; }
.p-block h3 { margin-bottom: 16px; font-size: 30px; font-weight: 800; text-transform: uppercase; }
.p-block h4 { margin: 18px 0 6px; font-family: var(--body); font-size: 17px; font-weight: 700; }
.p-block p { max-width: 72ch; color: var(--ink-soft); }
.tick { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.tick li { position: relative; padding-left: 26px; color: var(--ink-soft); }
.tick li::before { content: ""; position: absolute; left: 0; top: .5em; width: 12px; height: 12px; border-radius: 50%; background: radial-gradient(circle at 34% 30%, #F6CF9A, var(--maple) 55%, #6E451F); }
.p-timeline { margin: 18px 0 0; padding: 0; list-style: none; }
.p-timeline li { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 12px; padding: 10px 0; border-top: 1px solid var(--line); }
.p-timeline time { font-family: var(--display); font-size: 20px; font-weight: 800; }
.p-timeline span { color: var(--ink-soft); }
.p-photos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.p-photos a { display: block; aspect-ratio: 1; overflow: hidden; border-radius: 4px; background: var(--mist); }
.p-photos img { width: 100%; height: 100%; object-fit: cover; }
.p-empty { margin: 24px 0 0; color: var(--ink-soft); }
@media (max-width: 760px) {
  .p-top { grid-template-columns: 1fr; }
  .p-photo { min-height: 300px; }
  .p-head, .p-content { padding-left: 22px; padding-right: 22px; }
  .p-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p-timeline li { grid-template-columns: 1fr; gap: 2px; }
}

/* ---------- Missing image fallback ---------- */
.img-missing { position: relative; background: repeating-linear-gradient(104deg, var(--blue-700) 0 22px, var(--blue-900) 22px 44px) !important; }
.img-missing img { visibility: hidden; }
.img-missing::after {
  content: attr(data-fallback); position: absolute; inset: 0; display: grid; place-items: center; padding: 12px;
  font-family: var(--display); font-size: clamp(18px, 1.8vw, 28px); font-weight: 800; text-align: center; text-transform: uppercase;
  color: rgba(255,255,255,.75);
}
.logos .img-missing { background: #fff !important; }

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-delay: 0s !important; transition-duration: .01ms !important; }
}

/* ---------- WordPress core compatibility ---------- */
.screen-reader-text {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.alignwide { max-width: 1400px; margin-left: auto; margin-right: auto; }
.alignfull { max-width: none; width: 100%; }
.wp-block-image img { height: auto; }
.page-wrap-offset { padding-top: var(--header-h); }

/* ---------- Single player page (reuses the old profile-dialog styles) ---------- */
.player-single { padding-top: var(--header-h); }
.player-back { display: inline-block; margin: 28px 0 0; padding-left: 36px; }
.p-top.p-top--page { border-radius: 10px; overflow: hidden; margin-top: 20px; }
.p-content.p-content--page { padding-left: 0; padding-right: 0; }
.players-empty { max-width: 62ch; padding: 44px; border: 2px dashed var(--line); border-radius: 8px; }

/* ---------- Theme 4 additions ---------- */

/* Fix: header was only ever given a background via .is-solid (added by JS
   after scrolling 40px). On any page without a dark hero directly behind
   it (single player/official/event/notice pages, blog pages, the very top
   of the site before scrolling), the header was fully transparent with
   white text on a light background — effectively invisible. Always giving
   it a background fixes this everywhere. */
.site-header {
  background: rgba(6, 20, 46, .94);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .08);
}

/* ---------- News grid (Latest News + Promotion & Development posts) ---------- */
.news-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 18px; }
.news-grid .news-card {
  position: relative; display: flex; flex-direction: column; min-width: 0; overflow: hidden;
  border: 1px solid #ffffffb3; border-radius: 22px; text-decoration: none;
  background: linear-gradient(145deg, #fff 5%, #f4f8ff 55%, #dce9fa); color: var(--ink);
  box-shadow: 0 16px 40px #03163226;
}
.news-grid .news-card img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.news-grid .news-card-copy { position: relative; z-index: 1; display: flex; flex-direction: column; flex: 1; padding: 22px; }
.news-grid .news-tag { display: block; margin-bottom: 12px; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #205caa; }
.news-grid .news-card h3 { margin-bottom: 10px; font-size: clamp(19px, 1.8vw, 24px); font-weight: 800; line-height: 1.15; }
.news-grid .news-card p { margin: 0 0 14px; font-size: 14px; line-height: 1.5; color: #425573; }
.news-grid .news-card-link { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: auto; font-size: 12px; font-weight: 800; color: #16498d; }
.news-grid .news-card:hover { box-shadow: 0 20px 48px #03163240; }
.news-grid .news-card:focus-visible { outline: 3px solid #ffc779; outline-offset: 4px; }

/* Dark-background variant, used inside the Promotion & Development tabs. */
.section--dark .news-grid .news-card {
  background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .16); color: #fff;
  box-shadow: none;
}
.section--dark .news-grid .news-card p { color: rgba(255, 255, 255, .74); }
.section--dark .news-grid .news-tag { color: var(--maple-light); }
.section--dark .news-grid .news-card-link { color: var(--maple-light); }
.dev-panel .news-grid { margin-top: 8px; }
.dev-panel .empty-state.players-empty { border-color: rgba(255, 255, 255, .25); }
.dev-panel .empty-state.players-empty p { color: rgba(255, 255, 255, .78); }

/* ---------- Event cards (Calendar) ---------- */
.event-grid .event-date-badge {
  position: absolute; left: 14px; bottom: 8px; padding: 4px 10px; border-radius: 999px;
  background: var(--saffron); color: #1C1206; font-size: 12px; font-weight: 800;
  text-shadow: none; -webkit-text-stroke: 0;
}
.event-grid .player-photo { background: var(--blue-900); }
.event-grid .player-photo:not(:has(img)) { min-height: 120px; }

/* ---------- Notice board (Results) ---------- */
.notice-filters { display: flex; flex-wrap: wrap; gap: 16px 24px; margin-bottom: 28px; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.notice-filter { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 700; color: var(--ink-soft); }
.notice-filter select {
  padding: 10px 14px; border: 1.5px solid var(--line); border-radius: 8px; background: #fff;
  color: var(--ink); font: 15px var(--body); min-width: 160px;
}
.notice-filter select:focus { outline: none; border-color: var(--blue-500); box-shadow: 0 0 0 3px rgba(42,111,219,.22); }
.notice-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 2px; }
.notice-item { border-top: 1px solid var(--line); }
.notice-item:last-child { border-bottom: 1px solid var(--line); }
.notice-item a {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap; padding: 18px 4px;
  text-decoration: none; color: var(--ink); transition: background-color .15s ease;
}
.notice-item a:hover { background: var(--mist); }
.notice-title { flex: 1 1 260px; font-weight: 700; font-size: 17px; }
.notice-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.notice-tag {
  padding: 3px 10px; border-radius: 999px; background: var(--mist); color: var(--maple-dark);
  font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em;
}
.notice-date { font-size: 13px; color: var(--ink-soft); white-space: nowrap; }
.notice-arrow { font-size: 18px; color: var(--blue-500); }
.notice-item[hidden] { display: none; }

/* ---------- Theme 5 additions ---------- */

/* Board Member / Official profile photos */
.avatar { overflow: hidden; }
.avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.roster h3 a, .zone .person a, .state .person a { color: inherit; text-decoration: none; }
.roster h3 a:hover, .zone .person a:hover, .state .person a:hover { color: var(--blue-700); }
.zone-avatar { width: 44px; height: 44px; font-size: 16px; margin-bottom: 10px; }

/* Officials' photo gallery reuses the Player profile's .p-photos grid — no extra rules needed. */

/* ---------- Theme 8 additions ---------- */

/* Sponsor card image slider (only present with 2+ images — see
   inc/home-shortcodes.php; a single image stays a plain <img>, untouched). */
.sponsor-poster-emblem[data-slider] { position: relative; }
.sponsor-poster-emblem img.sponsor-slide {
  position: absolute; inset: 0; margin: auto; width: 130px; height: 150px;
  object-fit: contain; opacity: 0; transition: opacity 1s ease, transform .6s ease;
}
.sponsor-poster-emblem img.sponsor-slide.is-active { opacity: 1; position: relative; }
@media (prefers-reduced-motion: reduce) {
  .sponsor-poster-emblem img.sponsor-slide { transition: none; }
}

/* Gallery: horizontal swipe strip once there are more than 4 photos
   (see inc/home-shortcodes.php), instead of wrapping into more grid rows. */
.gallery--scroll {
  display: flex; grid-template-columns: none; overflow-x: auto; scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch; padding-bottom: 6px;
}
.gallery--scroll figure { flex: 0 0 240px; scroll-snap-align: start; }
.gallery--scroll::-webkit-scrollbar { height: 8px; }
.gallery--scroll::-webkit-scrollbar-thumb { background: var(--line); border-radius: 999px; }
.gallery img { cursor: zoom-in; }

/* Gallery lightbox popup */
.lightbox {
  position: fixed; inset: 0; z-index: 200; width: 100vw; height: 100dvh; max-width: none; max-height: none;
  padding: 0; border: 0; background: transparent;
}
.lightbox::backdrop { background: rgba(4, 14, 34, .92); }
.lightbox[open] { display: flex; align-items: center; justify-content: center; }
.lightbox-image { max-width: min(92vw, 1100px); max-height: 86vh; object-fit: contain; border-radius: 6px; box-shadow: 0 30px 80px #0009; }
.lightbox-close, .lightbox-prev, .lightbox-next {
  position: absolute; display: grid; place-items: center; border: 0; border-radius: 50%;
  background: rgba(255, 255, 255, .95); color: var(--ink); cursor: pointer;
}
.lightbox-close { top: 20px; right: 20px; width: 44px; height: 44px; }
.lightbox-close svg { width: 20px; height: 20px; }
.lightbox-prev, .lightbox-next { top: 50%; width: 52px; height: 52px; font-size: 22px; transform: translateY(-50%); }
.lightbox-prev { left: 16px; }
.lightbox-next { right: 16px; }
.lightbox-prev:hover, .lightbox-next:hover, .lightbox-close:hover { background: var(--saffron); }
@media (max-width: 640px) {
  .lightbox-prev, .lightbox-next { width: 42px; height: 42px; }
  .lightbox-prev { left: 8px; }
  .lightbox-next { right: 8px; }
  .lightbox-close { top: 12px; right: 12px; }
}

/* ---------- Theme 10 additions ---------- */

/* Sponsor card slider controls (shown when 2+ Hero Slides are set to
   "Sponsor section" — they take the place of the decorative arrow in the
   card's top row, so nothing overlaps the emblem at any width). */
.sponsor-slider-controls { display: flex; align-items: center; gap: 8px; }
.sponsor-slider-controls button {
  display: grid; place-items: center; width: 30px; height: 30px; padding: 0; border: 1px solid #f1c99080; border-radius: 50%;
  background: #07162e99; color: #f1c990; font-size: 15px; line-height: 1; cursor: pointer;
}
.sponsor-slider-controls button:hover { background: #f1c990; color: #10213b; }
.sponsor-slider-controls button:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.sponsor-slide-count { min-width: 34px; text-align: center; letter-spacing: .08em; }

/* Pages that hold whole design sections (the "Woodball Full Width" page
   template): clear the fixed header, nothing else — each section brings
   its own spacing, exactly as it does on the Home page. */
.woodball-page-content--inner { padding-top: var(--header-h); }

/* Standalone Promotion & Development pages have no contact card beside
   the list, so the list takes the full width. */
.dev-body--solo { grid-template-columns: 1fr; }

/* Standalone pages built around one tab's content (History of Woodball,
   State Members, …): the page heading and optional intro line. */
.page-title { margin-bottom: 40px; }
.page-lede { margin: -16px 0 36px; }
.player-back + .section-head { margin-top: 28px; }

/* Logged-in view only: WordPress's own toolbar occupies the top of the
   window, so the fixed header (and the full-screen menu) start below it
   instead of sliding underneath. Under 600px that toolbar scrolls away
   with the page, so nothing needs moving there. */
.admin-bar .site-header, .admin-bar .menu-panel { top: 32px; }
@media screen and (max-width: 782px) { .admin-bar .site-header, .admin-bar .menu-panel { top: 46px; } }
@media screen and (max-width: 600px) { .admin-bar .site-header, .admin-bar .menu-panel { top: 0; } }

/* Elementor: the theme's sections are full-bleed, so the full-width
   Elementor sections that hold them must not add Elementor's default 10px
   column padding (it showed as a thin strip down both edges). Pages built
   before this version don't have that switched off in their own data, so
   it's also done here. Boxed sections an editor adds are left alone. */
.woodball-page-content .elementor-section-full_width > .elementor-container > .elementor-column > .elementor-element-populated { padding: 0; }
