/* ===== Типографика: единственное место, где задаются размеры шрифта =====

   Правило проекта: в остальных CSS-файлах font-size не объявляется вообще.
   Все размеры живут здесь, по ролям:

     --fs-page     24px — заголовок страницы
     --fs-heading  18px — заголовок рубрики (секция, карточка, шторка, вопрос)
     --fs-text     14px — обычный текст, он же размер по умолчанию
     --fs-muted    12px — серые описания, подписи, метки, счётчики

   Всё, что не перечислено ниже, наследует 14px от body.
   Исключение — глиф-галочка в финале опроса (.khl-done-icon), это не текст. */

:root{
  --fs-page:28px;
  --fs-heading:20px;
  --fs-text:16px;
  --fs-muted:14px
}

body{font-size:var(--fs-text)}

/* ---------- Поля форм ---------- */
/* Плейсхолдер, текст в поле и в селекторе — одного размера. Задаём явно:
   иначе браузер подставляет свой размер (около 13px) и подсказка выглядит
   мельче выпадающего списка. */

input,
select,
textarea,
button{font-family:inherit;font-size:var(--fs-text)}

input::placeholder,
textarea::placeholder{font-size:var(--fs-text)}

/* ---------- Заголовок страницы: 24px ---------- */

.brand h1,
.catalog-title,
.survey-title,
.khl-title,
.survey-finish h2,
.org-hero-name,
.objects-hero-name,
.objects-title,
.objects-home.is-map .objects-title,
.admission-kpi strong,
.objects-total-card strong,
.objects-home.is-map .objects-total-card strong,
.result-kpi-card strong{font-size:var(--fs-page)}

/* ---------- Заголовок рубрики: 18px ---------- */

h2,
.section h2,
.dialog-content h2,
.selection-heading h2,
.question-card h2,
.small-heading,
.notif-title,
.khl-question,
.enrollment-home-alert strong,
.khl-home-entry strong,
.org-card-name,
.objects-card-name,
.object-card-v2 h3,
.objects-cluster-item-name,
.adm-offer-name,
.filter-copy strong,
.service-link strong,
.catalog-sections-title,
.objects-group-title,
.result-chart-title,
.map-card>strong,
.topbar strong,
.uin-verdict strong{font-size:var(--fs-heading)}

/* ---------- Серые описания и подписи: 12px ---------- */

.brand p,
.resource,
.channel small,
.service small,
.service-text small,
.demo-footer,
.filter-copy small,
.filter-count,
.selection-heading span,
.service-link small,
.org-chip,
.org-block-title,
.org-contact-label,
.org-card-loc,
.objects-label,
.objects-chip,
.map-card-top span,
.map-card-top b,
.map-card>small,
.map-card-list-item small,
.map-card-open,
.object-filters label,
.subject-row small,
.objects-results-head span,
.object-tag,
.object-on-map,
.objects-total-card span,
.objects-home.is-map .objects-total-card span,
.notif-label,
.notif-time,
.adm-offer-sport,
.adm-status,
.adm-note,
.adm-offer-meta,
.adm-offer-dates,
.adm-offer-time,
.admission-kpi span,
.admission-summary-note,
.result-kpi-card span,
.result-status,
.survey-kicker,
.survey-progress-head,
.question-number,
.survey-error,
.contact-example,
.survey-entry-copy small,
.survey-nudge b,
.survey-contact-label,
.brand-bell b,
.section-caption,
.note,
.org-hero-cat,
.org-hero-full,
.objects-card-type,
.objects-card-addr,
.objects-hero-cat,
.objects-cluster-item-type,
.khl-eyebrow,
.khl-footnote,
.khl-progress-label,
.khl-home-entry small,
.uin-verdict p{font-size:var(--fs-muted)}

/* ---------- Каталог организаций: блок выбора ---------- */

.orgs-intro-count{font-size:var(--fs-page)}

.orgs-choice-title,
.orgs-choice-text strong{font-size:var(--fs-heading)}

.orgs-intro-label,
.orgs-intro-sub,
.orgs-choice-text small{font-size:var(--fs-muted)}

/* Стрелка-указатель — глиф, а не текст. */
.orgs-choice-chevron{font-size:20px}

/* ---------- Исключение: декоративный глиф ---------- */

.khl-done-icon{font-size:32px}
