[data-trainers-page] { position: relative; }
.trainer-preview-section { position: relative; overflow: hidden; }
.trainer-preview-section::before,
.trainer-hero::before,
.trainer-hero::after { content: ''; position: absolute; pointer-events: none; }
.trainer-preview-section::before {
  top: -120px; right: -80px; width: 320px; height: 320px; border-radius: 50%;
  background: radial-gradient(circle, rgba(1, 179, 192, 0.14) 0%, rgba(1, 179, 192, 0) 70%);
}
.trainer-hero {
  position: relative; padding: calc(var(--header-h) + 14px) 0 26px;
  background: linear-gradient(135deg, #03192f 0%, #0a3054 48%, #0f4c67 100%); overflow: hidden;
}
.trainer-page-skeleton {
  position: absolute; inset: 0; z-index: 3; pointer-events: none; opacity: 1; visibility: visible;
  background: linear-gradient(180deg, rgba(248, 251, 252, 0.96) 0%, rgba(248, 251, 252, 0.92) 100%);
  transition: opacity .22s ease, visibility .22s ease;
}
[data-trainers-ready='true'] .trainer-page-skeleton { opacity: 0; visibility: hidden; }
.trainer-page-skeleton-inner, .trainer-skeleton-hero, .trainer-skeleton-roster, .trainer-skeleton-profile { display: grid; gap: 24px; }
.trainer-page-skeleton-inner { padding: calc(var(--header-h) + 18px) 0 38px; align-content: start; }
.trainer-skeleton-roster { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.trainer-skeleton-profile { grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr); }
.trainer-skeleton-block {
  display: block; position: relative; overflow: hidden; border-radius: 18px;
  background: linear-gradient(90deg, rgba(226, 234, 239, 0.95) 0%, rgba(244, 248, 250, 1) 50%, rgba(226, 234, 239, 0.95) 100%);
  background-size: 200% 100%; animation: trainer-shimmer 1.2s linear infinite;
}
.trainer-skeleton-chip { width: 130px; height: 24px; border-radius: 999px; }
.trainer-skeleton-line { width: 100%; height: 14px; }
.trainer-skeleton-line--sm { width: 34%; }
.trainer-skeleton-line--med { width: 68%; }
.trainer-skeleton-line--wide { width: 88%; }
.trainer-skeleton-line--hero { width: min(560px, 100%); height: 24px; }
.trainer-skeleton-pill { width: 180px; height: 42px; border-radius: 999px; }
.trainer-skeleton-card { min-height: 134px; }
.trainer-skeleton-panel { min-height: 240px; }
.trainer-skeleton-panel--tall { min-height: 360px; }
.trainer-skeleton-photo { width: 180px; height: 220px; }
.trainer-skeleton-chip-row, .trainer-skeleton-stack { display: grid; gap: 12px; }
.trainer-skeleton-chip-row { grid-template-columns: repeat(3, minmax(0, max-content)); }
@keyframes trainer-shimmer {
  from { background-position: 200% 0; }
  to { background-position: -200% 0; }
}
.trainer-hero::before {
  top: -18%; right: -6%; width: 380px; height: 380px; border-radius: 50%;
  background: radial-gradient(circle, rgba(1, 242, 244, 0.14) 0%, rgba(1, 242, 244, 0) 70%);
}
.trainer-hero::after {
  left: -8%; bottom: -22%; width: 420px; height: 420px; border-radius: 50%;
  background: radial-gradient(circle, rgba(1, 179, 192, 0.12) 0%, rgba(1, 179, 192, 0) 72%);
}
.trainer-hero-grid, .trainer-preview-grid, .trainer-profile-intro, .trainer-directory-grid, .trainer-expertise-grid, .trainer-achievement-grid, .trainer-summary-grid { display: grid; gap: 24px; }
.trainer-hero-grid { grid-template-columns: minmax(0, 1fr); min-height: clamp(360px, 52vh, 560px); align-items: center; }
.trainer-profile-intro { grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr); align-items: start; }
.trainer-hero-copy, .trainer-directory-card, .trainer-profile-sheet, .trainer-profile-aside, .trainer-stat-card, .trainer-detail-card, .trainer-achievement-card, .trainer-accordion, .trainer-accordion details { border-radius: var(--radius-md); }
.trainer-directory-card, .trainer-profile-sheet, .trainer-profile-aside, .trainer-stat-card, .trainer-detail-card, .trainer-achievement-card, .trainer-accordion details { border: 1px solid rgba(255, 255, 255, 0.08); box-shadow: var(--shadow-md); }
.trainer-hero-copy { position: relative; z-index: 1; }
.trainer-hero-copy h1, .trainer-hero-copy p { color: var(--white); }
.trainer-hero-copy { max-width: min(980px, 100%); }
.trainer-hero-copy h1 { max-width: 960px; margin-bottom: 16px; font-size: clamp(2.5rem, 5.8vw, 5rem); line-height: 1.02; }
.trainer-hero-lead { max-width: 860px; color: rgba(255, 255, 255, 0.84); font-size: 1.02rem; line-height: 1.78; }
.trainer-hero-points, .trainer-pill-row, .trainer-tag-cloud { display: flex; flex-wrap: wrap; gap: 10px; }
.trainer-hero-points { margin: 20px 0 24px; }
.trainer-hero-points span, .trainer-pill-row span, .trainer-tag-cloud span, .trainer-kicker {
  display: inline-flex; align-items: center; justify-content: center; font-family: 'Montserrat', sans-serif;
  font-size: 0.76rem; font-weight: 700; letter-spacing: 0.04em; border-radius: 999px;
}
.trainer-hero-points span { padding: 10px 16px; color: rgba(255,255,255,.9); background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); }
.trainer-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.trainer-hero-outline:hover { background: rgba(255, 255, 255, 0.1); }
.trainer-hero-panel-label, .trainer-directory-meta, .trainer-profile-role, .trainer-accordion-meta {
  font-family: 'Montserrat', sans-serif; font-size: 0.74rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
}
.trainer-directory-thumb, .trainer-profile-photo img { display: block; object-fit: cover; }
.trainer-directory-grid { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.trainer-summary-grid, .trainer-expertise-grid, .trainer-achievement-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.trainer-stat-card { padding: 18px; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.12); }
.trainer-stat-card strong { display: block; font-family: 'Montserrat', sans-serif; font-size: 1.8rem; line-height: 1; margin-bottom: 8px; }
.trainer-stat-card span { color: rgba(255,255,255,.8); font-size: 0.92rem; line-height: 1.55; }
.trainer-directory-section { position: relative; }
.trainer-directory-grid { align-items: stretch; }
.trainer-directory-card {
  display: grid; grid-template-columns: 72px 1fr; gap: 18px; width: 100%; padding: 20px; text-align: left;
  background: linear-gradient(180deg, #ffffff 0%, #f7fbfd 100%); border: 1px solid rgba(4, 98, 123, 0.1); cursor: pointer;
  transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition), background-color var(--transition);
  min-height: 136px;
}
.trainer-directory-card:hover, .trainer-directory-card:focus-visible, .trainer-directory-card.is-active {
  transform: translateY(-5px); box-shadow: 0 18px 34px rgba(2, 31, 59, 0.14); border-color: rgba(1, 179, 192, 0.38);
}
.trainer-directory-card.is-active { background: linear-gradient(180deg, rgba(1, 179, 192, 0.14) 0%, rgba(255,255,255,1) 100%); }
.trainer-directory-card:focus-visible { outline: 2px solid rgba(1, 179, 192, 0.4); outline-offset: 2px; }
.trainer-directory-thumb { width: 72px; height: 86px; border-radius: 16px; }
.trainer-directory-meta { color: var(--teal); margin-bottom: 6px; }
.trainer-directory-card h3 { margin-bottom: 6px; font-size: 1.1rem; }
.trainer-directory-card p { color: #536171; font-size: 0.92rem; line-height: 1.65; }
.trainer-directory-card--skeleton { cursor: default; transform: none; box-shadow: var(--shadow-md); }
.trainer-directory-card--skeleton:hover { transform: none; border-color: rgba(4, 98, 123, 0.1); box-shadow: var(--shadow-md); }
.trainer-directory-thumb--skeleton { display: block; }
.trainer-profile-shell { background: linear-gradient(180deg, #ffffff 0%, #f8fbfc 100%); border: 1px solid rgba(4, 98, 123, 0.1); border-radius: 28px; padding: 24px; box-shadow: var(--shadow-lg); }
.trainer-profile-shell.is-loading { overflow: hidden; }
.trainer-profile-sheet { padding: 0; border: none; box-shadow: none; }
.trainer-profile-section { scroll-margin-top: calc(var(--header-h) + 18px); }
.trainer-profile-skeleton, .trainer-profile-skeleton-head { display: grid; gap: 24px; }
.trainer-profile-skeleton-grid { display: grid; gap: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.trainer-profile-skeleton-head { grid-template-columns: 180px minmax(0, 1fr); align-items: start; }
.trainer-profile-intro { margin-bottom: 24px; }
.trainer-profile-head { display: grid; grid-template-columns: minmax(150px, 180px) minmax(0, 1fr); gap: 24px; align-items: start; }
.trainer-profile-photo { padding: 14px; border-radius: 24px; background: linear-gradient(145deg, rgba(2, 31, 59, 1) 0%, rgba(4, 98, 123, 1) 100%); box-shadow: var(--shadow-md); }
.trainer-profile-photo img { width: 100%; aspect-ratio: 4 / 5; border-radius: 18px; }
.trainer-profile-role { color: var(--teal); margin-bottom: 10px; }
.trainer-profile-copy h2 { margin-bottom: 12px; }
.trainer-profile-copy .section-subtitle { max-width: none; color: #3f5060; }
.trainer-pill-row { margin-top: 22px; }
.trainer-pill-row span { padding: 10px 15px; color: var(--navy); background: rgba(1, 179, 192, 0.08); border: 1px solid rgba(4, 98, 123, 0.14); }
.trainer-profile-aside { padding: 24px; background: linear-gradient(180deg, rgba(2, 31, 59, 1) 0%, rgba(7, 65, 91, 1) 100%); border: 1px solid rgba(255,255,255,.05); }
.trainer-profile-aside h3, .trainer-profile-aside p, .trainer-profile-aside li, .trainer-profile-aside strong, .trainer-profile-aside span { color: var(--white); }
.trainer-kicker { padding: 8px 14px; margin-bottom: 14px; color: var(--aqua); background: rgba(255,255,255,.09); }
.trainer-content-section {
  padding: clamp(24px, 3vw, 36px) clamp(18px, 2.5vw, 30px); margin-bottom: 22px; border-radius: 24px;
  border: 1px solid rgba(4, 98, 123, 0.08); box-shadow: 0 10px 28px rgba(2, 31, 59, 0.06);
}
.trainer-content-section--teal { background: linear-gradient(180deg, rgba(1, 179, 192, 0.08) 0%, #ffffff 100%); }
.trainer-content-section--mist { background: linear-gradient(180deg, rgba(10, 48, 84, 0.05) 0%, #ffffff 100%); }
.trainer-content-section--sand { background: linear-gradient(180deg, rgba(201, 167, 101, 0.09) 0%, #ffffff 100%); }
.trainer-content-section--slate { background: linear-gradient(180deg, rgba(92, 103, 125, 0.08) 0%, #ffffff 100%); }
.trainer-content-section .section-title { color: #172537; }
.trainer-content-section .section-subtitle { color: #4b5b6a; }
.trainer-detail-card, .trainer-achievement-card, .trainer-accordion details { background: rgba(255, 255, 255, 0.92); border: 1px solid rgba(4, 98, 123, 0.1); }
.trainer-detail-card { padding: 24px; box-shadow: 0 8px 22px rgba(2, 31, 59, 0.05); }
.trainer-detail-card i { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; margin-bottom: 18px; border-radius: 16px; background: linear-gradient(135deg, var(--navy) 0%, var(--teal) 100%); color: var(--white); font-size: 1.1rem; }
.trainer-detail-card h3, .trainer-achievement-card h3, .trainer-accordion summary h3 { margin-bottom: 10px; font-size: 1.02rem; }
.trainer-detail-card p, .trainer-achievement-card p, .trainer-accordion-body p { color: #475868; line-height: 1.7; }
.trainer-achievement-card { position: relative; padding: 24px; overflow: hidden; box-shadow: 0 8px 22px rgba(2, 31, 59, 0.05); }
.trainer-achievement-card::before { content: ''; position: absolute; inset: 0 auto auto 0; width: 100%; height: 4px; background: linear-gradient(90deg, var(--cyan) 0%, var(--teal) 100%); }
.trainer-accordion { display: grid; gap: 14px; }
.trainer-accordion details { overflow: hidden; transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition); }
.trainer-accordion details:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(2, 31, 59, 0.08); }
.trainer-accordion details[open] { border-color: color-mix(in srgb, var(--sector-accent, var(--teal)) 40%, white); box-shadow: 0 18px 34px rgba(2, 31, 59, 0.1); }
.trainer-accordion summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 22px; cursor: pointer; list-style: none; }
.trainer-accordion summary::-webkit-details-marker { display: none; }
.trainer-accordion-title { display: flex; align-items: center; gap: 14px; }
.trainer-accordion-copy { min-width: 0; }
.trainer-accordion-accent { width: 14px; height: 52px; border-radius: 999px; background: linear-gradient(180deg, color-mix(in srgb, var(--sector-accent, var(--teal)) 68%, white) 0%, var(--sector-accent, var(--teal)) 100%); opacity: 0.92; }
.trainer-accordion-meta { color: var(--sector-accent, var(--teal)); margin-bottom: 6px; }
.trainer-accordion summary p { color: #566473; font-size: 0.92rem; }
.trainer-accordion summary h3 { color: #1a2b3b; }
.trainer-accordion-icon { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; background: color-mix(in srgb, var(--sector-accent, var(--teal)) 12%, white); color: var(--sector-accent, var(--teal)); font-size: 0.9rem; transition: transform var(--transition), background-color var(--transition), color var(--transition); }
.trainer-accordion details[open] .trainer-accordion-icon { transform: rotate(180deg); background: var(--sector-accent, var(--teal)); color: var(--white); }
.trainer-accordion-body { padding: 0 22px 22px; }
.trainer-tag-cloud span { padding: 8px 13px; background: #f9fbfc; border: 1px solid rgba(4, 98, 123, 0.1); color: #304050; font-size: 0.74rem; font-weight: 600; line-height: 1.45; transition: transform var(--transition), border-color var(--transition), background-color var(--transition), color var(--transition); }
.trainer-tag-cloud span:hover { transform: translateY(-1px); background: color-mix(in srgb, var(--sector-accent, var(--teal)) 10%, white); border-color: color-mix(in srgb, var(--sector-accent, var(--teal)) 28%, white); color: #172537; }
.trainer-empty-state { padding: 32px; text-align: center; background: var(--white); border: 1px dashed var(--border); border-radius: var(--radius-md); color: var(--text-light); }
@media (max-width: 1100px) {
  .trainer-page-skeleton-inner, .trainer-skeleton-roster, .trainer-skeleton-profile, .trainer-profile-skeleton-grid { grid-template-columns: 1fr; }
  .trainer-skeleton-chip-row { grid-template-columns: 1fr; }
  .trainer-profile-skeleton-head { grid-template-columns: 1fr; }
  .trainer-hero-grid { min-height: auto; }
  .trainer-profile-intro, .trainer-expertise-grid, .trainer-achievement-grid, .trainer-summary-grid { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .trainer-hero { padding: calc(var(--header-h) + 12px) 0 22px; }
  .trainer-hero-grid { min-height: auto; }
  .trainer-hero-copy h1 { font-size: clamp(2.15rem, 10vw, 3.05rem); line-height: 1.06; }
  .trainer-hero-lead { font-size: 0.98rem; line-height: 1.72; }
  .trainer-hero-points { gap: 8px; }
  .trainer-hero-points span { width: 100%; justify-content: flex-start; }
  .trainer-hero-actions { flex-direction: column; }
  .trainer-hero-actions .btn { width: 100%; justify-content: center; }
  .trainer-profile-shell { padding: 18px; border-radius: 22px; }
  .trainer-content-section { padding: 26px 18px; }
  .trainer-profile-head, .trainer-directory-card { grid-template-columns: 1fr; }
  .trainer-directory-thumb { margin: 0 auto; }
  .trainer-directory-card { text-align: center; }
  .trainer-directory-grid { grid-template-columns: 1fr; }
  .trainer-accordion summary { align-items: flex-start; gap: 12px; padding: 16px; }
  .trainer-accordion-title { flex: 1 1 auto; align-items: flex-start; gap: 12px; min-width: 0; }
  .trainer-accordion-copy h3 { margin-bottom: 8px; font-size: 0.98rem; line-height: 1.2; }
  .trainer-accordion-copy p:last-child { font-size: 0.88rem; line-height: 1.55; }
  .trainer-accordion-accent { width: 10px; height: 44px; margin-top: 2px; }
  .trainer-accordion-icon { width: 34px; height: 34px; margin-top: 2px; font-size: 0.82rem; }
  .trainer-accordion-body { padding: 0 18px 18px; }
}