/* ==========================================================================
   ✦ 22 VΞK · Стекло — Автокран-вездеход
   Лендинг «Услуги автокрана» (/uslugi-avtokrana/, blog 24, страница id=13)

   ВОССТАНОВЛЕНО из custom_css post_id=14 (18351 байт), который перестал
   выводиться после переключения blog 24 на spacious-pro-child
   (WP ищет custom_css по имени активной темы — нашли не там).

   НАЗНАЧЕНИЕ ФАЙЛА
   1) Вернуть дизайн-систему 22ВЕК (.nb-glass, .nb-chip, .nb-faq, .nb-table,
      .nb-btn, backdrop-filter) — на странице не было НИ ОДНОГО её правила.
   2) Починить схлопывание Gutenberg-колонок (wp:columns) — см. раздел 4.
   3) Адаптировать лендинг под контейнер Spacious (сайдбар, шрифт Lato, reset).

   ВСЁ ЗАЦЕПЛЕНО ЗА body.nb-avtokran-landing
   Класс ставит functions.php (nb_avtokran_module) ТОЛЬКО на blog 24.
   На blog 6 (потолки) файл не подключается вовсе — пересечений нет.

   Порядок важен: раздел 4 (колонки) идёт ДО оформления, потому что
   задаёт поток, а всё остальное уже подстраивается под него.
   ========================================================================== */

/* ══════════════════════════════════════════════════════════════════════
   1. ТОКЕНЫ ДИЗАЙН-СИСТЕМЫ
   Свои переменные с префиксом avk-, чтобы не драться с --nb-* из style.css
   дочерней темы (он остаётся как есть — blog 6 на нём живёт).
   ══════════════════════════════════════════════════════════════════════ */
body.nb-avtokran-landing {
  /* Палитра */
  --avk-accent: #E07856;
  --avk-accent-deep: #D9694A;
  --avk-bg: #FBF7F0;
  --avk-text: #2A241E;
  --avk-text-soft: #5C5546;

  /* Стекло */
  --avk-glass: rgba(255, 255, 255, .70);
  --avk-glass-2: rgba(255, 255, 255, .58);
  --avk-glass-line: rgba(255, 255, 255, .82);
  --avk-blur: 14px;

  /* Геометрия */
  --avk-r-card: 16px;
  --avk-r-table: 14px;
  --avk-r-pill: 100vmax;
  --avk-gap: 20px;

  /* Тени */
  --avk-shadow: 0 1px 3px rgba(0,0,0,.04), 0 6px 16px rgba(0,0,0,.06), 0 14px 32px rgba(0,0,0,.04);
  --avk-shadow-lift: 0 2px 6px rgba(0,0,0,.06), 0 10px 28px rgba(0,0,0,.10), 0 22px 48px rgba(0,0,0,.06);
  --avk-shadow-glow: 0 2px 8px rgba(224,120,86,.25), 0 6px 20px rgba(224,120,86,.15), 0 14px 36px rgba(224,120,86,.06);

  /* Движение */
  --avk-ease-out: cubic-bezier(.16, 1, .3, 1);
  --avk-ease-spring: cubic-bezier(.2, .9, .3, 1.2);
}

/* ══════════════════════════════════════════════════════════════════════
   2. ТИПОГРАФИКА И АТМОСФЕРА
   Spacious тянет Lato с жёсткими заголовками и рамками — перебиваем.
   ══════════════════════════════════════════════════════════════════════ */
body.nb-avtokran-landing {
  font-family: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
  color: var(--avk-text);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  background: var(--avk-bg);
}

body.nb-avtokran-landing .entry-content :is(h1, h2, h3, h4) {
  font-family: 'Manrope', system-ui, sans-serif;
  color: var(--avk-text);
  text-wrap: balance;
  letter-spacing: -.015em;
  border: 0;
  box-shadow: none;
}
body.nb-avtokran-landing .entry-content h1 { font-size: clamp(1.9rem, 5.2vw, 3.3rem); line-height: 1.1; font-weight: 800; }
body.nb-avtokran-landing .entry-content h2 { font-size: clamp(1.45rem, 3.4vw, 2.1rem); line-height: 1.2; font-weight: 800; margin: 0 0 1rem; }
body.nb-avtokran-landing .entry-content h3 { font-size: clamp(1.08rem, 2.4vw, 1.4rem); font-weight: 700; color: var(--avk-text); margin: 0 0 .6rem; }
body.nb-avtokran-landing .entry-content p { color: var(--avk-text-soft); margin: 0 0 1rem; }
body.nb-avtokran-landing .entry-content p:last-child { margin-bottom: 0; }
body.nb-avtokran-landing .entry-content a { color: var(--avk-accent-deep); }
body.nb-avtokran-landing .entry-content strong { color: var(--avk-text); font-weight: 800; }

