/* =========================================================
   ПромоФабрик — главная v2
   Визуальный язык из коммерческого предложения (КП):
   графит с тонкой сеткой, красные «слайды», квадратные маркеры,
   счётчики разделов «02 / 12», крупные цифры, строгие углы.
   Грузится ПОСЛЕ styles.css и переопределяет только нужное.
   ========================================================= */

.v2 {
  --ink: #19191B;
  --ink-2: #222225;
  --red: #E52300;
  --red-deep: #C41E00;
  --panel: #F4F4F2;
  --line: rgba(25, 25, 27, 0.12);
  --line-soft: rgba(25, 25, 27, 0.07);
  --muted: #6B6B6E;
  --r: 2px;
  --display: "Inter Tight", "Inter", "Helvetica Neue", Arial, sans-serif;
  --sec: clamp(64px, 7vw, 104px);
  color: var(--ink);
}

/* ---------- Текстуры: сетка как в КП ---------- */
.tex-grid-dark {
  background-color: var(--ink);
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 56px 56px;
  background-position: center top;
}
.tex-grid-red {
  background-color: var(--red);
  background-image:
    linear-gradient(rgba(255,255,255,.075) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.075) 1px, transparent 1px);
  background-size: 56px 56px;
  background-position: center top;
}

/* ---------- Базовые элементы ---------- */
.v2 .accent { color: var(--red); }
.v2 h1, .v2 h2, .v2 h3, .v2 h4 { font-family: var(--display); }

.h-sec { padding: var(--sec) 0; }
.h-sec:not(.h-band) + .h-sec:not(.h-band) { padding-top: 0; }

