/* Netball Aid theme. WZDM design base (4/8 space, Framer spring, 10px blur reveals) + Netball Aid identity layer.
   No remote requests: fonts are local. Light by default, dark via prefers-color-scheme. */
@font-face { font-family: "Barlow Condensed"; font-weight: 700; font-style: normal; font-display: swap; src: url("../fonts/BarlowCondensed-700.ttf") format("truetype"); }
@font-face { font-family: "Inter"; font-weight: 100 900; font-style: normal; font-display: swap; src: url("../fonts/inter-latin.woff2") format("woff2"); }

:root {
	/* identity */
	--mulberry: #7B3F61; --pink: #EFA6AA; --plum: #4A2D38; --blush: #FDF0F5; --paper: #F8F8F8;
	/* semantic, light */
	--bg: var(--paper); --bg-alt: var(--blush); --surface: #fff;
	--ink: var(--plum); --ink-2: #6a4a58; --line: rgba(74, 45, 56, .14);
	--accent: var(--mulberry); --on-accent: #fff; --link: var(--mulberry);
	--font-display: "Barlow Condensed", "Arial Narrow", Impact, sans-serif;
	--font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
	/* space (4/8 steps) and shape */
	--s1: 4px; --s2: 8px; --s3: 12px; --s4: 16px; --s5: 24px; --s6: 32px; --s7: 48px; --s8: 64px; --s9: 96px;
	--gutter: clamp(16px, 5vw, 40px); --max: 1200px; --r-md: 16px; --r-lg: 24px;
	--header-h: 64px;
	/* motion */
	--ease-out: cubic-bezier(.22, 1, .36, 1);
	--spring: 400ms cubic-bezier(.22, 1, .36, 1);
}
@supports (transition-timing-function: linear(0, 1)) {
	:root { --spring: 400ms linear(0, .0235, .083, .1647, .2582, .3557, .4517, .5423, .6252, .6991, .7636, .8186, .8647, .9025, .933, .9571, .9756, .9895, .9996, 1.0065, 1.0111, 1.0137, 1.0149, 1.0151, 1.0146, 1.0136, 1.0123, 1.0108, 1.0093, 1.0079, 1.0066, 1.0053, 1.0043, 1.0033, 1.0025, 1.0019, 1.0013, 1.0009, 1.0006, 1); }
}
@media (prefers-color-scheme: dark) {
	:root { --bg: #1b0f15; --bg-alt: #24151d; --surface: #2d1b24; --ink: #fdf0f5; --ink-2: #d9bfca; --line: rgba(253, 240, 245, .16); --accent: var(--pink); --on-accent: var(--plum); --link: var(--pink); color-scheme: dark; }
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); }
body { margin: 0; background: var(--bg); color: var(--ink); font: 400 17px/1.6 var(--font-body); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img, video, svg { display: block; max-width: 100%; height: auto; }
h1, h2, h3, p, ul, figure { margin: 0; }
ul { padding: 0; list-style: none; }
a { color: var(--link); text-underline-offset: .18em; }
:focus-visible { outline: 3px solid var(--pink); outline-offset: 3px; border-radius: 4px; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: var(--s4); top: -100px; z-index: 100; background: var(--plum); color: #fff; padding: var(--s3) var(--s4); border-radius: 8px; }
.skip:focus { top: var(--s2); }
.wrap { width: 100%; max-width: var(--max); margin: 0 auto; padding-inline: var(--gutter); }
main:focus { outline: none; }
.ico { flex: none; }

/* type */
.display { font: 700 clamp(40px, 9.5vw, 80px)/.95 var(--font-display); text-transform: uppercase; letter-spacing: -.005em; color: var(--ink); text-wrap: balance; }
.display--light { color: #fff; }
.display--sm { font-size: clamp(32px, 6vw, 48px); }
.eyebrow { font: 700 15px/1.2 var(--font-display); letter-spacing: .14em; text-transform: uppercase; color: var(--accent); margin-bottom: var(--s3); }
.eyebrow--onmulberry { color: #fbdde0; } /* pink fails AA for small text on mulberry (3.9:1); this is 6.1:1 */
.lede { font-size: clamp(17px, 2.2vw, 20px); line-height: 1.6; color: var(--ink-2); max-width: 56ch; margin-top: var(--s4); }
.lede--light { color: #f3dfe8; }
.lede--light a { color: var(--pink); }

/* buttons: Barlow caps, 48px min target */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--s2); min-height: 48px; padding: 0 var(--s5); border: 0; border-radius: 999px; font: 700 19px/1 var(--font-display); letter-spacing: .06em; text-transform: uppercase; text-decoration: none; cursor: pointer; transition: transform var(--spring), background-color 200ms, box-shadow 200ms; -webkit-tap-highlight-color: transparent; }
.btn:active { transform: scale(.97); }
.btn--lg { min-height: 56px; padding: 0 var(--s6); font-size: 21px; }
.btn--pink { background: var(--pink); color: var(--plum); }
.btn--pink:hover { background: #f4b9bc; }
.btn--mulberry { background: var(--accent); color: var(--on-accent); margin-top: var(--s5); }
.btn--mulberry:hover { filter: brightness(1.08); }
.btn--ghost { background: transparent; color: #fff; box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .7); }
.btn--ghost:hover { background: rgba(255, 255, 255, .12); }
.link { display: inline-flex; align-items: center; gap: var(--s2); font: 700 19px/1 var(--font-display); letter-spacing: .06em; text-transform: uppercase; min-height: 44px; }

/* header */
.site-header { position: sticky; top: 0; z-index: 50; border-bottom: 1px solid var(--line); padding-top: env(safe-area-inset-top); }
.site-header::before { content: ""; position: absolute; inset: 0; z-index: -1; background: color-mix(in srgb, var(--bg) 86%, transparent); -webkit-backdrop-filter: saturate(1.6) blur(14px); backdrop-filter: saturate(1.6) blur(14px); } /* on a pseudo so the fixed mobile sheet is not trapped by the filter */
.site-header__bar { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: var(--s3); min-height: var(--header-h); }
.brand { display: inline-flex; align-items: center; min-height: 44px; }
.brand__img { width: 148px; height: auto; }
.brand__img--dark { display: none; }
@media (prefers-color-scheme: dark) { .brand__img--light { display: none; } .brand__img--dark { display: block; } }
.btn--tickets { min-height: 44px; padding: 0 var(--s4); font-size: 17px; background: var(--accent); color: var(--on-accent); }
.menu-btn { display: none; align-items: center; gap: var(--s2); min-height: 44px; padding: 0 var(--s3); background: none; border: 0; color: var(--ink); font: 700 17px/1 var(--font-display); letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.menu-btn__bars, .menu-btn__bars::before { display: block; width: 20px; height: 2px; background: currentColor; border-radius: 2px; transition: transform var(--spring); }
.menu-btn__bars { position: relative; transform: translateY(-3px); }
.menu-btn__bars::before { content: ""; position: absolute; top: 7px; left: 0; }
.menu-btn[aria-expanded="true"] .menu-btn__bars { transform: translateY(0) rotate(45deg); }
.menu-btn[aria-expanded="true"] .menu-btn__bars::before { top: 0; transform: rotate(-90deg); }
/* without JS the nav is a plain wrapped row under the bar */
.nav { grid-column: 1 / -1; padding-bottom: var(--s3); }
.nav__list { display: flex; flex-wrap: wrap; gap: var(--s1) var(--s5); }
.nav a { display: inline-flex; align-items: center; min-height: 44px; color: var(--ink); font: 700 19px/1 var(--font-display); letter-spacing: .08em; text-transform: uppercase; text-decoration: none; }
.nav a:hover, .nav .current-menu-item a, .nav a[aria-current] { color: var(--accent); }
.js .menu-btn { display: inline-flex; }
.js .nav { display: none; position: fixed; inset: calc(var(--header-h) + env(safe-area-inset-top)) 0 0 0; z-index: 40; background: var(--bg); padding: var(--s6) var(--gutter) calc(var(--s7) + env(safe-area-inset-bottom)); overflow-y: auto; }
.js .nav.is-open { display: block; animation: sheet 400ms var(--ease-out); }
.js .nav__list { flex-direction: column; gap: 0; }
.js .nav li { border-bottom: 1px solid var(--line); }
.js .nav a { width: 100%; min-height: 64px; font-size: 34px; }
@keyframes sheet { from { opacity: 0; transform: translateY(-8px); } }
@media (min-width: 900px) {
	.site-header__bar { grid-template-columns: auto 1fr auto; }
	.brand__img { width: 176px; }
	.nav { grid-column: auto; grid-row: 1; grid-column: 2; padding: 0; justify-self: end; }
	.btn--tickets { grid-column: 3; grid-row: 1; }
	.js .menu-btn { display: none; }
	.js .nav, .js .nav.is-open { display: block; position: static; inset: auto; padding: 0; background: none; overflow: visible; animation: none; }
	.js .nav__list { flex-direction: row; gap: var(--s1) var(--s6); }
	.js .nav li { border: 0; }
	.js .nav a { width: auto; min-height: 44px; font-size: 19px; }
}
body.nav-open { overflow: hidden; }

/* hero */
.hero { position: relative; isolation: isolate; color: #fff; background: var(--mulberry); }
.hero__media { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.hero__img, .hero__video { width: 100%; height: 100%; object-fit: cover; object-position: 35% 40%; }
.hero__tint { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(74, 45, 56, .55) 0%, rgba(123, 63, 97, .72) 55%, rgba(74, 45, 56, .94) 100%); mix-blend-mode: normal; }
.hero__inner { position: relative; padding-top: var(--s8); padding-bottom: var(--s8); min-height: min(78svh, 760px); display: flex; flex-direction: column; justify-content: flex-end; }
.hero__title { font: 700 clamp(56px, 15vw, 148px)/.88 var(--font-display); text-transform: uppercase; letter-spacing: -.01em; text-wrap: balance; max-width: 12ch; }
.hero__title span { color: var(--pink); display: block; }
.facts { display: flex; flex-wrap: wrap; gap: var(--s2); margin-top: var(--s5); }
.facts li { display: inline-flex; align-items: center; gap: var(--s2); min-height: 40px; padding: 0 var(--s4) 0 var(--s3); border-radius: 999px; background: rgba(255, 255, 255, .14); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); font-size: 15px; }
.facts .ico { color: var(--pink); }
.hero__cta { display: flex; flex-wrap: wrap; gap: var(--s3); margin-top: var(--s6); }
.hero__toggle { position: absolute; right: var(--gutter); top: var(--s5); width: 44px; height: 44px; border-radius: 50%; border: 0; background: rgba(0, 0, 0, .4); color: #fff; display: grid; place-items: center; cursor: pointer; }
.countdown { background: var(--plum); border-top: 1px solid rgba(255, 255, 255, .12); }
.countdown__inner { display: flex; align-items: baseline; justify-content: space-between; gap: var(--s4); padding-block: var(--s4); flex-wrap: wrap; }
.countdown__num { font: 700 clamp(28px, 6vw, 40px)/1 var(--font-display); text-transform: uppercase; letter-spacing: .02em; color: var(--pink); }
.countdown__unit { color: #fff; }
.countdown__date { font-size: 15px; color: #e7cdd8; }
@media (min-width: 900px) { .hero__inner { padding-bottom: var(--s9); } .hero__tint { background: linear-gradient(90deg, rgba(74, 45, 56, .88) 0%, rgba(123, 63, 97, .55) 55%, rgba(74, 45, 56, .35) 100%), linear-gradient(180deg, transparent 60%, rgba(74, 45, 56, .8) 100%); } }

/* sections */
section { position: relative; }
.proof, .why, .saints, .plan, .partners, .lineup, .relive { padding-block: clamp(56px, 9vw, 112px); }
.section-head { margin-bottom: var(--s6); }

.proof { background: var(--bg-alt); padding-block: var(--s7); }
.proof .eyebrow { margin-bottom: var(--s5); }
.stats { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s5) var(--s4); }
.stat { display: flex; flex-direction: column; gap: var(--s1); padding-top: var(--s4); border-top: 2px solid var(--accent); }
.stat__n { font: 700 clamp(40px, 9vw, 56px)/1 var(--font-display); white-space: nowrap; color: var(--accent); font-variant-numeric: tabular-nums; }
.stat__l { font-size: 15px; line-height: 1.4; color: var(--ink-2); }
.stat:first-child { grid-column: 1 / -1; }
@media (min-width: 900px) { .stats { grid-template-columns: 1.4fr repeat(4, 1fr); gap: var(--s6); } .stat:first-child { grid-column: auto; } }

.why__grid, .saints__grid { display: grid; gap: var(--s7); align-items: center; }
.why__photo img, .saints__photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-lg); }
.why__photo, .saints__photo { position: relative; }
.why__photo::after, .saints__photo::after { content: ""; position: absolute; inset: 0; border-radius: var(--r-lg); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .06); pointer-events: none; }
@media (min-width: 900px) { .why__grid, .saints__grid { grid-template-columns: 1.1fr .9fr; gap: var(--s8); } .saints__grid > :first-child { order: 2; } .saints__grid { grid-template-columns: .9fr 1.1fr; } .why__photo img, .saints__photo img { aspect-ratio: 4 / 5; } }

.lineup { background: var(--mulberry); color: #fff; overflow: hidden; }
.cards { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s3); }
.card { position: relative; aspect-ratio: 3 / 4; border-radius: var(--r-md); padding: var(--s4); display: flex; flex-direction: column; justify-content: space-between; color: #fff; overflow: hidden; background-color: #6b3454; background-image: radial-gradient(circle at 50% 50%, rgba(239, 166, 170, .42) 0 3px, transparent 3.5px); background-size: 20px 20px; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14); }
.card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(74, 45, 56, 0) 35%, rgba(74, 45, 56, .9)); }
.card > * { position: relative; z-index: 1; }
.card__num { font: 700 44px/1 var(--font-display); color: var(--pink); }
.card__tba { font: 700 22px/1.05 var(--font-display); text-transform: uppercase; letter-spacing: .04em; }
.lineup__2025 { margin-top: var(--s6); max-width: 64ch; font-size: 15px; color: #e7cdd8; }
@media (min-width: 900px) { .cards { grid-template-columns: repeat(4, 1fr); gap: var(--s5); } }

.relive { background: var(--plum); color: #fff; }
.player { position: relative; border-radius: var(--r-lg); overflow: hidden; background: #000; aspect-ratio: 16 / 9; }
.player__poster { all: unset; box-sizing: border-box; position: absolute; inset: 0; cursor: pointer; display: block; }
.player__poster:focus-visible { outline: 3px solid var(--pink); outline-offset: -6px; }
.player__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 700ms var(--ease-out); }
.player__poster::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(74, 45, 56, .1), rgba(74, 45, 56, .7)); }
.player__poster:hover .player__img { transform: scale(1.03); }
.player__play { position: absolute; z-index: 2; left: 50%; top: 50%; width: 76px; height: 76px; margin: -38px 0 0 -38px; border-radius: 50%; background: var(--pink); color: var(--plum); display: grid; place-items: center; transition: transform var(--spring); }
.player__play .ico { width: 32px; height: 32px; margin-left: 3px; }
.player__poster:hover .player__play { transform: scale(1.08); }
.player__cap { position: absolute; z-index: 2; left: var(--s4); bottom: var(--s4); font: 700 clamp(20px, 4vw, 28px)/1 var(--font-display); letter-spacing: .06em; text-transform: uppercase; }
.player__note { position: absolute; z-index: 2; right: var(--s4); bottom: var(--s4); font-size: 12px; color: #f0dbe4; display: none; }
.player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.js .player:not(.is-playing) .player__note { display: block; }
@media (max-width: 599px) { .js .player:not(.is-playing) .player__note { display: none; } }
.gallery { display: grid; grid-template-columns: 1fr 1fr; grid-auto-rows: 44vw; gap: var(--s2); margin-top: var(--s2); }
.gallery__item { overflow: hidden; border-radius: var(--r-md); }
.gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms var(--ease-out); }
.gallery__item:hover img { transform: scale(1.04); }
.gallery__item--g1, .gallery__item--g6 { grid-column: 1 / -1; }
@media (min-width: 900px) { .gallery { grid-template-columns: repeat(12, 1fr); grid-auto-rows: 280px; gap: var(--s3); margin-top: var(--s3); }
	.gallery__item--g1 { grid-column: span 5; } .gallery__item--g2 { grid-column: span 4; } .gallery__item--g3 { grid-column: span 3; }
	.gallery__item--g4 { grid-column: span 3; } .gallery__item--g5 { grid-column: span 4; } .gallery__item--g6 { grid-column: span 5; } }
.relive__cta { display: flex; flex-wrap: wrap; gap: var(--s3); margin-top: var(--s6); }

.partners { background: var(--bg-alt); }
.partners .display { margin-bottom: var(--s6); }
.logos { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--s3); }
.logos__item { display: grid; place-items: center; height: 96px; padding: var(--s4); background: #fff; border-radius: var(--r-md); box-shadow: inset 0 0 0 1px var(--line); }
.logos__img { max-height: 56px; width: auto; max-width: 100%; object-fit: contain; filter: grayscale(1); opacity: .78; transition: filter 300ms, opacity 300ms; }
.logos__item:hover .logos__img, .logos__item:focus-within .logos__img, .logos__item:active .logos__img { filter: none; opacity: 1; }
@media (max-width: 699px) { .logos__item:last-child { grid-column: 1 / -1; } }
@media (min-width: 700px) { .logos { grid-template-columns: repeat(4, 1fr); } }

.plan__cards { display: grid; gap: var(--s3); }
.plan__card { padding: var(--s5); border-radius: var(--r-lg); background: var(--surface); box-shadow: inset 0 0 0 1px var(--line); color: var(--accent); }
.plan__card h3 { font: 700 30px/1 var(--font-display); text-transform: uppercase; letter-spacing: .01em; color: var(--ink); margin: var(--s4) 0 var(--s2); }
.plan__card p { color: var(--ink-2); font-size: 16px; }
.plan__more { margin-top: var(--s5); }
@media (min-width: 900px) { .plan__cards { grid-template-columns: repeat(3, 1fr); gap: var(--s5); } }

/* footer */
.site-footer { background: var(--mulberry); color: #fff; padding-top: var(--s8); padding-bottom: calc(var(--s5) + env(safe-area-inset-bottom)); }
.site-footer__grid { display: grid; gap: var(--s7); }
.site-footer__logo { width: 120px; height: auto; }
.site-footer__line { margin-top: var(--s4); max-width: 24ch; font: 700 26px/1.05 var(--font-display); text-transform: uppercase; letter-spacing: .02em; color: var(--pink); }
.site-footer__h { font: 700 15px/1 var(--font-display); letter-spacing: .14em; text-transform: uppercase; color: #fbdde0; margin-bottom: var(--s3); }
.site-footer a { color: #fff; }
.site-footer ul a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; }
.site-footer ul a:hover { text-decoration: underline; }
.site-footer__mail { display: inline-block; margin-bottom: var(--s4); overflow-wrap: anywhere; }
.site-footer .btn--pink { color: var(--plum); }
.site-footer__base { display: flex; justify-content: space-between; align-items: center; gap: var(--s4); margin-top: var(--s7); padding-top: var(--s5); border-top: 1px solid rgba(255, 255, 255, .2); font-size: 14px; color: #ecd6e1; }
.site-footer__base a { min-height: 44px; display: inline-flex; align-items: center; }
@media (min-width: 900px) { .site-footer__grid { grid-template-columns: 1.3fr 1fr 1fr 1.2fr; } }

/* inner pages */
.phero { position: relative; isolation: isolate; color: #fff; background: var(--mulberry); overflow: hidden; }
.phero--plum { background: var(--plum); }
.phero__bg { position: absolute; inset: 0; z-index: -1; }
.phero:not(.phero--photo) .phero__bg { background-image: radial-gradient(circle at 50% 50%, rgba(239, 166, 170, .28) 0 3px, transparent 3.5px); background-size: 24px 24px; }
.phero__img { width: 100%; height: 100%; object-fit: cover; object-position: 40% 35%; }
.phero--photo .phero__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(74, 45, 56, .6), rgba(123, 63, 97, .8) 60%, rgba(74, 45, 56, .95)); }
.phero__inner { padding-block: clamp(56px, 12vw, 128px) clamp(40px, 7vw, 72px); }
.phero__title { font: 700 clamp(48px, 12vw, 120px)/.9 var(--font-display); text-transform: uppercase; letter-spacing: -.01em; text-wrap: balance; max-width: 14ch; }
.phero__lede { margin-top: var(--s4); }
.block { padding-block: clamp(48px, 8vw, 96px); }
.block--alt { background: var(--bg-alt); }
.after { margin-top: var(--s6); }
.band { background: var(--plum); color: #fff; padding-block: clamp(40px, 7vw, 72px); }
.band__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s5); }
.band .lede { margin-top: var(--s2); }
.prose { max-width: 70ch; }
.prose--lg { font-size: clamp(17px, 2.2vw, 20px); }
.prose--center { text-align: center; margin-inline: auto; padding-block: var(--s8); }
.prose > * + * { margin-top: var(--s4); }
.prose h2 { font: 700 clamp(28px, 5vw, 38px)/1 var(--font-display); text-transform: uppercase; letter-spacing: .01em; margin-top: var(--s7); color: var(--ink); }
.prose h3 { font: 700 24px/1.1 var(--font-display); text-transform: uppercase; margin-top: var(--s5); }
.prose ul, .prose ol { padding-left: 1.2em; list-style: revert; }
.prose li + li { margin-top: var(--s2); }
.prose img { border-radius: var(--r-md); }
.prose p, .prose li { color: var(--ink); }
.legal { display: grid; gap: var(--s6); padding-block: var(--s7) var(--s9); }
.toc { padding: var(--s4) var(--s5); border-radius: var(--r-md); background: var(--bg-alt); box-shadow: inset 0 0 0 1px var(--line); align-self: start; }
.toc__h { font: 700 15px/1 var(--font-display); letter-spacing: .14em; text-transform: uppercase; color: var(--accent); margin-bottom: var(--s2); }
.toc ol { padding: 0; list-style: none; }
.toc a { display: inline-flex; min-height: 32px; align-items: center; color: var(--ink); text-decoration: none; }
.toc a:hover { color: var(--accent); text-decoration: underline; }
@media (min-width: 960px) { .legal { grid-template-columns: 280px 1fr; gap: var(--s8); } .toc { position: sticky; top: calc(var(--header-h) + 24px); } }

/* squad / people */
.squad { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s5) var(--s3); }
.person { display: flex; flex-direction: column; }
.person__img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; object-position: 50% 20%; border-radius: var(--r-md); background: var(--bg-alt); }
.person__img--tba { display: block; position: relative; background-color: #6b3454; background-image: radial-gradient(circle at 50% 50%, rgba(239, 166, 170, .42) 0 3px, transparent 3.5px); background-size: 20px 20px; }
.person__num { position: absolute; left: var(--s3); top: var(--s3); font: 700 40px/1 var(--font-display); color: var(--pink); }
.person__name { font: 700 clamp(20px, 3.2vw, 26px)/1.05 var(--font-display); text-transform: uppercase; letter-spacing: .01em; margin-top: var(--s3); }
.person__line { font-size: 14px; line-height: 1.4; color: var(--ink-2); margin-top: var(--s1); }
.person--tba .person__name { color: var(--ink-2); }
@media (min-width: 700px) { .squad { grid-template-columns: repeat(3, 1fr); gap: var(--s6) var(--s4); } }
@media (min-width: 1000px) { .squad { grid-template-columns: repeat(4, 1fr); } }
.stars { padding-block: clamp(56px, 9vw, 112px); background: var(--bg-alt); }
.squad--row { grid-template-columns: repeat(2, 1fr); }
@media (min-width: 700px) { .squad--row { grid-template-columns: repeat(4, 1fr); } }

/* seat saints */
.saints-intro { display: grid; gap: var(--s7); align-items: start; }
.saints-intro .btn { margin-top: var(--s5); }
.steps { display: grid; gap: var(--s3); list-style: none; }
.step { padding: var(--s5); border-radius: var(--r-lg); background: var(--surface); box-shadow: inset 0 0 0 1px var(--line); }
.step__n { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--accent); color: var(--on-accent); font: 700 24px/1 var(--font-display); }
.step h3 { font: 700 26px/1 var(--font-display); text-transform: uppercase; margin: var(--s3) 0 var(--s1); }
.step p { color: var(--ink-2); font-size: 16px; }
@media (min-width: 900px) { .saints-intro { grid-template-columns: 1.1fr .9fr; gap: var(--s8); } }
ul.saints { display: grid; grid-template-columns: 1fr 1fr; list-style: none; gap: var(--s5) var(--s3); }
.saint { display: flex; flex-direction: column; }
.saint__img { width: 100%; aspect-ratio: 1; object-fit: cover; object-position: 50% 25%; border-radius: var(--r-md); background: var(--surface); }
.saint__name { font: 700 clamp(20px, 3vw, 26px)/1.05 var(--font-display); text-transform: uppercase; margin-top: var(--s3); }
.saint__org { font-size: 14px; line-height: 1.4; color: var(--ink-2); margin-top: var(--s1); }
.saint__seats { margin-top: var(--s2); align-self: flex-start; padding: var(--s1) var(--s3); border-radius: 999px; background: var(--accent); color: var(--on-accent); font: 700 15px/1.6 var(--font-display); letter-spacing: .06em; text-transform: uppercase; }
@media (min-width: 700px) { ul.saints { grid-template-columns: repeat(3, 1fr); gap: var(--s6) var(--s4); } }
@media (min-width: 1000px) { ul.saints { grid-template-columns: repeat(5, 1fr); } }

/* 2025 page */
.story { display: grid; gap: var(--s7); align-items: start; }
.stats--stack { grid-template-columns: 1fr 1fr; }
.stats--stack .stat:first-child { grid-column: auto; }
@media (min-width: 900px) { .story { grid-template-columns: 1.3fr .7fr; gap: var(--s8); } .stats--stack { grid-template-columns: 1fr; gap: var(--s5); } }
.teams { display: grid; gap: var(--s3); }
.team-card { position: relative; display: block; border-radius: var(--r-lg); overflow: hidden; aspect-ratio: 4 / 3; text-decoration: none; color: #fff; }
.team-card img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms var(--ease-out); }
.team-card:hover img { transform: scale(1.04); }
.team-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgba(74, 45, 56, .92)); }
.team-card__t { position: absolute; z-index: 1; left: var(--s5); bottom: var(--s5); display: inline-flex; align-items: center; gap: var(--s2); font: 700 clamp(32px, 6vw, 56px)/1 var(--font-display); text-transform: uppercase; }
@media (min-width: 700px) { .teams { grid-template-columns: 1fr 1fr; gap: var(--s5); } }
.mosaic { columns: 2; column-gap: var(--s2); }
.mosaic__item { break-inside: avoid; margin-bottom: var(--s2); border-radius: var(--r-md); overflow: hidden; }
.mosaic__item a { display: block; }
.mosaic__item img { width: 100%; height: auto; transition: transform 700ms var(--ease-out); }
.mosaic__item:hover img { transform: scale(1.04); }
@media (min-width: 700px) { .mosaic { columns: 3; column-gap: var(--s3); } .mosaic__item { margin-bottom: var(--s3); } }
@media (min-width: 1100px) { .mosaic { columns: 4; } }
.umpires { display: grid; gap: var(--s6); align-items: center; }
.umpires__list { font: 700 clamp(28px, 5vw, 44px)/1.15 var(--font-display); text-transform: uppercase; color: var(--accent); }
.umpires__photo img { width: 100%; border-radius: var(--r-lg); aspect-ratio: 3 / 2; object-fit: cover; }
@media (min-width: 900px) { .umpires { grid-template-columns: 1fr 1fr 1.2fr; } }
.lb { padding: 0; border: 0; background: transparent; max-width: 100vw; max-height: 100dvh; width: 100vw; height: 100dvh; color: #fff; }
.lb::backdrop { background: rgba(20, 10, 15, .92); }
.lb__stage { position: absolute; inset: 0; display: grid; place-items: center; padding: 56px 12px 72px; }
.lb__img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 8px; }
.lb__btn { position: absolute; width: 48px; height: 48px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .16); color: #fff; cursor: pointer; display: grid; place-items: center; font-size: 22px; }
.lb__btn:hover { background: rgba(255, 255, 255, .3); }
.lb__close { top: 12px; right: 12px; } .lb__prev { left: 12px; bottom: 12px; } .lb__next { right: 12px; bottom: 12px; }
.lb__cap { position: absolute; left: 72px; right: 72px; bottom: 20px; text-align: center; font-size: 14px; color: #f0dbe4; }
@media (min-width: 900px) { .lb__prev, .lb__next { top: 50%; bottom: auto; margin-top: -24px; } .lb__stage { padding: 56px 88px; } }

/* FAQ (core Details blocks) */
.faq { display: grid; gap: var(--s7); padding-block: var(--s7) var(--s9); }
.faq h2 { font: 700 clamp(30px, 5vw, 44px)/1 var(--font-display); text-transform: uppercase; color: var(--accent); margin: var(--s7) 0 var(--s4); }
.faq h2:first-child { margin-top: 0; }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: var(--s4); min-height: 64px; padding-block: var(--s3); font: 700 clamp(21px, 3.4vw, 26px)/1.1 var(--font-display); letter-spacing: .02em; text-transform: uppercase; color: var(--ink); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; flex: none; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--accent); color: var(--on-accent); font: 700 22px/1 var(--font-body); }
.faq details[open] summary::after { content: "\2212"; }
.faq details > :not(summary) { padding: 0 var(--s7) var(--s5) 0; color: var(--ink-2); max-width: 64ch; }
.faq summary:focus-visible { outline-offset: 2px; }
.faq__side { display: grid; gap: var(--s3); align-content: start; }
.fact { padding: var(--s5); border-radius: var(--r-lg); background: var(--surface); box-shadow: inset 0 0 0 1px var(--line); color: var(--accent); }
.fact h2 { font: 700 28px/1 var(--font-display); text-transform: uppercase; color: var(--ink); margin: var(--s3) 0 var(--s2); }
.fact p { color: var(--ink-2); font-size: 16px; margin-bottom: var(--s3); }
@media (min-width: 960px) { .faq { grid-template-columns: 1.6fr .8fr; gap: var(--s8); } .faq__side { position: sticky; top: calc(var(--header-h) + 24px); } }

