/* Hallmark · shape: Photographic · genre: editorial · theme: Sport (deal 2/3, seed informele-homepage-voor-een-5b60·a0786f1f·2026-11-11·r0) · job: visit · draw: 3c0915 · brand: Rijnders Sport (spec 2026-11-11)
 * hero: Stage on ink, a three-photo collage and a strip of all nine sports · nav: cyan top bar with live status, then an ink bar with a sports panel and a route action · footer: mast, both logos large over the links · imagery: photographs, the shop's own 6 · signature: voetbal, running en fitness set at display size under the shop's own photographs
 * axes: light/display-condensed/chromatic-cyan · posture: restrained, one committed cyan band (Zo helpen we je verder) · contrast: pass · fold: pass · v2.0.0 */
/* Hallmark · pre-emit critique: P4 H5 E4 S5 R4 V4 · weakest: R, the Print band brings a second colour; kept it to Print's own mark, button and rules so the two brands read as one house */
/* Hallmark · dismissed F4 · the second hero action is outlined in ink, not filled; only the cyan one is a fill */
/* Hallmark · answered F19 · the 500 is JetBrains Mono on the opening hours only, the theme's stopwatch figures; text runs on 400, 600 and 800 */
/* Hallmark · dismissed 58 · the clubs screen counts sixteen club names plus sixteen repeats of the word Clubshop on the list the shop gave */
/* Hallmark · waive 83 · the shop tour rail shows only Rijnders Sport's own photographs of its floor · the owner asked for a fuller page and the shop itself is what this page sells */
/* Hallmark · dismissed 59 · ten sections because the owner asked for a fuller page; the cyan help band and the shop tour were added for that */
/* Hallmark · waive 23 · two thin cyan bars frame the ink hero, the status bar and the sports strip · the shop's own cyan carries the welcome the owner asked for */
/* Hallmark · waive 44c · the hero ends above the fold so the big three peek in · the owner asked for a lower hero */
/* Hallmark · dismissed 28a · the lazy images sit inside the closed sports panel in the nav; the hero's large shop photo carries fetchpriority high */
@import url("./tokens.css");
@import url("./base.css");

