/* Course pages: retain the association palette while strengthening readability. */
.listing-heading h1,.course-hero h1 { color:#203448; line-height:1.3; }
.listing-heading p,.course-body p,.course-card p,.registration-card p,.academy-test-order p { color:#344b55; line-height:1.75; }
.filters { background:#f0f3ed; border:1px solid #b7c3b8; border-radius:10px; padding:1.5rem; }
.filters label,.filters legend { color:#203448; font-weight:600; }
.filters input,.filters select,.enrollment-steps input:not([type=checkbox]),.enrollment-steps select { min-height:52px; font-size:1rem; border:1px solid #76877d; background:#fff; color:#203448; }
.course-card,.registration-card,.academy-test-order,.session-announcement { border:1px solid #bdc9bf; border-radius:10px; }
.course-card-body { padding:1.4rem; }
.course-card h3 { line-height:1.4; }
.course-meta { color:#304a3d; line-height:1.7; }
.category-tabs a,.detail-nav a { min-height:48px; display:inline-flex; align-items:center; color:#203448; }
.category-tabs a.selected { background:#315c49; color:#fff; }
.detail-nav { gap:.5rem 1.25rem; }
.registration-card { background:#f5f7f2; }
.step-indicator { display:none; padding:0; margin:0 0 1.5rem; list-style:none; gap:.5rem; }
.steps-ready .step-indicator { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.step-indicator li { padding:.65rem .4rem; border-bottom:4px solid #aab8ad; color:#40564a; font-weight:600; text-align:center; line-height:1.4; }
.step-indicator li[aria-current=step] { border-color:#315c49; color:#173c2b; background:#e2ede3; }
.enrollment-steps [hidden] { display:none !important; }
.enrollment-steps h3 { font-size:1.3rem; line-height:1.4; margin:0 0 .5rem; }
.enrollment-steps label { display:block; margin:1rem 0; font-weight:600; color:#203448; }
.enrollment-steps label.check { display:flex; align-items:flex-start; gap:.7rem; line-height:1.6; }
.enrollment-steps label.check input { width:24px; height:24px; flex:none; margin-top:.2rem; }
.enrollment-steps details { padding:1rem; background:#fff; border:1px solid #b7c3b8; border-radius:6px; }
.enrollment-steps summary { cursor:pointer; font-weight:600; min-height:44px; }
.enrollment-review { background:#fff; border:1px solid #bdc9bf; border-radius:6px; padding:1rem; }
.enrollment-review div { padding:.5rem 0; border-bottom:1px solid #e0e5df; }
.enrollment-review div:last-child { border:0; }
.enrollment-review dt { color:#40564a; font-weight:600; }
.enrollment-review dd { margin:.2rem 0 0; overflow-wrap:anywhere; }
.step-actions { display:flex; flex-wrap:wrap; gap:.75rem; margin:1.25rem 0; }
.step-actions button,.filters button { min-height:52px; }
.enrollment-steps:not(.steps-ready) [data-next],.enrollment-steps:not(.steps-ready) [data-previous],.enrollment-steps:not(.steps-ready) [data-review] { display:none; }
.course-card a:focus-visible,.detail-nav a:focus-visible,.enrollment-steps :focus-visible,.filters :focus-visible { outline:3px solid #b06a18; outline-offset:3px; }
@media(max-width:640px) { .filters { padding:1rem; } .step-indicator li { font-size:.9rem; } .step-actions button { width:100%; } }
/* The legacy booking card styles disabled buttons globally; scope active controls explicitly. */
.registration-card .enrollment-steps .button.primary,.academy-test-order .enrollment-steps .button.primary { background:#203b4d; color:#fff; cursor:pointer; }
.registration-card .enrollment-steps .button.outline,.academy-test-order .enrollment-steps .button.outline { background:#fff; color:#203b4d; border:2px solid #203b4d; cursor:pointer; }
.registration-card .enrollment-review>div { display:block; }
.registration-card .enrollment-review { padding:1rem; }
@media(min-width:1001px) { .detail-grid { grid-template-columns:minmax(0,1fr) minmax(350px,410px); gap:2.5rem; } }
@media(min-width:761px) and (max-width:1000px) { .detail-grid { display:flex; flex-direction:column; } .registration-card { order:-1; position:static; width:100%; } .course-body { width:100%; } }
