/* Deliberately scoped: trainers keep their own controls and variables. */
.simple-nav, .simple-footer, .mobile-booking { color: #282a27; font-family: "Golos Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 16px; line-height: 1.5; box-sizing: border-box; }
.simple-nav *, .simple-footer *, .mobile-booking * { box-sizing: border-box; }
.simple-nav.site-header { position: relative; z-index: 60; display: block; margin: 0; padding: 0; background: #fbfaf7; border: 0; border-bottom: 1px solid #dedfd9; }
.site-shell { width: min(calc(100% - 40px), 1320px); margin-inline: auto; }
.simple-nav .site-header-inner { display: flex; min-height: 84px; align-items: center; justify-content: space-between; gap: 36px; padding-block: 14px; }
.simple-nav .site-brand { display: inline-flex; align-items: center; min-height: 44px; color: #282a27; font-family: "Lora", Georgia, serif; font-weight: 600; font-size: 20px; line-height: 1.4; text-decoration: none; white-space: nowrap; }
.simple-nav .primary-links { display: flex; align-items: center; gap: 32px; margin: 0; padding: 0; border: 0; background: transparent; }
.simple-nav .primary-links a { display: inline-flex; min-height: 44px; align-items: center; color: #62655f; font-size: 16px; font-weight: 400; line-height: 1.4; text-decoration: none; white-space: nowrap; border-bottom: 2px solid transparent; }
.simple-nav .primary-links a:hover { color: #282a27; border-bottom-color: #dedfd9; }
.simple-nav .primary-links a.active { color: #282a27; font-weight: 600; border-bottom-color: #282a27; }
.mobile-booking a { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; padding: 11px 20px; border: 1px solid #355647; border-radius: 12px; background: #355647; color: #fff; font-size: 16px; font-weight: 600; line-height: 1.3; text-align: center; text-decoration: none; white-space: nowrap; }
.mobile-booking a:hover { background: #29483a; }
.simple-nav a:focus-visible, .simple-footer a:focus-visible, .mobile-booking a:focus-visible { outline: 2px solid #507363; outline-offset: 5px; }
.simple-footer.site-footer { display: block; margin: 0; padding: 32px 0; border: 0; border-top: 1px solid #dedfd9; background: #fbfaf7; text-align: left; }
.simple-footer .site-footer-inner { display: grid; grid-template-columns: minmax(250px,1fr) minmax(0,1.5fr) auto; align-items: start; gap: 28px; }
.simple-footer .site-footer-contact { display: grid; gap: 6px; }
.simple-footer .site-footer-contact strong { font-weight: 600; color: #282a27; }
.simple-footer .site-footer-contact span, .simple-footer .site-copyright { color: #6f726c; font-size: 14px; }
.simple-footer a { color: #62655f; text-decoration: none; font-size: 15px; line-height: 1.5; }
.simple-footer a:hover { text-decoration: underline; text-underline-offset: 3px; }
.simple-footer .site-footer-links { display: flex; flex-wrap: wrap; gap: 12px 24px; }
.mobile-booking { display: block; position: fixed; z-index: 40; bottom: 24px; right: 24px; }
body:has(> .mobile-booking) { padding-bottom: calc(90px + env(safe-area-inset-bottom,0px)); }
body:has(> .mobile-booking) main a, body:has(> .mobile-booking) footer a { scroll-margin-bottom: 110px; }
@media (min-width: 761px) { .mobile-booking a { min-height: 52px; box-shadow: 0 6px 20px rgba(40,42,39,.12); } }
.home-primary-links { display: flex; flex-wrap: wrap; gap: 12px 26px; margin-top: 18px; }
.home-primary-links a { display: inline-flex; min-height: 44px; align-items: center; font-weight: 600; text-decoration: underline; text-underline-offset: 5px; }
main > section { scroll-margin-top: 20px; }
.home-journey > section { margin-block: clamp(56px,7vw,90px); }
.home-journey .hero-grid { margin-top: 44px; }
.example-note { margin-top: 14px; color: #6f726c; font-size: 14px; }
.home-journey .learning-map-head span { color: #6f726c; }
.section-links { display: flex; flex-wrap: wrap; gap: 14px 26px; margin-top: 22px; }
.section-links a { font-weight: 600; }
.materials-section > h2 { margin-bottom: 24px; }
.materials-page > section { max-width: none; margin-block: clamp(48px,6vw,76px); }
.materials-page .page-intro { margin-top: 44px; }
.materials-hub { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.materials-hub .card-link { display: flex; margin: 0; flex-direction: column; align-items: flex-start; }
.materials-hub h3 { margin-top: 8px; font-size: 1.25rem; }
.materials-hub p { margin-top: 12px; color: var(--muted); }
.materials-hub strong { margin-top: auto; padding-top: 18px; }
.teacher-material-card { display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center; }
.teacher-material-card p { margin-top: 10px; }
.teacher-material-card .text-link { white-space: nowrap; }
.compact-help { margin-top: 28px; padding-top: 20px; border-top: 1px solid #dedfd9; color: #6f726c; }
.compact-help a { font-weight: 600; }
.direction-fit { margin-top: 20px; }
.direction-fit strong { color: #282a27; }
.subject-formula.subject-intent { flex-direction: column; gap: 12px; font-family: var(--font-body); }
.subject-intent strong { font-size: 1.4rem; }
.subject-intent small { font-size: 1rem; color: var(--muted); }
/* Site chrome must not inherit global trainer classes. */
.site-route-bar { background: #fbfaf7 !important; border-color: #dedfd9 !important; }
.site-route-help { display: none; }
.site-route-bar .route-help-copy, .site-route-bar .route-help { display: none; }
.water-course { position: relative; height: max(660px,calc(100svh - 140px)); }
body.water-tool, html:has(body.water-tool) { height: auto; overflow: auto; }
.water-tool > .site-route-bar { position: static; height: auto; min-height: 44px; }
.water-course > .topbar { position: absolute; top: 0; }
.water-course > .sidebar, .water-course > .stage { position: absolute; top: 58px; }
.water-course .topbar .title { flex: 0 0 auto; }
@media (min-width: 1100px) { .materials-page .materials-hub { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width: 900px) {
  .simple-nav .site-header-inner { gap: 20px; }
  .simple-nav .primary-links { gap: 20px; }
  .simple-footer .site-footer-inner { grid-template-columns: 1fr 1.3fr; }
  .simple-footer .site-copyright { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .simple-nav .site-header-inner { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; padding-block: 14px 6px; }
  .simple-nav .site-brand { font-size: 18px; }
  .simple-nav .primary-links { grid-column: 1 / -1; grid-row: 2; display: flex; justify-content: space-between; gap: 16px; width: 100%; }
  .simple-nav .primary-links a { min-height: 44px; font-size: 16px; }
  .materials-hub { grid-template-columns: 1fr; }
  .teacher-material-card { grid-template-columns: 1fr; gap: 16px; }
  .simple-footer .site-footer-inner { grid-template-columns: 1fr; gap: 24px; }
  .mobile-booking { display: block; position: fixed; z-index: 40; bottom: 0; left: 0; right: 0; padding: 10px 20px calc(10px + env(safe-area-inset-bottom,0px)); background: rgba(251,250,247,.98); border-top: 1px solid #dedfd9; }
  .mobile-booking a { display: flex; width: 100%; min-height: 52px; padding: 12px 14px; white-space: normal; }
  .home-journey .hero-grid { margin-top: 32px; }
}
@media (max-width: 420px) {
  .site-shell { width: calc(100% - 32px); }
  .simple-nav .site-brand { font-size: 16px; white-space: normal; }
  .simple-nav .site-header-inner { gap: 10px 8px; }
}
@media (max-width: 350px) {
  .simple-nav .site-header-inner { grid-template-columns: 1fr; }
  .simple-nav .site-brand { text-align: center; font-size: 18px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Disclosure navigation: ordinary overview links plus separate arrow buttons. */
.simple-nav [hidden] { display: none !important; }
.simple-nav .primary-links { gap: 24px; }
.simple-nav .nav-group { position: relative; min-width: 0; margin: 0; padding: 0; font-size: 16px; line-height: 1.5; text-transform: none; letter-spacing: normal; }
.simple-nav .nav-parent { display: flex; align-items: center; gap: 2px; }
.simple-nav .nav-main-link { padding-inline: 4px; }
.simple-nav .nav-disclosure { display: none; width: 44px; height: 44px; min-height: 44px; padding: 0; border: 0; border-radius: 8px; background: transparent; color: #62655f; cursor: pointer; align-items: center; justify-content: center; }
.simple-nav.nav-enhanced .nav-disclosure { display: inline-flex; }
.simple-nav .nav-disclosure:hover { background: #f0f0ea; color: #282a27; }
.simple-nav .nav-disclosure svg { width: 16px; height: 16px; }
.simple-nav .nav-disclosure[aria-expanded="true"] svg { transform: rotate(180deg); }
.simple-nav button:focus-visible { outline: 2px solid #507363; outline-offset: 3px; }
.simple-nav .nav-panel { display: grid; list-style: none; min-width: 240px; margin: 6px 0 0; padding: 6px; border: 1px solid #dedfd9; border-radius: 12px; background: #fff; }
.simple-nav.nav-enhanced .nav-panel { position: absolute; top: 100%; left: -8px; z-index: 50; box-shadow: 0 10px 28px rgba(40,42,39,.08); }
.simple-nav.nav-enhanced .nav-group:last-child .nav-panel { left: auto; right: 0; }
.simple-nav .nav-panel li { margin: 0; padding: 0; }
.simple-nav .nav-panel a { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; min-height: 44px; padding: 10px 12px; border: 0; border-radius: 7px; color: #282a27; font-size: 16px; font-weight: 400; line-height: 1.4; white-space: normal; }
.simple-nav .nav-panel a small { display: block; margin-top: 3px; font-size: 13px; color: #6f726c; }
.simple-nav .nav-panel a:hover, .simple-nav .nav-panel a.active { border: 0; background: #f5f4f0; color: #282a27; }
.simple-nav .nav-panel a.active { font-weight: 600; }
.simple-nav .site-menu-toggle { display: none; min-height: 44px; padding: 10px 16px; border: 1px solid #dedfd9; border-radius: 10px; background: transparent; color: #282a27; font: inherit; font-weight: 600; cursor: pointer; }
.simple-nav:not(.nav-enhanced) .site-header-inner { flex-wrap: wrap; }
.simple-nav:not(.nav-enhanced) .primary-links { order: 3; width: 100%; flex-wrap: wrap; align-items: flex-start; }
.simple-nav:not(.nav-enhanced) .nav-group { flex: 1; }
.cards.four { grid-template-columns: repeat(4,minmax(0,1fr)); }
.landing-rates { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin-top: 24px; }
.landing-rate { padding: 24px; border: 1px solid #dedfd9; border-radius: 14px; background: #fff; }
.landing-rate h3 { font-size: 1.1rem; }
.landing-rate .rate-amount { margin-top: 14px; font-size: 1.45rem; font-weight: 600; color: #282a27; }
.landing-rate .rate-unit { margin-top: 3px; color: #6f726c; font-size: 15px; }
.landing-rate p:last-child { margin-top: 12px; color: #6f726c; }
.contact-options { display: flex; flex-wrap: wrap; gap: 14px 28px; margin-top: 24px; }
.contact-options a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; }
.contact-secondary { margin-top: 14px; color: #6f726c; }
.contact-secondary a { overflow-wrap: anywhere; }
.home-contacts > p { margin-top: 16px; max-width: 740px; color: #6f726c; }
.olymp-learning { margin-block: 44px; }
.olymp-learning > h2 { margin-bottom: 18px; }
.olymp-learning > p { max-width: 900px; }
.olymp-process { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 18px; margin: 22px 0 0; padding: 0; list-style: none; }
.olymp-process li { border-top: 1px solid #dedfd9; padding-top: 14px; }
.olymp-process li strong { display: block; margin-bottom: 8px; }
.olymp-proof-note { margin-top: 18px; color: #6f726c; }
.olymp-learning .olymp-process { font-size: 16px; }
.olymp-learning .olymp-process strong { color: #282a27; }
.olymp-learning .olymp-proof-note { font-size: 16px; line-height: 1.6; }
.olymp-learning .olymp-general-rates, .olymp-learning .olymp-teaching-reviews { grid-template-columns: repeat(2,minmax(0,1fr)); }
@media (max-width: 1100px) {
  .cards.four, .landing-rates { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 900px) {
  .simple-nav .site-header-inner { gap: 16px; }
  .simple-nav .primary-links { gap: 12px; }
  .olymp-process { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 1000px) {
  .simple-nav .site-header-inner { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; padding-block: 14px 6px; }
  .simple-nav .site-brand { grid-column: 1; grid-row: 1; font-size: 18px; white-space: normal; }
  .simple-nav.nav-enhanced .site-menu-toggle { display: inline-flex; grid-column: 2; grid-row: 1; }
  .simple-nav .primary-links { grid-column: 1 / -1; grid-row: 2; display: grid; grid-template-columns: minmax(0,1fr); justify-content: stretch; align-items: stretch; gap: 0; padding: 4px 0 10px; }
  .simple-nav .nav-group { border-top: 1px solid #dedfd9; width: 100%; }
  .simple-nav .nav-parent { justify-content: space-between; }
  .simple-nav .nav-main-link { flex: 1; padding: 12px 4px; min-height: 48px; }
  .simple-nav.nav-enhanced .nav-panel { position: static; margin: 0 0 12px; box-shadow: none; min-width: 0; }
  .simple-nav:not(.nav-enhanced) .primary-links { display: grid; }
  .contact-options { flex-direction: column; gap: 8px; }
  .contact-options a { overflow-wrap: anywhere; }
  body:has(.site-menu-toggle[aria-expanded="true"]) .mobile-booking { display: none; }
}
@media (max-width: 500px) {
  .cards.four, .landing-rates, .olymp-process { grid-template-columns: 1fr; }
  .olymp-learning .olymp-general-rates, .olymp-learning .olymp-teaching-reviews { grid-template-columns: 1fr; }
}
@media (max-width: 350px) {
  .simple-nav .site-header-inner { grid-template-columns: minmax(0,1fr) auto; }
  .simple-nav .site-brand { text-align: left; font-size: 16px; }
}
