/* ============================================================
   ТЕННИСНАЯ ИМПЕРИЯ
   Premium tennis club — Saint Petersburg
   Editorial / Grand-Slam. Emerald + forest + warm ivory + champagne.
   Tokens lifted from the brand design system; all layout is original.
   ============================================================ */

/* Sans-serif everywhere — Golos Text (display + body). No serif. */
@import url('https://fonts.googleapis.com/css2?family=Golos+Text:wght@400;500;600;700;800;900&display=swap');

/* ----------------------------------------------------------------
   1 · TOKENS
---------------------------------------------------------------- */
:root{
  /* Emerald — premium lead */
  --emerald-50:#E8F4EE; --emerald-100:#C5E5D3; --emerald-200:#8FCBAC;
  --emerald-300:#54AD82; --emerald-400:#1F8E5D; --emerald-500:#0E7350;
  --emerald-600:#0A5C40; --emerald-700:#084A34; --emerald-900:#04271C;

  /* Clay / terracotta — warm accent (sparing) */
  --clay-100:#F2D9CD; --clay-200:#E6B59E; --clay-300:#D88F6E;
  --clay-400:#CE7650; --clay-500:#C4633A; --clay-600:#A8512E; --clay-700:#8A4124;

  /* Forest — deep surfaces */
  --forest-50:#EDF2EF; --forest-100:#D2DFD8; --forest-200:#A6BCAF;
  --forest-300:#6F8C7C; --forest-400:#466456; --forest-500:#2E4A3D;
  --forest-600:#233B31; --forest-700:#1B2F27; --forest-800:#142420; --forest-900:#0E1813;

  /* Neutrals — warm ivory → charcoal */
  --paper:#F5EFE3; --paper-soft:#FBF7EF; --paper-deep:#EBE2D2;
  --sand:#DED2BD;
  --ink-900:#1A1714; --ink-700:#2C2823; --ink-500:#4A4239;
  --ink-400:#6B6157; --ink-300:#8A7F73; --ink-200:#B6AC9E;

  /* Champagne gold — premium accent */
  --gold-100:#EFE6CF; --gold-300:#D8C599; --gold-500:#B89B6A;
  --gold-700:#8F744A; --gold-900:#5E4A2C;
  --gold-foil:linear-gradient(135deg,#C6AD78 0%,#B0925E 52%,#9C7E4C 100%);

  /* Court status */
  --status-open:#2F8F5B; --status-limited:#C98A2E; --status-full:#A33A2E;

  /* Fonts */
  --font-display:'Golos Text',system-ui,-apple-system,sans-serif;
  --font-sans:'Golos Text',system-ui,-apple-system,sans-serif;

  /* Type scale (fluid, editorial) */
  --fs-mega:    clamp(3.25rem,9vw,8.5rem);
  --fs-display-1:clamp(3.25rem,8vw,7rem);
  --fs-display-2:clamp(2.5rem,5.5vw,4.75rem);
  --fs-h1:clamp(2.25rem,4vw,3.5rem);
  --fs-h2:clamp(1.75rem,3vw,2.5rem);
  --fs-h3:clamp(1.375rem,2vw,1.75rem);
  --fs-h4:1.25rem;
  --fs-body-lg:1.1875rem; --fs-body:1.0625rem; --fs-body-sm:.9375rem;
  --fs-caption:.8125rem; --fs-label:.78rem;

  /* Spacing (8px base) */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px;
  --sp-6:32px; --sp-7:48px; --sp-8:64px; --sp-9:96px; --sp-10:128px; --sp-11:192px;

  /* Radii */
  --r-xs:2px; --r-sm:4px; --r-md:8px; --r-lg:14px; --r-xl:22px; --r-pill:999px;

  /* Shadows — warm, low */
  --shadow-xs:0 1px 2px rgba(26,23,20,.06);
  --shadow-sm:0 2px 8px rgba(26,23,20,.08);
  --shadow-md:0 10px 30px -8px rgba(26,23,20,.16);
  --shadow-lg:0 28px 64px -18px rgba(26,23,20,.28);
  --shadow-foil:0 14px 32px -14px rgba(94,74,44,.30);

  /* Motion */
  --ease-out:cubic-bezier(.2,.7,.2,1);
  --ease-spring:cubic-bezier(.32,.72,0,1);
  --dur-fast:160ms; --dur:280ms; --dur-slow:520ms;

  /* Layout */
  --maxw:1280px;
  --gutter:clamp(20px,5vw,72px);
}

/* ----------------------------------------------------------------
   2 · RESET / BASE
---------------------------------------------------------------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  font-family:var(--font-sans);
  font-size:var(--fs-body);
  line-height:1.6;
  color:var(--ink-500);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,video{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; cursor:pointer; background:none; border:none; }
ul{ list-style:none; }
::selection{ background:var(--clay-200); color:var(--ink-900); }

/* page transition fade */
@keyframes pageIn{ from{ opacity:0; } to{ opacity:1; } }
body{ animation:pageIn var(--dur-slow) var(--ease-out) both; }
body.is-leaving{ opacity:0; transition:opacity 260ms var(--ease-out); }

/* ----------------------------------------------------------------
   3 · TYPOGRAPHY UTILITIES
---------------------------------------------------------------- */
.font-display{ font-family:var(--font-display); }
.serif-italic{ font-family:var(--font-display); font-style:italic; font-weight:500; }

h1,h2,h3,h4{ font-family:var(--font-display); color:var(--ink-900); font-weight:700; }

.mega{
  font-family:var(--font-display); font-weight:800;
  font-size:var(--fs-mega); line-height:.9; letter-spacing:-.025em;
  color:var(--ink-900);
}
.display-1{ font-size:var(--fs-display-1); line-height:.94; letter-spacing:-.02em; font-weight:800; }
.display-2{ font-size:var(--fs-display-2); line-height:.98; letter-spacing:-.015em; font-weight:700; }
.h1{ font-size:var(--fs-h1); line-height:1.04; letter-spacing:-.01em; font-weight:700; }
.h2{ font-size:var(--fs-h2); line-height:1.1; font-weight:700; }
.h3{ font-size:var(--fs-h3); line-height:1.2; font-weight:600; }

.lead{ font-size:var(--fs-body-lg); line-height:1.65; color:var(--ink-400); font-weight:400; }
.muted{ color:var(--ink-400); }
.body-sm{ font-size:var(--fs-body-sm); color:var(--ink-400); }

.accent{ color:var(--emerald-500); }
.accent-clay{ color:var(--clay-600); }
.accent-gold{ color:var(--gold-700); }

.num{ font-family:var(--font-display); font-variant-numeric:tabular-nums lining-nums; }
.figures{ font-variant-numeric:tabular-nums lining-nums; }

/* Sentence-case tracked label — NOT wide all-caps eyebrow */
.label{
  display:inline-flex; align-items:center; gap:var(--sp-2);
  font-family:var(--font-sans); font-weight:600; font-size:var(--fs-label);
  letter-spacing:.04em; color:var(--clay-600);
}
.label::before{
  content:""; width:26px; height:1px; background:var(--clay-500); opacity:.7;
}
.label--ink{ color:var(--ink-400); }
.label--ink::before{ background:var(--ink-300); }
.label--light{ color:var(--gold-300); }
.label--light::before{ background:var(--gold-500); }
.label--plain::before{ display:none; }

/* ----------------------------------------------------------------
   4 · LAYOUT
---------------------------------------------------------------- */
.container{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }
.section{ padding-block:clamp(64px,11vw,168px); }
.section--tight{ padding-block:clamp(48px,7vw,96px); }
.bleed{ width:100%; }

.section-head{ max-width:760px; margin-bottom:var(--sp-8); }
.section-head .label{ margin-bottom:var(--sp-4); }
.section-head p{ margin-top:var(--sp-4); max-width:56ch; }

.hairline{ height:1px; background:var(--sand); border:0; }

/* surfaces */
.bg-paper{ background:var(--paper); }
.bg-soft{ background:var(--paper-soft); }
.bg-deep{ background:var(--paper-deep); }
.bg-forest{ background:var(--forest-700); color:var(--paper); }
.bg-forest h1,.bg-forest h2,.bg-forest h3,.bg-forest h4{ color:var(--paper); }

/* ----------------------------------------------------------------
   5 · PLACEHOLDER MEDIA (soft brand-dark shape, no border/text/icon)
---------------------------------------------------------------- */
.ph{
  position:relative; overflow:hidden;
  background:linear-gradient(135deg, rgba(27,47,39,.13), rgba(14,115,80,.08));
  border-radius:var(--r-lg);
}
.ph--clay{ background:linear-gradient(135deg, rgba(168,81,46,.14), rgba(196,99,58,.07)); }
.ph--forest{ background:linear-gradient(140deg, rgba(20,36,32,.20), rgba(46,74,61,.10)); }
.ph--light{ background:linear-gradient(135deg, rgba(245,239,227,.12), rgba(184,155,106,.07)); }
.ph--gold{ background:linear-gradient(135deg, rgba(184,155,106,.20), rgba(94,74,44,.10)); }
/* aspect helpers */
.ar-1{ aspect-ratio:1/1; }
.ar-43{ aspect-ratio:4/3; }
.ar-34{ aspect-ratio:3/4; }
.ar-169{ aspect-ratio:16/9; }
.ar-219{ aspect-ratio:21/9; }
.ar-32{ aspect-ratio:3/2; }

/* ----------------------------------------------------------------
   6 · BUTTONS
---------------------------------------------------------------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:var(--sp-3);
  font-family:var(--font-sans); font-weight:600; font-size:var(--fs-body-sm);
  letter-spacing:.01em; line-height:1;
  padding:16px 28px; border-radius:var(--r-pill);
  transition:background var(--dur) var(--ease-out), color var(--dur) var(--ease-out),
             transform var(--dur-fast) var(--ease-out), box-shadow var(--dur) var(--ease-out),
             border-color var(--dur) var(--ease-out);
  will-change:transform;
}
.btn svg{ width:18px; height:18px; stroke-width:1.75; transition:transform var(--dur) var(--ease-out); }
.btn:hover svg{ transform:translateX(3px); }
.btn:active{ transform:translateY(1px); }

.btn--primary{ background:var(--emerald-500); color:#fff; box-shadow:0 8px 24px -10px rgba(8,74,52,.7); }
.btn--primary:hover{ background:var(--emerald-600); }
.btn--primary:active{ background:var(--emerald-700); }

.btn--ghost{ background:transparent; color:var(--ink-900); box-shadow:inset 0 0 0 1.5px var(--ink-900); }
.btn--ghost:hover{ background:var(--emerald-500); color:#fff; box-shadow:inset 0 0 0 1.5px var(--emerald-500); }

.btn--light{ background:transparent; color:#fff; box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.7); }
.btn--light:hover{ background:#fff; color:var(--forest-700); box-shadow:inset 0 0 0 1.5px #fff; }

.btn--gold{ background:var(--gold-500); color:var(--forest-900); }
.btn--gold:hover{ background:var(--gold-700); color:#fff; }

.btn--sm{ padding:12px 20px; font-size:var(--fs-caption); }
.btn--lg{ padding:19px 36px; font-size:var(--fs-body); }
.btn--block{ width:100%; }

/* text link with growing underline */
.tlink{ display:inline-flex; align-items:center; gap:8px; font-weight:600; color:var(--emerald-600); position:relative; }
.tlink svg{ width:16px; height:16px; stroke-width:2; transition:transform var(--dur) var(--ease-out); }
.tlink::after{ content:""; position:absolute; left:0; bottom:-3px; height:1.5px; width:100%;
  background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform var(--dur) var(--ease-out); }
.tlink:hover::after{ transform:scaleX(1); }
.tlink:hover svg{ transform:translateX(4px); }

/* ----------------------------------------------------------------
   7 · NAV
---------------------------------------------------------------- */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  background:rgba(245,239,227,.72);
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  border-bottom:1px solid transparent;
  transition:box-shadow var(--dur) var(--ease-out), background var(--dur) var(--ease-out),
             border-color var(--dur) var(--ease-out);
}
.nav.is-scrolled{
  background:rgba(245,239,227,.88);
  box-shadow:0 8px 30px -16px rgba(26,23,20,.3);
  border-bottom-color:var(--sand);
}
.nav__inner{
  max-width:var(--maxw); margin-inline:auto; padding:14px var(--gutter);
  display:flex; align-items:center; justify-content:space-between; gap:var(--sp-6);
}
.brand{ display:flex; align-items:center; gap:12px; flex-shrink:0; }
.brand img{ height:42px; width:auto; }
.brand__name{ font-family:var(--font-display); font-weight:700; font-size:1.05rem;
  color:var(--ink-900); line-height:1.05; letter-spacing:.01em; }
