/* =====================================================================
   ПРОЕКТ: Данила Найдёнов — лендинг для оптовиков и дистрибьюторов
   ФАЙЛ:   styles.css   |   NAMESPACE: ndv
   ---------------------------------------------------------------------
   Все стили ограничены корневым контейнером .ndv-root и не влияют
   на остальную страницу Tilda. Глобальные теги (body, section, a, p...)
   НЕ переопределяются.

   СТРУКТУРА ФАЙЛА:
     1. CSS-переменные (палитра, отступы, шрифты)
     2. Базовые настройки проекта
     3. Layout (.ndv-wrap, .ndv-section)
     4. Общие компоненты (кнопки, заголовки, иконки)
     5. Стили блоков (шапка, hero, боли, методика, квиз, кейсы,
        отзывы, сравнение, обо мне, тарифы, кому подхожу,
        закрытие, контакты, подвал)
     6. Состояния (загрузка/ошибка загрузки HTML, лайтбокс)
     7. Responsive — media-запросы находятся рядом со своими блоками
   ===================================================================== */



/* --ndv--- МОЖНО МЕНЯТЬ ЗДЕСЬ: цветовая палитра проекта --ndv--- */
:root{
  --ndv-c-navy:#003366;      /* основной тёмный — заголовки, тёмные секции */
  --ndv-c-blue:#006699;      /* акцент — кнопки, ссылки, активные элементы */
  --ndv-c-lightblue:#A4C8E1; /* светло-голубой — вторичные фоны, плашки */
  --ndv-c-bg:#F2F2F2;        /* фон страницы */
  --ndv-c-text:#333333;      /* основной текст */

  --ndv-ink:var(--ndv-c-navy);
  --ndv-ink-70:var(--ndv-c-text);
  --ndv-paper:var(--ndv-c-bg);
  --ndv-paper-2:#E7EFF5;
  --ndv-card:#FFFFFF;
  --ndv-accent:var(--ndv-c-blue);
  --ndv-accent-dark:#004C73;
  --ndv-danger:#A63D2F;
  --ndv-ok:#3F7554;
  --ndv-danger-soft:#F3D9D4;   /* бледно-красный фон шапок «чужих» колонок */
  --ndv-danger-soft-2:#FBEEEB; /* бледно-красный фон ячеек «чужих» колонок */
  --ndv-line:#C7D2DA;
  --ndv-line-soft:#DCE4EA;

  /* --ndv--- МОЖНО МЕНЯТЬ ЗДЕСЬ: отступы блоков --ndv--- */
  --ndv-section-pad:44px;
  --ndv-section-pad-mobile:26px;

  --ndv-radius:14px;
  --ndv-display:'Space Grotesk', sans-serif;
  --ndv-body:'Manrope', sans-serif;
  --ndv-mono:'IBM Plex Mono', monospace;
}
/* Все стили ограничены контейнером .ndv-root — они не влияют на остальную страницу Тильды */
/* ПРАВКА: сброс через :where() — нулевая специфичность, поэтому отступы
   .ndv-wrap и других классов больше не «сгорают» (раньше из-за этого
   блоки прилипали к краям и выглядели узкими). */
:where(.ndv-root, .ndv-root *){box-sizing:border-box; margin:0; padding:0;}
.ndv-root{
  font-family:var(--ndv-body); color:var(--ndv-ink); background:var(--ndv-paper);
  line-height:1.5; font-size:16px; -webkit-font-smoothing:antialiased;
}
/* --ndv--- ПРАВКА: ширина внутри Zero Block --ndv---
   HTML-элемент в Zero Block часто получает ширину «по тексту».
   Класс .ndv-fullbleed растягивает блок на всю ширину окна браузера,
   поэтому размер самого HTML-элемента на полотне уже не важен.
   Если нужно, чтобы блок занимал только область элемента на полотне —
   уберите класс ndv-fullbleed у <div class="ndv-block ndv-fullbleed">. */
.ndv-root{width:100%; min-width:100%; max-width:100%;}
.ndv-root.ndv-fullbleed{
  position:relative; left:50%; margin-left:-50vw; width:100vw; min-width:100vw; max-width:100vw;
  overflow-x:hidden;
}
.ndv-root img, .ndv-root svg{display:block; max-width:100%;}
.ndv-root a{color:inherit;}
.ndv-root ul{list-style:none;}
.ndv-wrap{max-width:1120px; margin:0 auto; padding:0 24px;}
.ndv-root .ndv-section{padding:var(--ndv-section-pad) 0;}
@media (max-width:760px){ .ndv-root .ndv-section{padding:var(--ndv-section-pad-mobile) 0;} }
.ndv-root h1,.ndv-root h2,.ndv-root h3{font-family:var(--ndv-display); letter-spacing:-0.01em; line-height:1.08;}
.ndv-section-title{font-size:clamp(26px,3.2vw,38px); font-weight:600; max-width:760px;}
.ndv-section-sub{font-size:16.5px; color:var(--ndv-ink-70); max-width:620px; margin-top:12px;}
.ndv-icon{width:22px; height:22px; stroke:currentColor; fill:none; stroke-width:1.7;}

