/* ============================================================
   ВАТРА — общие стили для всех страниц

   ДВЕ ТЕМЫ. Все цвета вынесены в переменные, поэтому переключение
   сводится к смене data-theme на <html>:
     data-theme="dark"  — тёмно-синяя, бирюзовый неон (по умолчанию)
     data-theme="light" — белая, голубой акцент
   Пары *-rgb нужны для полупрозрачных цветов rgb(var(--x) / .5)
============================================================ */

:root,
:root[data-theme="dark"] {
  --c-bg: #0a192f;            --c-bg-rgb: 10 25 47;
  --c-surface: #112240;       --c-surface-rgb: 17 34 64;
  --c-surface-2: #0d1c36;
  --c-accent: #64ffda;        --c-accent-rgb: 100 255 218;
  --c-accent-2: #007bff;
  --c-heading: #ccd6f6;
  --c-body: #a8b2d1;
  --c-muted: #8892b0;         --c-muted-rgb: 136 146 176;
  --c-shadow-rgb: 2 12 27;
  --c-scroll: #1d3a63;
  --c-footer: #060f20;
  --c-hero-tint: 30 80 160;   /* синий подсвет в градиентах */
  --c-glow: 1;                /* множитель яркости свечений */
}

:root[data-theme="light"] {
  --c-bg: #ffffff;            --c-bg-rgb: 255 255 255;
  --c-surface: #f2f7fd;       --c-surface-rgb: 242 247 253;
  --c-surface-2: #e8f1fb;
  --c-accent: #0277bd;        --c-accent-rgb: 2 119 189;   /* голубой */
  --c-accent-2: #29b6f6;
  --c-heading: #0f2544;
  --c-body: #3d4d66;
  --c-muted: #55677f;         --c-muted-rgb: 85 103 127;
  --c-shadow-rgb: 15 37 68;
  --c-scroll: #b9d4ec;
  --c-footer: #eaf3fc;
  --c-hero-tint: 41 182 246;
  --c-glow: .55;
}

/* ============ БАЗА ============ */
html { background: var(--c-bg); }
body {
  background: var(--c-bg);
  color: var(--c-heading);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
::selection { background: var(--c-accent); color: var(--c-bg); }

::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: var(--c-bg); }
::-webkit-scrollbar-thumb { background: var(--c-scroll); border-radius: 8px; }
::-webkit-scrollbar-thumb:hover { background: var(--c-accent); }

/* ============================================================
   ФИРМЕННЫЙ ЗНАК ВАТРА (зубры + электроды, оригинал с vatra.by)
============================================================ */
.logo-lockup {
  display: inline-flex; align-items: center; gap: .85rem;
  text-decoration: none;
}
.logo-mark {
  height: 40px; width: auto; flex-shrink: 0;
  /* герб белый — на тёмном фоне даём ему еле заметное неоновое свечение */
  filter: drop-shadow(0 0 6px rgb(var(--c-accent-rgb) / .18));
  transition: filter .5s cubic-bezier(.22,1,.36,1), transform .5s cubic-bezier(.22,1,.36,1);
  will-change: filter, transform;
}
.logo-lockup:hover .logo-mark {
  filter: drop-shadow(0 0 14px rgb(var(--c-accent-rgb) / .65));
  transform: translateY(-2px);
}
/* Тонкая неоновая черта отделяет знак от названия */
.logo-divider {
  width: 1px; height: 30px; flex-shrink: 0;
  background: linear-gradient(180deg, transparent, rgb(var(--c-accent-rgb) / .55), transparent);
}
.logo-text { display: flex; flex-direction: column; line-height: 1.1; }
.logo-name {
  font-size: 1.25rem; font-weight: 800; letter-spacing: .3em;
  color: var(--c-heading); transition: color .35s;
}
.logo-lockup:hover .logo-name { color: var(--c-accent); }
.logo-tagline {
  font-size: .5rem; letter-spacing: .19em; text-transform: uppercase;
  color: var(--c-muted); margin-top: .28rem; white-space: nowrap;
}
@media (max-width: 420px) {
  .logo-mark { height: 32px; }
  .logo-name { font-size: 1.05rem; letter-spacing: .22em; }
  .logo-tagline { display: none; }
  .logo-divider { display: none; }
}

/* Полный логотип с фирменным слоганом — в подвале */
.logo-full { height: 92px; width: auto; opacity: .9; transition: opacity .4s, filter .4s; }
.logo-full:hover { opacity: 1; filter: drop-shadow(0 0 16px rgb(var(--c-accent-rgb) / .35)); }

/* Логотип завода белый — на светлой теме показываем тёмный вариант.
   Обе версии лежат в разметке, лишняя скрывается. */
.logo-light { display: none; }
:root[data-theme="light"] .logo-dark  { display: none; }
:root[data-theme="light"] .logo-light { display: block; }
:root[data-theme="light"] .logo-mark,
:root[data-theme="light"] .pre-mark { filter: none; }
:root[data-theme="light"] .logo-lockup:hover .logo-mark {
  filter: drop-shadow(0 0 10px rgb(var(--c-accent-rgb) / .45));
}

/* ============ ПЕРЕКЛЮЧАТЕЛЬ ТЕМЫ ============ */
.theme-toggle {
  position: relative; flex-shrink: 0;
  width: 2.6rem; height: 2.6rem; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid rgb(var(--c-muted-rgb) / .35);
  color: var(--c-muted); background: transparent;
  cursor: pointer;
  transition: color .3s, border-color .3s, box-shadow .3s, transform .3s;
}
.theme-toggle:hover {
  color: var(--c-accent); border-color: var(--c-accent);
  box-shadow: 0 0 18px rgb(var(--c-accent-rgb) / calc(.3 * var(--c-glow)));
  transform: rotate(-15deg);
}
.theme-toggle svg { width: 1.1rem; height: 1.1rem; transition: opacity .35s, transform .45s; }
/* В тёмной теме предлагаем солнце (переход на светлую), в светлой — луну */
.theme-toggle .icon-sun  { position: absolute; opacity: 1; transform: none; }
.theme-toggle .icon-moon { position: absolute; opacity: 0; transform: scale(.5) rotate(-90deg); }
:root[data-theme="light"] .theme-toggle .icon-sun  { opacity: 0; transform: scale(.5) rotate(90deg); }
:root[data-theme="light"] .theme-toggle .icon-moon { opacity: 1; transform: none; }
/* В мобильном меню кнопка крупнее — палец должен попадать */
.theme-toggle-mobile { width: 3.2rem; height: 3.2rem; margin-top: .8rem; }
.theme-toggle-mobile svg { width: 1.35rem; height: 1.35rem; }

