/* Blog V7 owner: whole winning source rules in original five-sheet order. Shared shell remains separate; no V7 foundation. */
/* From assets/sigma.css; only selectors matching blog DOM, plus full blog-specific rules */

:root{
  /* V9 Пакет 1, §1.7: согласованное владельцем визуальное улучшение (не
     регрессия — --bg/--card/--card2 не изменены со времени введения,
     проверено по истории). Минимальный шаг только на --line: обычная
     карточка чуть увереннее отделяется от чёрного фона. --bg, --card,
     --card2, opacity, золотые рамки (--border-emphasis, --gold-dim) не
     трогать — если рамки станут заметно ярче или сайт начнёт напоминать
     панель управления, откатить именно этот один токен. */
  /* Аудит при ярком внешнем свете 26.08.2026: второй осторожный шаг
     #25211D → #2B2722; меняется только обычная системная линия. */
  --bg:#0A0A0A; --card:#151310; --card2:#1b1613; --line:#2B2722;
  --text:#F0EDE8; --muted:#B0ABA2;
  --accent:#CF8A52; --accent-text:#E4A971; --accent-dim:#8D5E38;
  /* обратная совместимость со старыми именами токенов в шаблонах — тоже единые */
  --panel:var(--card); --panel2:var(--card2); --gold:var(--accent); --gold-dim:var(--accent-dim);
  --r:22px;
  /* Visual system 17.08.2026, батч 2: small/large/pill из шкалы аудита —
     добавлены только там, где значение уже дословно повторяется в файле
     (8px — фокус-рамка disclosure, 14px — поля форм и компактные карточки,
     28px — большие панели, 999px — таблетки). Единичные соседние значения
     (12/16/18/20/24px у отдельных компонентов) не сведены к этой шкале —
     задача убрать дрейф там, где он есть, а не сжать всё в 5 чисел. */
  --r-sm:8px;
  --r-md:14px;
  --r-lg:28px;
  --r-pill:999px;
  /* Семантические имена остаются только у реально используемых ролей;
     неиспользуемые r-control/compact/feature и control-*-h удалены (A-009). */
  --r-focus:var(--r-sm);
  --r-card:var(--r);
  /* Visual system 17.08.2026, батч 2: durations сведены к 4 ролям вместо
     6 разных чисел (.12/.18/.2/.22/.25/.26/.5s), без добавления новых
     анимаций. --t-micro — мгновенные hover-цвета/подчёркивания, --t-base —
     наведение на карточки и поворот шеврона, --t-reveal — появление
     полноэкранных панелей (модалка связи), --t-ambient — вращение
     GoldMedallion (9s, значение не меняется, только именуется). */
  --t-micro:.18s;
  --t-base:.2s;
  --t-reveal:.28s;
  --t-ambient:9s;
  /* Visual system 17.08.2026, батч 2: единый semantic-токен вместо двух
     вариантов акцентной рамки (var(--gold-dim) 1px и var(--accent-dim)
     1.4px — по факту один и тот же цвет, т.к. --gold-dim это алиас
     --accent-dim, разница была только в ширине 0.4px). Третий вариант из
     аудита, rgba(207,138,82,.28) на .hb-badge (GoldMedallion), сюда
     сознательно НЕ включён — по соседнему комментарию его цвет откалиброван
     с заказчиком и заморожен, сведение к другому значению было бы визуальным
     изменением, а не устранением дрейфа. */
  --border-emphasis:1px solid var(--accent-dim);
  /* Градиентная система 27.08.2026. У интерфейсных поверхностей остаются
     только две роли: единая мягкая акцентная поверхность для действительно
     выделенных предложений и отдельная поверхность фирменного медальона.
     Фотооверлеи, подсказка горизонтального скролла и нейтральный media-slot
     ниже остаются локальными функциональными градиентами. */
  --surface-accent:linear-gradient(155deg,rgba(207,138,82,.07),var(--panel) 62%);
  --surface-medallion:linear-gradient(155deg,rgba(207,138,82,.10),var(--card2) 70%);
  /* Высота шапки — единая точка правды. От неё считаются top мобильного меню
     (#nav) и верх top-sheet связи (.cp-overlay): раньше 52px (51px + рамка)
     были вбиты числом в трёх местах и при любой правке расходились. */
  --hdr-h:60px;
  /* --- desktop-сетка + типографика (ТЗ 11.08.2026 «восстановление UI-системы») —
     заменяет батч 10.08.2026 §4: тот впервые ввёл spacing-токены поверх старых
     локальных inline-отступов/page-CSS, не убрав их — из-за этого страницы
     получали двойной ритм. Контейнер 1760px и section-gap до 88px там же
     оказались шире целевых границ (см. PLAN_SIGMA_UI_RESTORE.md §2–4). */
  --gutter:clamp(20px,3vw,56px);
  --wrap-max:1440px;
  --measure:min(72ch,720px);
  /* ===== СЕМАНТИЧЕСКИЙ РИТМ (M09, R-6) =====================================
     Раньше значения отступов не имели ролей: gap/padding/margin разного
     масштаба выглядели одним «долгом», и сравнение любых gap с одним списком
     токенов давало ложную цель. Ритм объявлен по четырём смысловым уровням,
     и отклонение считается только внутри своего уровня:

       section    между модулями страницы верхнего уровня
       cluster    между блоками внутри одного модуля
       component  внутри коробки компонента
       inline     между соседними элементами одной строки

     Дальше — роли внутри семейства: границу держит имя роли, а не число в
     месте применения. Значение, сознательно уходящее от шага своего уровня,
     объявляется именованным исключением с владельцем, а не остаётся магическим
     числом; реестр исключений с эталонными снимками лежит в
     scripts/fixtures/v4-rhythm-exceptions.json и проверяется
     scripts/test-layout-rhythm-contract.js.

     Прежние имена (--sp-*, --card-pad*, --grid-gap) сохранены как псевдонимы:
     они остаются точкой чтения для всех существующих правил, но перестали быть
     точкой объявления — у каждого уровня она теперь ровно одна на режим. */
  --rhythm-section:36px;
  /* Visual system 17.08.2026, батч 3, §3 ТЗ владельца: было 18px — по аудиту
     /pro целиком шёл на этом шаге вместо системных переходов (см. также
     локальные margin-top:18px в pro.html/massage.html/contacts.html,
     переведённые на этот токен в том же батче). 24px выравнивает mobile с
     desktop — с M09 это одно объявление на все три режима, а не три
     одинаковых. */
  --rhythm-cluster:24px;
  --rhythm-component:18px;
  --rhythm-inline:14px;
  /* Роли внутри семейств. */
  --rhythm-cluster-grid:14px;   /* cluster: щель сетки между блоками модуля */
  --rhythm-heading-body:16px;   /* cluster: заголовок → текст */
  --rhythm-proof:14px;          /* cluster: текст → блок доказательства */
  --rhythm-action:24px;         /* cluster: доказательство → действие */
  --rhythm-component-lg:24px;   /* component: крупная коробка */
  /* --rhythm-card-row/--rhythm-card-action оставлены: они не читаются через
     var(), но закреплены контрактом ритма карточек (test-layout-rhythm-contract.js
     A1/B + scripts/fixtures/v4-rhythm-scale.json) как эталон шага карточки. */
  --rhythm-card-row:10px;       /* component: строка карточки → строка */
  --rhythm-card-action:4px;     /* component: последняя строка → действие */
  /* Именованные роли уровня section.  Переход к футеру остаётся отдельной
     ролью, потому что это граница оболочки, а не следующий модуль страницы. */
  --rhythm-section-wide:clamp(44px,5vw,80px);
  --rhythm-module-footer:48px;
  /* Плотный шаг секции: маршруты со стопкой коротких модулей (/pro, /school,
     /blog, /massage, профиль мастера, мост «дальше») ставят их ближе, чем шаг
     страницы. До M09 это читалось как «секция взяла кластерный токен» — то же
     число на другом уровне. Уровень теперь свой: значение совпадает с
     --rhythm-cluster сегодня, но объявлено отдельно, потому что это отдельная
     смысловая роль и менять их вместе нельзя. */
  --rhythm-section-dense:24px;
  /* Псевдонимы прежних имён. */
  --grid-gap:var(--rhythm-cluster-grid);
  --sp-section:var(--rhythm-section);
  --sp-block:var(--rhythm-cluster);
  --sp-eyebrow:var(--rhythm-inline);
  --sp-headlead:var(--rhythm-heading-body);
  --card-pad:var(--rhythm-component);
  --card-pad-lg:var(--rhythm-component-lg);

  /* Единая типографическая шкала — один h1-токен на весь сайт (максимум 38px:
     решение 11.08.2026, заменяет прежнее разделение base/service H1). */
  --fs-h1:clamp(29px,4.5vw,38px);
  --fs-h2:clamp(24px,3vw,30px);
  --fs-h3:clamp(19px,2vw,22px);
  --fs-lead:clamp(15px,1.6vw,17px);
  --fs-body:16px;
  /* Visual system 17.08.2026, батч 2: три недостающие роли из типографической
     шкалы аудита. Из 95 объявлений font-size в файле только 7 шли через
     токен — остальное было хардкодом, в том числе 9 почти неразличимых
     размеров 11–15px. Добавляем роли, а не меняем все 88 объявлений сразу:
     заменяем только там, где значение совпадает с ролью (±0.5px) и это
     точно не глиф иконки / не компонент с собственной подобранной
     responsive-кривой (см. комментарии по месту применения ниже). */
  --fs-body-sm:14.5px;
  --fs-meta:12.5px;
  --fs-eyebrow:11.5px;

  /* Батч 1.1 (16.08.2026, visual-density pass) — плотность строк-аккордеонов.
     Раньше вертикальный ритм жил на <details> (padding:18px 4px) — это
     ЕЩЁ ОДИН слой поверх min-height:44px на <summary>, поэтому закрытая
     строка из одной короткой фразы занимала 81px вместо ожидаемых ~56.
     Ритм переносится на <summary> (border-box: padding входит в min-height,
     поэтому однострочный текст просто получает высоту --row-min-h, а более
     длинный — растёт естественно). У <details> остаётся только рамка и
     воздух ПОСЛЕ раскрытого ответа (--row-pad-open, через margin-bottom
     у details p — не рендерится, пока <details> закрыт, так что на закрытую
     высоту не влияет вовсе). См. docs/SIGMA_OPUS_CONSOLIDATED_FIX_PLAN_20260816.md
     §A/§1.1 — там же таблица selector scope/exceptions: локальные компоненты
     со своим padding (.card-acc-cat, .p-cat, .p-prog, .pro-item, .mp-flat)
     продолжают выигрывать по специфичности и этот блок не трогает их. */
  /* V11 корректирующее ТЗ, пакет 3 (продолжение): 56px — плотность из
     visual-density pass 16.08.2026 — на реальном Manrope дала разброс
     56/63,1/88,7px на разных FAQ (однострочные упирались в 56px-пол,
     двустрочные росли естественно до ~63,1px, минуя его). Цель по ТЗ —
     коридор 64-72px. 68px (середина коридора) поднимает и однострочные
     (=68, пол теперь выше их естественной высоты), и двустрочные (тоже =68,
     68 > естественных 63,1 — пол снова побеждает) к одному числу без
     JS-выравнивания: не подпадают только карточки-раскрытия со своей
     normой (.pro-acc и т.п., §2.3 плана — трёхстрочные 88,7px там не
     "bare"-summary, а другой компонент со своим селектором). */
  --row-min-h:68px;        /* цель для одностроч. закрытой bare-строки (FAQ и т.п.) */
  --row-pad-y:6px;         /* доп. воздух bare-строки при многострочном тексте */
  --row-pad-y-card:10px;   /* то же для карточного варианта */
  --row-pad-open:16px;     /* воздух между текстом ответа и нижней границей открытого <details> */
}
@media(max-width:359px){:root{--gutter:16px}}
@media(min-width:768px) and (max-width:1023px){
  :root{--rhythm-section:48px;--rhythm-cluster-grid:20px;--rhythm-component:20px}
}
@media(min-width:1024px){
  :root{--gutter:32px;--rhythm-section:48px;--rhythm-cluster-grid:24px;--rhythm-component:24px;--rhythm-component-lg:32px;--rhythm-module-footer:88px}
}
*{margin:0;padding:0;box-sizing:border-box}
*{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
html{scroll-behavior:smooth;scroll-padding-top:88px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{background:var(--bg);color:var(--text);font-family:'Manrope','Manrope Fallback',system-ui,sans-serif;font-weight:400;line-height:1.55;-webkit-font-smoothing:antialiased;
  min-height:100dvh;display:flex;flex-direction:column}
main{flex:1 0 auto}
main,footer{overflow-x:clip}
.wrap{width:100%;max-width:calc(var(--wrap-max) + var(--gutter)*2);
      margin-inline:auto;padding-inline:var(--gutter)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
img,svg{max-width:100%;display:block}
main>section+section,main>section+div,main>div+section,main>section+article{margin-top:var(--sp-section)}
.crumb,.eyebrow{margin-bottom:var(--sp-eyebrow)}
h1+.lead,h2+.lead,.p-hero-sub+.lead{margin-top:var(--sp-headlead)}
body::before{content:"";position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.045;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
h1,h2{font-family:'Manrope',sans-serif;font-weight:500}
h1{font-size:var(--fs-h1);line-height:1.16;letter-spacing:.005em}
h2{font-size:var(--fs-h2);line-height:1.22}
h3{font-family:'Manrope',sans-serif;font-weight:400;font-size:var(--fs-h3);line-height:1.3}
.lead{color:var(--muted);max-width:var(--measure);font-size:var(--fs-lead);line-height:1.5;margin-top:16px}
.g12>.c7 p,.g12>.c8 p,main>section>p,main>section>div>p{max-width:var(--measure)}
main.wrap > section > p,
main.wrap > section > .panel > p{max-width:720px}
.hero{padding:12px 0 0}
.crumb{font-size:var(--fs-meta);letter-spacing:.28em;text-transform:uppercase;color:var(--accent-text);margin-bottom:16px;font-weight:600}
.bridge{margin-top:var(--rhythm-section-dense);padding:12px 0;border-block:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;gap:4px 20px;flex-wrap:wrap;
  text-align:left;color:var(--muted);font-size:var(--fs-body-sm);line-height:1.5}
.bridge a{color:var(--accent-text);text-decoration:none;white-space:normal;
  display:inline-flex;align-items:center;min-height:44px;padding:10px 0;margin:-10px 0;font-weight:600}
.crumbs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:var(--fs-meta);color:var(--muted);padding-top:20px}
.crumbs a{display:inline-flex;align-items:center;min-height:24px;margin-block:-3px;color:var(--muted);text-decoration:none}
@media(max-width:760px){.crumbs{display:none}}
.bc-sep{color:#847f76}
@media(hover:hover) and (pointer:fine){
  .crumbs a:hover{color:var(--accent-text)}
  .rel-card:hover{border-color:var(--gold-dim)}
  .x:hover{color:var(--text)}
}
.related{margin-top:var(--sp-section)}
.related h2{margin-bottom:22px}
.rel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:760px){.rel-grid{grid-template-columns:1fr}}
.rel-card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:16px;text-decoration:none;color:var(--text);display:block;transition:border-color var(--t-base)}
@media(min-width:1024px){.rel-card{padding:20px}}
.rel-cat{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-text);margin-bottom:10px;display:block}
.rel-card h3,.rel-card h2{font-size:15.5px;font-weight:400;line-height:1.4}
.related-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}
.related-head h2{margin-bottom:0}
@media(min-width:761px){.related-head .hs-nav{display:none}}
.rel-grid.h-swipe .rel-card{flex:0 0 100%;max-width:none}
@media(min-width:761px){
  .rel-grid.h-swipe{display:grid}
  .rel-card--clone{display:none}
}
.faq{max-width:900px}
.faq h2{margin-bottom:24px}
details{border-bottom:1px solid var(--line);padding:0 4px}
summary{cursor:pointer;font-size:16.5px;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:var(--row-min-h);padding-block:var(--row-pad-y)}
summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
summary::-webkit-details-marker{display:none}
summary::after{content:"›";font-family:'Manrope';font-size:22px;color:var(--accent-text);flex-shrink:0;transition:transform var(--t-base) ease}
details[open] summary::after{transform:rotate(90deg)}
details p{color:var(--muted);font-size:var(--fs-body-sm);margin-top:10px;margin-bottom:var(--row-pad-open);max-width:720px}
p a,.fld-error a{color:var(--accent-text);text-decoration:underline;
  text-decoration-color:var(--gold-dim);text-decoration-thickness:1px;text-underline-offset:3px}