/* строка-«колонтитул» раздела: маркер слева, номер справа */
.h-meta {
  display: flex; justify-content: space-between; align-items: center; gap: 24px;
  padding-bottom: 16px; margin-bottom: clamp(32px, 4vw, 56px);
  border-bottom: 1px solid var(--line);
}
.h-eyebrow {
  display: inline-flex; align-items: center;
  font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
  color: var(--red);
}
.h-eyebrow .sq, .h-hero-cap .sq {
  width: 8px; height: 8px; background: var(--red); margin-right: 12px; flex: none; display: inline-block;
}
.h-index {
  font-family: var(--display); font-size: 13px; font-weight: 700; letter-spacing: .04em;
  font-variant-numeric: tabular-nums; color: var(--ink);
}
.h-index span { color: var(--muted); font-weight: 500; }
.h-meta--dark { border-color: rgba(255,255,255,.14); }
.h-meta--dark .h-index { color: #fff; }
.h-meta--dark .h-index span { color: rgba(255,255,255,.4); }
.h-meta--red { border-color: rgba(255,255,255,.3); }
.h-meta--red .h-eyebrow { color: #fff; }
.h-meta--red .h-eyebrow .sq { background: #fff; }
.h-meta--red .h-index { color: #fff; }
.h-meta--red .h-index span { color: rgba(255,255,255,.6); }

.h-title {
  font-family: var(--display); font-weight: 800;
  font-size: clamp(32px, 3.6vw, 52px); line-height: 1.04; letter-spacing: -0.024em;
  margin: 0; text-wrap: balance;
}
.h-title--xl { font-size: clamp(40px, 5.2vw, 76px); line-height: 1; letter-spacing: -0.03em; }
.h-lead {
  font-size: 17px; line-height: 1.55; color: var(--muted);
  max-width: 46ch; margin: 0; text-wrap: pretty;
}

.h-head {
  display: grid; grid-template-columns: 1.25fr 1fr; align-items: end;
  gap: 24px 48px; margin-bottom: clamp(32px, 4vw, 52px);
}
.h-head .h-lead { justify-self: end; }
.h-head .h-title { max-width: 16ch; }
.h-head--action { grid-template-columns: 1fr auto; }

/* ---------- Кнопки: строгие, почти без скругления ---------- */
.h-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  height: 54px; padding: 0 24px; border-radius: var(--r);
  font-family: var(--font-body); font-size: 15px; font-weight: 600; letter-spacing: -0.005em;
  white-space: nowrap; border: 1px solid transparent;
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .15s ease;
}
.h-btn:active { transform: translateY(1px); }
.h-btn:focus-visible, .h-link:focus-visible, .h-tab:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
.h-arr { display: inline-block; transition: transform .2s ease; }
.h-btn:hover .h-arr, .h-link:hover .h-arr { transform: translateX(4px); }
.h-btn--red { background: var(--red); color: #fff; }
.h-btn--red:hover { background: var(--red-deep); }
.h-btn--dark { background: var(--ink); color: #fff; }
.h-btn--dark:hover { background: #000; }
.h-btn--line-light { border-color: rgba(255,255,255,.32); color: #fff; }
.h-btn--line-light:hover { background: #fff; color: var(--ink); border-color: #fff; }
.h-btn--sm { height: 46px; padding: 0 18px; font-size: 14px; }

.h-link {
  display: inline-flex; align-items: center; gap: 10px;
  font-weight: 600; font-size: 15px; color: var(--ink);
  padding-bottom: 5px; border-bottom: 1.5px solid currentColor;
  transition: color .2s ease;
}
.h-link:hover { color: var(--red); }
.h-link--sm { font-size: 14px; margin-top: 16px; }

.h-flag {
  display: inline-block; padding: 4px 8px; background: var(--red); color: #fff;
  font-size: 10.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; line-height: 1.2;
}

/* ---------- Шапка: те же элементы, строже ---------- */
.v2 .site-header { background: rgba(255,255,255,.94); border-bottom-color: var(--line); }
.v2 .site-header .btn { border-radius: var(--r); font-weight: 600; }
.v2 .nav a, .v2 .nav-dd-toggle { border-radius: var(--r); font-size: 14.5px; }
.v2 .nav-dd-menu { border-radius: var(--r); }
.v2 .btn { border-radius: var(--r); }

/* =========================================================
   01 — HERO
   ========================================================= */
.h-hero {
  position: relative; color: #fff; overflow: hidden;
  padding: clamp(24px, 3vw, 36px) 0 clamp(40px, 4vw, 56px);
}
.h-hero-stripe {
  position: absolute; top: 0; right: 0; bottom: 0; width: clamp(8px, 1.4vw, 22px);
  background: var(--red);
}
.h-hero .container { position: relative; }
.h-hero-grid {
  display: grid; grid-template-columns: 1.15fr .85fr; align-items: center;
  gap: clamp(32px, 5vw, 80px); padding: clamp(16px, 2.5vw, 40px) 0 clamp(40px, 4.5vw, 64px);
}
.h-hero-title {
  font-family: var(--display); font-weight: 800; color: #fff;
  font-size: clamp(38px, 4.6vw, 66px); line-height: 1; letter-spacing: -0.03em;
  margin: 0; text-wrap: balance;
}
.h-hero-title em { font-style: normal; }
.h-hero-lead {
  font-size: 18px; line-height: 1.55; color: rgba(255,255,255,.68);
  max-width: 44ch; margin: 28px 0 36px; text-wrap: pretty;
}
.h-hero-ctas { display: flex; flex-wrap: wrap; gap: 12px; }
.h-hero-note { margin: 16px 0 0; font-size: 13px; color: rgba(255,255,255,.45); }

.h-hero-media { margin: 0; }
.h-hero-video {
  position: relative; aspect-ratio: 4 / 5; max-height: 620px; margin-left: auto;
  overflow: hidden; background: #0f0f10; border: 1px solid rgba(255,255,255,.12);
}
.h-hero-video video { width: 100%; height: 100%; object-fit: cover; display: block; }
/* метки реза — отсылка к печатному производству */
.h-corner { position: absolute; width: 22px; height: 22px; pointer-events: none; }
.h-corner--tl { top: 14px; left: 14px; border-top: 2px solid var(--red); border-left: 2px solid var(--red); }
.h-corner--br { bottom: 14px; right: 14px; border-bottom: 2px solid var(--red); border-right: 2px solid var(--red); }
.h-hero-cap {
  display: flex; align-items: center; margin-top: 14px;
  font-size: 13px; color: rgba(255,255,255,.6);
}
.h-hero-cap b { color: #fff; font-weight: 600; margin-right: .3em; }

/* Цифры — общий компонент для графита и красного */
.h-stats { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); }
.h-stat { padding: 24px 24px 0 0; }
.h-stat + .h-stat { padding-left: 24px; border-left: 1px solid var(--line); }
.h-stat strong {
  display: block; font-family: var(--display); font-weight: 800;
  font-size: clamp(28px, 3vw, 44px); line-height: 1; letter-spacing: -0.026em;
  font-variant-numeric: tabular-nums;
}
.h-stat strong small { font-size: .46em; font-weight: 700; letter-spacing: -0.01em; margin-left: 2px; }
.h-stat span { display: block; margin-top: 10px; font-size: 13.5px; line-height: 1.4; color: var(--muted); max-width: 24ch; }
.h-stats--dark { border-color: rgba(255,255,255,.14); }
.h-stats--dark .h-stat + .h-stat { border-color: rgba(255,255,255,.14); }
.h-stats--dark .h-stat span { color: rgba(255,255,255,.55); }
.h-stats--red { border-color: rgba(255,255,255,.35); }
.h-stats--red .h-stat + .h-stat { border-color: rgba(255,255,255,.35); }
.h-stats--red .h-stat strong { color: #fff; font-size: clamp(40px, 4.6vw, 68px); }
.h-stats--red .h-stat span { color: rgba(255,255,255,.85); }

/* =========================================================
   Клиенты — бегущая строка
   ========================================================= */
.h-clients { padding: 26px 0; border-bottom: 1px solid var(--line); background: #fff; }
.h-clients-inner { display: flex; align-items: center; gap: 32px; }
.h-clients-label {
  flex: none; padding-right: 28px; border-right: 1px solid var(--line);
  font-size: 11px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; line-height: 1.5;
  color: var(--muted);
}
.h-marquee {
  flex: 1; overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.h-marquee-track { display: flex; align-items: center; width: max-content; animation: h-marquee 70s linear infinite; }
.h-marquee:hover .h-marquee-track { animation-play-state: paused; }
.h-marquee-track img {
  height: 26px; width: auto; max-width: 118px; object-fit: contain; margin-right: 60px;
  filter: grayscale(1) contrast(1.1); opacity: .5; transition: opacity .25s, filter .25s;
}
.h-marquee-track img:hover { filter: none; opacity: 1; }
@keyframes h-marquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .h-marquee-track { animation: none; } }

/* =========================================================
   02 — КАТАЛОГ
   ========================================================= */
.h-cat { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.h-pcard {
  display: flex; flex-direction: column; background: #fff;
  border: 1px solid var(--line); border-radius: var(--r); overflow: hidden;
  transition: border-color .25s ease;
}
.h-pcard:hover { border-color: var(--ink); }
.h-pcard-img { aspect-ratio: 4 / 3; background: var(--panel); overflow: hidden; }
.h-pcard-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.h-pcard:hover .h-pcard-img img { transform: scale(1.04); }
.h-pcard-body { display: flex; flex-direction: column; gap: 8px; padding: 18px 20px 20px; flex: 1; }
.h-pcard-top { display: flex; justify-content: space-between; align-items: center; min-height: 22px; }
.h-pcard-n { font-family: var(--display); font-size: 13px; font-weight: 700; color: var(--muted); font-variant-numeric: tabular-nums; }
.h-pcard h3 { font-weight: 700; font-size: 20px; line-height: 1.15; letter-spacing: -0.02em; margin: 2px 0 0; }
.h-pcard p { margin: 0; font-size: 14px; line-height: 1.5; color: var(--muted); }
.h-pcard-foot {
  display: flex; justify-content: space-between; align-items: center;
  margin-top: auto; padding-top: 14px; border-top: 1px solid var(--line-soft);
}
.h-price { font-size: 13px; color: var(--muted); }
.h-price b { font-family: var(--display); font-size: 19px; font-weight: 700; color: var(--ink); letter-spacing: -0.02em; }
.h-price--req { font-weight: 500; }
.h-go {
  width: 36px; height: 36px; display: grid; place-items: center; flex: none;
  border: 1px solid var(--line); font-size: 15px; transition: background .2s, color .2s, border-color .2s;
}
.h-pcard:hover .h-go { background: var(--red); border-color: var(--red); color: #fff; }

/* лид-карточка 2×2 */
.h-pcard--lead { grid-column: span 2; grid-row: span 2; }
.h-pcard--lead .h-pcard-img { aspect-ratio: auto; flex: 1; min-height: 300px; }
.h-pcard--lead .h-pcard-body { flex: none; padding: 22px 26px 24px; }
.h-pcard--lead h3 { font-size: clamp(26px, 2.4vw, 34px); letter-spacing: -0.03em; }
.h-pcard--lead p { font-size: 15px; max-width: 52ch; }
.h-pcard--lead .h-pcard-n { color: var(--red); }

/* «Не нашли нужное?» — графитовая, на 2 колонки */
.h-pcard--custom { grid-column: span 2; flex-direction: row; color: #fff; border-color: var(--ink); }
.h-pcard--custom:hover { border-color: var(--red); }
.h-pcard--custom .h-pcard-body { padding: 22px 24px 24px; }
.h-pcard--custom .h-pcard-n { color: var(--red); font-size: 18px; }
.h-pcard--custom h3 { color: #fff; font-size: 24px; }
.h-pcard--custom p { color: rgba(255,255,255,.62); margin-bottom: 18px; }
.h-pcard--custom .h-btn { margin-top: auto; align-self: flex-start; }
.h-pcard--custom .h-pcard-img { aspect-ratio: auto; width: 44%; flex: none; background: #2a2a2d; }
.h-flag--line { background: transparent; border: 1px solid rgba(255,255,255,.3); color: rgba(255,255,255,.8); }

/* =========================================================
   03 — СКОРОСТЬ (красный слайд)
   ========================================================= */
.h-speed { color: #fff; padding: clamp(28px, 3vw, 40px) 0 clamp(56px, 6vw, 88px); }
.h-speed-head { display: grid; grid-template-columns: 1.3fr 1fr; align-items: end; gap: 24px 48px; }
.h-speed .h-title { color: #fff; }
.h-speed .h-lead { color: rgba(255,255,255,.88); justify-self: end; }
.h-speed .h-stats { margin-top: clamp(40px, 5vw, 72px); }

/* =========================================================
   04 — ПРЕИМУЩЕСТВА: список-спецификация
   ========================================================= */
.h-adv { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(40px, 6vw, 96px); align-items: start; }
.h-adv-aside { position: sticky; top: 110px; }
.h-adv-aside .h-lead { margin: 20px 0 28px; }
.h-adv-list { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid var(--line); }
.h-adv-list li {
  position: relative; display: grid; grid-template-columns: 56px 1fr 1.15fr; gap: 8px 24px;
  align-items: baseline; padding: 26px 0; border-top: 1px solid var(--line);
}
.h-adv-list li::before {
  content: ""; position: absolute; left: 0; top: -1px; height: 2px; width: 0;
  background: var(--red); transition: width .45s cubic-bezier(.2,.7,.2,1);
}
.h-adv-list li:hover::before { width: 100%; }
.h-adv-n { font-family: var(--display); font-weight: 700; font-size: 14px; color: var(--red); font-variant-numeric: tabular-nums; }
.h-adv-list h3 { font-weight: 700; font-size: 20px; line-height: 1.2; letter-spacing: -0.02em; margin: 0; }
.h-adv-list p { margin: 0; font-size: 15px; line-height: 1.55; color: var(--muted); }

/* =========================================================
   05 — О КОМПАНИИ (графит)
   ========================================================= */
.h-about { color: #fff; padding: clamp(28px, 3vw, 40px) 0 var(--sec); }
.h-about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 96px); align-items: center; }
.h-about .h-title { color: #fff; }
.h-about .h-lead { color: rgba(255,255,255,.66); margin: 20px 0 32px; }
.h-sites { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.h-site {
  display: flex; flex-direction: column; gap: 6px; padding: 20px 22px;
  border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.03);
}
.h-site-k { font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--red); margin-bottom: 6px; }
.h-site strong { font-family: var(--display); font-weight: 700; font-size: 18px; letter-spacing: -0.015em; }
.h-site span:last-child { font-size: 14px; line-height: 1.5; color: rgba(255,255,255,.6); }
.h-callout {
  display: flex; flex-direction: column; gap: 4px; margin-top: 12px; padding: 18px 22px;
  border-left: 3px solid var(--red); background: var(--panel);
}
.h-callout strong { font-family: var(--display); font-weight: 700; font-size: 17px; }
.h-callout span { font-size: 14px; color: var(--muted); }
.h-callout--dark { background: rgba(255,255,255,.05); }
.h-callout--dark span { color: rgba(255,255,255,.6); }

.h-about-media { position: relative; padding-bottom: 56px; }
.h-about-main { width: 86%; margin-left: auto; aspect-ratio: 5 / 4; overflow: hidden; background: #2a2a2d; }
.h-about-sub {
  position: absolute; left: 0; bottom: 0; width: 44%; aspect-ratio: 1 / 1; overflow: hidden;
  border: 8px solid var(--ink); background: #2a2a2d;
}
.h-about-main img, .h-about-sub img { width: 100%; height: 100%; object-fit: cover; }
.h-about-tag {
  position: absolute; top: 28px; left: 4%; padding: 14px 18px; background: var(--red); color: #fff;
}
.h-about-tag b { display: block; font-family: var(--display); font-weight: 800; font-size: 30px; line-height: 1; letter-spacing: -0.03em; }
.h-about-tag span { display: block; margin-top: 4px; font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }

/* =========================================================
   06 — СОБЫТИЯ: сетка на волосяных линиях
   ========================================================= */
.h-events {
  display: grid; grid-template-columns: repeat(6, 1fr);
  border-top: 1px solid var(--line); border-left: 1px solid var(--line);
}
.h-event { margin: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; transition: background .25s; }
.h-event:hover { background: var(--panel); }
.h-event-logo { aspect-ratio: 4 / 3; display: grid; place-items: center; padding: 20px; }
.h-event-logo img {
  max-height: 64px; max-width: 82%; width: auto; object-fit: contain;
  filter: grayscale(1) contrast(1.05); opacity: .8; transition: filter .3s, opacity .3s;
}
.h-event:hover .h-event-logo img { filter: none; opacity: 1; }
.h-event figcaption {
  padding: 14px 18px 16px; border-top: 1px solid var(--line-soft);
  font-size: 14px; font-weight: 600; line-height: 1.3;
}
.h-event figcaption span { display: block; margin-top: 3px; font-size: 12px; font-weight: 400; color: var(--muted); }

/* =========================================================
   07 — КЕЙСЫ: 1 крупный + 2 горизонтальных
   ========================================================= */
.h-cases { display: grid; grid-template-columns: 1.3fr 1fr; grid-template-rows: auto auto; gap: 12px; }
.h-case { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); overflow: hidden; transition: border-color .25s; }
.h-case:hover { border-color: var(--ink); }
.h-case--big { grid-row: span 2; }
.h-case-img { overflow: hidden; background: var(--panel); }
.h-case-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.h-case:hover .h-case-img img { transform: scale(1.04); }
.h-case--big .h-case-img { flex: 1; min-height: 340px; }
.h-case:not(.h-case--big) { flex-direction: row; }
.h-case:not(.h-case--big) .h-case-img { width: 42%; flex: none; min-height: 210px; }
.h-case-body { padding: 22px 24px 24px; display: flex; flex-direction: column; gap: 8px; }
.h-case-tag { font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--red); }
.h-case h3 { font-weight: 700; font-size: 21px; line-height: 1.15; letter-spacing: -0.02em; margin: 0; }
.h-case--big h3 { font-size: clamp(26px, 2.6vw, 36px); letter-spacing: -0.03em; }
.h-case p { margin: 0; font-size: 15px; line-height: 1.5; color: var(--muted); }

/* =========================================================
   08 — ОТЗЫВЫ
   ========================================================= */
.h-reviews { background: var(--panel); padding: var(--sec) 0; }
.h-reviews .h-meta { border-color: rgba(25,25,27,.14); }
.h-rev-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(32px, 4vw, 64px); align-items: start; }
.h-quote { margin: 28px 0 0; padding: 30px 32px 28px; color: #fff; position: relative; }
.h-quote-mark { display: block; height: 44px; font-family: var(--display); font-weight: 800; font-size: 96px; line-height: .8; color: var(--red); }
.h-quote p { margin: 0 0 22px; font-size: 17px; line-height: 1.6; color: rgba(255,255,255,.9); text-wrap: pretty; }
.h-quote footer { display: flex; align-items: center; gap: 14px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.12); font-size: 14px; }
.h-quote footer b { font-weight: 600; }
.h-stars { color: var(--red); font-weight: 700; }

.h-rev-main { position: relative; }
.h-tabs { display: flex; border-bottom: 1px solid rgba(25,25,27,.14); }
.h-tab {
  padding: 14px 20px 13px; margin-bottom: -1px; border-bottom: 2px solid transparent;
  font-size: 14px; font-weight: 600; color: var(--muted); transition: color .2s, border-color .2s;
}
.h-tab:hover { color: var(--ink); }
.h-tab.is-active { color: var(--ink); border-bottom-color: var(--red); }
.h-rev-panel { display: block; }
.h-rev-panel:not(.is-active) { position: absolute; left: 0; right: 0; visibility: hidden; pointer-events: none; }
.h-rev-frame { display: block; width: 100%; height: 560px; margin-top: 16px; border: 1px solid var(--line); background: #fff; }

/* =========================================================
   09 — ДЛЯ ЮРЛИЦ
   ========================================================= */
.h-b2b { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(40px, 5vw, 80px); align-items: start; }
.h-b2b-aside .h-lead { margin: 20px 0 32px; }
.h-b2b-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.h-feat { display: flex; flex-direction: column; gap: 6px; padding: 22px 22px 24px; background: var(--panel); min-height: 168px; transition: background .25s; }
.h-feat:hover { background: #ECECE9; }
.h-feat-ic { width: 14px; height: 14px; background: var(--red); margin-bottom: 20px; }
.h-feat-ic--ink { background: var(--ink); }
.h-feat h4 { font-weight: 700; font-size: 17px; letter-spacing: -0.015em; margin: 0; }
.h-feat p { margin: 0; font-size: 14px; line-height: 1.5; color: var(--muted); }

/* =========================================================
   10 — FAQ
   ========================================================= */
.h-faq { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(40px, 6vw, 96px); align-items: start; }
.h-faq-aside { position: sticky; top: 110px; }
.h-faq-aside .h-lead { margin: 20px 0 28px; }
.h-channels { display: flex; flex-wrap: wrap; gap: 8px; }
.h-channels a {
  padding: 10px 14px; border: 1px solid var(--line); border-radius: var(--r);
  font-size: 14px; font-weight: 600; transition: border-color .2s, color .2s;
}
.h-channels a:hover { border-color: var(--ink); }
.v2 .faq-list { border-top-color: var(--line); }
.v2 .faq-item { border-bottom-color: var(--line); }
.v2 .faq-q { font-family: var(--display); font-weight: 600; font-size: clamp(17px, 1.5vw, 20px); padding: 22px 0; }
.v2 .faq-q:hover { color: var(--red); }
.v2 .faq-q .icon { border-radius: var(--r); width: 30px; height: 30px; }
.v2 .faq-item.open .faq-q .icon { background: var(--red); border-color: var(--red); }
.v2 .faq-a-inner { color: var(--muted); font-size: 15.5px; }

/* =========================================================
   11 — ФОРМА (красный слайд + графитовая карточка)
   ========================================================= */
.h-form { color: #fff; padding: clamp(28px, 3vw, 40px) 0 var(--sec); }
.h-form-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(40px, 5vw, 80px); align-items: start; }
.h-form .h-title { color: #fff; font-size: clamp(38px, 4.4vw, 64px); }
.h-form .h-lead { color: rgba(255,255,255,.88); margin-top: 20px; }
.h-form .h-lead a { color: #fff; border-bottom: 1px solid rgba(255,255,255,.6); }
.h-form-facts { list-style: none; margin: 36px 0 0; padding: 0; border-top: 1px solid rgba(255,255,255,.3); }
.h-form-facts li { display: grid; grid-template-columns: 110px 1fr; gap: 16px; align-items: center; padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,.2); }
.h-form-facts b { font-family: var(--display); font-weight: 800; font-size: 26px; letter-spacing: -0.03em; }
.h-form-facts span { font-size: 14px; color: rgba(255,255,255,.88); }

.v2 .h-form-card {
  background: var(--ink); color: #fff; border: 0; border-radius: var(--r);
  padding: clamp(24px, 3vw, 40px); box-shadow: 0 40px 70px -40px rgba(60, 8, 0, .55);
}
.v2 .h-form-card .form-actions { gap: 0; margin-bottom: 26px; border: 1px solid rgba(255,255,255,.16); display: inline-flex; flex-wrap: wrap; }
.v2 .h-form-card .form-action {
  border: 0; border-radius: 0; padding: 11px 16px; font-size: 13.5px; font-weight: 600;
  color: rgba(255,255,255,.7); background: transparent;
}
.v2 .h-form-card .form-action + .form-action { border-left: 1px solid rgba(255,255,255,.16); }
.v2 .h-form-card .form-action.active { background: #fff; color: var(--ink); }
.v2 .h-form-card .field label { color: rgba(255,255,255,.5); font-size: 11px; letter-spacing: .12em; }
.v2 .h-form-card .field input, .v2 .h-form-card .field textarea {
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); border-radius: var(--r); color: #fff;
}
.v2 .h-form-card .field input::placeholder, .v2 .h-form-card .field textarea::placeholder { color: rgba(255,255,255,.35); }
.v2 .h-form-card .field input:focus, .v2 .h-form-card .field textarea:focus { border-color: var(--red); background: rgba(255,255,255,.09); }
.v2 .h-form-card .form-footer { margin-top: 26px; }
.v2 .h-form-card .form-footer .privacy { color: rgba(255,255,255,.45); font-size: 12.5px; max-width: 40ch; }
.v2 .h-form-card .form-footer .privacy a { color: rgba(255,255,255,.7); }
.v2 .h-form-card .form-success { background: transparent; border-radius: 0; padding: 32px 0; text-align: left; }
.v2 .h-form-card .form-success p { color: rgba(255,255,255,.7); margin-top: 8px; }

/* =========================================================
   12 — НОВОСТИ
   ========================================================= */
.h-news { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.h-ncard { display: flex; flex-direction: column; }
.h-ncard-img { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--panel); }
.h-ncard-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.h-ncard-img .h-flag { position: absolute; top: 12px; left: 12px; }
.h-ncard:hover .h-ncard-img img { transform: scale(1.04); }
.h-ncard-meta {
  display: flex; gap: 12px; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--line);
  font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--muted);
}
.h-ncard-meta span { color: var(--red); font-weight: 700; }
.h-ncard h3 { font-weight: 700; font-size: 20px; line-height: 1.2; letter-spacing: -0.02em; margin: 10px 0 8px; transition: color .2s; }
.h-ncard:hover h3 { color: var(--red); }
.h-ncard p { margin: 0; font-size: 14.5px; line-height: 1.5; color: var(--muted); }

/* =========================================================
   FOOTER
   ========================================================= */
.v2 .h-footer { margin-top: 0; padding-top: clamp(56px, 6vw, 88px); }
.h-footer-top {
  display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; flex-wrap: wrap;
  padding-bottom: 48px; margin-bottom: 48px; border-bottom: 1px solid rgba(255,255,255,.1);
}
.h-footer-slogan {
  margin: 0; font-family: var(--display); font-weight: 800; color: #fff;
  font-size: clamp(48px, 7.4vw, 112px); line-height: .94; letter-spacing: -0.035em;
}
.v2 .footer-cta { font-family: var(--display); font-size: 24px; }
.v2 .footer-phone { font-family: var(--display); }

/* =========================================================
   АДАПТИВ
   ========================================================= */
@media (max-width: 1100px) {
  .h-cat { grid-template-columns: repeat(2, 1fr); }
  .h-pcard--lead { grid-row: auto; }
  .h-pcard--lead .h-pcard-img { flex: none; aspect-ratio: 16 / 9; min-height: 0; }
  .h-events { grid-template-columns: repeat(3, 1fr); }
  .h-b2b-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 900px) {
  .h-head, .h-speed-head { grid-template-columns: 1fr; }
  .h-head .h-lead, .h-speed .h-lead { justify-self: start; }
  .h-head--action { grid-template-columns: 1fr; justify-items: start; }
  .h-hero-grid { grid-template-columns: 1fr; }
  .h-hero-video { aspect-ratio: 4 / 3; max-height: none; margin: 0; }
  .h-adv, .h-about-grid, .h-rev-grid, .h-b2b, .h-faq, .h-form-grid { grid-template-columns: 1fr; }
  .h-adv-aside, .h-faq-aside { position: static; }
  .h-cases { grid-template-columns: 1fr; }
  .h-case--big { grid-row: auto; }
  .h-case--big .h-case-img { flex: none; aspect-ratio: 16 / 10; min-height: 0; }
  .h-stats { grid-template-columns: repeat(2, 1fr); border-top: 0; }
  .h-stat, .h-stat + .h-stat { padding: 18px 0 18px 0; border-left: 0; border-top: 1px solid var(--line); }
  .h-stat:nth-child(even) { padding-left: 20px; border-left: 1px solid var(--line); }
  .h-stats--dark .h-stat, .h-stats--dark .h-stat:nth-child(even) { border-color: rgba(255,255,255,.14); }
  .h-stats--red .h-stat, .h-stats--red .h-stat:nth-child(even) { border-color: rgba(255,255,255,.35); }
}

@media (max-width: 640px) {
  .v2 { --sec: 56px; }
  .h-meta { margin-bottom: 28px; }
  .h-index { font-size: 12px; }
  .h-lead { font-size: 16px; }
  .h-hero-lead { font-size: 16px; margin: 20px 0 28px; }
  .h-hero-ctas .h-btn { flex: 1 1 100%; }
  .h-clients-inner { gap: 20px; }
  .h-clients-label { padding-right: 18px; }
  .h-marquee-track img { height: 22px; margin-right: 40px; }

  .h-cat { gap: 8px; }
  .h-pcard-body { padding: 14px 14px 16px; gap: 6px; }
  .h-pcard:not(.h-pcard--lead):not(.h-pcard--custom) p { display: none; }
  .h-pcard h3 { font-size: 16px; }
  .h-price b { font-size: 16px; }
  .h-price--req { font-size: 12px; }
  .h-go { width: 30px; height: 30px; }
  .h-pcard--custom { flex-direction: column; }
  .h-pcard--custom .h-pcard-img { width: 100%; aspect-ratio: 16 / 9; order: -1; }

  .h-adv-list li { grid-template-columns: 40px 1fr; padding: 20px 0; }
  .h-adv-list p { grid-column: 2; }
  .h-adv-list h3 { font-size: 18px; }

  .h-sites { grid-template-columns: 1fr; }
  .h-about-main { width: 100%; }
  .h-about-sub { width: 42%; border-width: 6px; }
  .h-about-media { padding-bottom: 40px; }

  .h-events { grid-template-columns: repeat(2, 1fr); }
  .h-case:not(.h-case--big) { flex-direction: column; }
  .h-case:not(.h-case--big) .h-case-img { width: 100%; aspect-ratio: 16 / 10; min-height: 0; }

  .h-quote { padding: 24px 22px 22px; }
  .h-rev-frame { height: 480px; }
  .h-b2b-grid { gap: 8px; }
  .h-feat { padding: 18px 16px 20px; min-height: 0; }
  .h-feat-ic { margin-bottom: 14px; }

  .h-form-facts li { grid-template-columns: 90px 1fr; }
  .v2 .h-form-card .form-action { padding: 10px 12px; font-size: 12.5px; }
  .v2 .h-form-card .form-footer .h-btn { width: 100%; }

  /* новости — горизонтальная лента со снапом */
  .h-news {
    grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 82%;
    overflow-x: auto; scroll-snap-type: x mandatory; gap: 14px;
    margin-right: calc(-1 * var(--gutter)); padding-right: var(--gutter); scrollbar-width: none;
  }
  .h-news::-webkit-scrollbar { display: none; }
  .h-ncard { scroll-snap-align: start; }
  .h-footer-top { flex-direction: column; align-items: flex-start; }
}

/* ---------- правки после первого просмотра ---------- */
/* графитовая карточка: .h-pcard {background:#fff} перебивала текстуру */
.h-pcard.h-pcard--custom {
  background-color: var(--ink);
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 56px 56px;
}
/* источники отзывов под цитатой */
.h-rev-sources { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 12px; }
.h-rev-src {
  display: flex; flex-direction: column; gap: 4px; padding: 18px 20px;
  background: #fff; border: 1px solid var(--line); transition: border-color .2s;
}
.h-rev-src:hover { border-color: var(--ink); }
.h-rev-src b { font-family: var(--display); font-size: 17px; font-weight: 700; display: flex; justify-content: space-between; }
.h-rev-src span { font-size: 13px; color: var(--muted); }

/* ---------- правки мобильной версии ---------- */
.h-index { white-space: nowrap; }
.h-hero-cap { display: block; line-height: 1.5; }
.h-hero-cap .sq { vertical-align: 1px; }
@media (max-width: 640px) {
  .h-eyebrow { font-size: 11px; letter-spacing: .12em; }
  .v2 .logo-footer .logo-img { height: 44px; }
  .v2 .h-form-card .form-actions { display: grid; grid-template-columns: 1fr 1.5fr 1fr; width: 100%; }
  .v2 .h-form-card .form-action { white-space: normal; line-height: 1.2; text-align: center; padding: 10px 8px; }
}

/* =========================================================
   ПРОДУКТОВЫЕ СТРАНИЦЫ — общие компоненты в системе v2
   ========================================================= */

/* ---------- Полосы-фоны для ритма страницы ---------- */
.h-band { background: var(--panel); }
.h-band .h-meta { border-color: rgba(25,25,27,.14); }
.h-band--dark { color: #fff; }
.h-band--dark .h-title, .h-band--dark h2, .h-band--dark h3 { color: #fff; }
.h-band--dark .h-lead { color: rgba(255,255,255,.66); }

/* ---------- Hero продуктовой страницы ---------- */
.v2 .h-hero .breadcrumbs { padding: 0 0 18px; font-size: 12.5px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.v2 .h-hero .breadcrumbs a { color: rgba(255,255,255,.5); }
.v2 .h-hero .breadcrumbs a:hover { color: #fff; }
.v2 .h-hero .breadcrumbs .sep { color: rgba(255,255,255,.25); }
.v2 .h-hero .breadcrumbs [aria-current="page"] { color: rgba(255,255,255,.85); }
.h-hero-title em { font-style: normal !important; font-weight: inherit !important; font-family: inherit !important; }
.h-hero-bullets { list-style: none; margin: 26px 0 34px; padding: 0; display: grid; gap: 10px; max-width: 54ch; }
.h-hero-bullets li { position: relative; padding-left: 22px; font-size: 16px; line-height: 1.5; color: rgba(255,255,255,.72); text-wrap: pretty; }
.h-hero-bullets li::before { content: ""; position: absolute; left: 0; top: .6em; width: 8px; height: 8px; background: var(--red); }
.h-hero-video img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ---------- Feature: текст + визуал ---------- */
.v2 .feature { gap: clamp(40px, 6vw, 96px); align-items: center; }
.v2 .feature-text .h-lead, .v2 .feature-text > p.lead { margin: 20px 0 0; }
.v2 .feature-visual { border-radius: 0; min-height: 0; aspect-ratio: 4 / 4.6; background: var(--panel); }
.v2 .h-band .feature-visual { background: #fff; }
.v2 .feature-foot { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 32px; }
.v2 .ff-item { padding: 16px 16px 18px; background: var(--panel); border-top: 2px solid var(--red); gap: 6px; }
.v2 .h-band .ff-item { background: #fff; }
.v2 .ff-item strong { font-family: var(--display); font-weight: 700; font-size: 16px; letter-spacing: -0.01em; }
.v2 .ff-item span { font-size: 13.5px; }
.v2 .feature-price { font-family: var(--display); font-weight: 800; letter-spacing: -0.03em; }

/* таблица характеристик */
.v2 .spec-list { margin-top: 28px; }
.v2 .spec-row { padding: 15px 0; border-top-color: var(--line); grid-template-columns: minmax(140px, 190px) 1fr; }
.v2 .spec-row:last-child { border-bottom-color: var(--line); }
.v2 .spec-row .k { font-size: 11.5px; font-weight: 600; letter-spacing: .12em; color: var(--muted); }
.v2 .spec-row .v { font-size: 15.5px; }
.v2 .spec-row .v .chip { border-radius: 0; background: var(--panel); }
.v2 .h-band .spec-row .v .chip { background: #fff; }
.v2 .spec-row .v .chip.popular { background: var(--ink); }

/* ---------- Плитки на волосяных линиях (бывшие why-grid) ---------- */
.v2 .why-grid { gap: 0; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.v2 .why-grid:has(> :last-child:nth-child(4)) { grid-template-columns: repeat(4, 1fr); }
.v2 .why-grid:has(> :last-child:nth-child(2)) { grid-template-columns: repeat(2, 1fr); }
.v2 .why-grid:has(> :last-child:nth-child(5)) { grid-template-columns: repeat(6, 1fr); }
.v2 .why-grid:has(> :last-child:nth-child(5)) > :nth-child(-n+2) { grid-column: span 3; }
.v2 .why-grid:has(> :last-child:nth-child(5)) > :nth-child(n+3) { grid-column: span 2; }
.v2 .why-card {
  border: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); border-radius: 0;
  background: transparent; padding: 28px 26px 30px; min-height: 0; transition: background .25s ease; position: relative;
}
.v2 .why-card::before {
  content: ""; position: absolute; left: -1px; top: -1px; height: 2px; width: 0; background: var(--red);
  transition: width .45s cubic-bezier(.2,.7,.2,1);
}
.v2 .why-card:hover::before { width: calc(100% + 1px); }
.v2 .why-card:hover { background: var(--panel); }
.v2 .why-num, .v2 .why-card .big-num {
  font-family: var(--display); font-weight: 700; font-size: 14px; color: var(--red); font-variant-numeric: tabular-nums; letter-spacing: 0;
}
.v2 .why-card .big-num { font-weight: 800; font-size: clamp(34px, 3.4vw, 48px); letter-spacing: -0.03em; line-height: 1; }
.v2 .why-card h3 { font-weight: 700; font-size: 20px; line-height: 1.2; letter-spacing: -0.02em; margin: 20px 0 8px; }
.v2 .why-card p { font-size: 14.5px; line-height: 1.55; }
.v2 .why-card.dark { background: var(--ink); color: #fff; }
.v2 .h-band .why-card:hover { background: #fff; }
.h-band--dark .why-grid { border-color: rgba(255,255,255,.12); }
.h-band--dark .why-card { border-color: rgba(255,255,255,.12); }
.h-band--dark .why-card p { color: rgba(255,255,255,.6); }
.h-band--dark .why-card:hover { background: rgba(255,255,255,.04); }

/* ---------- Карусель ---------- */
.v2 .carousel { border-radius: 0; background: var(--panel); }
.v2 .feature-visual .carousel { position: absolute; inset: 0; max-height: none; aspect-ratio: auto; }
.v2 .carousel-btn {
  border-radius: 0; width: 42px; height: 42px; box-shadow: none; background: #fff; border: 1px solid var(--line); font-size: 20px;
}
.v2 .carousel-btn:hover { background: var(--red); border-color: var(--red); color: #fff; transform: translateY(-50%); }
.v2 .carousel-dots button { border-radius: 0; width: 8px; height: 8px; background: rgba(255,255,255,.7); border: 0; }
.v2 .carousel-dots button.active { background: var(--red); transform: none; width: 22px; }

/* ---------- Инлайн-формы (в красной полосе — графитовая карточка) ---------- */
.v2 .inline-form { border-radius: 0; background: var(--ink); padding: clamp(22px, 3vw, 34px); }
.v2 .h-form .inline-form { box-shadow: 0 40px 70px -40px rgba(60, 8, 0, .55); }
.v2 .inline-form-head h4 { font-family: var(--display); font-weight: 700; font-size: 20px; letter-spacing: -0.015em; }
.v2 .inline-form-fields input { border-radius: var(--r); height: 52px; font-size: 15px; }
.v2 .inline-form .btn { border-radius: var(--r); font-weight: 600; }
.v2 .btn-glow { box-shadow: none !important; }
.v2 .btn-primary { background: var(--red); }
.v2 .btn-primary:hover { background: var(--red-deep); }

/* ---------- «Смотрите также» — карточки как в каталоге главной ---------- */
.v2 .catalog-grid { gap: 12px; }
.v2 .catalog-card { border-radius: 0; border: 1px solid var(--line); transition: border-color .25s ease; }
.v2 .catalog-card:hover { transform: none; box-shadow: none; border-color: var(--ink); }
.v2 .catalog-card-img img { transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.v2 .catalog-card h3 { font-family: var(--display); font-weight: 700; font-size: 18px; letter-spacing: -0.015em; padding: 18px 20px 6px; }
.v2 .catalog-card p { font-size: 13.5px; line-height: 1.5; }
.v2 .catalog-card-link {
  display: flex; justify-content: space-between; align-items: center; margin: auto 20px 0; padding: 14px 0 18px;
  border-top: 1px solid var(--line-soft); color: var(--ink); font-size: 13.5px; font-weight: 600;
}
.v2 .catalog-card:hover .catalog-card-link { color: var(--red); text-decoration: none; }

/* ---------- Новости на продуктовых страницах ---------- */
.v2 .news-grid { gap: 24px; }
.v2 .news-card { border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.v2 .news-card:hover { transform: none; box-shadow: none; }
.v2 .news-card-img { border-radius: 0; aspect-ratio: 16 / 10; background: var(--panel); }
.v2 .news-card-img img { transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.v2 .news-card:hover .news-card-img img { transform: scale(1.04); }
.v2 .news-card-body { padding: 0; }
.v2 .news-meta {
  margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--line);
  font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--muted);
}
.v2 .news-meta .tag { background: none; padding: 0; color: var(--red); font-weight: 700; border-radius: 0; }
.v2 .news-card h3 { font-family: var(--display); font-weight: 700; font-size: 20px; line-height: 1.2; letter-spacing: -0.02em; margin: 10px 0 8px; transition: color .2s; }
.v2 .news-card:hover h3 { color: var(--red); }
.v2 .news-card-link { display: none; }
.v2 .news-badge { border-radius: 0; }

/* ---------- Кастом-блок (бейджи: видео + форма) ---------- */
.v2 .custom-block { border-radius: 0; background: var(--panel); }
.v2 .h-band .custom-block { background: #fff; }
.v2 .custom-block .custom-video { border-radius: 0; }
.v2 .custom-block .custom-form h3 { font-family: var(--display); font-weight: 700; letter-spacing: -0.02em; }

/* ---------- Адаптив продуктовых компонентов ---------- */
@media (max-width: 1000px) {
  .v2 .why-grid, .v2 .why-grid:has(> :last-child:nth-child(4)), .v2 .why-grid:has(> :last-child:nth-child(5)) { grid-template-columns: repeat(2, 1fr); }
  .v2 .why-grid:has(> :last-child:nth-child(5)) > * { grid-column: auto !important; }
}
@media (max-width: 900px) {
  .v2 .feature-foot { grid-template-columns: 1fr; }
  .v2 .feature-visual { aspect-ratio: 4 / 3.4; }
}
@media (max-width: 560px) {
  .v2 .why-grid, .v2 .why-grid:has(> :last-child:nth-child(4)), .v2 .why-grid:has(> :last-child:nth-child(2)) { grid-template-columns: 1fr; }
  .v2 .why-card { padding: 22px 20px 24px; }
  .h-hero-bullets li { font-size: 15px; }
}

/* ---------- правки после первой продуктовой страницы ---------- */
/* графитовая полоса: .h-band (серый) объявлен позже текстуры — возвращаем графит */
.h-band.h-band--dark { background-color: var(--ink); }
/* цифры: на продуктовых страницах подписи длиннее («4 технологии») */
.h-stat strong { font-size: clamp(24px, 2.5vw, 38px); }
/* «свечение» и блик старых кнопок в системе v2 не нужны */
.v2 .btn-glow { animation: none; overflow: visible; }
.v2 .btn-glow::before, .v2 .btn-glow::after { display: none; }

/* =========================================================
   ПРОДУКТОВЫЕ СТРАНИЦЫ — особые блоки (ленты, бейджи, карманы)
   ========================================================= */

/* остаточные eyebrow внутри блоков — в том же языке, что колонтитулы */
.v2 .eyebrow { color: var(--red); letter-spacing: .16em; font-weight: 600; }
.v2 .eyebrow .dot { border-radius: 0; width: 8px; height: 8px; background: var(--red); transform: none; vertical-align: 1px; }
.h-band--dark .eyebrow, .v2 .b2b .eyebrow { color: var(--red) !important; }

/* ---------- Карточки товаров с ценой (карманы и т. п.) ---------- */
.v2 .prod-nav { gap: 12px; }
.v2 .prod-card { border-radius: 0; border: 1px solid var(--line); transition: border-color .25s ease; }
.v2 .prod-card:hover { transform: none; box-shadow: none; border-color: var(--ink); }
.v2 .prod-card .num { font-family: var(--display); font-weight: 700; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--red); }
.v2 .prod-card h3 { font-family: var(--display); font-weight: 700; font-size: 21px; letter-spacing: -0.02em; }
.v2 .prod-card .price { font-family: var(--display); font-weight: 800; letter-spacing: -0.03em; font-size: 28px; }
.v2 .prod-card .arrow { border-radius: 0; border-color: var(--line); }
.v2 .prod-card:hover .arrow { background: var(--red); border-color: var(--red); transform: none; }
.v2 .prod-card.with-img .prod-card-img img { transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.v2 .prod-card.with-img .price { margin-top: auto; padding-top: 16px; border-top: 1px solid var(--line-soft); margin-left: 28px; margin-right: 28px; padding-left: 0; padding-right: 0; }
.v2 .prod-card.bundle { background-color: var(--ink); border-color: var(--ink); }
.v2 .prod-card .save-pill { border-radius: 0; }
.v2 .h-band .prod-card { background: #fff; }

/* ---------- Табы (сублимация / шелкография) ---------- */
.v2 .tabs { border-radius: 0; background: transparent; padding: 0; gap: 0; border: 1px solid var(--line); }
.v2 .tab-btn { border-radius: 0; padding: 11px 18px; font-weight: 600; font-size: 13.5px; color: var(--muted); }
.v2 .tab-btn + .tab-btn { border-left: 1px solid var(--line); }
.v2 .tab-btn.active { background: var(--ink); color: #fff; }

/* визуал с тегами поверх фото */
.v2 .feature-visual .stack-tag { border-radius: 0; box-shadow: none; font-weight: 600; }
.v2 .feature-visual.dark { background: var(--ink); }

/* ---------- Фурнитура ---------- */
.v2 .furniture-grid { gap: 8px; }
.v2 .fur-cat h3 { font-family: var(--font-body); font-size: 12px; font-weight: 700; letter-spacing: .14em; color: var(--ink); }
.v2 .fur-cat h3::before { content: ""; display: inline-block; width: 8px; height: 8px; background: var(--red); margin-right: 10px; vertical-align: 1px; }
.v2 .fur-card { border-radius: 0; padding: 10px 10px 12px; transition: border-color .2s ease; }
.v2 .fur-card:hover { transform: none; border-color: var(--ink); }
.v2 .fur-card .thumb { border-radius: 0; background: var(--panel); }
.v2 .fur-card .name { font-size: 12.5px; font-weight: 600; }
.v2 .fur-banner { border-radius: 0; background-color: var(--ink);
  background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 56px 56px; border-left: 4px solid var(--red); }
.v2 .fur-banner .btn { border-radius: var(--r); }

/* ---------- Комплект vs по отдельности ---------- */
.v2 .bundle-compare { gap: 12px; }
.v2 .bundle-col { border-radius: 0; background: #fff; }
.v2 .bundle-col h3 { font-family: var(--display); font-weight: 700; letter-spacing: -0.02em; }
.v2 .bundle-col.highlight { background-color: var(--ink);
  background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 56px 56px; border-top: 4px solid var(--red); }
.v2 .bundle-total .price { font-family: var(--display); font-weight: 800; letter-spacing: -0.03em; }
.v2 .bundle-save-tag { border-radius: 0; font-family: var(--display); font-weight: 700; }

/* ---------- Калькулятор ---------- */
.v2 .calc { border-radius: 0; background-color: var(--ink);
  background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 56px 56px; }
.v2 .calc h2 { font-family: var(--display); font-weight: 800; letter-spacing: -0.03em; }
.v2 .calc-field .label { font-size: 11px; font-weight: 600; letter-spacing: .14em; }
.v2 .calc-opt { border-radius: 0; font-weight: 500; }
.v2 .calc-opt.active { background: var(--red); border-color: var(--red); color: #fff; }
.v2 .calc-qty, .v2 .calc-qty button { border-radius: 0; }
.v2 .calc-summary { border-radius: 0; background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.12); border-top: 3px solid var(--red); }
.v2 .calc-summary .total { font-family: var(--display); font-weight: 800; letter-spacing: -0.035em; }
.v2 .calc-summary .btn { border-radius: var(--r); }
.v2 .calc-preview { border-radius: 0 !important; }

/* ---------- Держатели (плитки-переключатели) ---------- */
.v2 .holders-tile { border-radius: 0; background: #fff; border: 1px solid var(--line); }
.v2 .holders-tile.active { border: 2px solid var(--red); }
.v2 .holders-tile:hover { transform: none; border-color: var(--ink); }

/* ---------- Кастомные шнурки ---------- */
.v2 .custom-grid { gap: 12px; }
.v2 .custom-card { border-radius: 0; transition: border-color .25s ease; }
.v2 .custom-card:hover { transform: none; box-shadow: none; border-color: var(--ink); }
.v2 .custom-card h3 { font-family: var(--display); font-weight: 700; letter-spacing: -0.02em; }
.v2 .custom-card-foot { border-top: 1px solid var(--line-soft); }
.v2 .custom-card .btn { border-radius: var(--r); }

/* ---------- Таймлайн производства (на графите) ---------- */
.v2 .timeline { border-color: var(--line); }
.v2 .tl-step { padding: 30px 24px 32px; transition: background .25s ease; }
.v2 .tl-step .step-num {
  width: 36px; height: 36px; display: grid; place-items: center; background: var(--red); color: #fff;
  font-family: var(--display); font-weight: 800; font-size: 14px;
}
.v2 .tl-step h4 { font-family: var(--display); font-weight: 700; font-size: 19px; letter-spacing: -0.015em; margin: 20px 0 8px; }
.v2 .tl-step .step-time {
  display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--red); border: 1px solid var(--red); padding: 3px 8px; margin-bottom: 12px;
}
.h-band--dark .timeline, .h-band--dark .tl-step { border-color: rgba(255,255,255,.12); }
.h-band--dark .tl-step h4 { color: #fff; }
.h-band--dark .tl-step .step-desc { color: rgba(255,255,255,.62); }
.h-band--dark .tl-step:hover { background: rgba(255,255,255,.04); }

/* ---------- Кейсы ---------- */
.v2 .cases-grid { gap: 12px; }
.v2 .case { border-radius: 0; transition: border-color .25s ease; }
.v2 .case:hover { transform: none; box-shadow: none; border-color: var(--ink); }
.v2 .case-img { border-radius: 0; }
.v2 .case-tag { background: none; padding: 0; border-radius: 0; color: var(--red); font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.v2 .case h3 { font-family: var(--display); font-weight: 700; letter-spacing: -0.02em; }

/* ---------- Отзывы-виджеты на продуктовых страницах ---------- */
.v2 .reviews-widgets { justify-content: flex-start; gap: 12px; }
.v2 .reviews-widget { max-width: none; flex: 1 1 440px; height: 640px; background: #fff; border: 1px solid var(--line); }

/* ---------- Навигатор по продуктам (ленты) ---------- */
.v2 .prodnav-grid { gap: 12px; }
.v2 .prodnav-card { border-radius: 0; transition: border-color .25s ease; }
.v2 .prodnav-card:hover { transform: none; box-shadow: none; border-color: var(--ink); }
.v2 .prodnav-img { border-radius: 0; }
.v2 .prodnav-card h3 { font-family: var(--display); font-weight: 700; letter-spacing: -0.02em; }
.v2 .prodnav-eyebrow { border-radius: 0; }
.v2 .prodnav-card--lead, .v2 .prodnav-card--cta { background-color: var(--ink); border-color: var(--ink); }

/* ---------- Для юрлиц ---------- */
.v2 .b2b { border-radius: 0; background-color: var(--ink);
  background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 56px 56px; border-left: 4px solid var(--red); }
.v2 .b2b h2 { font-family: var(--display); font-weight: 800; letter-spacing: -0.03em; }
.v2 .b2b-feature .check { border-radius: 0; width: 14px; height: 14px; font-size: 0; margin-bottom: 16px; }
.v2 .b2b-feature h4 { font-family: var(--display); font-weight: 700; }
.v2 .b2b .btn { border-radius: var(--r); }

/* ---------- Большая форма заявки на красной полосе ---------- */
.v2 .h-form .lead-form {
  background: var(--ink); color: #fff; border: 0; border-radius: 0;
  box-shadow: 0 40px 70px -40px rgba(60, 8, 0, .55);
}
.v2 .h-form .lead-form .form-actions { gap: 0; border: 1px solid rgba(255,255,255,.16); display: inline-flex; flex-wrap: wrap; }
.v2 .h-form .lead-form .form-action { border: 0; border-radius: 0; padding: 11px 16px; font-size: 13.5px; font-weight: 600; color: rgba(255,255,255,.7); background: transparent; }
.v2 .h-form .lead-form .form-action + .form-action { border-left: 1px solid rgba(255,255,255,.16); }
.v2 .h-form .lead-form .form-action.active { background: #fff; color: var(--ink); }
.v2 .h-form .lead-form .field label { color: rgba(255,255,255,.5); font-size: 11px; letter-spacing: .12em; }
.v2 .h-form .lead-form .field input, .v2 .h-form .lead-form .field textarea {
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); border-radius: var(--r); color: #fff;
}
.v2 .h-form .lead-form .field input::placeholder, .v2 .h-form .lead-form .field textarea::placeholder { color: rgba(255,255,255,.35); }
.v2 .h-form .lead-form .field input:focus, .v2 .h-form .lead-form .field textarea:focus { border-color: var(--red); }
.v2 .h-form .lead-form .privacy { color: rgba(255,255,255,.45); }
.v2 .h-form .lead-form .privacy a { color: rgba(255,255,255,.7); }
.v2 .h-form .lead-form .form-success { background: transparent; border-radius: 0; text-align: left; padding: 32px 0; }

@media (max-width: 900px) {
  .v2 .reviews-widget { height: 520px; }
}

/* =========================================================
   НОВОСТИ — шапка страницы, список, статья
   ========================================================= */
.h-hero--page { padding-bottom: clamp(48px, 6vw, 88px); }
.h-page-head {
  display: grid; grid-template-columns: 1.35fr 1fr; align-items: end; gap: 20px 48px;
  margin-top: clamp(20px, 3.5vw, 48px);
}
.h-page-head:has(> :only-child) { grid-template-columns: 1fr; }
.h-page-title {
  font-family: var(--display); font-weight: 800; color: #fff; margin: 0;
  font-size: clamp(34px, 4.4vw, 62px); line-height: 1.03; letter-spacing: -0.03em;
  max-width: 22ch; text-wrap: balance;
}
.h-hero--page .h-lead { color: rgba(255,255,255,.66); justify-self: end; }
.h-hero--page .h-index time { color: #fff; }

/* список новостей */
.v2 .h-news-list .news-grid { grid-template-columns: repeat(3, 1fr); row-gap: 48px; }

/* статья: обложка заходит на графитовую шапку */
.h-hero--article { padding-bottom: clamp(110px, 11vw, 170px); }
.v2 .h-article { padding-top: 0; }
.v2 .h-article .article { max-width: 780px; }
.v2 .article-cover {
  position: relative; z-index: 2; border-radius: 0;
  margin-top: calc(-1 * clamp(80px, 8.5vw, 130px)); margin-bottom: 44px;
  box-shadow: 0 40px 70px -45px rgba(0,0,0,.45);
}
.v2 .article-body { font-size: 17.5px; line-height: 1.7; }
.v2 .article-body h2 {
  font-family: var(--display); font-weight: 700; letter-spacing: -0.022em; line-height: 1.15;
  font-size: clamp(24px, 2.4vw, 32px); margin-top: 48px; padding-top: 28px; border-top: 1px solid var(--line);
}
.v2 .article-body h3 { font-family: var(--display); font-weight: 700; letter-spacing: -0.015em; }
.v2 .article-body ul { list-style: none; padding-left: 0; }
.v2 .article-body ul > li { position: relative; padding-left: 24px; }
.v2 .article-body ul > li::before { content: ""; position: absolute; left: 2px; top: .72em; width: 7px; height: 7px; background: var(--red); }
.v2 .article-body ol > li::marker { color: var(--red); font-family: var(--display); font-weight: 700; }
.v2 .article-body a { color: var(--red); text-underline-offset: 3px; }
.v2 .article-body blockquote {
  margin-left: 0; margin-right: 0; padding: 22px 26px; background: var(--panel); border-left: 4px solid var(--red);
  font-family: var(--display); font-weight: 600; font-size: 19px; line-height: 1.5; letter-spacing: -0.01em;
}
.v2 .article-cta {
  border-radius: 0; color: #fff; padding: 28px 30px; border-left: 4px solid var(--red);
  background-color: var(--ink);
  background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 56px 56px;
}
.v2 .article-cta p { font-family: var(--display); font-weight: 600; font-size: 18px; color: #fff; }
.v2 .article-cta .btn { border-radius: var(--r); }
.v2 .article-gallery img { border-radius: 0; }
.v2 .mount-card { border-radius: 0; background: var(--panel); border-top: 2px solid var(--red); }
.v2 .mount-card .num { font-family: var(--display); }
.v2 .price-table th { color: var(--ink); font-size: 11px; letter-spacing: .12em; border-bottom-color: var(--ink); }
.v2 .price-table td:last-child { font-family: var(--display); font-weight: 700; }
.v2 .price-table tr.best td { background: rgba(229,35,0,.06); }
.v2 .promo-box { border-radius: 0; border-left: 4px solid var(--red); }
.v2 .promo-box .promo-value { font-family: var(--display); font-weight: 800; letter-spacing: -0.03em; }
.v2 .article-video, .v2 .article-video video { border-radius: 0; }
.v2 .news-meta .tag-new, .v2 .news-badge { border-radius: 0; }

@media (max-width: 900px) {
  .h-page-head { grid-template-columns: 1fr; }
  .h-hero--page .h-lead { justify-self: start; }
  .v2 .h-news-list .news-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .v2 .h-news-list .news-grid { grid-template-columns: 1fr; row-gap: 36px; }
  .v2 .article-body { font-size: 16.5px; }
}

/* ---------- мобильная доводка продуктовых страниц ---------- */
@media (max-width: 640px) {
  .v2 .catalog-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .v2 .catalog-card p { display: none; }
  .v2 .catalog-card h3 { font-size: 15px; padding: 12px 12px 4px; }
  .v2 .catalog-card-link { margin: auto 12px 0; padding: 10px 0 12px; font-size: 12.5px; }
  .v2 .h-sec:not(.h-news-list) .news-grid {
    grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 82%;
    overflow-x: auto; scroll-snap-type: x mandatory; gap: 14px;
    margin-right: calc(-1 * var(--gutter)); padding-right: var(--gutter); scrollbar-width: none;
  }
  .v2 .h-sec:not(.h-news-list) .news-grid::-webkit-scrollbar { display: none; }
  .v2 .news-card { scroll-snap-align: start; }
}

/* ---------- устойчивость к сохранённым правкам админки ---------- */
/* рубрики, сохранённые до редизайна, содержат старую круглую точку .dot */
.h-eyebrow .dot { display: inline-block; flex: none; width: 8px; height: 8px; border-radius: 0; background: var(--red); margin-right: 12px; transform: none; }
.h-meta--red .h-eyebrow .dot { background: #fff; }
.h-eyebrow .dot + .sq, .h-eyebrow .sq + .dot { display: none; }
/* площадки на главной: подпись вне редактируемой части */
.h-site-body { display: flex; flex-direction: column; gap: 6px; }
.h-site-body strong { font-family: var(--display); font-weight: 700; font-size: 18px; letter-spacing: -0.015em; }
.h-site-body span { font-size: 14px; line-height: 1.5; color: rgba(255,255,255,.6); }