/* ============ ПРЕЛОАДЕР С ЛОГОТИПОМ ============ */
#preloader {
  position: fixed; inset: 0; z-index: 100;
  background: var(--c-bg);
  display: flex; align-items: center; justify-content: center;
}
.preloader-inner { display: flex; flex-direction: column; align-items: center; gap: 1.5rem; }
.pre-mark {
  height: 88px; width: auto;
  animation: preMarkIn .9s cubic-bezier(.22,1,.36,1) both, preMarkGlow 2.2s ease-in-out .9s infinite;
}
@keyframes preMarkIn {
  from { opacity: 0; transform: translateY(14px) scale(.94); }
  to   { opacity: 1; transform: none; }
}
@keyframes preMarkGlow {
  0%, 100% { filter: drop-shadow(0 0 6px rgb(var(--c-accent-rgb) / .2)); }
  50%      { filter: drop-shadow(0 0 20px rgb(var(--c-accent-rgb) / .75)); }
}
/* «Сварочный шов», который заваривается под гербом */
.pre-bar {
  width: 190px; height: 2px; border-radius: 2px;
  background: rgb(var(--c-muted-rgb) / .2); overflow: hidden; position: relative;
}
.pre-bar span {
  position: absolute; inset: 0; display: block;
  background: linear-gradient(90deg, transparent, var(--c-accent), transparent);
  transform: translateX(-100%);
  animation: preWeld 1.35s cubic-bezier(.5,0,.5,1) infinite;
  box-shadow: 0 0 12px rgb(var(--c-accent-rgb) / .8);
}
@keyframes preWeld {
  to { transform: translateX(100%); }
}
.pre-caption {
  font-size: .58rem; letter-spacing: .3em; text-transform: uppercase;
  color: var(--c-muted);
}

/* ============ КНОПКИ ============ */
.btn-neon {
  position: relative;
  border: 1px solid var(--c-accent); color: var(--c-accent);
  transition: color .35s ease, box-shadow .35s ease;
  overflow: hidden; z-index: 1;
}
.btn-neon::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: var(--c-accent);
  transform: scaleX(0); transform-origin: left;
  transition: transform .4s cubic-bezier(.65,0,.35,1);
}
.btn-neon:hover { color: var(--c-bg); box-shadow: 0 0 32px rgb(var(--c-accent-rgb) / .35); }
.btn-neon:hover::before { transform: scaleX(1); }

.btn-ghost {
  border: 1px solid rgb(var(--c-muted-rgb) / .4); color: var(--c-heading);
  transition: border-color .35s, box-shadow .35s, transform .2s;
}
.btn-ghost:hover { border-color: var(--c-accent); box-shadow: 0 0 24px rgb(var(--c-accent-rgb) / .15); }

/* ============ НАВБАР ============ */
#navbar { transition: background .4s, backdrop-filter .4s, box-shadow .4s, transform .4s; }
#navbar.scrolled {
  background: rgb(var(--c-bg-rgb) / .82);
  backdrop-filter: blur(14px);
  box-shadow: 0 10px 30px -10px rgb(var(--c-shadow-rgb) / .7);
}
.nav-link { position: relative; }
.nav-link::after {
  content: ''; position: absolute; left: 0; bottom: -4px;
  width: 100%; height: 1px; background: var(--c-accent);
  transform: scaleX(0); transform-origin: right;
  transition: transform .35s cubic-bezier(.65,0,.35,1);
}
.nav-link:hover::after,
.nav-link.active::after { transform: scaleX(1); transform-origin: left; }
.nav-link.active { color: var(--c-accent); }

/* ============================================================
   КОНТАКТЫ В ШАПКЕ
   Телефон и мессенджеры видны на каждой странице и на каждом
   экране — до них не нужно скроллить.
============================================================ */
.nav-contacts { display: inline-flex; align-items: center; gap: .85rem; }
.nav-divider {
  width: 1px; height: 28px; flex-shrink: 0;
  background: linear-gradient(180deg, transparent, rgb(var(--c-muted-rgb) / .35), transparent);
}
.nav-phone { display: inline-flex; align-items: center; gap: .55rem; text-decoration: none; }
.nav-phone .nav-phone-ico {
  width: 2.05rem; height: 2.05rem; border-radius: .6rem; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid rgb(var(--c-accent-rgb) / .28);
  background: rgb(var(--c-accent-rgb) / .07);
  color: var(--c-accent);
  transition: background .3s, box-shadow .3s;
}
.nav-phone:hover .nav-phone-ico {
  background: rgb(var(--c-accent-rgb) / .16);
  box-shadow: 0 0 18px rgb(var(--c-accent-rgb) / calc(.28 * var(--c-glow)));
}
.nav-phone b {
  display: block; font-size: .92rem; font-weight: 800; line-height: 1.1;
  color: var(--c-heading); white-space: nowrap; transition: color .3s;
}
.nav-phone i {
  display: block; font-style: normal; margin-top: .18rem;
  font-size: .5rem; letter-spacing: .17em; text-transform: uppercase;
  color: var(--c-muted); white-space: nowrap;
}
.nav-phone:hover b { color: var(--c-accent); }
.nav-chats { display: inline-flex; gap: .35rem; }
.nav-chat {
  width: 2.05rem; height: 2.05rem; border-radius: .6rem;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid rgb(var(--c-muted-rgb) / .28);
  color: var(--c-muted);
  transition: color .3s, background .3s, border-color .3s, transform .3s;
}
.nav-chat:hover {
  color: var(--c-bg); background: var(--c-accent);
  border-color: var(--c-accent); transform: translateY(-2px);
}
/* Пункты меню и номер никогда не переносятся на вторую строку */
#navbar nav { flex-wrap: nowrap; }
#navbar .nav-link { white-space: nowrap; }
/* До 1535px место в шапке кончается — ужимаем меню и снимаем подпись */
@media (max-width: 1535px) {
  #navbar { padding-left: 1.5rem; padding-right: 1.5rem; }
  #navbar nav { gap: 1rem; }
  #navbar nav .nav-link { font-size: .8rem; }
  .nav-phone i { display: none; }
  .nav-phone b { font-size: .84rem; }
  .nav-contacts { gap: .5rem; }
  .nav-divider { display: none; }
  .nav-chat, .nav-phone .nav-phone-ico { width: 1.9rem; height: 1.9rem; }
}
/* Совсем узкий десктоп: оставляем только герб — текст логотипа съедает
   место, которого не хватает пунктам меню */