.brand__name small{ display:block; font-family:var(--font-sans); font-weight:500;
  font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-300); }

.nav__links{ display:flex; align-items:center; gap:clamp(18px,2.2vw,38px); }
.nav__links a{ font-size:var(--fs-body-sm); font-weight:500; color:var(--ink-700); position:relative; padding:6px 0; }
.nav__links a::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:1.5px;
  background:var(--emerald-500); transform:scaleX(0); transform-origin:left; transition:transform var(--dur) var(--ease-out); }
.nav__links a:hover::after,.nav__links a.is-active::after{ transform:scaleX(1); }
.nav__links a:hover{ color:var(--ink-900); }
.nav__links a.is-active{ color:var(--emerald-600); }

.nav__cta{ display:flex; align-items:center; gap:14px; }
.nav__phone{ font-weight:600; font-size:var(--fs-body-sm); color:var(--ink-900); white-space:nowrap; }

.nav__burger{ display:none; flex-direction:column; gap:5px; padding:8px; }
.nav__burger span{ width:24px; height:2px; background:var(--ink-900); border-radius:2px; transition:var(--dur); }

/* mobile drawer */
.nav__mobile{
  position:fixed; inset:0; z-index:99; background:var(--forest-700); color:var(--paper);
  display:flex; flex-direction:column; justify-content:center; gap:var(--sp-3);
  padding:var(--gutter); transform:translateY(-100%); transition:transform var(--dur-slow) var(--ease-spring);
  visibility:hidden;
}
.nav__mobile.is-open{ transform:translateY(0); visibility:visible; }
.nav__mobile a{ font-family:var(--font-display); font-size:clamp(2rem,9vw,3rem); color:var(--paper); font-weight:600; }
.nav__mobile a:hover{ color:var(--gold-300); }
.nav__mobile .btn{ margin-top:var(--sp-5); align-self:flex-start; }

/* spacer so fixed nav doesn't overlap */
.nav-spacer{ height:72px; }

/* ----------------------------------------------------------------
   8 · SCROLL REVEAL
---------------------------------------------------------------- */
.reveal{ opacity:0; transform:translateY(28px); filter:blur(6px);
  transition:opacity 800ms var(--ease-spring), transform 800ms var(--ease-spring), filter 800ms var(--ease-spring); }
.reveal.is-visible{ opacity:1; transform:none; filter:none; }
.reveal[data-delay="1"]{ transition-delay:80ms; }
.reveal[data-delay="2"]{ transition-delay:160ms; }
.reveal[data-delay="3"]{ transition-delay:240ms; }
.reveal[data-delay="4"]{ transition-delay:320ms; }
.reveal[data-delay="5"]{ transition-delay:400ms; }
@media (prefers-reduced-motion:reduce){
  .reveal{ opacity:1; transform:none; filter:none; transition:none; }
  body{ animation:none; }
  html{ scroll-behavior:auto; }
}

/* ============================================================
   9 · HOMEPAGE
   ============================================================ */

/* HERO */
.hero{ position:relative; min-height:100vh; min-height:100svh; display:flex; align-items:center;
  padding-top:96px; padding-bottom:64px; overflow:hidden; }
.hero__bg-crest{ position:absolute; right:-8%; top:50%; transform:translateY(-50%);
  width:min(60vw,820px); opacity:.05; pointer-events:none; z-index:0; }
