/* ============================================================================
   PERSONO TYPOGRAPHY SYSTEM V2 — единственный источник правды по типографике.

   Канонический шрифт публичного frontend: Merriweather (SIL OFL 1.1, self-hosted).
   Любое другое текстовое font-family на публичном сайте запрещено без GO владельца.

   V2 заменяет визуальный язык V1 (Onest), но сохраняет всю его механику:
   централизацию, нейтрализацию 158 927 legacy font-family и 147 459 font-size,
   отсутствие внешних font-CDN, мобильную шкалу, иконочный allowlist.

   Merriweather — насыщенный serif, он тяжелее Onest по цвету полосы. Поэтому
   шкала НЕ переносится 1:1: заголовки уменьшены, интерлиньяж увеличен,
   колонка чтения сужена. Компенсировать характер шрифта жирностью нельзя —
   тело остаётся 400.

   Порядок внутри файла:
     1. @font-face   2. токены   3. наследование   4. шкала desktop
     5. статья и нейтрализация legacy   6. персона и биография
     7. главная и карточки   8. хедер, кнопки, формы, футер   9. mobile
   ============================================================================ */

/* ---------- 1. Шрифт. Вариативный, вес 400–700, прямое и курсивное ----------
   Вариативная версия вдвое легче набора статических: Google на запрос
   отдельных весов отдаёт тот же самый вариативный файл.                      */