/* fonts, self-hosted (OFL) */
@font-face { font-family: "Saira Condensed"; font-weight: 800; font-display: swap; src: url("fonts/saira-condensed-latin-800-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212; }
@font-face { font-family: "Saira Condensed"; font-weight: 800; font-display: swap; src: url("fonts/saira-condensed-latin-ext-800-normal.woff2") format("woff2"); unicode-range: U+0100-024F, U+1E00-1EFF; }
@font-face { font-family: "Albert Sans"; font-weight: 400; font-display: swap; src: url("fonts/albert-sans-latin-400-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+20AC, U+2122; }
@font-face { font-family: "Albert Sans"; font-weight: 400; font-display: swap; src: url("fonts/albert-sans-latin-ext-400-normal.woff2") format("woff2"); unicode-range: U+0100-024F, U+1E00-1EFF; }
@font-face { font-family: "Albert Sans"; font-weight: 600; font-display: swap; src: url("fonts/albert-sans-latin-600-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+20AC, U+2122; }
@font-face { font-family: "Albert Sans"; font-weight: 600; font-display: swap; src: url("fonts/albert-sans-latin-ext-600-normal.woff2") format("woff2"); unicode-range: U+0100-024F, U+1E00-1EFF; }
@font-face { font-family: "JetBrains Mono"; font-weight: 500; font-display: swap; src: url("fonts/jetbrains-mono-latin-500-normal.woff2") format("woff2"); }


/* ---------- shared ---------- */
h1, h2, h3 { text-transform: uppercase; line-height: 1.02; }
.skip { position: absolute; left: var(--space-md); top: calc(-1 * var(--space-3xl)); z-index: var(--z-toast); padding: var(--space-xs) var(--space-md); background: var(--color-ink); color: var(--color-paper); }
.skip:focus-visible { top: var(--space-md); }
.photo { margin: 0; border-radius: var(--radius-card); }
.lead { color: var(--color-ink-2); }

.btn { --btn-fill: var(--color-ink); position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 var(--space-lg); border: var(--rule-bar) solid transparent; border-radius: var(--radius-card); font: var(--display-weight) var(--text-lg)/1 var(--font-display); text-transform: uppercase; text-decoration: none; white-space: nowrap; cursor: pointer; transition: color var(--dur-fill) var(--ease-fill), border-color var(--dur-fill) var(--ease-fill), transform var(--dur-micro) var(--ease-out); }
/* hover: the new colour rises from the bottom edge */
.btn::before, .nav__menu::before { content: ""; position: absolute; inset: -2px; z-index: -1; background: var(--btn-fill); border-radius: inherit; transform: scaleY(0); transform-origin: 50% 100%; transition: transform var(--dur-fill) var(--ease-fill); }
.btn:hover::before, .nav__menu:hover::before, .nav__menu[aria-expanded="true"]::before { transform: scaleY(1); }
.btn:active { transform: translateY(1px); }
.btn:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.btn--primary { background: var(--color-accent); color: var(--color-accent-ink); }
.btn--primary:hover { color: var(--color-paper); }
.btn--line { border-color: var(--color-ink); color: var(--color-ink); }
.btn--line:hover { color: var(--color-paper); }
.btn:disabled, .btn[aria-disabled="true"] { opacity: 0.55; cursor: not-allowed; transform: none; }
.clubs__search:disabled { opacity: 0.55; cursor: not-allowed; }
.text-link { white-space: nowrap; font-weight: 600; color: var(--color-ink); text-decoration: underline; text-decoration-color: var(--color-rule); text-decoration-thickness: 2px; text-underline-offset: 0.25em; transition: text-decoration-color var(--dur-short) var(--ease-out); }
.text-link:hover { text-decoration-color: var(--color-accent-deep); }
.text-link:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }

/* logos: the shop's own SVGs, recoloured through tokens */
.logo-sport .lg-mark { fill: var(--color-logo); }
.logo-sport .lg-word { fill: var(--color-ink); }
.logo-print .lg-print { fill: var(--color-print); }
.logo-print .lg-word { fill: var(--color-on-ink); }

/* ---------- top bar: live status, the shop's promise, contact ---------- */
.topbar { background: var(--color-accent); color: var(--color-accent-ink); font-size: var(--text-sm); }
.topbar__in { display: flex; align-items: center; justify-content: space-between; gap: var(--space-lg); min-height: 40px; }
.topbar ul { display: flex; gap: var(--space-lg); margin: 0; padding: 0; list-style: none; }
.topbar__where { font-weight: 600; }
.topbar a { color: inherit; text-decoration: none; white-space: nowrap; }
.topbar a:hover { text-decoration: underline; text-underline-offset: 0.2em; }
.topbar a:focus-visible { outline: 2px solid var(--color-accent-ink); outline-offset: 2px; }
.topbar__promise li { font-weight: 600; }
.topbar__promise a { font-weight: 600; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.2em; }
.topbar__promise li + li { padding-left: var(--space-lg); border-left: var(--rule-hair) solid color-mix(in oklab, var(--color-accent-ink) 40%, transparent); }

/* ---------- nav: an ink bar with a sports panel ---------- */
.nav-wrap { position: sticky; top: 0; z-index: var(--z-sticky-nav); }
.nav { position: relative; background: var(--color-ink); color: var(--color-on-ink); border-bottom: var(--rule-hair) solid var(--color-ink-rule); }
.nav__in { display: flex; align-items: center; gap: var(--space-xl); min-height: 76px; }
.nav__in > * { min-width: 0; }
.nav .logo-sport .lg-word { fill: var(--color-on-ink); }
.nav__logo { display: block; flex-shrink: 0; padding-block: var(--space-sm); border-radius: var(--radius-card); }
.nav__logo svg { width: 184px; height: auto; }
.nav__logo:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.nav__links { display: flex; align-items: center; gap: var(--space-xs); margin: 0 0 0 auto; padding: 0; list-style: none; }
.nav__links > li > a { display: inline-flex; align-items: center; gap: var(--space-xs); min-height: 44px; padding: 0 var(--space-sm); border-radius: var(--radius-card); font: var(--display-weight) 1.25rem/1 var(--font-display); text-transform: uppercase; color: var(--color-on-ink); text-decoration: none; white-space: nowrap; cursor: pointer; transition: background-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out); }
.nav__links > li > a:hover, .mega__toggle[aria-expanded="true"] { background: var(--color-ink-2); color: var(--color-accent); }
.nav__links > li > a:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.nav__links > li > .nav__print:hover { color: var(--color-print); }
.nav__print-mark { display: block; width: 19px; height: 22px; overflow: hidden; flex-shrink: 0; }
.nav__print-mark svg { height: 22px; width: auto; max-width: none; }
.mega__toggle::after { content: ""; width: 8px; height: 8px; margin-left: var(--space-2xs); border-right: var(--rule-bar) solid currentColor; border-bottom: var(--rule-bar) solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform var(--dur-short) var(--ease-out); }
.mega__toggle[aria-expanded="true"]::after { transform: translateY(2px) rotate(-135deg); }
.mega__panel { position: absolute; left: 0; right: 0; top: 100%; z-index: var(--z-dropdown); padding-block: var(--space-xl); background: var(--color-ink); color: var(--color-on-ink); border-top: var(--rule-hair) solid var(--color-ink-rule); border-bottom: var(--rule-bar) solid var(--color-accent); }
.mega__grid { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: var(--space-2xl); }
.mega__big { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap-columns); margin: 0; padding: 0; list-style: none; }
.mega__big a { display: grid; gap: var(--space-sm); color: var(--color-on-ink); text-decoration: none; border-radius: var(--radius-card); }
.mega__big a:hover .mega__name { color: var(--color-accent); }
.mega__big a:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 4px; }
.mega__img { display: block; aspect-ratio: 4 / 3; }
.mega__name { font: var(--display-weight) var(--text-2xl)/1 var(--font-display); text-transform: uppercase; transition: color var(--dur-short) var(--ease-out); }
.mega__more { display: grid; align-content: start; gap: var(--space-md); }
.mega__label { font-size: var(--text-sm); color: var(--color-on-ink-2); }
.mega__more ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; border-top: var(--rule-hair) solid var(--color-ink-rule); }
.mega__more li { border-bottom: var(--rule-hair) solid var(--color-ink-rule); }
.mega__more ul a { display: block; padding: var(--space-sm) 0; font: var(--display-weight) var(--text-xl)/1 var(--font-display); text-transform: uppercase; color: var(--color-on-ink); text-decoration: none; }
.mega__more ul a:hover { color: var(--color-accent); }
.mega__more ul a:focus-visible, .mega__print:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.mega__print { justify-self: start; color: var(--color-on-ink); font-weight: 600; white-space: nowrap; text-decoration: underline; text-decoration-color: var(--color-print); text-decoration-thickness: 2px; text-underline-offset: 0.25em; }
.mega__print:hover { color: var(--color-print); }
.btn--ghost { --btn-fill: var(--color-accent); border-color: var(--color-on-ink); color: var(--color-on-ink); }
.btn--ghost:hover { border-color: var(--color-accent); color: var(--color-accent-ink); }
.nav__cta { flex-shrink: 0; }
.nav__menu { display: none; margin-left: auto; min-height: 44px; padding: 0 var(--space-md); background: transparent; border: var(--rule-bar) solid var(--color-on-ink); border-radius: var(--radius-card); font: 600 var(--text-md)/1 var(--font-body); color: var(--color-on-ink); cursor: pointer; --btn-fill: var(--color-on-ink); position: relative; isolation: isolate; overflow: hidden; transition: color var(--dur-fill) var(--ease-fill); }
.nav__menu:hover, .nav__menu[aria-expanded="true"] { color: var(--color-ink); }
.nav__menu:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.nav__menu:active { transform: translateY(1px); }
.nav__menu:disabled { opacity: 0.55; cursor: not-allowed; }
.nav__mobile { display: none; margin: 0; padding: var(--space-sm) var(--gutter) var(--space-lg); list-style: none; background: var(--color-ink); border-bottom: var(--rule-bar) solid var(--color-accent); }
.nav__mobile a { display: block; white-space: nowrap; padding: var(--space-sm) 0; border-bottom: var(--rule-hair) solid var(--color-ink-rule); font: var(--display-weight) var(--text-xl)/1 var(--font-display); text-transform: uppercase; color: var(--color-on-ink); text-decoration: none; }
.nav__mobile a:hover { color: var(--color-accent); }
.nav__mobile a:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
html:not(.js) .nav__menu { display: none !important; }

/* ---------- hero: ink stage with a photo collage and a sports strip ---------- */
.hero { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: 1fr auto; background: var(--color-ink); color: var(--color-on-ink); }
.hero__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-3xl); align-items: center; padding-block: var(--space-2xl); }
.hero__text { display: grid; gap: var(--space-lg); justify-items: start; }
.hero__status a { display: inline-flex; align-items: center; min-height: 32px; padding: 0 var(--space-sm); border: var(--rule-hair) solid var(--color-on-ink-2); border-radius: var(--radius-card); font-size: var(--text-sm); font-weight: 600; color: var(--color-on-ink); text-decoration: none; }
.hero__status a:hover { border-color: var(--color-accent); }
.hero__status a:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.hero__status.is-open a { background: var(--color-accent); border-color: var(--color-accent); color: var(--color-accent-ink); }
.hero h1 { font-size: clamp(3rem, 5.6vw, 5.25rem); color: var(--color-on-ink); }
.hero .lead { color: var(--color-on-ink-2); }
.hero__actions { display: flex; flex-wrap: wrap; gap: var(--space-sm); margin-top: var(--space-xs); }
.hero .btn--primary { --btn-fill: var(--color-on-ink); }
.hero .btn--primary:hover { color: var(--color-ink); }
.hero__collage { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: var(--space-sm); height: clamp(360px, 46dvh, 480px); }
.hero__big { grid-row: 1 / 3; }
.hero__collage .photo > img { outline-color: color-mix(in oklab, var(--color-on-ink) 10%, transparent); }
.hero__strip { background: var(--color-accent); }
.hero__strip ul { display: flex; justify-content: space-between; gap: var(--space-md); margin: 0 auto; list-style: none; overflow-x: auto; scrollbar-width: none; }
.hero__strip a { display: block; padding-block: var(--space-md); font: var(--display-weight) var(--text-xl)/1 var(--font-display); text-transform: uppercase; color: var(--color-accent-ink); text-decoration: none; white-space: nowrap; }
.hero__strip a:hover { text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 0.2em; }
.hero__strip a:focus-visible { outline: 2px solid var(--color-accent-ink); outline-offset: -2px; }

