/* Page-scoped catalogue styles, loaded after the shared Mars theme. */
.mars-programs { --programs-purple: var(--mars-purple-deep); --programs-green: var(--mars-green-deep); --programs-surface: var(--mars-purple-tint); }
.mars-programs [hidden] { display: none !important; }
.mars-programs :is(a, button, input, select, summary):focus-visible { outline: 3px solid var(--mars-purple); outline-offset: 4px; }
.mars-programs main svg { width: 22px; height: 22px; flex-shrink: 0; }
.mars-programs-hero { padding-block: var(--mars-sp-6) var(--mars-sp-7); color: var(--mars-paper); background: linear-gradient(115deg, var(--programs-purple), var(--mars-purple-dark)); }
.mars-programs-hero__crumbs { margin-bottom: var(--mars-sp-6); }
.mars-programs .mars-programs-hero__crumbs .breadcrumbs :is(a, span, li) { color: var(--mars-paper); }
.mars-programs-hero__crumbs a { text-decoration: underline; text-underline-offset: 4px; }
.mars-programs-hero__crumbs .breadcrumbs { margin: 0; }
.mars-programs-hero__intro { display: flex; align-items: center; justify-content: space-between; gap: var(--mars-sp-7); }
.mars-programs-hero h1 { max-width: 22ch; margin: 0 0 var(--mars-sp-4); color: inherit; font-size: clamp(34px, 3.6vw, 50px); line-height: 1.16; font-weight: 600; letter-spacing: -.025em; text-transform: none; }
.mars-programs-hero__intro p { max-width: 62ch; margin: 0; color: var(--mars-paper); font-size: 17px; line-height: 1.75; }
.mars-programs-hero__facts { display: flex; flex-direction: column; gap: var(--mars-sp-4); flex-shrink: 0; padding-inline-start: var(--mars-sp-7); border-inline-start: 1px solid var(--mars-purple); }
.mars-programs-hero__facts span { display: flex; align-items: baseline; gap: var(--mars-sp-3); font-size: 14px; color: var(--mars-green-pale); }
.mars-programs-hero__facts strong { min-width: 3ch; font-size: 30px; font-weight: 600; color: var(--mars-paper); font-variant-numeric: tabular-nums; }
.mars-programs-finder { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) auto; gap: var(--mars-sp-4); align-items: end; margin-top: var(--mars-sp-6); padding: var(--mars-sp-5); border-radius: var(--mars-radius-sm); background: var(--mars-paper); color: var(--mars-ink); }
.mars-programs-finder__field { min-width: 0; }
.mars-programs-finder label { display: block; margin-bottom: var(--mars-sp-2); color: var(--mars-ink); font-size: 14px; font-weight: 600; }
.mars-programs-finder :is(input, select) { display: block; width: 100%; min-width: 0; height: 50px; padding: 0 var(--mars-sp-3); border: 1px solid var(--mars-line-strong); border-radius: var(--mars-radius-xs); background: var(--mars-paper); color: var(--mars-ink); font: inherit; font-size: 16px; box-shadow: none; }
.mars-programs-finder select { padding-inline-end: var(--mars-sp-6); }
.mars-programs-finder input::placeholder { color: var(--mars-ink-muted); opacity: 1; }
.mars-programs-finder button { display: inline-flex; align-items: center; justify-content: center; gap: var(--mars-sp-3); min-height: 50px; margin: 0; padding: var(--mars-sp-2) var(--mars-sp-5); border: 1px solid var(--programs-purple); border-radius: var(--mars-radius-xs); background: var(--programs-purple); color: var(--mars-paper); font: inherit; font-size: 15px; line-height: 1.4; font-weight: 600; cursor: pointer; text-transform: none; letter-spacing: normal; }
.mars-programs-finder button:hover { background: var(--mars-purple-dark); }
.mars-programs-hero__crumbs a:focus-visible { outline-color: var(--mars-green-pale); }
.mars-programs-subjects, .mars-programs-directory, .mars-programs-faq { padding-block: var(--mars-sp-8); }
.mars-programs-heading { display: flex; align-items: end; justify-content: space-between; gap: var(--mars-sp-5); margin-bottom: var(--mars-sp-6); }
.mars-programs-heading h2 { margin: 0 0 var(--mars-sp-3); color: var(--mars-ink); font-size: clamp(26px, 2.5vw, 34px); line-height: 1.3; font-weight: 600; text-transform: none; letter-spacing: -.02em; }
.mars-programs-heading p { max-width: 70ch; margin: 0; color: var(--mars-ink-soft); font-size: 16px; line-height: 1.75; }
.mars-programs-text-link { display: inline-flex; align-items: center; justify-content: space-between; gap: var(--mars-sp-3); min-height: 44px; color: var(--programs-purple); font-size: 14px; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.mars-programs-text-link:hover { color: var(--mars-purple-dark); }
.mars-programs-heading > .mars-programs-text-link { flex-shrink: 0; }
.mars-programs-subject-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--mars-sp-4); }
.mars-programs-subject { display: flex; flex-direction: column; gap: var(--mars-sp-4); min-width: 0; padding: var(--mars-sp-5); border: 1px solid var(--mars-line); border-radius: var(--mars-radius-md); background: var(--mars-paper); color: var(--mars-ink); text-decoration: none; transition: border-color 160ms ease, background-color 160ms ease; }
.mars-programs-subject:hover { color: var(--programs-purple); border-color: var(--mars-purple); background: var(--mars-paper-alt); text-decoration: none; }
.mars-programs-subject__top { display: flex; align-items: center; justify-content: space-between; gap: var(--mars-sp-3); }
.mars-programs-subject__icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: var(--mars-radius-sm); color: var(--programs-purple); background: var(--programs-surface); }
.mars-programs .mars-programs-subject__icon svg { width: 26px; height: 26px; }
.mars-programs-subject__count { color: var(--programs-green); background: var(--mars-green-tint); padding: var(--mars-sp-1) var(--mars-sp-2); border-radius: var(--mars-radius-xs); font-size: 13px; font-weight: 600; }
.mars-programs-subject h3 { margin: 0; min-height: 2.8em; color: inherit; font-size: 20px; line-height: 1.4; font-weight: 600; overflow-wrap: break-word; text-transform: none; letter-spacing: -.015em; }
.mars-programs-subject__action { display: flex; align-items: center; justify-content: space-between; gap: var(--mars-sp-3); margin-top: auto; padding-top: var(--mars-sp-3); border-top: 1px solid var(--mars-line-faint); color: var(--programs-purple); font-size: 14px; font-weight: 500; }
.mars-programs-directory { background: var(--programs-surface); scroll-margin-top: var(--mars-sp-5); }
.mars-programs-toolbar { display: flex; align-items: center; justify-content: space-between; gap: var(--mars-sp-4); margin-bottom: var(--mars-sp-4); }
.mars-programs-toolbar p { margin: 0; color: var(--mars-ink-soft); font-size: 14px; }
.mars-programs-toolbar > div { display: flex; gap: var(--mars-sp-4); }
.mars-programs-toolbar button { min-height: 44px; padding: var(--mars-sp-2) 0; border: 0; background: transparent; color: var(--programs-purple); font: inherit; font-size: 14px; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.mars-programs-group { margin-bottom: var(--mars-sp-3); border: 1px solid var(--mars-line); border-radius: var(--mars-radius-sm); background: var(--mars-paper); }
.mars-programs-group > summary { display: flex; align-items: center; gap: var(--mars-sp-4); min-height: 84px; padding: var(--mars-sp-4) var(--mars-sp-5); list-style: none; cursor: pointer; border-radius: inherit; }
.mars-programs-group > summary::-webkit-details-marker, .mars-programs-faq__item > summary::-webkit-details-marker { display: none; }
.mars-programs-group > summary:hover { background: var(--mars-paper-alt); }
.mars-programs-group h3 { flex: 1; margin: 0; color: var(--mars-ink); font-size: 19px; font-weight: 600; line-height: 1.5; }
.mars-programs-group__count { flex-shrink: 0; color: var(--mars-ink-soft); font-size: 13px; }
.mars-programs-group__toggle { position: relative; width: 30px; height: 30px; flex-shrink: 0; border-radius: var(--mars-radius-circle); color: var(--programs-purple); background: var(--programs-surface); }
.mars-programs-group__toggle::before, .mars-programs-group__toggle::after { content: ''; position: absolute; background: currentColor; top: 14px; left: 9px; width: 12px; height: 2px; }
.mars-programs-group__toggle::after { transform: rotate(90deg); }
.mars-programs-group[open] > summary .mars-programs-group__toggle::after { transform: none; }
.mars-programs-group[open] { border-color: var(--mars-purple-soft); }
.mars-programs-group__body { padding: 0 var(--mars-sp-5) var(--mars-sp-4); }
.mars-programs-group__body > .mars-programs-text-link { margin-bottom: var(--mars-sp-3); }
.mars-programs-course-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--mars-sp-6); margin: 0; padding: 0; list-style: none; }
.mars-programs-course-list li { min-width: 0; margin: 0; padding: 0; border-top: 1px solid var(--mars-line-faint); }
.mars-programs-course-list a { display: flex; align-items: center; justify-content: space-between; gap: var(--mars-sp-3); min-height: 48px; padding-block: var(--mars-sp-3); color: var(--programs-purple); font-size: 15px; line-height: 1.6; text-decoration: none; }
.mars-programs-course-list a:hover { text-decoration: underline; text-underline-offset: 4px; }
.mars-programs .mars-programs-course-list svg { width: 18px; height: 18px; }
.mars-programs-empty { padding: var(--mars-sp-7); border: 1px solid var(--mars-line); border-radius: var(--mars-radius-sm); background: var(--mars-paper); }
.mars-programs-empty h3 { font-size: 23px; }
.mars-programs-empty a { text-decoration: underline; }
.mars-programs-faq__layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: var(--mars-sp-8); align-items: start; }
.mars-programs-faq .mars-programs-heading { display: block; margin: 0; }
.mars-programs-faq .mars-programs-text-link { margin-top: var(--mars-sp-4); }
.mars-programs-faq__item { border-bottom: 1px solid var(--mars-line); }
.mars-programs-faq__item:first-child { border-top: 1px solid var(--mars-line); }
.mars-programs-faq__item summary { display: flex; align-items: center; justify-content: space-between; gap: var(--mars-sp-5); min-height: 64px; padding-block: var(--mars-sp-4); font-size: 16px; font-weight: 600; line-height: 1.6; list-style: none; cursor: pointer; }
.mars-programs-faq__item summary::after { content: '+'; flex-shrink: 0; width: 22px; color: var(--programs-purple); font-size: 24px; font-weight: 400; text-align: center; }
.mars-programs-faq__item[open] summary::after { transform: rotate(45deg); }
.mars-programs-faq__item p { margin: 0; padding-block: 0 var(--mars-sp-5); max-width: 70ch; font-size: 16px; line-height: 1.8; color: var(--mars-ink-soft); }
html[dir='rtl'] .mars-programs :is(h1, h2, h3) { letter-spacing: normal; }
html[dir='rtl'] .mars-programs-hero h1 { max-width: 25ch; line-height: 1.55; }
html[dir='rtl'] .mars-programs :is(.mars-programs-text-link, .mars-programs-subject__action, .mars-programs-finder button, .mars-programs-course-list a) > svg { transform: scaleX(-1); }
@media (max-width: 991.98px) {
    .mars-programs-hero__intro { gap: var(--mars-sp-5); }
    .mars-programs-hero__facts { padding-inline-start: var(--mars-sp-5); }
    .mars-programs-finder { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    .mars-programs-finder__query { grid-column: 1 / -1; }
    .mars-programs-subject-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .mars-programs-heading { align-items: start; flex-direction: column; gap: var(--mars-sp-3); }
    .mars-programs-faq__layout { grid-template-columns: minmax(0, 1fr); gap: var(--mars-sp-5); }
}
@media (max-width: 599.98px) {
    .mars-programs-hero__intro { display: block; }
    .mars-programs-hero__facts { flex-direction: row; flex-wrap: wrap; gap: var(--mars-sp-4); margin-top: var(--mars-sp-4); padding: 0; border: 0; }
    .mars-programs-hero__facts strong { font-size: 23px; min-width: 0; }
    .mars-programs-hero__facts span { gap: var(--mars-sp-2); font-size: 13px; }
    .mars-programs-finder { grid-template-columns: minmax(0, 1fr); padding: var(--mars-sp-4); gap: var(--mars-sp-3); }
    .mars-programs-subject-grid { grid-template-columns: minmax(0, 1fr); }
    .mars-programs-subject { gap: var(--mars-sp-3); }
    .mars-programs-subject h3 { min-height: 0; font-size: 20px; }
    .mars-programs-toolbar { align-items: start; flex-direction: column; gap: var(--mars-sp-1); }
    .mars-programs-group > summary { display: grid; grid-template-columns: minmax(0, 1fr) 30px; gap: var(--mars-sp-1) var(--mars-sp-3); }
    .mars-programs-group h3 { font-size: 17px; }
    .mars-programs-group__count { grid-column: 1; }
    .mars-programs-group__toggle { grid-column: 2; grid-row: 1 / 3; }
    .mars-programs-course-list { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) { .mars-programs-subject { transition: none; } }
