.coaching-page { --coaching-blue: #062f60; }

.coaching-page .coaching-main > section,
.coaching-page .coaching-footer { border-top: 0; }

.coaching-hero { padding-top: 86px; padding-bottom: 70px; }

.coaching-hero-frame {
  position: relative;
  height: min(86.4vh, 912px);
  min-height: 516px;
  overflow: hidden;
  border-radius: 22px;
  background:
    linear-gradient(90deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.44) 38%, rgba(0,0,0,.08) 72%, rgba(0,0,0,.04) 100%),
    url("./assets/images/patrick-serena-coaching-hero-edited.webp") 50% 50% / cover no-repeat;
}

.coaching-court { display: none; }
.coaching-court::before,
.coaching-court::after,
.coaching-court span { content: ""; position: absolute; background: rgba(255,255,255,.28); }
.coaching-court::before { top: 50%; left: 0; width: 100%; height: 1px; }
.coaching-court::after { top: 0; left: 62%; width: 1px; height: 100%; }
.coaching-court span:nth-child(1) { top: 18%; left: 40%; width: 60%; height: 1px; }
.coaching-court span:nth-child(2) { bottom: 18%; left: 40%; width: 60%; height: 1px; }
.coaching-court span:nth-child(3) { top: 0; right: 12%; width: 1px; height: 100%; }

.coaching-kicker {
  position: absolute;
  top: 42px;
  left: 42px;
  margin: 0;
  color: rgba(255,255,255,.65);
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
}

.coaching-hero-tagline {
  position: absolute;
  left: 42px;
  bottom: 42px;
  max-width: 900px;
  margin: 0;
  font-size: var(--type-hero);
  font-weight: 900;
  line-height: .9;
  letter-spacing: -.055em;
  text-transform: uppercase;
}

.coaching-method,
.coaching-roster,
.coaching-legacy { padding-top: 90px; padding-bottom: 100px; }

.coaching-method-grid {
  display: grid;
  grid-template-columns: minmax(300px, 1fr) minmax(360px, 1fr);
  gap: clamp(50px, 8vw, 120px);
  align-items: start;
}

.coaching-method h2,
.coaching-roster > h2,
.coaching-legacy > h2 {
  margin: 0;
  font-size: var(--type-section-title);
  font-weight: 850;
  line-height: .92;
  letter-spacing: -.045em;
  text-transform: uppercase;
}

.coaching-method-copy { max-width: 620px; }
.coaching-method-copy p { margin: 0 0 24px; font-family: var(--font-body); font-size: 18px; line-height: 1.48; }

.coaching-overline {
  margin: 0 0 10px;
  color: var(--muted);
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
}

.roster-viewport {
  width: 100%;
  margin-top: 54px;
  padding-top: 18px;
  overflow-x: auto;
  scrollbar-width: none;
  scroll-snap-type: x mandatory;
}
.roster-viewport::-webkit-scrollbar { display: none; }
.roster-track { display: flex; gap: 8px; width: max-content; }

.roster-track .player-card {
  flex: 0 0 clamp(320px, 31vw, 420px);
  width: clamp(320px, 31vw, 420px);
}

