/* ==========================================================================
   Perfect Streamer — фирменный стиль (брендбук ООО «Пёрфект Софт», bb/).
   Файл сгенерирован; правки фирменной части — внизу, секция BRAND STYLES.

   Шрифт:  Mulish — свободный аналог FS Elliot Pro (платный). Лицензия OFL,
           self-hosted в static/fonts/mulish/ (см. OFL.txt). Латиница+кириллица.
   Цвета:  Dark Blue #2a21db (основной), Bright Red #ff392b (акцент).
   Приём:  диагональный/горизонтальный градиент синий→красный + тонкие линии.

   Подключение: conf.py -> html_css_files = ['brand.css'] (грузится после
   alabaster.css, до custom.css). font_family/head_font_family/цвета ссылок
   и сайдбара заданы в html_theme_options.
   ========================================================================== */

/* -------- @font-face: Mulish (self-hosted, по подмножествам) -------------- */

/* cyrillic */
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/mulish/mulish-cyrillic-400-normal.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/mulish/mulish-cyrillic-600-normal.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/mulish/mulish-cyrillic-700-normal.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('fonts/mulish/mulish-cyrillic-800-normal.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('fonts/mulish/mulish-cyrillic-900-normal.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Mulish';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/mulish/mulish-cyrillic-400-italic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Mulish';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/mulish/mulish-cyrillic-700-italic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* latin-ext */
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/mulish/mulish-latin-ext-400-normal.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: 'Mulish';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/mulish/mulish-latin-ext-600-normal.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: 'Mulish';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/mulish/mulish-latin-ext-700-normal.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: 'Mulish';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('fonts/mulish/mulish-latin-ext-800-normal.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: 'Mulish';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('fonts/mulish/mulish-latin-ext-900-normal.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: 'Mulish';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/mulish/mulish-latin-ext-400-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;
}
@font-face {
  font-family: 'Mulish';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/mulish/mulish-latin-ext-700-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;
}

/* latin */
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/mulish/mulish-latin-400-normal.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+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/mulish/mulish-latin-600-normal.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+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/mulish/mulish-latin-700-normal.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+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('fonts/mulish/mulish-latin-800-normal.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+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('fonts/mulish/mulish-latin-900-normal.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+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Mulish';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/mulish/mulish-latin-400-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+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Mulish';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/mulish/mulish-latin-700-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+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ==========================================================================
   BRAND STYLES — фирменное оформление поверх темы alabaster
   ========================================================================== */

:root {
  --ps-blue: #2a21db;       /* PANTONE Dark Blue C  */
  --ps-red:  #ff392b;       /* PANTONE Bright Red C */
  --ps-blue-dark: #1d16a0;  /* затемнённый синий для hover/границ */
  --ps-gradient: linear-gradient(90deg, var(--ps-blue) 0%, var(--ps-red) 100%);
}

/* Фирменная градиентная полоса сверху страницы (как обложка брендбука). */
body {
  border-top: 4px solid var(--ps-blue);
  border-image: var(--ps-gradient) 1;
}

/* Заголовки: фирменный синий, Mulish, плотные начертания. */
div.body h1, div.body h2, div.body h3,
div.body h4, div.body h5, div.body h6 {
  color: var(--ps-blue);
  font-weight: 800;
  letter-spacing: -0.01em;
}
div.body h1 { font-weight: 900; }

/* h1 — фирменное градиентное подчёркивание (эхо логотипа). */
div.body h1 {
  border-bottom: 3px solid var(--ps-blue);
  border-image: var(--ps-gradient) 1;
  padding-bottom: 0.25em;
  margin-bottom: 0.7em;
}

/* Якорь-ссылка ¶ рядом с заголовком — фирменный красный при наведении. */
a.headerlink { color: transparent; }
h1:hover > a.headerlink, h2:hover > a.headerlink,
h3:hover > a.headerlink, h4:hover > a.headerlink,
h5:hover > a.headerlink, h6:hover > a.headerlink { color: var(--ps-red); }

/* Горизонтальные разделители — фирменная градиентная линия. */
div.body hr {
  border: 0;
  height: 3px;
  background: var(--ps-gradient);
}

/* Ссылки: подчёркивание фирменным красным при наведении (цвет — из темы). */
div.body a, div.body a:visited { text-decoration-color: rgba(42,33,219,0.35); }
div.body a:hover { text-decoration-color: var(--ps-red); }

/* Боковая панель: логотип/название и заголовки — фирменный синий. */
div.sphinxsidebar h1.logo a,
div.sphinxsidebar h3, div.sphinxsidebar h4 { color: var(--ps-blue); }
div.sphinxsidebar hr {
  border: 0; height: 2px; background: var(--ps-gradient); opacity: 0.85;
}

/* Переключатель языков под логотипом — компактно и в цвет бренда. */
.language-switcher a { color: var(--ps-blue); font-weight: 700; }
.language-switcher a:hover { color: var(--ps-red); }

/* Таблицы: шапка в фирменном синем (как акцентные плашки брендбука). */
table.docutils thead th,
table.docutils th.head {
  background: var(--ps-blue);
  color: #fff;
  border-color: var(--ps-blue);
}
table.docutils thead th a,
table.docutils thead th a:visited { color: #fff; }

/* Примечания (note/tip/seealso) — фирменный синий акцент слева.
   Предупреждения (warning/danger/caution) намеренно не трогаем: красный
   бренда не должен подменять семантику опасности. */
div.note, div.tip, div.hint, div.seealso, div.important {
  border-left: 3px solid var(--ps-blue);
}

/* Inline literal / код — лёгкая фирменная рамка. */
code.literal, span.pre {
  border: 1px solid rgba(42,33,219,0.12);
}

/* Выделение текста — фирменный синий. */
::selection { background: var(--ps-blue); color: #fff; }
::-moz-selection { background: var(--ps-blue); color: #fff; }

/* Кнопки навигации (relbar) — фирменный синий. */
div.related a { color: var(--ps-blue); }
div.related a:hover { color: var(--ps-red); }

/* Мобильная (узкая) раскладка: сайдбар в фирменном градиенте. */
@media screen and (max-width: 875px) {
  div.sphinxsidebar {
    background: var(--ps-gradient);
  }
  div.sphinxsidebar h1.logo a,
  div.sphinxsidebar h3, div.sphinxsidebar h4,
  div.sphinxsidebar a, div.sphinxsidebar p,
  .language-switcher a { color: #fff; }
  div.sphinxsidebar hr { background: rgba(255,255,255,0.6); }
}