@media (max-width: 1215px) {
  .logo-text, .logo-divider { display: none; }
  #navbar nav { gap: .8rem; }
  #navbar nav .nav-link { font-size: .76rem; }
}

/* Кнопка «позвонить» рядом с бургером — на телефоне звонок в один тап */
.mob-actions { display: flex; align-items: center; gap: .55rem; }
/* Тап-таргеты не меньше 44px — иначе в кнопку сложно попасть пальцем */
#burger { min-width: 44px; min-height: 44px; align-items: center; justify-content: center; }
.nav-call {
  width: 2.75rem; height: 2.75rem; border-radius: .7rem;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid rgb(var(--c-accent-rgb) / .35);
  background: rgb(var(--c-accent-rgb) / .08);
  color: var(--c-accent);
}

/* Мобильное меню */
#burger { display: none; }
@media (max-width: 1023px) {
  #burger { display: flex; }
}
#mobileMenu {
  position: fixed; inset: 0; z-index: 60;
  background: rgb(var(--c-bg-rgb) / .98);
  backdrop-filter: blur(18px);
  display: flex; flex-direction: column;
  padding: 5.5rem 1.5rem 2rem;
  opacity: 0; pointer-events: none;
  transition: opacity .35s ease;
  overflow-y: auto; overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}
#mobileMenu.open { opacity: 1; pointer-events: auto; }
/* Крестик: без него меню закрывалось только переходом по ссылке */
.m-close {
  position: absolute; top: 1.05rem; right: 1.25rem;
  width: 2.9rem; height: 2.9rem; border-radius: .8rem;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid rgb(var(--c-muted-rgb) / .3);
  color: var(--c-heading); background: transparent;
}
.m-close:active { background: rgb(var(--c-accent-rgb) / .1); }
.m-link {
  display: flex; align-items: center; justify-content: space-between;
  padding: .95rem .15rem; font-size: 1.15rem; font-weight: 700;
  color: var(--c-heading);
  border-bottom: 1px solid rgb(var(--c-muted-rgb) / .14);
  transition: color .3s;
}
.m-link::after { content: '→'; font-size: .85rem; color: var(--c-accent); opacity: .4; }
.m-link.active { color: var(--c-accent); }
.m-link.active::after { opacity: 1; }
/* Контакты внизу меню — «липнут» к нижнему краю экрана */
.m-contacts { margin-top: auto; padding-top: 1.75rem; }
.m-phone { display: block; text-decoration: none; }
.m-phone b { font-size: 1.5rem; font-weight: 800; color: var(--c-heading); letter-spacing: .01em; }
.m-phone span {
  display: block; margin-top: .3rem;
  font-size: .55rem; letter-spacing: .18em; text-transform: uppercase; color: var(--c-muted);
}
.m-chats { display: grid; grid-template-columns: repeat(3, 1fr); gap: .55rem; margin-top: 1.1rem; }
.m-chat {
  display: flex; align-items: center; justify-content: center; gap: .4rem;
  height: 3rem; border-radius: .8rem;
  border: 1px solid rgb(var(--c-accent-rgb) / .3);
  background: rgb(var(--c-accent-rgb) / .07);
  color: var(--c-accent);
  font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
}
.m-chat:active { background: rgb(var(--c-accent-rgb) / .18); }
.m-menu-theme {
  display: flex; align-items: center; gap: .75rem;
  margin-top: 1.25rem; font-size: .7rem; letter-spacing: .14em;
  text-transform: uppercase; color: var(--c-muted);
}
/* Низкие экраны в альбомной ориентации: меню прокручивается, а не режется */
@media (max-height: 620px) {
  #mobileMenu { padding-top: 4.5rem; }
  .m-link { padding: .7rem .15rem; font-size: 1rem; }
  .m-phone b { font-size: 1.25rem; }
}

/* ============ ЗАГОЛОВКИ СЕКЦИЙ ============ */
.section-num { color: var(--c-accent); font-size: .8em; margin-right: .5rem; font-weight: 500; }

/* Хиро внутренних страниц */
.page-hero {
  position: relative;
  padding: 11rem 0 6rem;
  background:
    radial-gradient(ellipse 60% 50% at 75% 20%, rgb(var(--c-accent-rgb) / .07), transparent 60%),
    radial-gradient(ellipse 50% 60% at 15% 90%, rgb(var(--c-hero-tint) / .22), transparent 65%);
}
.breadcrumbs { font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); }
.breadcrumbs a { color: var(--c-muted); transition: color .3s; }
.breadcrumbs a:hover { color: var(--c-accent); }
.breadcrumbs .sep { margin: 0 .5rem; color: var(--c-accent); }

/* ============ ПОЯВЛЕНИЕ ПРИ СКРОЛЛЕ ============
   Текст НЕ прячем прозрачностью: если анимация не доиграет (фоновая
   вкладка, экономия батареи, притормозивший rAF), контент останется
   невидимым. Двигаем только по вертикали — в худшем случае блок просто
   стоит на 26px ниже, но читается. */
.reveal { transform: translateY(26px); will-change: transform; }

/* SplitText-эффект */
.split-line { display: inline-block; overflow: hidden; vertical-align: top; }
.split-word { display: inline-block; transform: translateY(110%); will-change: transform; }

