/* Driver, training and sim-class updates; independent of the Masterclass. */
#programs, #sim-classes, #drivers { scroll-margin-top: 100px; }
.site-preview-note { position: fixed; z-index: 1001; bottom: 12px; left: 12px; max-width: calc(100% - 100px); padding: 7px 12px; border: 1px solid #555; border-radius: 4px; background: #181818; color: #fff; font: 12px/1.4 var(--font-body); box-shadow: 0 2px 12px #0003; pointer-events: none; }
.nav-links { gap: clamp(1rem, 2vw, 2.5rem); }
.training-choice { margin: 0 0 2rem; border: 1px solid var(--border); background: #141414; padding: 2rem; }
.training-choice-heading { margin-bottom: 1.5rem; }
.training-choice-heading .eyebrow { margin-bottom: .7rem; }
.training-choice-heading h3 { color: #fff; font-family: var(--font-heading); font-size: 1.9rem; font-weight: 600; margin-bottom: .5rem; }
.training-choice-heading p:not(.eyebrow) { color: #bcbcbc; line-height: 1.6; }
.training-options { display: grid; grid-template-columns: 1fr auto 1fr; gap: 1.75rem; align-items: center; }
.training-option { display: flex; align-items: center; gap: 1.25rem; }
.training-option > strong { flex: 0 0 auto; font: italic 3.6rem/1 var(--font-display); color: var(--red); white-space: nowrap; min-width: 1.2em; }
.training-option h4 { color: #fff; font: 600 1.25rem/1.3 var(--font-heading); text-transform: uppercase; margin: 0 0 .5rem; }
.training-option p { color: #aaa; line-height: 1.6; font-size: .95rem; }
.training-or { color: #888; font: 600 .8rem/1 var(--font-heading); letter-spacing: .1em; }
.sim-section { padding: 6rem 0; background: #f4f4f2; color: #171717; }
.sim-header { max-width: 800px; margin-bottom: 3rem; }
.sim-header h2 { font: italic 700 clamp(2rem, 4vw, 3.5rem)/1.15 var(--font-display); text-transform: uppercase; margin-bottom: 1.5rem; }
.sim-header > p { max-width: 650px; color: #555; font-size: 1.1rem; line-height: 1.7; }
.sim-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.sim-card { display: flex; flex-direction: column; min-width: 0; background: #fff; border: 1px solid #ddd; }
.sim-coach-photo { height: 300px; overflow: hidden; background: #191919; }
.sim-coach-photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 15%; }
.sim-card-content { display: flex; flex-direction: column; flex: 1; padding: 2rem; }
.sim-card-content > .eyebrow { margin-bottom: .7rem; }
.sim-card h3 { font: italic 700 1.8rem/1.25 var(--font-display); -webkit-font-smoothing: antialiased; text-transform: uppercase; margin-bottom: 1.2rem; }
.sim-tags { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.2rem; }
.sim-tags span { padding: .45rem .7rem; background: #f3f3f3; border: 1px solid #ddd; font: 600 .85rem/1.4 var(--font-heading); }
.sim-description { color: #555; line-height: 1.7; margin-bottom: 1.75rem; }
.sim-card-footer { margin-top: auto; padding-top: 1.5rem; border-top: 1px solid #ddd; }
.sim-rate { display: flex; align-items: baseline; flex-wrap: wrap; gap: .6rem; margin-bottom: 1.5rem; }
.sim-rate strong { font: 600 2.5rem/1.1 var(--font-heading); }
.sim-rate small { font-size: 1rem; }
.sim-rate > span { color: #666; font-size: .95rem; }
.sim-card .btn-red { width: 100%; justify-content: space-between; gap: 1rem; }
.sim-booking-note { margin-top: 1.5rem; color: #666; font-size: .95rem; line-height: 1.6; }
.drivers-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.5rem; border: 0; }
.drivers-grid > .driver-card { flex: 0 1 calc((100% - 3rem) / 3); min-width: 0; border: 1px solid rgba(255,255,255,.1); }
.driver-info h3 { font-size: 1.8rem; }
@media (min-width: 769px) and (max-width: 1100px) {
  .drivers-grid > .driver-card { flex-basis: calc((100% - 1.5rem) / 2); }
}
@media (max-width: 1000px) and (min-width: 769px) {
  .nav-links { gap: .8rem; }
  .nav-links a { font-size: .7rem; }
  .nav-logo img { height: 23px; }
  .training-option { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 768px) {
  .nav-links { gap: 1.5rem; }
  .training-choice { padding: 1.5rem; }
  .training-options { grid-template-columns: 1fr; gap: 1.25rem; }
  .training-or { display: flex; align-items: center; gap: 1rem; }
  .training-or::before, .training-or::after { content: ''; flex: 1; height: 1px; background: #333; }
  .training-option > strong { min-width: 2.2em; font-size: 2.6rem; }
  .sim-section { padding: 4rem 0; }
  .sim-cards { grid-template-columns: 1fr; }
  .sim-card-content { padding: 1.5rem; }
  .sim-coach-photo { height: 320px; }
  .drivers-grid > .driver-card { flex-basis: 100%; }
  .driver-info h3 { font-size: 1.8rem; }
}
@media (prefers-reduced-motion: reduce) { .training-choice, .sim-header, .sim-card { opacity: 1; transform: none; transition: none; } }

@media (max-width: 480px) {
  .training-option { flex-direction: column; align-items: flex-start; gap: .8rem; }
  .training-option > strong { min-width: 0; }
}

/* Sim coaching is an open-booking subsection of the coaching team. */
.team-section { padding-bottom: 0; }
.team-section > .sim-section { background: var(--bg-alt); padding-top: 4rem; }
.sim-section > .container { border-top: 1px solid var(--border); padding-top: 4rem; }
@media (min-width: 1025px) {
  .team-slider-controls { display: none; }
  .team-card { flex-basis: calc(100% / 3); }
}

/* Public academy pricing and track-coach profiles. */
.academy-pricing { margin-top: 2rem; padding: 2rem; border: 1px solid var(--border); background: #141414; }
.academy-pricing h3 { color: #fff; font: 600 1.9rem/1.3 var(--font-heading); margin-bottom: .6rem; }
.academy-pricing > p { color: #bcbcbc; line-height: 1.65; }
.academy-pricing-scroll { overflow-x: auto; margin-top: 1.5rem; }
.academy-pricing table { width: 100%; border-collapse: collapse; color: #fff; text-align: left; font-variant-numeric: tabular-nums; }
.academy-pricing th, .academy-pricing td { padding: 1rem; border-bottom: 1px solid var(--border); }
.academy-pricing thead th { color: #bcbcbc; font-size: .85rem; font-weight: 500; }
.academy-pricing td { white-space: nowrap; }
.academy-pricing td:last-child { color: #ff5151; font-weight: 600; }
.academy-status { display: block; margin-top: .3rem; color: #bcbcbc; font-size: .75rem; font-weight: 500; }
.team-grid--pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; }
.team-grid--pair .team-card-img { aspect-ratio: 1; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (max-width: 768px) {
  .academy-pricing { padding: 1.25rem; }
  .academy-pricing th, .academy-pricing td { padding: .8rem .45rem; font-size: .8rem; }
  .team-grid--pair { grid-template-columns: 1fr; }
  .team-grid--pair > .team-card { border-right: 0; }
}
