/*
Theme Name: ДНК — фитнес-лаборатория
Theme URI: https://dnkbody.ru/
Author: ЭЛЭВЕН ЛАБ
Author URI: https://dnkbody.ru/
Description: Кастомная тема лендинга фитнес-лаборатории «ДНК». Собрана из статичной вёрстки, весь контент управляется через ACF Pro (группа «Главная страница» и страница опций «Настройки сайта»). Bootstrap 5, без jQuery.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: dnk
Tags: custom-theme, landing, acf, bootstrap
*/

/* -----------------------------------------------------------------------------
   Этот файл нужен WordPress только как «паспорт» темы.
   Вся вёрстка живёт в отдельных файлах и подключается из inc/enqueue.php:

     assets/vendor/bootstrap.min.css  — Bootstrap 5
     assets/fonts/fonts.css           — локальные шрифты
     css/styles.css                   — основные стили вёрстки
     css/animations.css               — слой анимаций
     css/map.css                      — слой интерактивной карты
     css/modal.css                    — слой модальных окон

   Этот файл подключается последним, поэтому сюда можно дописывать
   точечные правки, не трогая исходные файлы вёрстки.
   -------------------------------------------------------------------------- */

/* -----------------------------------------------------------------------------
   1. Текст пункта аккордеона.
   В вёрстке это был один <p class="change__a-text">. В теме поле редактируется
   визуальным редактором и может содержать несколько абзацев, поэтому обёртка
   стала <div>. Гасим внешние отступы у первого и последнего потомка —
   так одиночный абзац выглядит ровно как в исходной вёрстке.
   -------------------------------------------------------------------------- */
.change__a-text > :first-child { margin-top: 0; }
.change__a-text > :last-child  { margin-bottom: 0; }
.change__a-text p              { font: inherit; color: inherit; }

/* -----------------------------------------------------------------------------
   2. Внутренние страницы (политика, соглашение, 404, записи).
   В макете таких экранов нет — оформление минимальное, на токенах темы.
   -------------------------------------------------------------------------- */
.page-content {
  padding: clamp(40px, 6vw, 110px) 0 clamp(60px, 8vw, 140px);
  position: relative;
  z-index: 1;
}

.entry {
  max-width: 900px;
  font-weight: 300;
  font-size: clamp(14px, .95vw, 18px);
  line-height: 1.55;
  color: var(--ink, #fff);
}

.entry h2,
.entry h3,
.entry h4 { margin: 1.6em 0 .6em; font-weight: 500; line-height: 1.2; }
.entry h2 { font-size: clamp(22px, 2vw, 34px); }
.entry h3 { font-size: clamp(19px, 1.5vw, 26px); }
.entry h4 { font-size: clamp(17px, 1.2vw, 21px); }

.entry p,
.entry ul,
.entry ol { margin: 0 0 1em; }

.entry a { color: var(--accent, #bbd043); text-decoration: underline; }
.entry a:hover { text-decoration: none; }

.entry__thumb { display: block; max-width: 100%; height: auto; margin: 0 0 1.5em; border-radius: 20px; }

.entry__item { padding: 0 0 clamp(24px, 3vw, 44px); }
.entry__item-title { margin: 0 0 .4em; font-size: clamp(20px, 1.8vw, 30px); font-weight: 500; }
.entry__item-title a { color: inherit; text-decoration: none; }
.entry__item-title a:hover { color: var(--accent, #bbd043); }

.entry--404 .btn-dnk { margin-top: clamp(16px, 2vw, 28px); }

.page-content .pagination { margin-top: clamp(20px, 2.5vw, 40px); }
.page-content .page-numbers { display: inline-block; padding: .35em .75em; color: var(--ink, #fff); text-decoration: none; }
.page-content .page-numbers.current { color: var(--accent, #bbd043); }

/* -----------------------------------------------------------------------------
   3. Формы заявок: honeypot и строка статуса отправки.
   -------------------------------------------------------------------------- */

/* Приманка для ботов. Не display:none — часть ботов такие поля пропускает.
   Уводим за край экрана, из потока вынимаем, чтобы не ломать сетку формы. */
.dnk-hp {
  position: absolute !important;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

.form-status {
  margin: 0;
  font-weight: 300;
  font-size: clamp(12px, .78vw, 15px);
  line-height: 1.4;
  color: var(--muted, #9a9a9a);
  min-height: 1px;
}

.form-status.is-success { color: var(--accent, #bbd043); }
.form-status.is-error   { color: #ff6b5e; }
.form-status:empty      { display: none; }

/* На мобильном визарде колонка отправки раскрывается через display:contents,
   и её дети раскладываются order'ом внутри формы: согласие 1, навигация 2,
   правовой текст 3. Статус ставим рядом с навигацией — по DOM он идёт раньше,
   значит окажется прямо над кнопками. */
@media (max-width: 600px) {
  .lead-form__form[data-step] .form-status { order: 2; }
}

/* Кнопка на время отправки */
.btn-dnk.is-loading,
.form-nav__btn.is-loading { opacity: .6; cursor: progress; }

/* Логотип из медиатеки (ACF Options / настройщик) не должен ломать раскладку. */
.mobile-menu__logo,
.footer__logo img,
.topbar__logo img { max-width: 100%; }
