/* ============================================================
   ecomarguru.ru — общие стили (2026)
   Дизайн-токены основаны на текущем сайте, расширены под
   маркетинговую главную (index.html) и сервис ИИ (ai-marketing/).
   Использование:
     /index.html              -> assets/site.css
     /profile/index.html      -> ../assets/site.css
     /ai-marketing/index.html -> ../assets/site.css
     /blog/index.html         -> ../assets/site.css (можно отдельно)
   ============================================================ */

/* ===================== DESIGN TOKENS ===================== */
:root{
  /* ink (тёмный) */
  --ink:      #0b0d17;
  --ink-2:    #1b2030;
  --slate:    #5b6478;
  --slate-2:  #8a93a6;
  --line:     #e6e8ef;
  --line-2:   #eef0f5;

  /* brand */
  --brand:        #5b4bff;       /* основной акцент (фиолет) */
  --brand-ink:    #2a1bd1;
  --brand-soft:   #ece8ff;
  --accent-blue:  #2563eb;       /* из лого ecomarguru */
  --accent-blue-2:#1d4ed8;

  /* surfaces */
  --bg:        #ffffff;
  --bg-soft:   #f6f7fb;
  --bg-card:   #ffffff;
  --bg-tint:   #fafbff;

  /* type */
  --ff: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --fs-base: 16px;

  /* radius / shadow */
  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 22px;
  --r-xl: 28px;
  --shadow-sm: 0 1px 2px rgba(11,13,23,.06), 0 2px 6px rgba(11,13,23,.04);
  --shadow-md: 0 4px 14px rgba(11,13,23,.06), 0 10px 30px rgba(11,13,23,.05);
  --shadow-lg: 0 8px 24px rgba(11,13,23,.08), 0 20px 60px rgba(11,13,23,.08);

  /* layout */
  --wrap: 1200px;
  --gap: 24px;
}

