/* Світле оформлення з оранжевим меню (жовтень 2026). Кольори — у змінних нижче.
   Класичний офіційний макет: інформаційна смуга, шапка з назвою закладу,
   швидкі посилання, горизонтальне меню; новини в основній колонці. */
:root {
  --navy: #1b3a6b;
  --navy-2: #132b52;
  --gold: #ee8a2a;
  --bg: #faf8f5;
  --surface: #ffffff;
  --text: #1f2733;
  --muted: #5d6675;
  --line: #ebe6de;
  --link: #1d5bb5;
  --on-navy: #ffffff;
  --on-navy-muted: #c9d4e6;
  --urgent: #9b1c1c;
  --urgent-bg: #fbeaea;
  /* нове оформлення: оранжеві акценти, м'які кути */
  --accent: #ee8a2a;        /* оранжевий: смужки, кнопки, позначки */
  --accent-ink: #b45a0a;    /* темніший оранжевий для тексту на світлому */
  --accent-soft: #fdeedd;   /* світло-персикова підкладка */
  --menu-bg: #f28a2b;       /* смуга головного меню */
  --menu-ink: #14264a;      /* текст у меню */
  --band: #f3eee6;          /* фон широких смуг на головній */
  --r: 14px;                /* заокруглення карток */
  --shadow: 0 6px 22px -12px rgba(27, 58, 107, .25);

  --f-head: "Manrope", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --f-body: "Source Sans 3", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --gutter: max(16px, env(safe-area-inset-left, 0px));
  --gutter-r: max(16px, env(safe-area-inset-right, 0px));
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --navy: #1b3b66; --navy-2: #0c1b31; --gold: #f59a45;
    --bg: #11161f; --surface: #1a212d; --text: #e4e8ef; --muted: #9ba5b6;
    --line: #2c3545; --link: #8fb4ee; --on-navy-muted: #b3bfd2;
    --urgent: #ffb4b4; --urgent-bg: #3a1a1d;
    --accent: #f59a45; --accent-ink: #f8ad66; --accent-soft: #3a2a1a; --menu-bg: #e07d22; --menu-ink: #14264a;
    --band: #161c27; --shadow: 0 6px 22px -12px rgba(0, 0, 0, .6);
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --navy: #1b3b66; --navy-2: #0c1b31; --gold: #f59a45;
  --bg: #11161f; --surface: #1a212d; --text: #e4e8ef; --muted: #9ba5b6;
  --line: #2c3545; --link: #8fb4ee; --on-navy-muted: #b3bfd2;
  --urgent: #ffb4b4; --urgent-bg: #3a1a1d;
  --accent: #f59a45; --accent-ink: #f8ad66; --accent-soft: #3a2a1a; --menu-bg: #e07d22; --menu-ink: #14264a;
  --band: #161c27; --shadow: 0 6px 22px -12px rgba(0, 0, 0, .6);
  color-scheme: dark;
}
/* Режим доступності */
html.fs-1 { font-size: 112.5%; }
html.fs-2 { font-size: 125%; }
html.hc {
  --navy: #000; --navy-2: #000; --gold: #ffd400; --bg: #000; --surface: #000; --text: #fff; --muted: #fff;
  --line: #fff; --link: #ffd400; --on-navy: #fff; --on-navy-muted: #fff; --urgent: #ffd400; --urgent-bg: #000;
  --accent: #ffd400; --accent-ink: #ffd400; --accent-soft: #000; --menu-bg: #000; --menu-ink: #fff; --band: #000; --shadow: none;
  color-scheme: dark;
}
html.hc img { filter: grayscale(1) contrast(1.2); }
html.ul-links a { text-decoration: underline !important; }

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; background: var(--bg); color: var(--text); font: 400 1.0625rem/1.6 var(--f-body); }
body::before { content: ""; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px); z-index: 60; background: var(--navy-2); }
img { max-width: 100%; display: block; }
a { color: var(--link); text-underline-offset: 2px; }
h1, h2, h3 { font-family: var(--f-head); font-weight: 600; line-height: 1.25; margin: 0; text-wrap: balance; }
p { margin: 0; }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
[hidden] { display: none !important; }
.vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.nowrap { white-space: nowrap; }
.strong { font-weight: 600; color: var(--text); }
.empty { color: var(--muted); padding: 8px 0; list-style: none; }
.note { color: var(--muted); font-size: 0.95rem; margin-top: 16px; }
.noscript { padding-block: 16px; }

.wrap { max-width: 1180px; margin: 0 auto; padding-left: var(--gutter); padding-right: var(--gutter-r); }
.skip { position: absolute; left: -999px; top: 8px; background: var(--surface); color: var(--text); padding: 8px 14px; z-index: 100; }
.skip:focus { left: 16px; }

.btn {
  display: inline-block; font: 600 0.95rem/1.2 var(--f-body); cursor: pointer; text-decoration: none;
  padding: 11px 18px; border-radius: 2px; border: 1px solid var(--navy);
  background: var(--surface); color: var(--navy);
}
.btn:hover { background: var(--navy); color: var(--on-navy); }
.btn--primary { background: var(--navy); color: var(--on-navy); }
.btn--primary:hover { background: var(--navy-2); }
html.hc .btn { color: var(--text); border-color: var(--text); }
.link { background: none; border: 0; padding: 0; font: inherit; color: var(--link); cursor: pointer; text-align: left; text-decoration: underline; text-underline-offset: 2px; }

/* ---------- Інструменти в шапці ---------- */
.tools { display: flex; align-items: center; gap: 8px; flex: none; align-self: flex-start; }
.search input {
  width: 190px; font: 400 0.9rem/1 var(--f-body); padding: 8px 10px; border-radius: 2px;
  border: 1px solid rgba(255,255,255,.3); background: rgba(255,255,255,.08); color: var(--on-navy);
}
.search input::placeholder { color: var(--on-navy-muted); }
.tool { font: 600 0.86rem/1 var(--f-body); color: var(--on-navy); background: transparent; border: 1px solid rgba(255,255,255,.35); padding: 8px 11px; border-radius: 2px; cursor: pointer; text-decoration: none; }
.tool[aria-expanded="true"] { background: var(--on-navy); color: var(--navy-2); }

.a11y { background: var(--surface); border-bottom: 1px solid var(--line); font-size: 0.92rem; }
.a11y__in { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-block: 10px; }
.a11y button { font: 600 0.9rem/1 var(--f-body); padding: 8px 12px; border: 1px solid var(--line); background: var(--surface); color: var(--text); cursor: pointer; border-radius: 2px; }
.a11y button[aria-pressed="true"] { background: var(--navy); color: var(--on-navy); border-color: var(--navy); }

/* ---------- Шапка ---------- */
.head { background: var(--navy); color: var(--on-navy); border-bottom: 3px solid var(--gold); }
.head__in { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-block: 20px; }
.crest { display: flex; align-items: center; gap: 18px; color: inherit; text-decoration: none; min-width: 0; }
.crest__logo { width: 72px; height: 72px; object-fit: contain; flex: none; }
.crest__text { display: flex; flex-direction: column; min-width: 0; }
.crest__pre { font: 500 clamp(0.95rem, 1.8vw, 1.15rem)/1.3 var(--f-head); color: var(--on-navy-muted); }
.crest__name { font: 700 clamp(1.35rem, 3vw, 2rem)/1.2 var(--f-head); margin: 4px 0; }
.crest__post { font: 500 clamp(0.95rem, 1.8vw, 1.15rem)/1.3 var(--f-head); color: var(--on-navy-muted); }
.burger { display: none; }

/* ---------- Меню ---------- */
.menu { background: var(--surface); border-bottom: 1px solid var(--line); position: relative; z-index: 40; }
.menu__list { list-style: none; margin: 0 auto; display: flex; flex-wrap: wrap; }
.menu__list > li { position: relative; }
.menu__list > li > a, .menu__list > li > button {
  display: block; padding: 14px 13px; font: 600 0.95rem/1.2 var(--f-body); color: var(--text);
  text-decoration: none; background: none; border: 0; cursor: pointer; border-bottom: 3px solid transparent;
}
.menu__list > li:first-child > a { padding-left: 0; }
.menu__list > li > button::after { content: ""; display: inline-block; margin-left: 7px; border: 4px solid transparent; border-top-color: currentColor; vertical-align: -1px; }
.menu__list > li:hover > a, .menu__list > li:hover > button, .menu__list > li > button[aria-expanded="true"],
.menu__list > li > a[aria-current], .menu__list > .is-active > button { border-bottom-color: var(--gold); }
.has-sub > ul {
  display: none; position: absolute; left: 0; top: 100%; min-width: 300px; list-style: none; margin: 0; padding: 6px 0;
  background: var(--surface); border: 1px solid var(--line); border-top: 2px solid var(--navy); box-shadow: 0 8px 20px -10px rgba(0,0,0,.25);
}
.menu__list > li:nth-last-child(-n+2) > ul { left: auto; right: 0; }
.has-sub:hover > ul, .has-sub:focus-within > ul, .has-sub > button[aria-expanded="true"] + ul { display: block; }
.has-sub > ul a { display: block; padding: 8px 16px; color: var(--text); text-decoration: none; font-size: 0.95rem; }
.has-sub > ul a:hover, .has-sub > ul a[aria-current] { background: var(--bg); color: var(--link); }

@media (max-width: 960px) {
  .crest__logo { width: 52px; height: 52px; }
  .crest__pre { display: none; }
  .burger { display: block; }
  .head__in { flex-wrap: wrap; }
  .tools { width: 100%; }
  .search { flex: 1; min-width: 0; } .search input { width: 100%; }
  .menu { display: none; }
  .menu.is-open { display: block; }
  .menu__list { flex-direction: column; padding-block: 4px 12px; }
  .menu__list > li > a, .menu__list > li > button { width: 100%; text-align: left; padding: 13px 0; border-bottom: 1px solid var(--line); }
  .menu__list > li > button::after { float: right; margin-top: 7px; }
  .has-sub:hover > ul, .has-sub:focus-within > ul { display: none; }
  .has-sub > button[aria-expanded="true"] + ul { display: block; }
  .has-sub > ul, .menu__list > li:nth-last-child(-n+2) > ul { position: static; box-shadow: none; border: 0; border-left: 2px solid var(--gold); min-width: 0; margin: 4px 0 8px; }
}

/* ---------- Банер ---------- */
.banner { background: var(--surface); border-bottom: 1px solid var(--line); }
.banner__in { display: grid; grid-template-columns: 1fr minmax(0, 420px); gap: 40px; align-items: center; padding-block: 36px; }
.banner__text { display: grid; gap: 12px; min-width: 0; }
.banner__since { font-size: 0.82rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold); font-weight: 700; }
.banner__motto { font: 500 italic clamp(1.35rem, 2.8vw, 1.85rem)/1.35 var(--f-head); color: var(--text); }
.banner__desc { color: var(--muted); max-width: 62ch; }
.banner__links { display: flex; flex-wrap: wrap; gap: 6px 22px; font-weight: 600; margin-top: 4px; }
.banner__photo { margin: 0; border: 1px solid var(--line); padding: 6px; background: var(--surface); }
.banner__photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
@media (max-width: 800px) { .banner__in { grid-template-columns: 1fr; gap: 24px; padding-block: 28px; } }