.hero__inner{ position:relative; z-index:2; display:grid; grid-template-columns:55fr 45fr;
  gap:clamp(24px,4vw,64px); align-items:center; width:100%; }
.hero__copy{ max-width:680px; }
.hero__title{ font-family:var(--font-display); font-weight:800; font-size:var(--fs-display-1);
  line-height:.94; letter-spacing:-.025em; color:var(--ink-900); }
.hero__title .l{ display:block; }
.hero__title em{ font-style:italic; font-weight:500; color:var(--emerald-500); }
.hero__sub{ margin-top:var(--sp-6); font-size:var(--fs-body-lg); color:var(--ink-400); max-width:46ch; }
.hero__actions{ margin-top:var(--sp-7); display:flex; flex-wrap:wrap; gap:var(--sp-3); }
.hero__stats{ margin-top:var(--sp-8); display:flex; align-items:center; gap:clamp(16px,2.4vw,36px); flex-wrap:wrap; }
.hero__stat{ display:flex; flex-direction:column; gap:4px; }
.hero__stat b{ font-family:var(--font-display); font-weight:700; font-size:1.35rem; color:var(--ink-900); line-height:1; }
.hero__stat span{ font-size:var(--fs-caption); color:var(--ink-300); }
.hero__stat-div{ width:1px; height:38px; background:var(--sand); }

/* ball stage */
.hero__media{ position:relative; display:flex; align-items:center; justify-content:center; min-height:420px; }
.ball-stage{ position:relative; width:min(360px,78vw); aspect-ratio:1; }
.ball-glow{ position:absolute; inset:-12%; border-radius:50%;
  background:radial-gradient(circle at 50% 45%, rgba(14,115,80,.16), rgba(245,239,227,0) 62%);
  filter:blur(8px); z-index:0; }
.ball-shadow{ position:absolute; left:50%; bottom:6%; width:62%; height:42px;
  transform:translateX(-50%); border-radius:50%;
  background:radial-gradient(ellipse at center, rgba(26,23,20,.30), rgba(26,23,20,0) 70%);
  filter:blur(8px); z-index:1; will-change:transform; }
/* The supplied ball.mp4 is a branded ball baked onto a light checkerboard
   (MP4 has no alpha), so we crop it to a circle and scale up so the ball fills
   the clip — the checkerboard ring falls outside the mask. */
.ball-wrap{ position:absolute; inset:0; z-index:2; will-change:transform;
  border-radius:50%; overflow:hidden;
  box-shadow:0 0 0 1px rgba(26,23,20,.04), inset 0 0 22px rgba(26,23,20,.06); }
.ball-wrap video{ width:100%; height:100%; object-fit:cover; transform:scale(1.16); }

/* STATS BAR */
.stats-bar{ border-block:1px solid var(--sand); background:var(--paper-soft); }
.stats-bar__grid{ display:grid; grid-template-columns:repeat(4,1fr); }
.stats-bar__cell{ padding:clamp(36px,5vw,64px) clamp(16px,2.5vw,40px); position:relative; }
.stats-bar__cell + .stats-bar__cell::before{ content:""; position:absolute; left:0; top:24%; bottom:24%; width:1px; background:var(--sand); }
.stats-bar__num{ font-family:var(--font-display); font-weight:700; font-size:clamp(2.75rem,5vw,4.25rem);
  line-height:1; color:var(--emerald-600); letter-spacing:-.02em; }
.stats-bar__num sup{ font-size:.42em; vertical-align:super; color:var(--gold-700); }
.stats-bar__label{ margin-top:var(--sp-3); font-size:var(--fs-body-sm); color:var(--ink-400); }

/* VIDEO SECTION */
.videobox{ position:relative; min-height:580px; display:flex; align-items:center; justify-content:center;
  text-align:center; color:#fff; overflow:hidden; }
.videobox__video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.55; z-index:0; }
.videobox__scrim{ position:absolute; inset:0; background:rgba(13,42,26,.60); z-index:1; }
.videobox__grad{ position:absolute; inset:0; z-index:2;
  background:linear-gradient(to bottom, transparent 40%, rgba(13,42,26,.85) 100%); }
.videobox__content{ position:relative; z-index:3; max-width:780px; padding:clamp(80px,12vw,140px) var(--gutter); }
.videobox__content h2{ color:#fff; }
.videobox__content .lead{ color:rgba(255,255,255,.82); margin-top:var(--sp-5); }
.videobox__content .btn{ margin-top:var(--sp-7); }
.videobox__content .label{ justify-content:center; color:var(--gold-300); }
.videobox__content .label::before{ background:var(--gold-500); }

/* COACHES PREVIEW (dark cards) */
.coach-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--sp-5); }
.coach-card{ position:relative; border-radius:var(--r-lg); overflow:hidden; background:var(--forest-700);
  color:var(--paper); min-height:480px; display:flex; flex-direction:column; justify-content:flex-end;
  transition:transform var(--dur-slow) var(--ease-spring), box-shadow var(--dur-slow) var(--ease-out); }
.coach-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.coach-card__photo{ position:absolute; inset:0; z-index:0; }
.coach-card__photo .ph{ width:100%; height:100%; border-radius:0; }
.coach-card__scrim{ position:absolute; inset:0; z-index:1;
  background:linear-gradient(to top, rgba(14,24,19,.92) 8%, rgba(14,24,19,.45) 45%, rgba(14,24,19,.08) 100%); }