/* ===================== RESET / BASE ===================== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0; font-family:var(--ff); font-size:var(--fs-base);
  color:var(--ink); background:var(--bg); line-height:1.55;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
img,svg{max-width:100%; height:auto; display:block}
a{color:var(--ink); text-decoration:none}
a:hover{color:var(--brand)}
h1,h2,h3,h4{font-weight:800; letter-spacing:-.01em; line-height:1.15; margin:0}
p{margin:0 0 1em}
hr{border:0; border-top:1px solid var(--line); margin:48px 0}
ul,ol{padding-left:1.2em; margin:0 0 1em}
.wrap{max-width:var(--wrap); margin:0 auto; padding:0 24px}
.muted{color:var(--slate)}
.eyebrow{display:inline-block; font-size:12px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--brand);
  background:var(--brand-soft); padding:6px 12px; border-radius:999px}
.section{padding:80px 0}
.section--tight{padding:56px 0}
.section--soft{background:var(--bg-soft)}
.grid{display:grid; gap:var(--gap)}

/* ===================== BUTTONS ===================== */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:14px 22px; border-radius:12px; font-weight:600; font-size:15px;
  border:1px solid transparent; cursor:pointer; transition:.2s;
  font-family:inherit;
}
.btn--primary{background:var(--brand); color:#fff; box-shadow:0 6px 20px rgba(91,75,255,.25)}
.btn--primary:hover{background:var(--brand-ink); color:#fff; transform:translateY(-1px)}
.btn--outline{background:transparent; color:var(--ink); border-color:var(--line)}
.btn--outline:hover{border-color:var(--ink); color:var(--ink)}
.btn--ghost{background:transparent; color:var(--ink)}
.btn--sm{padding:9px 14px; font-size:14px; border-radius:10px}
.btn__arrow{transition:transform .2s}
.btn:hover .btn__arrow{transform:translateX(3px)}

/* ===================== HEADER / NAV ===================== */
.nav{
  position:sticky; top:0; z-index:50; background:rgba(255,255,255,.85);
  backdrop-filter:saturate(160%) blur(12px); border-bottom:1px solid var(--line-2);
}
.nav__in{display:flex; align-items:center; gap:24px; height:68px}
.brand{display:inline-flex; align-items:center; gap:10px; font-weight:800}
.brand img{height:36px; width:auto}
.brand__mark{
  width:36px; height:36px; border-radius:9px;
  background:linear-gradient(135deg,#0b0d17 0%,#1b2030 100%);
  color:#fff; display:grid; place-items:center; font-weight:800; font-size:14px;
  letter-spacing:.02em;
}
.nav__links{display:flex; gap:6px; margin-left:auto; flex-wrap:wrap}
.nav__links a{
  padding:9px 12px; border-radius:9px; font-size:14px; font-weight:500;
  color:var(--ink-2);
}
.nav__links a:hover{background:var(--bg-soft); color:var(--ink)}
.nav__links a.active{color:var(--brand); background:var(--brand-soft)}
.nav__cta{margin-left:8px}
@media (max-width:820px){
  .nav__links{display:none}
  .nav__cta{margin-left:auto}
}

/* ===================== HERO (marketing) ===================== */
.hero{
  position:relative; padding:72px 0 56px;
  background:
    radial-gradient(1200px 600px at 80% -10%, rgba(91,75,255,.10), transparent 60%),
    radial-gradient(900px 500px at -10% 110%, rgba(37,99,235,.10), transparent 60%),
    linear-gradient(180deg,#fff, var(--bg-tint));
}
.hero__grid{display:grid; grid-template-columns:1.15fr .85fr; gap:48px; align-items:center}
@media (max-width:920px){.hero__grid{grid-template-columns:1fr; gap:32px}}
.hero h1{font-size:clamp(34px,5vw,60px); margin-bottom:18px}
.hero h1 .accent{color:var(--brand)}
.hero p.lead{font-size:18px; color:var(--slate); max-width:620px; margin-bottom:28px}
.hero__cta{display:flex; gap:12px; flex-wrap:wrap}
.hero__metrics{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:36px}
.metric{background:var(--bg-card); border:1px solid var(--line); border-radius:var(--r-md); padding:18px}
.metric b{display:block; font-size:26px; color:var(--ink); font-weight:800}
.metric span{font-size:13px; color:var(--slate)}
.hero__art{
  position:relative; aspect-ratio:1/1; border-radius:var(--r-xl);
  background:linear-gradient(135deg,#0b0d17,#1b2030);
  box-shadow:var(--shadow-lg); overflow:hidden; display:grid; place-items:center;
}
.hero__art::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(500px 300px at 80% 0%, rgba(91,75,255,.4), transparent 60%),
    radial-gradient(500px 300px at 0% 100%, rgba(37,99,235,.4), transparent 60%);
}
.hero__art img{position:relative; z-index:1; width:78%; filter:drop-shadow(0 10px 30px rgba(0,0,0,.4))}

/* ===================== SECTION HEADINGS ===================== */
.sec-head{max-width:780px; margin-bottom:40px}
.sec-head h2{font-size:clamp(28px,3.6vw,44px); margin:14px 0 12px}
.sec-head p{color:var(--slate); font-size:17px; margin:0}

/* ===================== SERVICES / CARDS ===================== */
.cards{grid-template-columns:repeat(4,1fr)}
@media (max-width:980px){.cards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.cards{grid-template-columns:1fr}}
.card{
  background:var(--bg-card); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:24px; transition:.2s; position:relative; overflow:hidden;
}
.card:hover{transform:translateY(-2px); box-shadow:var(--shadow-md); border-color:transparent}
.card__icon{
  width:44px; height:44px; border-radius:11px; background:var(--brand-soft);
  color:var(--brand); display:grid; place-items:center; margin-bottom:14px;
}
.card h3{font-size:18px; margin-bottom:8px}
.card p{color:var(--slate); font-size:14px; margin:0}
.card a.more{display:inline-flex; gap:4px; margin-top:14px; font-size:14px; font-weight:600; color:var(--brand)}

/* ===================== PROCESS STEPS ===================== */
/*  ИСПРАВЛЕНО: номер шага выводится РОВНО ОДИН раз — из .lead в разметке
    («Шаг 1 · 2–4 дня» на главной, «01» в профиле).
    Раньше их было три: нативный ::marker от <ol>, .step::before с counter()
    и текст в .lead. Теперь ::marker погашен, .step::before удалён.
    ДОП. ИСПРАВЛЕНО 05.10.2026:
      — на планшете (560–980px) последний нечётный .step растягивается
        на 2 колонки, иначе 5 пунктов дают 2-2-1 с пустым углом;
      — на мобильных (≤560px) гарантированно 1 колонка;
      — .step получил минимальный min-width:0, чтобы длинные слова
        не разрывали grid-item (был "overflow" в некоторых браузерах).        */
.steps{
  grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px;
  list-style:none; padding-left:0; margin:0;   /* гасим ol{padding-left:1.2em} */
}
.steps > li{list-style:none; padding-left:0; min-width:0}
.steps > li::marker{content:none}              /* нативная нумерация <ol> — off */
@media (max-width:980px){
  .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  /* 5 пунктов в 2 колонки → 2-2-1 с пустым углом:
     растягиваем последний нечётный на всю ширину. */
  .steps > li:last-child:nth-child(odd){grid-column:1/-1}
}
@media (max-width:560px){
  .steps{grid-template-columns:1fr}
  .steps > li:last-child:nth-child(odd){grid-column:auto}
}
.step{
  background:var(--bg-card); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:22px; position:relative; min-width:0; overflow-wrap:break-word;
}
.step h3{font-size:17px; margin-bottom:6px}
.step p{color:var(--slate); font-size:14px; margin:0}
.step .lead{
  display:block; font-size:13px; color:var(--brand); font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; margin-bottom:8px;
}

/* ===================== ADVANTAGES ===================== */
.advantages{grid-template-columns:repeat(3,1fr)}
@media (max-width:980px){.advantages{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.advantages{grid-template-columns:1fr}}
.adv{
  display:flex; gap:14px; padding:22px;
  background:var(--bg-card); border:1px solid var(--line); border-radius:var(--r-lg);
}
.adv__icon{
  flex:0 0 38px; height:38px; border-radius:9px;
  background:var(--brand-soft); color:var(--brand);
  display:grid; place-items:center;
}
.adv h4{font-size:15px; margin-bottom:4px}
.adv p{font-size:13px; color:var(--slate); margin:0; line-height:1.5}

/* ===================== CASES ===================== */
.cases{grid-template-columns:repeat(3,1fr)}
@media (max-width:980px){.cases{grid-template-columns:1fr}}
.case{
  display:flex; flex-direction:column; background:var(--bg-card);
  border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden;
  transition:.2s;
}
.case:hover{transform:translateY(-2px); box-shadow:var(--shadow-md)}
.case__body{padding:24px; flex:1}
.case__brand{font-size:12px; color:var(--slate); font-weight:600; text-transform:uppercase; letter-spacing:.1em; margin-bottom:6px}
.case h3{font-size:18px; margin-bottom:8px}
.case__desc{color:var(--slate); font-size:14px; margin-bottom:14px}
.case__metrics{display:flex; gap:18px; flex-wrap:wrap; padding-top:14px; border-top:1px solid var(--line-2)}
.case__metric b{display:block; font-size:20px; color:var(--brand); font-weight:800}
.case__metric span{font-size:11px; color:var(--slate); text-transform:uppercase; letter-spacing:.05em}
.case__cta{padding:0 24px 24px}
.case__cta a{font-weight:600; color:var(--brand)}

/* ===================== TECH STACK ===================== */
.tech{display:flex; flex-wrap:wrap; gap:10px; justify-content:center}
.tech span{
  padding:8px 14px; background:#fff; border:1px solid var(--line); border-radius:999px;
  font-size:14px; font-weight:500; color:var(--ink-2);
}

/* ===================== FAQ ===================== */
.faq{display:grid; gap:12px; max-width:860px; margin:0 auto}
.faq details{
  background:var(--bg-card); border:1px solid var(--line); border-radius:var(--r-md); padding:18px 22px;
}
.faq details[open]{border-color:var(--brand-soft); box-shadow:var(--shadow-sm)}
.faq summary{cursor:pointer; font-weight:700; font-size:16px; list-style:none; display:flex; justify-content:space-between; gap:12px}
.faq summary::after{content:"+"; color:var(--brand); font-weight:700; font-size:20px; transition:transform .2s}
.faq details[open] summary::after{content:"−"}
.faq summary::-webkit-details-marker{display:none}
.faq .ans{color:var(--slate); font-size:15px; margin-top:12px; line-height:1.6}

/* ===================== CTA BAND ===================== */
.cta-band{
  background:linear-gradient(135deg,#0b0d17 0%,#1b2030 100%);
  color:#fff; border-radius:var(--r-xl); padding:48px;
  display:grid; grid-template-columns:1.4fr .6fr; gap:24px; align-items:center;
}
@media (max-width:820px){.cta-band{grid-template-columns:1fr; padding:32px}}
.cta-band h2{font-size:clamp(24px,3vw,34px); margin-bottom:8px}
.cta-band p{opacity:.8; margin:0}
.cta-band .btn--primary{background:var(--brand)}

/* ===================== FOOTER ===================== */
.foot{
  background:var(--ink); color:#c8ccd9; padding:56px 0 28px; margin-top:56px;
}
.foot a{color:#c8ccd9}
.foot a:hover{color:#fff}
.foot__grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px; margin-bottom:32px}
@media (max-width:820px){.foot__grid{grid-template-columns:1fr 1fr}}
.foot h5{color:#fff; font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.12em; margin:0 0 12px}
.foot ul{list-style:none; padding:0; margin:0}
.foot li{margin-bottom:8px; font-size:14px}
.foot__brand{display:flex; align-items:center; gap:10px; margin-bottom:14px}
/* ДОП. ИСПРАВЛЕНО 05.10.2026: используется logo-footer.png (белый на прозрачном),
   поэтому brightness/invert больше НЕ НУЖЕН. Раньше применялся фильтр
   brightness(0) invert(1) к logo.png (тёмный на белом) — но на тёмном футере
   он превращал ВСЮ картинку (включая белую подложку) в белый прямоугольник. */
.foot__brand img{height:32px; width:auto; max-width:200px}
.foot__bot{
  border-top:1px solid rgba(255,255,255,.08); padding-top:18px;
  display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; font-size:13px;
}

/* ===================== UTILITIES ===================== */
.center{text-align:center}
.row{display:flex; gap:12px; flex-wrap:wrap; align-items:center}
.toc{display:grid; gap:8px; padding:18px; background:var(--bg-soft); border-radius:var(--r-md); border:1px solid var(--line); margin-bottom:32px}
.toc a{font-size:14px; color:var(--ink-2)}
.toc b{display:block; font-size:13px; text-transform:uppercase; letter-spacing:.1em; color:var(--slate); margin-bottom:6px}

/* ===================== RESPONSIVE ===================== */
@media (max-width:560px){
  .section{padding:56px 0}
  .hero{padding:48px 0 32px}
  .hero__metrics{grid-template-columns:1fr 1fr}
  .nav__in{height:60px}
}
/* ============================================================
   v5 (07.10.2026) — компоненты новой главной (manifesto-стиль),
   глоссария, калькуляторов и страницы контактов.
   Все классы новые (префиксы j-*, m-*, fit-*, contour-*, gloss-*,
   calc-*), поэтому старые страницы не затрагиваются.
   ============================================================ */

/* ===================== ЖУРНАЛЬНАЯ ПОЛОСА (мета-данные) ===================== */
.jstrip{
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  background:var(--bg-tint);
}
.jstrip__in{
  display:flex; flex-wrap:wrap; gap:8px 40px; align-items:baseline;
  padding:14px 24px; max-width:var(--wrap); margin:0 auto;
}
.jstrip__item{display:flex; gap:8px; align-items:baseline; font-size:12px}
.jstrip__k{
  text-transform:uppercase; letter-spacing:.14em; font-weight:700;
  color:var(--slate-2); font-size:10px;
}
.jstrip__v{font-weight:600; color:var(--ink-2); font-size:13px}
.jstrip__dot{width:8px; height:8px; border-radius:50%; background:var(--brand); flex:0 0 auto; align-self:center}
@media (max-width:560px){ .jstrip__in{gap:6px 22px; padding:12px 24px} }

/* ===================== ГЕРОЙ-МАНИФЕСТ ===================== */
.manifest{position:relative; padding:64px 0 40px; overflow:hidden}
.manifest__in{display:grid; grid-template-columns:1.25fr .75fr; gap:48px; align-items:center}
@media (max-width:980px){ .manifest__in{grid-template-columns:1fr; gap:32px} }
.manifest h1{
  font-size:clamp(32px,4.6vw,58px); line-height:1.08; margin:16px 0 20px;
  letter-spacing:-.02em;
}
.manifest h1 .accent{color:var(--brand)}
.manifest h1 .dim{color:var(--slate-2)}
.manifest__sub{font-size:18px; color:var(--slate); max-width:620px; margin:0 0 28px}
.manifest__cta{display:flex; gap:12px; flex-wrap:wrap; margin-bottom:22px}
.mquote{
  border-left:3px solid var(--brand); padding:14px 0 14px 20px; margin:0 0 28px;
  font-size:19px; font-weight:600; color:var(--ink); max-width:600px; line-height:1.45;
}
.manifest__note{
  font-size:13px; color:var(--slate); display:flex; gap:8px; align-items:flex-start;
  border-top:1px dashed var(--line); padding-top:16px; max-width:600px; margin:0;
}
.manifest__note b{color:var(--ink-2)}
/* правая колонка: «карточка наблюдателя» */
.mpanel{
  background:linear-gradient(160deg,var(--bg-card) 0%, #f7f5ff 100%);
  border:1px solid var(--line); border-radius:var(--r-xl); padding:26px;
  box-shadow:var(--shadow-md);
}
.mpanel__label{
  font-size:10px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--brand); font-weight:700; margin-bottom:12px;
}
.mpanel__big{font-size:34px; font-weight:800; letter-spacing:-.02em; line-height:1.1; margin-bottom:4px}
.mpanel__cap{font-size:13px; color:var(--slate); margin-bottom:18px}
.mpanel__list{list-style:none; padding:0; margin:0; display:grid; gap:10px}
.mpanel__list li{
  display:flex; justify-content:space-between; gap:12px; font-size:14px;
  padding-bottom:10px; border-bottom:1px solid var(--line-2);
}
.mpanel__list li:last-child{border-bottom:0; padding-bottom:0}
.mpanel__list span{color:var(--slate)}
.mpanel__list b{font-weight:700; white-space:nowrap}

/* ===================== БЕГУЩАЯ СТРОКА ТЕГОВ ===================== */
.marquee{
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  overflow:hidden; padding:14px 0; background:var(--bg);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
}
.marquee__track{
  display:flex; gap:10px; width:max-content; animation:marq 42s linear infinite;
}
.marquee:hover .marquee__track{animation-play-state:paused}
@keyframes marq{from{transform:translateX(0)} to{transform:translateX(-50%)}}
.marquee__track span{
  display:inline-flex; align-items:center; gap:8px; white-space:nowrap;
  font-size:13px; font-weight:600; color:var(--ink-2);
  padding:7px 14px; border:1px solid var(--line); border-radius:999px; background:#fff;
}
.marquee__track span::before{
  content:"●"; color:var(--brand); font-size:8px;
}

/* ===================== НУМЕРОВАННЫЙ ЗАГОЛОВОК СЕКЦИИ ===================== */
.secnum{
  display:flex; align-items:baseline; gap:14px; margin-bottom:12px;
  font-size:11px; letter-spacing:.16em; text-transform:uppercase; font-weight:700;
  color:var(--slate-2);
}
.secnum b{color:var(--brand); font-size:11px}

/* ===================== ОСИ: СТАРАЯ → НОВАЯ ===================== */
.axis{display:grid; grid-template-columns:1fr auto 1fr; gap:20px; align-items:stretch}
@media (max-width:820px){ .axis{grid-template-columns:1fr} .axis__arrow{transform:rotate(90deg)} }
.axis__col{
  border:1px solid var(--line); border-radius:var(--r-lg); padding:24px; background:var(--bg-card);
}
.axis__col--old{background:var(--bg-soft); border-style:dashed}
.axis__col--new{border-color:var(--brand-soft); background:linear-gradient(180deg,#faf9ff,#fff)}
.axis__tag{
  font-size:10px; letter-spacing:.16em; text-transform:uppercase; font-weight:700;
  color:var(--slate-2); margin-bottom:10px;
}
.axis__col--new .axis__tag{color:var(--brand)}
.axis__col h3{font-size:20px; margin-bottom:10px}
.axis__col p{font-size:14px; color:var(--slate); margin:0}
.axis__arrow{
  align-self:center; font-size:26px; color:var(--brand); font-weight:700;
  display:flex; align-items:center; justify-content:center;
}

/* ===================== ПЯТЬ КОНТУРОВ ===================== */
.contours{display:grid; grid-template-columns:repeat(5,1fr); gap:16px}
@media (max-width:1180px){ .contours{grid-template-columns:repeat(3,1fr)} }
@media (max-width:1000px){ .contours{grid-template-columns:repeat(3,1fr)} }
@media (max-width:780px){ .contours{grid-template-columns:repeat(2,1fr)} }
@media (max-width:520px){ .contours{grid-template-columns:1fr} }
.contour{
  position:relative; background:var(--bg-card); border:1px solid var(--line);
  border-radius:var(--r-lg); padding:22px 20px 20px; display:flex; flex-direction:column;
  transition:transform .18s, box-shadow .18s, border-color .18s; min-width:0;
}
.contour:hover{transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:var(--brand-soft)}
.contour__n{
  font-size:11px; font-weight:800; letter-spacing:.12em; color:var(--brand);
  background:var(--brand-soft); border-radius:999px; padding:4px 10px;
  display:inline-block; margin-bottom:12px; width:max-content;
}
.contour h3{font-size:17px; margin-bottom:8px}
.contour p{font-size:13.5px; color:var(--slate); margin:0 0 14px; flex:1}
.contour__tags{display:flex; flex-wrap:wrap; gap:6px}
.contour__tags span{
  font-size:11px; font-weight:600; color:var(--ink-2);
  background:var(--bg-soft); border:1px solid var(--line-2); border-radius:6px; padding:3px 8px;
}

/* ===================== СОВМЕСТИМОСТЬ: ДА / НЕТ ===================== */
.fit{display:grid; grid-template-columns:1fr 1fr; gap:20px}
@media (max-width:820px){ .fit{grid-template-columns:1fr} }
.fit__col{border:1px solid var(--line); border-radius:var(--r-lg); padding:26px; background:var(--bg-card)}
.fit__col--yes{border-color:#d8f3e4; background:linear-gradient(180deg,#f4fdf8,#fff)}
.fit__col--no{border-color:#fbe3e3; background:linear-gradient(180deg,#fff7f7,#fff)}
.fit__head{display:flex; align-items:center; gap:10px; margin-bottom:16px}
.fit__mark{
  width:26px; height:26px; border-radius:50%; display:grid; place-items:center;
  font-size:14px; font-weight:800; flex:0 0 auto;
}
.fit__col--yes .fit__mark{background:#e6f8ee; color:#10794a}
.fit__col--no  .fit__mark{background:#fdeaea; color:#a52222}
.fit__head h3{font-size:19px}
.fit__col ul{list-style:none; padding:0; margin:0; display:grid; gap:12px}
.fit__col li{display:grid; grid-template-columns:20px 1fr; gap:10px; font-size:14.5px; color:var(--ink-2)}
.fit__col li::before{font-weight:800; line-height:1.5}
.fit__col--yes li::before{content:"✓"; color:#10794a}
.fit__col--no  li::before{content:"×"; color:#a52222; font-size:17px}

/* ===================== ЖУРНАЛ / КАРТОЧКИ МАТЕРИАЛОВ ===================== */
.jcards{display:grid; grid-template-columns:repeat(3,1fr); gap:20px}
@media (max-width:980px){ .jcards{grid-template-columns:1fr 1fr} }
@media (max-width:620px){ .jcards{grid-template-columns:1fr} }
.jcard{
  display:flex; flex-direction:column; background:var(--bg-card);
  border:1px solid var(--line); border-radius:var(--r-lg); padding:24px;
  transition:transform .18s, box-shadow .18s, border-color .18s;
}
.jcard:hover{transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:var(--brand-soft)}
.jcard__meta{
  display:flex; gap:10px; align-items:center; font-size:11px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:var(--slate-2); margin-bottom:12px;
}
.jcard__meta b{color:var(--brand); background:var(--brand-soft); border-radius:999px; padding:3px 9px}
.jcard h3{font-size:18px; margin-bottom:10px; line-height:1.3}
.jcard p{font-size:14px; color:var(--slate); margin:0 0 16px; flex:1}
.jcard__foot{
  display:flex; justify-content:space-between; align-items:center; gap:10px;
  border-top:1px solid var(--line-2); padding-top:14px; font-size:13px; color:var(--slate-2);
}
.jcard__foot a{font-weight:700; color:var(--brand)}

/* ===================== ХЛЕБНЫЕ КРОШКИ ===================== */
.crumbs{font-size:13px; color:var(--slate); margin:0 0 18px}
.crumbs ol{list-style:none; display:flex; flex-wrap:wrap; gap:8px; padding:0; margin:0}
.crumbs li:not(:last-child)::after{content:"›"; margin-left:8px; color:var(--slate-2)}
.crumbs a{color:var(--slate)}
.crumbs a:hover{color:var(--brand)}

/* ===================== ГЛОССАРИЙ ===================== */
.gloss__bar{
  position:sticky; top:0; z-index:20; background:rgba(255,255,255,.94);
  backdrop-filter:blur(8px); border-bottom:1px solid var(--line);
  padding:14px 0; margin-bottom:8px;
}
.gloss__bar-in{display:flex; gap:12px; flex-wrap:wrap; align-items:center}
.gloss__search{
  flex:1 1 260px; min-width:200px; padding:11px 14px; font:inherit; font-size:15px;
  border:1px solid var(--line); border-radius:12px; background:#fff; color:var(--ink);
}
.gloss__search:focus{outline:2px solid var(--brand-soft); border-color:var(--brand)}
.gloss__filters{display:flex; gap:8px; flex-wrap:wrap}
.gloss__chip{
  padding:9px 14px; border:1px solid var(--line); border-radius:999px; background:#fff;
  font:inherit; font-size:13px; font-weight:600; color:var(--ink-2); cursor:pointer;
}
.gloss__chip:hover{border-color:var(--brand-soft); color:var(--brand)}
.gloss__chip[aria-pressed="true"]{background:var(--brand); border-color:var(--brand); color:#fff}
.gloss__count{font-size:13px; color:var(--slate); margin:18px 0 22px}
.gloss__grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px}
@media (max-width:1000px){ .gloss__grid{grid-template-columns:repeat(2,1fr)} }
@media (max-width:640px){ .gloss__grid{grid-template-columns:1fr} }
.gitem{
  background:var(--bg-card); border:1px solid var(--line); border-radius:var(--r-md);
  padding:20px; min-width:0;
}
.gitem:hover{border-color:var(--brand-soft); box-shadow:var(--shadow-sm)}
.gitem__top{display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; margin-bottom:8px}
.gitem h3{font-size:17px; margin:0; letter-spacing:-.01em}
.gitem__cat{
  font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color:var(--brand); background:var(--brand-soft); border-radius:999px; padding:3px 9px;
}
.gitem p{font-size:14px; color:var(--slate); margin:0 0 12px}
.gitem__link{font-size:13px; font-weight:600; color:var(--brand)}
.gitem[hidden]{display:none}
.gloss__empty{
  display:none; text-align:center; padding:48px 20px; color:var(--slate);
  border:1px dashed var(--line); border-radius:var(--r-lg);
}
.gloss__az{display:flex; flex-wrap:wrap; gap:6px; margin:0 0 28px}
.gloss__az a{
  min-width:34px; height:34px; display:grid; place-items:center; border:1px solid var(--line);
  border-radius:8px; font-size:14px; font-weight:700; color:var(--ink-2); background:#fff;
}
.gloss__az a:hover{border-color:var(--brand); color:var(--brand)}
.gloss__az a.is-off{opacity:.35; pointer-events:none}

/* ===================== КАЛЬКУЛЯТОРЫ ===================== */
.calcs{display:grid; grid-template-columns:1fr 1fr; gap:22px}
@media (max-width:900px){ .calcs{grid-template-columns:1fr} }
.calc{
  background:var(--bg-card); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:26px; min-width:0;
}
.calc h3{font-size:19px; margin-bottom:6px}
.calc__hint{font-size:13.5px; color:var(--slate); margin:0 0 18px}
.calc__fields{display:grid; gap:12px; margin-bottom:16px}
.calc__row{display:grid; grid-template-columns:1fr 1fr; gap:12px}
@media (max-width:480px){ .calc__row{grid-template-columns:1fr} }
.calc label{font-size:13px; font-weight:600; color:var(--ink-2); display:block; margin-bottom:5px}
.calc input{
  width:100%; padding:11px 13px; font:inherit; font-size:15px; color:var(--ink);
  border:1px solid var(--line); border-radius:10px; background:#fff;
}
.calc input:focus{outline:2px solid var(--brand-soft); border-color:var(--brand)}
.calc__out{
  background:var(--bg-tint); border:1px dashed var(--line); border-radius:var(--r-md);
  padding:18px; margin-top:4px;
}
.calc__out-row{display:flex; justify-content:space-between; gap:12px; padding:6px 0; font-size:14px}
.calc__out-row + .calc__out-row{border-top:1px solid var(--line-2)}
.calc__out-row b{font-size:16px}
.calc__out-row--main b{font-size:22px; color:var(--brand)}
.calc__note{font-size:12px; color:var(--slate-2); margin:12px 0 0; line-height:1.5}

/* ===================== КОНТАКТЫ ===================== */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:start}
@media (max-width:900px){ .contact-grid{grid-template-columns:1fr} }
.contact-card{
  border:1px solid var(--line); border-radius:var(--r-lg); padding:28px; background:var(--bg-card);
}
.contact-card h3{font-size:19px; margin-bottom:14px}
.contact-list{list-style:none; padding:0; margin:0; display:grid; gap:14px}
.contact-list li{display:grid; gap:3px}
.contact-list span{font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--slate-2); font-weight:700}
.contact-list a,.contact-list b{font-size:16px; font-weight:600}

/* ===================== КАРТА САЙТА (HTML) ===================== */
.sitemap-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px}
@media (max-width:900px){ .sitemap-grid{grid-template-columns:1fr 1fr} }
@media (max-width:560px){ .sitemap-grid{grid-template-columns:1fr} }
.sitemap-col{border:1px solid var(--line); border-radius:var(--r-lg); padding:24px; background:var(--bg-card)}
.sitemap-col h3{font-size:17px; margin-bottom:14px; padding-bottom:10px; border-bottom:1px solid var(--line-2)}
.sitemap-col ul{list-style:none; padding:0; margin:0; display:grid; gap:10px}
.sitemap-col li{font-size:14px}
.sitemap-col li span{display:block; font-size:12.5px; color:var(--slate-2)}

/* ===================== СЕТКА «ПЕРЕЛИНКОВКА» ===================== */
.linkmap{display:grid; grid-template-columns:repeat(3,1fr); gap:16px}
@media (max-width:900px){ .linkmap{grid-template-columns:1fr 1fr} }
@media (max-width:560px){ .linkmap{grid-template-columns:1fr} }
.linkmap__cell{border:1px solid var(--line); border-radius:var(--r-md); padding:18px; background:var(--bg-card)}
.linkmap__cell h4{font-size:15px; margin-bottom:8px}
.linkmap__cell p{font-size:13px; color:var(--slate); margin:0}