/* Терракотовые орбы + зерно: возвращают «живой» фон лендинга */
body.nb-avtokran-landing::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background:
    radial-gradient(ellipse 70% 50% at 12% 0%, rgba(224,120,86,.15), transparent 55%),
    radial-gradient(ellipse 60% 45% at 92% 16%, rgba(217,105,74,.11), transparent 55%),
    radial-gradient(ellipse 75% 60% at 50% 105%, rgba(224,120,86,.09), transparent 60%),
    linear-gradient(180deg, #FBF7F0 0%, #F5EDE0 100%);
}
body.nb-avtokran-landing::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .045;
  mix-blend-mode: multiply;
  background-repeat: repeat;
  background-size: 256px 256px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

body.nb-avtokran-landing ::selection { background: rgba(224,120,86,.25); }

/* ══════════════════════════════════════════════════════════════════════
   3. КАРКАС: снимаем сайдбар Spacious и доводим ширину до макета
   ──────────────────────────────────────────────────────────────────────
   Было:  .inner-wrap 1100px − 22px×2          → 1056px
          #primary при tg-column-two             → 66.66%  ≈ 704px
          внутренние отступы #content            → ≈ 664px полезной ширины
   Стало: одна колонка 1180px − 22px×2          → 1136px
   Разница: 664 → 1136px, то есть +71% к месту под текст.
   Макет index.html был рассчитан на .page{max-width:1000px;padding:0 20px}
   → 960px. Значит теперь есть запас, а не нехватка.
   ══════════════════════════════════════════════════════════════════════ */
body.nb-avtokran-landing #main > .inner-wrap { max-width: 1180px; }

body.nb-avtokran-landing #primary {
  float: none;
  width: 100%;
  margin: 0;
  padding: 0;
}
/* Сайдбар с «Свежие записи» и поиском на лендинге не нужен */
body.nb-avtokran-landing #secondary { display: none; }

body.nb-avtokran-landing #content {
  width: 100%;
  float: none;
  padding: 0;
  margin: 0;
}
body.nb-avtokran-landing .entry-content { padding: 0; }

/* Никаких «вылетов за колонку»: тема без theme.json не знает
   --wp--style--global--content-size, и alignwide/alignfull тут лишние */
body.nb-avtokran-landing .entry-content :is(.alignwide, .alignfull, .alignleft, .alignright, .aligncenter) {
  max-width: none;
  float: none;
  margin-left: 0;
  margin-right: 0;
}

/* Spacious прячет заголовок записи в .header-post-title-container */
body.nb-avtokran-landing .header-post-title-container { background: none; }
body.nb-avtokran-landing .entry-title { display: none; }

/* ══════════════════════════════════════════════════════════════════════
   4. КОЛОНКИ — ПОЧИНКА СХЛОПЫВАНИЯ (замеры в Chrome, 4 ширины)
   ──────────────────────────────────────────────────────────────────────
   ПЕРВАЯ попытка не сработала. Разбор через CDP показал три причины:

   1) flex-wrap ПРОИГРЫВАЛ. На проде есть чужое правило
          .wp-block-columns { flex-wrap: nowrap !important }
      внутри @media (min-width: 782px)  (782px = $admin_mobile_max_width
      во freemius-конфиге темы Spacious).
      Моё было без !important → проигрывало. При nowrap колонки не могут
      перенестись, а лишняя ширина уходила соседу.

   2) flex-basis: 0 УБИВАЕТ ПЕРЕНОС. «Хочу 0 пикселей и растяни меня»
      означает, что элемент ВСЕГДА помещается в строку, поэтому wrap
      не срабатывает никогда. Правило «база 0 → честный делёж» верно
      только при nowrap. Как только wrap включён, база должна быть
      РЕАЛЬНОЙ, иначе перенос невозможен.

   3) ЖЁСТКИЕ min-width: 220px / 300px ВЫДАВЛИВАЛИ СОСЕДА В НОЛЬ.
      При nowrap сумма 300px жёсткой базы + gap 20px против контейнера
      76px давала колонку 58px. База 0 и min-width — взаимоисключающие:
      база говорит «дели поровну», min-width говорит «я не меньше N»,
      и при нехватке места выигрывает min-width, а сосед схлопывается.

   РЕШЕНИЕ
   ────────
   • flex-wrap: wrap !important  — перебиваем чужой nowrap !important
     специфичностью (0,3,1) против (0,1,0).
   • flex-basis: 260px (для 2 колонок) / 200px (для 3) — РЕАЛЬНАЯ база.
     Теперь перенос работает: если 2*260+20 > ширины контейнера,
     вторая колонка уходит на новую строку и растягивается на всю ширину.
     Именно это чинит вложенные группы шириной 296px и 251px.
   • min-width: 0 убран как ограничитель — жёсткие значения удалены,
     колонка больше не может выдавить соседа.
   • flex-grow: 1.15 (рычаг 55/45) оставлен: при wrap он безопасен,
     т.к. сжатия не происходит — раскладка определяется базой.
   ══════════════════════════════════════════════════════════════════════ */