/* ============ КАРТОЧКИ ============ */
.adv-card {
  position: relative;
  background: linear-gradient(160deg, var(--c-surface), var(--c-surface-2));
  border: 1px solid rgb(var(--c-accent-rgb) / .08);
  border-radius: 1rem;
  transition: transform .45s cubic-bezier(.22,1,.36,1), border-color .45s, box-shadow .45s;
  will-change: transform;
}
.adv-card::before {
  content: ''; position: absolute; inset: -1px; border-radius: 1rem;
  background: linear-gradient(140deg, rgb(var(--c-accent-rgb) / .5), transparent 40%, transparent 60%, rgb(var(--c-accent-rgb) / .35));
  opacity: 0; transition: opacity .45s;
  z-index: -1; filter: blur(6px);
}
.adv-card:hover {
  transform: translateY(-10px);
  border-color: rgb(var(--c-accent-rgb) / .45);
  box-shadow: 0 24px 48px -18px rgb(var(--c-shadow-rgb) / .8);
}
.adv-card:hover::before { opacity: 1; }
.adv-card:hover .adv-icon { transform: scale(1.12) rotate(-6deg); color: var(--c-accent); }
.adv-icon { transition: transform .45s cubic-bezier(.34,1.56,.64,1), color .45s; will-change: transform; }

.product-card {
  background: var(--c-surface);
  border: 1px solid rgb(var(--c-accent-rgb) / .1);
  border-radius: 1.25rem;
  overflow: hidden;
  transition: border-color .4s, box-shadow .4s, transform .4s, opacity .4s;
}
.product-card:hover {
  border-color: rgb(var(--c-accent-rgb) / .5);
  box-shadow: 0 20px 60px -20px rgb(var(--c-accent-rgb) / .18);
}
.product-card img {
  transition: transform .8s cubic-bezier(.22,1,.36,1);
  will-change: transform;
}
.product-card:hover img { transform: scale(1.08); }

/* Стеклянная панель */
.glass {
  background: rgb(var(--c-surface-rgb) / .55);
  border: 1px solid rgb(var(--c-accent-rgb) / .12);
  backdrop-filter: blur(12px);
  border-radius: 1rem;
}

/* ============ ФИЛЬТРЫ КАТАЛОГА ============ */
.chip {
  padding: .55rem 1.2rem; border-radius: 999px;
  border: 1px solid rgb(var(--c-muted-rgb) / .35);
  color: var(--c-muted); font-size: .8rem; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase;
  cursor: pointer; transition: all .3s;
  background: transparent;
}
.chip:hover { border-color: var(--c-accent); color: var(--c-accent); }
.chip.active {
  background: var(--c-accent); border-color: var(--c-accent); color: var(--c-bg);
  box-shadow: 0 0 22px rgb(var(--c-accent-rgb) / .35);
}

/* ============ ТАБЛИЦЫ (цены, характеристики) ============ */
.data-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.data-table th {
  text-align: left; padding: .9rem 1rem;
  color: var(--c-accent); font-size: .72rem; letter-spacing: .16em; text-transform: uppercase;
  border-bottom: 1px solid rgb(var(--c-accent-rgb) / .25);
  white-space: nowrap;
}
.data-table td {
  padding: .9rem 1rem; color: var(--c-heading);
  border-bottom: 1px solid rgb(var(--c-muted-rgb) / .14);
}
.data-table tbody tr { transition: background .25s, box-shadow .25s; }
.data-table tbody tr:hover {
  background: rgb(var(--c-accent-rgb) / .06);
  box-shadow: inset 3px 0 0 var(--c-accent);
}

/* ============ ТАЙМЛАЙН (о компании) ============ */
.timeline { position: relative; padding-left: 2.5rem; }
.timeline::before {
  content: ''; position: absolute; left: .55rem; top: 0; bottom: 0;
  width: 2px; background: linear-gradient(180deg, var(--c-accent), rgb(var(--c-accent-rgb) / .05));
}
.timeline-item { position: relative; padding-bottom: 2.8rem; }
.timeline-item::before {
  content: ''; position: absolute; left: -2.5rem; top: .3rem;
  width: 1.2rem; height: 1.2rem; border-radius: 50%;
  background: var(--c-bg); border: 2px solid var(--c-accent);
  box-shadow: 0 0 14px rgb(var(--c-accent-rgb) / .6);
}
.timeline-year { color: var(--c-accent); font-weight: 800; font-size: 1.15rem; }

/* ============ FAQ ============ */
.faq-item { border-bottom: 1px solid rgb(var(--c-muted-rgb) / .18); }
.faq-answer { height: 0; overflow: hidden; transition: height .55s cubic-bezier(.65,0,.35,1); }
.faq-icon { transition: transform .45s cubic-bezier(.65,0,.35,1); }
.faq-item.open .faq-icon { transform: rotate(45deg); color: var(--c-accent); }
.faq-item.open .faq-q { color: var(--c-accent); }
.faq-q { transition: color .3s; }

/* ============ ФОРМЫ ============ */
.field { position: relative; }
.field input, .field textarea {
  width: 100%; background: transparent;
  border: 1px solid rgb(var(--c-muted-rgb) / .35);
  border-radius: .6rem;
  padding: 1.05rem 1rem .55rem;
  color: var(--c-heading); outline: none;
  transition: border-color .3s, box-shadow .3s;
}
.field input:focus, .field textarea:focus {
  border-color: var(--c-accent);
  box-shadow: 0 0 0 3px rgb(var(--c-accent-rgb) / .12);
}
.field label {
  position: absolute; left: 1rem; top: .85rem;
  color: var(--c-muted); pointer-events: none;
  transition: all .28s cubic-bezier(.65,0,.35,1);
}
.field input:focus + label,
.field input:not(:placeholder-shown) + label,
.field textarea:focus + label,
.field textarea:not(:placeholder-shown) + label {
  top: .28rem; font-size: .68rem; color: var(--c-accent); letter-spacing: .05em;
}