.fld{width:100%;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);color:var(--text);
     padding:13px 15px;font-size:var(--fs-body-sm);font-family:inherit;margin-bottom:11px}
.fld:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
textarea.fld{resize:vertical;min-height:88px}
.x{position:absolute;top:16px;right:18px;background:none;border:none;color:var(--muted);font-size:26px;cursor:pointer;line-height:1;
  min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}
.cp-sheet{background:var(--panel2);border-bottom:1px solid var(--line);border-radius:0 0 24px 24px;
  max-width:480px;margin:0 auto;padding:22px 22px calc(22px + env(safe-area-inset-bottom));
  box-shadow:0 24px 50px rgba(0,0,0,.5);position:relative;max-height:100%;overflow-y:auto;overscroll-behavior:contain}
.cp-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.cp-sheet-head h3{margin:0}
.cp-sheet .x{position:static}
.cp-legal-overlay{display:flex;align-items:flex-end;padding:0 16px}
.cp-legal-sheet{width:100%;max-width:760px;margin:0 auto;border-top:1px solid var(--line);border-bottom:0;
  border-radius:24px 24px 0 0;padding-bottom:calc(26px + env(safe-area-inset-bottom))}
.cp-legal-grid{display:grid;grid-template-columns:minmax(230px,.8fr) minmax(0,1.4fr);gap:28px}
.cp-legal-data{color:var(--muted);font-size:var(--fs-meta);line-height:1.7}
.cp-legal-data span{display:block}
.cp-legal-links{display:grid;grid-template-columns:1fr 1fr;gap:4px 24px}
.cp-legal-links a{display:flex;align-items:center;min-height:44px;color:var(--muted);font-size:var(--fs-meta);text-decoration:none}
@media(hover:hover) and (pointer:fine){.cp-legal-links a:hover{color:var(--text)}}
@media(max-width:640px){
  .cp-legal-overlay{padding:0}
  .cp-legal-sheet{border-radius:20px 20px 0 0}
  .cp-legal-grid{grid-template-columns:1fr;gap:14px}
  .cp-legal-links{grid-template-columns:1fr}
}
.cp-sub{color:var(--muted);font-size:13.5px;margin:-10px 0 16px}
@media(prefers-reduced-motion:no-preference){
  .cp-sheet{animation:cpDrop var(--t-reveal) ease}
  .cp-legal-overlay.open .cp-legal-sheet{animation:cpRise var(--t-reveal) ease}
}
@keyframes cpDrop{from{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes cpRise{from{transform:translateY(18px);opacity:0}to{transform:translateY(0);opacity:1}}
.cp-channels{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cp-ch{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);padding:14px;
  display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;
  color:var(--text);text-decoration:none;cursor:pointer;font:inherit;font-size:var(--fs-meta)}
.cp-ch small{color:var(--muted);font-size:var(--fs-eyebrow);font-weight:400}
.cp-ic{width:34px;height:34px;border-radius:50%;background:rgba(207,138,82,.14);color:var(--accent-text);
  display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}
@media(hover:hover) and (pointer:fine){.cp-ch:hover{border-color:var(--accent-dim)}}
.consent{display:flex;gap:9px;align-items:flex-start;font-size:var(--fs-meta);color:var(--muted);
  line-height:1.5;margin-bottom:11px;cursor:pointer}
.consent input{margin-top:3px;flex-shrink:0;accent-color:var(--gold)}
.consent a{color:var(--accent-text);text-decoration:none;border-bottom:1px solid var(--gold-dim)}
.legal-doc{display:flow-root;max-width:760px;margin-left:auto;margin-right:auto;margin-bottom:0;color:var(--muted);font-size:var(--fs-body-sm);line-height:1.75}
.legal-doc.blog-article{font-size:var(--fs-body)}
.article-toc{border:1px solid var(--line);border-radius:var(--r);margin-bottom:24px;background:var(--panel)}
.article-toc summary{list-style:none;cursor:pointer;display:flex;align-items:center;min-height:48px;padding:0 20px;
  font-size:14px;font-weight:600;color:var(--text)}
.article-toc summary::-webkit-details-marker{display:none}
.article-toc ol{margin:0;padding:2px 20px 18px 38px;display:flex;flex-direction:column;gap:7px}
.article-toc li{font-size:13.5px;line-height:1.5}
.article-toc a{color:var(--muted)}
.article-toc a:hover{color:var(--gold)}
.article-cta{margin:32px 0;padding:22px 20px;border:var(--border-emphasis);border-radius:var(--r);
  background:var(--surface-accent);color:var(--text)}
.article-cta .crumb{margin-bottom:10px}
.article-cta h2{margin:0;font-size:clamp(21px,3vw,26px);line-height:1.25}
.article-cta p{margin:10px 0 0;color:var(--muted);font-size:var(--fs-body-sm);line-height:1.65}
.article-cta-actions{display:flex;flex-direction:column;align-items:stretch;gap:8px;margin-top:18px}
.article-cta-actions .btn{justify-content:center;text-align:center}
@media(min-width:640px){
  .article-cta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;padding:24px}
  .article-cta-actions{align-items:flex-start;margin-top:0;min-width:210px}
  .article-cta-actions .btn.g{width:100%}
}
.article-sources{margin:24px 0 32px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.article-sources>summary{min-height:56px;padding:8px 2px;display:flex;align-items:center;
  justify-content:space-between;gap:16px;list-style:none;cursor:pointer;color:var(--muted);
  font-size:var(--fs-body-sm);font-weight:600}
.article-sources>summary::-webkit-details-marker{display:none}
.article-sources>summary::after{content:'›';font-size:21px;line-height:1;color:var(--muted);
  transition:transform var(--t-base) ease}
.article-sources[open]>summary::after{transform:rotate(90deg)}
.article-sources-body{padding:0 2px 18px;color:var(--muted)}
.article-sources-body p{margin:0 0 12px}
.article-sources-body ul{margin:0;padding-left:20px}
.article-sources-body li+li{margin-top:8px}
.legal-doc .article-sources-body a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;
  text-decoration-color:color-mix(in srgb,var(--muted) 58%,transparent);text-underline-offset:3px}
.legal-doc .article-sources-body a:hover{color:var(--text);text-decoration-color:currentColor}
.legal-doc p{margin-bottom:14px}
.legal-doc ul,.legal-doc ol{margin:0 0 14px 20px}
.legal-doc li{margin-bottom:6px}
.legal-doc strong{color:var(--text);font-weight:600}
.legal-doc a{color:var(--accent-text)}
.legal-doc blockquote{margin:20px 0 24px;padding:2px 0 2px 18px;border-left:2px solid var(--gold-dim)}
.legal-doc blockquote p{margin-bottom:0;color:var(--text)}
.legal-doc table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:var(--fs-meta)}
.legal-doc td,.legal-doc th{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
@media (max-width:640px){
  .legal-doc table.legal-table{overflow-x:visible}
  .legal-doc table.legal-table thead{
    position:absolute;width:1px;height:1px;padding:0;margin:-1px;
    overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
  }
  .legal-doc table.legal-table tbody{display:block}
  .legal-doc table.legal-table tr{
    display:block;margin-bottom:14px;border:1px solid var(--line);
    border-radius:10px;padding:10px 12px;
  }
  .legal-doc table.legal-table tr:last-child{margin-bottom:0}
  .legal-doc table.legal-table td{display:block;border:none;padding:6px 0}
  .legal-doc table.legal-table td:not(:last-child){border-bottom:1px dashed var(--line)}
  .legal-doc table.legal-table td::before{
    content:attr(data-label);display:block;font-weight:600;color:var(--text);
    margin-bottom:4px;
  }
}
.legal-doc h2{margin:40px 0 14px;color:var(--text)}
.legal-doc h2:first-child{margin-top:0}
.legal-doc h3{margin:26px 0 10px;color:var(--text)}
@media print{.legal-doc{color:#000}header,footer{display:none}}
@keyframes hbHalo{to{transform:rotate(360deg)}}
.h-swipe{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding-bottom:2px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.h-swipe::-webkit-scrollbar{display:none}
.h-swipe>*{scroll-snap-align:start;scroll-snap-stop:always;flex:0 0 auto}
.hs-nav{display:flex;gap:8px;flex-shrink:0}
.hs-arrow{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--panel);
  color:var(--text);font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;
  justify-content:center;flex-shrink:0;-webkit-tap-highlight-color:transparent}
.hs-arrow::before{content:'‹'}
.hs-arrow.next::before{content:'›'}
.hs-arrow:disabled{opacity:.35;cursor:default}
.hs-arrow:focus-visible{outline:2px solid var(--text);outline-offset:2px}
@media(hover:hover) and (pointer:fine){.hs-arrow:not(:disabled):hover{border-color:var(--accent-dim)}}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none!important;animation-duration:.001ms!important;animation-iteration-count:1!important}
}
/* From assets/sigma-blog.css; only selectors matching blog DOM, plus full blog-specific rules */
.sigma-blog-index .b-hero{padding:12px 0 0}
.sigma-blog-index .b-hero h1{max-width:700px}
.sigma-blog-index .b-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px}
.sigma-blog-index .b-tab{display:inline-flex;min-height:44px;align-items:center;padding:9px 18px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--panel);color:var(--muted);font-family:inherit;font-size:13.5px;text-decoration:none;transition:.18s}
.sigma-blog-index .b-tab.on{border-color:var(--text);background:var(--text);color:#141210;font-weight:600}

.sigma-blog-index .b-featured{display:grid;grid-template-columns:1fr;gap:16px;margin-top:var(--sp-block)}
.sigma-blog-index .b-feat-main,.sigma-blog-index .b-feat-mini,.sigma-blog-index .b-card{display:flex;min-width:0;flex-direction:column;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);color:var(--text);text-decoration:none;transition:border-color .2s}
.sigma-blog-index .b-feat-main{gap:12px;padding:var(--card-pad-lg)}
.sigma-blog-index .b-feat-main h2{font-size:22px;font-weight:500;line-height:1.3}
.sigma-blog-index .b-feat-main p{color:var(--muted);font-size:14.5px;line-height:1.55}
.sigma-blog-index .b-feat-side{display:flex;min-width:0;flex-direction:column;gap:16px}
.sigma-blog-index .b-feat-mini{flex:1;gap:8px;padding:var(--card-pad)}
.sigma-blog-index .b-feat-mini h3{font-size:15px;font-weight:400;line-height:1.4}