.coach-card__body{ position:relative; z-index:2; padding:var(--sp-6); }
.coach-card__role{ font-size:var(--fs-caption); color:var(--gold-300); font-weight:600; letter-spacing:.03em; }
.coach-card__name{ font-family:var(--font-display); font-weight:700; font-size:1.75rem; color:#fff; margin-top:6px; line-height:1.05; }
.coach-card__quote{ font-family:var(--font-display); font-style:italic; font-size:1.05rem; color:rgba(255,255,255,.82);
  margin-top:var(--sp-4); line-height:1.4; }
.coach-card__ach{ margin-top:var(--sp-5); display:flex; flex-direction:column; gap:8px; }
.coach-card__ach li{ display:flex; gap:10px; align-items:flex-start; font-size:var(--fs-body-sm); color:rgba(255,255,255,.72); }
.coach-card__ach li::before{ content:""; flex-shrink:0; margin-top:7px; width:5px; height:5px; border-radius:50%; background:var(--gold-500); }
.coach-card__link{ position:absolute; inset:0; z-index:3; }

/* ============================================================
   FEATURED COACHES — dark editorial block (photo · quote · achievements · video)
   ============================================================ */
.team-dark{ position:relative; background:var(--forest-900); color:var(--paper); overflow:hidden; }
.team-dark::before{ content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
  background:
    linear-gradient(125deg, transparent 55%, rgba(46,74,61,.35) 78%, transparent 79%),
    linear-gradient(125deg, transparent 62%, rgba(46,74,61,.22) 84%, transparent 85%); }
.team-dark .container{ position:relative; z-index:1; }
.team-dark .section-head h2{ color:#fff; }
.team-dark .section-head .lead{ color:rgba(245,239,227,.72); }
.team-dark .label{ color:var(--gold-300); }
.team-dark .label::before{ background:var(--gold-500); }

.tcoach{ position:relative; display:grid; grid-template-columns:290px 1fr; gap:clamp(28px,3.5vw,64px);
  align-items:end; padding-block:clamp(40px,5vw,72px); border-top:1px solid rgba(245,239,227,.1); }
.tcoach:first-of-type{ border-top:0; padding-top:var(--sp-7); }
.tcoach > *{ position:relative; z-index:1; }
/* large semi-transparent crest behind each coach (emblem), on the photo side */
.tcoach::before{ content:""; position:absolute; z-index:0; pointer-events:none;
  width:min(500px,50%); aspect-ratio:1; top:46%; left:-5%; transform:translateY(-50%);
  background:url('assets/logo-gold.png') center/contain no-repeat; opacity:.14; }
/* alternate sides: reversed rows put the photo on the right */
.tcoach--rev{ grid-template-columns:1fr 290px; }
.tcoach--rev .tcoach__photo{ order:2; }
.tcoach--rev::before{ left:auto; right:-4%; }
.tcoach__photo{ position:relative; align-self:end; }
.tcoach__photo img{ width:100%; height:auto; display:block;
  filter:drop-shadow(0 26px 40px rgba(0,0,0,.55)); }
.tcoach__photo::after{ content:""; position:absolute; left:50%; bottom:-2px; transform:translateX(-50%);
  width:86%; height:34px; border-radius:50%; background:radial-gradient(ellipse,rgba(0,0,0,.6),transparent 70%); z-index:-1; }

.tcoach__quote{ font-family:var(--font-display); font-style:italic; font-weight:500;
  font-size:clamp(1.3rem,2vw,2rem); line-height:1.32; color:#fff; position:relative;
  padding-left:54px; margin-bottom:var(--sp-7); max-width:32ch; }
.tcoach__quote::before{ content:"“"; position:absolute; left:0; top:-14px; font-family:var(--font-display);
  font-size:4.5rem; line-height:1; color:var(--clay-500); }
.tcoach__cols{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:clamp(24px,3vw,52px); align-items:start; }
.tcoach__role{ color:var(--gold-300); font-size:var(--fs-caption); font-weight:600; letter-spacing:.02em; margin-bottom:8px; }
.tcoach__name{ font-family:var(--font-display); font-weight:800; line-height:1; letter-spacing:-.01em;
  font-size:clamp(1.8rem,2.6vw,2.6rem); color:var(--clay-500); margin-bottom:var(--sp-5); }
.tcoach__ach{ display:flex; flex-direction:column; }
.tcoach__ach li{ display:flex; gap:12px; align-items:flex-start; font-size:var(--fs-body-sm);
  color:rgba(245,239,227,.8); padding:13px 0; border-bottom:1px solid rgba(245,239,227,.09); }
.tcoach__ach li:first-child{ padding-top:0; }
.tcoach__ach li:last-child{ border-bottom:0; }
.tcoach__ach li::before{ content:""; flex-shrink:0; margin-top:7px; width:6px; height:6px; border-radius:50%; background:var(--clay-500); }
.tcoach__video{ position:relative; border-radius:var(--r-lg); overflow:hidden; background:#000;
  aspect-ratio:16/9; box-shadow:var(--shadow-lg); }
.tcoach__video video{ width:100%; height:100%; object-fit:cover; display:block; }
.tcoach__videocap{ margin-top:var(--sp-3); font-size:var(--fs-caption); color:rgba(245,239,227,.5); }
.tcoach__link{ margin-top:var(--sp-6); display:inline-flex; }
.team-dark .tlink{ color:var(--gold-300); }
.tcoach__foot{ margin-top:var(--sp-8); border-top:1px solid rgba(245,239,227,.1); padding-top:var(--sp-7); }

@media (max-width:1024px){
  .tcoach, .tcoach--rev{ grid-template-columns:200px 1fr; gap:28px; align-items:start; }
  .tcoach--rev .tcoach__photo{ order:0; }
  .tcoach__cols{ grid-template-columns:1fr; gap:28px; }
  .tcoach__photo{ align-self:start; }
  .tcoach::before{ width:60%; opacity:.07; }
}
@media (max-width:680px){
  .tcoach, .tcoach--rev{ grid-template-columns:1fr; gap:20px; }
  .tcoach__photo{ max-width:230px; }
  .tcoach__quote{ padding-left:42px; }
}

/* coach cutout standing on a soft colour panel (coaches grid + single hero) */
.photo-panel{ position:relative; overflow:hidden; display:flex; align-items:flex-end; justify-content:center; }
.photo-panel > img{ position:relative; z-index:1; height:100%; width:auto; max-width:none;
  object-fit:contain; object-position:bottom center; }

/* EDITORIAL STATEMENT — banded headline (Mouratoglou-style), sans-serif.
   Flush under the hero; hairline rules run full page width while the text
   stays aligned inside the container. */
.statement-block{ padding:0 0 clamp(48px,7vw,96px); }
.statement{ border-top:1.5px solid var(--sand); }                 /* full-bleed top rule */
.statement__line{ display:block; border-bottom:1.5px solid var(--sand);  /* full-bleed rule */
  padding-block:clamp(8px,1.4vw,20px); }
.statement__inner{ display:block; max-width:var(--maxw); margin-inline:auto;
  padding-inline:var(--gutter); font-family:var(--font-sans); font-weight:800;
  text-transform:uppercase; font-size:clamp(1.75rem,7.3vw,6rem); line-height:1.06;
  letter-spacing:-.02em; color:var(--ink-900); white-space:nowrap; }
.statement__line--a .statement__inner{ text-align:center; }
.statement__line--b .statement__inner{ text-align:left; color:var(--emerald-500); }
.statement__line--c .statement__inner{ text-align:right; }
.statement__foot{ margin-top:var(--sp-8); display:grid; grid-template-columns:1fr 1fr;
  gap:var(--sp-7); }
.statement__foot p{ max-width:46ch; }
@media (max-width:900px){
  .statement__inner{ white-space:normal; letter-spacing:-.015em; }
  .statement__foot{ grid-template-columns:1fr; gap:var(--sp-5); }
}

/* SERVICES */
.services{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--sand); }
.service{ padding:var(--sp-7) var(--sp-6) var(--sp-7) 0; border-bottom:1px solid var(--sand);
  border-right:1px solid var(--sand); transition:background var(--dur) var(--ease-out); position:relative; }
.service:nth-child(3n){ border-right:0; }
.service{ padding-left:var(--sp-6); }
.service:hover{ background:var(--paper-soft); }
.service__icon{ width:36px; height:36px; color:var(--emerald-500); margin-bottom:var(--sp-5); }
.service__icon svg{ width:100%; height:100%; stroke-width:1.4; }
.service__n{ position:absolute; top:var(--sp-6); right:var(--sp-5); font-family:var(--font-display);
  font-size:.9rem; color:var(--ink-200); }
.service h3{ font-size:var(--fs-h3); margin-bottom:var(--sp-3); }
.service p{ font-size:var(--fs-body-sm); color:var(--ink-400); max-width:34ch; }

/* VALUES (home) — 2×2 editorial grid, no numbers, hairline dividers */
.values-grid{ display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid var(--sand); }
.vitem{ padding:var(--sp-8) var(--sp-7); border-bottom:1px solid var(--sand);
  transition:background var(--dur) var(--ease-out); }
.vitem:nth-child(2n+1){ padding-left:0; border-right:1px solid var(--sand); }
.vitem:nth-child(2n){ padding-right:0; }
.vitem:hover{ background:var(--paper-soft); }
.vitem__icon{ width:38px; height:38px; color:var(--emerald-500); margin-bottom:var(--sp-5); }
.vitem__icon svg{ width:100%; height:100%; stroke-width:1.4; }
.vitem h3{ font-size:var(--fs-h2); margin-bottom:var(--sp-3); }
.vitem p{ font-size:var(--fs-body); color:var(--ink-400); max-width:46ch; }
@media (max-width:768px){
  .values-grid{ grid-template-columns:1fr; }
  .vitem{ padding:var(--sp-6) 0; border-right:0; }
}

/* LOCKER ROOMS — full-bleed photo bands with big overlaid names */
.lockers .section-head{ margin-bottom:var(--sp-7); }
.locker{ position:relative; display:flex; align-items:center; overflow:hidden;
  min-height:clamp(420px,56vh,600px); background-size:cover; background-position:center; }
.locker__scrim{ position:absolute; inset:0; z-index:1;
  background:linear-gradient(90deg, rgba(14,24,19,.9) 0%, rgba(14,24,19,.55) 34%, rgba(14,24,19,.04) 64%); }
.locker--right .locker__scrim{ background:linear-gradient(270deg, rgba(14,24,19,.9) 0%, rgba(14,24,19,.55) 34%, rgba(14,24,19,.04) 64%); }
.locker .container{ position:relative; z-index:2; width:100%; padding-block:var(--sp-8); display:flex; }
.locker--right .container{ justify-content:flex-end; }
.locker__text{ max-width:44ch; color:#fff; }
.locker--right .locker__text{ text-align:right; }
.locker__meta{ display:block; color:var(--gold-300); font-weight:600; font-size:var(--fs-caption);
  letter-spacing:.02em; margin-bottom:var(--sp-3); }
.locker__name{ font-family:var(--font-sans); font-weight:800; text-transform:uppercase; color:#fff;
  font-size:clamp(2.5rem,7vw,6rem); line-height:.92; letter-spacing:-.02em; margin-bottom:var(--sp-4); }
.locker__text p{ color:rgba(255,255,255,.85); font-size:var(--fs-body-lg); line-height:1.55; }
@media (max-width:768px){
  .locker{ min-height:clamp(380px,68vh,560px); align-items:flex-end; }
  .locker__scrim,.locker--right .locker__scrim{
    background:linear-gradient(0deg, rgba(14,24,19,.92) 8%, rgba(14,24,19,.45) 52%, rgba(14,24,19,.12) 100%); }
  .locker--right .container{ justify-content:flex-start; }
  .locker--right .locker__text{ text-align:left; }
}

/* NEWS PREVIEW + cards (shared) */
.news-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--sp-6); }
.ncard{ display:flex; flex-direction:column; transition:transform var(--dur) var(--ease-out); }
.ncard:hover{ transform:translateY(-4px); }
.ncard__media{ width:100%; aspect-ratio:4/3; margin-bottom:var(--sp-5); }
.ncard__media .ph{ width:100%; height:100%; }
.ncard__meta{ display:flex; gap:14px; align-items:center; font-size:var(--fs-caption); margin-bottom:var(--sp-3); }
.ncard__date{ color:var(--clay-600); font-weight:600; }
.ncard__cat{ color:var(--ink-300); }
.ncard h3{ font-size:var(--fs-h3); line-height:1.2; margin-bottom:var(--sp-3); transition:color var(--dur); }
.ncard:hover h3{ color:var(--emerald-600); }
.ncard p{ font-size:var(--fs-body-sm); color:var(--ink-400); }