/* Кастомный чекбокс согласия */
.check-label { display: flex; align-items: flex-start; gap: .7rem; cursor: pointer; }
.check-label input { position: absolute; opacity: 0; }
.check-box {
  width: 1.15rem; height: 1.15rem; border-radius: .3rem; flex-shrink: 0; margin-top: .1rem;
  border: 1px solid rgb(var(--c-muted-rgb) / .5);
  display: flex; align-items: center; justify-content: center;
  transition: all .25s; color: transparent; font-size: .7rem;
}
.check-label input:checked + .check-box {
  background: var(--c-accent); border-color: var(--c-accent); color: var(--c-bg);
  box-shadow: 0 0 12px rgb(var(--c-accent-rgb) / .4);
}

.submit-btn { position: relative; overflow: hidden; min-height: 3.25rem; }
.submit-btn .label-default, .submit-btn .label-success {
  display: flex; align-items: center; justify-content: center; gap: .5rem;
  position: absolute; inset: 0;
  transition: transform .5s cubic-bezier(.65,0,.35,1), opacity .4s;
}
.submit-btn .label-success { transform: translateY(110%); }
.submit-btn.sent .label-default { transform: translateY(-110%); opacity: 0; }
.submit-btn.sent .label-success { transform: translateY(0); }
.submit-btn.sent { background: var(--c-accent) !important; border-color: var(--c-accent); }

/* ============ МАГНИТНЫЕ КНОПКИ ============ */
.magnetic {
  display: inline-flex; align-items: center; justify-content: center;
  width: 3rem; height: 3rem; border-radius: 50%;
  border: 1px solid rgb(var(--c-muted-rgb) / .35); color: var(--c-muted);
  transition: border-color .3s, color .3s, box-shadow .3s;
  will-change: transform;
}
.magnetic:hover {
  border-color: var(--c-accent); color: var(--c-accent);
  box-shadow: 0 0 20px rgb(var(--c-accent-rgb) / .25);
}

/* ============================================================
   ПЕРВЫЙ ЭКРАН: индикатор «на связи»
   Телефон и мессенджеры живут в шапке (.nav-contacts) — здесь
   остаётся только обещание по срокам ответа.
============================================================ */
.hero-status {
  display: inline-flex; align-items: center; gap: .5rem;
  font-size: .72rem; color: var(--c-muted);
}
.hero-status i {
  width: .5rem; height: .5rem; border-radius: 50%;
  background: var(--c-accent); position: relative; flex-shrink: 0;
}
.hero-status i::after {
  content: ''; position: absolute; inset: 0; border-radius: 50%;
  background: var(--c-accent); animation: statusPing 2s ease-out infinite;
}
@keyframes statusPing {
  0% { transform: scale(1); opacity: .8; }
  100% { transform: scale(3); opacity: 0; }
}

/* ============================================================
   СПЕЦ-СЕТКА ПРЕИМУЩЕСТВ
   Вместо шести залитых карточек — чертёжная сетка на волосяных
   линиях: заливки нет, поэтому блок не спорит с остальной
   страницей, а читается как спецификация завода.
   Линии рисует сам grid: gap в 1px показывает фон контейнера.
============================================================ */
.spec-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: rgb(var(--c-muted-rgb) / .18);
  border: 1px solid rgb(var(--c-muted-rgb) / .18);
  border-radius: 1.25rem;
  overflow: hidden;
}
.spec-item {
  position: relative;
  background: var(--c-bg);
  padding: 2.1rem 1.9rem 2.2rem;
  transition: background .4s ease;
}
/* Неоновая черта наверху карточки — «зажигается» при наведении */
.spec-item::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, var(--c-accent), rgb(var(--c-accent-rgb) / 0));
  transform: scaleX(0); transform-origin: left;
  transition: transform .5s cubic-bezier(.22,1,.36,1);
}
.spec-item:hover { background: rgb(var(--c-accent-rgb) / .05); }
.spec-item:hover::before { transform: scaleX(1); }
.spec-top {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 1.4rem;
}
.spec-glyph { color: var(--c-muted); transition: color .4s, transform .5s cubic-bezier(.34,1.56,.64,1); }
.spec-item:hover .spec-glyph { color: var(--c-accent); transform: translateY(-2px); }
.spec-num {
  font-size: .66rem; font-weight: 700; letter-spacing: .2em;
  color: rgb(var(--c-muted-rgb) / .55); transition: color .4s;
}
.spec-item:hover .spec-num { color: var(--c-accent); }
.spec-title { font-size: 1.05rem; font-weight: 700; color: var(--c-heading); margin-bottom: .55rem; }
.spec-text { font-size: .85rem; line-height: 1.65; color: var(--c-muted); }
/* Факт — не «стикер», а строка спецификации с акцентным штрихом */
.spec-fact {
  display: inline-flex; align-items: center; gap: .55rem;
  margin-top: 1.25rem;
  font-size: .62rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase;
  color: var(--c-accent);
}
.spec-fact::before {
  content: ''; width: 1.15rem; height: 1px;
  background: currentColor; opacity: .55; flex-shrink: 0;
}
@media (max-width: 1023px) {
  .spec-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .spec-item { padding: 1.8rem 1.5rem 1.9rem; }
}
@media (max-width: 639px) {
  .spec-grid { grid-template-columns: 1fr; border-radius: 1rem; }
  .spec-item { padding: 1.5rem 1.25rem 1.65rem; }
  .spec-top { margin-bottom: 1.1rem; }
  .spec-fact { margin-top: 1rem; }
}

/* ============ КАРТОЧКИ ПРЕИМУЩЕСТВ: ФАКТ + ИКОНКА ============ */
.adv-icon-box {
  width: 3rem; height: 3rem; border-radius: .85rem;
  display: flex; align-items: center; justify-content: center;
  background: rgb(var(--c-accent-rgb) / .1);
  border: 1px solid rgb(var(--c-accent-rgb) / .2);
  color: var(--c-accent);
  transition: transform .45s cubic-bezier(.34,1.56,.64,1), background .45s;
  flex-shrink: 0;
}
.adv-card:hover .adv-icon-box { transform: scale(1.08) rotate(-5deg); background: rgb(var(--c-accent-rgb) / .18); }
.adv-fact {
  display: inline-block; margin-top: 1rem; padding: .3rem .7rem;
  border-radius: 999px; font-size: .68rem; font-weight: 700;
  letter-spacing: .07em; text-transform: uppercase;
  background: rgb(var(--c-accent-rgb) / .12); color: var(--c-accent);
}