/* Контейнер колонок. Без :is() — правило ловит и «сырой» .wp-block-columns
   без класса раскладки, и вариант с is-layout-flex. */
body.nb-avtokran-landing .entry-content .wp-block-columns {
  display: flex !important;
  flex-wrap: wrap !important;   /* ← против nowrap !important из темы */
  align-items: stretch !important;
  gap: var(--avk-gap);
  margin: 0 0 clamp(2.75rem, 6vw, 4.25rem);
  max-width: none;
  width: auto;
}

/* Базовая колонка: реальная база вместо нулевой.
   min-width: 0 остаётся — это не «жёсткий минимум», а разрешение
   сжиматься при нехватке места; перенос теперь обеспечивает wrap. */
body.nb-avtokran-landing .entry-content .wp-block-columns > .wp-block-column {
  flex: 1 1 260px;
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: 260px;
  min-width: 0;
  max-width: none;
  width: auto;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
}
/* Дочерние элементы тоже не держат ширину по контенту */
body.nb-avtokran-landing .entry-content .wp-block-columns > .wp-block-column > * { min-width: 0; }

/* Три колонки (карточки преимуществ): база 200px, чтобы 3 карточки
   помещались в ряд при 672px контейнера (3*200 + 2*20 = 640 ≤ 672). */
body.nb-avtokran-landing .entry-content
  .wp-block-columns:has(> .wp-block-column:nth-child(3)) > .wp-block-column {
  flex-basis: 200px;
}
/* min-width: 0 дублируется здесь СПЕЦИАЛЬНО. В старой версии файла на
   этом же селекторе стояло min-width: 220px. Пока старый CSS ещё в кэше
   страницы (W3TC), его правило (0,6,1) перебивало базовое min-width: 0
   (0,3,1) и колонки снова упирались в жёсткий минимум. Повторяем
   селектор один в один — при равной специфичности побеждает тот, кто
   ниже по файлу. */
body.nb-avtokran-landing .entry-content
  .wp-block-columns:has(> .wp-block-column:nth-child(3)) > .wp-block-column {
  min-width: 0;
}
/* Рычаг 55/45 для пары «цены / почему мы». С flex-basis:260px он больше
   не выдавливает соседа: при нехватке места колонки переносятся, а не
   сжимаются. Ничего не теряем по пропорции. */
body.nb-avtokran-landing .entry-content
  .wp-block-columns > .wp-block-column:nth-child(2):last-child {
  flex-grow: 1.15;
  min-width: 0;   /* здесь раньше было 300px — та же причина, см. выше */
}

/* Вложенные группы колонок (внутри колонки). База 260px — та же, что и
   снаружи: пара 2*260 + 20 = 540px не влезает в узкую карточку (382,
   281, 232px), поэтому колонки переносятся в стопку и занимают всю
   ширину карточки. При базе 180px пара, наоборот, ВЛЕЗАЛА в 382px
   (по 181px каждая) — и снова получались «столбики». */
body.nb-avtokran-landing .entry-content
  .wp-block-column .wp-block-columns > .wp-block-column {
  flex-basis: 260px;
  min-width: 0;
}

/* Внутри колонки заголовок прижат к верху, содержимое — вниз */
body.nb-avtokran-landing .entry-content .wp-block-columns > .wp-block-column > *:first-child { margin-top: 0; }
body.nb-avtokran-landing .entry-content .wp-block-columns > .wp-block-column > *:last-child  { margin-bottom: 0; }

/* ══════════════════════════════════════════════════════════════════════
   5. СТЕКЛО И КАРТОЧКИ
   ══════════════════════════════════════════════════════════════════════ */
body.nb-avtokran-landing .nb-glass,
body.nb-avtokran-landing .wp-block-column.nb-glass,
body.nb-avtokran-landing figure.wp-block-table.nb-glass {
  background: var(--avk-glass);
  -webkit-backdrop-filter: blur(var(--avk-blur));
  backdrop-filter: blur(var(--avk-blur));
  border: 1px solid var(--avk-glass-line);
  border-radius: var(--avk-r-card);
  box-shadow: var(--avk-shadow);
  padding: clamp(1.25rem, 3vw, 1.75rem);
  margin: 0;
  transition: transform .35s var(--avk-ease-spring), box-shadow .35s ease;
}
body.nb-avtokran-landing .nb-glass:hover {
  transform: translateY(-6px);
  box-shadow: var(--avk-shadow-lift);
}