/* ---------- the big three ---------- */
.big3 { padding-block: var(--section-gap-s) var(--section-gap); }
.head-split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--gap-columns); align-items: end; padding-bottom: var(--space-xl); border-bottom: var(--rule-bar) solid var(--color-rule-2); }
.head-split .lead { justify-self: end; max-width: 34ch; }
.big3__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap-columns); margin: 0; padding: var(--space-2xl) 0 0; list-style: none; }
.sport__link { display: grid; gap: var(--space-md); color: var(--color-ink); text-decoration: none; border-radius: var(--radius-card); }
.sport__link:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 4px; }
.sport__photo { aspect-ratio: 4 / 5; }
.sport__name { margin-top: var(--space-xs); font-size: clamp(3.5rem, 6.5vw, 6.5rem); line-height: 0.95; max-width: none; transition: color var(--dur-short) var(--ease-out); }
.sport__link:hover .sport__name { color: var(--color-accent-deep); }
.sport__rows { display: grid; margin: 0; border-top: var(--rule-bar) solid var(--color-rule-2); }
.sport__rows > div { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: var(--space-sm); padding-block: var(--space-sm); border-bottom: var(--rule-hair) solid var(--color-rule); }
.sport__rows dt { font-weight: 600; }
.sport__rows dd { margin: 0; color: var(--color-ink-2); }