.urgent { background: var(--urgent-bg); border-bottom: 1px solid var(--line); }
.urgent__in { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; padding-block: 12px; }
.urgent strong { color: var(--urgent); text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.85rem; }
.urgent button { background: none; border: 0; padding: 0; font: 600 1rem/1.4 var(--f-body); color: var(--text); text-align: left; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Заголовки блоків ---------- */
.block-title { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 12px; padding-bottom: 10px; margin-bottom: 22px; border-bottom: 2px solid var(--navy); }
html.hc .block-title { border-color: var(--text); }
.block-title h2 { font-size: clamp(1.4rem, 2.6vw, 1.75rem); }
.block-title > a { font-weight: 600; font-size: 0.95rem; }
.filter { display: flex; flex-wrap: wrap; gap: 4px; }
.filter button { font: 600 0.85rem/1 var(--f-body); padding: 8px 11px; border: 1px solid var(--line); background: var(--surface); color: var(--muted); cursor: pointer; border-radius: 2px; }
.filter button.is-on { background: var(--navy); border-color: var(--navy); color: var(--on-navy); }

/* ---------- Головна: новини + бічна колонка ---------- */
.layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 40px; padding-block: 44px 56px; }
@media (max-width: 980px) { .layout { grid-template-columns: 1fr; } }
.col-main { min-width: 0; }
.news { display: grid; }
.item {
  display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 22px; padding: 20px 0; width: 100%;
  border: 0; border-bottom: 1px solid var(--line); background: none; text-align: left; color: inherit; font: inherit; cursor: pointer;
}
.item:first-child { padding-top: 0; }
.item__img { display: block; aspect-ratio: 4 / 3; max-width: 100%; background: var(--bg); border: 1px solid var(--line); overflow: hidden; position: relative; }
.item__img img { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; object-fit: cover; }
.ph { position: absolute; inset: 0; display: grid; place-items: center; font: 700 1.1rem/1 var(--f-head); color: var(--muted); letter-spacing: 0.08em; }
.item__body { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.meta { font-size: 0.85rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.meta b { color: var(--gold); font-weight: 700; margin-left: 8px; }
.item__title { font: 600 1.18rem/1.3 var(--f-head); color: var(--text); }
.item:hover .item__title { text-decoration: underline; text-underline-offset: 3px; }
.item__sum { color: var(--muted); font-size: 0.97rem; }
.item__read { margin-top: auto; font-size: 0.9rem; font-weight: 600; color: var(--link); }
.item--lead { grid-template-columns: 1fr; gap: 16px; }
.item--lead .item__img { aspect-ratio: 16 / 8; }
.item--lead .item__title { font-size: clamp(1.35rem, 2.6vw, 1.7rem); }
@media (max-width: 600px) {
  .item { grid-template-columns: 110px minmax(0, 1fr); gap: 14px; }
  .item__title { font-size: 1.02rem; }
  .item__sum, .item__read { display: none; }
  .item--lead { grid-template-columns: 1fr; }
  .item--lead .item__sum { display: block; }
}
.more { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 24px; }

.side { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.box { background: var(--surface); border: 1px solid var(--line); border-top: 3px solid var(--navy); padding: 18px 20px; }
html.hc .box { border-top-color: var(--gold); }
.box h2 { font-size: 1.1rem; margin-bottom: 10px; }
.box__more { display: inline-block; margin-top: 12px; font-weight: 600; font-size: 0.93rem; }
.links, .pinned, .events { list-style: none; margin: 0; padding: 0; }
.links li, .pinned li, .events li { border-bottom: 1px solid var(--line); }
.links li:last-child, .pinned li:last-child, .events li:last-child { border-bottom: 0; }
.links a { display: block; padding: 9px 0; text-decoration: none; font-weight: 600; font-size: 0.95rem; }
.links a:hover { text-decoration: underline; }
.pinned li { padding: 10px 0; }
.pinned button { background: none; border: 0; padding: 0; text-align: left; font: 600 0.97rem/1.35 var(--f-body); color: var(--link); cursor: pointer; }
.pinned time { display: block; font-size: 0.82rem; color: var(--muted); margin-top: 3px; }
.event { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 12px; padding: 10px 0; align-items: start; }
.event__date { display: flex; flex-direction: column; align-items: center; border: 1px solid var(--line); padding: 4px 0 6px; font-size: 0.78rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.04em; }
.event__date b { font: 700 1.3rem/1.1 var(--f-head); color: var(--text); }
.event__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.event__title { font-weight: 600; line-height: 1.35; }
.event__meta { font-size: 0.85rem; color: var(--muted); }

/* ---------- Смуги ---------- */
.band { background: var(--surface); border-block: 1px solid var(--line); padding-block: 48px; }
.section { padding-block: 48px; }

.alumni { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 24px; }
.alum { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 16px; align-items: start; }
.alum__photo { width: 84px; height: 84px; border-radius: 50%; overflow: hidden; background: var(--bg); border: 1px solid var(--line); position: relative; display: grid; place-items: center; }
.alum__photo span { font: 700 1.2rem/1 var(--f-head); color: var(--muted); }
.alum__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.alum__body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.alum h3 { font-size: 1.05rem; }
.alum__meta { color: var(--muted); font-size: 0.9rem; }
.alum__work { font-weight: 600; }
.alum blockquote { margin: 6px 0 0; padding-left: 12px; border-left: 2px solid var(--gold); color: var(--muted); font: italic 0.97rem/1.5 var(--f-head); }
.alumni--page { margin-top: 24px; }

.partners { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 170px), 1fr)); gap: 12px; }
.partners a, .partners div { display: grid; place-items: center; height: 96px; padding: 12px; border: 1px solid var(--line); background: var(--surface); text-align: center; text-decoration: none; color: var(--muted); font-weight: 600; font-size: 0.9rem; }
.partners img { max-height: 64px; width: auto; object-fit: contain; }
.partners--page { margin-top: 24px; }

/* ---------- Контакти ---------- */
.contacts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 28px; }
.place { display: flex; flex-direction: column; gap: 6px; min-width: 0; align-items: start; }
.place h3 { font-size: 1.08rem; margin-bottom: 2px; }
.place p { color: var(--muted); }
.place .btn { margin-top: 8px; }
.social { display: flex; flex-wrap: wrap; gap: 4px 16px; }
.map { width: 100%; margin-top: 10px; border: 1px solid var(--line); aspect-ratio: 4 / 3; max-width: 100%; background: var(--bg); }
.map iframe { width: 100%; height: 100%; border: 0; display: block; }
.contacts--page { margin: 8px 0 24px; }

/* ---------- Футер ---------- */
.foot { background: var(--navy-2); color: var(--on-navy-muted); font-size: 0.92rem; border-top: 3px solid var(--gold); padding-block: 40px calc(20px + env(safe-area-inset-bottom, 0px)); }
.foot a { color: var(--on-navy-muted); text-decoration: none; }
.foot a:hover { color: var(--on-navy); text-decoration: underline; }
.foot__title { color: var(--on-navy); font-weight: 700; margin-bottom: 6px; }
.foot__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; padding-bottom: 28px; border-bottom: 1px solid rgba(255,255,255,.12); }
.foot__col, .foot__gov, .foot__contact { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.foot__row { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; padding-block: 24px; border-bottom: 1px solid rgba(255,255,255,.12); }
.foot__social { display: flex; flex-wrap: wrap; gap: 4px 14px; }
.foot__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; padding-top: 18px; font-size: 0.86rem; }
@media (max-width: 900px) { .foot__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .foot__grid, .foot__row { grid-template-columns: 1fr; } }

/* ---------- Внутрішня сторінка ---------- */
.page { padding-block: 24px 56px; }
.crumbs { display: flex; flex-wrap: wrap; gap: 4px 0; font-size: 0.88rem; color: var(--muted); margin-bottom: 20px; }
.crumbs > * + *::before { content: "›"; margin: 0 8px; color: var(--muted); }
.page__grid { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 44px; align-items: start; }
.page__grid--full { grid-template-columns: minmax(0, 1fr); }
.page__main { background: var(--surface); border: 1px solid var(--line); padding: clamp(20px, 4vw, 40px); min-width: 0; }
.page__title { font-size: clamp(1.6rem, 3.4vw, 2.2rem); padding-bottom: 14px; margin-bottom: 18px; border-bottom: 2px solid var(--navy); }
html.hc .page__title { border-color: var(--text); }
.updated { color: var(--muted); font-size: 0.88rem; margin: -10px 0 18px; }
.page__side { position: sticky; top: 16px; background: var(--surface); border: 1px solid var(--line); border-top: 3px solid var(--navy); padding: 16px 0; min-width: 0; }
.side__title { font: 600 1.05rem/1.3 var(--f-head); padding: 0 18px 10px; }
.page__side ul { list-style: none; margin: 0; padding: 0; }
.page__side a { display: block; padding: 7px 18px; text-decoration: none; color: var(--text); font-size: 0.95rem; border-left: 3px solid transparent; }
.page__side a:hover { color: var(--link); background: var(--bg); }
.page__side a[aria-current] { border-left-color: var(--gold); color: var(--link); font-weight: 600; background: var(--bg); }
@media (max-width: 900px) { .page__grid { grid-template-columns: 1fr; } .page__side { position: static; } }

.prose { display: grid; gap: 14px; }
.prose p, .prose li { max-width: 72ch; }
.prose ul { margin: 0; padding-left: 1.3em; display: grid; gap: 6px; }
.prose h2, .sub { font-size: 1.3rem; margin-top: 14px; }
.sub { margin: 28px 0 12px; }
.prose.small { font-size: 0.93rem; color: var(--muted); gap: 6px; margin-top: 4px; }
.figure { margin: 0; }
.figure img { border: 1px solid var(--line); }