.sigma-blog-index .b-search{position:relative;margin-top:28px}
.sigma-blog-index .b-search[hidden],.sigma-blog-index .b-search-note[hidden]{display:none}
.sigma-blog-index .b-search input{width:100%;min-height:48px;padding:0 18px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);color:var(--text);font:inherit;font-size:15px}
.sigma-blog-index .b-search input:focus{outline:2px solid var(--gold-dim);outline-offset:-1px}
.sigma-blog-index .b-search-count{margin-top:10px;color:var(--muted);font-size:13.5px}
.sigma-blog-index .b-search-count:empty,.sigma-blog-index .b-search-results:empty{display:none}
.sigma-blog-index .b-search-results{margin-top:14px}
.sigma-blog-index .b-sr-item{display:block;padding:12px 4px;border-bottom:1px solid var(--line);color:var(--text);text-decoration:none}
.sigma-blog-index .b-sr-item:last-child{border-bottom:0}
.sigma-blog-index .b-sr-item .b-cat{display:block;margin-bottom:4px}
.sigma-blog-index .b-sr-item h3{font-size:15px;font-weight:400}
.sigma-blog-index .b-sr-empty,.sigma-blog-index .b-empty{padding:12px 4px;color:var(--muted);font-size:14px}
.sigma-blog-index .b-empty{grid-column:1/-1}