/* CTA BLOCK */
.cta-block{ position:relative; background:var(--forest-800); color:var(--paper); overflow:hidden;
  border-radius:var(--r-xl); padding:clamp(56px,9vw,128px) var(--gutter); text-align:center; }
.cta-block__crest{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:min(70%,560px); opacity:.06; pointer-events:none; }
.cta-block__inner{ position:relative; z-index:2; max-width:720px; margin-inline:auto; }
.cta-block h2{ color:#fff; }
.cta-block .lead{ color:rgba(255,255,255,.78); margin-top:var(--sp-5); margin-inline:auto; }
.cta-block__actions{ margin-top:var(--sp-7); display:flex; gap:var(--sp-3); justify-content:center; flex-wrap:wrap; }
.cta-block .label{ justify-content:center; color:var(--gold-300); margin-bottom:var(--sp-4); }
.cta-block .label::before{ background:var(--gold-500); }

/* ----------------------------------------------------------------
   10 · FOOTER
---------------------------------------------------------------- */
.footer{ background:var(--forest-900); color:rgba(245,239,227,.7); padding-top:var(--sp-10); }
.footer__grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1.2fr; gap:var(--sp-7); padding-bottom:var(--sp-9); }
.footer__brand img{ height:64px; margin-bottom:var(--sp-4); }
.footer__brand p{ max-width:32ch; color:rgba(245,239,227,.6); font-size:var(--fs-body-sm); }
.footer__col h4{ font-family:var(--font-sans); font-size:var(--fs-caption); font-weight:600; letter-spacing:.04em;
  color:var(--gold-300); margin-bottom:var(--sp-4); }
.footer__col ul{ display:flex; flex-direction:column; gap:12px; }
.footer__col a,.footer__col li{ font-size:var(--fs-body-sm); color:rgba(245,239,227,.7); transition:color var(--dur); }
.footer__col a:hover{ color:#fff; }
.footer__contact b{ color:var(--paper); font-weight:600; display:block; font-size:var(--fs-body); }
.footer__social{ display:flex; gap:12px; margin-top:var(--sp-4); }
.footer__social a{ width:40px; height:40px; border-radius:50%; display:grid; place-items:center;
  box-shadow:inset 0 0 0 1px rgba(245,239,227,.2); transition:var(--dur); }
.footer__social a:hover{ background:var(--gold-500); box-shadow:none; }
.footer__social svg{ width:18px; height:18px; stroke-width:1.6; color:var(--paper); }
.footer__bar{ border-top:1px solid rgba(245,239,227,.12); padding-block:var(--sp-5);
  display:flex; justify-content:space-between; gap:var(--sp-4); flex-wrap:wrap; font-size:var(--fs-caption); color:rgba(245,239,227,.5); }

/* ============================================================
   11 · PAGE HEROES (inner pages)
   ============================================================ */
.pagehero{ padding-top:clamp(120px,16vh,180px); padding-bottom:clamp(48px,7vw,96px); position:relative; overflow:hidden; }
.pagehero__crest{ position:absolute; right:-6%; top:0; width:min(46vw,520px); opacity:.05; pointer-events:none; }
.pagehero__inner{ position:relative; z-index:2; max-width:920px; }
.pagehero h1{ font-size:var(--fs-display-1); line-height:.96; letter-spacing:-.02em; font-weight:800; }
.pagehero h1 em{ font-style:italic; font-weight:500; color:var(--emerald-500); }
.pagehero .lead{ margin-top:var(--sp-6); max-width:58ch; }
.breadcrumb{ display:flex; gap:10px; align-items:center; font-size:var(--fs-caption); color:var(--ink-300); margin-bottom:var(--sp-5); }
.breadcrumb a:hover{ color:var(--emerald-600); }
.breadcrumb span{ color:var(--ink-200); }

/* ============================================================
   12 · COACHES PAGE
   ============================================================ */
.coaches-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--sp-6); }
.cgrid-card{ display:flex; flex-direction:column; transition:transform var(--dur) var(--ease-out); }
.cgrid-card:hover{ transform:translateY(-5px); }
.cgrid-card__media{ aspect-ratio:3/4; margin-bottom:var(--sp-5); position:relative; overflow:hidden; border-radius:var(--r-lg); }
.cgrid-card__media .ph{ width:100%; height:100%; border-radius:0; transition:transform var(--dur-slow) var(--ease-spring); }
.cgrid-card:hover .cgrid-card__media .ph{ transform:scale(1.04); }
.cgrid-card__rank{ position:absolute; left:16px; top:16px; z-index:2; background:var(--paper); color:var(--emerald-700);
  font-family:var(--font-display); font-weight:700; font-size:.85rem; padding:7px 12px; border-radius:var(--r-pill); }
.cgrid-card__role{ font-size:var(--fs-caption); color:var(--clay-600); font-weight:600; margin-bottom:6px; }
.cgrid-card__name{ font-family:var(--font-display); font-weight:700; font-size:1.5rem; color:var(--ink-900); line-height:1.05; }
.cgrid-card__bio{ font-size:var(--fs-body-sm); color:var(--ink-400); margin-top:var(--sp-3); }
.cgrid-card__tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:var(--sp-4); }
.tag{ font-size:var(--fs-caption); color:var(--ink-500); padding:5px 12px; border-radius:var(--r-pill);
  background:var(--paper-deep); }

/* ============================================================
   13 · COACH-SINGLE PAGE
   ============================================================ */
.chero{ position:relative; background:var(--forest-800); color:var(--paper); padding-top:clamp(120px,15vh,170px);
  padding-bottom:clamp(56px,8vw,110px); overflow:hidden; }