/* Иконка-эмодзи в карточке преимущества: первый div внутри колонки */
body.nb-avtokran-landing .wp-block-columns > .wp-block-column > div:first-child {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  font-size: 1.55rem;
  line-height: 1;
  background: linear-gradient(135deg, rgba(224,120,86,.18), rgba(217,105,74,.08));
  border: 1px solid rgba(224,120,86,.22);
  border-radius: 14px;
  margin: 0 0 1rem;
  flex: 0 0 auto;
}

/* ══════════════════════════════════════════════════════════════════════
   6. HERO (первый wp:cover — без картинок)
   Галерея ниже тоже собрана на wp:cover, поэтому селекторы hero
   получают :not(:has(img)) — блоки не пересекаются по специфичности
   и не спорят друг с другом за одни и те же свойства.
   ══════════════════════════════════════════════════════════════════════ */

/* Заглушка фона от .has-background-dim мешает стеклу — гасим у обоих cover */
body.nb-avtokran-landing .wp-block-cover__background { display: none; }

body.nb-avtokran-landing .entry-content .wp-block-cover.alignfull:not(:has(img)) {
  position: relative;
  border: 1px solid var(--avk-glass-line);
  border-radius: calc(var(--avk-r-card) + 8px);
  box-shadow: var(--avk-shadow);
  padding: clamp(2rem, 6vw, 4rem) clamp(1.25rem, 5vw, 3.5rem);
  margin: 0 0 clamp(2.75rem, 6vw, 4.25rem);
  text-align: center;
  overflow: hidden;
  min-height: 0 !important;
  /* isolation: isolate убран намеренно: вместе с filter-анимацией он создавал
     вложенный композитинг-слой (stacking context + filter render surface),
     из-за чего панель в части движков отрисовывалась чёрной ~через 1 с после
     загрузки. Для наложения панели над фоном cover isolation не нужен:
     .wp-block-cover__inner-container — потомок, он и так рисуется поверх
     фона родителя (position:relative + z-index:1). */
}

body.nb-avtokran-landing .wp-block-cover.alignfull:not(:has(img)) .wp-block-cover__inner-container {
  position: relative;
  z-index: 1;
  background:
    radial-gradient(ellipse 60% 80% at 50% 0%, rgba(224,120,86,.16), transparent 62%),
    var(--avk-glass);
  /* backdrop-filter здесь убран намеренно: за панелью — сплошной чёрный фон
     .wp-block-cover (dim-заглушка), размывать нечего, эффект не даёт.
     При этом связка backdrop-filter + isolation:isolate + анимация на
     cover в части движков (GPU-композитинг) отрисовывала панель чёрной
     ~через 1 с после загрузки. Полупрозрачный var(--avk-glass) даёт тот же
     серый результат обычным alpha-блендингом. */
  border-radius: calc(var(--avk-r-card) + 4px);
  padding: clamp(1.5rem, 4vw, 3rem) clamp(1.25rem, 4vw, 2.75rem);
  width: 100%;
}
body.nb-avtokran-landing .wp-block-cover.alignfull:not(:has(img)) .wp-block-cover__inner-container > p:first-child {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(224,120,86,.10);
  color: var(--avk-accent-deep);
  font-weight: 700;
  font-size: .82rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 8px 18px;
  border: 1px solid rgba(224,120,86,.25);
  border-radius: var(--avk-r-pill);
  margin: 0 0 1.15rem;
}
body.nb-avtokran-landing .wp-block-cover.alignfull:not(:has(img)) h1 { max-width: 20ch; margin: 0 auto 1.15rem; }
body.nb-avtokran-landing .wp-block-cover.alignfull:not(:has(img)) h1 + p {
  color: var(--avk-text-soft);
  font-size: clamp(1.02rem, 2vw, 1.2rem);
  max-width: 56ch;
  margin: 0 auto 1.9rem;
}
body.nb-avtokran-landing .wp-block-cover.alignfull:not(:has(img)) .wp-block-cover__inner-container > div:last-child {
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
}

/* ══════════════════════════════════════════════════════════════════════
   7. КНОПКИ
   ══════════════════════════════════════════════════════════════════════ */