@font-face{font-family:'Merriweather';font-style:normal;font-weight:400 700;font-display:swap;
  src:url(/templates/new/fonts/merriweather-cyrillic.woff2) format('woff2');
  unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F,U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Merriweather';font-style:normal;font-weight:400 700;font-display:swap;
  src:url(/templates/new/fonts/merriweather-cyrillic-ext.woff2) format('woff2');
  unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
@font-face{font-family:'Merriweather';font-style:normal;font-weight:400 700;font-display:swap;
  src:url(/templates/new/fonts/merriweather-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Merriweather';font-style:normal;font-weight:400 700;font-display:swap;
  src:url(/templates/new/fonts/merriweather-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
/* Курсив — настоящее начертание, не наклон браузером. */
@font-face{font-family:'Merriweather';font-style:italic;font-weight:400 700;font-display:swap;
  src:url(/templates/new/fonts/merriweather-cyrillic-italic.woff2) format('woff2');
  unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F,U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Merriweather';font-style:italic;font-weight:400 700;font-display:swap;
  src:url(/templates/new/fonts/merriweather-cyrillic-ext-italic.woff2) format('woff2');
  unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
@font-face{font-family:'Merriweather';font-style:italic;font-weight:400 700;font-display:swap;
  src:url(/templates/new/fonts/merriweather-latin-italic.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Merriweather';font-style:italic;font-weight:400 700;font-display:swap;
  src:url(/templates/new/fonts/merriweather-latin-ext-italic.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* ---------- 2. Токены ---------- */
:root{
  /* Georgia в хвосте — аварийный browser fallback того же класса (serif),
     чтобы при незагрузившемся файле полоса не прыгала. Не дизайн-шрифт. */
  --font-family-persono:'Merriweather',Georgia,'Times New Roman',serif;

  --font-weight-regular:400;
  --font-weight-medium:400;   /* у Merriweather нет промежуточных весов — не синтезируем */
  --font-weight-semibold:700;
  --font-weight-bold:700;

  --text-xs:12px;
  --text-sm:13px;
  --text-base:18px;
  --text-lg:19px;
  --text-xl:21px;

  /* H1 плавно ведёт себя от планшета к десктопу: 38px на 1024 -> 47px на 1440.
     Верхний предел 47px — владелец считает 56px слишком «лендинговым». */
  --heading-h1:clamp(38px,3.3vw,47px);
  --heading-h2:clamp(27px,2.05vw,29px);
  --heading-h3:22px;
  --heading-h4:19px;

  --line-heading:1.14;
  --line-h2:1.27;
  --line-h3:1.33;
  --line-h4:1.35;
  --line-lead:1.50;
  --line-body:1.68;
  --line-meta:1.40;

  --track-heading:-0.015em;

  /* Колонка чтения: у Merriweather шире очко, 860px давало слишком длинную
     строку. 800px — примерно 65–72 знака при 18px. */
  --measure-article:800px;
}

/* ---------- 3. Глобальное наследование ---------- */
html,body{font-family:var(--font-family-persono)}

/* Нативные контролы формы семейство не наследуют — задаём явно.
   Это техническая необходимость, а не локальный шрифт. */
button,input,textarea,select,option,optgroup,label,
table,th,td,caption,legend,fieldset,
h1,h2,h3,h4,h5,h6,p,span,div,li,ul,ol,dl,dt,dd,a,blockquote,cite,q,
figcaption,small,strong,b,em,i,u,s,mark,sub,sup,pre,code,kbd,samp,
header,footer,nav,main,section,article,aside,summary,details{
  font-family:inherit
}

/* Иконочные шрифты — не текст, единственное исключение из правила. */
.fa,.fa::before,.fa::after,[class^="fa-"],[class*=" fa-"],
[class^="fa-"]::before,[class*=" fa-"]::before,
[class^="fa-"]::after,[class*=" fa-"]::after{font-family:'FontAwesome' !important}
.slick-prev::before,.slick-next::before,.slick-dots li button::before{font-family:'slick' !important}

/* ---------- 4. Каноническая шкала, desktop ---------- */
body{font-size:var(--text-base);line-height:var(--line-body);font-weight:var(--font-weight-regular)}

h1,.headline,.entry-title{
  font-size:var(--heading-h1);font-weight:700;
  line-height:var(--line-heading);letter-spacing:var(--track-heading)
}
h2{font-size:var(--heading-h2);font-weight:700;line-height:var(--line-h2)}
h3{font-size:var(--heading-h3);font-weight:700;line-height:var(--line-h3)}
h4{font-size:var(--heading-h4);font-weight:700;line-height:var(--line-h4)}

/* Подзаголовок геро — спокойный, не жирнее тела без причины. */
.mysubtitle,.lead{font-size:19px;font-weight:400;line-height:var(--line-lead)}
blockquote{font-size:var(--text-xl);font-weight:400;font-style:italic;line-height:1.55}
figcaption,.caption{font-size:var(--text-sm);font-weight:400;line-height:1.45}
.subinfo,.razdel,.pAuthor,.entry-date,.posted-on,.meta-info{
  font-size:var(--text-sm);font-weight:400;line-height:var(--line-meta)
}
.breadcrumbs,.breadcrumb,.pBread,.pper-crumbs{font-size:var(--text-xs);font-weight:400;line-height:var(--line-meta)}
button,.btn,input[type="submit"],input[type="button"]{font-size:14px;font-weight:700;font-style:normal}

/* ---------- 5. Статья: нейтрализация legacy-оформления ----------

   Механика V1 сохранена без изменений. Legacy-контент CKEditor несёт
   презентацию на вложенных <span>; семантика (em, strong, h2, h3, списки,
   ссылки) лежит отдельными тегами и здесь НЕ трогается.

   !important применяется точечно и только здесь: инлайновый style="" иначе
   не перебивается ничем.                                                      */
.pageNText,.pageNText *,
.styleText,.styleText *{font-family:var(--font-family-persono) !important}
.pageNText font,.styleText font{font-family:inherit !important;font-size:inherit !important}
.pageNText span[style],.pageNText font[size],
.styleText span[style],.styleText font[size]{
  font-size:inherit !important;line-height:inherit !important;letter-spacing:inherit !important}

/* Страховка на остальной публичный фронт: инлайновый font-family на любом узле —
   это legacy-оформление из редактора. Иконки исключены. */
[style*="font-family" i]:not(.fa):not([class*="fa-"]){font-family:var(--font-family-persono) !important}

/* Ритм колонки: у serif абзацы нужно разводить чуть сильнее, а заголовки
   отбивать заметно, иначе полоса читается сплошной. */
.styleText{font-size:var(--text-base);line-height:var(--line-body);max-width:var(--measure-article)}
.styleText p{font-size:var(--text-base);line-height:var(--line-body);margin:0 0 1.1em}
/* Часть контента выключена по формату (text-align:justify из редактора).
   У serif в узкой колонке это даёт «реки» из пробелов, поэтому включаем
   переносы: страница объявлена lang="ru", браузер расставит их корректно.
   Саму выключку не меняем — это редакционное решение, а не типографика. */
.styleText p[style*="justify"],.pageNText p[style*="justify"]{hyphens:auto;-webkit-hyphens:auto}
.styleText li{font-size:var(--text-base);line-height:var(--line-body)}
.styleText ul,.styleText ol{margin:0 0 1.1em}
.styleText h2{font-size:var(--heading-h2);line-height:var(--line-h2);margin:2em 0 .7em}
.styleText h3{font-size:var(--heading-h3);line-height:var(--line-h3);margin:1.7em 0 .55em}
.styleText h4{font-size:var(--heading-h4);line-height:var(--line-h4);margin:1.5em 0 .45em}
.styleText blockquote{font-size:var(--text-xl);line-height:1.55;font-style:italic}
.styleText figcaption{font-size:var(--text-sm);line-height:1.45}
.styleText img,.styleText picture,.styleText video,.styleText iframe,.styleText table{max-width:100%}

/* ---------- 6. Персона и биография — редакционное досье, не карточка базы ---- */
.pper-h1{font-size:42px;font-weight:700;line-height:1.12;letter-spacing:var(--track-heading);text-transform:none}
.pper-prof{font-size:17px;font-weight:400;line-height:1.45}
.pper-pubs-num{font-size:32px;font-weight:700;line-height:1.1}
.pper-pubs-cap{font-size:12px;font-weight:400;line-height:1.35}
.pper-facts dt{font-size:13px;font-weight:400;line-height:1.45}
.pper-facts dd{font-size:15px;font-weight:400;line-height:1.45}
.pper-sbio{font-size:17px;font-weight:400;line-height:1.6}
.pper-about{font-size:17px;line-height:1.65}
.pper-about h2{font-size:27px;font-weight:700;line-height:1.27}
.pper-about p{font-size:17px;line-height:1.65;margin:0 0 1.1em}
.pper-biolink,.pper-links a{font-size:14px;font-weight:700}
.pper-credit{font-size:12px;font-weight:400}

/* Биография: длинный текст должен читаться как редакционный, а не как справка. */
.bio-name,.bioName,.pBio-h1{font-size:44px;font-weight:700;line-height:1.12}

/* ---------- 7. Главная и карточки — регулируем размером, а не начертанием --- */
.zagolovokBlock header .title,.blockCatalog1 .title,.sectionTitle{font-size:26px;font-weight:700;line-height:1.3}
.blockCatalog1 .item .name,.littleBlock .name,.cardTitle{font-size:19px;font-weight:700;line-height:1.3}
.blockCatalog1 .item .subinfo,.littleBlock .subinfo{font-size:var(--text-xs);font-weight:400}

/* ---------- 8. Хедер, навигация, формы, футер ---------- */
.pStick a,.pStick button,nav a{font-size:13px;font-weight:700;line-height:1;letter-spacing:0}
.pDrawer a{font-size:15px;font-weight:700;line-height:1.4}
input,textarea,select{font-size:16px;font-weight:400}   /* >=16px: иначе iOS зумит поле */
::placeholder{font-family:inherit;font-size:inherit;font-weight:400}
.footerpolitic,footer p,footer li{font-size:14px;font-weight:400;line-height:1.55}
footer a{font-size:14px}
footer .title,footer h3,footer h4{font-size:17px;font-weight:700;line-height:1.3}

/* ---------- 9. Mobile ---------- */
@media (max-width:767px){
  :root{
    --text-xs:12px;
    --text-sm:12px;
    --text-base:17px;
    --text-lg:18px;
    --text-xl:18px;
    --heading-h1:33px;
    --heading-h2:26px;
    --heading-h3:20px;
    --heading-h4:18px;
    --line-heading:1.16;
    --line-body:1.65;
    --measure-article:100%;
  }
  .mysubtitle,.lead{font-size:18px;line-height:1.5}
  blockquote,.styleText blockquote{font-size:18px}
  .pper-h1{font-size:32px;line-height:1.15}
  .pper-pubs-num{font-size:28px}
  .pper-sbio,.pper-about,.pper-about p{font-size:16px;line-height:1.62}
  .pper-about h2{font-size:24px}
  .bio-name,.bioName,.pBio-h1{font-size:32px}
  .blockCatalog1 .item .name,.littleBlock .name,.cardTitle{font-size:18px}
  .zagolovokBlock header .title,.blockCatalog1 .title,.sectionTitle{font-size:22px}
  .pStick a,.pStick button,nav a{font-size:13px;font-weight:700}
  .styleText h2{margin:1.7em 0 .6em}
  .styleText h3{margin:1.5em 0 .5em}
  /* Длинные русские заголовки и фамилии не должны раздвигать вёрстку. */
  h1,.headline,.entry-title,.pper-h1,h2,h3{overflow-wrap:break-word;word-break:normal;hyphens:auto}
}
