.training-hub { color: var(--default-color, #163757); line-height: 1.7; }
.training-hub { font-family: 'Source Sans 3', system-ui, sans-serif; }
.training-hub h1, .training-hub h2, .training-hub h3,
.training-hub .training-faq summary { font-family: 'Inter', system-ui, sans-serif; font-weight: 600; letter-spacing: -.02em; }
.training-hub .container { max-width: 1200px; }
.training-hub h1 { overflow-wrap: break-word; }
.training-hub section { padding: 60px 0; scroll-margin-top: 110px; }
.training-hub h1 { font-size: clamp(2rem, 4.2vw, 3.4rem); line-height: 1.15; max-width: 900px; }
.training-hub h2, .training-home h2 { font-size: clamp(1.7rem, 3vw, 2.5rem); }
.training-hub h3 { font-size: 1.35rem; }
.training-hub p { max-width: 78ch; }
.training-hero { background: #f3f7fc; }
.training-hub .breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; padding: 0; margin-bottom: 28px; }
.training-hub .breadcrumbs li + li::before { content: '/'; margin-right: 10px; }
.training-kicker { color: #0845b5; font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; }
.training-intro { font-size: 1.15rem; margin: 24px 0; }
.training-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 24px; }
.training-actions .btn, .training-hub .training-card .btn { padding: 12px 20px; border-radius: 8px; white-space: normal; font-size: 1rem; }
.training-feature { border: 1px solid #ceddf1; border-left: 5px solid #0845b5; padding: 32px; border-radius: 16px; background: #f5f8ff; }
.training-badge { display: inline-block; padding: 6px 12px; margin-bottom: 18px; color: #0845b5; background: #e1ecfc; border-radius: 30px; font-size: .8rem; font-weight: 700; }
.training-paths { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; padding: 0; margin: 22px 0; }
.training-paths li { padding: 6px 14px; border: 1px solid #c4d5ed; border-radius: 30px; background: #fff; color: #163757; }
.training-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin-top: 28px; }
.training-grid--standards { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.training-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.training-card { padding: 24px; border: 1px solid #d5dfeb; border-radius: 14px; background: #fff; display: flex; flex-direction: column; min-width: 0; }
.training-card p { margin: 12px 0; }
.training-card > a:last-child { margin-top: auto; }
.training-card > i { color: #0845b5; font-size: 1.8rem; margin-bottom: 16px; }
.training-hub a:not(.btn), .training-home a:not(.btn) { text-decoration: underline; text-underline-offset: 3px; }
.training-hub .training-grid--standards h3 { font-size: 1.15rem; }
.training-soft { background: #f5f8fc; }
.training-tabs { display: flex; flex-wrap: wrap; gap: 10px; margin: 28px 0; }
.training-tabs button { font: inherit; color: #0845b5; padding: 10px 20px; border: 1px solid #9eafd0; border-radius: 30px; background: #fff; }
.training-tabs button[aria-selected="true"] { color: #fff; background: #0845b5; border-color: #0845b5; }
.training-session-status { margin: 18px 0; }
.training-sessions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.training-sessions dl { margin: 12px 0 24px; }
.training-sessions dt { font-weight: 600; margin-top: 8px; }
.training-sessions dd { margin: 0; overflow-wrap: anywhere; }
.training-sessions h3 { overflow-wrap: anywhere; }
.training-steps { counter-reset: step; list-style: none; padding: 0; }
.training-steps li::before { counter-increment: step; content: '0' counter(step); font-size: 1.8rem; color: #0845b5; font-weight: 700; margin-bottom: 14px; }
.training-faq details { border: 1px solid #d5dfeb; border-radius: 12px; padding: 20px 24px; margin-top: 12px; }
.training-faq summary { cursor: pointer; display: flex; justify-content: space-between; gap: 20px; list-style: none; font-weight: 600; }
.training-faq summary::-webkit-details-marker { display: none; }
.training-faq summary::after { content: '+'; color: #0845b5; }
.training-faq details[open] summary::after { content: '−'; }
.training-faq details p { margin: 16px 0 0; }
.training-independence { padding: 24px; border-left: 4px solid #0845b5; background: #f5f8fc; margin-top: 40px; }
.training-final { background: #080874; color: #fff; }
.training-hub .training-final h2, .training-hub .training-final p { color: #fff; }
.training-final .btn-outline-primary { border-color: #fff; color: #fff; }
.training-final .btn-outline-primary:hover { background: #fff; color: #080874; }
.training-home .training-feature { margin-top: 28px; }
.training-agenda { list-style: none; padding: 0; display: grid; gap: 14px; margin-top: 28px; }
.training-agenda .training-card { flex-direction: row; gap: 24px; align-items: baseline; }
.training-agenda h3 { flex: 0 0 80px; }
.training-agenda p { margin: 0; }
#training_session_details { overflow-wrap: anywhere; }
#training_session_details dt { margin-top: 8px; }
#training_session_details dd { margin-left: 0; }
#training_session_retry[hidden] { display: none; }
#training-reg-form .error-message { display:none; background:#df1529; color:#fff; text-align:left; padding:15px; margin-bottom:24px; font-weight:600; }
#training-reg-form .sent-message { display:none; color:#fff; background:#059652; text-align:center; padding:15px; margin-bottom:24px; font-weight:600; }
#training-reg-form .loading { display:none; background:var(--surface-color); text-align:center; padding:15px; margin-bottom:24px; }
#training-reg-form .loading:before { content:""; display:inline-block; border-radius:50%; width:24px; height:24px; margin:0 10px -6px 0; border:3px solid var(--accent-color); border-top-color:var(--surface-color); animation:php-email-form-loading 1s linear infinite; }
@media (max-width:600px) { .training-agenda .training-card { flex-direction: column; gap: 0; } .training-agenda h3 { flex-basis: auto; } }
.training-hub :focus-visible, .training-home :focus-visible { outline: 3px solid #1265d8; outline-offset: 4px; }
/* Training visitors receive training calls to action; other pages keep their shared components. */
body:has(.training-hub) #call-to-action-2,
body:has(.training-hub) .contact-widget,
body:has(.training-hub) #stickyCta,
body:has(.training-hub) #stickyProgress { display: none !important; }
@media (max-width: 1100px) { .training-grid, .training-grid--standards { grid-template-columns: repeat(2, minmax(0, 1fr)); } .training-sessions { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .training-hub section { padding: 40px 0; } .training-grid, .training-grid--standards, .training-grid--two, .training-sessions { grid-template-columns: 1fr; } .training-feature, .training-card { padding: 22px; } .training-actions .btn { width: 100%; } .training-tabs button { padding: 10px 14px; } .training-intro { font-size: 1rem; } }
@media (prefers-reduced-motion: reduce) { .training-hub * { scroll-behavior: auto !important; transition: none !important; } }