.player-card--grigor .player-visual {
  background: radial-gradient(circle at 52% 26%, #a4a4a4 0 8%, transparent 8.5%), linear-gradient(135deg, #161616, #5d5d5d 58%, #121212);
}

.player-card--simona .player-visual {
  background: radial-gradient(circle at 48% 25%, #ababab 0 8%, transparent 8.5%), linear-gradient(145deg, #4f4f4f, #111 72%);
}

.player-card--alexei .player-visual {
  background: radial-gradient(circle at 54% 26%, #9d9d9d 0 8%, transparent 8.5%), linear-gradient(120deg, #141414, #565656 56%, #101010);
}

.player-card--jeremy .player-visual,
.player-card--yanina .player-visual,
.player-card--marcos .player-visual {
  background: radial-gradient(circle at 52% 27%, #a4a4a4 0 8%, transparent 8.5%), linear-gradient(135deg, #171717, #565656 58%, #101010);
}

.player-card--anastasia .player-visual,
.player-card--aravane .player-visual {
  background: radial-gradient(circle at 48% 25%, #ababab 0 8%, transparent 8.5%), linear-gradient(145deg, #4f4f4f, #111 72%);
}

.player-card--anastasia .player-meta h3 {
  font-size: clamp(1.35rem, 2.2vw, 2rem);
}

.roster-card {
  display: grid;
  flex: 0 0 clamp(390px, 37vw, 520px);
  min-height: 610px;
  grid-template-rows: 300px 1fr;
  overflow: hidden;
  scroll-snap-align: start;
  background: #0a0a0a;
}

.roster-portrait {
  position: relative;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  padding: 24px;
  background: linear-gradient(145deg, #0b437d, #07121e 80%);
}
.roster-card:nth-child(even) .roster-portrait { background: linear-gradient(145deg, #121820, var(--coaching-blue)); }
.roster-portrait::after { content: ""; position: absolute; right: -90px; top: -100px; width: 320px; height: 320px; border: 1px solid rgba(255,255,255,.14); border-radius: 50%; }
.roster-portrait span { color: rgba(255,255,255,.12); font: 900 clamp(7rem, 12vw, 11rem)/.72 var(--font-display); letter-spacing: -.1em; }
.roster-portrait b { position: absolute; z-index: 2; top: 22px; right: 22px; padding: 9px 14px; border: 1px solid rgba(255,255,255,.5); border-radius: 999px; font: 500 12px/1 var(--font-body); text-transform: uppercase; }

.roster-copy { padding: 28px; }
.roster-copy h3 { margin: 0 0 20px; font-size: var(--type-card-title); font-weight: 800; line-height: .92; text-transform: uppercase; }
.roster-copy p { margin: 0; font-family: var(--font-body); font-size: 16px; font-weight: 400; line-height: 1.5; }

.roster-controls {
  display: grid;
  grid-template-columns: 36px minmax(120px, 1fr) 36px;
  gap: 18px;
  align-items: center;
  max-width: 570px;
  margin-top: 28px;
}
.roster-arrow { display: grid; width: 36px; height: 36px; padding: 0; place-items: center; border: 1px solid rgba(255,255,255,.65); border-radius: 50%; color: var(--white); background: transparent; cursor: pointer; }
.roster-progress { height: 1px; overflow: hidden; background: #3d3d3b; }
.roster-progress span { display: block; width: 34%; height: 100%; background: var(--white); }

.legacy-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; margin-top: 58px; }
.legacy-grid article { min-height: 250px; padding: clamp(26px, 3vw, 38px); background: var(--blue); }
.legacy-grid strong { display: block; margin-bottom: 16px; font: 850 var(--type-number)/.9 var(--font-display); letter-spacing: -.055em; }
.legacy-grid .stat-label { margin: 0 0 18px; font-size: 16px; font-weight: 850; line-height: 1.1; text-transform: uppercase; }
.legacy-grid p { max-width: 340px; margin: 0; font-family: var(--font-body); font-size: 16px; font-weight: 400; line-height: 1.45; }

.coaching-partners { padding-top: 70px; border-top: 0; }
.coaching-contact { padding-top: 100px; padding-bottom: 70px; }
.coaching-contact .contact-heading p { max-width: 760px; }
.coaching-footer { max-width: 1250px; margin-top: 20px; }

@media (max-width: 980px) {
  .coaching-method-grid { grid-template-columns: 1fr; gap: 44px; }
  .coaching-method-copy { max-width: 760px; }
  .legacy-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px) {
  .coaching-hero { padding-top: 76px; padding-bottom: 42px; }
  .coaching-hero-frame { height: 72vh; min-height: 540px; border-radius: 14px; }
  .coaching-kicker { top: 24px; left: 20px; }
  .coaching-hero-tagline { left: 20px; bottom: 24px; font-size: clamp(36px, 10vw, 46px); }
  .coaching-method, .coaching-roster, .coaching-legacy { padding-top: 36px; padding-bottom: 36px; }
  .coaching-method-copy p { font-size: 16px; }
  .roster-viewport { margin-top: 28px; }
  .roster-track .player-card { flex-basis: calc(100vw - 54px); width: calc(100vw - 54px); }
  /* Compact two-column track record on phones (same layout as the homepage key figures). */
  .legacy-grid { grid-template-columns: 1fr 1fr; gap: 3px; margin-top: 28px; }
  .legacy-grid article { min-height: 0; padding: 20px 16px 22px; }
  .legacy-grid article:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .legacy-grid strong { margin-bottom: 10px; font-size: 40px; }
  .legacy-grid .stat-label { margin-bottom: 8px; font-size: 12.5px; }
  .legacy-grid p { font-size: 12px; line-height: 1.4; }
  .coaching-contact { padding-top: 36px; }
}

.player-card--simona .player-visual,
.player-card--grigor .player-visual,
.player-card--jeremy .player-visual,
.player-card--anastasia .player-visual,
.player-card--yanina .player-visual,
.player-card--aravane .player-visual,
.player-card--marcos .player-visual {
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.player-card--simona .player-visual { background-image: url("./assets/images/simona-halep-player.webp"); }
.player-card--grigor .player-visual { background-image: url("./assets/images/grigor-dimitrov-player.webp"); }
.player-card--jeremy .player-visual { background-image: url("./assets/images/jeremy-chardy-player.webp"); }
.player-card--anastasia .player-visual { background-image: url("./assets/images/anastasia-pavlyuchenkova-player.webp"); }
.player-card--yanina .player-visual { background-image: url("./assets/images/yanina-wickmayer-player.webp"); }
.player-card--aravane .player-visual { background-image: url("./assets/images/aravane-rezai-player.webp"); }
.player-card--marcos .player-visual { background-image: url("./assets/images/marcos-baghdatis-player.webp"); }

.player-card--alexei .player-visual {
  background: url("./assets/images/alexei-popyrin-player.jpg") center / cover no-repeat;
}

.player-card--alexei .player-monogram { display: none; }