/* ---------- how we help: one cyan band ---------- */
.help { padding-block: var(--section-gap-s); background: var(--color-accent); color: var(--color-accent-ink); }
.help h2 { margin-bottom: var(--space-2xl); }
.help__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; border-top: var(--rule-bar) solid var(--color-accent-ink); }
.help__grid > li { display: grid; align-content: start; gap: var(--space-md); padding: var(--space-xl) var(--space-lg) 0; border-left: var(--rule-hair) solid color-mix(in oklab, var(--color-accent-ink) 35%, transparent); }
.help__grid > li:first-child { padding-left: 0; border-left: 0; }
.help__grid h3 { font-size: clamp(1.75rem, 2.4vw, 2.5rem); line-height: 1; }
.help__grid p { max-width: 30ch; }

/* ---------- the other six: a photo beside rows ---------- */
.more { padding-block: var(--section-gap) var(--section-gap-s); }
.more__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-3xl); align-items: center; }
.more__photo { aspect-ratio: 4 / 5; min-height: 440px; }
.more__text h2 { margin-bottom: var(--space-xl); }
.more__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--gap-columns); margin: 0; padding: 0; list-style: none; border-top: var(--rule-bar) solid var(--color-rule-2); }
.more__list li { border-bottom: var(--rule-hair) solid var(--color-rule); }
.more__list a { display: grid; gap: var(--space-2xs); padding: var(--space-lg) var(--space-xs); color: var(--color-ink); text-decoration: none; transition: background-color var(--dur-short) var(--ease-out); }
.more__list h3 { font-size: clamp(1.75rem, 2.6vw, 2.5rem); line-height: 1; }
.more__list span { color: var(--color-ink-2); }
.more__list a:hover { background: var(--color-paper-2); }
.more__list a:hover h3 { color: var(--color-accent-deep); }
.more__list a:focus-visible { outline: 2px solid var(--color-focus); outline-offset: -2px; }