.docs { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.docs li { border-bottom: 1px solid var(--line); }
.docs a { display: flex; align-items: baseline; gap: 12px; padding: 11px 0; text-decoration: none; font-weight: 600; }
.docs a:hover { text-decoration: underline; }
.doc__type { flex: none; min-width: 44px; text-align: center; font: 700 0.72rem/1 var(--f-body); letter-spacing: 0.06em; padding: 4px 6px; border: 1px solid var(--gold); color: var(--gold); }

.table-wrap { overflow-x: auto; border: 1px solid var(--line); }
.table { width: 100%; border-collapse: collapse; font-size: 0.95rem; }
.table th { text-align: left; background: var(--bg); font-weight: 700; padding: 10px 12px; border-bottom: 2px solid var(--navy); white-space: nowrap; }
.table td { padding: 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
.table tr:last-child td { border-bottom: 0; }
.table .num { text-align: right; font-variant-numeric: tabular-nums; }
.programs { min-width: 720px; }
.programs.opp { min-width: 0; }
.jobs { display: block; color: var(--muted); font-size: 0.86rem; margin-top: 4px; }

.sitemap { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 8px 32px; }
.sitemap ul { margin: 0; padding-left: 1.1em; display: grid; gap: 4px; }

.search-big { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
.search-big input { flex: 1 1 240px; font: 400 1rem/1.2 var(--f-body); padding: 11px 12px; border: 1px solid var(--line); border-radius: 2px; background: var(--surface); color: var(--text); }
.results { margin: 16px 0 0; padding-left: 1.4em; display: grid; gap: 16px; }
.results a, .results .link { font-weight: 600; font-size: 1.05rem; }
.res__sec { display: block; font-size: 0.85rem; color: var(--muted); }
.results p { color: var(--muted); font-size: 0.95rem; margin-top: 4px; }

/* ---------- Повна новина ---------- */
.article { border: 0; padding: 0; width: min(820px, 100%); max-height: 100%; background: var(--surface); color: var(--text); border-radius: 2px; }
.article::backdrop { background: rgba(10, 20, 36, .6); }
.article__bar { position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px clamp(16px, 4vw, 36px); background: var(--navy); color: var(--on-navy); font-size: 0.9rem; }
.article__close { background: transparent; color: var(--on-navy); border: 1px solid var(--on-navy-muted); padding: 8px 12px; font: 600 0.9rem/1 var(--f-body); cursor: pointer; border-radius: 2px; }
.article__content { padding: 26px clamp(16px, 4vw, 36px) 32px; display: grid; gap: 14px; }
.article__content h2#articleTitle { font-size: clamp(1.4rem, 3vw, 1.9rem); }
.article__content > .meta { padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.article__hero { width: 100%; max-width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border: 1px solid var(--line); }
.gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 8px; }
.gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border: 1px solid var(--line); }
.share { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 8px; padding-top: 16px; border-top: 1px solid var(--line); }
@media (max-width: 600px) { .article { height: 100%; } }

/* Таблиця програм на телефоні — картками */
@media (max-width: 700px) {
  .programs { min-width: 0; }
  .programs thead { display: none; }
  .programs tr { display: block; padding: 14px 12px; border-bottom: 1px solid var(--line); }
  .programs tr:last-child { border-bottom: 0; }
  .programs td { display: grid; grid-template-columns: 9.5em minmax(0, 1fr); gap: 8px; padding: 3px 0; border: 0; text-align: left; white-space: normal; }
  .programs td:first-child { display: block; padding-bottom: 8px; }
  .programs td[data-label]::before { content: attr(data-label); color: var(--muted); font-size: 0.86rem; }
  .table-wrap:has(.programs) { overflow: visible; }
}
@media (max-width: 700px) { .programs td.num { text-align: left; } }
html.hc .a11y button[aria-pressed="true"], html.hc .filter button.is-on, html.hc .btn--primary { background: var(--gold); color: #000; border-color: var(--gold); }
html.hc .tool[aria-expanded="true"] { background: var(--gold); color: #000; }

/* Анонси подій над новинами */
.events-row { padding-block: 40px 0; }
.events-row .events { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 14px; }
.events-row .events li { border: 1px solid var(--line); border-top: 3px solid var(--navy); background: var(--surface); padding: 14px 16px; }
html.hc .events-row .events li { border-top-color: var(--gold); }
.events-row .events li.empty { border: 0; background: none; padding: 0; }
.events-row + .layout { padding-top: 36px; }
.search { display: flex; margin: 0; }
.search input, .tools .tool { height: 36px; }
.tools .tool { display: inline-flex; align-items: center; }
.tools .burger { display: none; }
@media (max-width: 960px) { .tools .burger { display: inline-flex; } }

/* Шапка на телефоні: інструменти зверху, далі назва, далі смуга «Меню» */
.menubar { display: none; }
@media (max-width: 960px) {
  .crest__pre { display: block; }
  .head__in { flex-direction: column; align-items: stretch; gap: 14px; padding-block: 12px 18px; }
  .tools { order: -1; width: 100%; align-self: stretch; }
  .menubar { display: block; background: var(--surface); border-bottom: 1px solid var(--line); }
  .menubar .burger {
    display: flex; align-items: center; gap: 10px; width: 100%; padding: 14px 0;
    background: none; border: 0; color: var(--text); font: 700 1rem/1 var(--f-body); cursor: pointer;
  }
  .burger__icon, .burger__icon::before, .burger__icon::after { display: block; width: 20px; height: 2px; background: currentColor; position: relative; }
  .burger__icon::before, .burger__icon::after { content: ""; position: absolute; left: 0; }
  .burger__icon::before { top: -6px; } .burger__icon::after { top: 6px; }
  .burger[aria-expanded="true"] .burger__icon { background: transparent; }
  .burger[aria-expanded="true"] .burger__icon::before { top: 0; transform: rotate(45deg); }
  .burger[aria-expanded="true"] .burger__icon::after { top: 0; transform: rotate(-45deg); }
  .menu { border-top: 0; }
}

/* Кнопка «Меню» на телефоні — помітна біла кнопка в шапці */
@media (max-width: 960px) {
  .head { border-bottom: 0; }
  .head__in { padding-bottom: 14px; }
  .menubar { background: var(--navy); border-bottom: 3px solid var(--gold); padding-bottom: 14px; }
  .menubar .burger {
    justify-content: center; padding: 14px 16px; border-radius: 2px;
    background: var(--on-navy); color: var(--navy); font-size: 1.05rem;
  }
  .menubar .burger[aria-expanded="true"] { background: var(--navy-2); color: var(--on-navy); box-shadow: inset 0 0 0 1px var(--on-navy-muted); }
  html.hc .menubar .burger { background: var(--gold); color: #000; }
}

/* ---------- Фотоальбом ---------- */
.prose .gallery { margin: 4px 0; }
.gallery a, .figure img, .article__hero, .alum__photo img { cursor: zoom-in; }
.lightbox {
  border: 0; padding: 0; margin: 0; width: 100%; height: 100%; max-width: 100%; max-height: 100%;
  background: rgba(6, 12, 22, .96); color: #fff;
}
.lightbox::backdrop { background: rgba(6, 12, 22, .96); }
.lightbox[open] { display: grid; grid-template-columns: 64px minmax(0, 1fr) 64px; grid-template-rows: auto minmax(0, 1fr); }
.lightbox__bar {
  grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center;
  padding: calc(10px + env(safe-area-inset-top, 0px)) max(16px, env(safe-area-inset-right, 0px)) 10px max(16px, env(safe-area-inset-left, 0px));
  font: 600 0.95rem/1 var(--f-body);
}
.lightbox__close, .lightbox__nav {
  background: rgba(255,255,255,.12); color: #fff; border: 1px solid rgba(255,255,255,.3);
  cursor: pointer; font: 400 1.6rem/1 var(--f-body); border-radius: 2px;
}
.lightbox__close { width: 44px; height: 44px; font-size: 1.2rem; }
.lightbox__nav { align-self: center; justify-self: center; width: 48px; height: 64px; font-size: 2.2rem; }
.lightbox__nav:hover, .lightbox__close:hover { background: rgba(255,255,255,.25); }
.lightbox__stage { margin: 0; display: grid; place-items: center; min-height: 0; padding: 8px 0 calc(16px + env(safe-area-inset-bottom, 0px)); }
.lightbox__stage img { max-width: 100%; max-height: 100%; object-fit: contain; cursor: default; filter: none !important; }
@media (max-width: 700px) {
  .lightbox[open] { grid-template-columns: 0 minmax(0, 1fr) 0; }
  .lightbox__nav { position: fixed; bottom: calc(18px + env(safe-area-inset-bottom, 0px)); width: 56px; height: 48px; }
  .lightbox__prev { left: max(16px, env(safe-area-inset-left, 0px)); }
  .lightbox__next { right: max(16px, env(safe-area-inset-right, 0px)); }
  .lightbox__stage { padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px)); }
}

/* ---------- Карта й маршрут ---------- */
.map { position: relative; }
.map__open { position: absolute; inset: 0; display: flex; align-items: flex-end; justify-content: flex-end; padding: 8px; text-decoration: none; }
.map__open span { background: var(--surface); color: var(--link); font: 600 0.85rem/1 var(--f-body); padding: 8px 10px; border: 1px solid var(--line); box-shadow: 0 2px 6px rgba(0,0,0,.15); }
.map__open:hover span { text-decoration: underline; }
.place .btn--route { margin-top: 10px; }

/* ---------- Стара версія сайту ---------- */
.oldsite { padding-block: 28px; text-align: center; border-top: 1px solid var(--line); }

/* ---------- Вакансії ---------- */
.vacancies td:first-child, .vacancies th:first-child { width: 3em; text-align: center; }
.vacancies__none td { text-align: center; color: var(--muted); padding: 20px 12px; }
@media (max-width: 700px) {
  .vacancies thead { display: none; }
  .vacancies tr { display: block; padding: 12px; border-bottom: 1px solid var(--line); }
  .vacancies tr:last-child { border-bottom: 0; }
  .vacancies td { display: grid; grid-template-columns: 6.5em minmax(0, 1fr); gap: 8px; padding: 3px 0; border: 0; text-align: left !important; width: auto !important; }
  .vacancies td[data-label]::before { content: attr(data-label); color: var(--muted); font-size: 0.86rem; }
  .vacancies__none td { display: block; text-align: center !important; }
}

/* ---------- Структура (органіграма) ---------- */
.org { margin-top: 8px; }
.org__top { display: flex; justify-content: center; position: relative; padding-bottom: 28px; }
.org__top::after { content: ""; position: absolute; bottom: 0; left: 50%; height: 28px; border-left: 2px solid var(--navy); }
.org__branches { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; position: relative; padding-top: 22px; }
.org__branches::before { content: ""; position: absolute; top: 0; left: calc(100% / 6); right: calc(100% / 6); border-top: 2px solid var(--navy); }
.org__branch { position: relative; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.org__branch::before { content: ""; position: absolute; top: -22px; left: 50%; height: 22px; border-left: 2px solid var(--navy); }
.org__branch h3 { font-size: 1rem; text-align: center; background: var(--navy); color: var(--on-navy); padding: 10px 8px; }
html.hc .org__branch h3 { background: var(--gold); color: #000; }
html.hc .org__top::after, html.hc .org__branches::before, html.hc .org__branch::before { border-color: var(--text); }
.org__card { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 10px; align-items: center; background: var(--surface); border: 1px solid var(--line); padding: 10px; }
.org__card--head { grid-template-columns: 72px minmax(0, 1fr); max-width: 420px; width: 100%; border-top: 3px solid var(--gold); padding: 14px; }
.org__photo { position: relative; width: 48px; height: 48px; border-radius: 50%; overflow: hidden; background: var(--bg); border: 1px solid var(--line); display: grid; place-items: center; }
.org__card--head .org__photo { width: 72px; height: 72px; }
.org__photo span { font: 700 0.9rem/1 var(--f-head); color: var(--muted); }
.org__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.org__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.org__role { font-size: 0.82rem; color: var(--muted); line-height: 1.3; }
.org__text strong { font-size: 0.97rem; line-height: 1.3; }
.org__deg { font-size: 0.82rem; color: var(--muted); }
.org__dep { display: flex; flex-direction: column; }
.org__sub { list-style: none; margin: 0 0 0 22px; padding: 6px 0 0 14px; border-left: 2px solid var(--line); display: grid; gap: 6px; }
.org__sub li { position: relative; font-size: 0.88rem; line-height: 1.35; background: var(--bg); border: 1px solid var(--line); padding: 6px 8px; }
.org__sub li::before { content: ""; position: absolute; left: -15px; top: 50%; width: 13px; border-top: 2px solid var(--line); }
.org__sub span { display: block; color: var(--muted); font-size: 0.82rem; }
.org__units { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.org__units li { background: var(--surface); border: 1px solid var(--line); padding: 9px 12px; font-weight: 600; font-size: 0.93rem; }
@media (max-width: 900px) {
  .org__branches { grid-template-columns: 1fr; gap: 28px; padding-top: 0; padding-left: 18px; border-left: 2px solid var(--navy); margin-left: 49px; padding-top: 22px; }
  .org__branches::before { display: none; }
  .org__branch::before { top: 18px; left: -20px; width: 18px; height: 0; border-left: 0; border-top: 2px solid var(--navy); }
  .org__top { justify-content: flex-start; padding-bottom: 0; }
  .org__top::after { display: none; }
}
.lightbox__prev { grid-column: 1; grid-row: 2; }
.lightbox__stage { grid-column: 2; grid-row: 2; }
.lightbox__next { grid-column: 3; grid-row: 2; }

/* ---------- Сторінка освітньої програми ---------- */
.facts { margin: 0 0 8px; border: 1px solid var(--line); }
.facts > div { display: grid; grid-template-columns: minmax(150px, 34%) minmax(0, 1fr); gap: 16px; padding: 10px 14px; border-bottom: 1px solid var(--line); }
.facts > div:last-child { border-bottom: 0; }
.facts > div:nth-child(odd) { background: var(--bg); }
.facts dt { color: var(--muted); font-size: 0.93rem; }
.facts dd { margin: 0; font-weight: 600; }
.cols { columns: 2 260px; column-gap: 32px; margin: 0; padding-left: 1.2em; }
.cols li { break-inside: avoid; margin-bottom: 6px; }
@media (max-width: 560px) { .facts > div { grid-template-columns: 1fr; gap: 2px; } }
.programs td a strong { color: var(--link); }
.doc__wait { display: flex; align-items: baseline; gap: 12px; padding: 11px 0; font-weight: 600; color: var(--muted); flex-wrap: wrap; }
.doc__wait em { font-style: normal; font-weight: 400; font-size: 0.85rem; }
.prose .docs { margin: 0; }
.prose a { overflow-wrap: anywhere; }
.place--wide { grid-column: 1 / -1; }
.prose h3 { font-size: 1.08rem; margin-top: 6px; }

/* ---------- Спеціальності: показники, фільтр, картки програм ---------- */
.stats { list-style: none; margin: 4px 0 24px; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--line); }
.stats li { padding: 14px 16px; border-right: 1px solid var(--line); color: var(--muted); font-size: 0.9rem; line-height: 1.35; }
.stats li:last-child { border-right: 0; }
.stats b { display: block; font: 700 1.9rem/1.1 var(--f-head); color: var(--text); margin-bottom: 4px; font-variant-numeric: tabular-nums; }
@media (max-width: 700px) {
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stats li:nth-child(2) { border-right: 0; }
  .stats li:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
}
.filter--progs { margin-bottom: 8px; }
.filter--progs button { padding: 9px 12px; }
.prog-group .sub a, .cc-group .sub a { color: var(--text); text-decoration: none; }
.prog-group .sub a:hover, .cc-group .sub a:hover { color: var(--link); text-decoration: underline; }

.progs { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 16px; }
.prog { display: flex; flex-direction: column; gap: 10px; min-width: 0; background: var(--surface); border: 1px solid var(--line); border-top: 3px solid var(--navy); padding: 18px 18px 20px; }
html.hc .prog { border-top-color: var(--gold); }
.prog__spec { display: flex; align-items: center; gap: 8px; font-size: 0.85rem; color: var(--muted); }
.prog__code { font: 700 0.8rem/1 var(--f-body); letter-spacing: 0.04em; color: var(--gold); border: 1px solid var(--gold); padding: 4px 6px; }
.prog__name { font-size: 1.22rem; line-height: 1.25; }
.prog__name a { color: var(--text); text-decoration: none; }
.prog__name a:hover { color: var(--link); text-decoration: underline; }
.prog__qual { font-size: 0.88rem; color: var(--muted); font-style: italic; }
.prog__terms { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.prog__terms li { background: var(--bg); border: 1px solid var(--line); padding: 5px 9px; font-size: 0.86rem; }
.prog__terms b { color: var(--text); }
.prog__facts { margin: 0; display: grid; gap: 0; border-top: 1px solid var(--line); }
.prog__facts div { display: grid; grid-template-columns: 6.5em minmax(0, 1fr); gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--line); font-size: 0.92rem; }
.prog__facts dt { color: var(--muted); }
.prog__facts dd { margin: 0; font-weight: 600; }
.prog__jobs { font-size: 0.9rem; color: var(--muted); }
.prog__jobs span { color: var(--text); font-weight: 600; }
.prog__more { margin-top: auto; align-self: flex-start; }
.prog[hidden], .prog-group[hidden] { display: none !important; }

/* ---------- Відділення ---------- */
.dept { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 0; border: 1px solid var(--line); margin-bottom: 8px; }
.dept__people { display: grid; gap: 14px; padding: 18px; border-right: 1px solid var(--line); }
.dept__contacts { margin: 0; padding: 18px; background: var(--bg); display: grid; gap: 12px; align-content: start; }
.dept__contacts dt { font-size: 0.82rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; }
.dept__contacts dd { margin: 2px 0 0; font-weight: 600; }
@media (max-width: 700px) { .dept { grid-template-columns: 1fr; } .dept__people { border-right: 0; border-bottom: 1px solid var(--line); } }
.dept__about { margin-top: 16px; }
.person { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 12px; align-items: center; }
.person__photo { position: relative; width: 56px; height: 56px; border-radius: 50%; overflow: hidden; display: grid; place-items: center; background: var(--bg); border: 1px solid var(--line); }
.person__photo span { font: 700 1rem/1 var(--f-head); color: var(--muted); }
.person__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.person__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.person__role { font-size: 0.84rem; color: var(--muted); }
.person__text strong { font-size: 1.02rem; }

/* ---------- Циклові комісії ---------- */
.cc { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 14px; }
.cc__card { display: flex; flex-direction: column; gap: 8px; background: var(--surface); border: 1px solid var(--line); border-left: 3px solid var(--gold); padding: 16px; min-width: 0; }
.cc__label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); }
.cc__card h3 { font-size: 1.08rem; line-height: 1.3; }
.cc__card h3::first-letter { text-transform: uppercase; }
.cc__head { display: flex; align-items: center; gap: 10px; margin-top: auto; padding-top: 8px; border-top: 1px solid var(--line); font-weight: 600; font-size: 0.95rem; }
.cc__ini { flex: none; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--bg); border: 1px solid var(--line); font: 700 0.8rem/1 var(--f-head); color: var(--muted); }
.cc__role { display: block; font-weight: 400; font-size: 0.8rem; color: var(--muted); }
.cc__link { font-weight: 600; font-size: 0.92rem; }

/* Склад циклової комісії (дані з бази працівників, аркуш «Педагогічний склад») */
.cc-staff { margin-top: 14px; background: var(--surface); border: 1px solid var(--line); scroll-margin-top: 90px; }
.cc-staff > summary { cursor: pointer; list-style: none; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; padding: 14px 44px 14px 16px; position: relative; }
.cc-staff > summary::-webkit-details-marker { display: none; }
.cc-staff > summary::after { content: "+"; position: absolute; right: 16px; top: 10px; font: 400 1.5rem/1 var(--f-body); color: var(--gold); }
.cc-staff[open] > summary::after { content: "\2212"; }
.cc-staff > summary:hover .cc-staff__t, .cc-staff > summary:focus-visible .cc-staff__t { color: var(--link); }
.cc-staff[open] > summary { border-bottom: 1px solid var(--line); }
.cc-staff__t { font: 600 1.05rem/1.35 var(--f-head); color: var(--text); }
.cc-staff__n { font-size: 0.9rem; color: var(--muted); }
.staff { list-style: none; counter-reset: st; margin: 0; padding: 0 16px; }
.staff__item { counter-increment: st; position: relative; padding: 14px 0 14px 34px; border-bottom: 1px solid var(--line); }
.staff__item:last-child { border-bottom: 0; }
.staff__item::before { content: counter(st) "."; position: absolute; left: 0; top: 14px; width: 26px; text-align: right; color: var(--muted); font-variant-numeric: tabular-nums; }
.staff__name { margin: 0; font-weight: 700; font-size: 1.02rem; }
.staff__deg { font-weight: 400; color: var(--text); }
.staff__badge { display: inline-block; margin-left: 6px; padding: 1px 8px; border: 1px solid var(--gold); color: var(--text); font-size: 0.76rem; font-weight: 600; letter-spacing: 0.02em; vertical-align: 2px; }
.staff__pos { margin: 2px 0 0; color: var(--muted); font-size: 0.94rem; }
.staff__dl { margin: 10px 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 24px; }
.staff__dl dt { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); margin-bottom: 3px; }
.staff__dl dd { margin: 0; font-size: 0.95rem; line-height: 1.45; }
.staff__dl dd span { display: block; }
.staff__dl dd span + span { margin-top: 4px; }
.staff__none { color: var(--muted); }
@media (max-width: 720px) {
  .staff { padding: 0 12px; }
  .staff__item { padding-left: 30px; }
  .staff__item::before { width: 22px; }
  .staff__dl { grid-template-columns: 1fr; }
}
@media print {
  .cc-staff > summary::after { display: none; }
  .cc-staff:not([open]) > :not(summary) { display: block; }
}

/* Програми без набору */
.notice { border-left: 4px solid var(--gold); background: var(--surface); border-top: 1px solid var(--line); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 12px 16px; margin: 0 0 20px; }
.arch { list-style: none; padding: 0; margin: 8px 0 0; border-top: 1px solid var(--line); }
.arch li { padding: 10px 0; border-bottom: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; }
.arch a { font-weight: 600; }
.arch__code { color: var(--muted); font-size: 0.9rem; }
.cc__btn { align-self: flex-start; margin-top: 4px; font-size: 0.92rem; padding: 8px 14px; }
.cc__wait { font-size: 0.86rem; color: var(--muted); }

/* Електронні сервіси: сторінка сервісу */
.svc { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 8px 0 4px; align-items: start; }
.svc__box { border: 1px solid var(--line); border-radius: 6px; padding: 4px 20px 12px; background: var(--surface, #fff); }
.svc__box h2.sub { margin-top: 14px; }
.svc__box ul { margin: 0; padding-left: 1.2em; }
.svc__box li { margin: 4px 0; }
.svc__go { margin: 20px 0; }
@media (max-width: 720px) { .svc { grid-template-columns: 1fr; } }

/* ============================================================
   Електронні сервіси: форми (assets/eservices.js)
   ============================================================ */
.es-intro { display: grid; gap: 12px; margin-bottom: 8px; }
.es-prep { border: 1px solid var(--line); border-left: 4px solid var(--gold); padding: 0 16px; margin: 4px 0 24px; background: var(--surface); }
.es-prep summary { cursor: pointer; font-weight: 600; padding: 12px 0; color: var(--navy); }
html[data-theme="dark"] .es-prep summary { color: var(--link); }
.es-prep[open] summary { border-bottom: 1px solid var(--line); margin-bottom: 10px; }
.es-prep ul, .es-prep ol { margin: 0 0 14px; padding-left: 1.3em; display: grid; gap: 6px; }
.es-prep h3 { font-size: 1rem; margin: 6px 0 8px; }
.es-loading { color: var(--muted); display: flex; align-items: center; gap: 10px; padding: 16px 0; }
.es-form { display: grid; gap: 0; }
.es-demo { font-size: 0.95rem; }
.es-demo code { font-size: 0.9em; }

.es-step { border: 0; border-top: 1px solid var(--line); margin: 0; padding: 22px 0 6px; min-width: 0; }
.es-step:first-of-type { border-top: 0; }
.es-step legend { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; font: 600 1.15rem/1.3 var(--f-head); padding: 0; margin-bottom: 14px; float: left; width: 100%; }
.es-step legend + * { clear: both; }
.es-step legend small { font: 400 0.9rem var(--f-body); color: var(--muted); margin-left: auto; }
.es-step__n { width: 28px; height: 28px; flex: none; display: grid; place-items: center; background: var(--navy); color: var(--on-navy); font: 600 0.9rem var(--f-body); }

.es-f { display: block; margin-bottom: 14px; }
.es-f > span:first-child { display: block; font-weight: 600; font-size: 0.95rem; margin-bottom: 5px; }
.es-f i, .es-check i { font-style: normal; color: var(--urgent); }
.es-in { width: 100%; font: 400 1rem/1.3 var(--f-body); padding: 11px 12px; min-height: 46px; border: 1px solid #b9c0cb; border-radius: 2px; background: var(--surface); color: var(--text); }
.es-in:focus { outline: 2px solid var(--link); outline-offset: 0; border-color: var(--link); }
.es-in:disabled { background: var(--bg); color: var(--muted); }
.es-in.is-bad { border-color: var(--urgent); outline-color: var(--urgent); background: var(--urgent-bg); }
.es-ta { min-height: 90px; resize: vertical; }
.es-sel { appearance: none; -webkit-appearance: none; padding-right: 36px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23586172' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center; }
.es-hint { display: block; font-size: 0.88rem; color: var(--muted); margin-top: 4px; }
.es-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
@media (max-width: 560px) { .es-row2 { grid-template-columns: 1fr; } }
.es-check { display: flex; gap: 10px; align-items: flex-start; margin: 2px 0 14px; cursor: pointer; }
.es-check input { width: 20px; height: 20px; flex: none; margin-top: 2px; accent-color: var(--navy); }
.es-card { border: 1px solid var(--line); padding: 14px 16px 2px; margin-bottom: 12px; background: var(--bg); }
.es-card h4 { margin: 0 0 10px; font-size: 1rem; }
.es-info { border-left: 4px solid var(--gold); background: var(--bg); padding: 12px 16px; margin: 0 0 8px; }

/* перемикач */
.es-seg { display: inline-flex; flex-wrap: wrap; border: 1px solid var(--navy); margin: 0 0 16px; }
.es-seg button { border: 0; background: var(--surface); color: var(--navy); font: 600 0.95rem var(--f-body); padding: 10px 16px; cursor: pointer; }
.es-seg button + button { border-left: 1px solid var(--navy); }
.es-seg button.is-on { background: var(--navy); color: var(--on-navy); }
html[data-theme="dark"] .es-seg, html[data-theme="dark"] .es-seg button + button { border-color: var(--link); }
html[data-theme="dark"] .es-seg button { color: var(--link); }
html[data-theme="dark"] .es-seg button.is-on { color: #fff; }

/* пошук особи */
.es-res { display: grid; gap: 6px; }
.es-res button { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; border: 1px solid var(--line); background: var(--surface); color: var(--text); padding: 10px 12px; cursor: pointer; font: 600 1rem var(--f-body); }
.es-res button:hover, .es-res button:focus-visible { border-color: var(--navy); background: var(--bg); }
.es-av { width: 30px; height: 30px; flex: none; display: grid; place-items: center; background: var(--bg); color: var(--navy); font-weight: 700; border: 1px solid var(--line); }
.es-msg { color: var(--muted); font-size: 0.95rem; margin: 6px 0 10px; }
.es-chosen { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid #9ccfae; border-left: 4px solid #1f7a3d; background: #eef8f1; margin-bottom: 12px; }
.es-chosen .es-av { background: #1f7a3d; color: #fff; border: 0; }
.es-chosen b { display: block; }
.es-chosen span span { font-size: 0.9rem; color: var(--muted); }
.es-chosen .link { margin-left: auto; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .es-chosen { background: #15291d; border-color: #2d5a3c; } }
html[data-theme="dark"] .es-chosen { background: #15291d; border-color: #2d5a3c; }

/* варіанти вибору */
.es-opts { display: grid; gap: 8px; margin-bottom: 12px; }
.es-opt { position: relative; display: flex; gap: 12px; align-items: flex-start; border: 1px solid var(--line); padding: 11px 14px; cursor: pointer; background: var(--surface); }
.es-opt:hover { border-color: #9aa5b5; }
.es-opt input { position: absolute; opacity: 0; pointer-events: none; }
.es-opt__box { width: 20px; height: 20px; flex: none; margin-top: 1px; border: 2px solid #8d97a7; display: grid; place-items: center; background: var(--surface); }
.es-opt input[type=radio] + .es-opt__box { border-radius: 50%; }
.es-opt input:checked + .es-opt__box { background: var(--navy); border-color: var(--navy); }
.es-opt input:checked + .es-opt__box::after { content: ""; width: 9px; height: 5px; border: 2.5px solid #fff; border-top: 0; border-right: 0; transform: rotate(-45deg) translate(1px, -1px); }
.es-opt input[type=radio]:checked + .es-opt__box::after { width: 8px; height: 8px; border: 0; border-radius: 50%; background: #fff; transform: none; }
.es-opt input:focus-visible + .es-opt__box { outline: 2px solid var(--link); outline-offset: 2px; }
.es-opt:has(input:checked) { border-color: var(--navy); background: var(--bg); }
.es-opt b { display: block; font-weight: 600; }
.es-opt small { color: var(--muted); font-size: 0.9rem; }
.es-opts--chips { display: flex; flex-wrap: wrap; }
.es-opts--chips .es-opt { padding: 8px 12px; align-items: center; }
.es-opts--chips .es-opt b { font-weight: 400; }

.es-stepper { display: inline-flex; border: 1px solid #b9c0cb; }
.es-stepper button { width: 44px; height: 44px; border: 0; background: var(--bg); color: var(--navy); font: 700 1.2rem var(--f-body); cursor: pointer; }
.es-stepper output { width: 48px; display: grid; place-items: center; font-weight: 700; }

/* документи */
.es-docs { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 8px; }
.es-doc { display: grid; grid-template-columns: 42px 1fr auto; align-items: center; gap: 12px; border: 1px solid var(--line); padding: 10px 12px; background: var(--surface); }
.es-doc.is-sel { border-color: var(--link); background: var(--bg); }
.es-doc__ic { width: 42px; height: 42px; display: grid; place-items: center; background: var(--bg) center/cover no-repeat; color: var(--muted); border: 1px solid var(--line); }
.es-doc__ic.is-ok { background-color: #eef8f1; color: #1f7a3d; border-color: #b9dfc6; }
.es-doc__ic.is-review { background-color: #fdf5e6; color: #8a5a00; border-color: #ecd5a6; }
.es-doc__ic.is-rejected { background-color: var(--urgent-bg); color: var(--urgent); border-color: #e9b7b7; }
.es-doc__t { min-width: 0; }
.es-doc__t b { display: block; font-weight: 600; line-height: 1.3; overflow-wrap: anywhere; }
.es-doc__t span { display: block; font-size: 0.88rem; color: var(--muted); }
.es-doc__t .is-ok { color: #1f7a3d; font-weight: 600; }
.es-doc__t .is-review { color: #8a5a00; font-weight: 600; }
.es-doc__t .is-rejected, .es-doc__t .is-err { color: var(--urgent); font-weight: 600; }
.es-doc__t .is-new { color: var(--link); font-weight: 600; }
.es-doc__btn { padding: 8px 14px; white-space: nowrap; }
.es-doc__x { width: 38px; height: 38px; border: 1px solid var(--line); background: var(--surface); color: var(--muted); cursor: pointer; }
.es-bar { grid-column: 1 / -1; height: 3px; background: var(--line); overflow: hidden; }
.es-bar i { display: block; height: 100%; width: 35%; background: var(--navy); animation: es-slide 1.1s ease-in-out infinite; }
@keyframes es-slide { from { transform: translateX(-100%); } to { transform: translateX(300%); } }
@media (max-width: 480px) { .es-doc { grid-template-columns: 42px 1fr; } .es-doc__act { grid-column: 1 / -1; justify-self: end; } }
.es-lock { display: flex; gap: 8px; color: var(--muted); font-size: 0.9rem; margin: 6px 0 12px; }
.es-lock svg { flex: none; margin-top: 3px; }
.es-status { display: flex; align-items: center; gap: 8px; padding: 9px 12px; font-weight: 600; font-size: 0.95rem; background: var(--bg); border: 1px solid var(--line); margin: 0 0 12px; }
.es-status.is-ok { color: #1f7a3d; } .es-status.is-review { color: #8a5a00; } .es-status.is-rejected { color: var(--urgent); }
.es-drop { display: flex; flex-direction: column; align-items: center; gap: 4px; text-align: center; cursor: pointer; border: 2px dashed #b9c0cb; padding: 20px 16px; background: var(--bg); color: var(--muted); margin-bottom: 10px; }
.es-drop:hover, .es-drop.is-over { border-color: var(--navy); }
.es-drop b { color: var(--navy); }
.es-drop small { font-size: 0.85rem; }

/* надсилання */
.es-submit { border-top: 1px solid var(--line); padding-top: 20px; margin-top: 8px; }
.es-btn { min-width: 240px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 13px 22px; font-size: 1rem; }
.es-btn[disabled] { opacity: .7; cursor: progress; }
.es-err { display: none; margin-top: 12px; padding: 10px 14px; background: var(--urgent-bg); color: var(--urgent); border-left: 4px solid var(--urgent); font-weight: 600; }
.es-err.is-on { display: block; }
.es-spin { width: 16px; height: 16px; border-radius: 50%; border: 2px solid rgba(255,255,255,.45); border-top-color: #fff; animation: es-rot .8s linear infinite; flex: none; }
.es-spin--dark { border-color: var(--line); border-top-color: var(--navy); }
@keyframes es-rot { to { transform: rotate(360deg); } }
.es-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.es-done { text-align: center; padding: 28px 8px; outline: none; }
.es-done__ic { width: 64px; height: 64px; margin: 0 auto 14px; display: grid; place-items: center; background: #eef8f1; color: #1f7a3d; border: 1px solid #b9dfc6; }
.es-done h2 { font-size: 1.4rem; margin: 0 0 8px; }
.es-done p { color: var(--muted); max-width: 52ch; margin: 0 auto 18px; }
.es-done__act { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
@media (max-width: 560px) { .es-btn { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .es-bar i, .es-spin { animation: none; } }

/* сторінка «Електронні сервіси» — картки */
.es-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 14px; margin: 18px 0 8px; }
.es-cardlink { display: flex; flex-direction: column; gap: 6px; border: 1px solid var(--line); border-top: 3px solid var(--navy); padding: 16px 18px; text-decoration: none; color: var(--text); background: var(--surface); }
.es-cardlink:hover { border-color: var(--navy); }
.es-cardlink b { font: 600 1.1rem/1.3 var(--f-head); color: var(--navy); }
html[data-theme="dark"] .es-cardlink b { color: var(--link); }
.es-cardlink span { color: var(--muted); font-size: 0.95rem; }

/* ============================================================
   Сторінки з окремих аркушів: МТБ, Підготовчі курси,
   Вступна кампанія, Вибіркові дисципліни (assets/page.js)
   ============================================================ */
.xp-lead { font-size: 1.08rem; color: var(--text); max-width: 72ch; margin: 0 0 20px; }
.xp-sub { color: var(--muted); margin: -6px 0 16px; font-size: 0.97rem; }
.xp-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); font-weight: 700; }
.xp-muted { display: block; color: var(--muted); font-size: 0.9rem; font-weight: 400; }
.xp-tail { margin-top: 12px; }
.xp-ico { width: 42px; height: 42px; flex: none; display: grid; place-items: center; background: var(--bg); color: var(--navy); border: 1px solid var(--line); }
.xp-ico svg { width: 21px; height: 21px; }
html[data-theme="dark"] .xp-ico { color: var(--link); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .xp-ico { color: var(--link); } }
.xp-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.xp-chips li { border: 1px solid var(--line); background: var(--bg); padding: 5px 10px; font-size: 0.88rem; }

/* Верхній блок (підготовчі курси, вступна кампанія) */
.xp-hero { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 28px; align-items: center;
  background: var(--navy); color: var(--on-navy); border-bottom: 3px solid var(--gold); padding: clamp(20px, 4vw, 32px); margin: 0 0 8px; }
.xp-hero::after { content: ""; position: absolute; top: 0; bottom: 0; right: 7%; width: 70px; background: var(--gold); opacity: .18; transform: skewX(-24deg); pointer-events: none; }
.xp-hero > * { position: relative; z-index: 1; }
.xp-hero__text { display: grid; gap: 16px; min-width: 0; }
.xp-hero__text p { max-width: 60ch; }
.xp-hero__eyebrow { font-size: 0.82rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--on-navy-muted); font-weight: 700; }
.xp-hero__btns { display: flex; flex-wrap: wrap; gap: 10px; }
.xp-hero__btns .btn { display: inline-flex; align-items: center; gap: 8px; }
.xp-hero__btns svg { width: 17px; height: 17px; }
.xp-btn-light { background: var(--on-navy); color: var(--navy); border-color: var(--on-navy); }
.xp-btn-light:hover { background: var(--bg); color: var(--navy); }
.xp-btn-ghost { background: transparent; color: var(--on-navy); border-color: rgba(255,255,255,.55); }
.xp-btn-ghost:hover { background: rgba(255,255,255,.12); color: var(--on-navy); }
.xp-hero__facts { margin: 0; border: 1px solid rgba(255,255,255,.22); background: rgba(255,255,255,.06); padding: 4px 18px; }
.xp-hero__facts div { display: flex; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid rgba(255,255,255,.15); }
.xp-hero__facts div:last-child { border-bottom: 0; }
.xp-hero__facts dt { color: var(--on-navy-muted); font-size: 0.92rem; }
.xp-hero__facts dd { margin: 0; font-weight: 700; text-align: right; }
html.hc .xp-hero { border: 1px solid var(--text); }
@media (max-width: 800px) { .xp-hero { grid-template-columns: 1fr; } .xp-hero::after { right: -20px; } }

/* Нумеровані кроки */
.xp-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 14px; }
.xp-steps--3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.xp-steps > li { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 14px; align-items: start; background: var(--bg); border: 1px solid var(--line); padding: 16px; }
.xp-steps__n { width: 40px; height: 40px; display: grid; place-items: center; background: var(--navy); color: var(--on-navy); font: 700 1.1rem/1 var(--f-head); box-shadow: 3px 3px 0 var(--gold); }
.xp-steps h3 { font-size: 1.05rem; margin-bottom: 4px; }
.xp-steps p { color: var(--muted); font-size: 0.95rem; overflow-wrap: anywhere; }

/* Контакти рядком */
.xp-contacts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr)); border: 1px solid var(--line); }
.xp-contacts > div { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); margin: 0 -1px -1px 0; min-width: 0; }
.xp-contacts .xp-ico { margin-bottom: 6px; width: 36px; height: 36px; }
.xp-contacts .xp-ico svg { width: 18px; height: 18px; }
.xp-contacts a, .xp-contacts b { font-weight: 600; overflow-wrap: anywhere; }
.xp-contacts a.xp-muted { font-weight: 400; }

/* Плитки з іконкою */
.xp-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 12px; }
.xp-tile { display: flex; gap: 14px; align-items: flex-start; border: 1px solid var(--line); padding: 16px; background: var(--surface); }
.xp-tile h3 { font-size: 1rem; margin-bottom: 3px; }
.xp-tile p { color: var(--muted); font-size: 0.93rem; }

/* ---------- МТБ ---------- */
.stats--auto { grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
.stats--auto li { border-bottom: 1px solid var(--line); margin-bottom: -1px; }
@media (max-width: 700px) { .stats--auto { grid-template-columns: repeat(2, minmax(0, 1fr)); } .stats--auto li:nth-child(2n) { border-right: 0; } }
.mtb { display: grid; gap: 16px; }
.mtb-b { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); border: 1px solid var(--line); border-top: 3px solid var(--navy); background: var(--surface); }
html.hc .mtb-b { border-top-color: var(--gold); }
.mtb-b__photo { position: relative; min-height: 220px; background: var(--navy); overflow: hidden; }
.mtb-b__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mtb-b__tag { position: absolute; left: 12px; top: 12px; z-index: 1; background: var(--gold); color: #fff; font: 700 0.76rem/1 var(--f-body); letter-spacing: 0.06em; text-transform: uppercase; padding: 6px 9px; }
.mtb-b__info { display: flex; flex-direction: column; gap: 12px; padding: 18px 20px; min-width: 0; }
.mtb-b__info h3 { font-size: 1.2rem; }
.mtb-b__addr { display: flex; gap: 8px; align-items: flex-start; color: var(--muted); font-size: 0.93rem; margin-top: -4px; }
.mtb-b__addr svg { width: 16px; height: 16px; flex: none; margin-top: 4px; color: var(--gold); }
.mtb-b__figs { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.mtb-b__figs li { border: 1px solid var(--line); border-left: 3px solid var(--gold); background: var(--bg); padding: 7px 12px; min-width: 110px; }
.mtb-b__figs b { display: block; font: 700 1.15rem/1.2 var(--f-head); }
.mtb-b__figs span { font-size: 0.82rem; color: var(--muted); }
.mtb-b__more { font-weight: 600; align-self: flex-start; }
@media (max-width: 760px) { .mtb-b { grid-template-columns: 1fr; } .mtb-b__photo { min-height: 190px; } }

/* ---------- Підготовчі курси ---------- */
.pk-ben { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.pk-ben__card { grid-column: span 2; border: 1px solid var(--line); padding: 18px; background: var(--surface); display: flex; flex-direction: column; gap: 6px; }
.pk-ben__card:nth-child(n+4) { grid-column: span 3; }
.pk-ben__card .xp-ico { margin-bottom: 6px; }
.pk-ben__card h3 { font-size: 1.04rem; }
.pk-ben__card p { color: var(--muted); font-size: 0.94rem; }
.pk-ben__card.is-hl { border-left: 4px solid var(--gold); background: var(--bg); }
.pk-ben__card.is-hl .xp-ico { background: var(--gold); color: #fff; border-color: var(--gold); }
@media (max-width: 860px) { .pk-ben { grid-template-columns: 1fr 1fr; } .pk-ben__card, .pk-ben__card:nth-child(n+4) { grid-column: span 1; } .pk-ben__card.is-hl { grid-column: 1 / -1; } }
@media (max-width: 520px) { .pk-ben { grid-template-columns: 1fr; } }
.pk-subj { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 12px; }
.pk-subj__card { border: 1px solid var(--line); border-top: 3px solid var(--navy); padding: 16px 18px; background: var(--surface); }
html.hc .pk-subj__card { border-top-color: var(--gold); }
.pk-subj__chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.pk-subj__chips span { background: var(--navy); color: var(--on-navy); padding: 5px 11px; font-weight: 600; font-size: 0.88rem; }
.pk-subj__card ul { list-style: none; margin: 6px 0 0; padding: 0; }
.pk-subj__card li { padding: 7px 0; border-top: 1px solid var(--line); font-size: 0.95rem; }
.pk-fmt { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 12px; }
.pk-fmt__card { border: 1px solid var(--line); padding: 18px 20px; background: var(--surface); display: flex; flex-direction: column; gap: 6px; }
.pk-fmt__card.is-main { border: 2px solid var(--navy); }
html.hc .pk-fmt__card.is-main { border-color: var(--gold); }
.pk-fmt__tag { align-self: flex-start; font: 700 0.76rem/1 var(--f-body); letter-spacing: 0.06em; text-transform: uppercase; padding: 6px 9px; background: var(--bg); color: var(--navy); border: 1px solid var(--line); }
.pk-fmt__card.is-main .pk-fmt__tag { background: var(--navy); color: var(--on-navy); border-color: var(--navy); }
.pk-fmt__dur { font: 700 2.1rem/1.1 var(--f-head); margin: 6px 0 4px; }
.pk-fmt__dur span { font: 600 1rem var(--f-body); color: var(--muted); }
.pk-fmt__when { display: flex; gap: 8px; align-items: flex-start; color: var(--muted); font-size: 0.94rem; }
.pk-fmt__when svg { width: 17px; height: 17px; flex: none; margin-top: 3px; color: var(--gold); }
.pk-docs { list-style: none; margin: 8px 0 0; padding: 0; }
.pk-docs li { position: relative; padding: 6px 0 6px 24px; font-size: 0.94rem; border-top: 1px solid var(--line); }
.pk-docs li:first-child { border-top: 0; }
.pk-docs li::before { content: ""; position: absolute; left: 2px; top: 12px; width: 11px; height: 11px; border: 2px solid var(--gold); }

/* ---------- Вступна кампанія ---------- */
.vk-hero { grid-template-columns: 1fr; }
.vk-od { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; justify-self: start; max-width: 100%;
  background: var(--gold); color: #fff; padding: 11px 16px; text-decoration: none; }
a.vk-od:hover { filter: brightness(1.08); }
.vk-od span { font-size: 0.92rem; opacity: .95; }
html.hc .vk-od { color: #000; }
.vk-nav { display: flex; flex-wrap: wrap; gap: 4px; margin: 0 0 6px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.vk-nav a { padding: 6px 10px; font-weight: 600; font-size: 0.93rem; text-decoration: none; border: 1px solid var(--line); background: var(--surface); color: var(--text); }
.vk-nav a:hover { border-color: var(--navy); color: var(--link); }
.page__main [id^="vk-"], #pk-enrol { scroll-margin-top: 16px; }
.vk-docs td ul { margin: 6px 0 0; padding-left: 1.2em; color: var(--muted); font-size: 0.93rem; }
.vk-when { font-weight: 700; color: var(--link); white-space: nowrap; font-variant-numeric: tabular-nums; }
.vk-addr { display: flex; gap: 8px; align-items: flex-start; color: var(--muted); margin-top: 12px; }
.vk-addr svg { width: 18px; height: 18px; flex: none; margin-top: 3px; color: var(--gold); }
@media (max-width: 700px) {
  .vk-docs thead { display: none; }
  .vk-docs tr { display: block; padding: 12px; border-bottom: 1px solid var(--line); }
  .vk-docs tr:last-child { border-bottom: 0; }
  .vk-docs td { display: grid; grid-template-columns: 7em minmax(0, 1fr); gap: 8px; padding: 3px 0; border: 0; white-space: normal; }
  .vk-docs td:first-child { display: block; padding-bottom: 6px; }
  .vk-docs td[data-label]::before { content: attr(data-label); color: var(--muted); font-size: 0.86rem; font-weight: 400; }
}
.vk-filter { margin-bottom: 14px; }
.vk-progs { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr)); gap: 14px; }
.vk-prog { display: flex; flex-direction: column; gap: 8px; border: 1px solid var(--line); border-top: 3px solid var(--navy); padding: 16px 18px 18px; background: var(--surface); min-width: 0; }
html.hc .vk-prog { border-top-color: var(--gold); }
.vk-prog h3 { font-size: 1.18rem; line-height: 1.25; }
.vk-prog h3 a { color: var(--text); text-decoration: none; }
.vk-prog h3 a:hover { color: var(--link); text-decoration: underline; }
.vk-facts { margin: 4px 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; border-top: 1px solid var(--line); padding-top: 12px; }
.vk-facts dt { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); }
.vk-facts dd { margin: 2px 0 0; font: 700 1.15rem/1.25 var(--f-head); font-variant-numeric: tabular-nums; }
.vk-facts .wide { grid-column: 1 / -1; }
.vk-facts .wide dd { font: 600 0.98rem/1.4 var(--f-body); }
.vk-prog[hidden] { display: none !important; }
.vk-notes { margin: 16px 0 0; display: grid; gap: 6px; }
.vk-courses { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 12px; }
.vk-col { display: grid; gap: 12px; align-content: start; }
.vk-panel { border: 1px solid var(--line); padding: 16px 18px; background: var(--surface); display: grid; gap: 8px; }
.vk-panel ol, .vk-panel ul { margin: 0; padding-left: 1.3em; display: grid; gap: 6px; }
.vk-big { font: 700 clamp(1.3rem, 2.6vw, 1.7rem)/1.2 var(--f-head); }
.vk-phones { font-size: 0.95rem; color: var(--muted); }
.vk-phones a { font-weight: 600; }
.vk-panel .vk-prices { list-style: none; padding: 0; gap: 0; }
.vk-prices li { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-top: 1px solid var(--line); }
.vk-prices li:first-child { border-top: 0; }
.vk-prices b { white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (max-width: 760px) { .vk-courses { grid-template-columns: 1fr; } }

/* Режим презентації (1920×1080, масштабується під екран) */
html.dk-lock { overflow: hidden; }
.dk { position: fixed; inset: 0; z-index: 200; background: #1b2433; overflow: hidden; }
.dk-stage { position: absolute; left: 50%; top: 50%; width: 1920px; height: 1080px; transform-origin: center center; }
.dk-ctrl { position: fixed; left: 50%; transform: translateX(-50%); bottom: calc(14px + env(safe-area-inset-bottom, 0px)); z-index: 2; display: flex; gap: 4px; align-items: center;
  background: rgba(11,26,46,.85); color: #fff; padding: 6px; opacity: .55; transition: opacity .2s; }
.dk-ctrl:hover, .dk-ctrl:focus-within { opacity: 1; }
.dk-ctrl button { width: 42px; height: 42px; background: transparent; border: 0; color: #fff; font: 400 1.4rem/1 var(--f-body); cursor: pointer; }
.dk-ctrl button:hover { background: rgba(255,255,255,.15); }
.dk-ctrl .dk-pdf { width: auto; padding: 0 10px; font: 700 0.85rem/1 var(--f-body); letter-spacing: .04em; }
.dk-cnt { min-width: 64px; text-align: center; font: 600 0.95rem var(--f-body); font-variant-numeric: tabular-nums; }
.dk-slide { position: absolute; inset: 0; display: none; overflow: hidden; background: #f3eee6; color: #1f2733; font-family: var(--f-body); }
.dk-slide.on { display: block; }
/* Слайди-«плитки» (кольори фіксовані, щоб на проєкторі все виглядало однаково) */
.dk-slide { background: #f3eee6; color: #1f2733; }
.dk-g { position: absolute; left: 60px; right: 60px; top: 60px; bottom: 60px; display: grid; gap: 24px; }
.dk-t { position: relative; overflow: hidden; border-radius: 26px; background: #fff; padding: 44px 48px; min-width: 0; min-height: 0; }
.dk-nv { background: #1b3a6b; color: #fff; }
.dk-or { background: #f28a2b; color: #14264a; }
.dk-lab { font: 800 30px/1.2 var(--f-head); letter-spacing: .1em; text-transform: uppercase; color: #b45a0a; }
.dk-nv .dk-lab { color: #f6a75c; }
.dk-or .dk-lab { color: #14264a; opacity: .75; }
.dk-hd { grid-column: 1 / -1; display: flex; align-items: center; padding: 0 10px; background: none; font: 800 78px/1 var(--f-head); color: #1b3a6b; letter-spacing: -.01em; }
.dk-hd--eb { font: 800 34px/1 var(--f-head); letter-spacing: .12em; text-transform: uppercase; color: #b45a0a; }
/* титул */
.dk-s-title .dk-g { grid-template-columns: 1.3fr 1fr; grid-template-rows: 1fr 1fr; }
.dk-s-title .dk-a { grid-row: 1 / 3; display: flex; flex-direction: column; padding: 70px; }
.dk-a .cl { font: 600 38px/1.3 var(--f-head); color: #c9d4e6; max-width: 900px; }
.dk-a h1 { margin: auto 0 0; font: 800 160px/.95 var(--f-head); letter-spacing: -.03em; color: #fff; }
.dk-a .au { margin-top: 34px; font: 700 52px/1.2 var(--f-body); }
.dk-big b { display: block; font: 800 190px/.9 var(--f-head); color: #1b3a6b; letter-spacing: -.03em; margin-top: 18px; }
.dk-big span { display: block; font: 700 48px/1.2 var(--f-body); margin-top: 14px; }
.dk-or.dk-big b { color: #14264a; font-size: 104px; }
/* етапи */
.dk-s-steps .dk-g { grid-template-columns: repeat(3, 1fr); grid-template-rows: 100px 1fr 1fr; }
.dk-s-steps .dk-t.dk-stp { padding: 36px 40px; }
.dk-stp { display: grid; align-content: start; gap: 14px; }
.dk-stp .k { width: 76px; height: 76px; border-radius: 22px; background: #f28a2b; color: #14264a; display: grid; place-items: center; font: 800 46px/1 var(--f-head); }
.dk-stp b { font: 800 40px/1.12 var(--f-head); color: #1b3a6b; }
.dk-stp p { margin: 0; font: 400 30px/1.28 var(--f-body); color: #5d6675; }
/* документи */
.dk-s-docs .dk-g { grid-template-rows: 110px 1fr auto; }
.dk-doc { display: flex; flex-direction: column; gap: 18px; }
.dk-doc .d { font: 800 64px/1.05 var(--f-head); color: #1b3a6b; letter-spacing: -.02em; }
.dk-doc ul { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 16px; font: 600 38px/1.2 var(--f-body); }
.dk-doc li { position: relative; padding-left: 34px; }
.dk-doc li::before { content: ""; position: absolute; left: 0; top: 16px; width: 16px; height: 16px; border-radius: 50%; background: #f28a2b; }
.dk-foot { grid-column: 1 / -1; padding: 26px 48px; font: 600 36px/1.25 var(--f-body); }
.dk-foot b { color: #1b3a6b; }
/* спеціальності */
.dk-s-prog .dk-g { grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr; }
.dk-nm { display: flex; align-items: flex-end; font: 800 46px/1.1 var(--f-head); letter-spacing: -.01em; }
.dk-num { display: flex; flex-direction: column; justify-content: flex-end; }
.dk-num b { font: 800 104px/1 var(--f-head); letter-spacing: -.03em; color: #1f2733; white-space: nowrap; }
.dk-num b.txt { font-size: 52px; line-height: 1.1; white-space: normal; }
.dk-num span { font: 700 30px/1.2 var(--f-body); color: #5d6675; margin-top: 10px; }
.dk-or.dk-num b, .dk-or.dk-num span { color: #14264a; }
.dk-exm { grid-column: 1 / -1; padding: 22px 48px; font: 600 38px/1.25 var(--f-body); background: #fbf8f3; }
.dk-s-prog.is-solo .dk-g { align-content: center; }
.dk-s-prog.is-solo .dk-num, .dk-s-prog.is-solo .dk-nm { min-height: 420px; }
.dk-s-prog.is-solo .dk-num b { font-size: 140px; }
.dk-s-prog.is-solo .dk-nm { font-size: 60px; }
.dk-s-prog.is-solo .dk-exm { font-size: 46px; padding: 34px 48px; }
/* підготовчі курси */
.dk-s-crs .dk-g { grid-template-columns: 1fr 1fr; grid-template-rows: 110px auto 1fr; }
.dk-crs-when { display: flex; flex-direction: column; gap: 14px; }
.dk-crs-when .d { font: 800 70px/1.05 var(--f-head); letter-spacing: -.02em; }
.dk-crs-when p { margin: 0; font: 600 38px/1.25 var(--f-body); color: #c9d4e6; }
.dk-price { grid-row: 2 / 4; grid-column: 2; display: flex; flex-direction: column; }
.dk-crs-tel { margin-top: auto; background: #fdeedd; border-radius: 18px; padding: 22px 28px; display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.dk-crs-tel b { font: 800 50px/1.15 var(--f-head); color: #1b3a6b; text-align: right; white-space: nowrap; }
.dk-price ul, .dk-ben ul { list-style: none; margin: 14px 0 0; padding: 0; }
.dk-price li { display: flex; justify-content: space-between; align-items: baseline; gap: 30px; padding: 24px 0; border-bottom: 2px solid #ebe6de; font: 600 42px/1.2 var(--f-body); }
.dk-price li:last-child { border-bottom: 0; }
.dk-price b { font: 800 56px/1 var(--f-head); color: #1b3a6b; white-space: nowrap; }
.dk-ben li { position: relative; padding: 8px 0 8px 52px; font: 600 38px/1.25 var(--f-body); }
.dk-ben li::before { content: "+"; position: absolute; left: 0; top: 0; font: 800 52px/1 var(--f-head); color: #f28a2b; }
/* контакти */
.dk-s-ct .dk-g { grid-template-columns: 1fr 1fr 560px; grid-template-rows: 1.3fr 1fr; }
.dk-tel { grid-column: 1 / 3; grid-row: 1; display: flex; flex-direction: column; justify-content: space-between; }
.dk-tel b { font: 800 138px/1 var(--f-head); letter-spacing: -.02em; white-space: nowrap; }
.dk-tel small { display: block; font: 600 40px/1.2 var(--f-body); color: #c9d4e6; margin-top: 12px; }
.dk-qr { grid-column: 3; grid-row: 1 / 3; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 26px; }
.dk-qr .q { width: 440px; height: 440px; }
.dk-qr .q svg { display: block; width: 100%; height: 100%; }
.dk-qr span { font: 800 46px/1 var(--f-head); color: #1b3a6b; }
.dk-sm { grid-row: 2; display: flex; flex-direction: column; justify-content: space-between; }
.dk-sm b { font: 700 48px/1.2 var(--f-body); }
.dk-sm small { display: block; font: 600 34px/1.25 var(--f-body); color: #5d6675; margin-top: 8px; }

/* ---------- Вибіркові дисципліни ---------- */
.vb-year { color: var(--muted); margin: -10px 0 16px; font-weight: 600; }
.vb-rule { display: grid; gap: 4px; }
.vb-meta { display: flex; flex-wrap: wrap; gap: 8px 22px; align-items: baseline; margin: 0 0 18px; }
.vb-deadline { color: var(--urgent); font-weight: 700; }
.vb-form { margin-top: 4px; }
.vb-form .es-step:first-of-type { border-top: 1px solid var(--line); }
.vb-cnt { display: inline-block; margin: -4px 0 10px; padding: 4px 10px; font-size: 0.9rem; background: var(--bg); border: 1px solid var(--line); }
.vb-cnt.is-done { background: #1f7a3d; border-color: #1f7a3d; color: #fff; }
.vb-desc { display: block; margin-top: 2px; }
.es-opt:has(input:disabled) { opacity: .55; cursor: not-allowed; }
.vb-ro { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.vb-ro li { padding: 9px 0; border-bottom: 1px solid var(--line); }
.vb-done { margin-top: 16px; border: 1px solid #b9dfc6; background: var(--surface); }
.vb-done ul { display: inline-block; text-align: left; margin: 0 auto 12px; padding-left: 1.3em; }
#vk-contacts + .xp-contacts { grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }

/* ---------- Організація освітнього процесу: графік ---------- */
.gr { --gr-study: var(--surface); --gr-sk: #c8453b; --gr-k: #3f8f5c; --gr-pn: #e0a03a; --gr-pv: #7a56b8; --gr-dp: #1f6fb2; --gr-a: #3a4456; }
.gr__h { margin-top: 0; }
.gr__h3 { font-size: 1.15rem; margin: 28px 0 8px; }
.gr-panel { border: 1px solid var(--line); background: var(--surface); padding: 16px 18px; margin-bottom: 14px; }
.gr-picker { display: grid; gap: 10px; background: var(--bg); }
.gr-course { display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: 10px; align-items: start; }
.gr-course__t { font-size: 0.85rem; color: var(--muted); font-weight: 700; padding-top: 6px; }
.gr-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.gr-chip { font: 600 0.88rem/1 var(--f-body); padding: 7px 9px; border: 1px solid var(--line); background: var(--surface); color: var(--text); cursor: pointer; font-variant-numeric: tabular-nums; }
.gr-chip:hover { border-color: var(--navy); }
.gr-chip[aria-pressed="true"] { background: var(--navy); border-color: var(--navy); color: var(--on-navy); }
html.hc .gr-chip[aria-pressed="true"] { background: var(--gold); color: #000; }
.gr-mine__head h3 { font-size: 1.25rem; }
.gr-now { display: flex; flex-wrap: wrap; gap: 10px 32px; margin: 12px 0 14px; padding: 12px 14px; border-left: 4px solid var(--gold); background: var(--bg); }
.gr-now b { font: 700 1.2rem/1.3 var(--f-head); }
.gr-now .gr-next { font-size: 1.05rem; }
.gr-strip, .gr-months { display: grid; grid-template-columns: repeat(52, minmax(0, 1fr)); gap: 2px; }
.gr-c { height: 30px; border: 1px solid var(--line); position: relative; }
.gr-c.is-today::after { content: ""; position: absolute; left: 50%; top: -9px; transform: translateX(-50%); border: 5px solid transparent; border-top-color: var(--text); }
.gr-months { font-size: 0.7rem; color: var(--muted); margin-top: 4px; }
.gr-months span { white-space: nowrap; overflow: visible; }
.gr-periods { list-style: none; margin: 16px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 8px; }
.gr-periods li { display: grid; grid-template-columns: 12px minmax(0, 1fr); gap: 10px; padding: 9px 11px; border: 1px solid var(--line); }
.gr-periods b { display: block; font-weight: 600; font-size: 0.95rem; line-height: 1.3; }
.gr-periods span:not(.gr-dot):not(.gr-code) { font-size: 0.86rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.gr-code { font-size: 0.75rem; color: var(--muted); border: 1px solid var(--line); padding: 1px 4px; margin-left: 4px; font-weight: 600; }
.gr-dot { display: inline-block; width: 12px; height: 12px; margin-top: 4px; border: 1px solid rgba(0,0,0,.08); }
.gr-legend { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 0.9rem; margin-bottom: 12px; }
.gr-legend > span { display: inline-flex; align-items: center; gap: 6px; }
.gr-legend .gr-dot { margin: 0; }
.gr-study { background: var(--gr-study); } .gr-sk { background: var(--gr-sk); } .gr-k { background: var(--gr-k); }
.gr-pn { background: var(--gr-pn); } .gr-pv { background: var(--gr-pv); } .gr-dp { background: var(--gr-dp); } .gr-a { background: var(--gr-a); }
.gr-dot.gr-study, .gr-c.gr-study { border-color: #b9c0cb; }
.gr-out { background: transparent; border-style: dashed !important; }
.gr-matrix { overflow-x: auto; border: 1px solid var(--line); }
.gr-matrix table { border-collapse: collapse; font-size: 11px; font-variant-numeric: tabular-nums; background: var(--surface); }
.gr-matrix th, .gr-matrix td { border: 1px solid var(--line); text-align: center; padding: 0; height: 24px; min-width: 25px; }
.gr-matrix thead th { background: var(--bg); font-weight: 700; padding: 2px; line-height: 1.1; }
.gr-matrix thead small { font-weight: 400; color: var(--muted); }
.gr-matrix th.g { position: sticky; left: 0; z-index: 1; background: var(--surface); text-align: left; padding: 0 8px; min-width: 64px; font-size: 12px; cursor: pointer; }
.gr-matrix thead th.g { background: var(--bg); cursor: default; }
.gr-matrix td { color: #fff; font-weight: 700; font-size: 9.5px; cursor: pointer; }
.gr-matrix td.gr-pn { color: #1d2430; }
.gr-matrix td.gr-out { background: var(--bg); border-style: solid !important; }
.gr-matrix tr.sep > * { border-top: 2px solid var(--muted); }
.gr-matrix td.cur { outline: 2px solid var(--text); outline-offset: -2px; }
.gr-matrix tr.sel th.g { color: var(--link); background: var(--bg); }
.gr-matrix tr.sel td { box-shadow: inset 0 2px 0 var(--navy), inset 0 -2px 0 var(--navy); }
.gr-codes { margin-top: 16px; border: 1px solid var(--line); padding: 0 16px; }
.gr-codes summary { cursor: pointer; font-weight: 600; padding: 11px 0; }
.gr-codes ul { columns: 2 260px; column-gap: 28px; list-style: none; margin: 0 0 12px; padding: 0; font-size: 0.92rem; }
.gr-codes li { break-inside: avoid; padding: 2px 0; }
.gr-codes b { display: inline-block; min-width: 42px; }
.gr-foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 20px; font-size: 0.9rem; color: var(--muted); margin-top: 12px; }
@media (max-width: 640px) {
  .gr-course { grid-template-columns: 1fr; gap: 4px; }
  .gr-c { height: 24px; }
  .gr-months span:not(.show) { visibility: hidden; }
}

/* ============================================================
   Конструктор сторінок (assets/blocks.js)
   ============================================================ */
.bk-lead > p + p { margin-top: 10px; }
.bk-lead p { font-size: inherit; }
.bk-h3 { font-size: 1.05rem; margin: 18px 0 8px; }
.bk-list { margin: 0 0 8px; padding-left: 1.2em; }
.bk-list li { margin: 5px 0; }
.bk-list li::marker { color: var(--gold); }
.bk-btns { display: flex; flex-wrap: wrap; gap: 10px; margin: 4px 0 22px; }
.bk-btns--end { margin-top: 26px; }
.bk-toc { margin-bottom: 22px; }
.bk-step-text { color: var(--muted); font-size: 0.95rem; }
.bk-step-text ul { margin: 6px 0 0; padding-left: 1.1em; }
.bk-step-text p + p, .bk-step-text p + ul { margin-top: 6px; }
a.bk-tile-link { text-decoration: none; color: var(--text); }
a.bk-tile-link:hover { border-color: var(--navy); }
a.bk-tile-link:hover h3 { text-decoration: underline; }
.bk-wait { border-top-color: var(--line); }
.bk-wait em { font-size: 0.85rem; color: var(--muted); font-style: normal; }
.es-cardlink span { color: var(--muted); font-size: 0.93rem; }
.bk-notice b { display: block; margin-bottom: 4px; }
.bk-notice p + p { margin-top: 6px; }

/* Люди */
.bk-people { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr)); gap: 12px; margin-bottom: 8px; }
.bk-person { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 14px; align-items: start; border: 1px solid var(--line); background: var(--surface); padding: 16px; }
.bk-person__text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.bk-person__text strong { font-size: 1.04rem; line-height: 1.3; }
.bk-person__note { color: var(--muted); font-size: 0.92rem; }
.bk-person__contacts { display: flex; flex-direction: column; gap: 4px; margin-top: 6px; font-size: 0.95rem; }
.bk-ic { display: flex; align-items: center; gap: 8px; min-width: 0; overflow-wrap: anywhere; }
.bk-ic svg { width: 15px; height: 15px; flex: none; color: var(--muted); }
.bk-people--admin { grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); }
.bk-people--admin .bk-person:first-child { grid-column: 1 / -1; border-top: 3px solid var(--navy); }
.bk-people--admin .bk-person { grid-template-columns: 72px minmax(0, 1fr); }
.bk-people--admin .person__photo { width: 72px; height: 72px; }

/* Телефони (гарячі лінії, підрозділи) */
.bk-phones { list-style: none; margin: 0 0 8px; padding: 0; border: 1px solid var(--line); background: var(--surface); }
.bk-phones li { display: flex; justify-content: space-between; align-items: center; gap: 8px 18px; padding: 12px 16px; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.bk-phones li:last-child { border-bottom: 0; }
.bk-phones li > div { min-width: 0; flex: 1 1 260px; }
.bk-phones__num { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; font-weight: 700; font-size: 1.05rem; }
.bk-phones__num > svg { width: 17px; height: 17px; color: var(--navy); flex: none; }
html[data-theme="dark"] .bk-phones__num > svg { color: var(--link); }
.bk-phones .tel-link svg { display: none; }

/* Питання й відповіді */
.bk-faq { border-top: 1px solid var(--line); margin-bottom: 8px; }
.bk-faq details { border-bottom: 1px solid var(--line); }
.bk-faq summary { cursor: pointer; list-style: none; padding: 14px 36px 14px 0; position: relative; font: 600 1.05rem/1.35 var(--f-head); color: var(--text); }
.bk-faq summary::-webkit-details-marker { display: none; }
.bk-faq summary::after { content: "+"; position: absolute; right: 6px; top: 10px; font: 400 1.5rem/1 var(--f-body); color: var(--gold); }
.bk-faq details[open] summary::after { content: "−"; }
.bk-faq summary:hover { color: var(--link); }
.bk-faq .prose { padding: 0 0 16px; color: var(--text); }

/* Хронологія */
.bk-time { list-style: none; margin: 0 0 8px; padding: 0 0 0 18px; border-left: 2px solid var(--line); }
.bk-time li { position: relative; display: grid; grid-template-columns: 7.5em minmax(0, 1fr); gap: 16px; padding: 0 0 22px 10px; }
.bk-time li::before { content: ""; position: absolute; left: -25px; top: 4px; width: 12px; height: 12px; background: var(--surface); border: 3px solid var(--gold); border-radius: 50%; }
.bk-time__d { font: 700 1.15rem/1.25 var(--f-head); color: var(--navy); font-variant-numeric: tabular-nums; }
html[data-theme="dark"] .bk-time__d { color: var(--link); }
.bk-time h3 { font-size: 1.05rem; margin-bottom: 4px; }
@media (max-width: 600px) { .bk-time li { grid-template-columns: 1fr; gap: 4px; } }

/* Реквізити */
.bk-req { margin: 0 0 8px; border: 1px solid var(--line); background: var(--surface); }
.bk-req > div { display: grid; grid-template-columns: minmax(8em, 13em) minmax(0, 1fr); gap: 4px 16px; padding: 11px 16px; border-bottom: 1px solid var(--line); align-items: center; }
.bk-req > div:last-child { border-bottom: 0; }
.bk-req dt { color: var(--muted); font-size: 0.92rem; }
.bk-req dd { margin: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; min-width: 0; }
.bk-req dd > span { font-weight: 600; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.bk-copy { flex: none; display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--line); background: var(--bg); color: var(--text); font: 600 0.82rem/1 var(--f-body); padding: 7px 10px; cursor: pointer; }
.bk-copy svg { width: 14px; height: 14px; }
.bk-copy:hover { border-color: var(--navy); }
@media (max-width: 600px) { .bk-req > div { grid-template-columns: 1fr; } .bk-copy span { display: none; } }

/* Таблиці конструктора */
.bk-table td strong { font-weight: 600; }
.bk-table tr.is-now td { background: color-mix(in srgb, var(--gold) 14%, var(--surface)); }
.bk-now { display: inline-block; margin-left: 6px; padding: 1px 7px; background: var(--gold); color: #fff; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; vertical-align: 1px; }
.bk-total td { background: var(--bg); }
.bk-file { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; white-space: nowrap; }
.bk-file svg { width: 15px; height: 15px; }
@media (max-width: 700px) {
  .bk-table thead { display: none; }
  .bk-table tr { display: block; padding: 12px; border-bottom: 1px solid var(--line); }
  .bk-table tr:last-child { border-bottom: 0; }
  .bk-table td { display: grid; grid-template-columns: 8.5em minmax(0, 1fr); gap: 8px; padding: 3px 0; border: 0; }
  .bk-table td:first-child { display: block; padding-bottom: 6px; }
  .bk-table td[data-label]::before { content: attr(data-label); color: var(--muted); font-size: 0.86rem; }
  .bk-table td:empty { display: none; }
  .table-wrap:has(.bk-table) { overflow: visible; }
}

/* Поточний тиждень (Організація освітнього процесу) */
.bk-week { display: flex; gap: 14px; align-items: center; border: 1px solid var(--line); border-left: 4px solid var(--gold); background: var(--surface); padding: 12px 16px; margin: 0 0 16px; }
.bk-week b { font: 600 1.1rem/1.3 var(--f-head); }

/* МТБ: ключова ознака будівлі (альтернативне живлення) */
.xp-chips li.is-key { display: inline-flex; align-items: center; gap: 6px; border-color: var(--gold); background: color-mix(in srgb, var(--gold) 12%, var(--surface)); font-weight: 600; }
.xp-chips li.is-key svg { width: 14px; height: 14px; color: var(--gold); }

/* Контакти: телефони-посилання, пошта й соцмережі в один рядок */
.place__tels { display: flex; flex-wrap: wrap; gap: 4px 14px; }
.tel-link { display: inline-flex; align-items: center; gap: 7px; font-weight: 700; color: var(--text); text-decoration: none; padding: 2px 0; }
.tel-link svg { width: 16px; height: 16px; color: var(--navy); flex: none; }
.tel-link:hover span { text-decoration: underline; }
html[data-theme="dark"] .tel-link svg { color: var(--link); }
.contact-line { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.contact-chip { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--line); background: var(--surface); padding: 8px 14px; text-decoration: none; font-weight: 600; color: var(--text); min-height: 42px; }
.contact-chip svg { width: 18px; height: 18px; color: var(--navy); flex: none; }
html[data-theme="dark"] .contact-chip svg { color: var(--link); }
.contact-chip:hover { border-color: var(--navy); }
.place--wide .bk-phones { width: 100%; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .tel-link svg, :root:not([data-theme="light"]) .contact-chip svg,
  :root:not([data-theme="light"]) .bk-phones__num > svg, :root:not([data-theme="light"]) .bk-time__d { color: var(--link); }
}
html.hc .bk-now { color: #000; }

/* ==========================================================================
   НОВЕ ОФОРМЛЕННЯ (жовтень 2026): світлий фон, синя шапка, оранжеве меню,
   заокруглені картки з легкою тінню. Кольори змінюються у :root угорі файлу.
   ========================================================================== */
h1, h2, h3 { letter-spacing: -0.01em; }
h1, h2 { font-weight: 700; }

/* Шапка і меню */
.head { border-bottom: 0; }
.menu { background: var(--menu-bg); border-bottom: 0; }
.menu__list > li > a, .menu__list > li > button { color: var(--menu-ink); font-weight: 700; }
.menu__list > li:hover > a, .menu__list > li:hover > button, .menu__list > li > button[aria-expanded="true"],
.menu__list > li > a[aria-current], .menu__list > .is-active > button { border-bottom-color: var(--menu-ink); }
.has-sub > ul { border-top: 0; border-radius: var(--r); box-shadow: 0 16px 34px -14px rgba(20, 38, 74, .35); overflow: hidden; }
/* Телефон: кнопка «Меню сайту» — у синій шапці, під нею оранжева лінія; розгорнуте меню — на білому фоні */
@media (max-width: 960px) {
  .menubar { background: var(--navy); border-bottom: 4px solid var(--accent); padding-bottom: 14px; }
  .menubar .burger { border-radius: 999px; background: var(--on-navy); color: var(--navy); }
  .menubar .burger[aria-expanded="true"] { background: var(--accent); color: var(--menu-ink); box-shadow: none; }
  .menu { background: var(--surface); border-bottom: 1px solid var(--line); box-shadow: var(--shadow); }
  .menu__list > li > a, .menu__list > li > button { color: var(--text); border-bottom-color: var(--line); }
  .menu__list > li > button[aria-expanded="true"], .menu__list > li > a[aria-current], .menu__list > .is-active > button { color: var(--accent-ink); border-bottom-color: var(--line); }
  .has-sub > ul, .menu__list > li:nth-last-child(-n+2) > ul { border-radius: 0; border-left: 3px solid var(--accent); background: transparent; box-shadow: none; }
  .has-sub > ul a { color: var(--text); }
  .has-sub > ul a[aria-current] { color: var(--link); background: var(--accent-soft); }
  html.hc .menubar .burger[aria-expanded="true"] { background: var(--gold); color: #000; }
}
.foot { border-top: 4px solid var(--accent); }

/* Кнопки, фільтри, поля — округлі */
.btn, .tool, .search input, .filter button, .vk-nav a, .a11y button { border-radius: 999px; }
.btn { padding: 11px 22px; }
.filter button { padding: 9px 14px; }
.btn--primary, .xp-btn-light { background: var(--accent); border-color: var(--accent); color: #fff; }
.btn--primary:hover, .xp-btn-light:hover { background: var(--accent-ink); border-color: var(--accent-ink); color: #fff; }

/* Картки та блоки: м'які кути, тінь замість темної смужки зверху */
.box, .events-row .events li, .prog, .vk-prog, .xp-tile, .xp-contacts, .xp-hero, .vk-panel, .table-wrap, .notice,
.xp-steps li, .page__main, .page__side, .stats, .mtb-b, .pk-subj__card, .pk-fmt__card, .pk-ben__card, .bk-card { border-radius: var(--r); }
.box, .events-row .events li, .prog, .vk-prog, .xp-tile, .mtb-b, .pk-subj__card { border: 1px solid var(--line); box-shadow: var(--shadow); }
.page__main { box-shadow: var(--shadow); }
.page__side { border-top: 1px solid var(--line); box-shadow: var(--shadow); overflow: hidden; }
.xp-contacts, .stats, .table-wrap { overflow: hidden; }
.stats { background: var(--surface); }
.stats b { color: var(--accent-ink); }
.item__img { border: 0; border-radius: calc(var(--r) - 4px); }
.item--lead .item__img { border-radius: var(--r); }

/* Заголовки блоків: тонка лінія + коротка оранжева риска */
.block-title { border-bottom: 1px solid var(--line); }
.block-title h2, .page__title { position: relative; }
.block-title h2::after { content: ""; position: absolute; left: 0; bottom: -12px; width: 64px; height: 4px; border-radius: 4px; background: var(--accent); }
.page__title { border-bottom: 1px solid var(--line); }
.page__title::after { content: ""; position: absolute; left: 0; bottom: -2px; width: 72px; height: 4px; border-radius: 4px; background: var(--accent); }

/* Дрібні акценти */
.event__date { border: 0; border-radius: 12px; background: var(--accent-soft); color: var(--accent-ink); }
.event__date b { color: var(--accent-ink); }
.meta b, .banner__since { color: var(--accent-ink); }
.prog__code { border-radius: 999px; border-color: var(--accent); color: var(--accent-ink); }
.prog__terms li { border-radius: 999px; }
.xp-steps__n { border-radius: 50%; box-shadow: none; background: var(--accent); }
.xp-hero { border-bottom: 0; }
.xp-hero::after { background: var(--accent); opacity: .3; border-radius: 40px; }
.band { background: var(--band); border: 0; }

/* Режим доступності (висока контрастність) — без тіней і заокруглень */
html.hc .box, html.hc .events-row .events li, html.hc .prog, html.hc .vk-prog, html.hc .xp-tile, html.hc .page__main, html.hc .page__side { box-shadow: none; }
html.hc .menu, html.hc .menubar { border-bottom: 1px solid #fff; }
html.hc .btn--primary { color: #000; }

/* Презентація → PDF (через вікно друку браузера): кожен слайд — окрема сторінка 16:9 */
/* розмір сторінки 1920×1080 задає скрипт лише на час збереження PDF (див. Deck.pdf у page.js) */
@media print {
  html.dk-print, html.dk-print body { background: #fff !important; overflow: visible !important; height: auto !important; }
  html.dk-print body > *:not(.dk) { display: none !important; }
  html.dk-print body::before { display: none; }
  html.dk-print .dk { position: static; background: none; overflow: visible; }
  html.dk-print .dk-ctrl { display: none !important; }
  html.dk-print .dk-stage { position: static; transform: none !important; width: 1920px; height: auto; }
  html.dk-print .dk-slide { display: block !important; position: relative; inset: auto; width: 1920px; height: 1080px; margin: 0;
    break-after: page; page-break-after: always; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  html.dk-print .dk-slide:last-child { break-after: auto; page-break-after: auto; }
}

/* ===== Книга пам'яті (page.html?p=pamiat) — «сторінки книги»: фото ліворуч, відомості праворуч ===== */
.mem-lead { font-size: 1.12rem; margin-bottom: 24px; }
.mem { display: flex; flex-direction: column; gap: 22px; }
.mem__entry { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 26px; padding: 22px;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--shadow); }
.mem__photo { position: relative; aspect-ratio: 4 / 5; border-radius: 10px; overflow: hidden; background: var(--band);
  display: grid; place-items: center; align-self: start; }
.mem__photo span { font: 800 2rem var(--f-head); color: var(--muted); }
.mem__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); }
.mem__name { font-size: 1.5rem; margin: 0; border: 0; padding: 0; }
.mem__name::before, .mem__name::after { display: none; }
.mem__call { margin: 2px 0 0; color: var(--muted); }
.mem__dates { margin: 6px 0 16px; font: 700 1.05rem var(--f-head); letter-spacing: .01em; }
.mem__facts { margin: 0; display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 8px 16px; }
.mem__facts dt { color: var(--muted); }
.mem__facts dd { margin: 0; }
.mem__facts ul { margin: 0; padding-left: 18px; }
.mem__honor { margin: 16px 0 0; padding-top: 12px; border-top: 1px solid var(--line); font-style: italic; color: var(--muted); }
.mem-note { margin-top: 32px; padding: 16px 18px; border: 1px dashed var(--line); border-radius: var(--r); color: var(--muted); font-size: .95rem; }
@media (max-width: 640px) {
  .mem__entry { grid-template-columns: 1fr; gap: 16px; padding: 18px; }
  .mem__photo { width: 100%; max-width: 240px; }
  .mem__facts { grid-template-columns: 1fr; gap: 2px; }
  .mem__facts dd { margin-bottom: 8px; }
}
@media print { .mem__entry { break-inside: avoid; box-shadow: none; } }

/* ---------- Анкети та каталог вибіркових ---------- */
.vb-cat { margin: 0 0 16px; }
.sv-prog { height: 8px; border-radius: 8px; background: var(--band); overflow: hidden; margin: 6px 0 6px; position: sticky; top: 8px; z-index: 2; }
.sv-prog span { display: block; height: 100%; width: 0; background: var(--accent); transition: width .2s; }
.sv-count { color: var(--muted); font-size: .92rem; margin: 0 0 16px; }
.sv-item { padding: 12px 0 14px; border-bottom: 1px solid var(--line); scroll-margin-top: 80px; }
.sv-item:last-child { border-bottom: 0; }
.sv-item.is-bad { background: var(--urgent-bg); box-shadow: -8px 0 0 var(--urgent-bg), 8px 0 0 var(--urgent-bg); }
.sv-q { font-weight: 600; margin: 0 0 10px; }
.sv-q i { font-style: normal; color: var(--urgent); }
.sv-text { resize: vertical; min-height: 46px; }
.sv-opts .es-opt { margin-bottom: 6px; }
.sv-opts input[type="radio"] + .es-opt__box { border-radius: 50%; }
.ct-bar { display: grid; grid-template-columns: 2fr 1fr 2fr; gap: 12px; align-items: end; margin: 8px 0 4px; }
.ct-bar .es-f { margin-bottom: 0; }
.ct-count { color: var(--muted); margin: 10px 0 12px; }
.ct-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.ct-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); padding: 16px 18px; box-shadow: var(--shadow); display: flex; flex-direction: column; gap: 8px; }
.ct-card h3 { margin: 0; font-size: 1.05rem; line-height: 1.3; }
.ct-prog { margin: 0; color: var(--accent-ink); font-size: .9rem; font-weight: 600; }
.ct-meta { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 0; }
.ct-meta li { background: var(--accent-soft); border-radius: 999px; padding: 2px 10px; font-size: .85rem; }
.ct-com { margin: 0; color: var(--muted); font-size: .9rem; }
.ct-card details summary { cursor: pointer; color: var(--link); font-weight: 600; }
.ct-card details p { margin: 8px 0 0; font-size: .95rem; }
.ct-link { font-weight: 600; margin-top: auto; }
.ct-go { margin: 22px 0 0; }
@media (max-width: 700px) { .ct-bar { grid-template-columns: 1fr; } }

/* Вибіркові: програма + картки з вибором на одній сторінці */
.vb-progs { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 10px; }
.vb-p { position: relative; display: block; cursor: pointer; }
.vb-p input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.vb-p span { display: block; height: 100%; padding: 10px 14px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); }
.vb-p b { display: block; font-weight: 600; line-height: 1.3; }
.vb-p small { display: block; margin-top: 2px; color: var(--muted); font-size: .85rem; font-weight: 400; }
.vb-p:hover span { border-color: var(--link); }
.vb-p input:checked + span { border-color: var(--link); box-shadow: inset 0 0 0 1px var(--link); background: var(--accent-soft); }
.vb-p input:focus-visible + span { outline: 2px solid var(--link); outline-offset: 2px; }
.vb-block .ct-grid { margin-top: 4px; }
.vb-card.is-on { border-color: #1f7a3d; box-shadow: inset 0 0 0 1px #1f7a3d; }
.vb-card.is-off { opacity: .62; }
.vb-card .ct-link { margin-top: 0; }
.vb-pick { position: relative; display: block; margin-top: auto; cursor: pointer; }
.vb-pick input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.vb-pick span { display: block; padding: 8px 12px; text-align: center; font-weight: 700; color: var(--link); border: 1px solid currentColor; border-radius: var(--r); }
.vb-pick input:checked + span { background: #1f7a3d; border-color: #1f7a3d; color: #fff; }
.vb-pick input:disabled, .vb-card.is-off .vb-pick { cursor: not-allowed; }
.vb-pick input:focus-visible + span { outline: 2px solid var(--link); outline-offset: 2px; }

/* ---------- LeoCard: автозаповнення та «сканер» фото документів (assets/docscan.js) ---------- */
.es-in.is-auto { background: #eef8f1; border-color: #8fcca3; }
.es-in.is-check { background: #fff5e2; border-color: #e2a440; }
html[data-theme="dark"] .es-in.is-auto { background: #143222; border-color: #3f8a5c; }
html[data-theme="dark"] .es-in.is-check { background: #3a2a10; border-color: #b07a22; }
.es-sub { margin: 18px 0 8px; font-size: 1rem; }
.es-ocr p { margin: 6px 0 0; font-size: 0.95rem; }
.es-ocr .is-bad { color: var(--urgent); font-weight: 600; }
.es-ocr .is-warn { color: #8a5a00; }
.es-ocr .is-good { color: #1f7a3d; font-weight: 600; }
html[data-theme="dark"] .es-ocr .is-warn { color: #f3c06b; }
html[data-theme="dark"] .es-ocr .is-good { color: #7fd69c; }
.es-howto { border: 1px solid var(--line); background: var(--bg); padding: 10px 14px; margin: 0 0 12px; font-size: 0.95rem; }
.es-howto summary { cursor: pointer; font-weight: 600; color: var(--link); }
.es-howto ol { margin: 8px 0 6px 20px; padding: 0; }
.es-howto li { margin: 3px 0; }
.es-howto p { margin: 6px 0 0; }
.es-pay p { margin: 4px 0; }
.es-pay .btn { margin-top: 4px; }
.dsc-ov { position: fixed; inset: 0; z-index: 1000; background: rgba(8, 18, 36, .74); display: none; align-items: flex-start; justify-content: center; overflow: auto; padding: 12px; }
.dsc-ov.is-on { display: flex; }
.dsc-box { background: var(--surface); color: var(--text); width: 100%; max-width: 680px; padding: 16px; border-top: 4px solid var(--gold); }
.dsc-box h3 { margin: 0 0 4px; font-size: 1.15rem; }
.dsc-hint { margin: 0 0 10px; font-size: 0.92rem; color: var(--muted); }
.dsc-stage { display: block; margin: 0 auto; max-width: 100%; touch-action: none; background: #111; }
.dsc-stage--photo { cursor: grab; }
.dsc-res { margin-top: 10px; display: flex; gap: 10px; align-items: center; font-size: 0.9rem; color: var(--muted); }
.dsc-prev { max-width: 55%; max-height: 160px; border: 1px solid var(--line); background: #fff; }
.dsc-zoom { display: flex; gap: 10px; align-items: center; justify-content: center; margin-top: 10px; font-size: 0.92rem; }
.dsc-zoom input { width: 60%; accent-color: var(--navy); }
.dsc-msg { margin: 10px 0; font-size: 0.92rem; }
.dsc-msg div { margin: 3px 0; }
.dsc-msg .bad { color: var(--urgent); font-weight: 600; }
.dsc-msg .warn { color: #8a5a00; }
.dsc-msg .good { color: #1f7a3d; font-weight: 600; }
.dsc-btns { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }
.dsc-btns .btn:disabled { opacity: .5; cursor: not-allowed; }
/* LeoCard: виразне поле пошуку після вибору групи; кнопки вибору — по центру на мобільному */
.es-in--focus { border: 2px solid var(--gold); box-shadow: 0 0 0 4px rgba(238, 138, 42, .18); font-size: 1.1rem; min-height: 52px; }
.es-res button { min-height: 52px; }
#es-leoKind, #es-leoDt { display: flex; }
@media (max-width: 560px) {
  #es-leoKind, #es-leoDt { flex-direction: column; width: 100%; }
  #es-leoKind button, #es-leoDt button { width: 100%; text-align: center; padding: 13px 12px; }
  #es-leoKind button + button, #es-leoDt button + button { border-left: 0; border-top: 1px solid var(--navy); }
}
.es-in--focus:focus { outline: 2px solid var(--gold); border-color: var(--gold); }
