/*
Theme Name: HabRich Showcase
Theme URI: https://habrich.ru
Author: HabRich.Ru
Description: Собственная тема HabRich.Ru — витрина сервисов, разработана с нуля.
Version: 1.0
Text Domain: brosgate
*/

@font-face { font-family: 'Golos Text'; font-style: normal; font-weight: 400; font-display: swap; src: url('fonts/golos-400-cyrillic.woff2') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Golos Text'; font-style: normal; font-weight: 400; font-display: swap; src: url('fonts/golos-400-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+20AC, U+2122; }
@font-face { font-family: 'Golos Text'; font-style: normal; font-weight: 500; font-display: swap; src: url('fonts/golos-500-cyrillic.woff2') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Golos Text'; font-style: normal; font-weight: 500; font-display: swap; src: url('fonts/golos-500-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+20AC, U+2122; }
@font-face { font-family: 'Golos Text'; font-style: normal; font-weight: 700; font-display: swap; src: url('fonts/golos-700-cyrillic.woff2') format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Golos Text'; font-style: normal; font-weight: 700; font-display: swap; src: url('fonts/golos-700-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+20AC, U+2122; }

* { box-sizing: border-box; }
body { margin: 0; font-family: 'Golos Text', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; display: flex; flex-direction: column; min-height: 100vh; }
.site-header, .site-footer { flex-shrink: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button, input[type="submit"], input[type="button"], input[type="checkbox"], input[type="radio"] { cursor: pointer; }
.icon { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 1.6; flex-shrink: 0; }

:root {
  --page:#F4F4F1; --surf:#FFFFFF; --ink:#14171C; --soft:#5B6069; --line:#E8E8E2;
  --accent:#2547D6; --on-accent:#FFFFFF; --accent-bg:#E6ECFB;
  --lime:#4F8A2E; --lime-bg:#E4F0D8;
  --coral:#D2492E; --coral-bg:#FBE3DC;
}
.c2 {
  background: var(--page); color: var(--ink);
  font-family: 'Golos Text', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  padding: 40px 24px;
  flex: 1 0 auto;
}
.c2 .brand { font-size: 19px; font-weight: 700; letter-spacing: -0.02em; }
.c2 .brand .dot { color: var(--accent); }
.c2 .sheet { max-width: 1160px; margin: 0 auto; background: var(--surf); border: 1px solid var(--line); border-radius: 16px; overflow: hidden; }

.c2 .band { background: var(--accent-bg); padding: 28px 40px 32px; }
.c2 .top-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.c2 .nav { display: flex; gap: 18px; font-size: 13px; color: var(--ink); opacity: 0.75; align-items: center; }
.c2 .btn-login { padding: 8px 16px; border-radius: 8px; font-weight: 500; font-size: 13px; border: 1px solid rgba(37,71,214,0.35); background: var(--surf); color: var(--accent); }
.c2 .band-inner { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.c2 .band-copy { flex: 1; min-width: 0; }
.c2 .band-copy h1 { font-size: 30px; font-weight: 700; letter-spacing: -0.01em; line-height: 1.25; margin: 0 0 10px; max-width: 20ch; color: #1B2C6E; }
.c2 .app-content h1, .c2 .page-title { font-size: 26px; font-weight: 700; letter-spacing: -0.01em; line-height: 1.3; margin: 0 0 20px; color: #1B2C6E; }
.c2 .lead { font-size: 15px; color: #33448E; margin: 0 0 18px; max-width: 44ch; }
.c2 .search { display: flex; align-items: center; gap: 10px; background: var(--surf); border: 1px solid var(--line); border-radius: 10px; padding: 10px 14px; max-width: 380px; }
.c2 .search input { border: none; outline: none; background: none; font-size: 13.5px; width: 100%; color: var(--ink); }
.c2 .search input::placeholder { color: var(--soft); }
/* --- «Сервис недели» внутри голубой шапки. Белая карточка на голубом фоне
   читается как витрина, а не как ещё одна строка каталога. */
.c2 .band-pick {
  display: block;
  flex-shrink: 0;
  width: 268px;
  background: var(--surf);
  border: 1px solid rgba(37, 71, 214, 0.16);
  border-radius: 12px;
  padding: 14px 16px;
  text-decoration: none;
  color: inherit;
  transition: border-color .15s ease, transform .15s ease;
}
.c2 .band-pick:hover { border-color: var(--accent); transform: translateY(-1px); }
.c2 .band-pick__label { display: block; font-size: 10.5px; letter-spacing: .07em; text-transform: uppercase; color: var(--accent); font-weight: 500; margin-bottom: 9px; }
.c2 .band-pick__row { display: flex; align-items: center; gap: 9px; margin-bottom: 7px; }
.c2 .band-pick__logo { width: 32px; height: 32px; border-radius: 9px; background: var(--accent-bg); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.c2 .band-pick__logo img { width: 19px; height: 19px; object-fit: contain; }
.c2 .band-pick__name { font-size: 14px; font-weight: 500; color: var(--ink); }
.c2 .band-pick__desc { display: block; font-size: 12px; line-height: 1.45; color: var(--soft); margin-bottom: 9px; }
.c2 .band-pick__price { display: inline-block; font-size: 12px; font-weight: 500; color: var(--accent); }

/* Справочные цифры — тонкой строкой под текстом, а не колонкой справа. */
.c2 .band-facts { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 16px; font-size: 12px; color: #33448E; }
.c2 .band-facts b { font-weight: 700; color: #1B2C6E; font-variant-numeric: tabular-nums; }

@media (max-width: 700px) {
  .c2 .band-pick { width: 100%; }
}
.c2 .band-stat { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.c2 .band-stat:not(:last-child) { padding-bottom: 8px; border-bottom: 0.5px solid var(--line); }
.c2 .band-stat .num { font-size: 17px; font-weight: 700; color: #1B2C6E; font-variant-numeric: tabular-nums; }
.c2 .band-stat .lbl { font-size: 11.5px; color: #33448E; }
@media (max-width: 560px) { .c2 .band-inner { flex-direction: column; } .c2 .band-stats { width: 100%; flex-direction: row; justify-content: space-between; } .c2 .band-stat { flex-direction: column; align-items: flex-start; gap: 2px; border-bottom: none !important; padding-bottom: 0 !important; } }

.c2 .section { padding: 30px 40px; border-top: 0.5px solid var(--line); }
.c2 .section-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.c2 .section-head h2 { font-size: 15px; font-weight: 700; margin: 0; }
.c2 .section-head .hint { font-size: 12px; color: var(--soft); }

.c2 .featured { display: flex; gap: 16px; align-items: center; border: 1px solid var(--line); border-radius: 12px; padding: 16px; }
.c2 .featured .logo { width: 52px; height: 52px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 17px; font-weight: 700; flex-shrink: 0; background: var(--accent); color: var(--on-accent); }
.c2 .featured-body { flex: 1; min-width: 0; }
.c2 .featured h3 { font-size: 16px; font-weight: 500; margin: 0 0 3px; display: inline; }
.c2 .featured p { font-size: 12.5px; color: var(--soft); margin: 6px 0; line-height: 1.5; }
.c2 .tag-pick { font-size: 10.5px; padding: 2px 8px; border-radius: 999px; background: var(--lime-bg); color: var(--lime); font-weight: 500; margin-left: 8px; }
.c2 .meta-row { display: flex; align-items: center; gap: 12px; font-size: 12px; color: var(--soft); flex-wrap: wrap; }
.c2 .meta-row .price { color: var(--ink); font-weight: 500; }

.c2 .cats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
/* Рубрики набраны в один масштаб с карточками сервисов: раньше они выглядели
   мелкой служебной плашкой, хотя это главный вход в каталог. */
.c2 .cat { display: block; border-radius: 12px; padding: 18px 14px; border: 1px solid var(--line); text-align: center; text-decoration: none; color: inherit; transition: border-color 0.15s ease, transform 0.15s ease; }
.c2 .cat:hover { border-color: var(--accent); transform: translateY(-1px); }
.c2 .cat .icn { width: 40px; height: 40px; border-radius: 11px; display: flex; align-items: center; justify-content: center; margin: 0 auto 10px; }
.c2 .cat .icn .icon { width: 20px !important; height: 20px !important; }
.c2 .cat .name { font-size: 14px; font-weight: 500; line-height: 1.3; }
.c2 .cat .count { font-size: 12px; color: var(--soft); margin-top: 3px; }

.c2 .cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.c2 .card { border: 1px solid var(--line); border-radius: 12px; padding: 14px; }
.c2 .card-top { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.c2 .logo-sm { width: 34px; height: 34px; border-radius: 9px; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; flex-shrink: 0; }
.c2 .card h3 { font-size: 13.5px; font-weight: 500; margin: 0; }
.c2 .card .rating { font-size: 11px; color: var(--soft); }
.c2 .card p { font-size: 12px; color: var(--soft); line-height: 1.5; margin: 0 0 10px; }
.c2 .card-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.c2 .price { font-size: 11.5px; color: var(--ink); font-weight: 500; }
.c2 .badge { font-size: 10px; padding: 3px 8px; border-radius: 999px; background: var(--coral-bg); color: var(--coral); font-weight: 500; white-space: nowrap; }

.site-footer { background: #14171C; }
.site-footer .foot-main { max-width: 1160px; margin: 0 auto; padding: 32px 40px; display: grid; grid-template-columns: 1.2fr 1fr 1fr 1fr; gap: 24px; }
.site-footer .foot-brand .brand { display: flex; align-items: center; gap: 9px; margin-bottom: 8px; color: #F3F4F6; font-size: 19px; font-weight: 700; letter-spacing: -0.02em; }
.site-footer .foot-brand .brand .brand-mark { width: 27px; height: 27px; color: #8FA6FF; flex-shrink: 0; }
.site-footer .foot-brand .brand .dot { color: #8FA6FF; }
.site-footer .foot-brand p { font-size: 12.5px; color: #9BA0AA; line-height: 1.55; margin: 0; max-width: 32ch; }
.site-footer .foot-col h4 { font-size: 11.5px; letter-spacing: 0.06em; text-transform: uppercase; color: #767B85; font-weight: 500; margin: 0 0 12px; }
.site-footer .foot-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
.site-footer .foot-col a { font-size: 13px; color: #D3D5DA; }
.site-footer .foot-col a:hover { color: #8FA6FF; }
.site-footer .foot-bottom { max-width: 1160px; margin: 0 auto; padding: 16px 40px; border-top: 0.5px solid rgba(255,255,255,0.09); display: flex; justify-content: space-between; align-items: center; font-size: 12px; color: #767B85; flex-wrap: wrap; gap: 8px; }
.site-footer .made-in { display: flex; align-items: center; gap: 7px; }
.site-footer .flag { width: 16px; height: 11px; border-radius: 2px; overflow: hidden; flex-shrink: 0; box-shadow: 0 0 0 0.5px rgba(255,255,255,0.15); }
.site-footer .flag span { display: block; height: 33.33%; }
@media (max-width: 780px) {
  .site-footer .foot-main { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .site-footer .foot-main { grid-template-columns: 1fr; }
}
.c2 .made-in { display: flex; align-items: center; gap: 7px; color: #9BA0AA; }
.c2 .flag { width: 16px; height: 11px; border-radius: 2px; overflow: hidden; flex-shrink: 0; box-shadow: 0 0 0 0.5px rgba(255,255,255,0.15); }
.c2 .flag span { display: block; height: 33.33%; }

@media (max-width: 860px) {
  .c2 .cards { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .c2 .foot-main { grid-template-columns: 1fr; }
  .c2 .band, .c2 .section, .c2 .foot-main, .c2 .foot-bottom { padding-left: 22px; padding-right: 22px; }
}
@media (max-width: 460px) {
  .c2 .cats { grid-template-columns: repeat(2, 1fr); }
  .c2 .cards { grid-template-columns: 1fr; }
}

/* shared site header (all pages) */
.site-header { background: #FFFFFF; border-bottom: 0.5px solid #E8E8E2; }
.site-header-inner { max-width: 1160px; margin: 0 auto; padding: 16px 24px; display: flex; align-items: center; gap: 28px; }
.site-header .brand { display: flex; align-items: center; gap: 10px; }
.site-header .brand-mark { width: 30px; height: 30px; color: #2547D6; flex-shrink: 0; }
.site-header .brand-word { font-size: 20px; font-weight: 700; letter-spacing: -0.02em; color: #14171C; }
.site-header .brand .dot { color: #2547D6; }
.site-header .nav { display: flex; align-items: center; gap: 20px; font-size: 13.5px; }
.site-header .nav a { color: #5B6069; }
.site-header .nav a:hover { color: #14171C; }

.site-header .nav-cat { position: relative; }
.site-header .nav-cat-trigger { display: flex; align-items: center; gap: 7px; background: #2547D6; color: #FFFFFF !important; font-weight: 500; font-size: 13.5px; padding: 9px 14px; border-radius: 8px; }
.site-header .nav-cat-trigger:hover { background: #1D39B0; }
.site-header .nav-cat-chevron { width: 10px; height: 7px; transition: transform 0.15s ease; }
.site-header .nav-cat:hover .nav-cat-chevron { transform: rotate(180deg); }
.site-header .nav-cat-panel { display: none; position: absolute; top: 100%; left: 0; padding-top: 8px; z-index: 30; }
.site-header .nav-cat:hover .nav-cat-panel, .site-header .nav-cat-panel:hover { display: block; }
.site-header .nav-cat-panel-inner { min-width: 240px; background: #FFFFFF; border: 1px solid #E8E8E2; border-radius: 12px; padding: 8px; box-shadow: 0 12px 28px rgba(20,23,28,0.12); }
.site-header .nav-cat-item { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 12px; border-radius: 8px; font-size: 13.5px; color: #14171C !important; }
.site-header .nav-cat-item:hover { background: #E6ECFB; color: #2547D6 !important; }
.site-header .nav-cat-count { font-size: 11px; color: #9098A2; background: #F4F4F1; border-radius: 999px; padding: 2px 8px; }
@media (prefers-reduced-motion: reduce) { .site-header .nav-cat-chevron { transition: none; } }
.site-header .header-spacer { flex: 1; }
.site-header .header-pill { font-size: 12px; color: #5B6069; background: #F4F4F1; border: 1px solid #E8E8E2; border-radius: 999px; padding: 6px 12px; white-space: nowrap; }
.site-header .header-pill b { color: #14171C; font-weight: 500; }
.site-header .header-pill:hover { color: #14171C; }
.site-header .header-login { padding: 9px 18px; border-radius: 8px; font-weight: 500; font-size: 13.5px; border: none; background: #2547D6; color: #FFFFFF; }
.site-header .header-login:hover { background: #1D39B0; }

.site-header .header-account { position: relative; }
.site-header .header-account-panel { position: absolute; top: 100%; right: 0; padding-top: 8px; z-index: 50; }
.site-header .header-account-panel-inner { width: 340px; max-width: calc(100vw - 32px); background: #FFFFFF; border: 1px solid #E8E8E2; border-radius: 14px; padding: 20px; box-shadow: 0 16px 36px rgba(20,23,28,0.14); }
.site-header .header-account-panel .hub-auth { max-width: none; }
.site-header .header-account-panel--menu .header-account-panel-inner { width: 220px; padding: 8px; }
.site-header .header-account--hover:hover .header-account-panel[hidden] { display: block; }
.site-header .header-account-menu-item { display: block; padding: 10px 12px; border-radius: 8px; font-size: 13.5px; color: #14171C; }
.site-header .header-account-menu-item:hover { background: #F4F4F1; }
.site-header .header-login .nav-cat-chevron { width: 9px; height: 6px; margin-left: 2px; }
@media (max-width: 640px) {
  .site-header .nav { display: none; }
  .site-header .header-pill { display: none; }
}

/* shared slim footer (inner pages) */

/* generic page template — app shell with sidebar (cabinet, service pages, catalogue) */
.c2 .app-grid { display: flex; align-items: stretch; }
.c2 .app-side { width: 220px; flex-shrink: 0; border-right: 0.5px solid var(--line); padding: 28px 20px; position: relative; transition: width .18s ease, padding .18s ease; }

/* --- Сворачивание левой колонки ---
   Свёрнутая колонка не исчезает совсем, а остаётся узкой полосой с кнопкой:
   иначе разворачивать было бы нечем. Ширина падает с 220 до 44px — контенту
   достаётся 176px, ради которых всё и затевалось. */
/* Кнопка была бледной и терялась на фоне колонки. Теперь это фирменная
   синяя «пилюля», сидящая ВЕРХОМ НА ГРАНИЦЕ между меню и контентом — на
   разделительной линии её видно сразу, и смысл («двигать границу») читается
   без подписи. */
.c2 .side-toggle {
  position: absolute; top: 18px; right: -13px; z-index: 4;
  width: 26px; height: 26px; padding: 0;
  display: flex; align-items: center; justify-content: center;
  background: var(--accent-bg); border: 1px solid rgba(37,71,214,0.28);
  border-radius: 50%;
  color: var(--accent); font-size: 14px; font-weight: 600; line-height: 1; cursor: pointer;
  box-shadow: 0 1px 3px rgba(16,24,40,.12);
  transition: background .15s, color .15s, box-shadow .15s, transform .15s;
}
.c2 .side-toggle:hover {
  background: var(--accent); color: var(--on-accent);
  box-shadow: 0 3px 10px rgba(37,71,214,.35);
  transform: scale(1.08);
}
.c2 .side-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.c2 .side-toggle__icon { display: block; margin-top: -1px; }

/* overflow здесь оставить нельзя: кнопка сидит на границе и вылезает за
   пределы колонки — при overflow:hidden её обрезало бы пополам. Скрываем
   вместо этого сами ссылки. */
/* Свёрнутое меню больше НЕ пустое: подписи и рубрики прячутся, иконки
   остаются — по ним можно перейти, не разворачивая колонку. Раньше nav
   скрывался целиком, и в полосе не было ничего, кроме кнопки. */
.c2 .app-grid.side-collapsed .app-side { width: 44px; padding-left: 0; padding-right: 0; }
.c2 .app-grid.side-collapsed .app-side .side-label,
.c2 .app-grid.side-collapsed .app-side .side-rubric { display: none; }
.c2 .app-grid.side-collapsed .app-side nav a {
  justify-content: center;
  padding: 9px 0;
  gap: 0;
  /* Полоса активного пункта остаётся на левом краю колонки — по ней видно,
     где находишься, даже когда подписей нет. */
  border-left-width: 2px;
}

/* На узком экране колонка и так мешает больше всего — прячем её целиком,
   оставляя только кнопку. */
@media (max-width: 700px) {
  .c2 .app-side { width: 180px; padding: 24px 12px; }
  .c2 .app-grid.side-collapsed .app-side { width: 40px; }
}
/* --- Боковое меню, вариант «Акцентная полоса» (выбран владельцем).
   Заливок нет вовсе: активный пункт помечен вертикальной чертой слева.
   Меню перестаёт спорить с контентом за внимание и не начнёт рябить, когда
   сервисов станет 20–50. Иконки контурные — тот же язык форм, что в макете. */
.c2 .app-side nav { display: flex; flex-direction: column; gap: 1px; }
.c2 .app-side nav a {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13.5px;
  color: var(--soft);
  padding: 8px 12px;
  border-radius: 0;
  border-left: 2px solid transparent;
  transition: color .12s ease, border-color .12s ease;
}
.c2 .app-side nav a .side-ico { flex: 0 0 18px; color: #A2AAB6; transition: color .12s ease; }
/* На наведении меняется только цвет — подложка вернула бы ту самую рябь,
   ради ухода от которой и выбран этот вариант. */
.c2 .app-side nav a:hover { color: var(--ink); }
.c2 .app-side nav a:hover .side-ico { color: var(--ink); }
.c2 .app-side nav a.on {
  border-left-color: var(--accent);
  color: var(--accent);
  font-weight: 500;
  background: none;
}
.c2 .app-side nav a.on .side-ico { color: var(--accent); }
.c2 .app-side .side-rubric { display: block; font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: #9098A2; font-weight: 500; margin: 16px 0 4px; padding: 0 14px; }
.c2 .app-side .side-rubric:first-of-type { margin-top: 18px; }
/* Отступ вложенности даёт иконка — двигать текст ещё и слева незачем. */
.c2 .app-side nav a.side-service { padding-left: 12px; }

.c2 .app-content .hub-services-rubric { margin-bottom: 34px; }
.c2 .app-content .hub-services-rubric:last-child { margin-bottom: 0; }
.c2 .app-content .hub-services-rubric__title { font-size: 15px; font-weight: 700; letter-spacing: -0.01em; margin: 0 0 16px; padding-bottom: 10px; border-bottom: 1px solid var(--line); color: #1B2C6E; }
.c2 .app-content { flex: 1; min-width: 0; padding: 40px; }
.c2 .app-content .page-content { font-size: 15px; line-height: 1.7; }
.c2 .app-content .page-content a { color: var(--accent); text-decoration: underline; }
.c2 .app-content .page-content img { max-width: 100%; height: auto; border-radius: 10px; }

.c2 .app-content .hub-balance-card { display: flex; flex-direction: column; gap: 4px; background: linear-gradient(135deg, #2547D6, #1B2C6E); color: #FFFFFF; border-radius: 14px; padding: 20px 24px; margin-bottom: 20px; }
.c2 .app-content .hub-balance-card__label { font-size: 13px; opacity: 0.85; }
.c2 .app-content .hub-balance-card__value { font-size: 26px; font-weight: 700; letter-spacing: -0.01em; }
.c2 .app-content .hub-balance-card__sub { font-size: 12.5px; opacity: 0.85; margin-top: 4px; }

.c2 .app-content .hub-topup-qr { display: flex; align-items: center; gap: 20px; background: var(--page); border: 1px dashed var(--line); border-radius: 12px; padding: 18px 20px; margin-bottom: 24px; }
.c2 .app-content .hub-topup-qr__text { flex: 1; min-width: 0; }
.c2 .app-content .hub-topup-qr__text h3 { font-size: 14.5px; font-weight: 700; margin: 0 0 6px; color: var(--ink); }
.c2 .app-content .hub-topup-qr__text p { font-size: 13px; color: var(--soft); line-height: 1.6; margin: 0; }
.c2 .app-content .hub-topup-qr__image-col { flex-shrink: 0; text-align: center; }
.c2 .app-content .hub-topup-qr__image { position: relative; display: inline-block; padding: 0; border: none; background: none; text-decoration: none; border-radius: 10px; overflow: hidden; line-height: 0; }
.c2 .app-content .hub-topup-qr__image img { width: 130px; height: 130px; object-fit: contain; border: 1px solid var(--line); border-radius: 10px; background: #FFFFFF; display: block; }
.c2 .app-content .hub-topup-qr__zoom { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(20,23,28,0.55); opacity: 0; transition: opacity 0.15s ease; }
.c2 .app-content .hub-topup-qr__zoom svg { width: 26px; height: 26px; color: #FFFFFF; }
.c2 .app-content .hub-topup-qr__image:hover .hub-topup-qr__zoom { opacity: 1; }
.c2 .app-content .hub-topup-qr__hint { display: block; font-size: 11px; color: var(--soft); text-decoration: none; margin-top: 6px; }
@media (prefers-reduced-motion: reduce) { .c2 .app-content .hub-topup-qr__zoom { transition: none; } }
@media (max-width: 480px) {
  .c2 .app-content .hub-topup-qr { flex-direction: column; align-items: stretch; text-align: center; }
}

.c2 .app-content .hub-services-search { display: flex; align-items: center; gap: 10px; background: var(--surf); border: 1px solid var(--line); border-radius: 10px; padding: 10px 14px; max-width: 380px; margin: 0 0 18px; }
.c2 .app-content .hub-services-search svg { width: 16px; height: 16px; color: var(--soft); flex-shrink: 0; }
.c2 .app-content .hub-services-search input { border: none; outline: none; background: none; font-size: 13.5px; width: 100%; color: var(--ink); }
.c2 .app-content .hub-services-search__result-info { font-size: 13px; color: var(--soft); margin: 0 0 18px; }
.c2 .app-content .hub-services-search__result-info a { color: var(--accent); }

/* Публичный каталог сервисов /services/ — раньше .hub-service-card и
   .hub-cabinet__grid не были стилизованы вообще (наследовали подчёркнутые
   синие ссылки от .page-content a и "голые" картинки без размера). */
.c2 .app-content .hub-services-directory h1 { font-size: 26px; font-weight: 700; letter-spacing: -0.01em; line-height: 1.3; margin: 0 0 10px; color: #1B2C6E; }
.c2 .app-content .hub-services-directory > p { font-size: 15px; color: var(--soft); max-width: 56ch; margin: 0 0 24px; }
.c2 .app-content .hub-cabinet__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.c2 .app-content .hub-service-card { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 12px; padding: 18px; text-decoration: none !important; color: inherit; background: var(--surf); transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease; }
.c2 .app-content .hub-service-card:hover { border-color: var(--accent); box-shadow: 0 6px 16px rgba(20,23,28,0.06); transform: translateY(-2px); }
.c2 .app-content .hub-service-card__icon { width: 40px; height: 40px; border-radius: 10px; background: var(--accent-bg); padding: 8px; box-sizing: border-box; object-fit: contain; margin-bottom: 12px; }
.c2 .app-content .hub-service-card__title { font-size: 15px; font-weight: 700; color: var(--ink); margin-bottom: 6px; }
.c2 .app-content .hub-service-card__desc { font-size: 13px; color: var(--soft); line-height: 1.55; flex: 1; margin-bottom: 14px; }
.c2 .app-content .hub-service-card__price { font-size: 12px; font-weight: 500; color: var(--accent); padding-top: 12px; border-top: 1px solid var(--line); }
@media (max-width: 860px) {
  .c2 .app-content .hub-cabinet__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .c2 .app-content .hub-cabinet__grid { grid-template-columns: 1fr; }
}

.c2 .app-content .hub-screenshot-form { max-width: 480px; }
.c2 .app-content .hub-screenshot-form label { display: block; font-size: 13px; color: var(--ink); font-weight: 500; margin: 0 0 6px; }
.c2 .app-content .hub-screenshot-form input[type="url"],
.c2 .app-content .hub-screenshot-form input[type="number"],
.c2 .app-content .hub-screenshot-form select { width: 100%; border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; font-size: 14px; color: var(--ink); margin-bottom: 16px; background: #FFFFFF; }
.c2 .app-content .hub-screenshot-form input:focus,
.c2 .app-content .hub-screenshot-form select:focus { outline: none; border-color: var(--accent); }
.c2 .app-content .hub-screenshot-row { display: flex; gap: 20px; flex-wrap: wrap; margin-bottom: 4px; }
.c2 .app-content .hub-screenshot-row--3 > div { flex: 1; min-width: 110px; }
.c2 .app-content .hub-screenshot-options { display: flex; flex-direction: column; gap: 2px; background: var(--page); border: 1px solid var(--line); border-radius: 10px; padding: 6px; margin-bottom: 16px; }
.c2 .app-content .hub-service-form .hub-screenshot-check,
.c2 .app-content .hub-screenshot-check { display: flex !important; align-items: center; gap: 10px; font-weight: 400 !important; font-size: 13px; color: var(--ink); margin: 0 !important; padding: 9px 10px; border-radius: 7px; cursor: pointer; transition: background 0.15s ease; }
.c2 .app-content .hub-screenshot-check:hover { background: rgba(37,71,214,0.06); }
.c2 .app-content .hub-screenshot-check input[type="checkbox"] { width: 17px; height: 17px; margin: 0; accent-color: var(--accent); cursor: pointer; flex-shrink: 0; }
.c2 .app-content .hub-screenshot-hint { display: block; font-size: 11px; color: var(--soft); margin-top: 4px; }
.c2 .app-content .hub-stc-form { max-width: 560px; }
.c2 .app-content .hub-stc-form label { display: block; font-size: 13px; color: var(--ink); font-weight: 500; margin: 0 0 6px; }
.c2 .app-content .hub-stc-form textarea { width: 100%; box-sizing: border-box; border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; font-size: 14px; font-family: inherit; color: var(--ink); margin-bottom: 16px; background: #FFFFFF; resize: vertical; }
.c2 .app-content .hub-stc-form textarea:focus { outline: none; border-color: var(--accent); }
.c2 .app-content .hub-stc-form input[type="file"] { display: block; font-size: 13px; color: var(--ink); margin-bottom: 6px; }

/* Переопределяем дефолтный WP-admin-стиль плагинных виджетов (KP Generator
   и т.п.) под брендинг сайта — иначе они выделяются синим/жёлтым посреди
   остального интерфейса. Селекторы и !important — как в самих плагинных
   стилях (cabinet.css/cabinet-kpgen.css), чтобы точно перебить. */
.c2 .app-content .hub-kpgen-generate-box,
.c2 .app-content .hub-kpgen-panel { background: var(--surf) !important; border: 1px solid var(--line) !important; border-radius: 12px !important; }
.c2 .app-content .hub-kpgen-manager { display: block !important; }
.c2 .app-content .hub-kpgen-manager .hub-kpgen-panel { margin-bottom: 16px !important; }
.c2 .app-content .hub-kpgen-manager .hub-kpgen-panel:last-child { margin-bottom: 0 !important; }
.c2 .app-content .hub-cabinet__notice { background: var(--accent-bg) !important; border: 1px solid rgba(37,71,214,0.18) !important; border-radius: 10px !important; color: var(--ink) !important; }
.c2 .app-content .hub-cabinet__notice--maintenance { background: #FFF4E5 !important; border: 1px solid rgba(154,103,0,0.25) !important; color: #7a4d00 !important; font-weight: 500 !important; }
.c2 .app-content .hub-stc-warnings { background: #FFF4E5; border: 1px solid rgba(154,103,0,0.25); border-radius: 10px; padding: 12px 16px; margin-bottom: 16px; font-size: 13px; color: #7a4d00; }
.c2 .app-content .hub-stc-warnings p { margin: 0 0 6px; }
.c2 .app-content .hub-stc-warnings ul { margin: 0 0 0 18px; list-style: disc; }
.c2 .app-content .hub-kpgen-generate-box h3,
.c2 .app-content .hub-kpgen-generate-box label,
.c2 .app-content .hub-service-form label,
.c2 .app-content .hub-kpgen-manager label { font-weight: 500 !important; color: var(--ink) !important; font-size: 13px !important; }
.c2 .app-content .hub-kpgen-generate-box input[type="text"],
.c2 .app-content .hub-kpgen-generate-box input[type="number"],
.c2 .app-content .hub-kpgen-generate-box select,
.c2 .app-content .hub-service-form input[type="text"],
.c2 .app-content .hub-kpgen-manager input[type="text"],
.c2 .app-content .hub-kpgen-manager select,
.c2 .app-content .hub-kpgen-manager textarea { border: 1px solid var(--line) !important; border-radius: 8px !important; font-size: 14px !important; color: var(--ink) !important; }
.c2 .app-content .hub-kpgen-generate-box input:focus,
.c2 .app-content .hub-service-form input:focus,
.c2 .app-content .hub-kpgen-manager input:focus { outline: none !important; border-color: var(--accent) !important; }
.c2 .app-content .hub-btn,
.c2 .app-content .hub-btn--run,
.c2 .app-content .hub-btn--topup { background: var(--accent) !important; color: #FFFFFF !important; border: none !important; border-radius: 8px !important; font-weight: 500 !important; padding: 10px 18px !important; }

/* ⚠️ Исключение для тихих кнопок — иначе правило выше красит синим ВСЁ.
   Именно из-за него в ленте вёрсток все действия выглядели одинаково главными:
   модуль объявлял .hub-btn--ghost, но тема перебивала его !important, и класс
   работал только вне .app-content (на этом я и обманулся при первой проверке —
   мерил пробу, вставленную в body, а не в контент).
   Правило стоит ЗДЕСЬ, рядом с тем, что оно уточняет: иначе следующая правка
   темы снова всё перекрасит и никто не поймёт почему. */
.c2 .app-content .hub-btn--ghost {
  background: #FFFFFF !important;
  color: #414A5E !important;
  border: 1px solid #DDE1EA !important;
  font-weight: 400 !important;
}
.c2 .app-content .hub-btn--ghost:hover { background: #F7F8FA !important; border-color: #C8CEDB !important; color: #1B2130 !important; }
/* Мелкий размер — тоже поверх !important, иначе кнопки ленты остаются крупными. */
.c2 .app-content .hub-btn--sm { padding: 6px 11px !important; font-size: 12.5px !important; border-radius: 7px !important; }
.c2 .app-content .hub-btn:hover { background: #1D39B0 !important; }
.c2 .app-content .hub-kpgen-help { color: var(--soft) !important; }
.c2 .app-content .hub-kpgen-help code { background: var(--page) !important; }
.c2 .app-content .hub-kpgen-bundle-list { width: 100% !important; border-collapse: collapse !important; margin: 12px 0 !important; font-size: 13px !important; }
.c2 .app-content .hub-kpgen-bundle-list td,
.c2 .app-content .hub-kpgen-bundle-list th { padding: 10px 8px !important; border-bottom: 1px solid var(--line) !important; text-align: left !important; color: var(--ink) !important; font-weight: 400 !important; }
.c2 .app-content .hub-kpgen-bundle-list th { color: var(--soft) !important; font-weight: 500 !important; font-size: 12px !important; text-transform: uppercase !important; letter-spacing: 0.02em !important; }
.c2 .app-content .hub-kpgen-bundle-list tr:last-child td { border-bottom: none !important; }
.c2 .app-content .hub-kpgen-bundle-list a { color: var(--accent) !important; }
.c2 .app-content .hub-kpgen-panel summary { font-weight: 500 !important; color: var(--ink) !important; cursor: pointer !important; padding: 4px 0 !important; }
.c2 .app-content .hub-screenshot-result img { max-width: 100%; border: 1px solid var(--line); border-radius: 10px; }
.c2 .app-content .hub-screenshot-result a { color: var(--accent); font-weight: 500; }
.c2 .app-content .hub-stc-preview-wrap { border: 1px solid var(--line); border-radius: 10px; overflow: hidden; margin-bottom: 16px; background: #FFFFFF; }
.c2 .app-content .hub-stc-preview { width: 100%; height: 480px; border: none; display: block; }
.c2 .app-content .hub-stc-images-block { background: var(--page); border: 1px solid var(--line); border-radius: 10px; padding: 14px 16px; margin-top: 8px; }
.c2 .app-content .hub-stc-images-block p { margin: 0 0 10px; font-size: 13px; color: var(--ink); }
.c2 .app-content .hub-stc-ph-list { margin-bottom: 10px; }
.c2 .app-content .hub-stc-ph span { line-height: 1.3; }
.c2 .app-content .hub-stc-ph em { color: var(--soft); font-style: normal; }
.c2 .app-content .hub-stc-images-status { margin-left: 10px; }
.c2 .app-content .hub-stc-devices { margin-bottom: 12px; }
.c2 .app-content .hub-stc-device-btn { background: var(--page) !important; color: var(--ink) !important; border: 1px solid var(--line) !important; padding: 6px 14px !important; font-size: 13px !important; font-weight: 500 !important; }
.c2 .app-content .hub-stc-device-btn.is-active { background: var(--accent) !important; color: #FFFFFF !important; border-color: var(--accent) !important; }
/* Галочка «картинки в архив» и блок «Показать код HTML» удалены из результата —
   их стили тоже не нужны. Картинки в ZIP кладутся всегда, переключатель живёт
   в настройках сервиса. */
.c2 .app-content .hub-service-progress { position: relative; }
.c2 .app-content .hub-stc-progress-track { width: 100%; height: 6px; background: var(--line); border-radius: 4px; overflow: hidden; margin-top: 8px; }
.c2 .app-content .hub-stc-progress-fill { height: 100%; background: var(--accent); border-radius: 4px; transition: width 0.6s linear; width: 0%; }
.c2 .app-content .hub-stc-progress-time { font-size: 12px; color: var(--soft); margin-top: 6px; font-variant-numeric: tabular-nums; }
.c2 .app-content .hub-stc-elapsed { font-size: 12px; font-weight: 400; color: var(--soft); }
.c2 .app-content .hub-stc-progress-log { margin-top: 10px; text-align: left; }
.c2 .app-content .hub-stc-progress-item { font-size: 13px; padding: 3px 0; color: var(--soft); display: flex; gap: 6px; align-items: baseline; }
.c2 .app-content .hub-stc-progress-item.is-done { color: var(--ink); }
.c2 .app-content .hub-stc-progress-item.is-done .hub-stc-progress-icon { color: #1a7f37; }
.c2 .app-content .hub-stc-progress-item.is-active { color: var(--accent); font-weight: 500; }
.c2 .app-content .hub-stc-progress-item.is-active .hub-stc-progress-icon { animation: hub-stc-pulse 1s ease-in-out infinite; }
.c2 .app-content .hub-stc-progress-item.is-failed { color: #c0392b; }
.c2 .app-content .hub-stc-progress-icon { flex-shrink: 0; width: 14px; text-align: center; }
.c2 .app-content .hub-stc-progress-err { color: #c0392b; font-size: 12px; }
.c2 .app-content .hub-stc-progress-counter { font-size: 11px; color: var(--soft); margin-top: 6px; }
@keyframes hub-stc-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.3; } }
.c2 .app-content .hub-stc-history { margin-top: 28px; }
/* Заголовок истории — в одном начертании с заголовками Дизайнера (.hub-wd-h,
   17px/600): было 16px/700, и на фоне соседнего сервиса выглядело тяжелее. */
.c2 .app-content .hub-stc-history h3 { margin: 0; font-size: 17px; font-weight: 600; color: var(--ink); }
.c2 .app-content .hub-stc-history h3 .hub-screenshot-hint { display: inline; font-weight: 400; margin: 0 0 0 6px; }
/* Подпись про сроки хранения уехала из h3 в шапку карточки — там она встаёт
   в строку справа, а не блоком под заголовком. */
.c2 .app-content .hub-cardhead .hub-screenshot-hint { display: inline; margin: 0; }
.c2 .app-content .hub-link-btn { background: none; border: none; padding: 0; margin: 0; color: var(--accent); font-size: inherit; font-family: inherit; font-weight: 400; text-decoration: underline; cursor: pointer; }
.c2 .app-content .hub-link-btn:disabled { color: var(--soft); cursor: default; text-decoration: none; }
.c2 .app-content .hub-link-btn--danger { color: #c0392b; }
.c2 .app-content .hub-screenshot-badge { font-size: 12px; color: var(--soft); }
.c2 .app-content .hub-screenshot-price { font-size: 13px; color: var(--soft); margin: -4px 0 14px; }
.c2 .app-content .hub-screenshot-price strong { color: var(--ink); }
.c2 .app-content .hub-screenshot-charged { font-size: 13px; color: var(--soft); margin-top: 8px; }
.c2 .app-content .hub-screenshot-charged strong { color: var(--accent); }
.c2 .app-content .hub-stc-edit-block { background: var(--page); border: 1px solid var(--line); border-radius: 10px; padding: 14px 16px; margin: 16px 0; }
.c2 .app-content .hub-stc-edit-block label { display: block; font-size: 13px; font-weight: 500; color: var(--ink); margin: 0 0 8px; }
.c2 .app-content .hub-stc-edit-input { width: 100%; box-sizing: border-box; border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; font-size: 14px; font-family: inherit; color: var(--ink); background: #FFFFFF; resize: vertical; margin-bottom: 10px; }
.c2 .app-content .hub-stc-edit-input:focus { outline: none; border-color: var(--accent); }
.c2 .app-content .hub-stc-edit-status { margin-left: 10px; }
.c2 .app-content .hub-stc-select-btn.is-select-active { background: var(--accent) !important; color: #FFFFFF !important; border-color: var(--accent) !important; }
.c2 .app-content .hub-stc-select-status { margin-left: 10px; }
.c2 .app-content .hub-stc-select-status a { color: var(--accent); }

.hub-lightbox { position: fixed; inset: 0; background: rgba(20,23,28,0.75); align-items: center; justify-content: center; z-index: 200; padding: 24px; }
.hub-lightbox:not([hidden]) { display: flex; }
.hub-lightbox__img { max-width: min(90vw, 420px); max-height: 80vh; border-radius: 12px; background: #FFFFFF; padding: 16px; display: block; }
.hub-lightbox__close { position: absolute; top: 20px; right: 24px; background: none; border: none; color: #FFFFFF; font-size: 32px; line-height: 1; cursor: pointer; padding: 4px 10px; }

/* [hub_auth] widget — /vhod/ */
.hub-auth { max-width: 380px; }
.hub-auth__tabs { display: flex; gap: 4px; background: var(--page); border-radius: 10px; padding: 4px; margin-bottom: 20px; }
.hub-auth__tab { flex: 1; border: none; background: transparent; padding: 9px; border-radius: 7px; font-size: 13.5px; font-weight: 500; color: var(--soft); cursor: pointer; }
.hub-auth__tab--active { background: #FFFFFF; color: var(--ink); box-shadow: 0 1px 2px rgba(20,23,28,0.08); }
.hub-auth__error { background: var(--coral-bg); color: var(--coral); font-size: 13px; padding: 10px 14px; border-radius: 8px; margin: 0 0 16px; }
.hub-auth p.login-username, .hub-auth p.login-password, .hub-auth p.login-remember, .hub-auth p.login-submit { margin: 0 0 14px; }
.hub-auth label { display: block; font-size: 13px; color: var(--ink); font-weight: 500; margin-bottom: 6px; }
.hub-auth input.input,
.hub-auth input[type="email"],
.hub-auth input[type="text"],
.hub-auth input[type="password"] { width: 100%; border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; font-size: 14px; color: var(--ink); margin-bottom: 14px; }
.hub-auth input.input:focus,
.hub-auth input[type="email"]:focus,
.hub-auth input[type="password"]:focus { outline: none; border-color: var(--accent); }
.hub-auth .login-remember { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 400; color: var(--soft); }
.hub-auth .login-remember input { margin: 0; width: auto; }
.hub-auth .button, .hub-auth__submit { width: 100%; background: var(--accent); color: #FFFFFF; border: none; border-radius: 8px; padding: 11px; font-size: 14px; font-weight: 500; cursor: pointer; }
.hub-auth .button:hover, .hub-auth__submit:hover { background: #1D39B0; }
.hub-auth__lost { font-size: 12.5px; margin-top: 4px; }
.hub-auth__lost a { color: var(--accent); }
.hub-auth__consent { display: flex; align-items: flex-start; gap: 8px; font-size: 12.5px; font-weight: 400; color: var(--soft); line-height: 1.5; margin: 4px 0 18px; }
.hub-auth__consent input { width: auto; margin: 3px 0 0; flex-shrink: 0; }
.hub-auth__consent a { color: var(--accent); }
.hub-auth__hint { font-size: 12px; color: var(--soft); margin: 10px 0 0; }
.hub-auth__already { font-size: 14px; }
@media (max-width: 700px) {
  .c2 .app-grid { flex-direction: column; }
  .c2 .app-side { width: 100%; border-right: none; border-bottom: 0.5px solid var(--line); padding: 16px 20px; }
  .c2 .app-side nav { flex-direction: row; flex-wrap: wrap; }
  .c2 .app-content { padding: 24px; }
}