/* ============================================================
   КАРТОЧКА МАРКИ ЭЛЕКТРОДА
   Каталог по маркам: карточка — это мини-паспорт позиции.
   Логика та же, что у .spec-grid: никаких заливок, работают
   типографика, волосяные линии и один акцент.
============================================================ */
.mark-toolbar {
  display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem;
  margin-bottom: 1.5rem;
}
.mark-search {
  position: relative; flex: 1 1 260px; max-width: 22rem;
  display: flex; align-items: center;
}
.mark-search svg {
  position: absolute; left: .9rem; color: var(--c-muted); pointer-events: none;
}
.mark-search input {
  width: 100%; padding: .7rem 1rem .7rem 2.6rem;
  border: 1px solid rgb(var(--c-muted-rgb) / .3);
  border-radius: 999px; background: transparent;
  color: var(--c-heading); font-size: .85rem; outline: none;
  transition: border-color .3s, box-shadow .3s;
}
.mark-search input::placeholder { color: rgb(var(--c-muted-rgb) / .8); }
.mark-search input:focus {
  border-color: var(--c-accent);
  box-shadow: 0 0 0 3px rgb(var(--c-accent-rgb) / .12);
}
.mark-count { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); }
.mark-count b { color: var(--c-accent); font-weight: 700; }

.mark-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr));
  gap: 1rem;
}
.mark-card {
  --card-bg-rgb: var(--c-surface-rgb);
  position: relative; display: flex; flex-direction: column;
  border: 1px solid rgb(var(--c-muted-rgb) / .2);
  border-radius: 1rem;
  background: rgb(var(--card-bg-rgb));
  overflow: hidden;
  transition: border-color .4s, transform .4s cubic-bezier(.22,1,.36,1), box-shadow .4s;
}
.mark-card:hover {
  border-color: rgb(var(--c-accent-rgb) / .45);
  transform: translateY(-4px);
  box-shadow: 0 22px 44px -26px rgb(var(--c-shadow-rgb) / .75);
}

/* ---- Фотография упаковки ----
   Кадр растворяется в карточке: снизу лежит градиент до цвета подложки,
   поэтому жёсткой границы «фото / текст» не видно, а марка читается
   поверх снимка. Цвет подложки берём переменной — темы разные. */
.mark-media {
  position: relative; aspect-ratio: 16 / 10; overflow: hidden;
  background: rgb(var(--c-muted-rgb) / .08);
}
.mark-media img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  transition: transform .8s cubic-bezier(.22,1,.36,1);
}
/* Абразив снят на белом и вырезан по контуру: круг лежит на подложке
   карточки, под ним — мягкое пятно света вместо белого прямоугольника. */
.mark-media.is-object {
  background:
    radial-gradient(circle at 50% 46%, rgb(var(--c-accent-rgb) / calc(.14 * var(--c-glow))), transparent 62%),
    rgb(var(--c-muted-rgb) / .06);
}
.mark-media.is-object img { object-fit: contain; padding: .7rem .7rem 1.6rem; }
.mark-card:hover .mark-media img { transform: scale(1.06); }
.mark-media::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg,
    rgb(var(--card-bg-rgb) / .1) 0%,
    rgb(var(--card-bg-rgb) / .05) 30%,
    rgb(var(--card-bg-rgb) / .72) 68%,
    rgb(var(--card-bg-rgb)) 100%);
}

.mark-group {
  position: absolute; top: .7rem; left: .75rem; z-index: 2;
  display: inline-flex; align-items: center; gap: .4rem; max-width: calc(100% - 5rem);
  padding: .3rem .55rem; border-radius: 999px;
  background: rgb(var(--card-bg-rgb) / .8);
  border: 1px solid rgb(var(--c-muted-rgb) / .22);
  backdrop-filter: blur(6px);
  font-size: .52rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase;
  color: var(--c-heading);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
/* Значок группы металла — по нему сетка читается взглядом, без чтения подписи */
.mark-glyph { flex-shrink: 0; color: var(--c-accent); }
.mark-badge {
  position: absolute; top: .7rem; right: .75rem; z-index: 2;
  padding: .3rem .55rem; border-radius: 999px;
  font-size: .52rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
  color: var(--c-bg); background: var(--c-accent);
  box-shadow: 0 4px 14px -4px rgb(var(--c-accent-rgb) / .6);
}
.mark-name {
  position: absolute; left: 1.3rem; right: 1.3rem; bottom: .55rem; z-index: 2;
  font-size: 1.45rem; font-weight: 800; line-height: 1.1;
  color: var(--c-heading); letter-spacing: -.01em;
  transition: color .35s, transform .45s cubic-bezier(.22,1,.36,1);
}
.mark-card:hover .mark-name { color: var(--c-accent); transform: translateY(-2px); }

.mark-body { display: flex; flex-direction: column; flex: 1; padding: .35rem 1.3rem 1.3rem; }
.mark-lead { font-size: .8rem; line-height: 1.6; color: var(--c-muted); }

.mark-spec { margin-top: 1rem; }
.mark-spec > div {
  display: flex; align-items: baseline; justify-content: space-between; gap: .75rem;
  padding: .5rem 0;
  border-top: 1px solid rgb(var(--c-muted-rgb) / .14);
}
.mark-spec dt {
  font-size: .58rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--c-muted); white-space: nowrap;
}
.mark-spec dd { font-size: .78rem; font-weight: 600; color: var(--c-heading); text-align: right; }

