/* Каталог бакалавриата и страница программы */
.bc { --bc-green: #187d35; --bc-dark: #0d5a25; --bc-gold: #c9a227; --bc-ink: #0f172a; --bc-muted: #64748b; --bc-line: #e2e8f0; padding-bottom: 64px; }
.bc-wrap { width: min(1200px, 100% - 32px); margin: 0 auto; position: relative; z-index: 1; }
.bc-hero { position: relative; padding: 44px 0 60px; color: #fff; background: linear-gradient(135deg, #05612a 0%, #187d35 58%, #2a9a4b 100%); overflow: hidden; }
.bc-hero::after { content: ""; position: absolute; right: -140px; bottom: -160px; width: 460px; height: 460px; border-radius: 50%; background: radial-gradient(circle, rgba(201, 162, 39, .35), transparent 70%); pointer-events: none; }
.bc-hero h1 { margin: 10px 0 12px; font-size: clamp(1.8rem, 4vw, 2.7rem); font-weight: 800; line-height: 1.15; color: #fff; letter-spacing: -.01em; }
.bc-hero p { max-width: 760px; margin: 0; color: #e3f4e8; font-size: 1.05rem; line-height: 1.6; }
.bc-crumbs { display: flex !important; flex-wrap: wrap; align-items: center; justify-content: flex-start !important; gap: 0 6px; font-size: .88rem; color: #cfe9d6; }
.bc-crumbs a { color: #fde68a; text-decoration: none; }
.bc-crumbs a:hover { text-decoration: underline; }
.bc-crumbs span { opacity: .7; }
.bc-hero__stats { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.bc-hero__stats span { padding: 6px 14px; border-radius: 999px; background: rgba(255, 255, 255, .14); font-size: .92rem; }
.bc-hero__stats b { color: #fde68a; font-size: 1.1rem; margin-right: 2px; }

.bc-toolbar { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin: -28px 0 18px; padding: 12px; border-radius: 18px; background: #fff; box-shadow: 0 16px 40px rgba(15, 23, 42, .1); }
.bc-search { position: relative; flex: 1 1 320px; }
.bc-search i { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--bc-muted); }
.bc-search input { width: 100%; height: 48px; padding: 0 14px 0 42px; border: 1px solid var(--bc-line); border-radius: 12px; font-size: .98rem; color: var(--bc-ink); }
.bc-search input:focus { outline: 0; border-color: var(--bc-green); box-shadow: 0 0 0 3px rgba(24, 125, 53, .15); }
.bc-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.bc-chip { display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 12px; border: 1px solid var(--bc-line); border-radius: 999px; background: #fff; color: #334155; font-weight: 700; font-size: .88rem; cursor: pointer; transition: all .15s ease; }
.bc-chip small { color: var(--bc-muted); font-weight: 600; }
.bc-chip:hover { border-color: var(--bc-green); color: var(--bc-green); }
.bc-chip.is-on { background: var(--bc-green); border-color: var(--bc-green); color: #fff; }
.bc-chip.is-on small { color: #d1fae5; }
.bc-chip:focus-visible { outline: 3px solid rgba(24, 125, 53, .35); outline-offset: 2px; }

.bc-subjects { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin-bottom: 26px; padding: 12px 14px; border-radius: 14px; background: #f8fafc; border: 1px solid var(--bc-line); }
.bc-subjects__title { font-weight: 700; color: var(--bc-dark); margin-right: 6px; font-size: .9rem; }
.bc-subject input { position: absolute; opacity: 0; pointer-events: none; }
.bc-subject span { display: inline-block; padding: 5px 11px; border-radius: 999px; border: 1px solid var(--bc-line); background: #fff; font-size: .82rem; color: #334155; cursor: pointer; }
.bc-subject input:checked + span { background: #fdf6dd; border-color: var(--bc-gold); color: #6b5408; font-weight: 700; }
.bc-subject input:focus-visible + span { outline: 2px solid var(--bc-green); outline-offset: 2px; }
.bc-subjects__reset { margin-left: auto; font-size: .85rem; color: var(--bc-green); font-weight: 700; }

.bc-group { margin-bottom: 34px; }
.bc-group__title { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; font-size: 1.25rem; font-weight: 800; color: var(--bc-ink); }
.bc-group__title small { margin-left: 2px; padding: 2px 9px; border-radius: 999px; background: #f1f5f9; color: var(--bc-muted); font-size: .8rem; font-weight: 700; }
.bc-group__code { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 32px; padding: 0 8px; border-radius: 10px; background: var(--bc-green); color: #fff; font-size: .95rem; }

.bc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.bc-card { position: relative; display: flex; flex-direction: column; gap: 8px; min-height: 132px; padding: 18px 48px 18px 18px; border-radius: 16px; border: 1px solid var(--bc-line); background: #fff; color: inherit !important; text-decoration: none !important; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.bc-card:hover, .bc-card:focus-visible { transform: translateY(-3px); border-color: #9fd3ae; box-shadow: 0 14px 30px rgba(15, 23, 42, .1); }
.bc-card:focus-visible { outline: 3px solid rgba(24, 125, 53, .35); outline-offset: 2px; }
.bc-card__code { align-self: flex-start; padding: 2px 10px; border-radius: 8px; background: #e8f5ec; color: var(--bc-dark); font-weight: 800; font-size: .82rem; font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.bc-card__name { font-weight: 700; font-size: 1.02rem; line-height: 1.35; color: var(--bc-ink); }
.bc-card:hover .bc-card__name { color: var(--bc-dark); }
.bc-card__meta { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: auto; font-size: .8rem; color: var(--bc-muted); }
.bc-card__meta i { color: var(--bc-gold); margin-right: 3px; }
.bc-card__go { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #f1f5f9; color: var(--bc-muted); transition: background-color .2s ease, color .2s ease; }
.bc-card:hover .bc-card__go { background: var(--bc-green); color: #fff; }
.bc-empty { padding: 30px 0; text-align: center; color: var(--bc-muted); }

/* ── Страница программы ── */
.bc-hero--program { padding-bottom: 48px; }
.bc-hero--program.has-cover { background: #0d3b1d; }
.bc-hero__cover { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .28; }
.bc-hero--program.has-cover::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5, 61, 27, .95), rgba(13, 90, 37, .7)); }
.bc-hero__badges { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.bc-code { display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 14px; border: 0; border-radius: 999px; background: #fde68a; color: #3f3205; font-weight: 800; font-size: .95rem; cursor: pointer; font-variant-numeric: tabular-nums; }
.bc-code.is-copied { background: #bbf7d0; color: #14532d; }
.bc-badge { display: inline-flex; align-items: center; height: 34px; padding: 0 14px; border-radius: 999px; background: rgba(255, 255, 255, .16); font-weight: 600; font-size: .88rem; }
.bc-hero__degree { margin-top: 4px !important; font-size: .98rem !important; }
.bc-hero__degree b { color: #fff; font-weight: 600; }
.bc-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.bc-btn { display: inline-flex; align-items: center; gap: 8px; min-height: 46px; padding: 10px 20px; border-radius: 12px; font-weight: 700; text-decoration: none !important; transition: transform .2s ease, background-color .2s ease; }
.bc-btn:hover { transform: translateY(-1px); }
.bc-btn--gold { background: var(--bc-gold); color: #1f1600 !important; }
.bc-btn--gold:hover { background: #b08b17; }
.bc-btn--light { background: rgba(255, 255, 255, .16); color: #fff !important; border: 1px solid rgba(255, 255, 255, .35); }
.bc-btn--light:hover { background: rgba(255, 255, 255, .26); }

.bc-body { padding-top: 28px; }
.bc-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: -58px 0 26px; }
.bc-fact { display: grid; grid-template-columns: 40px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 12px; align-items: center; padding: 16px; border-radius: 16px; background: #fff; border: 1px solid var(--bc-line); box-shadow: 0 10px 26px rgba(15, 23, 42, .08); }
.bc-fact i { grid-row: 1 / 3; width: 40px; height: 40px; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: #e8f5ec; color: var(--bc-green); }
.bc-fact span { font-size: .78rem; color: var(--bc-muted); text-transform: uppercase; letter-spacing: .04em; }
.bc-fact b { font-size: 1rem; color: var(--bc-ink); line-height: 1.3; }
.bc-fact--wide { grid-column: 1 / -1; }
.bc-toc { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; }
.bc-toc a { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 999px; background: #f1f5f9; color: #334155; font-weight: 600; font-size: .88rem; text-decoration: none; }
.bc-toc a:hover { background: #e8f5ec; color: var(--bc-dark); }
.bc-section { margin-bottom: 18px; padding: 24px 26px; border-radius: 18px; background: #fff; border: 1px solid var(--bc-line); scroll-margin-top: 110px; }
.bc-section h2 { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; font-size: 1.2rem; font-weight: 800; color: var(--bc-ink); }
.bc-section h2 i { color: var(--bc-gold); }
.bc-section__text { color: #334155; line-height: 1.75; font-size: 1.02rem; }
.bc-note { display: flex; gap: 14px; padding: 20px 22px; border-radius: 16px; background: #f0fdf4; border: 1px solid #bbf7d0; color: #14532d; margin-bottom: 18px; }
.bc-note i { font-size: 1.3rem; margin-top: 2px; }
.bc-note p { margin: 6px 0 0; color: #166534; }
.bc-related { margin-top: 34px; }
.bc-related h2 { margin: 0 0 14px; font-size: 1.25rem; font-weight: 800; color: var(--bc-ink); }
.bc-related .bc-card { min-height: 100px; }
.bc-back { display: inline-flex; gap: 8px; align-items: center; margin-top: 26px; font-weight: 700; color: var(--bc-green) !important; text-decoration: none !important; }

@media (max-width: 991.98px) {
    .bc-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
    .bc-hero { padding: 28px 0 48px; }
    .bc-toolbar { margin-top: -24px; }
    .bc-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: -40px; }
    .bc-fact { grid-template-columns: minmax(0, 1fr); padding: 12px; row-gap: 2px; }
    .bc-fact i { grid-row: auto; width: 32px; height: 32px; margin-bottom: 4px; }
    .bc-fact span { font-size: .7rem; }
    .bc-fact b { font-size: .92rem; }
    .bc-section { padding: 18px; }
    .bc-hero__actions .bc-btn { flex: 1 1 100%; justify-content: center; }
    .bc-card { min-height: 0; }
}
/* ── Магистратура и докторантура (общие шаблоны _ProgramCatalog / _ProgramPage) ── */
.bc-levels { display: flex !important; flex-wrap: wrap; justify-content: flex-start !important; align-items: center; gap: 6px; margin: 16px 0 4px; padding: 0 !important; }
.bc-level { display: inline-flex; align-items: center; gap: 7px; height: 36px; padding: 0 14px; border-radius: 999px; background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .22); color: #e3f4e8 !important; font-weight: 700; font-size: .88rem; text-decoration: none !important; transition: background-color .15s ease; }
.bc-level:hover { background: rgba(255, 255, 255, .22); }
.bc-level.is-on { background: #fde68a; border-color: #fde68a; color: #3f3205 !important; }
.bc-level:focus-visible { outline: 3px solid #fde68a; outline-offset: 2px; }
.bc--doctoral .bc-hero { background: linear-gradient(135deg, #0b3d22 0%, #0d5a25 55%, #187d35 100%); }

.bc-filters { display: grid; gap: 10px; margin-bottom: 26px; padding: 12px 14px; border-radius: 14px; background: #f8fafc; border: 1px solid var(--bc-line); }
.bc-filter { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.bc-filter__title { min-width: 120px; margin-right: 4px; font-weight: 700; color: var(--bc-dark); font-size: .88rem; }
.bc-filter__title i { color: var(--bc-gold); margin-right: 4px; }
.bc-pill { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1px solid var(--bc-line); border-radius: 999px; background: #fff; color: #334155; font-size: .84rem; font-weight: 600; cursor: pointer; transition: all .15s ease; }
.bc-pill small { color: var(--bc-muted); font-weight: 700; }
.bc-pill:hover { border-color: var(--bc-gold); }
.bc-pill.is-on { background: #fdf6dd; border-color: var(--bc-gold); color: #6b5408; font-weight: 700; }
.bc-pill:focus-visible { outline: 2px solid var(--bc-green); outline-offset: 2px; }

.bc-card__top { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.bc-card__tag { padding: 2px 9px; border-radius: 999px; font-size: .74rem; font-weight: 700; background: #f1f5f9; color: #475569; }
.bc-card__tag--research { background: #eef2ff; color: #3730a3; }
.bc-card__tag--profile { background: #fdf6dd; color: #6b5408; }
.bc-badge--accent { background: #fde68a; color: #3f3205; font-weight: 800; }
.bc-fact--half { grid-column: span 2; }

.bc-docs__lead { margin: -4px 0 4px; color: var(--bc-muted); font-weight: 600; }
.bc-docs .au-docs { margin: 12px 0 0; }
.bc-docs__older { margin-top: 16px; border-top: 1px dashed var(--bc-line); padding-top: 12px; }
.bc-docs__older summary { cursor: pointer; font-weight: 700; color: var(--bc-dark); list-style: none; display: inline-flex; align-items: center; gap: 8px; }
.bc-docs__older summary::-webkit-details-marker { display: none; }
.bc-docs__older summary::before { content: "▸"; transition: transform .2s ease; }
.bc-docs__older[open] summary::before { transform: rotate(90deg); }
.bc-docs__older summary small { padding: 1px 8px; border-radius: 999px; background: #f1f5f9; color: var(--bc-muted); }
.bc-docs__older h3 { margin: 16px 0 0; font-size: .95rem; font-weight: 800; color: #334155; }

.bc-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 36px; padding: 22px 24px; border-radius: 18px; background: linear-gradient(135deg, #f0fdf4, #fefce8); border: 1px solid #d9f0de; }
.bc-cta b { font-size: 1.1rem; color: var(--bc-ink); }
.bc-cta p { margin: 4px 0 0; color: #475569; }
.bc-cta__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.bc-btn--green { background: var(--bc-green); color: #fff !important; }
.bc-btn--green:hover { background: var(--bc-dark); }
.bc-btn--outline { border: 1px solid var(--bc-green); color: var(--bc-green) !important; background: #fff; }
.bc-btn--outline:hover { background: #e8f5ec; }
.bc-note--empty { margin-top: 28px; }
.bc-bottom { display: flex; flex-wrap: wrap; gap: 8px 24px; }

@media (max-width: 575.98px) {
    .bc-levels { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; }
    .bc-level { justify-content: center; height: 34px; padding: 0 4px; font-size: .78rem; white-space: nowrap; }
    .bc-level i { display: none; }
    .bc-group__title { font-size: 1.05rem; line-height: 1.3; }
    .bc-group__code { min-width: 34px; height: 28px; font-size: .85rem; flex: 0 0 auto; }
    .bc-filter__title { flex: 1 1 100%; min-width: 0; }
    .bc-fact--half { grid-column: 1 / -1; }
    .bc-cta { padding: 18px; }
    .bc-cta__actions .bc-btn { flex: 1 1 100%; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
    .bc-card, .bc-btn, .bc-pill, .bc-level { transition: none; }
}