/* ---------- a walk through the shop: photo rail ---------- */
.tour { padding-block: var(--section-gap-s); background: var(--color-paper-2); border-top: var(--rule-bar) solid var(--color-rule-2); }
.tour__head { display: flex; justify-content: space-between; align-items: end; gap: var(--space-lg); margin-bottom: var(--space-2xl); }
.tour__rail { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(15rem, 24%); gap: var(--gap-columns); margin: 0; padding: 0 max(var(--gutter), calc((100% - var(--container)) / 2 + var(--gutter))) var(--space-md); list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: max(var(--gutter), calc((100% - var(--container)) / 2 + var(--gutter))); overscroll-behavior-x: contain; }
.tour__rail:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 4px; }
.tour__rail > li { scroll-snap-align: start; }
.tour__photo { aspect-ratio: 4 / 5; }
.caption { margin-top: var(--space-sm); font-size: var(--text-sm); color: var(--color-ink-2); }

/* ---------- Rijnders Print: the ink band ---------- */
.print { padding-block: var(--section-gap-s); background: var(--color-ink); color: var(--color-on-ink); }
.print__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: var(--space-3xl); align-items: center; }
.print__photo { aspect-ratio: 4 / 3; min-height: 440px; }
.print__photo > img { outline-color: color-mix(in oklab, var(--color-on-ink) 10%, transparent); }
.print__text { display: grid; gap: var(--space-lg); justify-items: start; }
.print__logo svg { width: 240px; height: auto; }
.print h2 { color: var(--color-on-ink); }
.print .lead { color: var(--color-on-ink-2); }
.print__list { display: grid; width: 100%; margin: var(--space-xs) 0 0; border-top: var(--rule-bar) solid var(--color-print); }
.print__list > div { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: var(--space-md); padding-block: var(--space-md); border-bottom: var(--rule-hair) solid var(--color-ink-rule); }
.print__list dt { font: var(--display-weight) var(--text-xl)/1.1 var(--font-display); text-transform: uppercase; }
.print__list dd { margin: 0; color: var(--color-on-ink-2); }
.print__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-lg); margin-top: var(--space-xs); }
.btn--print { --btn-fill: var(--color-print); border-color: var(--color-print); color: var(--color-on-ink); }
.btn--print:hover { color: var(--color-ink); }
.print__tel { color: var(--color-on-ink); font-weight: 600; text-decoration: underline; text-decoration-color: var(--color-print); text-underline-offset: 0.25em; white-space: nowrap; }
.print__tel:hover { text-decoration-thickness: 2px; }
.print__tel:focus-visible { outline: 2px solid var(--color-print); outline-offset: 2px; }
.print .btn--print:focus-visible { outline-color: var(--color-print); }