body.nb-avtokran-landing .nb-btn,
body.nb-avtokran-landing .nb-btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: inherit;
  font-weight: 800;
  font-size: 1rem;
  line-height: 1.2;
  text-decoration: none !important;
  border-radius: var(--avk-r-pill);
  cursor: pointer;
  transition: transform .3s var(--avk-ease-spring), box-shadow .3s ease, background .3s ease;
}
body.nb-avtokran-landing .nb-btn {
  background: linear-gradient(135deg, var(--avk-accent), var(--avk-accent-deep));
  color: #fff !important;
  padding: 15px 32px;
  border: none;
  box-shadow: var(--avk-shadow-glow);
}
body.nb-avtokran-landing .nb-btn:hover {
  transform: translateY(-4px) scale(1.03);
  box-shadow: 0 4px 14px rgba(224,120,86,.35), 0 10px 30px rgba(224,120,86,.25), 0 20px 48px rgba(224,120,86,.10);
  color: #fff !important;
}
body.nb-avtokran-landing .nb-btn-outline {
  background: rgba(255,255,255,.55);
  color: var(--avk-accent-deep) !important;
  padding: 13px 30px;
  border: 2px solid var(--avk-accent);
}
body.nb-avtokran-landing .nb-btn-outline:hover {
  background: rgba(224,120,86,.10);
  transform: translateY(-2px);
  color: var(--avk-accent-deep) !important;
}
/* Телефон без класса .nb-btn — ему не хватает только вида */
body.nb-avtokran-landing .wp-block-cover__inner-container > div:last-child a[href^="tel:"]:not(.nb-btn):not(.nb-btn-outline),
body.nb-avtokran-landing .cta > div > div > a[href^="tel:"]:not(.nb-btn):not(.nb-btn-outline) {
  font-size: clamp(1.15rem, 2.6vw, 1.45rem);
  font-weight: 800;
  color: var(--avk-accent-deep) !important;
  text-decoration: none;
  align-self: center;
}

/* ══════════════════════════════════════════════════════════════════════
   8. MEDIA-TEXT (техника)
   ══════════════════════════════════════════════════════════════════════ */
body.nb-avtokran-landing .wp-block-media-text.alignwide {
  display: grid;
  grid-template-columns: minmax(230px, 5fr) 7fr;
  gap: clamp(1.25rem, 4vw, 2.75rem);
  align-items: center;
  margin: 0 0 clamp(2.75rem, 6vw, 4.25rem);
}
body.nb-avtokran-landing .wp-block-media-text__media {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: calc(var(--avk-r-card) - 4px);
  border: 1px solid rgba(224,120,86,.25);
  background: linear-gradient(160deg, rgba(255,255,255,.55), rgba(255,255,255,.12));
}
body.nb-avtokran-landing .wp-block-media-text__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: inherit;
}
body.nb-avtokran-landing .wp-block-media-text__content { min-width: 0; }
body.nb-avtokran-landing .wp-block-media-text__content h2 { margin-top: 0; }
body.nb-avtokran-landing .wp-block-media-text__content p + p { margin-top: .9rem; }

/* ══════════════════════════════════════════════════════════════════════
   9. ЧИПСЫ УСЛУГ
   Редактор срезал классы с обёртки — целимся через :has() по наличию чипа.
   ══════════════════════════════════════════════════════════════════════ */
body.nb-avtokran-landing .entry-content div:has(> .nb-chip) {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
body.nb-avtokran-landing .nb-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255,255,255,.66);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(224,120,86,.25);
  border-radius: var(--avk-r-pill);
  padding: 10px 20px;
  font-family: inherit;
  font-size: .9rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--avk-text);
  transition: background .25s ease, border-color .25s ease, transform .25s ease;
}
body.nb-avtokran-landing .nb-chip:hover {
  background: rgba(224,120,86,.10);
  border-color: var(--avk-accent);
  transform: translateY(-2px);
}

/* ══════════════════════════════════════════════════════════════════════
   10. ТАБЛИЦЫ
   ══════════════════════════════════════════════════════════════════════ */