/* ===== КНОПКИ ===== */
.ndv-root .ndv-btn, .ndv-root a.ndv-btn{
  font-family:var(--ndv-body); font-weight:700; font-size:15px;
  background:var(--ndv-accent); color:#fff;
  padding:15px 24px; border-radius:10px; border:none; cursor:pointer;
  text-decoration:none; display:inline-block;
  box-shadow:0 3px 0 var(--ndv-accent-dark);
  transition:transform .12s;
}
.ndv-root .ndv-btn:hover{transform:translateY(-2px);}
.ndv-root .ndv-btn.secondary{background:transparent; color:var(--ndv-ink); box-shadow:none; border:1.5px solid var(--ndv-ink); padding:13.5px 22px;}


/* ===== ШАПКА ===== */
/* ПРАВКА: шапка закреплена (fixed) — держится при скролле и на десктопе, и на мобильном.
   position:fixed вместо sticky, потому что внутри Zero Block sticky не работает. */
.ndv-header{
  position:fixed; top:0; left:0; right:0; width:100%; z-index:1000;
  background:rgba(242,242,242,0.95); backdrop-filter:blur(6px);
  border-bottom:1px solid var(--ndv-line-soft);
}
/* распорка под фиксированную шапку — высота выставляется скриптом */
.ndv-header-spacer{height:66px;}
.ndv-root .ndv-nav{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 0; min-height:44px;}
/* --ndv--- МОЖНО МЕНЯТЬ ЗДЕСЬ: имя в шапке --ndv--- */
.ndv-brand{font-family:var(--ndv-display); font-weight:700; font-size:18px; color:var(--ndv-ink); text-decoration:none; white-space:nowrap;}
.ndv-brand span{color:var(--ndv-accent);}
.ndv-navlinks{display:flex; gap:30px; font-size:14.5px; font-weight:500;}
.ndv-navlinks a{text-decoration:none; color:var(--ndv-ink-70); transition:color .15s;}
.ndv-navlinks a:hover{color:var(--ndv-ink);}
.ndv-nav-right{display:flex; align-items:center; gap:14px;}
.ndv-nav-cta{
  font-family:var(--ndv-body); font-weight:600; font-size:13.5px;
  background:var(--ndv-ink); color:#fff; padding:10px 16px; border-radius:999px;
  text-decoration:none; white-space:nowrap; border:none; cursor:pointer;
}
.ndv-burger{display:none; flex-direction:column; gap:4px; background:none; border:none; cursor:pointer; padding:8px;}
.ndv-burger span{width:22px; height:2px; background:var(--ndv-ink); display:block;}
@media (max-width:760px){
  /* ПРАВКА: имя сдвинуто правее и уменьшено — больше не выходит за край экрана */
  .ndv-root .ndv-nav{padding:11px 0; gap:8px; min-height:40px;}
  .ndv-brand{min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  .ndv-nav .ndv-wrap, .ndv-wrap{padding:0 18px;}
  .ndv-brand{font-size:16px; padding-left:6px;}
  /* ПРАВКА: на мобильном CTA всегда на виду — по центру шапки */
  .ndv-nav-cta{display:inline-block; font-size:12.5px; padding:9px 13px; margin:0 auto; order:2;}
  .ndv-brand{order:1;}
  .ndv-burger{order:3;}
  .ndv-navlinks{
    position:absolute; top:100%; left:0; right:0; background:#fff; flex-direction:column; gap:0;
    padding:8px 24px 18px; border-bottom:1px solid var(--ndv-line-soft);
    transform:translateY(-140%); transition:transform .2s ease; z-index:900;
  }
  .ndv-navlinks.open{transform:translateY(0);}
  .ndv-navlinks a{padding:12px 0; border-bottom:1px solid var(--ndv-line-soft);}
  .ndv-burger{display:flex;}
}
@media (max-width:400px){
  .ndv-brand{font-size:15px;}
  /* CTA остаётся видимым и на узких экранах */
  .ndv-nav-cta{font-size:11.5px; padding:8px 11px;}
}
/* ===== HERO ===== */

.ndv-hero{padding-top:56px; padding-bottom:var(--ndv-section-pad);}
.ndv-hero-grid{display:grid; grid-template-columns:1.25fr 0.85fr; gap:48px; align-items:center;}
@media (max-width:860px){ .ndv-hero-grid{grid-template-columns:1fr; gap:28px;} }
.ndv-hero h1{font-size:clamp(30px,4.2vw,48px); font-weight:600;}
.ndv-hero h1 .ndv-accent{color:var(--ndv-accent);}
.ndv-hero-sub{margin-top:18px; font-size:17px; color:var(--ndv-ink-70); max-width:520px;}
.ndv-trust-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:28px;}
@media (max-width:560px){ .ndv-trust-cards{grid-template-columns:1fr;} }
.ndv-trust-card{
  background:var(--ndv-card); border:1px solid var(--ndv-line-soft); border-radius:var(--ndv-radius);
  padding:14px 14px; font-size:13.5px; font-weight:600; line-height:1.35;
  display:flex; flex-direction:column; gap:8px;
}
.ndv-trust-card .ndv-ic{
  width:28px; height:28px; border-radius:8px; background:var(--ndv-paper-2);
  display:flex; align-items:center; justify-content:center; color:var(--ndv-accent-dark);
}
.ndv-cta-row{margin-top:26px; display:flex; align-items:center; gap:16px; flex-wrap:wrap;}
.ndv-btn{
  font-family:var(--ndv-body); font-weight:700; font-size:15px;
  background:var(--ndv-accent); color:#fff;
  padding:15px 24px; border-radius:10px; border:none; cursor:pointer;
  text-decoration:none; display:inline-block;
  box-shadow:0 3px 0 var(--ndv-accent-dark);
  transition:transform .12s;
}
.ndv-btn:hover{transform:translateY(-2px);}
.ndv-btn.ndv-secondary{
  background:transparent; color:var(--ndv-ink); box-shadow:none;
  border:1.5px solid var(--ndv-ink); padding:13.5px 22px;
}
.ndv-cta-note{font-size:13px; color:var(--ndv-ink-70); max-width:260px;}