.sigma-blog-index .b-tree{display:block;margin-top:28px}
.sigma-blog-index .b-desktop-cats{display:none}
.sigma-blog-index .b-tree-cat{margin-bottom:10px;overflow:hidden;border:1px solid var(--line);border-radius:var(--r)}
.sigma-blog-index .b-tree-cat>summary{display:flex;min-height:52px;align-items:center;gap:10px;padding:0 18px;list-style:none;font-size:15px;font-weight:500}
.sigma-blog-index .b-tree-cat>summary::-webkit-details-marker{display:none}
.sigma-blog-index .b-tree-count{margin-left:auto;color:var(--muted);font-size:13px;font-weight:400}
.sigma-blog-index .b-tree-list{display:flex;flex-direction:column;gap:2px;padding:0 18px 6px;list-style:none}
.sigma-blog-index .b-tree-list a{display:block;padding:9px 0;border-top:1px solid var(--line);color:var(--text);font-size:14px;text-decoration:none}
.sigma-blog-index .b-tree-list li:first-child a{border-top:0}
.sigma-blog-index .b-tree-all{display:block;margin:-10px 18px 2px;padding-block:12px;color:var(--gold);font-size:13.5px;text-decoration:none}

.sigma-blog-index .b-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:var(--sp-block)}
.sigma-blog-index .b-card{min-height:180px;gap:12px;padding:var(--card-pad)}
.sigma-blog-index .b-cat{color:var(--gold);font-size:10px;letter-spacing:.16em;text-transform:uppercase}
.sigma-blog-index .b-card h2{flex:1;font-size:17px;font-weight:400;line-height:1.4}
.sigma-blog-index .b-note{max-width:80ch;margin-top:var(--sp-block);padding:22px 26px;border:1px solid var(--line);border-radius:var(--r);color:var(--muted);font-size:13.5px;line-height:1.6}

