/*
Theme Name: Hello Elementor Child — Налог Консалт
Description: Дочерняя тема Hello Elementor для сайта «Налог Консалт». Содержит фирменные стили сайта (assets/css), скрипты и интеграцию (классы body, фавиконка). Правки оформления вносите сюда, а не в родительскую тему.
Template: hello-elementor
Version: 1.0.0
Author: Налог Консалт
Text Domain: hello-elementor-child
*/

/* Базовые правки поверх фирменных стилей — при необходимости добавляйте ниже. */

/*
 * Сброс ресетов Hello Elementor, которых не было в исходной вёрстке.
 * button{white-space:nowrap} резал длинные вопросы аккордеонов на мобильных.
 */
button:not(.elementor-button):not(.elementor-menu-toggle):not(.elementor-search-form__submit) {
  white-space: normal;
}

/*
 * Полоса фактов в шапке главной: на планшетах четыре колонки не помещаются
 * (в исходной вёрстке последняя уезжала за экран). Переключаем на две колонки
 * раньше — теми же правилами, что и на мобильных.
 */
/*
 * Обёртки виджетов в полосе фактов делаем прозрачными для сетки:
 * тогда ячейками становятся сами блоки, и разделительные линии идут на всю высоту.
 */
#nk-home-seo-revision .e-con.nk-preview-facts > .elementor-widget {
  display: contents;
}

@media (max-width: 1080px) {
  #nk-home-seo-revision .e-con.nk-preview-facts,
  #nk-home-seo-revision .nk-preview-facts.nk-b {
    grid-template-columns: repeat(2, 1fr);
  }

  #nk-home-seo-revision .e-con.nk-preview-facts strong,
  #nk-home-seo-revision .nk-preview-facts.nk-b strong {
    font-size: 24px;
    white-space: normal;
  }

  #nk-home-seo-revision .e-con.nk-preview-facts > div,
  #nk-home-seo-revision .e-con.nk-preview-facts > :where(.elementor-widget) > div {
    min-height: 105px;
    padding: 20px 14px;
    border-right: 0;
    border-bottom: 1px solid var(--nk-border);
  }

  #nk-home-seo-revision .e-con.nk-preview-facts > div:nth-child(odd),
  #nk-home-seo-revision .e-con.nk-preview-facts > :where(.elementor-widget):nth-child(odd) > div {
    border-right: 1px solid var(--nk-border);
  }

  #nk-home-seo-revision .e-con.nk-preview-facts > div:nth-last-child(-n + 2),
  #nk-home-seo-revision .e-con.nk-preview-facts > :where(.elementor-widget):nth-last-child(-n + 2) > div {
    border-bottom: 0;
  }
}

/*
 * Кнопка в шапке на планшетах и ниже не показывается — как в исходной вёрстке
 * (там это делало правило .nk-header__actions .nk-button при max-width: 1180px).
 */
@media (max-width: 1180px) {
  .nk-header .nk-cta {
    display: none;
  }
}

/* Нативный хедер на виджетах Elementor (лого, Nav Menu, кнопка). */
.nk-header .nk-logo { width: 185px; }
.nk-header .nk-logo img,
.nk-header .elementor-widget-image img,
.nk-header .elementor-widget-image a img[src$=".svg"] { width: 185px; height: auto; max-width: none; }

.nk-topline__inner.e-con { flex-direction: row; align-items: center; }

.nk-header .elementor-nav-menu--main .elementor-nav-menu { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }

.nk-header .elementor-nav-menu--main .elementor-item {
  position: relative;
  padding: 12px 10px;
  color: #39465b;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.nk-header .elementor-nav-menu--main .elementor-item:hover,
.nk-header .elementor-nav-menu--main .elementor-item.elementor-item-active {
  color: var(--nk-teal-dark, #2a817c);
}
.nk-header .elementor-nav-menu--main .elementor-item:after {
  position: absolute;
  right: 10px;
  bottom: 7px;
  left: 10px;
  height: 2px;
  content: "";
  background: var(--nk-teal, #56b7b0);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 180ms ease;
}
.nk-header .elementor-nav-menu--main .elementor-item:hover:after { transform: scaleX(1); }
.nk-header .elementor-nav-menu--main .sub-menu {
  background: #ffffff;
  border: 1px solid rgba(220, 228, 237, 0.9);
  border-radius: 12px;
  box-shadow: 0 24px 50px rgba(14, 35, 66, 0.14);
  padding: 8px;
}
.nk-header .elementor-nav-menu--main .sub-menu .elementor-item,
.nk-header .elementor-nav-menu--main .sub-menu .elementor-sub-item {
  padding: 9px 12px;
  color: #39465b;
  font-size: 14px;
  font-weight: 600;
  border-radius: 8px;
}
.nk-header .elementor-nav-menu--main .sub-menu .elementor-sub-item:hover {
  color: var(--nk-teal-dark, #2a817c);
  background: #eef6f5;
}
.nk-header .elementor-nav-menu--main .sub-menu .elementor-item:after,
.nk-header .elementor-nav-menu--main .sub-menu .elementor-sub-item:after { content: none; }

.nk-header .nk-cta .elementor-button {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 22px;
  border-radius: 8px;
  color: #ffffff;
  background: var(--nk-teal-dark, #2a817c);
  font-size: 13px;
  font-weight: 700;
  box-shadow: 0 12px 24px rgba(42, 129, 124, 0.2);
}
.nk-header .nk-cta .elementor-button:hover { background: #256d69; color: #ffffff; }

.nk-header .elementor-menu-toggle {
  color: var(--nk-navy, #0a2a63);
  border: 1px solid rgba(220, 228, 237, 0.9);
  border-radius: 8px;
  padding: 8px;
}
.nk-header .elementor-nav-menu--dropdown {
  background: #ffffff;
  box-shadow: 0 24px 50px rgba(14, 35, 66, 0.14);
}
.nk-header .elementor-nav-menu--dropdown .elementor-item,
.nk-header .elementor-nav-menu--dropdown .elementor-sub-item {
  color: #39465b;
  font-size: 16px;
  font-weight: 600;
}

/*
 * nk-mobile-dropdown-position
 * Панель мобильного меню оставалась в потоке (position: static): шапка
 * растягивалась на всю высоту списка, а сама панель была шириной виджета
 * (140px) и переносила пункты. Выносим её под шапку на всю ширину экрана.
 */
@media (max-width: 1024px) {
  .nk-header nav.elementor-nav-menu--dropdown {
    position: absolute;
    top: 100%;
    right: 0;
    left: 0;
    z-index: 9997;
    width: auto;
    margin-top: 0;
    border-radius: 0 0 14px 14px;
  }

  .nk-header .elementor-nav-menu--dropdown .elementor-item {
    padding: 14px 20px;
  }

  .nk-header .elementor-nav-menu--dropdown .elementor-sub-item {
    padding: 12px 20px 12px 34px;
  }

  /*
   * nk-mobile-dropdown-highlight
   * У раскрытого/нажатого пункта Elementor ставит свой тёмно-серый фон,
   * а цвет текста у нас фирменный тёмно-синий — текст пропадал.
   */
  .nk-header .elementor-nav-menu--dropdown a.elementor-item:hover,
  .nk-header .elementor-nav-menu--dropdown a.elementor-item:focus,
  .nk-header .elementor-nav-menu--dropdown a.elementor-item.elementor-item-active,
  .nk-header .elementor-nav-menu--dropdown a.elementor-item.highlighted,
  .nk-header .elementor-nav-menu--dropdown a.elementor-sub-item:hover,
  .nk-header .elementor-nav-menu--dropdown a.elementor-sub-item:focus,
  .nk-header .elementor-nav-menu--dropdown a.elementor-sub-item.elementor-item-active,
  .nk-header .elementor-nav-menu--dropdown a.elementor-sub-item.highlighted {
    color: var(--nk-teal-dark, #2a817c);
    background-color: #eef6f5;
  }
}

/* Страховка от горизонтального скролла на мобильных устройствах. */
html {
  overflow-x: clip;
}

/*
 * Мобильные: колонка «1fr» в CSS Grid не ужимается ниже min-content,
 * из-за чего секция контактов распирала экран на ~14px. minmax(0, 1fr)
 * позволяет колонкам сжиматься до ширины экрана.
 */
@media (max-width: 820px) {
  .nk-section-heading--split,
  .nk-hero__grid,
  .nk-documents__grid,
  .nk-outcomes__layout,
  .nk-complex__grid,
  .nk-faq__grid,
  .nk-contact__grid,
  .nk-contact-final .nk-contact__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .nk-contact-final__checklist,
  .nk-contact-final__checklist > div {
    min-width: 0;
    max-width: 100%;
  }

  .nk-contact__facts > div {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .nk-contact__copy,
  .nk-contact__card,
  .nk-contact__email {
    min-width: 0;
    max-width: 100%;
  }

  .nk-contact__email,
  .nk-contact__email a {
    overflow-wrap: anywhere;
  }
}

/*
 * nk-widget-position-restore
 * Классы фирменной вёрстки оказались на обёртке виджета Elementor, а общее
 * правило .elementor-widget.nk-w{position:static} сбрасывало им position из CSS сайта:
 * абсолютные подписи к картинкам уезжали за пределы блока и налезали на текст.
 */
.elementor-widget.nk-about-geography__media,
.elementor-widget.nk-about-hero__media,
.elementor-widget.nk-appeal-documents__media,
.elementor-widget.nk-appeal-hero__media,
.elementor-widget.nk-appeal-process__media,
.elementor-widget.nk-demand-system__media,
.elementor-widget.nk-effective-hero__media,
.elementor-widget.nk-effective-process__media,
.elementor-widget.nk-effective-tracks__media,
.elementor-widget.nk-faq__media,
.elementor-widget.nk-geography__media,
.elementor-widget.nk-load-hero__media,
.elementor-widget.nk-load-operation__media,
.elementor-widget.nk-load-team__media,
.elementor-widget.nk-materials-first-actions__media,
.elementor-widget.nk-objection-process__media,
.elementor-widget.nk-objection-situations__media,
.elementor-widget.nk-risk-hero__media,
.elementor-widget.nk-risk-method__media,
.elementor-widget.nk-services-continuity__media,
.elementor-widget.nk-services-hero__media {
  position: relative;
}

.elementor-widget.nk-desk-hero__media,
.elementor-widget.nk-objection-hero__media {
  position: absolute;
}

/*
 * nk-paragraph-margins
 * Исходная вёрстка опиралась на браузерные отступы абзацев (margin-block: 1em),
 * а Hello Elementor ресетит верхний в 0 — текст слипался с заголовками.
 * Половинный отступ с двух сторон: в Elementor абзацы лежат в отдельных flex-обёртках
 * и их margin не схлопываются, как в исходной вёрстке.
 */
.nk-page p,
.nk-header p,
.nk-footer p {
  margin-block: 0.5em;
}

/*
 * nk-figcaption-style
 * Hello Elementor делает подписи к картинкам курсивом — в исходной вёрстке курсива нет.
 */
figcaption,
.wp-caption-text {
  font-style: normal;
}

/*
 * nk-hero-media-stretch
 * В исходной вёрстке картинка hero была ячейкой сетки и тянулась на высоту строки
 * (до max-height 650px). В Elementor ячейкой стала обёртка виджета, и картинка внутри
 * перестала растягиваться — была ниже оригинала на ~150px.
 */
.elementor-widget:has(> .nk-hero__media, > * > .nk-hero__media) {
  align-self: stretch;
}

.elementor-widget:has(> .nk-hero__media, > * > .nk-hero__media) > * {
  height: 100%;
}

.e-con .nk-hero__media,
.e-con .nk-hero__media img {
  height: 100%;
}

/*
 * nk-caption-grid-cell
 * Блок на главной — сетка из двух ячеек: картинка слева, текст справа.
 * Elementor оборачивает картинку с подписью в <figure class="wp-caption">, и она становится
 * единственной ячейкой: текст уезжал под картинку (белым по белому), а правая
 * половина блока оставалась пустой. display:contents возвращает обе ячейки в сетку.
 */
#nk-home-seo-revision .nk-preview-services__visual > figure.wp-caption {
  display: contents;
}

#nk-home-seo-revision .nk-preview-services__visual figcaption.widget-image-caption {
  text-align: left;
}

/*
 * nk-caption-align
 * Elementor центрует подписи к картинкам (.widget-image-caption), а в исходной
 * вёрстке они выровнены по левому краю (кроме фото команды на странице услуг).
 */
.elementor-widget-image .widget-image-caption {
  text-align: left;
}

.nk-services-team__media .widget-image-caption {
  text-align: right;
}

/*
 * nk-contact-routes-3col
 * На «Контактах» по правкам удалена 4-я карточка («Профилактика») — сетка
 * «С чем вы обращаетесь» переведена на 3 колонки. Ссылки прижаты к низу
 * карточки, под меткой стадии возвращён отступ (номер не наезжает на заголовок).
 */
.elementor .nk-contact-routes__grid.e-con {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.nk-contact-route.e-con > .elementor-widget:has(> .nk-contact-route__stage) {
  margin-bottom: 40px;
}

.nk-contact-route.e-con > .elementor-widget:last-child {
  margin-top: auto;
}

.nk-contact-route h3 {
  max-width: 340px;
}

@media (max-width: 900px) {
  .elementor .nk-contact-routes__grid.e-con {
    grid-template-columns: 1fr;
  }

  .elementor .nk-contact-route.e-con {
    min-height: 0;
  }

  .nk-contact-route.e-con > .elementor-widget:last-child {
    margin-top: 12px;
  }
}

/*
 * nk-cards-3col
 * «Полезные материалы» и «О компании»: по правкам удалена 4-я карточка («Профилактика»),
 * сетки переведены на 3 колонки; ссылки прижаты к низу карточек (как на «Контактах»).
 */
.elementor .nk-materials-navigator__grid.e-con,
.elementor .nk-about-focus__grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.nk-material-folder.e-con > .elementor-widget:last-child,
.nk-about-focus__card.e-con > .elementor-widget:last-child {
  margin-top: auto;
}

@media (max-width: 900px) {
  .elementor .nk-materials-navigator__grid.e-con,
  .elementor .nk-about-focus__grid {
    grid-template-columns: 1fr;
  }

  .elementor .nk-material-folder.e-con,
  .elementor .nk-about-focus__card {
    min-height: 0;
  }

  .nk-material-folder.e-con > .elementor-widget:last-child,
  .nk-about-focus__card.e-con > .elementor-widget:last-child {
    margin-top: 12px;
  }
}

/*
 * nk-agreement-flow-intro
 * «Согласие»: колонка заголовка «Что происходит после подтверждения» была уже
 * самого длинного слова — колонки уравнены.
 */
@media (min-width: 981px) {
  .elementor .nk-agreement-flow__intro.e-con {
    grid-template-columns: minmax(0, 1fr) minmax(420px, 1fr);
  }
}

/*
 * nk-captcha-error — сообщение, если заявку отклонила защита от спама (reCAPTCHA).
 */
.nk-captcha-error {
  grid-column: 1 / -1;
  margin: 0 0 12px;
  padding: 12px 14px;
  color: var(--nk-danger, #b42318);
  background: rgba(180, 35, 24, 0.06);
  border: 1px solid rgba(180, 35, 24, 0.25);
  border-radius: 10px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
}

/*
 * nk-captcha-badge — значок reCAPTCHA перекрывал контент в правом нижнем углу на телефонах;
 * скрыт (по решению заказчика без текстового упоминания reCAPTCHA на сайте).
 */
.grecaptcha-badge {
  visibility: hidden;
}


/*
 * nk-inline-link — ссылки на соседние услуги внутри текста (перелинковка).
 */
.nk-page a.nk-inline-link {
  color: #0a2a63;
  text-decoration: underline;
  text-decoration-color: rgba(42, 129, 124, 0.55);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.nk-page a.nk-inline-link:hover {
  color: #23706b;
  text-decoration-color: currentColor;
}

/*
 * nk-audit-layout — исправления вёрстки по аудиту 19.09.2026.
 */

/* Анализ нагрузки: на телефоне схема «Существенные эпизоды» — в одну колонку. */
@media (max-width: 760px) {
  .elementor .nk-load-scope__map.e-con {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: none;
  }

  .elementor .nk-load-scope__map.e-con > .nk-load-scope__item,
  .elementor .nk-load-scope__map.e-con > .elementor-widget {
    grid-area: auto;
    grid-column: 1 / -1;
  }
}

/* Правила передачи документов: плашки схемы не перекрывают друг друга. */
.elementor .nk-docs-route-visual__vault.e-con {
  width: auto;
  --width: auto;
  left: auto;
  right: 0;
}

@media (min-width: 721px) {
  .elementor .nk-docs-route-visual.e-con {
    min-height: 680px;
  }

  .elementor .nk-docs-route-visual__timer {
    top: 500px;
    bottom: auto;
  }
}

@media (min-width: 981px) and (max-width: 1180px) {
  .elementor .nk-docs-hero__layout.e-con {
    grid-template-columns: minmax(0, 1fr);
  }

  .elementor .nk-docs-route-visual.e-con {
    width: min(570px, 100%);
    --width: min(570px, 100%);
    margin: 0 auto;
    transform: none;
  }
}

/* Плашки «1 месяц», «Без отдельного решения», карточка 07 возражений — на телефоне в столбик. */
@media (max-width: 620px) {
  .elementor .nk-appeal-deadline.e-con,
  .elementor .nk-desk-hero__notice.e-con,
  .elementor .nk-objection-scope-card--wide.e-con {
    grid-template-columns: minmax(0, 1fr);
  }

  .elementor .nk-appeal-deadline.e-con > *,
  .elementor .nk-desk-hero__notice.e-con > *,
  .elementor .nk-objection-scope-card--wide.e-con > * {
    grid-column: 1 / -1;
    justify-self: start;
    max-width: 100%;
  }
}

/* Контакты: на телефоне подпись под картой не перекрывается карточкой адреса. */
@media (max-width: 620px) {
  .nk-contact-geography__media figcaption {
    position: relative;
    inset: auto;
    width: auto;
    margin-top: 12px;
  }

  .elementor .nk-contact-geography__media,
  .nk-contact-geography__media {
    min-height: 0;
  }
}

/* Доначисления: на телефоне плашка «Первый шаг» не уходит под блок фактов. */
@media (max-width: 580px) {
  .e-con .nk-hero__media {
    height: auto;
  }
}

/* Как проверить требование: схема требования не обрезается. */
.elementor .nk-demand-anatomy.e-con {
  overflow: visible;
}

@media (max-width: 1180px) {
  .elementor .nk-demand-hero__layout.e-con {
    grid-template-columns: minmax(0, 1fr);
  }

  .elementor .nk-demand-anatomy.e-con {
    width: min(560px, 100%);
    --width: min(560px, 100%);
    margin: 0 auto;
  }
}

@media (min-width: 1024px) {
  .elementor .nk-demand-check-card--wide.e-con > .elementor-widget:nth-child(4) {
    grid-column: 2 / -1;
  }
}

/* Главная: подпись в карточке услуг на планшете не обрезается. */
@media (max-width: 980px) {
  #nk-home-seo-revision .nk-preview-services__visual {
    height: auto;
    min-height: 226px;
  }
}

/* Липкая шапка: прилипает весь блок шапки; верхняя строка с телефоном (34px, > 1180px) уезжает. */
.elementor-location-header {
  position: sticky;
  top: 0;
  z-index: 100;
}

@media (min-width: 1181px) {
  .elementor-location-header {
    top: -34px;
  }
}

html {
  scroll-padding-top: 96px;
}

/* nk-audit-layout (2): схема требования на широких экранах, плашка карточки 07, карточка адреса на телефоне. */
@media (min-width: 1181px) {
  .elementor .nk-demand-hero__layout.e-con {
    grid-template-columns: minmax(0, 1fr) 540px;
  }
}

.elementor .nk-objection-scope-card--wide.e-con strong {
  display: inline-block;
}

@media (max-width: 620px) {
  .nk-contact-geography__media .nk-contact-geography__map {
    position: relative;
    inset: auto;
    width: auto;
    margin-top: 12px;
    transform: none;
  }
}
/*
 * nk-audit-a11y — доступность по аудиту 19.09.2026.
 * overflow-x: clip вместо hidden — hidden делал body контейнером прокрутки и ломал липкую шапку.
 * Фокус с клавиатуры — двойное кольцо (тёмное + белое), видно и на светлом, и на тёмном фоне.
 */
html body {
  overflow-x: clip;
}

html :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 2px solid #0a2a63;
  outline-offset: 2px;
  box-shadow: 0 0 0 4px #fff;
}

.nk-form em,
.nk-preview-form em,
.nk-form__prototype,
.nk-form__privacy-links,
.nk-form__file-notice {
  color: #5b6677;
}
/* nk-audit-contrast: бирюзовый текст на тёмном фоне — светлый вариант (после затемнения фирменного цвета для светлых секций). */
.nk-objection-route .nk-objection-route__step--accent,
.nk-objection-route__step--accent p {
  color: #73d0ca;
}

.nk-load-boundary > span,
.nk-load-boundary .elementor-widget > span {
  color: #5b6677;
}

.nk-desk-scope-card--wide span {
  color: #ffffff;
}