body.nb-avtokran-landing .wp-block-table,
body.nb-avtokran-landing .wp-block-columns table.nb-table { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* overflow-x на самом <table> ненадёжен (у table-боксов overflow
   применяется не по спецификации), поэтому прокручиваемым делаем
   ОБЁРТКУ — figure/div вокруг таблицы. Именно из-за отсутствия
   прокручиваемой обёртки таблица с min-width:400px выдавливала
   колонку и давала scrollWidth 722px против clientWidth 452px.
   Обёртка режет переполнение по себе — колонка перестаёт течь. */
body.nb-avtokran-landing .wp-block-column :is(figure, .wp-block-table),
body.nb-avtokran-landing .wp-block-column > figure,
body.nb-avtokran-landing .wp-block-column > .wp-block-table {
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
/* Внутри обёртки таблица живёт своей шириной и просто прокручивается */
body.nb-avtokran-landing .wp-block-column :is(figure, .wp-block-table) > table.nb-table {
  max-width: none;
}

body.nb-avtokran-landing table.nb-table {
  width: 100%;
  min-width: 400px;
  margin: 0;
  border-collapse: separate;
  border-spacing: 0;
  font-family: inherit;
  font-size: .95rem;
  color: var(--avk-text);
  border: 0;
  background: transparent;
}

/* Внутри колонки таблица обязана уметь сжиматься.
   Замер показал, что часть таблиц лежит прямо в .wp-block-column
   БЕЗ figure-обёртки (родитель = div.wp-block-column.nb-glass,
   overflow-x: visible). Для них min-width: 400px не прокручивается,
   а просто выдавливает колонку: была ширина 65px при scrollWidth 462px.
   В figure-обёртке прокрутка есть, но проще и надёжнее убрать жёсткую
   базу у всех таблиц внутри колонок — обёртка остаётся страховкой. */
body.nb-avtokran-landing .wp-block-column table.nb-table {
  min-width: 0;
}
body.nb-avtokran-landing .wp-block-column table.nb-table td,
body.nb-avtokran-landing .wp-block-column table.nb-table th {
  overflow-wrap: break-word;   /* длинное слово не должно ронять колонку */
}
body.nb-avtokran-landing table.nb-table thead th {
  background: linear-gradient(135deg, var(--avk-accent), var(--avk-accent-deep));
  color: #fff;
  padding: 13px 16px;
  text-align: left;
  font-weight: 700;
  font-size: .82rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  border: 0;
}
body.nb-avtokran-landing table.nb-table thead th:first-child { border-radius: var(--avk-r-table) 0 0 0; }
body.nb-avtokran-landing table.nb-table thead th:last-child  { border-radius: 0 var(--avk-r-table) 0 0; }
body.nb-avtokran-landing table.nb-table td {
  padding: 11px 16px;
  border: 0;
  border-bottom: 1px solid rgba(0,0,0,.06);
  text-align: left;
  vertical-align: top;
}
body.nb-avtokran-landing table.nb-table tbody tr:last-child td { border-bottom: none; }
body.nb-avtokran-landing table.nb-table tbody tr:nth-child(even) td { background: var(--avk-bg); }
body.nb-avtokran-landing table.nb-table tbody tr { transition: background .2s ease; }
body.nb-avtokran-landing table.nb-table tbody tr:hover td { background: rgba(224,120,86,.07); }
body.nb-avtokran-landing table.nb-table td strong { font-weight: 800; }

/* ══════════════════════════════════════════════════════════════════════
   11. «ПОЧЕМУ ВЫБИРАЮТ НАС»
   Списка в разметке нет — редактор превратил ul/li в div, классы срезал.
   Восстанавливаем вид по структуре: колонка, у которой внутри есть strong.
   ══════════════════════════════════════════════════════════════════════ */
body.nb-avtokran-landing .wp-block-column > div:has(> div > strong) {
  display: grid;
  gap: 16px;
}
body.nb-avtokran-landing .wp-block-column > div:has(> div > strong) > div {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
body.nb-avtokran-landing .wp-block-column > div:has(> div > strong) > div > span {
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .85rem;
  line-height: 1;
  background: linear-gradient(135deg, rgba(224,120,86,.18), rgba(217,105,74,.08));
  border: 1px solid rgba(224,120,86,.25);
  border-radius: 9px;
}
body.nb-avtokran-landing .wp-block-column > div:has(> div > strong) strong { display: block; font-weight: 800; }
body.nb-avtokran-landing .wp-block-column > div:has(> div > strong) p {
  margin: 2px 0 0;
  font-size: .9rem;
}

/* ══════════════════════════════════════════════════════════════════════
   12. ГАЛЕРЕЯ «ПРИМЕРЫ РАБОТ»
   Тоже wp:cover — переиспользуем стеклянный блок, но сетка 4×1.
   ══════════════════════════════════════════════════════════════════════ */
body.nb-avtokran-landing .entry-content .wp-block-cover:has(img) {
  text-align: left;
}
body.nb-avtokran-landing .wp-block-cover:has(img) .wp-block-cover__inner-container { text-align: left; }
body.nb-avtokran-landing .wp-block-cover:has(img) .wp-block-cover__inner-container > div:has(> div > img) {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 1.25rem;
}
body.nb-avtokran-landing .wp-block-cover:has(img) .wp-block-cover__inner-container > div:has(> div > img) > div {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: var(--avk-r-card);
  border: 1px solid rgba(224,120,86,.25);
  box-shadow: var(--avk-shadow);
  transition: transform .35s var(--avk-ease-spring), box-shadow .35s ease;
}
body.nb-avtokran-landing .wp-block-cover:has(img) .wp-block-cover__inner-container > div:has(> div > img) > div:hover {
  transform: translateY(-6px);
  box-shadow: var(--avk-shadow-lift);
}
body.nb-avtokran-landing .wp-block-cover:has(img) img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s var(--avk-ease-out);
}
body.nb-avtokran-landing .wp-block-cover:has(img) .wp-block-cover__inner-container > div:has(> div > img) > div:hover img {
  transform: scale(1.05);
}

/* ══════════════════════════════════════════════════════════════════════
   13. FAQ
   ══════════════════════════════════════════════════════════════════════ */
body.nb-avtokran-landing details.nb-faq {
  background: var(--avk-glass);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(0,0,0,.06);
  border-radius: var(--avk-r-table);
  margin: 0 0 12px;
  overflow: hidden;
  transition: border-color .3s ease, box-shadow .3s ease;
}
body.nb-avtokran-landing details.nb-faq[open] {
  border-color: var(--avk-accent);
  box-shadow: 0 0 0 1px rgba(224,120,86,.14), var(--avk-shadow);
}
body.nb-avtokran-landing details.nb-faq summary {
  padding: 16px 20px;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.4;
  color: var(--avk-text);
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  user-select: none;
}
body.nb-avtokran-landing details.nb-faq summary::-webkit-details-marker { display: none; }
body.nb-avtokran-landing details.nb-faq summary::marker { content: ""; }
body.nb-avtokran-landing details.nb-faq summary::after {
  content: "+";
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  font-weight: 400;
  line-height: 1;
  color: #fff;
  background: linear-gradient(135deg, var(--avk-accent), var(--avk-accent-deep));
  border-radius: 50%;
  transition: transform .3s ease;
}
/* Плюс, повёрнутый на 45°, даёт крестик — без лишнего глифа */
body.nb-avtokran-landing details.nb-faq[open] summary::after { transform: rotate(45deg); }
body.nb-avtokran-landing details.nb-faq > p {
  margin: 0;
  padding: 0 20px 18px;
  color: var(--avk-text-soft);
  line-height: 1.65;
}

/* ══════════════════════════════════════════════════════════════════════
   14. БЛОК CTA («ГОТОВЫ НАЧАТЬ РАБОТУ?»)
   wp:buttons — классов почти нет, ищем по h2 внутри.
   ══════════════════════════════════════════════════════════════════════ */
body.nb-avtokran-landing .wp-block-buttons.alignwide:has(h2) {
  text-align: center;
  background:
    radial-gradient(ellipse 60% 80% at 50% 0%, rgba(224,120,86,.15), transparent 62%),
    var(--avk-glass);
  -webkit-backdrop-filter: blur(var(--avk-blur));
  backdrop-filter: blur(var(--avk-blur));
  border: 1px solid var(--avk-glass-line);
  border-radius: calc(var(--avk-r-card) + 8px);
  box-shadow: var(--avk-shadow);
  padding: clamp(2rem, 5vw, 3.25rem) clamp(1.25rem, 4vw, 2.75rem);
  margin: 0 0 clamp(2.75rem, 6vw, 4.25rem);
}
body.nb-avtokran-landing .wp-block-buttons.alignwide:has(h2) h2 { margin-bottom: .5rem; }
body.nb-avtokran-landing .wp-block-buttons.alignwide:has(h2) p {
  color: var(--avk-text-soft);
  font-size: 1.05rem;
  max-width: 52ch;
  margin: 0 auto 1.75rem;
}
body.nb-avtokran-landing .wp-block-buttons.alignwide:has(h2) > div > div {
  display: flex;
  gap: 16px;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}

/* ══════════════════════════════════════════════════════════════════════
   15. SEO-ФУТЕР (мелкий текст под CTA)
   ══════════════════════════════════════════════════════════════════════ */
body.nb-avtokran-landing .entry-content > .wp-block-group:last-child p {
  color: var(--avk-text-soft);
  font-size: .88rem;
  line-height: 1.75;
  max-width: 82ch;
  margin: 0 auto;
  text-align: center;
  border-top: 1px solid rgba(224,120,86,.16);
  padding-top: 1.75rem;
}

/* Пустые группы-обёртки не должны давать лишний вертикальный отступ */
body.nb-avtokran-landing .entry-content > .wp-block-group { margin: 0 0 clamp(2.75rem, 6vw, 4.25rem); }
body.nb-avtokran-landing .entry-content > .wp-block-group:last-child { margin-bottom: 0; }

/* ══════════════════════════════════════════════════════════════════════
   16. ВХОДНЫЕ АНИМАЦИИ
   ══════════════════════════════════════════════════════════════════════ */
@keyframes avk-rise-in {
  from { opacity: 0; transform: translateY(26px) scale(.985); filter: blur(6px); }
  to   { opacity: 1; transform: translateY(0) scale(1);      filter: blur(0); }
}
/* Hero-cover получает вариант БЕЗ filter: filter (даже blur(0)) не равен none
   и создаёт filter render surface. В связке с overflow:hidden + border-radius
   (скруглённый клип) это давало чёрную панель ~через 1 с после загрузки.
   Анимация входа (opacity + translateY + scale) сохранена. */
@keyframes avk-rise-in-plain {
  from { opacity: 0; transform: translateY(26px) scale(.985); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
body.nb-avtokran-landing .wp-block-cover.alignfull { animation: avk-rise-in-plain .9s var(--avk-ease-out) both; }
body.nb-avtokran-landing .entry-content > *:not(.wp-block-cover) {
  animation: avk-rise-in .8s var(--avk-ease-out) both;
  animation-timeline: view();
  animation-range: entry 0% entry 30%;
}
/* Ставим ступенчатый сдвиг, чтобы секции не мигали одновременно */
body.nb-avtokran-landing .entry-content > *:nth-child(2) { animation-delay: .05s; }
body.nb-avtokran-landing .entry-content > *:nth-child(3) { animation-delay: .10s; }
body.nb-avtokran-landing .entry-content > *:nth-child(4) { animation-delay: .15s; }
body.nb-avtokran-landing .entry-content > *:nth-child(5) { animation-delay: .20s; }
body.nb-avtokran-landing .entry-content > *:nth-child(6) { animation-delay: .25s; }
body.nb-avtokran-landing .entry-content > *:nth-child(7) { animation-delay: .30s; }
body.nb-avtokran-landing .entry-content > *:nth-child(8) { animation-delay: .35s; }

/* ══════════════════════════════════════════════════════════════════════
   17. АДАПТИВ
   Порог 1024px, а не 860px из старого CSS: контейнер стал шире (1180px),
   при 860px три колонки всё ещё влезали бы, но 220px на карточку — впритык.
   ══════════════════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  body.nb-avtokran-landing .entry-content .wp-block-media-text.alignwide {
    grid-template-columns: 1fr;
  }
  body.nb-avtokran-landing .wp-block-media-text__media { aspect-ratio: 16 / 9; }
  body.nb-avtokran-landing .wp-block-cover:has(img) .wp-block-cover__inner-container > div:has(> div > img) {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 780px) {
  body.nb-avtokran-landing .nb-glass:hover { transform: translateY(-3px); box-shadow: var(--avk-shadow); }
}
@media (max-width: 700px) {
  body.nb-avtokran-landing #main > .inner-wrap { padding: 0 16px; }
  /* Одна колонка на телефоне: база 100% гарантирует перенос каждой
     колонки на свою строку. !important — чтобы перебить возможные
     !important-правила темы на мобильных. */
  body.nb-avtokran-landing .entry-content .wp-block-columns > .wp-block-column,
  body.nb-avtokran-landing .entry-content
    .wp-block-columns:has(> .wp-block-column:nth-child(3)) > .wp-block-column,
  body.nb-avtokran-landing .entry-content
    .wp-block-column .wp-block-columns > .wp-block-column {
    flex: 1 1 100% !important;
    flex-basis: 100% !important;
    min-width: 0;
  }
  body.nb-avtokran-landing .entry-content .wp-block-columns > .wp-block-column:nth-child(2):last-child { flex-grow: 1; }
  body.nb-avtokran-landing .wp-block-cover:has(img) .wp-block-cover__inner-container > div:has(> div > img) {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 480px) {
  /* Только hero-кнопки: сетку галереи этот селектор ломать не должен */
  body.nb-avtokran-landing .wp-block-cover.alignfull:not(:has(img)) .wp-block-cover__inner-container > div:last-child,
  body.nb-avtokran-landing .wp-block-buttons.alignwide:has(h2) > div > div {
    flex-direction: column;
  }
  body.nb-avtokran-landing .nb-btn,
  body.nb-avtokran-landing .nb-btn-outline {
    width: 100%;
    justify-content: center;
    font-size: .95rem;
    padding: 14px 22px;
  }
}

/* ══════════════════════════════════════════════════════════════════════
   18. УВАЖЕНИЕ К НАСТРОЙКАМ СИСТЕМЫ
   ══════════════════════════════════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
  body.nb-avtokran-landing *,
  body.nb-avtokran-landing *::before,
  body.nb-avtokran-landing *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    animation-timeline: auto !important;
    transition-duration: .01ms !important;
  }
}

/* ══════════════════════════════════════════════════════════════════════
   19. ПЕЧАТЬ
   ══════════════════════════════════════════════════════════════════════ */
@media print {
  body.nb-avtokran-landing { background: #fff; }
  body.nb-avtokran-landing::before,
  body.nb-avtokran-landing::after { display: none; }
  body.nb-avtokran-landing .nb-glass,
  body.nb-avtokran-landing details.nb-faq { backdrop-filter: none; -webkit-backdrop-filter: none; box-shadow: none; }
  body.nb-avtokran-landing .entry-content > * { animation: none; }
}