.mark-actions { display: flex; gap: .5rem; margin-top: 1.15rem; }
.mark-btn {
  flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: .45rem;
  min-height: 2.6rem; border-radius: .6rem;
  border: 1px solid rgb(var(--c-accent-rgb) / .45); color: var(--c-accent);
  font-size: .65rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  transition: color .35s, background .35s, box-shadow .35s;
}
.mark-btn:hover {
  background: var(--c-accent); color: var(--c-bg);
  box-shadow: 0 0 22px rgb(var(--c-accent-rgb) / calc(.35 * var(--c-glow)));
}
.mark-call {
  width: 2.6rem; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: .6rem; border: 1px solid rgb(var(--c-muted-rgb) / .3);
  color: var(--c-muted); transition: color .3s, border-color .3s;
}
.mark-call:hover { color: var(--c-accent); border-color: var(--c-accent); }

.mark-more-wrap { display: flex; justify-content: center; margin-top: 1.5rem; }
.mark-more {
  padding: .85rem 2rem; border-radius: .6rem;
  font-size: .68rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  min-height: 44px;
}

.mark-empty {
  display: none; padding: 2.5rem 1rem; text-align: center; color: var(--c-muted);
}
.mark-empty.is-visible { display: block; }
.mark-note { margin-top: 1.25rem; font-size: .7rem; line-height: 1.6; color: var(--c-muted); }

:root[data-theme="light"] .mark-card {
  --card-bg-rgb: var(--c-bg-rgb);
  box-shadow: 0 1px 3px -1px rgb(var(--c-shadow-rgb) / .1);
}
:root[data-theme="light"] .mark-card:hover {
  box-shadow: 0 18px 34px -22px rgb(var(--c-shadow-rgb) / .35);
}
@media (max-width: 480px) {
  .mark-grid { grid-template-columns: 1fr; }
  .mark-body { padding: .35rem 1.15rem 1.15rem; }
  .mark-name { left: 1.15rem; right: 1.15rem; }
}

/* ============ SVG-КАРТА ============ */
.map-route {
  fill: none; stroke: var(--c-accent); stroke-width: 1.6;
  stroke-linecap: round;
  filter: drop-shadow(0 0 6px rgb(var(--c-accent-rgb) / .7));
}
.map-dot { fill: var(--c-accent); filter: drop-shadow(0 0 8px var(--c-accent)); }
.map-dot-pulse { animation: dotPulse 2s ease-out infinite; transform-origin: center; transform-box: fill-box; }
@keyframes dotPulse {
  0% { opacity: .9; transform: scale(1); }
  100% { opacity: 0; transform: scale(3.2); }
}
.map-label { fill: var(--c-muted); font-size: 11px; font-family: Manrope, sans-serif; letter-spacing: .06em; }

/* ---- Интерактив карты: подсветка направления и «посылки» по маршруту ---- */
.map-country { cursor: pointer; transition: opacity .35s; }
#mapSvg.has-focus .map-country:not(.is-active) { opacity: .25; }
.map-parcel {
  fill: var(--c-accent);
  filter: drop-shadow(0 0 6px rgb(var(--c-accent-rgb) / calc(.9 * var(--c-glow))));
}
.map-dist {
  fill: var(--c-muted); font-size: 9px; font-family: Manrope, sans-serif;
  letter-spacing: .04em; opacity: 0; transition: opacity .3s;
}
.map-country.is-active .map-dist { opacity: 1; }
.map-country.is-active .map-label { fill: var(--c-accent); }
.map-country.is-active .map-route { stroke-width: 2.6; }

/* Легенда стран под картой — кликабельный список */
.map-legend { display: grid; gap: .35rem; }
.map-legend-item {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: .5rem .75rem; border-radius: .6rem;
  border: 1px solid transparent; cursor: pointer;
  transition: background .3s, border-color .3s, transform .3s;
}
.map-legend-item:hover, .map-legend-item.is-active {
  background: rgb(var(--c-accent-rgb) / .09);
  border-color: rgb(var(--c-accent-rgb) / .3);
  transform: translateX(3px);
}
.map-legend-item b { font-size: .88rem; font-weight: 700; color: var(--c-heading); }
.map-legend-item span { font-size: .72rem; color: var(--c-muted); white-space: nowrap; }
.map-legend-item .dot {
  width: .45rem; height: .45rem; border-radius: 50%;
  background: var(--c-accent); margin-right: .6rem; flex-shrink: 0;
}

/* ============ ПРОГРЕСС ЧТЕНИЯ (статьи) ============ */
#readProgress {
  position: fixed; top: 0; left: 0; height: 3px; width: 100%;
  z-index: 70; background: transparent; pointer-events: none;
}
#readProgress .bar {
  height: 100%; width: 0;
  background: linear-gradient(90deg, var(--c-accent), var(--c-accent-2));
  box-shadow: 0 0 12px rgb(var(--c-accent-rgb) / .7);
}

/* Типографика статьи */
.article-body p { color: var(--c-body); line-height: 1.85; margin-bottom: 1.4rem; }
.article-body h2 {
  color: var(--c-heading); font-weight: 800; font-size: 1.5rem;
  margin: 2.6rem 0 1.1rem;
}
.article-body ul { margin: 0 0 1.4rem 1.2rem; color: var(--c-body); line-height: 1.8; list-style: none; }
.article-body ul li { position: relative; padding-left: 1.4rem; margin-bottom: .5rem; }
.article-body ul li::before { content: '⟶'; position: absolute; left: 0; color: var(--c-accent); font-size: .8em; top: .25em; }
.article-body strong { color: var(--c-heading); }

/* ============ ГАЛЕРЕЯ ТОВАРА ============ */
.thumb {
  border: 1px solid rgb(var(--c-muted-rgb) / .3); border-radius: .6rem;
  overflow: hidden; cursor: pointer; transition: border-color .3s, box-shadow .3s;
  opacity: .55;
}
.thumb:hover { opacity: .85; }
.thumb.active { border-color: var(--c-accent); box-shadow: 0 0 16px rgb(var(--c-accent-rgb) / .3); opacity: 1; }

/* Подсказка к ленте каталога: на телефоне листают пальцем, а не скроллом */
.hint-touch { display: none; }
@media (max-width: 767px) {
  .hint-pointer { display: none; }
  .hint-touch { display: inline; }
}

