.training-head { margin-bottom: clamp(40px, 5vw, 72px); }
.training-head .section-lead { color: var(--text); font-family: var(--font-serif); }
.training-plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: var(--rule); border-bottom: var(--rule); }
.training-plan { padding: clamp(28px, 3vw, 44px) clamp(20px, 3vw, 40px); }
.training-plan + .training-plan { border-left: var(--rule); }
.training-name { font-size: 1.0625rem; text-align: center; color: var(--muted); }
.training-price { white-space: nowrap; margin-top: 12px; text-align: center; min-height: 4.5rem; display: flex; align-items: baseline; justify-content: center; }
.training-price .numeral { font-size: clamp(2.5rem, 2rem + 1.8vw, 3.5rem); }
.training-from { font-family: var(--font-latin); font-size: 2rem; color: var(--gold); }
.training-price--quote { font-family: var(--font-serif); font-size: 1.5rem; align-items: center; }
.training-list { margin-top: 20px; padding-top: 20px; border-top: var(--rule); }
.training-list li { position: relative; padding: 4px 0 4px 1em; font-size: var(--fs-small); line-height: 1.8; }
.training-list li::before { content: ""; position: absolute; left: 0; top: 1.05em; width: 5px; height: 1px; background: var(--gold); }
.training-note { margin-top: 28px; font-size: var(--fs-small); color: var(--muted); max-width: 50em; }
@media (max-width: 860px) {
  .training-plans { grid-template-columns: 1fr; }
  .training-plan + .training-plan { border-left: 0; border-top: var(--rule); }
  .training-price { min-height: 0; }
}
