/* 2026-27 public coach directory and seasonal information. */
.coach-page { background:#f7fafb; color:#193d4a; }
.coach-page [hidden], .season-overview [hidden] { display:none !important; }
.coach-wrap { width:min(1120px,calc(100% - 48px)); margin-inline:auto; }
.coach-page h1,.coach-page h2,.coach-page h3,.coach-page p { letter-spacing:0; }
.coach-eyebrow { margin:0 0 12px; color:#21718e; font-size:12px; font-weight:800; letter-spacing:.13em !important; line-height:1.6; }
.coach-hero { padding:68px 0 64px; margin-top:120px; background:#edf5fa url('/images/background_mountains.avif') center/cover; background-blend-mode:screen; }
.coach-hero__layout { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:58px; }
.coach-hero h1 { margin:0 0 20px; font-size:20px; line-height:1.5; color:#2b7991; }
.coach-hero__headline { font-size:clamp(28px,3.5vw,44px); line-height:1.45; font-weight:800; margin:0 0 20px; }
.coach-hero__copy > p:not(.coach-eyebrow):not(.coach-hero__headline) { font-size:16px; line-height:1.85; color:#4c6670; margin:0 0 26px; }
.coach-hero__photo { margin:0; padding:12px 12px 0; border-radius:16px; background:white; box-shadow:0 15px 38px #153b4b15; transform:rotate(2deg); }
.coach-hero__photo img { display:block; width:100%; height:auto; border-radius:8px; }
.coach-hero__photo figcaption { display:flex; justify-content:space-between; gap:12px; padding:16px 4px; font-size:13px; font-weight:700; }
.coach-hero__photo figcaption span { font-family:Kalam,system-ui,sans-serif; color:#687d85; }
.coach-button { display:inline-flex; align-items:center; justify-content:center; gap:18px; min-height:48px; padding:12px 22px; background:#1b6982; color:white; border:2px solid #1b6982; border-radius:8px; text-decoration:none; font:700 15px/1.4 system-ui,sans-serif; cursor:pointer; }
.coach-button:hover { background:#164e60; color:white; }
.coach-page a:focus-visible,.coach-page button:focus-visible,.coach-page summary:focus-visible,.coach-page select:focus-visible,.season-overview a:focus-visible { outline:3px solid #deab12; outline-offset:4px; }
.coach-directory { padding:66px 0 58px; scroll-margin-top:135px; }
.coach-directory__heading { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:30px; }
.coach-directory h2,.coach-help h2 { margin:0; font-size:30px; line-height:1.5; }
.coach-directory__heading > p { font-size:15px; color:#617b84; margin:0 0 6px; }
.coach-filters { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:end; gap:22px; padding:24px; background:white; border:1px solid #dce8eb; border-radius:12px; }
.coach-filters fieldset { margin:0; padding:0; border:0; min-width:0; }
.coach-filters legend,.coach-language { font-size:13px; font-weight:700; line-height:1.6; color:#506973; }
.coach-filter-pills { display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
.coach-filter-pills button { border:1px solid #d6e2e6; background:#f7fafb; border-radius:6px; min-height:44px; padding:10px 15px; color:#3e5965; cursor:pointer; font:600 14px/1.4 system-ui,sans-serif; }
.coach-filter-pills button[aria-pressed='true'] { background:#1b6982; border-color:#1b6982; color:white; }
.coach-language { margin:0; display:grid; gap:10px; }
.coach-language select { min-height:44px; min-width:160px; padding:8px 36px 8px 12px; border:1px solid #c9dadd; background:#fff; border-radius:6px; color:#234653; font:500 14px/1.5 system-ui,sans-serif; }
.coach-result-count { color:#5c7580; font-size:13px; margin:20px 0; }
.coach-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; align-items:start; }
.coach-card { background:white; border:1px solid #dce7eb; border-radius:12px; overflow:hidden; box-shadow:0 4px 16px #17374705; }
.coach-card__photo { position:relative; aspect-ratio:4 / 5; overflow:hidden; background:#e7eef1; }
.coach-card__photo img { display:block; width:100%; height:100%; object-fit:cover; }
.coach-card__disciplines { position:absolute; left:16px; bottom:16px; background:#fffef4f2; color:#244953; font-size:12px; font-weight:750; padding:7px 10px; border-radius:5px; }
.coach-card__body { padding:22px; }
.coach-card h3 { margin:0 0 9px; font-size:25px; line-height:1.35; overflow-wrap:anywhere; }
.coach-card__languages { font-size:13px; line-height:1.7; color:#355967; margin:0; min-height:44px; }
.coach-card__languages > span { display:block; color:#72858c; font-size:11px; font-weight:600; }
.coach-card__certificates { list-style:none; margin:14px 0; padding:12px 0; min-height:58px; border-block:1px solid #e8eef0; font-size:12px; line-height:1.75; color:#3a6171; }
.coach-card__excerpt { color:#556e78; margin:0 0 18px; font-size:14px; line-height:1.8; min-height:76px; overflow-wrap:anywhere; }
.coach-bio { border-top:1px solid #e6edef; }
.coach-bio summary { display:flex; align-items:center; justify-content:space-between; padding:14px 0 0; min-height:44px; color:#1b6982; font-size:14px; font-weight:700; list-style:none; cursor:pointer; }
.coach-bio summary::-webkit-details-marker { display:none; }
.coach-bio summary span { transition:transform .15s ease; }
.coach-bio[open] summary span { transform:rotate(45deg); }
.coach-bio__text { font-size:14px; line-height:1.85; color:#455f6a; overflow-wrap:anywhere; }
.coach-bio__text p { margin:18px 0 0; }
.coach-directory__note { color:#637880; font-size:13px; line-height:1.8; margin:32px 0 0; }
.coach-empty { text-align:center; border:1px dashed #afcbd4; border-radius:12px; padding:42px 24px; background:#eff6f8; }
.coach-empty h3 { margin-top:0; font-size:22px; }
.coach-empty p { margin:12px auto 24px; max-width:520px; line-height:1.8; }
.coach-help { background:#e4f1ec; padding:48px 0 54px; }
.coach-help__layout { display:flex; justify-content:space-between; align-items:center; gap:36px; }
.coach-help p:not(.coach-eyebrow) { margin:12px 0 0; color:#506b65; font-size:15px; line-height:1.8; }
.coach-help__actions { display:grid; gap:14px; flex-shrink:0; text-align:center; }
.coach-text-link { display:inline-flex; align-items:center; gap:12px; color:#1b6982; min-height:44px; font-size:15px; font-weight:700; text-decoration:none; }
.coach-text-link:hover { text-decoration:underline; }
.home-coach-link { margin-top:14px; }
.season-status__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin:16px 0 12px; gap:16px; }
.season-status__grid dt { font-weight:700; font-size:13px; line-height:1.5; margin-bottom:4px; }
.season-status__grid dd { margin:0; font-size:16px; line-height:1.7; white-space:pre-line; }
.season-status__sources { display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; margin:12px 0 0; font-size:13px; line-height:1.7; }
.season-status__sources a { color:#175678; text-underline-offset:3px; min-height:28px; }
.season-status__note { font-size:14px; line-height:1.8; margin:10px 0; white-space:pre-line; }
.season-overview { padding:46px 24px; background:#f4f9fb; color:#193d4a; }
.season-overview__inner { max-width:1120px; margin:auto; }
.season-overview h2 { font-size:29px; line-height:1.5; margin:0 0 14px; letter-spacing:0; }
.season-overview__lead { font-size:15px; line-height:1.8; color:#526d78; max-width:850px; margin:0 0 28px; }
.season-table-wrap { overflow:auto; border:1px solid #d7e4e9; border-radius:10px; background:#fff; }
.season-table { width:100%; min-width:760px; border-collapse:collapse; text-align:left; font-size:14px; line-height:1.75; }
.season-table caption { text-align:left; padding:18px; font-size:13px; background:#e9f2f5; font-weight:650; color:#486875; }
.season-table__hint { display:none; }
.season-table th { padding:14px 16px; background:#edf5f7; color:#295367; border-bottom:1px solid #d7e4e9; vertical-align:top; }
.season-table td { padding:18px 16px; border-bottom:1px solid #e6edef; vertical-align:top; white-space:pre-line; }
.season-table tbody th { background:#fff; width:19%; font-size:15px; }
.season-table a { color:#1c6685; text-underline-offset:3px; }
.season-table__status { display:block; font-size:12px; color:#59766c; font-weight:500; margin-top:6px; }
.season-table__source { display:block; font-size:12px; margin-top:8px; }
.season-table__source a { display:inline-block; margin-right:8px; white-space:nowrap; }
.season-table tbody tr:last-child :is(th,td) { border-bottom:0; }
.season-overview__footer { font-size:13px; color:#627a84; margin:18px 0 0; line-height:1.8; }
.season-overview-navigation { text-align:center; padding:0 16px 20px; }
.season-overview-jump { max-width:100%; margin:0; }
html[lang="en"] .intro-bar { flex-wrap:wrap; gap:12px 20px; padding-inline:16px; }
html[lang="en"] .intro-bar .intro-text { max-width:100%; text-align:center; }
html[lang="en"] .intro-bar .recommend-bar { max-width:100%; padding-left:0; }
html[lang="en"] .intro-bar .recommend-text { white-space:normal; }
#season-hours { scroll-margin-top:125px; }
@media (min-width:992px) and (max-width:1199px) {
  .navbar .brand-logo { margin-left:20px; }
  .nav-menu .nav-link:not(.language-switch) { padding-left:12px; padding-right:12px; }
}
@media (min-width:992px) and (max-width:1279px) {
  html[lang="en"] .nav-menu .nav-link:not(.language-switch) {
    padding-left:10px; padding-right:10px; font-size:18px; line-height:26px; letter-spacing:0;
  }
}
@media (max-width:991px) {
  .coach-hero { margin-top:100px; padding-top:44px; }
  .coach-hero__layout { gap:28px; }
  .coach-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
  .season-table__hint { display:block; margin-top:6px; color:#1c6685; }
}
@media (max-width:991px) and (max-height:740px) {
  .nav-menu .nav-link,.nav-menu .nav-link.menu { padding-top:6px; padding-bottom:6px; }
}
@media (max-width:767px) {
  .coach-wrap { width:calc(100% - 32px); }
  .coach-hero { padding:35px 0 40px; }
  .coach-hero__layout { grid-template-columns:1fr; gap:28px; }
  .coach-hero__photo { transform:none; }
  .coach-hero__headline { font-size:32px; }
  .coach-directory { padding:40px 0; }
  .coach-directory__heading { display:block; }
  .coach-directory__heading > p { margin-top:10px; }
  .coach-directory h2,.coach-help h2 { font-size:25px; }
  .coach-filters { padding:18px; align-items:stretch; }
  .coach-language { width:100%; }
  .coach-filter-pills { gap:7px; }
  .coach-filter-pills button { padding-inline:10px; font-size:13px; }
  .coach-card__body { padding:20px; }
  .coach-help__layout { display:block; }
  .coach-help__actions { margin-top:24px; text-align:left; }
  .season-status__grid { grid-template-columns:1fr; gap:12px; }
  .season-overview { padding:32px 16px; }
  .season-overview h2 { font-size:25px; }
}
@media (max-width:539px) {
  .coach-grid { grid-template-columns:1fr; }
  .coach-card__excerpt { min-height:0; }
  .coach-card__certificates { min-height:0; }
}
/* The legacy contact buttons float at the right above 600px. Keep newly
   introduced reading and filtering surfaces out of that fixed control area. */
@media (min-width:601px) and (max-width:1279px) {
  .coach-wrap { width:calc(100% - 120px); margin-left:24px; margin-right:96px; }
  .season-overview { padding-right:96px; }
  .season-status { padding-right:90px; }
}
@media (min-width:601px) and (max-width:767px) {
  .coach-grid { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) { .coach-bio summary span { transition:none; } }