/* contact */
.contact { display: grid; gap: var(--s7); padding-block: var(--s7) var(--s9); }
.contact__side h2 { font: 700 15px/1 var(--font-display); letter-spacing: .14em; text-transform: uppercase; color: var(--accent); margin: var(--s5) 0 var(--s2); }
.contact__side h2:first-child { margin-top: 0; }
.contact__side a { display: inline-flex; align-items: center; min-height: 44px; overflow-wrap: anywhere; }
.contact__social { display: flex; flex-wrap: wrap; gap: 0 var(--s5); }
@media (min-width: 960px) { .contact { grid-template-columns: 1.4fr .6fr; gap: var(--s8); } }
.form { display: grid; gap: var(--s5); max-width: 640px; scroll-margin-top: 90px; }
.field label { display: block; font: 700 17px/1.2 var(--font-display); letter-spacing: .08em; text-transform: uppercase; margin-bottom: var(--s2); color: var(--ink); }
.field .opt { text-transform: none; letter-spacing: 0; font: 400 14px var(--font-body); color: var(--ink-2); }
.field input, .field select, .field textarea { width: 100%; min-height: 52px; padding: var(--s3) var(--s4); border: 0; border-radius: var(--r-md); background: var(--surface); color: var(--ink); font: 400 17px/1.4 var(--font-body); box-shadow: inset 0 0 0 1.5px var(--line-strong, rgba(74, 45, 56, .38)); }
.field textarea { resize: vertical; min-height: 140px; }
.field input:focus, .field select:focus, .field textarea:focus { outline: 3px solid var(--pink); outline-offset: 2px; box-shadow: inset 0 0 0 1.5px var(--accent); }
.field [aria-invalid="true"] { box-shadow: inset 0 0 0 2px #b3261e; }
@media (prefers-color-scheme: dark) { .field [aria-invalid="true"] { box-shadow: inset 0 0 0 2px #ff8a80; } .field__err { color: #ffb4ab !important; } }
.field__err { color: #b3261e; font-size: 15px; margin-top: var(--s2); }
.field--hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form__note { font-size: 14px; color: var(--ink-2); }
.notice { padding: var(--s5); border-radius: var(--r-lg); max-width: 640px; }
.notice--ok { background: var(--accent); color: var(--on-accent); }
.notice--ok h2 { font: 700 34px/1 var(--font-display); text-transform: uppercase; margin-bottom: var(--s2); }
.notice--ok a { color: inherit; }
.notice--err { background: #fde8e6; color: #5c1410; }

/* partners page */
.logos--lg { grid-template-columns: repeat(2, 1fr); gap: var(--s3); }
.logos__item--lg { height: auto; min-height: 140px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--s2); }
.logos__item--lg a { display: grid; place-items: center; min-height: 44px; }
.logos__item--lg .logos__img { max-height: 72px; }
.logos__name { font: 700 24px/1 var(--font-display); text-transform: uppercase; color: var(--plum); }
.logos__line { font-size: 14px; color: #6a4a58; text-align: center; }
@media (min-width: 700px) { .logos--lg { grid-template-columns: repeat(3, 1fr); gap: var(--s4); } }
@media (min-width: 1000px) { .logos--lg { grid-template-columns: repeat(4, 1fr); } }

/* motion: reveal 10px + blur, stagger .1s, once. Only when JS is on and motion is allowed. */
@media (prefers-reduced-motion: no-preference) {
	.js .reveal { opacity: 0; transform: translateY(10px); filter: blur(4px); transition: opacity 600ms var(--ease-out), transform var(--spring), filter 600ms var(--ease-out); }
	.js .reveal.is-in { opacity: 1; transform: none; filter: none; }
	.js .reveal.d1 { transition-delay: .1s; } .js .reveal.d2 { transition-delay: .2s; } .js .reveal.d3 { transition-delay: .3s; } .js .reveal.d4 { transition-delay: .4s; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; } }
@media print { .site-header, .countdown, .hero__cta { display: none; } }

/* free travel offer strip (auto-expires, see app.js + na_travel_active) */
.travel { background: var(--pink); color: var(--plum); }
.travel__inner { display: flex; align-items: flex-start; gap: var(--s3); padding-block: var(--s4); }
.travel__inner svg { flex: none; width: 24px; height: 24px; margin-top: 2px; }
.travel__text { font-size: 16px; line-height: 1.45; max-width: 80ch; }
@media (min-width: 900px) { .travel__inner { align-items: center; } .travel__text { font-size: 18px; } }
.partners-soon { margin-top: var(--s6); color: var(--ink-2); font-size: 16px; }
/* line-up image cards (Canva exports) */
.cards--img { align-items: start; }
.card--img { aspect-ratio: auto; padding: 0; background: none; background-image: none; display: block; box-shadow: none; }
.card--img img { width: 100%; height: auto; border-radius: var(--r-md); }
@media (min-width: 700px) { .cards--img { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1000px) { .cards--img { grid-template-columns: repeat(4, 1fr); gap: var(--s4); } }
/* seat saints thank-you (twins) */
.twins { background: var(--mulberry); color: #fff; padding-block: clamp(56px, 9vw, 112px); }
.twins__grid { display: grid; gap: var(--s6); align-items: center; }
.twins__photo img, .twins__tba { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--r-lg); }
.twins__tba { background-color: #6b3454; background-image: radial-gradient(circle at 50% 50%, rgba(239, 166, 170, .42) 0 3px, transparent 3.5px); background-size: 20px 20px; }
.twins .display { font-size: clamp(40px, 7vw, 76px); max-width: 14ch; }
@media (min-width: 900px) { .twins__grid { grid-template-columns: .8fr 1.2fr; gap: var(--s8); } .twins__photo { max-width: 460px; } }

/* 2026-10-21: twins photo is landscape; keep both faces in frame */
.twins__photo img { aspect-ratio: 675 / 436; }
.twins .lede + .lede { margin-top: var(--s3); }
.twins .btn { margin-top: var(--s5); }
@media (min-width: 900px) { .twins__photo { max-width: 520px; } }

/* shop (merch partner) */
.shop { padding-block: clamp(56px, 9vw, 112px); background: var(--bg-alt); }
.shop__grid { display: grid; gap: var(--s6); align-items: center; }
.shop__copy .btn { margin-top: var(--s5); }
.shop__brand { display: grid; place-items: center; min-height: 160px; padding: var(--s6); border-radius: var(--r-lg); background: #fff; box-shadow: inset 0 0 0 1px var(--line); }
.shop__logo { width: min(100%, 360px); height: auto; }
@media (min-width: 900px) { .shop__grid { grid-template-columns: 1.1fr .9fr; gap: var(--s8); } .shop__brand { min-height: 260px; } }
.btn--soon { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 2px var(--line); cursor: default; }
.btn--outline { background: transparent; color: var(--accent); box-shadow: inset 0 0 0 2px currentColor; }
.btn--outline:hover { background: rgba(123, 63, 97, .08); }

/* 2026 partner logos keep their colours */
.logos__item--new .logos__img { filter: none; opacity: 1; }

/* event guide call to action (home) and page */
.guide-cta { display: grid; gap: var(--s4); align-items: center; margin-top: var(--s6); padding: var(--s5); border-radius: var(--r-lg); background: var(--surface); box-shadow: inset 0 0 0 2px var(--accent); }
.guide-cta__title { font: 700 30px/1 var(--font-display); text-transform: uppercase; letter-spacing: .01em; color: var(--ink); margin-bottom: var(--s2); }
.guide-cta p { color: var(--ink-2); font-size: 16px; max-width: 52ch; }
.guide-cta .btn { margin-top: 0; }
@media (min-width: 900px) { .guide-cta { grid-template-columns: 1fr auto; padding: var(--s6); } }
.guide { display: grid; gap: var(--s6); max-width: 760px; }
.guide__actions { display: flex; flex-wrap: wrap; gap: var(--s3); }
.guide__actions .btn { margin-top: 0; }
.guide__list { display: grid; gap: var(--s3); list-style: none; padding: 0; }
.guide__list li { display: flex; gap: var(--s3); align-items: flex-start; padding: var(--s4); border-radius: var(--r-md); background: var(--surface); box-shadow: inset 0 0 0 1px var(--line); font-size: 17px; }
.guide__list .ico { flex: none; margin-top: 2px; color: var(--accent); }
.guide__note { color: var(--ink-2); font-size: 16px; }
@media (max-width: 479px) { .guide__actions .btn { width: 100%; } }

.logos__item--new .logos__img { width: min(100%, 220px); height: auto; max-height: none; }
.logos__item--lg.logos__item--new a { width: 100%; }

/* 2026-10-21 contact form gates: hints and counter, disabled placeholder, retry note, review step */
.form[hidden], .form-review[hidden] { display: none; }
.field__hint { margin-top: var(--s2); font-size: 14px; line-height: 1.4; color: var(--ink-2); }
.field__count { font-weight: 700; white-space: nowrap; }
.field__count.is-low { color: #b3261e; }
@media (prefers-color-scheme: dark) { .field__count.is-low { color: #ffb4ab; } }
.field select option:disabled { color: var(--ink-2); }
.form__retry { margin: 0; padding: var(--s3) var(--s4); border-radius: var(--r-md); background: #fde8e6; color: #5c1410; font-size: 16px; font-weight: 600; }
.form__retry + .btn { margin-top: 0; }
.form-review { display: grid; gap: var(--s5); max-width: 640px; padding: var(--s5); border-radius: var(--r-lg); background: var(--surface); box-shadow: inset 0 0 0 2px var(--accent); scroll-margin-top: 90px; }
.form-review:focus { outline: 3px solid var(--pink); outline-offset: 2px; }
.form-review h2 { font: 700 34px/1 var(--font-display); text-transform: uppercase; color: var(--ink); }
.form-review__lead { font-size: 17px; font-weight: 600; color: var(--ink); overflow-wrap: anywhere; }
.form-review__list { display: grid; gap: var(--s1); margin: 0; }
.form-review__list dt { margin-top: var(--s3); font: 700 15px/1.2 var(--font-display); letter-spacing: .12em; text-transform: uppercase; color: var(--accent); }
.form-review__list dt:first-child { margin-top: 0; }
.form-review__list dd { margin: 0; font-size: 17px; line-height: 1.4; color: var(--ink); overflow-wrap: anywhere; }
.form-review__msg { white-space: pre-wrap; max-height: 16em; overflow: auto; }
.form-review__actions { display: flex; flex-wrap: wrap; gap: var(--s3); }
.form-review__actions .btn { margin-top: 0; }
@media (max-width: 479px) { .form-review__actions .btn { width: 100%; } .form-review h2 { font-size: 30px; } }
.contact__form > .notice { margin-bottom: var(--s5); }
.notice--preview a, .notice--preview strong { color: inherit; }
.notice--preview .btn { margin-top: var(--s4); background: var(--on-accent); color: var(--accent); }

/* 21 Oct (Jett): line-up shows the card itself only. Images are transparent cut-outs, all 720x1134; no tile, gradient, shadow or rounding around them. */
.cards--img { align-items: end; }
.card--img { aspect-ratio: auto; padding: 0; border-radius: 0; background: none; box-shadow: none; overflow: visible; }
.card--img::after { content: none; }
.card--img img { display: block; width: 100%; height: auto; aspect-ratio: 720 / 1134; object-fit: contain; border-radius: 0; }

/* Header spacing (23 Oct 2026, Jett): from 1180px the bar is one row with the same gap between every nav item and before
   the Tickets button, which sits at the right edge. The bar gets a little more width than the page (1360px) so the gaps
   can be a full 32px. Below 1180px nothing changes (phones keep the menu sheet). */
@media (min-width: 1180px) {
	.site-header__bar { max-width: 1360px; --nav-gap: clamp(16px, calc((min(100vw, 1360px) - 990px) / 8), 32px); column-gap: var(--nav-gap); }
	.nav__list, .js .nav__list { flex-wrap: nowrap; column-gap: var(--nav-gap); }
}

/* 23 Oct 2026 (Alison's call): 2026 partner row, volunteers ("Help on the day"), Shelter donate band. */
.logos--2026 .logos__item { height: auto; min-height: 96px; padding: var(--s3) var(--s4); }
.logos--2026 .logos__item:last-child { grid-column: auto; }
.logos--2026 .logos__img, .logos__item--new .logos__img { width: auto; height: auto; max-width: min(100%, 190px); max-height: 56px; filter: none; opacity: 1; }
.logos--2026 .logos__img--png { max-height: 96px; }
.logos--2026.logos--lg .logos__img { max-height: 72px; }
.logos--2026.logos--lg .logos__img--png { max-height: 110px; }
@media (min-width: 700px) { .logos--2026:not(.logos--lg) { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1100px) { .logos--2026:not(.logos--lg) { grid-template-columns: repeat(6, 1fr); } }
.helpers { display: grid; gap: var(--s4); align-items: center; margin-top: var(--s6); padding: var(--s5); border-radius: var(--r-lg); background: var(--surface); box-shadow: inset 0 0 0 1px var(--line); }
.helpers p { color: var(--ink-2); font-size: 16px; max-width: 46ch; }
.helpers__shirts { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s3); }
.helpers__shirts figure { margin: 0; border-radius: var(--r-md); overflow: hidden; background: #fff; box-shadow: inset 0 0 0 1px var(--line); }
.helpers__shirts img { display: block; width: 100%; height: auto; }
.helpers__shirts figcaption { padding: var(--s2) 0 var(--s3); text-align: center; font: 700 16px/1 var(--font-display); letter-spacing: .08em; text-transform: uppercase; color: var(--accent); }
@media (min-width: 900px) { .helpers { grid-template-columns: 1fr 1.1fr; gap: var(--s6); } .helpers__shirts { max-width: 520px; justify-self: end; width: 100%; } }
.guide .helpers { margin-top: 0; }

/* 23 Oct 2026 (Alison's full partner list): partners with no logo file yet show their name in a tile the same size as a logo. */
.logos__name--tile { display: block; max-width: 100%; text-align: center; font: 700 24px/1.05 var(--font-display); letter-spacing: .01em; text-transform: none; color: var(--plum); overflow-wrap: anywhere; }
@media (min-width: 700px) { .logos--2026.logos--lg .logos__name--tile { font-size: 30px; } }

/* TfWM credit stays outside the logo clear space. */
.site-footer__credit { max-width: 320px; margin: 10px 0 0; font-size: 12px; line-height: 1.4; }

/* 24 Oct: same tile and logo box for every partner. TfWM p49 prose minimum: 200px. */
.logos, .logos.logos--2026, .logos.logos--lg { display: grid; grid-template-columns: repeat(auto-fit, 240px); justify-content: center; gap: 16px; list-style: none; padding: 0; }
.logos .logos__item, .logos--2026 .logos__item { width: 240px; height: 96px; min-height: 96px; padding: 20px; margin: 0; grid-column: auto; display: grid; place-items: center; background: #fff; }
.logos .logos__item--lg { height: 96px; min-height: 96px; gap: 0; }
.logos .logos__item--lg > a { width: 200px; min-height: 0; }
.logos .logos__line { display: none; }
.logos .logos__img { width: 200px; height: 52px; max-width: none; max-height: none; object-fit: contain; filter: none; opacity: 1; }
.partner-mark { position: relative; display: block; flex: none; width: 200px; height: 52px; }
.logos .partner-mark .logos__img { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 200px; height: 52px; max-height: none; max-width: none; object-fit: contain; }
/* Optical corrections preserve source artboards and all artwork. */
.logos .partner-mark--neon .logos__img, .logos .partner-mark--adi .logos__img, .logos .partner-mark--nec .logos__img { height: 110px; }
.logos .partner-mark--itv .logos__img { width: 140px; height: 77px; }
.partner-mark--sportserve-white, .partner-mark--utilita { background: #13294b; border-radius: 4px; }
.logos .partner-mark--sportserve-white .logos__img, .logos .partner-mark--utilita .logos__img { width: 184px; height: 44px; }
.site-footer__partners { display: block; margin-top: var(--s7); }
.site-footer__partners > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.site-footer__partners .logos { margin-top: 20px; }
.site-footer__credit { max-width: none; }


.logos .partner-mark--elandr .logos__img { width: 216px; height: 153px; }

/* 26 Oct: Tickets and merchandise share the header action group. */
.header-actions { display: flex; align-items: center; gap: 8px; }
.header-actions .btn { white-space: nowrap; }
.btn--shop { min-height: 44px; padding: 0 16px; font-size: 17px; }
@media (min-width: 900px) {
 .header-actions { grid-column: 3; grid-row: 1; gap: var(--nav-gap, 16px); }
}
@media (min-width: 1180px) {
 .site-header__bar { --nav-gap: clamp(12px, calc((min(100vw, 1360px) - 1080px) / 9), 24px); }
}
@media (max-width: 479px) {
 .site-header__bar { column-gap: 8px; }
 .brand__img { width: 110px; }
 .header-actions .btn { padding-inline: 12px; }
 .header-actions .ico { display: none; }
 .menu-btn { width: 44px; padding: 0; justify-content: center; }
 .menu-btn__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
}

/* The source list is a complete grid without JS, on desktop, or with reduced motion.
   Mobile enhancement repeats one equal-width group, including its trailing gap. */
.partner-banner { min-width: 0; }
.partner-banner .partner-banner__copy { display: none; }
@media (max-width: 699px) and (prefers-reduced-motion: no-preference) {
 .partner-banner__viewport { overflow: hidden; padding-block: 4px; }
 .partner-banner:not(.is-paused) .partner-banner__track { display: flex; width: max-content; animation: partner-conveyor var(--partner-duration) linear infinite; }
 .partner-banner:not(.is-paused) .logos { display: flex; flex: none; width: max-content; gap: 12px; padding: 0 12px 0 0; margin: 0; }
 .partner-banner:not(.is-paused) .logos__item { flex: 0 0 240px; }
 .partner-banner:not(.is-paused) .partner-banner__copy { display: flex; }
 .partner-banner .logos a:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
 .partner-banner.is-paused .partner-banner__copy { display: none; }
 .site-footer__partners .partner-banner { margin-top: 20px; }
 .site-footer__partners .partner-banner .logos { margin-top: 0; }
}
@media (hover: hover) { .partner-banner__viewport:hover .partner-banner__track { animation-play-state: paused; } }
@keyframes partner-conveyor { to { transform: translateX(-50%); } }