.sigma-blog-category .blog-category-grid{grid-template-columns:1fr;margin-top:var(--sp-block)}
.sigma-blog-category .b-pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;margin-top:var(--sp-block)}
.sigma-blog-category .b-pager-info{margin-top:var(--sp-block)}
.sigma-blog-category .b-pager-link{color:var(--gold);font-size:13.5px;text-decoration:none}
.sigma-blog-category .b-pager-nums{display:flex;gap:4px}
.sigma-blog-category .b-pager-num{display:inline-flex;min-width:36px;min-height:36px;align-items:center;justify-content:center;border-radius:var(--r-pill);color:var(--muted);font-size:13.5px;text-decoration:none}
.sigma-blog-category .b-pager-num.on{background:var(--text);color:#141210;font-weight:600}

.sigma-blog-article .hero,.sigma-blog-article .blog-article,.sigma-blog-article .faq,.sigma-blog-article .related{width:100%;max-width:var(--sigma-layout-measure);margin-inline:auto}
.sigma-blog-article .post-meta{margin-top:10px;color:var(--muted);font-size:13px}
.sigma-blog-article .blog-article{display:flow-root}
.sigma-blog-article .faq{max-width:var(--sigma-layout-measure)}
.sigma-blog-article .related{max-width:var(--sigma-layout-measure)}

@media(min-width:768px){
  .sigma-blog-index .b-featured{grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);gap:var(--sigma-layout-gap)}
  .sigma-blog-index .b-tree{display:none}
  .sigma-blog-index .b-desktop-cats{display:block}
  .sigma-blog-index .b-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sigma-layout-gap)}
  .sigma-blog-category .blog-category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sigma-layout-gap)}
}