/* ---------- clubs: head and search above, an index below, the club's logo follows the pointer ---------- */
.clubs { position: relative; padding-block: var(--section-gap); }
.clubs__head { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--gap-columns); align-items: end; padding-bottom: var(--space-xl); }
.clubs__head .lead { margin-top: var(--space-md); }
.clubs__find { display: grid; gap: var(--space-xs); }
.clubs__label { font-size: var(--text-sm); font-weight: 600; }
.clubs__search { width: 100%; min-height: 52px; padding: 0 var(--space-md); border: var(--rule-hair) solid var(--color-muted); border-radius: var(--radius-card); background: var(--color-paper); color: var(--color-ink); font-size: var(--text-md); outline: 2px solid transparent; outline-offset: -3px; }
.clubs__search:focus-visible { outline-color: var(--color-focus); }
.clubs__search:disabled { opacity: 0.55; cursor: not-allowed; }
.clubs__search::placeholder { color: var(--color-muted); }
.clubs__count { min-height: 1lh; font-size: var(--text-sm); color: var(--color-muted); }
.clubs__list { margin: 0; padding: 0; list-style: none; border-top: var(--rule-bar) solid var(--color-rule-2); }
.clubs__list li { border-bottom: var(--rule-hair) solid var(--color-rule); }
.clubs__list a { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 3fr) minmax(0, 3fr); align-items: center; gap: var(--gap-columns); min-height: 68px; padding-inline: var(--space-sm); color: var(--color-ink); text-decoration: none; transition: background-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out); }
.club__name { font: var(--display-weight) var(--text-2xl)/1 var(--font-display); text-transform: uppercase; }
.club__sport { color: var(--color-ink-2); }
.club__go { justify-self: end; font-weight: 600; font-size: var(--text-sm); text-decoration: underline; text-decoration-color: var(--color-rule); text-underline-offset: 0.25em; white-space: nowrap; }
.clubs__list a:hover, .clubs__list a:focus-visible { background: var(--color-ink); color: var(--color-on-ink); }
.clubs__list a:hover .club__sport, .clubs__list a:focus-visible .club__sport { color: var(--color-on-ink-2); }
.clubs__list a:hover .club__go, .clubs__list a:focus-visible .club__go { text-decoration-color: var(--color-accent); }
.clubs__list a:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.clubs__float { position: absolute; left: 0; top: 0; z-index: var(--z-raised); width: 200px; height: 200px; padding: var(--space-md); background: var(--color-paper); border: var(--rule-bar) solid var(--color-ink); border-radius: var(--radius-card); pointer-events: none; opacity: 0; transition: opacity var(--dur-short) var(--ease-out); }
.clubs__float img { width: 100%; height: 100%; object-fit: contain; }
.clubs__float.is-on { opacity: 1; }
@media (hover: none), (max-width: 60rem) { .clubs__float { display: none; } }

/* ---------- about ---------- */
.about { padding-block: var(--section-gap-s) var(--section-gap); border-top: var(--rule-hair) solid var(--color-rule); }
.about__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-3xl); align-items: center; }
.about__text { display: grid; gap: var(--space-lg); justify-items: start; }
.team { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--gap-columns); width: 100%; border-top: var(--rule-bar) solid var(--color-rule-2); padding-top: var(--space-md); }
.team h3 { font-size: var(--text-xl); margin-bottom: var(--space-sm); }
.team ul { display: grid; margin: 0; padding: 0; list-style: none; }
.team li { display: grid; gap: var(--space-3xs); padding-block: var(--space-xs); border-bottom: var(--rule-hair) solid var(--color-rule); }
.team li span { font-weight: 600; }
.team small { font-size: var(--text-sm); color: var(--color-muted); }
.team__col--print h3 { text-decoration: underline; text-decoration-color: var(--color-print); text-decoration-thickness: 3px; text-underline-offset: 0.2em; }
.about__photo { aspect-ratio: 3 / 2; min-height: 440px; }

/* ---------- visit: the close ---------- */
.visit { padding-block: var(--section-gap-s); background: var(--color-paper-2); border-top: var(--rule-bar) solid var(--color-rule-2); }
.visit__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-3xl); align-items: start; }
.visit__text { display: grid; gap: var(--space-lg); justify-items: start; }
.visit__address { display: grid; font-style: normal; font: var(--display-weight) var(--text-2xl)/1.1 var(--font-display); text-transform: uppercase; }
.visit__contact { display: grid; gap: var(--space-2xs); margin: 0; padding: 0; list-style: none; }
.visit__contact a { color: var(--color-ink); text-decoration-color: var(--color-rule); text-underline-offset: 0.25em; }
.visit__contact a:hover { text-decoration-color: var(--color-accent-deep); }
.visit__contact a:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.visit__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-lg); margin-top: var(--space-xs); }
.hours { width: 100%; border-collapse: collapse; border-top: var(--rule-bar) solid var(--color-rule-2); border-bottom: var(--rule-bar) solid var(--color-rule-2); }
.hours th, .hours td { padding: var(--space-md) var(--space-sm); text-align: left; border-top: var(--rule-hair) solid var(--color-rule); }
.hours thead th { font-size: var(--text-sm); font-weight: 600; color: var(--color-muted); border-top: 0; }
.hours tbody th { font-weight: 600; font-size: var(--text-lg); }
.hours td { font: 500 var(--text-xl)/1 var(--font-outlier); font-variant-numeric: tabular-nums; }
.hours tr[aria-current] { background: var(--color-accent); color: var(--color-accent-ink); }