/* --ndv--- МОЖНО МЕНЯТЬ ЗДЕСЬ: размер фото эксперта --ndv--- */
.ndv-hero-photo{position:relative; max-width:230px; margin-left:auto;}
@media (max-width:860px){ .ndv-hero-photo{margin:0 auto; max-width:200px;} }
.ndv-photo-frame{
  aspect-ratio:1/1; border-radius:50%; background:linear-gradient(160deg,#004C73,#003366);
  display:flex; align-items:center; justify-content:center; overflow:hidden;
  border:1px solid var(--ndv-line-soft);
}
/* Фото эксперта подставляется скриптом из SITE_CONFIG.images.IMAGE_EXPERT */
.ndv-photo-frame img{width:100%; height:100%; object-fit:cover; display:block;}
.ndv-photo-frame .ndv-ph-placeholder{color:#8FB3D6; font-family:var(--ndv-mono); font-size:11.5px; text-align:center; padding:14px;}
.ndv-photo-cap{margin-top:12px; font-size:13px; color:var(--ndv-ink-70); text-align:center;}
.ndv-photo-cap b{color:var(--ndv-ink); font-weight:700;}

/* ===== PAIN CARDS ===== */

.ndv-pain-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:28px;}
@media (max-width:860px){ .ndv-pain-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .ndv-pain-grid{grid-template-columns:1fr;} }
.ndv-pain-card{
  background:var(--ndv-card); border:1px solid var(--ndv-line-soft); border-radius:var(--ndv-radius);
  padding:20px 18px; font-size:14.5px; font-weight:600; line-height:1.45;
}

/* ===== WHY NO LEADS ===== */

.ndv-why-section{background:var(--ndv-ink); color:#fff;}
.ndv-why-section .ndv-section-title{color:#fff;}
.ndv-why-section .ndv-section-sub{color:#B7C9DC;}
.ndv-why-list{margin-top:26px; display:flex; flex-direction:column;}
.ndv-why-item{display:flex; gap:16px; padding:18px 0; border-top:1px solid rgba(255,255,255,0.16);}
.ndv-why-item:last-child{border-bottom:1px solid rgba(255,255,255,0.16);}
.ndv-why-x{
  flex:none; width:24px; height:24px; border-radius:50%; background:rgba(166,61,47,0.28);
  color:#E88A78; display:flex; align-items:center; justify-content:center; font-family:var(--ndv-mono); font-size:13px; font-weight:600;
}
.ndv-why-text{font-size:15.5px; color:#EDF2F7; padding-top:1px;}


/* ===== КАК Я ПРИХОЖУ К РЕЗУЛЬТАТУ (этапы со стрелками) ===== */
.ndv-method-flow{margin-top:36px; display:grid; grid-template-columns:repeat(4,1fr); gap:34px 26px;}
@media (max-width:960px){ .ndv-method-flow{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .ndv-method-flow{grid-template-columns:1fr;} }
.ndv-node{
  background:var(--ndv-card); border:1px solid var(--ndv-line-soft); border-radius:var(--ndv-radius);
  padding:20px 18px; display:flex; flex-direction:column; gap:10px; position:relative;
}
/* ПРАВКА: подпись этапа */
.ndv-step-label{
  display:inline-flex; align-items:center; gap:7px; align-self:flex-start;
  font-family:var(--ndv-mono); font-size:10.5px; font-weight:600; letter-spacing:.10em; text-transform:uppercase;
  color:var(--ndv-accent-dark); background:var(--ndv-paper-2); border-radius:999px; padding:5px 11px;
}
.ndv-step-label b{font-family:var(--ndv-mono); font-size:11.5px;}
.ndv-node-ic{
  width:38px; height:38px; border-radius:10px; background:var(--ndv-paper-2); color:var(--ndv-accent-dark);
  display:flex; align-items:center; justify-content:center;
}
.ndv-node h3{font-size:16.5px; font-weight:600;}
.ndv-node ul{display:flex; flex-direction:column; gap:6px;}
.ndv-node ul li{font-size:13.5px; color:var(--ndv-ink-70); padding-left:14px; position:relative;}
.ndv-node ul li::before{content:"—"; position:absolute; left:0; color:var(--ndv-line);}
.ndv-node .ndv-result{
  margin-top:auto; padding-top:12px; border-top:1px dashed var(--ndv-line);
  font-size:13px; font-weight:700; color:var(--ndv-ok); display:flex; align-items:center; gap:7px;
}
.ndv-node .ndv-result .ndv-icon{width:16px; height:16px; flex:none;}
/* ПРАВКА: вместо сплошной пунктирной линии — аккуратные стрелки перехода */
.ndv-node .ndv-arrow{
  position:absolute; width:26px; height:26px; border-radius:50%;
  background:var(--ndv-accent); color:#fff; display:flex; align-items:center; justify-content:center;
  box-shadow:0 2px 8px -2px rgba(0,51,102,.45); z-index:2;
}
.ndv-node .ndv-arrow svg{width:14px; height:14px; stroke:currentColor; fill:none; stroke-width:2.2;}
/* 4 в ряд — стрелка справа */
@media (min-width:961px){
  .ndv-node .ndv-arrow{top:50%; right:-26px; transform:translate(0,-50%);}
  .ndv-node:nth-child(4n) .ndv-arrow, .ndv-node:last-child .ndv-arrow{display:none;}
}
/* 2 в ряд — стрелка справа, у каждого второго — вниз */
@media (max-width:960px) and (min-width:561px){
  .ndv-node .ndv-arrow{top:50%; right:-26px; transform:translate(0,-50%);}
  .ndv-node:nth-child(2n) .ndv-arrow{top:auto; right:50%; bottom:-30px; transform:translate(50%,0) rotate(90deg);}
  .ndv-node:last-child .ndv-arrow{display:none;}
}
/* 1 в ряд — стрелка вниз */
@media (max-width:560px){
  .ndv-node .ndv-arrow{left:50%; bottom:-30px; transform:translate(-50%,0) rotate(90deg);}
  .ndv-node:last-child .ndv-arrow{display:none;}
}
.ndv-outcome{
  margin-top:30px; background:var(--ndv-ink); color:#fff; border-radius:var(--ndv-radius);
  padding:28px 26px; display:flex; flex-direction:column; align-items:center; text-align:center; gap:10px;
}
.ndv-outcome .ndv-outcome-ic{
  width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,0.12); color:#8FD0B0;
  display:flex; align-items:center; justify-content:center; margin-bottom:4px;
}
.ndv-outcome .ndv-tag{font-family:var(--ndv-mono); font-size:11.5px; letter-spacing:.12em; color:#8FD0B0; text-transform:uppercase;}
.ndv-outcome p{font-size:18px; font-weight:600; max-width:560px;}
/* ===== QUIZ (уменьшен на ~35%) ===== */

.ndv-quiz-section{background:var(--ndv-paper-2);}
.ndv-quiz-box{
  max-width:420px; margin:32px auto 0; background:var(--ndv-card); border:1px solid var(--ndv-line-soft);
  border-radius:16px; padding:26px 24px; box-shadow:0 16px 36px -26px rgba(0,51,102,.4);
}
.ndv-quiz-progress{display:flex; gap:5px; margin-bottom:20px;}
.ndv-quiz-progress span{flex:1; height:3px; border-radius:4px; background:var(--ndv-line-soft);}
.ndv-quiz-progress span.active{background:var(--ndv-accent);}
.ndv-quiz-step{display:none;}
.ndv-quiz-step.active{display:block;}
.ndv-quiz-step .ndv-qnum{font-family:var(--ndv-mono); font-size:11px; color:var(--ndv-accent-dark); letter-spacing:.08em; margin-bottom:8px;}
.ndv-quiz-step h3{font-size:16.5px; font-weight:600; margin-bottom:16px; line-height:1.3;}
.ndv-quiz-options{display:flex; flex-direction:column; gap:8px;}
.ndv-quiz-option{
  border:1.5px solid var(--ndv-line-soft); border-radius:9px; padding:11px 14px;
  font-size:13.5px; font-weight:500; cursor:pointer; transition:.15s; background:#fff;
}
.ndv-quiz-option:hover{border-color:var(--ndv-accent);}
.ndv-quiz-option.selected{border-color:var(--ndv-accent); background:#E7F1F7;}
.ndv-quiz-input{
  width:100%; border:1.5px solid var(--ndv-line-soft); border-radius:9px; padding:11px 14px;
  font-size:13.5px; font-family:var(--ndv-body); margin-bottom:10px;
}
.ndv-quiz-error{font-size:12px; color:var(--ndv-danger); margin-top:8px; display:none;}
.ndv-quiz-error.show{display:block;}
.ndv-quiz-nav{display:flex; justify-content:space-between; margin-top:20px; align-items:center;}
.ndv-quiz-back{font-size:13px; color:var(--ndv-ink-70); cursor:pointer; background:none; border:none;}
.ndv-quiz-next{
  font-family:var(--ndv-body); font-weight:700; font-size:13.5px; background:var(--ndv-ink); color:#fff;
  padding:11px 18px; border-radius:9px; border:none; cursor:pointer;
}
.ndv-quiz-next[disabled]{opacity:.6; cursor:default;}

/* Экран «Спасибо» после отправки квиза */
.ndv-quiz-thanks{display:none; text-align:center; padding:8px 0 4px;}
.ndv-quiz-thanks.active{display:block;}
.ndv-quiz-thanks-mark{
  width:46px; height:46px; margin:0 auto 14px; border-radius:50%;
  background:var(--ndv-accent); color:#fff; font-size:22px; line-height:46px;
}
.ndv-quiz-thanks h3{font-size:19px; font-weight:700; margin-bottom:10px;}
.ndv-quiz-thanks p{font-size:14px; color:var(--ndv-ink-70); line-height:1.55; margin-bottom:8px;}
.ndv-quiz-thanks-note{font-size:13px;}
.ndv-quiz-thanks .ndv-btn{margin-top:12px;}



/* ===== CASES (уменьшены, 3 в ряд) ===== */

.ndv-case-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:30px;}
@media (max-width:900px){ .ndv-case-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:600px){ .ndv-case-grid{grid-template-columns:1fr;} }
.ndv-case-card{
  background:var(--ndv-card); border:1px solid var(--ndv-line-soft); border-radius:var(--ndv-radius); overflow:hidden;
}
/* Картинки кейсов подставляются скриптом из SITE_CONFIG.images.IMAGE_CASE_01..06 */
.ndv-case-img{
  aspect-ratio:16/9; background:repeating-linear-gradient(135deg, var(--ndv-paper-2), var(--ndv-paper-2) 10px, #fff 10px, #fff 20px);
  display:flex; align-items:center; justify-content:center; color:var(--ndv-ink-70); font-family:var(--ndv-mono); font-size:10.5px;
}
.ndv-case-img img{width:100%; height:100%; object-fit:cover; display:block;}
.ndv-case-body{padding:16px 18px 18px;}
.ndv-case-body h3{font-size:14.5px; font-weight:600; margin-bottom:10px; line-height:1.3;}
.ndv-case-stats{display:flex; gap:12px; flex-wrap:wrap; margin-bottom:10px; padding-bottom:10px; border-bottom:1px dashed var(--ndv-line);}
.ndv-case-stat{font-family:var(--ndv-mono);}
.ndv-case-stat .ndv-v{font-size:13.5px; font-weight:600; color:var(--ndv-ink);}
.ndv-case-stat .ndv-l{font-size:9.5px; color:var(--ndv-ink-70); text-transform:uppercase; letter-spacing:.05em;}
.ndv-case-desc{font-size:12.5px; color:var(--ndv-ink-70); line-height:1.5;}
.ndv-center-cta{display:flex; justify-content:center; margin-top:30px;}


/* ===== ОТЗЫВЫ (скриншоты + просмотр с увеличением) ===== */
.ndv-testi-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:30px;}
@media (max-width:760px){ .ndv-testi-grid{grid-template-columns:1fr 1fr;} }
.ndv-testi-hint{font-size:14px; color:var(--ndv-ink-70); margin-top:10px;}
.ndv-testi-thumb{
  border-radius:12px; overflow:hidden; border:1px solid var(--ndv-line-soft);
  cursor:zoom-in; transition:.15s; background:#fff; padding:0;
}
.ndv-testi-thumb img{width:100%; aspect-ratio:4/3; object-fit:contain; background:#fff; display:block;}
.ndv-testi-thumb:hover{border-color:var(--ndv-accent); transform:translateY(-3px);}
.ndv-lightbox{
  position:fixed; inset:0; background:rgba(0,51,102,0.9); z-index:2000;
  display:none; align-items:center; justify-content:center; padding:16px;
}
.ndv-lightbox.open{display:flex;}
.ndv-lightbox-inner{
  position:relative; max-width:min(1000px, 96vw); width:100%; max-height:92vh; overflow:auto;
  background:#fff; border-radius:14px; -webkit-overflow-scrolling:touch;
}
/* ПРАВКА: увеличение по клику — картинка открывается крупно и зумится ещё сильнее */
.ndv-lightbox-inner img{width:100%; display:block; cursor:zoom-in; transition:width .2s ease;}
.ndv-lightbox-inner.zoomed{height:90vh;}
.ndv-lightbox-inner.zoomed img{width:200%; max-width:none; cursor:zoom-out;}
/* ПРАВКА: крестик всегда виден (и на мобильном), закрытие по Escape и по фону */
.ndv-lightbox-close{
  position:fixed; top:14px; right:16px; width:42px; height:42px; border-radius:50%;
  background:#fff; color:var(--ndv-ink); border:none; font-size:26px; line-height:1; cursor:pointer;
  display:flex; align-items:center; justify-content:center; box-shadow:0 4px 14px rgba(0,0,0,.3); z-index:2100;
}
.ndv-lightbox-hint{
  position:fixed; bottom:16px; left:50%; transform:translateX(-50%);
  font-family:var(--ndv-mono); font-size:11px; color:#fff; opacity:.8; z-index:2100; text-align:center;
}
/* ===== COMPARISON TABLE ===== */

.ndv-compare-wrap{overflow-x:auto; margin-top:30px; -webkit-overflow-scrolling:touch;}
table.ndv-compare{width:100%; border-collapse:collapse; min-width:620px;}
table.ndv-compare th, table.ndv-compare td{padding:14px 16px; text-align:left; font-size:13.5px; border:1px solid var(--ndv-line-soft); vertical-align:top;}
table.ndv-compare th{font-family:var(--ndv-display); font-weight:600; font-size:14px;}
table.ndv-compare th:nth-child(1),
table.ndv-compare th:nth-child(2){background:var(--ndv-danger-soft); color:var(--ndv-danger);}
table.ndv-compare td:nth-child(1),
table.ndv-compare td:nth-child(2){background:var(--ndv-danger-soft-2);}
table.ndv-compare th:nth-child(3){background:var(--ndv-ink); color:#fff;}
table.ndv-compare td:nth-child(3){background:#E7F1F7; font-weight:600;}
table.ndv-compare td{color:var(--ndv-ink-70);}
.ndv-compare-hint{display:none; font-size:12px; color:var(--ndv-ink-70); margin-top:8px; font-style:italic;}
@media (max-width:760px){ .ndv-compare-hint{display:block;} }

/* ===== ABOUT ===== */

.ndv-about-grid{display:grid; grid-template-columns:1.1fr 0.9fr; gap:48px; align-items:start; margin-top:12px;}
@media (max-width:860px){ .ndv-about-grid{grid-template-columns:1fr; gap:24px;} }
.ndv-about-text p{font-size:15.5px; color:var(--ndv-ink-70); margin-bottom:13px;}
.ndv-about-text strong{color:var(--ndv-ink); font-weight:700;}
.ndv-about-stats{display:flex; flex-direction:column; border-top:1px solid var(--ndv-line-soft);}
.ndv-about-stat{display:flex; justify-content:space-between; align-items:baseline; padding:14px 0; border-bottom:1px solid var(--ndv-line-soft); gap:12px;}
.ndv-about-stat .ndv-label{font-size:13.5px; color:var(--ndv-ink-70);}
.ndv-about-stat .ndv-value{font-family:var(--ndv-mono); font-size:19px; font-weight:600; color:var(--ndv-ink); white-space:nowrap;}

/* ===== PRICING ===== */

/* --ndv--- МОЖНО МЕНЯТЬ ЗДЕСЬ: заголовки тарифов, тексты поинтов, плашки-гарантии --ndv--- */
.ndv-pricing-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:34px; align-items:stretch;}
@media (max-width:900px){ .ndv-pricing-grid{grid-template-columns:1fr;} }
.ndv-price-card{
  background:var(--ndv-card); border:1px solid var(--ndv-line-soft); border-radius:16px; padding:24px 22px;
  display:flex; flex-direction:column;
}
.ndv-price-card.mid{border-color:var(--ndv-accent); box-shadow:0 16px 32px -26px rgba(0,102,153,.5); position:relative;}
.ndv-price-card.mid::before{
  content:"Чаще выбирают"; position:absolute; top:-12px; left:22px; background:var(--ndv-accent); color:#fff;
  font-family:var(--ndv-mono); font-size:10.5px; padding:4px 10px; border-radius:999px; font-weight:600; letter-spacing:.04em;
}
.ndv-price-name{font-family:var(--ndv-display); font-size:18px; font-weight:600; margin-bottom:6px;} /* ЗАГОЛОВОК ТАРИФА */
.ndv-price-line{
  display:flex; align-items:baseline; gap:8px; margin-bottom:16px; padding-bottom:16px;
  border-bottom:1px dashed var(--ndv-line); flex-wrap:nowrap;
}
.ndv-price-value{font-family:var(--ndv-mono); font-size:21px; font-weight:600; color:var(--ndv-ink); white-space:nowrap;}
.ndv-price-unit{font-size:11.5px; color:var(--ndv-ink-70); line-height:1.3;}
.ndv-price-points{list-style:none; margin-bottom:14px; flex:1; display:flex; flex-direction:column; gap:7px;} /* ТЕКСТЫ ПОИНТОВ */
.ndv-price-points li{font-size:13.5px; color:var(--ndv-ink-70); padding-left:16px; position:relative; line-height:1.4;}
.ndv-price-points li::before{content:"•"; position:absolute; left:0; color:var(--ndv-accent); font-weight:700;}
.ndv-price-guarantee{ /* ПЛАШКА-ГАРАНТИЯ */
  font-size:12.5px; background:var(--ndv-paper); border-radius:8px; padding:11px 13px; margin-bottom:14px;
  border-left:3px solid var(--ndv-ok); color:var(--ndv-ink-70);
}
.ndv-price-card .ndv-btn.ndv-secondary{width:100%; text-align:center; margin-top:auto;}

/* ===== FIT / NOT FIT ===== */

.ndv-fit-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:30px;}
@media (max-width:760px){ .ndv-fit-grid{grid-template-columns:1fr;} }
.ndv-fit-col{background:var(--ndv-card); border:1px solid var(--ndv-line-soft); border-radius:var(--ndv-radius); padding:22px 20px;}
.ndv-fit-col h3{font-size:15.5px; margin-bottom:14px; font-weight:600;}
.ndv-fit-col.yes h3{color:var(--ndv-ok);}
.ndv-fit-col.no h3{color:var(--ndv-danger);}
.ndv-fit-item{display:flex; gap:10px; font-size:14px; color:var(--ndv-ink-70); padding:8px 0; align-items:flex-start;}
.ndv-fit-mark{flex:none; font-family:var(--ndv-mono); font-weight:700; font-size:13.5px;}
.ndv-fit-col.yes .ndv-fit-mark{color:var(--ndv-ok);}
.ndv-fit-col.no .ndv-fit-mark{color:var(--ndv-danger);}

/* ===== CLOSING + FREE AUDIT ===== */

.ndv-closing{background:var(--ndv-ink); color:#fff;}
.ndv-closing-grid{display:grid; grid-template-columns:1fr 1fr; gap:36px; align-items:center;}
@media (max-width:860px){ .ndv-closing-grid{grid-template-columns:1fr; gap:26px;} }
.ndv-closing h2{font-size:clamp(24px,3vw,32px); font-weight:600;}
.ndv-closing-left p{margin-top:14px; color:#B7C9DC; font-size:15px; max-width:460px;}
.ndv-audit-card{
  background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.18); border-radius:16px; padding:26px 24px;
}
.ndv-audit-card h3{font-size:17px; font-weight:600; margin-bottom:14px;}
.ndv-audit-list{list-style:none; display:flex; flex-direction:column; gap:10px; margin-bottom:20px;}
.ndv-audit-list li{font-size:14px; color:#EDF2F7; padding-left:20px; position:relative; line-height:1.4;}
.ndv-audit-list li::before{content:"✓"; position:absolute; left:0; color:#8FD0B0; font-weight:700;}


/* ===== КОНТАКТЫ (по центру, иконки в ряд) ===== */
.ndv-contact-wrap{display:flex; flex-direction:column; align-items:center; text-align:center;}
.ndv-contact-wrap .ndv-section-title{text-align:center; max-width:100%;}
.ndv-contact-wrap .ndv-section-sub{text-align:center; margin-left:auto; margin-right:auto;}
.ndv-social-row{display:flex; justify-content:center; align-items:center; gap:22px; margin-top:28px; flex-wrap:wrap;}
.ndv-social{
  display:flex; flex-direction:column; align-items:center; gap:8px; text-decoration:none;
  transition:transform .15s; width:92px;
}
.ndv-social:hover{transform:translateY(-3px);}
.ndv-social .ndv-social-ic{
  width:62px; height:62px; border-radius:18px; overflow:hidden; background:#fff;
  box-shadow:0 8px 20px -12px rgba(0,51,102,.55); border:1px solid var(--ndv-line-soft);
}
.ndv-social .ndv-social-ic svg{width:100%; height:100%; display:block;}
.ndv-social span{font-size:13px; font-weight:600; color:var(--ndv-ink);}
@media (max-width:480px){
  .ndv-social-row{gap:14px;}
  .ndv-social{width:78px;}
  .ndv-social .ndv-social-ic{width:54px; height:54px; border-radius:16px;}
}
.ndv-contact-btn{margin-top:26px;}
.ndv-contact-phone{
  margin-top:20px; font-family:var(--ndv-mono); font-size:22px; font-weight:600; color:var(--ndv-ink);
  text-decoration:none; display:inline-block;
}
.ndv-contact-phone:hover{color:var(--ndv-accent);}
.ndv-contact-phone-label{font-family:var(--ndv-body); font-size:12.5px; color:var(--ndv-ink-70); margin-top:14px;}

/* ===== ПОДВАЛ ===== */
.ndv-footer{padding:26px 0; text-align:center; font-size:13px; color:var(--ndv-ink-70); background:var(--ndv-paper);}
.ndv-footer a{text-decoration:underline; color:var(--ndv-ink-70);}



/* ============================================================
   6. СОСТОЯНИЯ — загрузка и ошибка внешнего HTML (блок T123)
   ============================================================ */
.ndv-root .ndv-state{
  padding:60px 24px; text-align:center; font-family:var(--ndv-body);
  color:var(--ndv-ink-70); font-size:15px;
}
.ndv-root .ndv-state b{display:block; color:var(--ndv-ink); font-size:17px; margin-bottom:6px;}

/* Плавное появление лендинга после загрузки HTML */
.ndv-root .ndv-page{animation:ndv-fade .25s ease both;}
@keyframes ndv-fade{from{opacity:0;}to{opacity:1;}}

/* ============================================================
   Фоны отдельных секций (раньше задавались inline-стилями)
   ============================================================ */
.ndv-root .ndv-reviews-section,
.ndv-root .ndv-about-section,
.ndv-root .ndv-fit-section{background:var(--ndv-paper-2);}

/* CTA в шапке — это ссылка на форму Tilda */
.ndv-root a.ndv-nav-cta{display:inline-block; text-align:center;}
.ndv-root a.ndv-btn{text-align:center;}

/* Кнопки квиза и опции — доступность с клавиатуры */
.ndv-root .ndv-quiz-option:focus-visible,
.ndv-root .ndv-btn:focus-visible,
.ndv-root .ndv-nav-cta:focus-visible{outline:2px solid var(--ndv-accent); outline-offset:2px;}

/* Ссылки-кнопки: цвет текста не должен наследоваться от .ndv-root a */
.ndv-root a.ndv-nav-cta{color:#fff;}
.ndv-root a.ndv-btn.ndv-secondary,
.ndv-root .ndv-btn.ndv-secondary{
  background:transparent; color:var(--ndv-ink);
  box-shadow:none; border:1.5px solid var(--ndv-ink); padding:13.5px 22px;
}
