/* Coach pages only. Reuses the site's colours, type, icons and compact footer. */
.coaches-page { padding-bottom:0; font-size:17px; line-height:1.6; }
.coaches-page :where(h1,h2,h3,h4,p,figure,ul,ol,dl) { margin-top:0; }
.coaches-page h2 { font-size:clamp(28px,2.7vw,40px); line-height:1.15; margin-bottom:14px; }
.coaches-page h3 { font-size:23px; }
.coaches-page .eyebrow { font-size:12px; letter-spacing:.14em; line-height:1.6; }
.coaches-page .btn { min-height:48px; padding:10px 20px; font-size:16px; }
.coaches-page .btn-accent { color:var(--btn-accent-text); background:var(--btn-accent-bg); border-color:var(--btn-accent-bg); }
.coaches-page .btn-accent:hover { color:var(--btn-primary-text); background:var(--btn-primary-bg); border-color:var(--btn-primary-bg); }
body:has(.coaches-page) .inner-footer { background:var(--color-bg); color:var(--color-heading); border-top:1px solid var(--color-border); }
body:has(.coaches-page) .inner-footer a:focus-visible { outline-color:var(--color-focus); }
body:has(.coaches-page) .inner-footer__meta { border-top-color:var(--color-border); }
.coaches-page [id] { scroll-margin-top:24px; }
.coaches-hero,.coaches-next,.coach-experience__banner { background:linear-gradient(110deg,var(--color-text),var(--color-bg-invert) 65%,var(--color-text-muted)); color:var(--color-text-invert); }
.coaches-hero :is(h1,h2,p,a),.coaches-next :is(h2,p),.coach-experience__banner h2 { color:inherit; }
.coaches-hero :is(a,button,input):focus-visible,.coaches-next :is(a,button):focus-visible { outline-color:var(--color-focus-invert); }
.coaches-hero__layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:56px; align-items:center; padding-block:32px; }
.coaches-page .coaches-hero .eyebrow { margin-bottom:8px; }
.coaches-hero h1 { font:700 clamp(44px,4.8vw,68px)/1.02 var(--font-display); letter-spacing:-.025em; margin:0 0 16px; }
.coaches-page .coaches-hero__intro { font-size:clamp(18px,1.5vw,21px); line-height:1.5; margin-bottom:0; max-width:66ch; }
.coaches-hero__aside { display:flex; align-items:center; gap:32px; padding-left:48px; border-left:1px solid var(--color-border-invert); }
.coaches-hero__aside svg { width:112px; height:112px; flex:none; stroke-width:1.5; }
.coaches-page .coaches-hero__aside p { font-size:19px; line-height:1.4; margin:0; }
.coaches-roster { padding-block:30px 36px; }
.coaches-roster__intro { margin-bottom:20px; }
.coaches-page .coaches-roster__intro h2 { margin-bottom:6px; }
.coaches-page .coaches-roster__intro p { font-size:19px; line-height:1.45; margin:0; }
.coaches-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; align-items:stretch; }
.coach-card { min-width:0; display:flex; flex-direction:column; border:1px solid var(--color-border); border-radius:6px; padding:7px; background:var(--color-bg); }
.coach-card__portrait { display:block; width:100%; height:auto; aspect-ratio:4 / 3; object-fit:cover; border-radius:3px; }
.coach-card__body { display:flex; flex-direction:column; flex:1; padding:10px 5px 5px; min-width:0; }
.coaches-page .coach-card__role { margin-bottom:2px; font-size:10px; line-height:1.55; letter-spacing:.115em; min-height:1.55em; }
.coaches-page .coach-card h3 { font:700 clamp(28px,2.45vw,36px)/1.08 var(--font-display); margin:0 0 8px; }
.coaches-page .coach-card__highlight { display:flex; align-items:flex-start; gap:7px; padding:7px 8px; margin:0 0 10px; min-height:55px; background:color-mix(in srgb,var(--btn-accent-bg) 23%,var(--color-bg)); color:var(--color-heading); border-radius:4px; font-size:13px; line-height:1.45; }
.coach-card__highlight svg { width:18px; height:18px; flex:none; margin-top:1px; }
.coaches-page .coach-card__summary { font-size:15px; line-height:1.5; margin-bottom:12px; min-height:4.5em; }
.coach-tags { display:flex; flex-wrap:wrap; gap:6px; padding:0; list-style:none; }
.coaches-page .coach-tags { margin:0 0 12px; }
.coach-tags li { padding:4px 9px; background:var(--color-bg-alt); border-radius:24px; color:var(--color-heading); font-size:12px; line-height:1.5; }
.coaches-page .coach-card__link { display:flex; justify-content:center; gap:12px; width:100%; min-height:44px; margin-top:auto; padding:8px; font-size:14px; border:1px solid var(--color-link); border-radius:3px; color:var(--color-heading); background:transparent; }
.coaches-page .coach-card__link:hover { background:var(--btn-primary-bg); color:var(--btn-primary-text); border-color:var(--btn-primary-bg); }
.coaches-next__layout { display:flex; align-items:center; justify-content:space-between; gap:24px; padding-block:28px; }
.coaches-page .coaches-next h2 { font-size:clamp(30px,3vw,42px); margin-bottom:4px; }
.coaches-page .coaches-next p { font-size:18px; margin-bottom:0; }
.coaches-next__actions { display:flex; gap:18px; flex-shrink:0; }
.coaches-page .coaches-next__actions a { min-width:195px; }
.coaches-page .coaches-next__trial { background:transparent; color:var(--color-text-invert); border:1px solid var(--color-text-invert); }
.coaches-page .coaches-next__trial:hover { background:var(--color-bg-alt); color:var(--color-heading); }
/* Individual profiles retain the same shape, while optional sections follow the evidence. */
.coach-hero { padding-block:22px 36px; }
.coach-breadcrumbs ol { display:flex; flex-wrap:wrap; gap:9px; padding:0; margin:0 0 24px; list-style:none; font-size:13px; line-height:1.5; }
.coach-breadcrumbs li + li::before { content:'/'; padding-right:9px; opacity:.7; }
.coach-breadcrumbs a { text-decoration:none; }
.coach-breadcrumbs a:hover { text-decoration:underline; }
.coach-hero__layout { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.8fr); gap:72px; align-items:center; }
.coach-hero__copy { min-width:0; }
.coach-hero h1 { font-size:clamp(52px,6.6vw,90px); margin-bottom:14px; }
.coaches-page .coach-hero__copy > .coaches-hero__intro { max-width:43ch; }
.coach-hero__portrait { width:100%; max-height:490px; height:auto; aspect-ratio:1 / 1.04; object-fit:cover; border-radius:6px; }
.coach-honour { display:flex; align-items:center; gap:18px; width:fit-content; margin:20px 0 14px; padding:14px 20px; color:var(--color-heading); background:var(--color-bg-alt); border-left:4px solid var(--btn-accent-bg); border-radius:4px; }
.coach-honour svg { flex:none; width:34px; height:34px; }
.coach-honour strong { display:block; font:700 19px/1.3 var(--font-display); }
.coach-honour span { display:block; font-size:15px; line-height:1.5; margin-top:3px; }
.coach-hero__tags { display:flex; flex-wrap:wrap; padding:0; margin:0 0 22px; list-style:none; font-size:14px; gap:10px; }
.coaches-page .coach-hero__tags { margin-bottom:22px; }
.coach-hero__tags li + li { padding-left:10px; border-left:1px solid var(--color-border-invert); }
.coach-hero__actions { display:flex; align-items:center; flex-wrap:wrap; gap:20px; }
.coach-hero__back { font-size:15px; text-underline-offset:4px; }
.coach-share { margin-top:13px; font-size:13px; }
.coach-share__button { display:inline-flex; align-items:center; gap:7px; padding:6px 0; min-height:36px; color:inherit; border:0; border-radius:2px; background:none; font:inherit; cursor:pointer; text-decoration:underline; text-underline-offset:4px; }
.coach-share__button[hidden],.coach-share__fallback[hidden] { display:none; }
.coach-share__button svg { width:17px; height:17px; flex:none; }
.coach-share__button:disabled { cursor:wait; }
.coach-share__status { display:inline-block; margin-left:12px; }
.coach-share__fallback { margin-top:8px; }
.coach-share__fallback label { display:block; margin-bottom:5px; }
.coach-share__fallback input { width:100%; border:1px solid var(--color-border); background:var(--color-bg); color:var(--color-text); font:14px/1.5 var(--font-body); border-radius:3px; padding:10px; }
.coach-section-nav { display:flex; flex-wrap:wrap; justify-content:center; gap:16px 40px; padding-block:16px; border-bottom:1px solid var(--color-border); }
.coach-section-nav a { padding:5px 0; color:var(--color-heading); text-decoration:none; font-size:15px; }
.coach-section-nav a:hover { text-decoration:underline; text-underline-offset:5px; }
.coach-overview { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(0,1fr); gap:64px; align-items:start; padding-block:38px 24px; }
.coach-overview p:last-child { margin-bottom:0; }
.coach-facts { padding:24px; background:var(--color-bg-alt); border-radius:6px; }
.coaches-page .coach-facts h3 { font-family:var(--font-body); margin-bottom:12px; }
.coach-facts dl { margin:0; font-size:14px; }
.coach-facts dl > div { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:12px; padding:8px 0; border-top:1px solid var(--color-border); }
.coach-facts dl > div:first-child { border-top:0; padding-top:0; }
.coach-facts dl > div:last-child { padding-bottom:0; }
.coach-facts dt { color:var(--color-text-muted); }
.coach-facts dd { margin:0; }
.coach-teaching { padding-block:16px 36px; }
.coaches-page .coach-teaching h2 { margin-bottom:24px; }
.coach-teaching__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.coach-teaching__item { display:flex; gap:18px; min-width:0; }
.coach-teaching__item + .coach-teaching__item { border-left:1px solid var(--color-border); padding-left:28px; }
.coach-teaching__item > svg { width:44px; height:44px; flex:none; }
.coaches-page .coach-teaching__item h3 { font:700 19px/1.3 var(--font-display); margin-bottom:8px; }
.coaches-page .coach-teaching__item p { font-size:15px; line-height:1.65; margin:0; }
.coach-experience__banner .container { display:flex; align-items:center; justify-content:space-between; gap:24px; padding-block:26px; }
.coaches-page .coach-experience__banner h2 { margin:0; }
.coach-experience__banner svg { width:50px; height:50px; }
.coach-experience__body { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 48px; padding-block:30px; }
.coach-record { min-width:0; }
.coach-record:first-child { grid-column:1 / -1; }
.coaches-page .coach-record h3 { font:700 27px/1.25 var(--font-display); margin-bottom:16px; }
.coach-timeline { padding:0; margin:0; list-style:none; }
.coach-timeline > li { display:grid; grid-template-columns:minmax(110px,.33fr) minmax(0,1fr); gap:20px; border-top:1px solid var(--color-border); padding:14px 0; }
.coaches-page .coach-timeline__period { font-size:13px; color:var(--color-text-muted); margin:2px 0 0; }
.coaches-page .coach-timeline h4 { font:600 16px/1.45 var(--font-body); margin:0 0 3px; color:var(--color-heading); }
.coaches-page .coach-timeline li > div > p { font-size:15px; line-height:1.65; margin:0; }
.coach-record__list { padding-left:20px; margin:0; font-size:15px; }
.coach-record__list li { padding-block:6px; }
.coach-record__list li::marker { color:var(--color-link); }
.coach-gallery { padding-block:12px 32px; }
.coaches-page .coach-gallery h2 { margin-bottom:20px; }
.coach-gallery__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.coach-gallery__grid--single { grid-template-columns:minmax(0,1fr); max-width:900px; }
.coach-gallery figure { margin:0; min-width:0; }
.coach-gallery__photo { display:block; width:100%; height:auto; aspect-ratio:16 / 10; object-fit:cover; border-radius:5px; }
.coach-gallery__grid--single .coach-gallery__photo { aspect-ratio:auto; max-height:550px; object-fit:contain; object-position:left center; }
.coach-gallery figcaption { margin-top:8px; font-size:13px; line-height:1.5; color:var(--color-text-muted); }
.coach-team-nav { display:flex; align-items:center; gap:28px; padding:22px 26px; margin-bottom:36px; background:var(--color-bg-alt); border-radius:6px; }
.coaches-page .coach-team-nav h2 { flex:none; font-size:27px; margin:0; }
.coach-team-nav ul { display:flex; flex-wrap:wrap; flex:1; justify-content:space-evenly; list-style:none; margin:0; padding:0; gap:8px; }
.coach-team-nav li { display:flex; }
.coach-team-nav li a { padding:10px 14px; color:var(--color-heading); font-size:14px; text-decoration:none; }
.coach-team-nav a[aria-current] { background:var(--btn-accent-bg); border-radius:3px; font-weight:700; }
.coach-team-nav li a:hover { text-decoration:underline; text-underline-offset:4px; }
.coach-team-nav__all { flex:none; font-size:14px; color:var(--color-heading); }
@media (max-width:1199px) {
 .coaches-hero__layout { grid-template-columns:minmax(0,1fr) 230px; gap:32px; }
 .coaches-hero__aside { padding-left:30px; gap:20px; }
 .coaches-hero__aside svg { width:85px; height:85px; }
 .coach-card__role { letter-spacing:.05em; }
 .coaches-next__layout { align-items:flex-start; }
 .coaches-next__actions { gap:10px; }
 .coaches-page .coaches-next__actions a { min-width:0; }
 .coach-hero__layout { gap:42px; }
 .coach-overview { gap:32px; }
 .coach-teaching__grid { gap:18px; }
 .coach-teaching__item { gap:12px; }
 .coach-teaching__item + .coach-teaching__item { padding-left:18px; }
 .coach-teaching__item > svg { width:32px; height:32px; }
}
@media (max-width:1023px) {
 .coaches-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
 .coaches-hero__layout { grid-template-columns:minmax(0,1fr); }
 .coaches-hero__aside { display:none; }
 .coach-card__portrait { aspect-ratio:4 / 3; }
 .coaches-page .coach-card__role { font-size:11px; }
 .coaches-page .coach-card__highlight { min-height:48px; font-size:14px; }
 .coaches-page .coach-card__summary { min-height:3em; font-size:16px; }
 .coaches-next__layout { flex-direction:column; }
 .coach-hero__layout { grid-template-columns:minmax(0,1fr) minmax(0,.8fr); gap:30px; }
 .coach-hero h1 { font-size:clamp(48px,6.8vw,68px); }
 .coach-hero__portrait { align-self:start; }
 .coach-honour { padding:12px; gap:10px; }
 .coach-honour strong { font-size:17px; }
 .coach-honour svg { width:28px; height:28px; }
 .coach-honour span { font-size:13px; }
 .coach-hero__actions { gap:14px; }
 .coach-teaching__grid { grid-template-columns:1fr; }
 .coach-teaching__item + .coach-teaching__item { border-left:0; border-top:1px solid var(--color-border); padding:20px 0 0; }
 .coach-teaching__item { gap:20px; }
 .coach-teaching__item > svg { width:40px; height:40px; }
 .coach-experience__body { grid-template-columns:1fr; gap:28px; }
 .coach-gallery__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .coach-gallery__grid--single { grid-template-columns:1fr; }
 .coach-team-nav { flex-wrap:wrap; gap:14px; }
 .coach-team-nav ul { flex-basis:60%; }
}
@media (max-width:639px) {
 .coaches-page { font-size:16px; }
 .coaches-hero__layout { padding-block:30px; }
 .coaches-hero h1 { font-size:clamp(35px,8.7vw,52px); }
 .coaches-page .coaches-hero__intro { font-size:18px; }
 .coaches-roster { padding-block:26px 30px; }
 .coaches-page .coaches-roster__intro p { font-size:17px; }
 .coaches-grid { grid-template-columns:minmax(0,1fr); gap:20px; }
 .coach-card { padding:9px; }
 .coach-card__body { padding:14px 5px 5px; }
 .coaches-page .coach-card h3 { font-size:34px; }
 .coaches-page .coach-card__highlight { min-height:0; font-size:14px; }
 .coaches-page .coach-card__summary { min-height:0; }
 .coach-tags li { font-size:13px; }
 .coaches-next__actions { width:100%; flex-direction:column; gap:12px; }
 .coaches-page .coaches-next__actions a { width:100%; }
 .coach-hero { padding-block:18px 26px; }
 .coach-breadcrumbs ol { margin-bottom:22px; }
 .coach-hero__layout { display:flex; flex-direction:column; align-items:stretch; gap:24px; }
 .coach-hero h1 { font-size:clamp(48px,14vw,68px); }
 .coach-hero__portrait { width:100%; max-height:420px; aspect-ratio:4 / 3; }
 .coach-hero__actions { align-items:flex-start; flex-direction:column; gap:16px; }
 .coach-share__status { margin-left:0; display:block; }
 .coach-section-nav { justify-content:space-between; gap:8px; padding-block:12px; }
 .coach-section-nav a { font-size:13px; }
 .coach-overview { grid-template-columns:1fr; gap:24px; padding-block:28px 18px; }
 .coach-facts { padding:20px; }
 .coach-teaching { padding-block:16px 28px; }
 .coaches-page .coach-teaching h2 { margin-bottom:22px; }
 .coach-experience__banner .container { padding-block:22px; }
 .coach-experience__banner svg { width:38px; height:38px; }
 .coach-timeline > li { grid-template-columns:1fr; gap:5px; }
 .coach-experience__body { padding-block:24px; }
 .coach-gallery__grid { grid-template-columns:1fr; gap:22px; }
 .coach-team-nav { padding:20px 14px; margin-bottom:28px; }
 .coaches-page .coach-team-nav h2 { width:100%; font-size:25px; }
 .coach-team-nav ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); flex-basis:100%; justify-content:initial; }
 .coach-team-nav li a { width:100%; padding:12px; }
}