.chero__crest{ position:absolute; right:-4%; bottom:-12%; width:min(40vw,440px); opacity:.07; }
.chero__grid{ position:relative; z-index:2; display:grid; grid-template-columns:42fr 58fr; gap:clamp(28px,4vw,64px); align-items:center; }
.chero__photo{ aspect-ratio:4/5; border-radius:var(--r-lg); overflow:hidden; }
.chero__photo .ph{ width:100%; height:100%; border-radius:0; }
.chero__role{ color:var(--gold-300); font-weight:600; font-size:var(--fs-body-sm); margin-bottom:var(--sp-3); }
.chero__name{ font-family:var(--font-display); font-weight:800; font-size:var(--fs-display-2); color:#fff; line-height:.96; letter-spacing:-.02em; }
.chero__quote{ font-family:var(--font-display); font-style:italic; font-size:clamp(1.25rem,2.2vw,1.85rem);
  color:rgba(255,255,255,.85); margin-top:var(--sp-6); line-height:1.4; max-width:30ch; }
.chero__stats{ margin-top:var(--sp-7); display:flex; gap:var(--sp-7); flex-wrap:wrap; }
.chero__stat b{ font-family:var(--font-display); font-size:2rem; color:var(--gold-300); display:block; line-height:1; }
.chero__stat span{ font-size:var(--fs-caption); color:rgba(255,255,255,.6); }
.chero__actions{ margin-top:var(--sp-7); display:flex; gap:var(--sp-3); flex-wrap:wrap; }

.cbio{ display:grid; grid-template-columns:1.3fr 1fr; gap:clamp(32px,5vw,80px); align-items:start; }
.cbio__body p{ margin-bottom:var(--sp-4); font-size:var(--fs-body-lg); color:var(--ink-500); }
.cbio__body p:first-child::first-letter{ font-family:var(--font-display); font-size:3.4em; float:left; line-height:.8;
  padding:6px 12px 0 0; color:var(--emerald-600); font-weight:700; }
.cbio__aside{ background:var(--paper-soft); border:1px solid var(--sand); border-radius:var(--r-lg); padding:var(--sp-6); }
.cbio__aside h4{ font-family:var(--font-sans); font-size:var(--fs-caption); letter-spacing:.04em; color:var(--ink-400);
  font-weight:600; margin-bottom:var(--sp-4); }
.cbio__list{ display:flex; flex-direction:column; }
.cbio__list li{ display:flex; justify-content:space-between; gap:16px; padding:13px 0; border-bottom:1px solid var(--sand);
  font-size:var(--fs-body-sm); }
.cbio__list li:last-child{ border-bottom:0; }
.cbio__list b{ color:var(--ink-900); font-weight:600; }

.cvideo{ position:relative; aspect-ratio:16/9; border-radius:var(--r-lg); overflow:hidden; margin-top:var(--sp-7); }
.cvideo .ph{ width:100%; height:100%; border-radius:0; }
.cvideo__play{ position:absolute; inset:0; display:grid; place-items:center; z-index:2; }
.cvideo__play span{ width:78px; height:78px; border-radius:50%; background:rgba(245,239,227,.9); display:grid; place-items:center;
  box-shadow:var(--shadow-md); transition:transform var(--dur) var(--ease-out); }
.cvideo:hover .cvideo__play span{ transform:scale(1.08); }
.cvideo__play svg{ width:26px; height:26px; color:var(--emerald-600); margin-left:4px; }

/* ============================================================
   14 · BOOKING PAGE
   ============================================================ */
.booking{ display:grid; grid-template-columns:1fr 360px; gap:clamp(32px,4vw,64px); align-items:start; }
@media (max-width:1100px){ .booking{ grid-template-columns:1fr; } }

.steps{ display:flex; gap:6px; flex-wrap:wrap; margin-bottom:var(--sp-8); }
.steps__item{ display:flex; align-items:center; gap:10px; padding:8px 0; flex:1; min-width:120px; position:relative; opacity:.5; transition:opacity var(--dur); }
.steps__item.is-active{ opacity:1; }
.steps__item.is-done{ opacity:1; }
.steps__num{ width:30px; height:30px; border-radius:50%; display:grid; place-items:center; flex-shrink:0;
  font-family:var(--font-display); font-weight:700; font-size:.9rem; background:var(--paper-deep); color:var(--ink-400);
  transition:var(--dur); }
.steps__item.is-active .steps__num{ background:var(--emerald-500); color:#fff; }
.steps__item.is-done .steps__num{ background:var(--emerald-700); color:#fff; }
.steps__label{ font-size:var(--fs-caption); color:var(--ink-500); font-weight:500; }
.steps__line{ flex:1; height:1px; background:var(--sand); }

.panel{ display:none; animation:fadeUp .5s var(--ease-out) both; }
.panel.is-active{ display:block; }
@keyframes fadeUp{ from{ opacity:0; transform:translateY(12px);} to{ opacity:1; transform:none; } }
.panel h2{ margin-bottom:var(--sp-2); }
.panel__hint{ color:var(--ink-400); margin-bottom:var(--sp-6); }

/* court type cards — flat solid dark green, no texture */
.court-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:var(--sp-4); }
.court-card{ position:relative; background:var(--forest-700); color:var(--paper); border-radius:var(--r-lg);
  padding:var(--sp-6); min-height:170px; display:flex; flex-direction:column; justify-content:space-between;
  cursor:pointer; transition:transform var(--dur) var(--ease-out), box-shadow var(--dur), background var(--dur);
  box-shadow:inset 0 0 0 1.5px transparent; }
.court-card:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); }
.court-card.is-selected{ box-shadow:inset 0 0 0 2px var(--gold-500), var(--shadow-md); background:var(--forest-600); }
.court-card--hard{ background:var(--emerald-700); }
.court-card--hard.is-selected{ background:var(--emerald-600); }
.court-card__top{ display:flex; justify-content:space-between; align-items:flex-start; }
.court-card__num{ font-family:var(--font-display); font-weight:700; font-size:2.6rem; line-height:.9; color:#fff; }
.court-card__surface{ font-size:var(--fs-caption); color:rgba(255,255,255,.65); }
.court-card__name{ font-family:var(--font-display); font-size:1.25rem; color:#fff; }
.court-card__status{ display:flex; align-items:center; gap:8px; font-size:var(--fs-caption); color:rgba(255,255,255,.8); margin-top:8px; }
.dot{ width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.dot--open{ background:var(--status-open); box-shadow:0 0 0 0 rgba(47,143,91,.5); animation:pulse 2.4s infinite; }
.dot--limited{ background:var(--status-limited); }
.dot--full{ background:var(--status-full); }
@keyframes pulse{ 0%{ box-shadow:0 0 0 0 rgba(47,143,91,.45);} 70%{ box-shadow:0 0 0 9px rgba(47,143,91,0);} 100%{ box-shadow:0 0 0 0 rgba(47,143,91,0);} }

/* calendar */
.cal{ background:var(--paper-soft); border:1px solid var(--sand); border-radius:var(--r-lg); padding:var(--sp-6); max-width:440px; }
.cal__head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:var(--sp-5); }
.cal__head b{ font-family:var(--font-display); font-size:1.25rem; color:var(--ink-900); }
.cal__nav{ display:flex; gap:8px; }
.cal__nav button{ width:36px; height:36px; border-radius:var(--r-sm); display:grid; place-items:center;
  box-shadow:inset 0 0 0 1px var(--sand); transition:var(--dur); }
.cal__nav button:hover{ background:var(--emerald-500); color:#fff; box-shadow:none; }
.cal__nav svg{ width:16px; height:16px; }
.cal__grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
.cal__dow{ text-align:center; font-size:var(--fs-caption); color:var(--ink-300); padding:6px 0; font-weight:600; }
.cal__day{ aspect-ratio:1; border-radius:var(--r-sm); display:grid; place-items:center; font-size:var(--fs-body-sm);
  color:var(--ink-700); transition:var(--dur); font-variant-numeric:tabular-nums; }
.cal__day:hover:not(.is-muted):not(.is-disabled){ background:var(--emerald-50); color:var(--emerald-700); }
.cal__day.is-muted{ color:var(--ink-200); pointer-events:none; }
.cal__day.is-disabled{ color:var(--ink-200); text-decoration:line-through; pointer-events:none; }
.cal__day.is-selected{ background:var(--emerald-500); color:#fff; font-weight:600; }

/* time slots */
.slots{ display:grid; grid-template-columns:repeat(auto-fill,minmax(92px,1fr)); gap:10px; max-width:560px; }
.slot{ padding:13px 8px; border-radius:var(--r-pill); text-align:center; font-size:var(--fs-body-sm); font-weight:500;
  color:var(--ink-700); box-shadow:inset 0 0 0 1px var(--sand); transition:var(--dur); font-variant-numeric:tabular-nums; }
.slot:hover:not(.is-disabled){ box-shadow:inset 0 0 0 1.5px var(--emerald-500); color:var(--emerald-700); }
.slot.is-selected{ background:var(--emerald-500); color:#fff; box-shadow:none; }
.slot.is-disabled{ color:var(--ink-200); text-decoration:line-through; pointer-events:none; opacity:.6; }

/* form */
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-4); max-width:620px; }
.field{ display:flex; flex-direction:column; gap:7px; }
.field--full{ grid-column:1/-1; }
.field label{ font-size:var(--fs-caption); color:var(--ink-500); font-weight:600; }
.field input,.field textarea,.field select{ font-family:var(--font-sans); font-size:var(--fs-body); color:var(--ink-900);
  background:var(--paper-soft); border:1px solid var(--sand); border-radius:var(--r-sm); padding:13px 15px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5); transition:var(--dur); }
.field input:focus,.field textarea:focus,.field select:focus{ outline:none; border-color:var(--emerald-500);
  box-shadow:0 0 0 3px rgba(14,115,80,.14); }
.field textarea{ resize:vertical; min-height:96px; }

/* booking summary sidebar */
.summary{ position:sticky; top:96px; background:var(--paper-soft); border:1px solid var(--sand);
  border-radius:var(--r-lg); padding:var(--sp-6); box-shadow:var(--shadow-sm); }
.summary h3{ font-size:var(--fs-h4); font-family:var(--font-display); margin-bottom:var(--sp-5); }
.summary__row{ display:flex; justify-content:space-between; gap:16px; padding:12px 0; border-bottom:1px solid var(--sand);
  font-size:var(--fs-body-sm); }
.summary__row span{ color:var(--ink-400); }
.summary__row b{ color:var(--ink-900); font-weight:600; text-align:right; }
.summary__row.is-empty b{ color:var(--ink-200); font-weight:400; }
.summary__total{ display:flex; justify-content:space-between; align-items:baseline; margin-top:var(--sp-5); }
.summary__total span{ color:var(--ink-500); }
.summary__total b{ font-family:var(--font-display); font-size:1.9rem; color:var(--emerald-600); font-variant-numeric:tabular-nums; }
.summary .btn{ margin-top:var(--sp-5); }
.summary__note{ font-size:var(--fs-caption); color:var(--ink-300); margin-top:var(--sp-4); text-align:center; }

.panel__actions{ margin-top:var(--sp-7); display:flex; gap:var(--sp-3); }

/* confirmation */
.confirm{ text-align:center; max-width:600px; margin-inline:auto; padding-block:var(--sp-7); }
.confirm__seal{ width:96px; height:96px; margin:0 auto var(--sp-6); border-radius:50%; background:var(--emerald-50);
  display:grid; place-items:center; box-shadow:inset 0 0 0 1px var(--emerald-200); }
.confirm__seal svg{ width:42px; height:42px; color:var(--emerald-600); }
.confirm h2{ margin-bottom:var(--sp-3); }
.confirm__ticket{ margin-top:var(--sp-7); background:var(--forest-800); color:var(--paper); border-radius:var(--r-lg);
  padding:var(--sp-6); text-align:left; box-shadow:var(--shadow-md); position:relative; overflow:hidden; }
.confirm__ticket .footer__brand{ display:flex; align-items:center; gap:12px; margin-bottom:var(--sp-5); }
.confirm__ticket img{ height:48px; }
.confirm__ticket-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:var(--sp-5); }
.confirm__ticket dt{ font-size:var(--fs-caption); color:var(--gold-300); margin-bottom:4px; }
.confirm__ticket dd{ font-family:var(--font-display); font-size:1.2rem; color:#fff; }
.confirm__ticket-total{ display:flex; justify-content:space-between; align-items:baseline;
  margin-top:var(--sp-5); padding-top:var(--sp-5); border-top:1px solid rgba(184,155,106,.35); }
.confirm__ticket-total span{ font-size:var(--fs-body-sm); color:rgba(245,239,227,.7); }
.confirm__ticket-total b{ font-family:var(--font-display); font-size:1.8rem; color:var(--gold-300);
  font-variant-numeric:tabular-nums; }

/* ============================================================
   15 · NEWS PAGE
   ============================================================ */
.feature{ display:grid; grid-template-columns:1.15fr 1fr; gap:clamp(28px,4vw,64px); align-items:center; }
.feature__media{ aspect-ratio:4/3; border-radius:var(--r-lg); overflow:hidden; }
.feature__media .ph{ width:100%; height:100%; border-radius:0; }
.feature__tag{ display:inline-block; background:var(--clay-500); color:#fff; font-size:var(--fs-caption); font-weight:600;
  padding:6px 14px; border-radius:var(--r-pill); margin-bottom:var(--sp-4); }
.feature h2{ font-size:var(--fs-display-2); line-height:1; margin-bottom:var(--sp-4); }
.feature__meta{ display:flex; gap:14px; font-size:var(--fs-caption); color:var(--ink-300); margin-bottom:var(--sp-4); }
.feature__date{ color:var(--clay-600); font-weight:600; }

/* ============================================================
   16 · GALLERY PAGE
   ============================================================ */
.filters{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:var(--sp-8); }
.filter{ padding:10px 20px; border-radius:var(--r-pill); font-size:var(--fs-body-sm); font-weight:500; color:var(--ink-500);
  box-shadow:inset 0 0 0 1px var(--sand); transition:var(--dur); }
.filter:hover{ color:var(--emerald-700); box-shadow:inset 0 0 0 1.5px var(--emerald-300); }
.filter.is-active{ background:var(--forest-700); color:var(--paper); box-shadow:none; }

.masonry{ columns:3; column-gap:var(--sp-5); }
.masonry__item{ break-inside:avoid; margin-bottom:var(--sp-5); border-radius:var(--r-lg); overflow:hidden; cursor:pointer;
  position:relative; transition:transform var(--dur) var(--ease-out); }
.masonry__item:hover{ transform:scale(.99); }
.masonry__item .ph{ width:100%; border-radius:0; transition:transform var(--dur-slow) var(--ease-spring); }
.masonry__item:hover .ph{ transform:scale(1.04); }
.masonry__cap{ position:absolute; left:0; right:0; bottom:0; padding:18px; z-index:2; color:#fff;
  background:linear-gradient(to top, rgba(14,24,19,.78), rgba(14,24,19,0)); opacity:0; transition:var(--dur); }
.masonry__item:hover .masonry__cap{ opacity:1; }
.masonry__cap b{ font-family:var(--font-display); font-size:1.1rem; display:block; }
.masonry__cap span{ font-size:var(--fs-caption); color:var(--gold-300); }
.masonry__item.is-hidden{ display:none; }

/* lightbox */
.lightbox{ position:fixed; inset:0; z-index:200; background:rgba(14,24,19,.92); display:none;
  align-items:center; justify-content:center; padding:var(--gutter); }
.lightbox.is-open{ display:flex; animation:pageIn var(--dur) ease both; }
.lightbox__inner{ max-width:1000px; width:100%; }
.lightbox__media{ aspect-ratio:3/2; border-radius:var(--r-lg); }
.lightbox__cap{ color:var(--paper); margin-top:var(--sp-4); display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.lightbox__cap b{ font-family:var(--font-display); font-size:1.25rem; color:#fff; }
.lightbox__close{ position:absolute; top:24px; right:32px; width:48px; height:48px; border-radius:50%; display:grid; place-items:center;
  box-shadow:inset 0 0 0 1px rgba(245,239,227,.3); color:var(--paper); transition:var(--dur); }
.lightbox__close:hover{ background:rgba(245,239,227,.12); }
.lightbox__nav{ position:absolute; top:50%; transform:translateY(-50%); width:52px; height:52px; border-radius:50%;
  display:grid; place-items:center; color:var(--paper); box-shadow:inset 0 0 0 1px rgba(245,239,227,.25); transition:var(--dur); }
.lightbox__nav:hover{ background:rgba(245,239,227,.12); }
.lightbox__nav--prev{ left:24px; } .lightbox__nav--next{ right:24px; }
.lightbox__nav svg,.lightbox__close svg{ width:22px; height:22px; }

/* ============================================================
   17 · ABOUT PAGE
   ============================================================ */
.story{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,80px); align-items:center; }
.story--rev .story__media{ order:2; }
.story__media{ aspect-ratio:4/5; border-radius:var(--r-lg); overflow:hidden; }
.story__media .ph{ width:100%; height:100%; border-radius:0; }
.story__year{ font-family:var(--font-display); font-weight:800; font-size:clamp(3.5rem,8vw,6rem); color:var(--emerald-100);
  line-height:.8; letter-spacing:-.03em; margin-bottom:var(--sp-4); }
.story p{ font-size:var(--fs-body-lg); color:var(--ink-500); margin-top:var(--sp-4); }

.infra{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--sp-5); }
.infra__item{ background:var(--paper-soft); border:1px solid var(--sand); border-radius:var(--r-lg); padding:var(--sp-6);
  transition:var(--dur); }
.infra__item:hover{ box-shadow:var(--shadow-md); transform:translateY(-3px); }
.infra__item svg{ width:30px; height:30px; color:var(--emerald-500); stroke-width:1.4; margin-bottom:var(--sp-4); }
.infra__item h3{ font-size:var(--fs-h4); font-family:var(--font-display); margin-bottom:var(--sp-2); }
.infra__item p{ font-size:var(--fs-body-sm); color:var(--ink-400); }

/* grand slam locker rooms */
.slam{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--sp-4); }
.slam__card{ position:relative; aspect-ratio:3/4; border-radius:var(--r-lg); overflow:hidden; display:flex; flex-direction:column;
  justify-content:flex-end; color:#fff; padding:var(--sp-5); }
.slam__card .ph{ position:absolute; inset:0; border-radius:0; }
.slam__card::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(14,24,19,.85), rgba(14,24,19,.1)); z-index:1; }
.slam__card > *{ position:relative; z-index:2; }
.slam__card b{ font-family:var(--font-display); font-size:1.4rem; color:#fff; }
.slam__card span{ font-size:var(--fs-caption); color:var(--gold-300); }

/* Eclipse — UV night tennis (dramatic dark electric) */
.eclipse{ position:relative; background:radial-gradient(ellipse at 50% 0%, #1a0f3a 0%, #0a0820 45%, #05030f 100%);
  color:#E8E4FF; overflow:hidden; padding-block:clamp(80px,12vw,180px); }
.eclipse__glow{ position:absolute; left:50%; top:-10%; transform:translateX(-50%); width:90vw; height:60vh;
  background:radial-gradient(ellipse at center, rgba(124,77,255,.35), rgba(57,255,170,.08) 45%, transparent 70%);
  filter:blur(30px); pointer-events:none; }
.eclipse__inner{ position:relative; z-index:2; text-align:center; max-width:820px; margin-inline:auto; }
.eclipse__inner .label{ justify-content:center; color:#7CFFB0; }
.eclipse__inner .label::before{ background:#7CFFB0; box-shadow:0 0 8px #7CFFB0; }
.eclipse h2{ color:#fff; font-size:var(--fs-display-1); line-height:.96; letter-spacing:-.02em;
  text-shadow:0 0 40px rgba(124,77,255,.5); }
.eclipse h2 em{ font-style:italic; color:#39FFAA; text-shadow:0 0 30px rgba(57,255,170,.6); }
.eclipse .lead{ color:rgba(232,228,255,.78); margin-top:var(--sp-5); margin-inline:auto; }
.eclipse__tags{ margin-top:var(--sp-7); display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.eclipse__tag{ padding:9px 18px; border-radius:var(--r-pill); font-size:var(--fs-body-sm);
  box-shadow:inset 0 0 0 1px rgba(124,77,255,.5); color:#C9BCFF; }
.eclipse .btn{ margin-top:var(--sp-7); background:#39FFAA; color:#05030f; }
.eclipse .btn:hover{ background:#7CFFB0; }

/* values row */
.values{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--sp-7); }
.value__num{ font-family:var(--font-display); font-size:1rem; color:var(--clay-500); margin-bottom:var(--sp-3); }
.value h3{ font-size:var(--fs-h3); margin-bottom:var(--sp-3); }
.value p{ font-size:var(--fs-body-sm); color:var(--ink-400); }

/* generic two-up intro */
.split-intro{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(32px,5vw,90px); align-items:start; }
.split-intro__title{ font-size:var(--fs-h1); line-height:1.04; font-weight:700; }
.split-intro__title em{ font-style:italic; font-weight:500; color:var(--emerald-500); }

/* pull stat strip (about) */
.pullstats{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--sp-5); text-align:center; }
.pullstat b{ font-family:var(--font-display); font-weight:700; font-size:clamp(2.5rem,5vw,4rem); color:var(--emerald-600);
  display:block; line-height:1; letter-spacing:-.02em; }
.pullstat span{ font-size:var(--fs-body-sm); color:var(--ink-400); margin-top:8px; display:block; }

/* ============================================================
   18 · RESPONSIVE
   ============================================================ */
@media (max-width:1200px){
  .hero__inner{ grid-template-columns:1fr; gap:48px; }
  .hero__media{ order:-1; min-height:360px; }
  .footer__grid{ grid-template-columns:1fr 1fr; gap:var(--sp-6); }
  .feature{ grid-template-columns:1fr; }
  .chero__grid{ grid-template-columns:1fr; }
  .cbio{ grid-template-columns:1fr; }
  .split-intro{ grid-template-columns:1fr; gap:var(--sp-6); }
}
@media (max-width:980px){
  .coach-row{ grid-template-columns:1fr; }
  .coaches-grid{ grid-template-columns:repeat(2,1fr); }
  .news-grid{ grid-template-columns:repeat(2,1fr); }
  .services{ grid-template-columns:repeat(2,1fr); }
  .service:nth-child(3n){ border-right:1px solid var(--sand); }
  .service:nth-child(2n){ border-right:0; }
  .infra{ grid-template-columns:repeat(2,1fr); }
  .slam{ grid-template-columns:repeat(2,1fr); }
  .values{ grid-template-columns:1fr; gap:var(--sp-6); }
  .masonry{ columns:2; }
  .pullstats{ grid-template-columns:repeat(2,1fr); gap:var(--sp-7); }
  .story{ grid-template-columns:1fr; gap:var(--sp-6); }
  .story--rev .story__media{ order:0; }
}
@media (max-width:768px){
  .nav__links,.nav__phone{ display:none; }
  .nav__cta .btn{ display:none; }
  .nav__burger{ display:flex; }
  .nav__inner{ padding:12px var(--gutter); }
  .brand__name small{ display:none; }
  .stats-bar__grid{ grid-template-columns:repeat(2,1fr); }
  .stats-bar__cell:nth-child(2n)::before{ display:none; }
  .stats-bar__cell:nth-child(n+3){ border-top:1px solid var(--sand); }
  .court-grid{ grid-template-columns:1fr; }
  .form-grid{ grid-template-columns:1fr; }
  .confirm__ticket-grid{ grid-template-columns:1fr; }
  .footer__grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:560px){
  .coaches-grid{ grid-template-columns:1fr; }
  .news-grid{ grid-template-columns:1fr; }
  .services{ grid-template-columns:1fr; }
  .service{ border-right:0 !important; }
  .infra,.slam{ grid-template-columns:1fr; }
  .masonry{ columns:1; }
  .pullstats{ grid-template-columns:1fr; }
  .hero__stats{ gap:16px; }
  .footer__grid{ grid-template-columns:1fr; }
}
