.section-programs { padding: 2rem; border: 1px solid var(--bs-border-color); border-radius: 1rem; background: var(--bs-body-bg); }
.programs-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.25rem; flex-wrap: wrap; }
.programs-header > .btn { flex-shrink: 0; }
.programs-kicker { font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: var(--bs-secondary-color); margin-bottom: .5rem; }
.programs-title { font-size: 2rem; font-weight: 700; margin-bottom: .65rem; }
.program-card { border-color: var(--bs-border-color); border-radius: .75rem; overflow: hidden; }
.program-cover { height: 190px; display: flex; align-items: center; justify-content: center; padding: .75rem; background: var(--bs-tertiary-bg); }
.program-cover img { width: 100%; height: 100%; object-fit: contain; }
.program-name { color: inherit; text-decoration: none; overflow-wrap: anywhere; }
.program-name:hover { color: var(--bs-primary); text-decoration: underline; }
.program-organizer { font-size: .875rem; overflow-wrap: anywhere; }
.program-summary { font-size: .95rem; line-height: 1.5; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.program-period { border-top: 1px solid var(--bs-border-color); padding-top: .85rem; font-size: .8rem; line-height: 1.6; margin-top: .5rem; }
.program-status { white-space: normal; text-align: left; line-height: 1.4; }
.programs-search { display: flex; gap: .5rem; max-width: 680px; }
.programs-search input { min-width: 0; }
.programs-filters { display: flex; flex-wrap: wrap; gap: .5rem; }
#award-text { scroll-margin-top: 6rem; }
.program-detail-period { white-space: normal; line-height: 1.5; text-align: left; }
.programs-list .card-body { min-width: 0; }
.programs-list .program-summary { display: block; overflow: visible; }
.program-row-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .75rem 1.5rem; padding-top: .85rem; border-top: 1px solid var(--bs-border-color); }
.program-row-footer .program-period { padding: 0; margin: 0; border: 0; }
.program-row-footer .btn { flex-shrink: 0; }
@media (min-width: 768px) {
    .programs-list .program-card { display: grid; grid-template-columns: minmax(200px, 28%) minmax(0, 1fr); }
    .programs-list .program-cover { height: 100%; min-height: 220px; padding: 1rem; }
    .programs-list .program-cover img { height: auto; max-height: 240px; }
}
@media (max-width: 575.98px) {
    .section-programs { padding: 1.1rem; }
    .programs-title { font-size: 1.65rem; }
    .programs-header > .btn { width: 100%; white-space: normal; }
    .program-cover { height: 180px; }
}
