/* ==========================================================================
   COACHING: BROWSE
   ========================================================================== */
:root { --cb-blue:#18b8f2; --cb-panel:rgba(8,22,34,.96); --cb-border:rgba(127,162,187,.25); --cb-muted:#a4b0bc; }
.coaching-browse { min-height:70vh; padding:clamp(25px,2.2vw,38px) 0 54px; color:#edf4f8; background:radial-gradient(circle at 80% 10%,rgba(17,119,168,.09),transparent 30%),linear-gradient(135deg,#06111b,#091725 55%,#050e17); }
.coaching-browse .container { width:min(91%,1740px); max-width:none; display:grid; gap:16px; }
.coaching-browse-heading p,.coaching-panel-label { color:var(--cb-blue); font-family:var(--ff-oxanium); font-size:1.35rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.coaching-browse-heading h1 { width:max-content; max-width:100%; margin-top:7px; color:#fff; font-family:var(--ff-oxanium); font-size:clamp(4rem,3vw,5rem); font-weight:800; letter-spacing:.01em; line-height:1; white-space:nowrap; text-transform:uppercase; }
.coaching-heading-accent { display:inline; color:var(--cb-blue); }
.coaching-browse-heading > div { width:115px; height:2px; margin:9px 0 11px; background:linear-gradient(90deg,var(--cb-blue),transparent); }
.coaching-browse-heading small { color:#bdc7d0; font-family:var(--ff-oxanium); font-size:1.45rem; font-weight:500; }
.coaching-select-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-top:8px; }
.coaching-select-card { --browse-accent:var(--cb-blue); position:relative; display:grid; grid-template-rows:176px minmax(0,1fr); min-height:310px; overflow:hidden; color:#fff; background:linear-gradient(180deg,#0c1d2b,#07131e); border:1px solid var(--cb-border); border-radius:10px; }
.coaching-select-card.game-bg-card::before,.coaching-select-card.game-bg-card::after,.coaching-game-showcase.game-bg-card::before,.coaching-game-showcase.game-bg-card::after { display:none; }
.coaching-select-card:is(:hover,:focus),.coaching-select-card.is-selected { border-color:var(--browse-accent); box-shadow:0 0 0 1px var(--browse-accent),0 15px 35px rgba(0,0,0,.22); transform:translateY(-2px); }
.coaching-select-card__image { display:block; width:100%; height:176px; object-fit:cover; object-position:center top; background:#0a1b28; }
.coaching-select-card__image--placeholder { background:linear-gradient(135deg,#123149,#06131f); }
.coaching-select-card__badges { position:absolute; top:14px; right:14px; display:flex; gap:6px; }
.coaching-select-card__badges b { padding:6px 9px; color:#e8f6fc; background:rgba(4,14,22,.86); border:1px solid color-mix(in srgb,var(--browse-accent) 65%,transparent); border-radius:5px; font-family:var(--ff-oxanium); font-size:1.15rem; text-transform:uppercase; }
.coaching-select-card__body { position:relative; display:grid; align-content:start; gap:8px; padding:25px 20px 18px; background:linear-gradient(180deg,#091725,#07131e); }
.coaching-select-card__icon { position:absolute; top:-32px; left:20px; display:grid; place-items:center; width:55px; height:55px; color:#e8f7fd; background:#0b1d2a; border:1px solid var(--browse-accent); border-radius:8px; font-family:var(--ff-oxanium); font-size:1.7rem; font-weight:800; text-transform:uppercase; }
.coaching-select-card__icon img { width:100%; height:100%; object-fit:contain; }
.coaching-select-card__body > strong { margin-top:11px; font-family:var(--ff-oxanium); font-size:2rem; font-weight:800; line-height:1.1; }
.coaching-select-card__body > small { min-height:42px; color:#b6c1cb; font-family:var(--ff-oxanium); font-size:1.25rem; line-height:1.45; }
.coaching-select-card__support { display:flex; gap:8px; margin-top:4px; color:var(--browse-accent); font-size:1.12rem; }
.coaching-select-card__support i { color:#6f7e8c; }
.coaching-mode-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.coaching-mode-card,.coaching-how-panel,.coaching-directory,.coaching-path-grid > a { background:linear-gradient(145deg,rgba(10,25,38,.97),rgba(7,17,27,.97)); border:1px solid var(--cb-border); border-radius:9px; }
.coaching-mode-card { display:grid; grid-template-columns:72px minmax(0,1fr) minmax(220px,.9fr); align-items:center; gap:22px; padding:20px 24px; }
.coaching-mode-card__icon,.coaching-how-grid article > span,.coaching-path-grid > a > span { display:grid; place-items:center; color:var(--cb-blue); background:rgba(22,183,244,.06); border:1px solid rgba(22,183,244,.5); border-radius:8px; }
.coaching-mode-card__icon { width:64px; height:64px; }
.coaching-mode-card__icon ion-icon { width:34px; height:34px; }
.coaching-mode-card h2 { color:#fff; font-family:var(--ff-oxanium); font-size:1.9rem; font-weight:800; text-transform:uppercase; }
.coaching-mode-card strong { color:var(--cb-blue); font-size:1.28rem; }
.coaching-mode-card p,.coaching-mode-card li { color:var(--cb-muted); font-size:1.17rem; line-height:1.55; }
.coaching-mode-card ul { display:grid; gap:8px; padding-left:22px; border-left:1px solid var(--cb-border); }
.coaching-mode-card li::before { content:'✓'; margin-right:9px; color:var(--cb-blue); }
.coaching-how-panel { padding:15px 22px 20px; }
.coaching-how-grid { display:grid; grid-template-columns:repeat(4,1fr); margin-top:14px; }
.coaching-how-grid article { position:relative; display:grid; grid-template-columns:54px 34px 1fr; align-items:center; gap:10px; padding:0 24px; border-right:1px solid var(--cb-border); }
.coaching-how-grid article:first-child { padding-left:0; }.coaching-how-grid article:last-child { border:0; }
.coaching-how-grid article > span { width:52px; height:52px; border-radius:50%; }.coaching-how-grid ion-icon { width:28px; height:28px; }
.coaching-how-grid b { align-self:start; color:var(--cb-blue); font-size:1.2rem; }
.coaching-how-grid h3 { color:#f0f5f8; font-family:var(--ff-oxanium); font-size:1.55rem; font-weight:800; text-transform:uppercase; }
.coaching-how-grid p { color:var(--cb-muted); font-size:1.12rem; line-height:1.5; }
.coaching-browse-tagline { color:#8e9baa; font-size:1.4rem; text-align:center; }.coaching-browse-tagline i { margin:0 11px; }.coaching-browse-tagline span { color:var(--cb-blue); }
.coaching-browse-empty { grid-column:1/-1; padding:35px; color:var(--cb-muted); border:1px dashed var(--cb-border); text-align:center; }

/* Selected game and coach directory */
.coaching-browse--coaches { padding-top:16px; }
.coaching-game-nav { display:flex; align-items:center; gap:clamp(18px,4vw,55px); min-height:52px; overflow-x:auto; color:#acb8c3; text-transform:uppercase; }
.coaching-game-nav a { flex:0 0 auto; color:#aeb9c3; font-size:1.05rem; font-weight:800; }.coaching-game-nav a.is-active { color:#fff; border-bottom:3px solid var(--cb-blue); }.coaching-game-nav strong { margin-right:auto; color:#fff; font-family:var(--ff-oxanium); font-size:1.45rem; }
.coaching-browse-notice { padding:13px 16px; color:#dff6ff; background:rgba(22,183,244,.1); border:1px solid rgba(22,183,244,.35); }
.coaching-game-showcase { position:relative; min-height:294px; display:flex; align-items:center; overflow:hidden; padding:28px 34px; background:linear-gradient(90deg,rgba(5,17,27,.98) 0%,rgba(5,17,27,.82) 48%,rgba(5,17,27,.12) 100%),var(--browse-image,var(--game-bg-image)); background-position:center; background-size:cover; border:1px solid var(--cb-border); border-radius:9px; }
.coaching-game-showcase > div { max-width:650px; }.coaching-game-showcase p { color:#d6dfe6; font-size:1.2rem; }.coaching-game-showcase h1 { margin:7px 0; color:#fff; font-family:var(--ff-oxanium); font-size:clamp(2.8rem,3.4vw,4.1rem); text-transform:uppercase; }.coaching-game-showcase small { color:#c0cad3; font-size:1.18rem; line-height:1.55; }
.coaching-game-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }.coaching-game-actions a { min-width:170px; padding:13px 18px; color:#03131c; background:var(--cb-blue); border:1px solid var(--cb-blue); font-weight:800; text-align:center; text-transform:uppercase; }.coaching-game-actions a:nth-child(2) { color:#edf5f9; background:rgba(4,14,23,.55); }.coaching-game-actions a:last-child { min-width:auto; color:var(--cb-blue); background:transparent; border-color:transparent; }
.coaching-path-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }.coaching-path-grid > a { display:grid; grid-template-columns:55px 1fr auto; align-items:center; gap:14px; padding:17px 20px; color:#fff; }.coaching-path-grid > a > span { width:52px;height:52px;}.coaching-path-grid ion-icon { width:28px;height:28px;}.coaching-path-grid strong { display:block; font-family:var(--ff-oxanium); font-size:1.25rem; text-transform:uppercase; }.coaching-path-grid small { color:var(--cb-muted); font-size:1.02rem; line-height:1.45; }.coaching-path-grid b { color:#b9c6cf; font-size:2rem; }
.coaching-directory { padding:16px; scroll-margin-top:calc(var(--header-offset) + 18px); }.coaching-directory > header { display:flex; justify-content:space-between; align-items:center; margin:0 4px 14px; }.coaching-directory h2 { color:#fff; font-family:var(--ff-oxanium); font-size:2rem; text-transform:uppercase; }.coaching-directory header p { color:#afbac4; font-size:1rem; text-transform:uppercase; }.coaching-directory header p strong { color:var(--cb-blue); }.coaching-directory header p i { display:inline-block; height:16px; margin:0 12px; border-left:1px solid var(--cb-border); }
.coaching-directory-filters { display:grid; grid-template-columns:repeat(4,minmax(120px,1fr)) auto auto; gap:10px; padding:12px; background:rgba(255,255,255,.025); border:1px solid var(--cb-border); border-radius:7px; }.coaching-directory-filters label { display:grid; gap:5px; }.coaching-directory-filters label > span { color:#9ba9b5; font-size:.92rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.coaching-directory-filters :is(input,select) { width:100%; min-height:39px; padding:0 11px; color:#e8f0f5; background:#091724; border:1px solid var(--cb-border); border-radius:4px; }.coaching-directory-filters button,.coaching-directory-filters > a { align-self:end; display:grid; place-items:center; min-height:39px; padding:0 14px; color:#03131c; background:var(--cb-blue); border:1px solid var(--cb-blue); border-radius:4px; font-weight:800; cursor:pointer; }.coaching-directory-filters > a { color:#dfe7ed;background:transparent;border-color:var(--cb-border); }
.coaching-coach-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:12px; }.coaching-coach-card { overflow:hidden; background:linear-gradient(145deg,#0b2131,#071621); border:1px solid rgba(22,183,244,.35); border-radius:7px; }.coaching-coach-card__top { display:grid; grid-template-columns:70px 1fr auto; gap:14px; padding:14px; }.coaching-coach-avatar { display:grid; place-items:center; width:70px;height:70px; overflow:hidden; color:var(--cb-blue); border:1px solid var(--cb-blue);border-radius:7px;font-family:var(--ff-oxanium);font-size:3rem;font-weight:800;}.coaching-coach-avatar img{width:100%;height:100%;object-fit:cover}.coaching-coach-card h3{color:#fff;font-family:var(--ff-oxanium);font-size:1.65rem;text-transform:uppercase}.coaching-coach-card__top strong{color:#e7edf2;font-size:1.08rem}.coaching-coach-card__top p{margin-top:7px;color:var(--cb-muted);font-size:.97rem}.coaching-coach-card__top>span{color:#6fe7ff}.coaching-coach-card footer{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:12px;padding:9px 12px;background:rgba(2,12,20,.45);border-top:1px solid var(--cb-border)}.coaching-coach-card footer>strong{color:var(--cb-blue);font-size:1.3rem}.coaching-coach-card footer small{color:#9aa8b5;font-size:.88rem}.coaching-coach-card footer>span{color:#f4dd61;font-size:1rem}.coaching-coach-card footer .coach-card-available{color:#43dc83;font-size:.88rem;text-transform:uppercase}.coaching-coach-card footer a{padding:10px 16px;color:#03131c;background:var(--cb-blue);font-weight:800;text-align:center;text-transform:uppercase}
.coaching-back-link { color:var(--cb-blue);font-size:1.1rem;font-weight:800;text-transform:uppercase; }

@media(max-width:1100px){.coaching-select-grid{grid-template-columns:repeat(2,1fr)}.coaching-mode-card{grid-template-columns:65px 1fr}.coaching-mode-card ul{grid-column:1/-1;border-left:0}.coaching-how-grid{grid-template-columns:repeat(2,1fr);gap:18px}.coaching-how-grid article:nth-child(2){border-right:0}.coaching-path-grid,.coaching-coach-grid{grid-template-columns:1fr}.coaching-directory-filters{grid-template-columns:repeat(2,1fr)} }
@media(max-width:680px){.coaching-select-grid,.coaching-mode-grid,.coaching-how-grid{grid-template-columns:1fr}.coaching-select-card{min-height:290px}.coaching-mode-card{grid-template-columns:55px 1fr;padding:17px}.coaching-how-grid article{padding:12px 0;border-right:0;border-bottom:1px solid var(--cb-border)}.coaching-game-nav strong{display:none}.coaching-game-showcase{padding:24px 18px}.coaching-game-actions{flex-direction:column}.coaching-game-actions a{width:100%}.coaching-path-grid> a{padding:14px}.coaching-directory>header{align-items:flex-start;flex-direction:column;gap:6px}.coaching-directory-filters{grid-template-columns:1fr}.coaching-coach-card footer{grid-template-columns:repeat(2,1fr)}.coaching-coach-card footer a{grid-column:1/-1}.coaching-browse-tagline{font-size:1.15rem}}

/* Reference-scale typography for the selected-game directory */
.coaching-browse-heading h1 { font-size:clamp(4rem,2.5vw,4.5rem); }
.coaching-game-showcase p { font-size:1.35rem; }
.coaching-game-showcase h1 { font-size:clamp(3.6rem,3vw,4.2rem); font-weight:800; }
.coaching-game-showcase small { font-size:1.32rem; }
.coaching-path-grid strong { font-size:1.45rem; font-weight:800; }
.coaching-path-grid small { font-size:1.15rem; }
.coaching-directory h2 { font-size:2.35rem; font-weight:800; }
.coaching-directory header p { font-size:1.12rem; }
.coaching-coach-card h3 { font-size:1.9rem; font-weight:800; }
.coaching-coach-card__top strong { font-size:1.2rem; }
.coaching-coach-card__top p { font-size:1.08rem; }
.coaching-coach-card footer > strong { font-size:1.5rem; }
.coaching-coach-card footer small { font-size:.98rem; }
.coaching-coach-card footer > span { font-size:1.1rem; }
.coaching-coach-card footer .coach-card-available { font-size:.98rem; }
.coaching-coach-card footer a { padding:11px 18px; font-size:1.08rem; }

@media(max-width:680px){
  .coaching-browse .container{width:min(94%,1740px)}
  .coaching-browse-heading h1{width:auto;font-size:3.6rem;white-space:normal}
  .coaching-select-card{grid-template-rows:170px minmax(0,1fr)}
  .coaching-select-card__image{height:170px}
  .coaching-game-showcase h1{font-size:3.2rem}
}

/* Keep every coaching icon optically centred inside its control. */
.coaching-browse :is(
  .coaching-select-card__icon,
  .coaching-mode-card__icon,
  .coaching-how-grid article > span,
  .coaching-path-grid > a > span,
  .coaching-coach-avatar
) {
  align-items: center;
  justify-items: center;
  line-height: 1;
  text-align: center;
}

.coaching-browse :is(
  .coaching-mode-card__icon,
  .coaching-how-grid article > span,
  .coaching-path-grid > a > span
) ion-icon {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  margin: 0;
  line-height: 1;
}

.coaching-browse :is(
  .coaching-mode-card__icon,
  .coaching-how-grid article > span,
  .coaching-path-grid > a > span
) :is(svg, .ion-icon-fallback) {
  display: block;
  width: 100%;
  height: 100%;
  margin: auto;
}

.coaching-select-card__icon img,
.coaching-coach-avatar img {
  display: block;
  margin: auto;
  object-position: center;
}

/* ==========================================================================
   COACHING: PROFILE
   ========================================================================== */
:root {
  --coach-blue: #19aff0;
  --coach-blue-soft: rgba(25, 175, 240, .13);
  --coach-panel: rgba(11, 23, 34, .94);
  --coach-border: rgba(143, 171, 194, .25);
  --coach-muted: #9eabb9;
}

.coach-showcase,
.coach-booking-page {
  min-height: 70vh;
  padding: clamp(28px, 4vw, 54px) 0 70px;
  color: #eef5fb;
  background:
    radial-gradient(circle at 54% 12%, rgba(15, 118, 171, .13), transparent 31%),
    linear-gradient(135deg, #07111a, #091724 52%, #06101a);
}

.coach-showcase__layout,
.coach-booking-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 26px; align-items: start; }
.coach-showcase__main { display: grid; gap: 18px; }
.coach-showcase__aside,
.booking-summary { position: sticky; top: calc(var(--header-offset) + 20px); display: grid; gap: 18px; }

.coach-identity-panel,
.coach-dark-card,
.coach-book-card,
.coach-verified-card,
.available-slot-panel,
.booking-summary,
.booking-steps,
.booking-service-choice {
  background: linear-gradient(145deg, rgba(13, 28, 41, .97), rgba(8, 19, 29, .96));
  border: 1px solid var(--coach-border);
  border-radius: 9px;
}

.coach-identity-panel { position: relative; display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 42px; min-height: 330px; padding: 32px 38px; overflow: hidden; }
.coach-identity-panel::after { content: ""; position: absolute; inset: 0 0 0 48%; pointer-events: none; background: linear-gradient(120deg, transparent, rgba(13, 143, 205, .12)), radial-gradient(circle at 75% 45%, rgba(22, 157, 216, .18), transparent 48%); }
.coach-identity-panel__avatar,
.booking-coach-avatar { position: relative; z-index: 1; display: grid; place-items: center; overflow: hidden; color: var(--coach-blue); background: linear-gradient(145deg, #10283a, #091724); border: 1px solid var(--coach-blue); border-radius: 18px; font-family: var(--ff-oxanium); font-size: 7rem; font-weight: 800; }
.coach-identity-panel__avatar { width: 210px; height: 210px; }
.coach-identity-panel__avatar img,
.booking-coach-avatar img { width: 100%; height: 100%; object-fit: cover; }
.coach-identity-panel__content { position: relative; z-index: 1; min-width: 0; }
.coach-kicker,
.coach-label { color: var(--coach-blue); font-family: var(--ff-oxanium); font-size: 1.15rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.coach-identity-panel h1,
.booking-coach-header h1 { margin: 8px 0 4px; color: #fff; font-family: var(--ff-oxanium); font-size: clamp(3.5rem, 4vw, 5.4rem); font-weight: 800; line-height: .95; text-transform: uppercase; }
.coach-rank { color: #e8edf3; font-size: 1.8rem; font-weight: 700; }
.coach-metrics { display: grid; grid-template-columns: .7fr 1.3fr .9fr; margin-top: 24px; }
.coach-metrics > div { display: grid; gap: 5px; min-width: 0; padding: 0 25px; border-left: 1px solid var(--coach-border); }
.coach-metrics > div:first-child { padding-left: 0; border-left: 0; }
.coach-metrics small,
.booking-coach-header dt { color: var(--coach-muted); font-size: 1.05rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.coach-metrics strong { color: #fff; font-size: 1.35rem; }
.coach-metrics span { color: var(--coach-muted); font-size: 1.15rem; }
.coach-metrics .coach-rating { color: #fff3a2; font-size: 2rem; }
.coach-metrics .coach-price { color: var(--coach-blue); font-size: 2.2rem; }
.coach-metrics .coach-price span { font-size: 1.2rem; font-weight: 500; }
.coach-availability { display: flex; flex-wrap: wrap; align-items: center; gap: 13px 20px; margin-top: 23px; padding: 12px 14px; background: rgba(255,255,255,.025); border: 1px solid rgba(255,255,255,.08); border-radius: 5px; }
.coach-availability i { width: 8px; height: 8px; background: #31da8b; border-radius: 50%; }
.coach-availability strong { color: #31da8b; text-transform: uppercase; }
.coach-availability span { color: #c0c9d3; font-size: 1.2rem; }
.coach-identity-panel__actions { display: flex; justify-content: flex-end; gap: 14px; margin-top: 17px; }
.coach-primary-action,
.booking-slot button,
.booking-slot form > a { display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 47px; padding: 0 24px; color: #03121b; background: linear-gradient(135deg, #0ca6ec, #34c3f8); border: 0; border-radius: 5px; font-family: var(--ff-oxanium); font-size: 1.2rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; cursor: pointer; }
.coach-primary-action:hover,
.coach-primary-action:focus { color: #03121b; filter: brightness(1.1); }
.coach-secondary-action { display: inline-flex; align-items: center; min-height: 47px; padding: 0 22px; color: #e9f2f8; border: 1px solid var(--coach-blue); border-radius: 5px; font-size: 1.15rem; font-weight: 700; text-transform: uppercase; }

.coach-info-grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: 18px; }
.coach-dark-card { padding: 24px 26px; }
.coach-dark-card h2,
.coach-book-card h2,
.booking-summary h2 { color: #f3f7fa; font-family: var(--ff-oxanium); font-size: 1.55rem; font-weight: 800; text-transform: uppercase; }
.coach-dark-card h2 span,
.coach-book-card h2 span,
.booking-summary h2 span,
.coach-card-heading a { color: var(--coach-blue); }
.coach-about > p { margin: 20px 0; color: #bcc7d1; font-size: 1.25rem; line-height: 1.65; }
.coach-about ul { display: grid; gap: 12px; }
.coach-about li { color: #c3cdd6; font-size: 1.2rem; }
.coach-about li::before { content: "✓"; margin-right: 10px; color: var(--coach-blue); }
.coach-card-heading { display: flex; justify-content: space-between; align-items: center; gap: 15px; }
.coach-card-heading a { font-size: 1.05rem; font-weight: 800; text-transform: uppercase; }
.coach-service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 18px; }
.coach-service { padding: 17px; border: 1px solid var(--coach-border); border-radius: 7px; }
.coach-service h3 { min-height: 38px; color: #eef4f8; font-size: 1.25rem; }
.coach-service > strong { display: block; margin: 10px 0; color: var(--coach-blue); font-size: 1.8rem; }
.coach-service > strong span { color: var(--coach-muted); font-size: 1.05rem; font-weight: 500; }
.coach-service p { padding-top: 12px; color: var(--coach-muted); border-top: 1px solid rgba(255,255,255,.08); font-size: 1.05rem; line-height: 1.5; }
.coach-review-grid { display: grid; grid-template-columns: repeat(2, 1fr); margin-top: 20px; }
.coach-review-grid blockquote { padding: 6px 34px; border-right: 1px solid rgba(255,255,255,.08); }
.coach-review-grid blockquote:last-child { border-right: 0; }
.coach-review-grid p { min-height: 48px; color: #b9c4ce; font-size: 1.15rem; line-height: 1.6; }
.coach-review-grid div { display: flex; gap: 14px; margin: 13px 0 7px; color: #bac4cd; }
.review-stars { color: var(--coach-blue); letter-spacing: 4px; }
.coach-review-grid cite { color: #f0f5f8; font-size: 1.2rem; font-style: normal; font-weight: 700; }
.coach-empty { color: var(--coach-muted); font-size: 1.15rem; line-height: 1.5; }

.coach-book-card { display: grid; gap: 17px; padding: 28px 25px; }
.coach-next-date { display: block; color: #fff; font-size: 2rem; }
.coach-next-time { color: #bdc7d1; font-size: 1.2rem; }
.coach-book-card .coach-primary-action { width: 100%; }
.coach-or { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; color: #9da9b4; text-transform: uppercase; }
.coach-or span { height: 1px; background: var(--coach-border); }
.coach-quick-service { display: flex; justify-content: space-between; gap: 10px; padding: 13px; color: #dce5ec; border: 1px solid var(--coach-border); border-radius: 5px; }
.coach-quick-service strong { color: var(--coach-blue); }
.coach-verified-card { display: flex; align-items: center; gap: 18px; padding: 22px; }
.coach-verified-card > span { display: grid; place-items: center; width: 50px; height: 50px; color: #31da8b; border: 2px solid #8ea0b0; border-radius: 50%; font-size: 2rem; }
.coach-verified-card strong { color: #f2f6f8; text-transform: uppercase; }
.coach-verified-card p { margin-top: 4px; color: var(--coach-muted); font-size: 1.1rem; line-height: 1.4; }

/* Dedicated booking page */
.coach-booking-layout > main { min-width: 0; }
.coach-breadcrumb { display: flex; gap: 14px; margin-bottom: 19px; color: #aeb9c4; font-size: 1.15rem; }
.coach-breadcrumb a { color: #c5ced6; }
.coach-breadcrumb strong { color: var(--coach-blue); }
.booking-coach-header { display: grid; grid-template-columns: 112px minmax(0, 1fr) auto; align-items: center; gap: 28px; min-height: 150px; margin-bottom: 20px; }
.booking-coach-avatar { width: 112px; height: 112px; border-radius: 13px; font-size: 4rem; }
.booking-coach-header h1 { font-size: clamp(3rem, 4vw, 4.6rem); }
.booking-coach-header p { color: #e5ebf0; font-size: 1.5rem; font-weight: 700; }
.booking-coach-header dl { display: grid; grid-template-columns: repeat(2, minmax(120px, 1fr)); }
.booking-coach-header dl > div { padding: 0 26px; border-left: 1px solid var(--coach-border); }
.booking-coach-header dd { margin-top: 6px; color: #f7f1a0; font-size: 1.5rem; font-weight: 700; }
.booking-coach-header dd ion-icon { display: inline-block; width: 1em; height: 1em; margin-right: 4px; vertical-align: -0.12em; }
.booking-coach-header small { color: var(--coach-muted); font-size: 1.05rem; }
.booking-steps { display: grid; grid-template-columns: repeat(3, 1fr); margin-bottom: 17px; padding: 16px 20px; }
.booking-steps > div { display: grid; grid-template-columns: 36px 1fr; column-gap: 12px; padding-right: 20px; }
.booking-steps span { grid-row: span 2; display: grid; place-items: center; width: 34px; height: 34px; color: #9ba9b6; border: 1px solid #758697; border-radius: 50%; }
.booking-steps .is-active span { color: var(--coach-blue); border-color: var(--coach-blue); }
.booking-steps strong { color: #edf3f7; font-size: 1.2rem; }
.booking-steps small { color: var(--coach-muted); font-size: 1.05rem; }
.booking-services { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 17px; }
.booking-service-choice { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 12px; min-height: 78px; padding: 14px; color: #eaf1f5; }
.booking-service-choice.is-selected { border-color: var(--coach-blue); box-shadow: inset 0 0 0 1px var(--coach-blue); }
.booking-service-icon { display: grid; place-items: center; width: 38px; height: 38px; color: var(--coach-blue); font-size: 2rem; }
.booking-service-choice strong { display: block; font-size: 1.15rem; }
.booking-service-choice small { display: block; margin-top: 3px; overflow: hidden; color: var(--coach-muted); font-size: 1rem; text-overflow: ellipsis; white-space: nowrap; }
.booking-service-choice b { color: var(--coach-blue); }
.available-slot-panel { padding: 16px 14px; }
.booking-slot-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 13px; }
.booking-slot { display: grid; align-content: start; gap: 10px; min-width: 0; padding: 12px; background: rgba(10, 23, 34, .82); border: 1px solid var(--coach-border); border-radius: 6px; }
.booking-slot.is-held { opacity: .6; }
.booking-slot__time { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; align-items: center; gap: 8px; }
.booking-slot__time > span { color: var(--coach-blue); }
.booking-slot__time strong { display: block; color: #eef4f7; font-size: 1.1rem; }
.booking-slot__time small { color: var(--coach-muted); font-size: 1rem; }
.booking-slot__time b { display: inline-flex; align-items: baseline; justify-content: flex-end; gap: 2px; min-width: 46px; color: var(--coach-blue); font-size: 1.05rem; line-height: 1; white-space: nowrap; }
.booking-slot__time b span { display: inline; }
.booking-slot form { display: grid; gap: 7px; }
.booking-slot select { width: 100%; min-width: 0; height: 32px; padding: 0 7px; color: #dce6ed; background: #0a1722; border: 1px solid var(--coach-border); border-radius: 3px; font-size: 1rem; }
.booking-slot button,
.booking-slot form > a { min-height: 36px; padding: 0 12px; font-size: 1.05rem; }
.booking-slot button span,
.booking-slot form > a span { display: inline-grid; place-items: center; width: 18px; height: 18px; }
.booking-slot button ion-icon,
.booking-slot form > a ion-icon { display: block; width: 15px; height: 15px; }
.booking-slot__held { padding: 9px; color: var(--coach-muted); font-size: 1rem; text-align: center; text-transform: uppercase; }
.booking-summary { padding: 27px 20px; }
.booking-summary h2 { display: flex; align-items: center; gap: 8px; }
.booking-summary h2 > span { display: grid; place-items: center; width: 24px; height: 24px; color: var(--coach-blue); }
.booking-summary h2 ion-icon { display: block; width: 20px; height: 20px; }
.booking-summary .coach-label { margin-top: 10px; color: var(--coach-muted); }
.booking-summary__row { display: flex; align-items: center; gap: 12px; min-height: 62px; padding: 11px; border: 1px solid var(--coach-border); border-radius: 6px; }
.booking-summary__row strong { color: #eaf1f5; font-size: 1.1rem; }
.booking-summary__row small { display: block; margin-top: 3px; color: var(--coach-muted); font-size: 1rem; }
.booking-total { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 8px; padding: 18px 10px; color: #b7c1ca; border-top: 1px solid var(--coach-border); border-bottom: 1px solid var(--coach-border); }
.booking-total strong { display: inline-flex; align-items: baseline; justify-content: flex-end; gap: 3px; color: var(--coach-blue); font-size: 1.65rem; line-height: 1; white-space: nowrap; }
.booking-total strong span { display: inline; }
.booking-security { display: flex; align-items: flex-start; gap: 7px; color: #9eabb7; font-size: 1.05rem; line-height: 1.5; }
.booking-security ion-icon { flex: 0 0 auto; width: 15px; height: 15px; margin-top: 2px; color: var(--coach-blue); }

@media (max-width: 1100px) {
  .coach-showcase__layout,
  .coach-booking-layout { grid-template-columns: minmax(0, 1fr); }
  .coach-showcase__aside,
  .booking-summary { position: static; grid-template-columns: repeat(2, 1fr); }
  .booking-summary { display: grid; grid-template-columns: 1fr 1fr; }
  .booking-summary h2 { grid-column: 1 / -1; }
  .booking-slot-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 768px) {
  .coach-identity-panel { grid-template-columns: 90px minmax(0, 1fr); gap: 18px; padding: 22px; }
  .coach-identity-panel__avatar { width: 90px; height: 90px; border-radius: 10px; font-size: 3.8rem; }
  .coach-identity-panel h1 { font-size: 3rem; }
  .coach-metrics { grid-column: 1 / -1; grid-template-columns: 1fr; }
  .coach-metrics > div { padding: 12px 0; border-left: 0; border-top: 1px solid var(--coach-border); }
  .coach-info-grid,
  .coach-service-grid,
  .coach-review-grid,
  .booking-services { grid-template-columns: 1fr; }
  .coach-review-grid blockquote { padding: 12px 0; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.08); }
  .coach-showcase__aside,
  .booking-summary { grid-template-columns: 1fr; }
  .booking-summary h2 { grid-column: auto; }
  .booking-coach-header { grid-template-columns: 75px 1fr; }
  .booking-coach-avatar { width: 75px; height: 75px; }
  .booking-coach-header dl { grid-column: 1 / -1; }
  .booking-steps { grid-template-columns: 1fr; gap: 14px; }
  .booking-slot-grid { grid-template-columns: repeat(2, 1fr); }
}

/* Normalise symbol and image alignment across profile and booking cards. */
:is(.coach-showcase, .coach-booking-page) :is(
  .coach-identity-panel__avatar,
  .booking-coach-avatar,
  .coach-verified-card > span,
  .booking-steps span,
  .booking-service-icon,
  .booking-slot__time > span
) {
  align-items: center;
  justify-items: center;
  line-height: 1;
  text-align: center;
}

:is(.coach-showcase, .coach-booking-page) :is(
  .coach-identity-panel__avatar,
  .booking-coach-avatar,
  .coach-verified-card > span,
  .booking-steps span,
  .booking-service-icon,
  .booking-slot__time > span
) :is(ion-icon, svg, .ion-icon-fallback) {
  display: block;
  margin: auto;
}

:is(.coach-identity-panel__avatar, .booking-coach-avatar) img {
  display: block;
  margin: auto;
  object-position: center;
}

@media (max-width: 480px) {
  .coach-identity-panel { grid-template-columns: 1fr; }
  .coach-identity-panel__actions { flex-direction: column; }
  .coach-primary-action,
  .coach-secondary-action { width: 100%; }
  .booking-slot-grid { grid-template-columns: 1fr; }
  .booking-coach-header dl { grid-template-columns: 1fr; gap: 14px; }
}

/* ==========================================================================
   COACHING: REQUEST
   ========================================================================== */
:root { --request-blue:#18b8f2; --request-border:rgba(118,165,194,.24); --request-panel:rgba(7,21,33,.96); --request-muted:#98a8b5; }
.coaching-request-page { min-height:75vh; padding:18px 0 30px; color:#eef5f9; background:radial-gradient(circle at 70% 8%,rgba(17,118,166,.09),transparent 30%),linear-gradient(140deg,#050f19,#071522 55%,#040d16); }
.coaching-request-page .container { width:min(90%,1740px); max-width:none; }
.request-back-link { display:inline-flex; align-items:center; gap:8px; margin:0 0 16px; color:var(--request-blue); font-size:1.28rem; font-weight:700; }
.request-back-link ion-icon { font-size:1.7rem; }
.request-hero { --request-accent:var(--request-blue); position:relative; display:flex; align-items:center; min-height:160px; overflow:hidden; padding:24px 42px; border:1px solid var(--request-border); border-radius:9px; background:linear-gradient(90deg,#071624 0%,rgba(7,22,36,.95) 43%,rgba(6,18,29,.28) 78%),var(--request-hero-image,url('../../images/games/call-of-duty.jpg')); background-position:center; background-size:cover; }
.request-hero::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,transparent 60%,rgba(24,184,242,.08)); }

/* Uploaded game artwork sets --request-hero-image inline. */
.request-hero{background:linear-gradient(90deg,#071624 0%,rgba(7,22,36,.95) 43%,rgba(6,18,29,.28) 78%),var(--request-hero-image,linear-gradient(135deg,#123149,#06131f))}

@media(max-width:680px){
  .coaching-browse .container,.coaching-game-page .container,.coaching-request-page .container{width:100%;max-width:100%;padding-inline:14px}
  .coaching-select-card,.coaching-game-showcase,.coaching-path-grid>a,.request-hero,.request-layout>*{width:100%;max-width:100%;min-width:0}
  .coaching-game-nav{width:100%;overflow-x:auto;overscroll-behavior-inline:contain}
  .coaching-game-nav a{flex:0 0 auto;white-space:nowrap}
  .coaching-game-showcase h1,.request-hero h1{font-size:clamp(27px,8vw,38px);overflow-wrap:anywhere}
  .coaching-game-actions a{min-width:0}
}

/* Responsive text refinement across coaching surfaces. */
.coaching-browse :is(h1,h2,h3,strong,small,p,a,button,span),
.coach-showcase :is(h1,h2,h3,strong,small,p,a,button,span),
.coach-booking-page :is(h1,h2,h3,strong,small,p,a,button,span),
.coaching-request-page :is(h1,h2,h3,strong,small,p,a,button,span) {
  overflow-wrap: anywhere;
}

@media(max-width:760px){
  .coaching-browse-heading h1,
  .coaching-game-showcase h1,
  .request-hero h1,
  .coach-apply-hero h1,
  .availability-hero h1 {
    font-size: clamp(2.7rem, 9vw, 3.8rem);
    line-height: 1.05;
    white-space: normal;
  }
  .coaching-browse-heading small,
  .coaching-game-showcase small,
  .request-hero small {
    font-size: clamp(1.15rem, 3.7vw, 1.35rem);
    line-height: 1.5;
  }
  .coaching-select-card__body > strong,
  .coaching-mode-card h2,
  .coaching-directory h2,
  .coaching-coach-card h3 {
    font-size: clamp(1.45rem, 5vw, 2rem);
    line-height: 1.1;
  }
  .coaching-select-card__body > small,
  .coaching-mode-card p,
  .coaching-mode-card li,
  .coaching-how-grid p {
    font-size: clamp(1.05rem, 3.6vw, 1.25rem);
  }
  .coach-identity-panel h1,
  .booking-coach-header h1 {
    font-size: clamp(2.7rem, 9vw, 4rem);
    line-height: 1.02;
  }
  .booking-slot__time { grid-template-columns: 24px minmax(0, 1fr) max-content; }
  .booking-total { align-items: flex-start; flex-direction: column; gap: 8px; }
}

@media(max-width:520px){
  .coaching-browse .container{width:min(100% - 20px,1740px)}
  .coaching-browse-heading h1,
  .coaching-game-showcase h1,
  .request-hero h1 {
    font-size: clamp(2.35rem, 10vw, 3.3rem);
  }
  .coaching-game-nav { gap: 18px; }
  .coaching-game-nav a { font-size: .95rem; }
  .coaching-path-grid > a { grid-template-columns: 44px minmax(0,1fr) auto; }
  .coaching-path-grid strong { font-size: 1.15rem; }
  .booking-coach-header p { font-size: 1.2rem; }
  .booking-service-choice { grid-template-columns: 38px minmax(0,1fr); }
  .booking-service-choice b { grid-column: 2; }
}
@media(max-width:680px){
  .coaching-browse-heading,.coaching-browse-heading>*{width:100%;max-width:100%;min-width:0}
  .coaching-browse-heading h1{font-size:clamp(30px,9vw,40px);line-height:1.05;white-space:normal}
  .coaching-browse-heading small{display:block;font-size:1.1rem;overflow-wrap:anywhere}
  .coaching-select-card__body{padding-inline:16px}
  .coaching-select-card__body>small{font-size:1.05rem;overflow-wrap:anywhere}
  .coaching-select-card__support{flex-wrap:wrap;font-size:1rem}
}
.request-hero > div { position:relative; z-index:1; max-width:760px; }
.request-hero p,.request-field > span { color:var(--request-blue); font-family:var(--ff-oxanium); font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.request-hero p { font-size:1.25rem; }
.request-hero h1 { margin:5px 0 6px; color:#fff; font-family:var(--ff-oxanium); font-size:clamp(2.8rem,3vw,4rem); font-weight:800; line-height:1.05; text-transform:uppercase; }
.request-hero h1 span { color:var(--request-accent); }
.request-hero small { color:#c0cbd3; font-size:1.32rem; line-height:1.5; }
.request-layout { display:grid; grid-template-columns:minmax(0,2.35fr) minmax(290px,1fr); gap:16px; margin-top:16px; }
.request-form-panel,.request-info-panel { background:linear-gradient(145deg,rgba(9,25,38,.98),rgba(5,16,26,.98)); border:1px solid var(--request-border); border-radius:9px; }
.request-form-panel { padding:22px 30px 25px; }
.request-form-panel h2,.request-info-panel h2 { display:flex; align-items:center; gap:13px; color:#eaf2f6; font-family:var(--ff-oxanium); font-size:1.55rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.request-form-panel h2 ion-icon,.request-info-panel h2 ion-icon { color:var(--request-blue); font-size:2.35rem; }
.request-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px 38px; margin-top:18px; }
.request-form-errors { grid-column:1/-1; padding:12px; color:#ffd5d5; background:rgba(222,66,66,.1); border:1px solid rgba(222,66,66,.35); }
.request-field { display:grid; align-content:start; gap:6px; }
.request-field > span { font-size:1.08rem; }
.request-field > span b { color:#8cdfff; }
.request-field :is(input,select,textarea) { width:100%; min-height:43px; padding:0 13px; color:#edf4f8; background:#081725; border:1px solid var(--request-border); border-radius:4px; outline:0; }
.request-field textarea { min-height:84px; padding-block:11px; resize:vertical; }
.request-field :is(input,select,textarea):focus { border-color:var(--request-blue); box-shadow:0 0 0 3px rgba(24,184,242,.12); }
.request-field select option { background:#081725; }
.request-field small { color:#8495a3; font-size:1.04rem; line-height:1.25; }
.request-field em { color:#ff9292; font-size:1.05rem; font-style:normal; }
.request-actions { grid-column:1/-1; display:grid; grid-template-columns:minmax(230px,310px) 120px 1fr; align-items:center; gap:15px; margin-top:2px; }
.request-actions button,.request-actions > a { display:grid; place-items:center; min-height:47px; padding:0 20px; border:1px solid var(--request-blue); font-family:var(--ff-oxanium); font-size:1.13rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.request-actions button { color:#03131d; background:linear-gradient(105deg,#0ca4df,#25c9ff); cursor:pointer; }
.request-actions > a { color:#d5e0e7; background:transparent; border-color:var(--request-border); }
.request-actions p { display:flex; align-items:center; gap:10px; color:#8293a0; font-size:1rem; line-height:1.35; }
.request-actions p ion-icon { flex:0 0 auto; font-size:1.7rem; }
.request-info-panel { padding:24px 27px; }
.request-info-panel ol { display:grid; gap:0; margin-top:19px; }
.request-info-panel li { position:relative; display:grid; grid-template-columns:48px 1fr; gap:16px; min-height:89px; }
.request-info-panel li:not(:last-child)::after { content:""; position:absolute; top:42px; bottom:0; left:23px; border-left:1px dashed rgba(24,184,242,.35); }
.request-info-panel li > b { display:grid; place-items:center; align-self:start; width:47px; height:43px; color:var(--request-blue); background:rgba(24,184,242,.07); border:1px solid rgba(24,184,242,.33); clip-path:polygon(25% 0,75% 0,100% 25%,100% 75%,75% 100%,25% 100%,0 75%,0 25%); font-family:var(--ff-oxanium); font-size:1.2rem; }
.request-info-panel strong { color:#e8eff3; font-family:var(--ff-oxanium); font-size:1.2rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.request-info-panel p { margin-top:5px; color:var(--request-muted); font-size:1.08rem; line-height:1.45; }
.request-info-note { display:grid; grid-template-columns:25px 1fr; gap:13px; padding:21px 0; border-top:1px solid var(--request-border); }
.request-info-note ion-icon { color:var(--request-blue); font-size:2.25rem; }
.request-info-note span { color:var(--request-blue); }
.request-help { display:flex; justify-content:center; align-items:center; gap:7px; margin-top:17px; color:#91a0ac; font-size:1.13rem; }
.request-help ion-icon { font-size:1.6rem; }.request-help a { color:var(--request-blue); }
@media(max-width:1000px){.request-layout{grid-template-columns:1fr}.request-info-panel ol{grid-template-columns:repeat(3,1fr);gap:18px}.request-info-panel li{grid-template-columns:44px 1fr}.request-info-panel li::after{display:none}}
@media(max-width:720px){.coaching-request-page .container{width:min(94%,1740px)}.request-hero{min-height:210px;padding:25px 20px;background-position:62% center}.request-hero small{font-size:1.15rem}.request-form-panel,.request-info-panel{padding:20px 16px}.request-form{grid-template-columns:1fr;gap:15px}.request-actions{grid-column:auto;grid-template-columns:1fr}.request-info-panel ol{grid-template-columns:1fr}.request-info-panel li{min-height:82px}.request-help{text-align:center}}

/* ==========================================================================
   COACHING: VOD-REPORT
   ========================================================================== */
      .coaching-vod-report { font-family: sans-serif; color: #111; }
      .coaching-vod-report h1 { font-size: 28px; }
      .coaching-vod-report dt { font-weight: 700; }
      .coaching-vod-report dd { margin: 0 0 10px; }

