/* ЦМДДТ — стили динамических разделов (вакансии, документы, контент из редактора) */

/* ---- Текст, отрендеренный из блочного редактора ---- */
.content-body { font-size: var(--font-size-base); line-height: var(--line-height-relaxed); color: var(--color-text); }
.content-body > * + * { margin-top: var(--space-md); }
.content-body h2 { font-size: var(--font-size-2xl); margin-top: var(--space-xl); }
.content-body h3 { font-size: var(--font-size-xl); margin-top: var(--space-lg); }
.content-body h4 { font-size: var(--font-size-lg); margin-top: var(--space-md); }
.content-body ul, .content-body ol { padding-left: 1.4em; }
.content-body li { margin: 4px 0; }
.content-body a:not(.btn):not(.action-card):not(.appeals-channel):not(.doc-list__download):not(.doc-list__external) { color: var(--color-primary); text-decoration: underline; }
.content-body a.btn { text-decoration: none; }
.content-body a.btn--primary,
.content-body a.btn--primary:visited { color: #fff; }
.content-body a.btn--primary:hover,
.content-body a.btn--primary:focus-visible { color: #fff; }
.content-body a.btn--secondary,
.content-body a.btn--secondary:visited { color: var(--color-primary-dark); }
.content-body a.btn--ghost,
.content-body a.btn--ghost:visited { color: var(--color-primary); }
.content-body img { max-width: 100%; height: auto; }
.content-figure { margin: var(--space-lg) 0; }
.content-figure img { width: 100%; }
.content-figure figcaption { font-size: var(--font-size-sm); color: var(--color-text-muted); margin-top: var(--space-sm); }
.content-quote { margin: var(--space-lg) 0; padding: var(--space-md) var(--space-lg); border-left: 3px solid var(--color-primary); background: var(--color-bg-blue); }
.content-quote blockquote { margin: 0; font-style: italic; }
.content-quote figcaption { font-size: var(--font-size-sm); color: var(--color-text-muted); margin-top: var(--space-sm); }
.content-delimiter { border: 0; border-top: 1px solid var(--color-border); margin: var(--space-xl) 0; }
.content-callout { background: var(--color-primary-pale); border: 1px solid var(--color-border); padding: var(--space-md); }
.content-table-wrap { overflow-x: auto; margin: var(--space-lg) 0; }
.content-table { width: 100%; border-collapse: collapse; }
.content-table th, .content-table td { border: 1px solid var(--color-border); padding: var(--space-sm) var(--space-md); text-align: left; }
.content-table th { background: var(--color-bg-blue); font-weight: var(--font-weight-semibold); }
.content-checklist { list-style: none; padding-left: 0; }
.content-checklist__item { position: relative; padding-left: 28px; }
.content-checklist__item::before { content: '☐'; position: absolute; left: 0; }
.content-checklist__item.is-checked::before { content: '☑'; color: var(--color-primary); }
.content-code { background: #0d1b2a; color: #e3edf7; padding: var(--space-md); overflow-x: auto; font-family: ui-monospace, Menlo, monospace; font-size: var(--font-size-sm); }

/* ---- Вакансии: список ---- */
.vacancy-list { display: grid; gap: var(--space-lg); margin-top: var(--space-lg); }
.vacancy-card {
  border: 1px solid var(--color-border);
  background: var(--glass-bg-strong);
  padding: var(--space-lg) var(--space-xl);
  transition: box-shadow var(--transition-base), transform var(--transition-base);
}
.vacancy-card:hover { box-shadow: var(--shadow-md); }
.vacancy-card--featured { border-left: 4px solid var(--color-primary); }
.vacancy-card__head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-md); }
.vacancy-card__title { font-size: var(--font-size-xl); margin: 0; }
.vacancy-card__title a { color: var(--color-text); }
.vacancy-card__title a:hover { color: var(--color-primary); }
.vacancy-card__badge { flex-shrink: 0; font-size: var(--font-size-xs); font-weight: var(--font-weight-semibold); color: var(--color-primary); background: var(--color-primary-pale); padding: 4px 10px; }
.vacancy-card__salary { font-weight: var(--font-weight-bold); color: var(--color-primary-dark); font-size: var(--font-size-lg); margin: var(--space-sm) 0; }
.vacancy-card__summary { color: var(--color-text-muted); margin-bottom: var(--space-md); }
.vacancy-card__meta { list-style: none; padding: 0; margin: 0 0 var(--space-md); display: flex; flex-wrap: wrap; gap: var(--space-sm) var(--space-lg); font-size: var(--font-size-sm); }
.vacancy-card__meta-label { color: var(--color-text-light); }
.vacancy-card__link { font-weight: var(--font-weight-semibold); color: var(--color-primary); }

/* ---- Вакансия: детальная ---- */
.vacancy-detail__closed { display: inline-block; background: #fdecec; color: #b02525; padding: 4px 12px; font-weight: 600; margin-bottom: var(--space-md); }
.vacancy-detail__salary { font-size: var(--font-size-2xl); font-weight: var(--font-weight-bold); color: var(--color-primary-dark); margin-bottom: var(--space-lg); }
.vacancy-detail__facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: var(--space-md); margin-bottom: var(--space-xl); padding: var(--space-lg); background: var(--color-bg-blue); }
.vacancy-fact { display: flex; flex-direction: column; }
.vacancy-fact__label { font-size: var(--font-size-xs); color: var(--color-text-light); text-transform: uppercase; letter-spacing: .04em; }
.vacancy-fact__value { font-weight: var(--font-weight-semibold); }
.vacancy-detail__apply { margin-top: var(--space-2xl); padding: var(--space-xl); border: 1px solid var(--color-border); background: var(--glass-bg-strong); }
.vacancy-detail__apply h2 { margin-top: 0; }
.vacancy-detail__contacts { display: flex; flex-wrap: wrap; gap: var(--space-md); align-items: center; margin-top: var(--space-md); }
.vacancy-detail__phone { font-weight: var(--font-weight-bold); font-size: var(--font-size-lg); }
.vacancy-detail__back { margin-top: var(--space-xl); }

/* ---- Документы ---- */
.doc-tabs { display: flex; flex-wrap: wrap; gap: var(--space-sm); margin: var(--space-md) 0 var(--space-xl); }
.doc-tab { padding: 8px 16px; border: 1px solid var(--color-border); color: var(--color-text); background: var(--color-bg); font-weight: var(--font-weight-medium); }
.doc-tab:not(.is-active):hover { border-color: var(--color-primary); color: var(--color-primary); }
.doc-tab.is-active { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }
.doc-tab.is-active:hover,
.doc-tab.is-active:focus-visible { background: var(--color-primary-dark); color: #fff; border-color: var(--color-primary-dark); }
.doc-list { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--space-sm); }
.doc-list__item { display: flex; align-items: center; justify-content: space-between; gap: var(--space-md); padding: var(--space-md) var(--space-lg); border: 1px solid var(--color-border); background: var(--color-bg); }
.doc-list__main { display: flex; gap: var(--space-md); align-items: flex-start; min-width: 0; }
.doc-list__icon { font-size: 24px; flex-shrink: 0; }
.doc-list__title { font-weight: var(--font-weight-semibold); margin: 0; }
.doc-list__meta { display: flex; flex-wrap: wrap; gap: var(--space-md); font-size: var(--font-size-sm); color: var(--color-text-light); margin: 4px 0 0; }
.doc-list__desc { font-size: var(--font-size-sm); color: var(--color-text-muted); margin: 6px 0 0; }
.doc-list__download,
.doc-list__external { flex-shrink: 0; }
.doc-section { margin-top: var(--space-xl); }
.doc-section:first-of-type { margin-top: var(--space-md); }
.doc-section__title { font-size: var(--font-size-lg); font-weight: var(--font-weight-bold); margin: 0 0 var(--space-md); color: var(--color-text); }

/* ---- Новость: детальная ---- */
.news-article__date { color: var(--color-text-light); font-size: var(--font-size-sm); }
.news-article__cat { color: var(--color-primary); font-weight: var(--font-weight-semibold); font-size: var(--font-size-sm); }
.news-article__cover { margin: var(--space-lg) 0; }
.news-article__cover img { width: 100%; height: auto; }
.news-article__lead { font-size: var(--font-size-lg); color: var(--color-text-muted); font-weight: var(--font-weight-medium); margin-bottom: var(--space-lg); }

/* ---- Пагинация ---- */
.pager { display: flex; gap: var(--space-sm); margin-top: var(--space-xl); flex-wrap: wrap; }
.pager__item { padding: 8px 14px; border: 1px solid var(--color-border); color: var(--color-text); }
.pager__item:not(.pager__item--current):hover { border-color: var(--color-primary); color: var(--color-primary); }
.pager__item--current { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }
.pager__item--current:hover,
.pager__item--current:focus-visible { background: var(--color-primary-dark); color: #fff; border-color: var(--color-primary-dark); }

/* ---- Поиск ---- */
.search-page-form { display: flex; gap: var(--space-sm); margin: var(--space-lg) 0; max-width: 560px; }
.search-page-results { list-style: none; padding: 0; margin: var(--space-lg) 0 0; display: grid; gap: var(--space-md); }
.search-page-result { padding: var(--space-md) var(--space-lg); border: 1px solid var(--color-border); background: var(--color-bg); }
.search-page-result__title { font-weight: var(--font-weight-semibold); font-size: var(--font-size-lg); }
.search-page-result__type { font-size: var(--font-size-xs); color: var(--color-text-light); text-transform: uppercase; margin-left: var(--space-sm); }
.search-page-result__snippet { color: var(--color-text-muted); font-size: var(--font-size-sm); margin: 6px 0 0; }
.search-page-result mark, .search-results mark { background: #fff2a8; padding: 0 2px; }

@media (max-width: 600px) {
  .doc-list__item { flex-direction: column; align-items: flex-start; }
}