/* ---------- footer: mast ---------- */
.foot { padding-block: var(--space-3xl) var(--space-xl); background: var(--color-ink); color: var(--color-on-ink); }
.foot .logo-sport .lg-word { fill: var(--color-on-ink); }
.foot__mast { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2xl); padding-bottom: var(--space-2xl); border-bottom: var(--rule-hair) solid var(--color-ink-rule); }
.foot__logo { display: block; border-radius: var(--radius-card); }
.foot__logo svg { width: clamp(240px, 32vw, 460px); height: auto; }
.foot__logo--print svg { width: clamp(200px, 26vw, 380px); }
.foot__logo:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 4px; }
.foot__cols { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 3fr) minmax(0, 5fr); gap: var(--gap-columns); padding-top: var(--space-xl); }
.foot__links { display: grid; gap: var(--space-xs); margin: 0; padding: 0; list-style: none; align-content: start; }
.foot__links a { color: var(--color-on-ink); text-decoration: none; white-space: nowrap; }
.foot__links a:hover { text-decoration: underline; text-decoration-color: var(--color-accent); text-underline-offset: 0.25em; }
.foot__links a:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.foot__legal { align-self: end; font-size: var(--text-sm); color: var(--color-on-ink-2); }

/* ---------- smaller screens ---------- */
@media (max-width: 75rem) {
  .nav__in { gap: var(--space-md); }
  .nav__logo svg { width: 150px; }
  .nav__links > li > a { padding: 0 var(--space-xs); }
}
@media (max-width: 64rem) {
  .nav__links, .nav__cta, .mega__panel { display: none; }
  .nav__menu { display: inline-flex; align-items: center; }
  .nav__mobile { display: grid; }
  .js .nav__mobile { position: absolute; left: 0; right: 0; top: 100%; z-index: var(--z-dropdown); }
}
@media (max-width: 60rem) {
  .hero__grid, .print__grid, .about__grid, .visit__grid, .clubs__grid, .head-split { grid-template-columns: minmax(0, 1fr); gap: var(--space-xl); }
  .hero { min-height: 0; }
  .hero__grid { padding-block: var(--space-xl) var(--space-2xl); }
  .hero__collage { height: auto; aspect-ratio: 4 / 3; }
  .topbar .topbar__promise li:not(:last-child) { display: none; }
  .head-split .lead { justify-self: start; }
  .big3__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-2xl); }
  .sport__photo { aspect-ratio: 3 / 2; }
  .print__photo, .about__photo, .more__photo { min-height: 0; }
  .more__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-xl); }
  .more__photo { aspect-ratio: 3 / 2; }
  .help__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: var(--space-xl); }
  .help__grid > li:nth-child(3) { padding-left: 0; border-left: 0; }
  .about__photo { order: -1; }
  .clubs__head { grid-template-columns: minmax(0, 1fr); }
  .clubs__list a { grid-template-columns: minmax(0, 1fr) auto; row-gap: var(--space-2xs); padding-block: var(--space-sm); }
  .club__go { grid-row: 1 / 3; grid-column: 2; }
  .foot__cols { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .foot__legal { grid-column: 1 / -1; }
}
@media (max-width: 40rem) {
  .club__name { font-size: var(--text-xl); }
  .print__list > div { grid-template-columns: minmax(0, 1fr); gap: var(--space-2xs); }
  .tour__rail { grid-auto-columns: minmax(14rem, 75%); }
  .help__grid, .team { grid-template-columns: minmax(0, 1fr); }
  .help__grid > li { padding-left: 0; border-left: 0; padding-bottom: var(--space-md); border-bottom: var(--rule-hair) solid color-mix(in oklab, var(--color-accent-ink) 35%, transparent); }
  .more__list { grid-template-columns: minmax(0, 1fr); }
  .hours th, .hours td { padding-inline: var(--space-xs); }
}
@media (prefers-reduced-motion: reduce) {
  .btn, .btn::before, .nav__menu, .nav__menu::before, .text-link, .nav__links > li > a, .mega__toggle::after, .mega__name, .sport__name, .more__list a, .clubs__list a, .clubs__float { transition: none; }
  .btn:active { transform: none; }
}
