.courses-index-page .courses-index-hero { padding: 38px 0; background: linear-gradient(115deg, #f1f7f8 0%, #fffaf2 100%); border-bottom: 1px solid #e2e9e9; }
.courses-index-page .courses-index-hero::after { display: none; }
.courses-index-page .courses-index-hero h1 { margin: 10px 0; color: #123e55; font-size: clamp(2rem, 3.3vw, 3rem); letter-spacing: -.04em; }
.courses-index-page .courses-index-hero .lead { max-width: 720px; margin: 0; color: #586b77; font-size: 1rem; line-height: 1.6; }
.courses-index-page .courses-index-section { padding: 28px 0 60px; }
.course-catalog-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.course-catalog-heading h2 { margin: 0 0 5px; font-size: 1.35rem; }
.course-catalog-heading p { margin: 0; color: #647680; font-size: .85rem; }
.courses-index-page .course-catalog-filter { display: flex; align-items: center; gap: 10px; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
.courses-index-page .course-catalog-filter .form-label { font-size: .8rem; }
.courses-index-page .course-catalog-filter .form-control { width: 220px; max-width: 100%; min-height: 44px; background: #fff; font-size: .85rem; }
.courses-index-page .course-catalog-filter .btn { min-height: 44px; }
.course-catalog-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
.course-catalog-card { display: flex; min-width: 0; overflow: hidden; flex-direction: column; border: 1px solid #dce5e8; border-radius: 20px; background: #fff; box-shadow: 0 8px 28px rgba(18, 62, 85, .06); transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.course-catalog-card:only-child { width: min(100%, 760px); grid-column: 1 / -1; justify-self: center; }
.course-catalog-card:hover { transform: translateY(-4px); border-color: #c8d8dd; box-shadow: 0 18px 40px rgba(18, 62, 85, .11); }
.course-catalog-poster { display: flex; align-items: center; justify-content: center; width: 100%; min-width: 0; aspect-ratio: 16 / 9; overflow: hidden; padding: 12px; background: linear-gradient(145deg, #e8f1f3, #f7fafb); border-bottom: 1px solid #e1e9ec; }
.course-catalog-poster img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: center; border-radius: 10px; transition: transform .35s ease, filter .35s ease; }
.course-catalog-card:hover .course-catalog-poster img { transform: scale(1.012); filter: saturate(1.04); }
.course-catalog-body { display: flex; flex-direction: column; align-items: start; min-width: 0; padding: 24px; }
.course-catalog-status { display: inline-flex; align-items: center; gap: 6px; padding: 5px 8px; margin-bottom: 16px; border-radius: 6px; background: #edf7f1; color: #216b48; font-size: .65rem; font-weight: 650; }
.course-catalog-status::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.course-catalog-status.is-closed { color: #715e49; background: #f6f0e8; }
.course-catalog-college { margin: 0 0 8px; color: #5d7180; font-size: .7rem; line-height: 1.45; }
.course-catalog-body h3 { margin: 0 0 12px; font-size: 1.2rem; line-height: 1.3; letter-spacing: -.025em; overflow-wrap: anywhere; }
.course-catalog-body h3 a { color: #123e55; }
.course-catalog-description { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; margin: 0 0 18px; color: #647580; font-size: .82rem; line-height: 1.65; }
.course-catalog-facts { display: flex; flex-wrap: wrap; gap: 12px 22px; margin-bottom: 20px; }
.course-catalog-facts span { display: grid; gap: 4px; color: #344e5f; font-size: .78rem; }
.course-catalog-facts small, .course-catalog-bottom small { display: block; color: #71808b; font-size: .67rem; }
.course-catalog-gold { margin: 0 0 16px; color: #85601b; font-size: .72rem; line-height: 1.5; }
.course-catalog-bottom { display: flex; flex-wrap: wrap; width: 100%; justify-content: space-between; align-items: center; gap: 12px; margin-top: auto; padding-top: 16px; border-top: 1px solid #e5ebed; }
.course-catalog-bottom strong { display: block; margin-top: 3px; color: #123e55; font-size: 1.35rem; line-height: 1.2; }
.course-catalog-bottom .btn { min-height: 42px; padding: 10px 12px; font-size: .78rem; box-shadow: none; white-space: nowrap; }
@media (max-width: 1100px) {
    .course-catalog-toolbar { align-items: start; flex-wrap: wrap; }
}
@media (max-width: 820px) {
    .course-catalog-grid { width: 100%; grid-template-columns: minmax(0, 1fr); }
    .course-catalog-card:only-child { width: 100%; }
}
@media (max-width: 600px) {
    .courses-index-page .courses-index-hero { padding: 26px 0; }
    .courses-index-page .courses-index-hero .lead { font-size: .9rem; }
    .course-catalog-toolbar { gap: 18px; }
    .courses-index-page .course-catalog-filter { display: grid; width: 100%; grid-template-columns: minmax(0, 1fr); gap: 8px; }
    .courses-index-page .course-catalog-filter .form-control { width: 100%; }
    .courses-index-page .course-catalog-filter .btn { width: 100%; }
    .course-catalog-poster { padding: 8px; }
    .course-catalog-body { padding: 22px; }
    .course-catalog-body h3 { font-size: 1.25rem; }
}