/* ============ ИНДИКАТОР СКРОЛЛА ============ */
.scroll-hint { animation: hintFloat 2.2s ease-in-out infinite; }
@keyframes hintFloat {
  0%,100% { transform: translateY(0); opacity: .5; }
  50% { transform: translateY(10px); opacity: 1; }
}

/* ============================================================
   МОБИЛЬНАЯ ОПТИМИЗАЦИЯ
============================================================ */

/* Картинки никогда не ломают вёрстку и не тянут страницу вбок */
img { max-width: 100%; height: auto; }

/* Колонка grid по умолчанию не уже своего содержимого (min-width: auto).
   Из-за этого широкая таблица режимов сварки растягивала всю колонку —
   на телефоне у tovar.html и optovye-tseny.html часть текста уезжала
   за экран. Разрешаем колонкам сжиматься, прокрутку берёт на себя
   обёртка .overflow-x-auto вокруг таблицы. */
.grid > * { min-width: 0; }

/* 100vh на телефоне считается вместе с адресной строкой — первый экран
   вылезал за границы и «прыгал» при скролле. svh считает видимую часть. */
@supports (height: 100svh) {
  #hero { min-height: 100svh; }
}

@media (max-width: 767px) {
  /* Меньше вертикальных отступов — меньше «пустого» скролла на телефоне */
  .page-hero { padding: 8.5rem 0 3rem; }

  /* Тяжёлые эффекты выключаем: blur и большие тени дорого стоят на GPU */
  .glass { backdrop-filter: none; background: rgb(var(--c-surface-rgb) / .85); }
  #navbar.scrolled { backdrop-filter: blur(8px); }
  .adv-card::before { display: none; }
  .adv-card:hover { transform: none; }
  .map-dot-pulse { animation-duration: 3s; }

  /* Тап-таргеты не меньше 44px — требование Apple HIG и Material */
  .magnetic { width: 2.9rem; height: 2.9rem; }
  .chip { padding: .65rem 1.1rem; }
  .faq-toggle { min-height: 56px; }
  .btn-neon, .btn-ghost { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; }

  /* Поля формы: 16px, иначе iOS зумит страницу при фокусе */
  .field input, .field textarea { font-size: 16px; }

  /* Таблицы прокручиваются пальцем с инерцией */
  .data-table { font-size: .82rem; }
  .data-table th, .data-table td { padding: .7rem .6rem; }

  /* Горизонтальная лента каталога: свайп со «снапом» */
  #hWrapper { scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  #hWrapper::-webkit-scrollbar { display: none; }
  #hTrack { transform: none !important; }
}

/* Ландшафтная ориентация телефона: hero не должен занимать 100vh */
@media (max-height: 500px) and (orientation: landscape) {
  #hero { min-height: auto; padding: 6rem 0 3rem; }
}

/* ============================================================
   ДОНАСТРОЙКА СВЕТЛОЙ ТЕМЫ
   На белом фоне неоновые свечения и густые тени выглядят грязно —
   заменяем их на мягкие тени и аккуратные голубые границы.
============================================================ */
/* На белом голубая заливка карточек выглядела «наклейкой» —
   оставляем белый фон и волосяную рамку. */
:root[data-theme="light"] .adv-card {
  background: var(--c-bg);
  border-color: rgb(var(--c-muted-rgb) / .22);
  box-shadow: none;
}
:root[data-theme="light"] .spec-grid {
  background: rgb(var(--c-muted-rgb) / .22);
  border-color: rgb(var(--c-muted-rgb) / .22);
}
:root[data-theme="light"] .spec-item:hover { background: rgb(var(--c-accent-rgb) / .045); }
:root[data-theme="light"] .adv-card:hover {
  border-color: rgb(var(--c-accent-rgb) / .5);
  box-shadow: 0 20px 38px -20px rgb(var(--c-shadow-rgb) / .3);
}
:root[data-theme="light"] .adv-card::before { display: none; }

:root[data-theme="light"] .product-card {
  border-color: rgb(var(--c-accent-rgb) / .14);
  box-shadow: 0 2px 10px -4px rgb(var(--c-shadow-rgb) / .12);
}
:root[data-theme="light"] .product-card:hover {
  border-color: rgb(var(--c-accent-rgb) / .5);
  box-shadow: 0 20px 44px -22px rgb(var(--c-shadow-rgb) / .32);
}

:root[data-theme="light"] .glass {
  background: rgb(var(--c-surface-rgb) / .8);
  border-color: rgb(var(--c-accent-rgb) / .16);
  box-shadow: 0 2px 12px -6px rgb(var(--c-shadow-rgb) / .14);
}
:root[data-theme="light"] #navbar.scrolled {
  background: rgb(var(--c-bg-rgb) / .88);
  box-shadow: 0 6px 22px -12px rgb(var(--c-shadow-rgb) / .28);
}
:root[data-theme="light"] .btn-neon:hover { box-shadow: 0 8px 22px -8px rgb(var(--c-accent-rgb) / .5); }
:root[data-theme="light"] .btn-ghost { border-color: rgb(var(--c-muted-rgb) / .45); }
:root[data-theme="light"] .btn-ghost:hover { box-shadow: 0 8px 20px -10px rgb(var(--c-shadow-rgb) / .25); }
:root[data-theme="light"] .chip.active { box-shadow: 0 6px 16px -8px rgb(var(--c-accent-rgb) / .6); }
:root[data-theme="light"] .map-dot { filter: drop-shadow(0 0 4px rgb(var(--c-accent-rgb) / .6)); }
:root[data-theme="light"] .map-route { filter: none; stroke-width: 2; }
:root[data-theme="light"] .timeline-item::before { box-shadow: 0 0 0 4px rgb(var(--c-accent-rgb) / .12); }
:root[data-theme="light"] .pre-bar span { box-shadow: none; }
:root[data-theme="light"] #readProgress .bar { box-shadow: none; }
:root[data-theme="light"] .data-table tbody tr:hover { background: rgb(var(--c-accent-rgb) / .07); }

/* ============ ДОСТУПНОСТЬ ============ */
@media (prefers-reduced-motion: reduce) {
  .reveal { transform: none; }
  .split-word { transform: none; }
  * { animation-duration: .001s !important; transition-duration: .001s !important; }
}