@media(min-width:1024px){
  .sigma-blog-index .b-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sigma-blog-category .blog-category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media(min-width:1440px){
  .sigma-blog-index .b-grid,.sigma-blog-category .blog-category-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}

@media(hover:hover) and (pointer:fine){
  .sigma-blog-index .b-tab:not(.on):hover{border-color:#3a3630;color:var(--text)}
  .sigma-blog-index .b-card:hover,.sigma-blog-index .b-feat-main:hover,.sigma-blog-index .b-feat-mini:hover{border-color:var(--gold-dim)}
  .sigma-blog-category a.b-pager-num:hover{color:var(--text)}
}

@media(prefers-reduced-motion:reduce){
  .sigma-blog-index .b-tab,.sigma-blog-index .b-card,.sigma-blog-index .b-feat-main,.sigma-blog-index .b-feat-mini{transition:none}
}

/* From assets/sigma-layout.css; only selectors matching blog DOM, plus full blog-specific rules */
:root{
  --sigma-layout-wrap:1440px;
  --sigma-layout-gutter:clamp(20px,3vw,56px);
  /* M09: широкий шаг секции — именованное исключение уровня section,
     объявленное один раз в sigma.css (--rhythm-section-wide). */
  --sigma-layout-section:var(--rhythm-section-wide);
  /* M09 завёл семантического владельца кластерного зазора
     (--rhythm-cluster-grid в sigma.css). Здесь --sigma-layout-gap остаётся только
     историческим псевдонимом этого владельца: два независимых объявления
     одного и того же зазора и были доказанной дублированной policy.
     Базовое значение прежнего второго владельца ни одним живым правилом
     не потреблялось: все потребители --sigma-layout-gap живут в планшетном и
     десктопном режимах, где владелец и так даёт то же самое число.
     Замерено: ноль сдвинувшихся боксов на 12 маршрутах и 9 ширинах.
     Owner 03.09.2026: слить на владельца. */
  --sigma-layout-gap:var(--rhythm-cluster-grid);
  --sigma-layout-measure:min(72ch,720px);
}
/* From assets/sigma-components.css; only selectors matching blog DOM, plus full blog-specific rules */
.sigma-disclosure>summary{cursor:pointer}
.sigma-disclosure>summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--r-focus)}

@media(min-width:768px){
  [data-collection-tracks="page"]>*:nth-child(2n+1):last-child{grid-column:span 2;max-width:var(--measure)}
}

@media(min-width:1024px){
  [data-collection-tracks="page"]>*:nth-child(2n+1):last-child{grid-column:auto;max-width:none}
  [data-collection-tracks="page"]>*:nth-child(3n+1):last-child{grid-column:span 2;max-width:var(--measure)}
}

@media(min-width:1440px){
  [data-collection-tracks="page"]>*:nth-child(2n+1):last-child,
  [data-collection-tracks="page"]>*:nth-child(3n+1):last-child{grid-column:auto;max-width:none}
  [data-collection-tracks="page"]>*:nth-child(4n+1):last-child,
  [data-collection-tracks="page"]>*:nth-child(4n+1):nth-last-child(2),
  [data-collection-tracks="page"]>*:nth-child(4n+2):last-child{grid-column:span 2;max-width:var(--measure)}
}

/* From assets/sigma-routes.css; only selectors matching blog DOM, plus full blog-specific rules */
