{"version":"64b9a503bfa7","generated":"2026-10-13T09:06:20+00:00","source":"https://schoolsm.ru/","slots":["video-short","video-main","timer","lock","unlock","cta"],"html":"<section class=\"vsl\" id=\"vsl\">\n  <div class=\"center\">\n    <div class=\"vsl__hero\">\n      <h1 class=\"vsl__title\">ВТОРОЙ ИСТОЧНИК ДОХОДА<br><span>С ПОМОЩЬЮ ИИ ТРЕЙДИНГА</span></h1>\n            <div class=\"vsl__lead\">УЗНАЙ ПРО СТРАТЕГИЮ С ИСКУССТВЕННЫМ ИНТЕЛЛЕКТОМ</div>\n                              <p class=\"vsl__sub visually-hidden\">Изучите устройство рынка, анализ графика и управление риском. Практика проходит\n        с поддержкой наставников, а финансовый результат зависит от подготовки, дисциплины\n        и ситуации на рынке.</p>\n            <div class=\"vsl__if\">ЕСЛИ ТЫ:</div>\n      <ul class=\"vsl__list\">\n        <li>ищешь способ дополнительного дохода</li>\n        <li>хочешь финансовую уверенность</li>\n        <li>готов уделять хотя бы 15 минут в день</li>\n      </ul>\n      <div class=\"vsl__cta1 vsl-scroll\" data-target=\"vslWarmupWrap\">УЗНАЙ ПРО СТАРТОВЫЙ<br class=\"td-br\"> УРОК И ТЕСТ-ДРАЙВ\n        <div class=\"vsl__arrow\"><svg viewBox=\"0 0 48 30\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\"><path d=\"M5 5 L24 19 L43 5\" stroke=\"#54EA9F\" stroke-width=\"5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5 14 L24 28 L43 14\" stroke=\"#54EA9F\" stroke-width=\"5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n      </div>\n    </div>\n    <div class=\"vsl__warmup\" id=\"vslWarmupWrap\">\n      <div class=\"vsl__warning\">⚠️ Если видео долго грузится — попробуй отключить VPN и обновить страницу</div>\n      <div class=\"vsl__player\" data-td-slot=\"video-short\">\n        <!-- Разогрев — свой плеер (inc/../sm-player). Стартует сам на 5-й секунде\n             только со звуком; кто уже смотрел — не повторяем (inc/vsl-mechanics.php). -->\n        <div data-sm-video=\"warmup\" data-src=\"https://kinescope.io/fQiyMAyt3XrQNsCZAwd3Zp/master.m3u8\" data-mirror=\"warm-fqiy\" data-ratio=\"1:1\"></div>\n      </div>\n    </div>\n    <div class=\"vsl__bridge\">\n      <div class=\"vsl__task\">Сейчас твоя задача —<br><b>ПОСМОТРЕТЬ УРОК-ПРЕЗЕНТАЦИЮ</b></div>\n      <div class=\"vsl__bridge-title\">В НЁМ УЗНАЕШЬ:</div>\n      <ul class=\"vsl__list\">\n        <li>с чего начать новичку</li>\n                <li>как торговать с ИИ</li>\n                <li>как избежать рисков</li>\n                <li>как работает моя стратегия</li>\n                <li>как заработать на трейдинге</li>\n              </ul>\n      <div class=\"vsl__bridge-aft\">Всё узнаешь в уроке за 17 минут<br>Поэтому не откладывай !</div>\n      <div class=\"vsl__cta2 vsl-scroll\" data-target=\"vslLessonWrap\">СМОТРИ УРОК ПРЯМО СЕЙЧАС !\n        <div class=\"vsl__arrow\"><svg viewBox=\"0 0 48 30\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\"><path d=\"M5 5 L24 19 L43 5\" stroke=\"#54EA9F\" stroke-width=\"5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5 14 L24 28 L43 14\" stroke=\"#54EA9F\" stroke-width=\"5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n      </div>\n    </div>\n    <div class=\"vsl__lesson\" id=\"vslLessonWrap\">\n      <div class=\"vsl__player\" data-td-slot=\"video-main\">\n        <!-- Урок — свой плеер: поток Kinescope, при сбое — наши копии (Москва/Франкфурт).\n             Секрет открывается после 60 с просмотра, урок при этом НЕ останавливается. -->\n        <div data-sm-video=\"lesson\" data-src=\"https://kinescope.io/k1vcq7BkHqJueHGK3W3N8L/master.m3u8\" data-mirror=\"lesson-k1vc\" data-ratio=\"16:9\" data-chapters-list=\"1\" data-chapters='[[0, \"Что покажу за 17 минут\"], [69, \"Что такое трейдинг — простыми словами\"], [200, \"История Галины\"], [370, \"Три элемента успеха в трейдинге\"], [423, \"Как не терять: страховка и правило 3 к 1\"], [485, \"Капитал от нас: 1 000 → 10 000 $\"], [540, \"Условия и защита счёта\"], [600, \"Ученики: Сергей, Евгений, Людмила\"], [752, \"Что входит в обучение и сколько стоит\"], [875, \"Тест-драйв за 990 ₽\"], [930, \"Кто я\"], [967, \"Твой выбор\"]]'></div>\n      </div>\n    </div>\n    <div class=\"vsl__locked\" data-td-slot=\"lock\" id=\"vslLocked\" title=\"Смотри урок, чтобы открыть\">\n      <div class=\"vsl__lock\">🔒</div>\n      <div class=\"vsl__lock-text\">СЕКРЕТ ОТКРОЕТСЯ ПОСЛЕ ПРОСМОТРА ВИДЕО</div>\n    </div>\n    <div class=\"vsl__unlocked\" data-td-slot=\"unlock\" id=\"vslUnlocked\" style=\"display:none\">\n      <a href=\"#\" class=\"vsl__buybtn js-open-form\" data-td-slot=\"cta\">ПРОЙТИ ТЕСТ-ДРАЙВ ЗА 990 ₽</a>\n      <div class=\"vsl__sales\">\n        <p>Если хочешь не только теорию,<br>а реальный шаг к практике</p>\n        <div class=\"vsl__sub\">ТЕСТ-ДРАЙВ ПОЗВОЛИТ<br>ТЕБЕ НАЧАТЬ !</div>\n        <p><b>Тест-драйв — это стартовое ВИП-обучение на 3 дня</b></p>\n        <p>В нём за 3 урока:</p>\n        <ul>\n          <li>увидишь сделку +57 200 ₽ онлайн</li>\n          <li>узнаешь, как её повторить</li>\n          <li>потренируешься на демо-счёте и разберёшь риск-менеджмент</li>\n        </ul>\n        <p>+ у тебя будут:</p>\n        <ul>\n          <li>уроки по бирже</li>\n          <li>домашние задания</li>\n          <li>эфиры-разборы по стратегии (по запросу)</li>\n        </ul>\n        <div class=\"vsl__main\">\n          <div class=\"vsl__main-head\">А ГЛАВНОЕ В ТЕСТ-ДРАЙВЕ:</div>\n          <div class=\"vsl__main-body\">\n            <p><b>3 ДНЯ СОПРОВОЖДЕНИЯ<br>+ ЛИЧНАЯ СЕССИЯ 🤩<br>С ОПЫТНЫМ КУРАТОРОМ</b></p>\n            <hr>\n            <p>— сможешь задать все вопросы</p>\n            <p>— поймёшь, подойдёт ли тебе стратегия</p>\n            <p>— и на какой доход можешь рассчитывать именно ты</p>\n            <hr>\n            <p><b>И ЭТО ВСЁ ТЫ ПОЛУЧАЕШЬ ЗА:</b></p>\n            <div class=\"vsl__price\"><s>7 800 ₽</s> <b>990 ₽</b><span class=\"vsl__badge\">−87%</span></div>\n          </div>\n        </div>\n        <div class=\"vsl__timer\">\n          <div class=\"vsl__timer-label\">До конца спец-условий на тест-драйв осталось:</div>\n          <div class=\"vsl__timer-digits\" data-td-slot=\"timer\"><span id=\"vslM\">15</span><i>:</i><span id=\"vslS\">00</span><i>:</i><span id=\"vslMs\" class=\"vsl__ms\">00</span></div>\n        </div>\n        <p>Далее бонусы сгорают,<br>а цена становится прежней.<br>Действуй сейчас !</p>\n        <div class=\"vsl__arrow\"><svg viewBox=\"0 0 48 30\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\"><path d=\"M5 5 L24 19 L43 5\" stroke=\"#54EA9F\" stroke-width=\"5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5 14 L24 28 L43 14\" stroke=\"#54EA9F\" stroke-width=\"5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></div>\n        <a href=\"#\" class=\"vsl__buybtn js-open-form\" data-td-slot=\"cta\">ПРОЙТИ ТЕСТ-ДРАЙВ ЗА 990 ₽</a>\n                <div class=\"vsl__disclaimer\">\n          <aside class=\"risk-disclosure\" aria-label=\"Предупреждение о рисках\">\n  <strong>Важно:</strong>\n  материал носит образовательный характер и не является индивидуальной инвестиционной рекомендацией.<br>\n  Торговля и инвестиции связаны с риском потери капитала. Прошлые результаты не гарантируют будущих.\n</aside>\n        </div>\n      </div>\n    </div>\n  </div>\n</section><style>\n.lead-overlay{display:none;position:fixed;inset:0;z-index:100000;background:rgba(0,0,0,.8);\n  align-items:flex-start;justify-content:center;padding:40px 15px;overflow-y:auto;}\n.lead-overlay.open{display:flex;}\n.lead-box{box-sizing:border-box;position:relative;background:#0c0c0c;border:1px solid rgba(84,234,159,.3);padding:40px;\n  border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.6);color:#fff;width:100%;max-width:480px;\n  font-family:'Montserrat',sans-serif;}\n.lead-close{position:absolute;top:12px;right:16px;background:none;border:none;color:#fff;font-size:28px;\n  cursor:pointer;line-height:1;}\n.lead-title{text-align:center;font-weight:800;font-size:24px;font-style:italic;margin:0 0 20px;}\n.lead-offer{display:flex;justify-content:space-between;align-items:center;padding:12px 0;\n  border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:20px;font-size:15px;}\n.lead-offer .old{text-decoration:line-through;opacity:.5;font-size:13px;margin-right:6px;}\n.lead-offer .final{font-weight:700;color:#54EA9F;}\n.lead-field{margin-bottom:18px;max-width:100%;}\n.lead-field label{display:block;font-size:14px;margin-bottom:6px;color:#ccc;}\n.lead-field label .req{color:#54EA9F;}\n.lead-input{width:100%;box-sizing:border-box;padding:14px 18px;border:2px solid #54EA9F;border-radius:12px;font-size:16px;\n  background:#fff;color:#111;font-family:inherit;}\n.lead-input:focus{outline:none;border-color:#6340e5;box-shadow:0 0 0 3px rgba(84,234,159,.2);}\n.lead-input::placeholder{color:#999;}\n.lead-err{color:#ff6b6b;font-size:12px;margin-top:5px;display:none;}\n.lead-field.has-error .lead-input{border-color:#ff6b6b;}\n.lead-field.has-error .lead-err{display:block;}\n.lead-consent{font-size:12px;color:#aaa;margin:10px 0 20px;display:flex;gap:8px;align-items:flex-start;}\n.lead-consent input{margin-top:3px;}\n.lead-consent a{color:#54EA9F;text-decoration:none;}\n.lead-msg{text-align:center;padding:10px;border-radius:8px;margin-bottom:16px;font-size:14px;display:none;}\n.lead-msg.ok{display:block;background:rgba(84,234,159,.15);color:#54EA9F;}\n.lead-msg.err{display:block;background:rgba(255,107,107,.15);color:#ff6b6b;}\n.lead-submit{width:100%;box-sizing:border-box;padding:16px 20px;border:none;border-radius:12px;cursor:pointer;\n  font-family:inherit;font-weight:700;font-size:16px;color:#fff;\n  background:linear-gradient(90deg,#6340e5 0%,#6132c1 50%,#6340e5 100%);}\n.lead-submit:disabled{opacity:.6;cursor:default;}\n@media (max-width:768px){ .lead-box{padding:28px 18px;} }\n</style>\n\n<div class=\"lead-overlay\" id=\"leadModal\" aria-hidden=\"true\">\n  <div class=\"lead-box\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Заявка на тест-драйв\">\n    <button class=\"lead-close\" id=\"leadClose\" type=\"button\" aria-label=\"Закрыть\">&times;</button>\n    <h2 class=\"lead-title\">ТЕСТ-ДРАЙВ</h2>\n\n    <div class=\"lead-offer\">\n      <span>Тест-драйв системы</span>\n      <span><span class=\"old\">7 800 ₽</span><span class=\"final\">990 ₽</span></span>\n    </div>\n\n    <div class=\"lead-msg\" id=\"leadMessage\"></div>\n\n    <form id=\"leadForm\" novalidate>\n      <div class=\"lead-field\" id=\"lead-field-name\">\n        <label>Имя <span class=\"req\">*</span></label>\n        <input type=\"text\" class=\"lead-input\" name=\"name\" placeholder=\"Введите ваше имя\" maxlength=\"60\" autocomplete=\"name\">\n        <div class=\"lead-err\">Пожалуйста, введите имя</div>\n      </div>\n      <div class=\"lead-field\" id=\"lead-field-phone\">\n        <label>Номер телефона <span class=\"req\">*</span></label>\n        <input type=\"tel\" class=\"lead-input\" name=\"phone\" placeholder=\"Введите ваш телефон\" maxlength=\"30\" autocomplete=\"tel\">\n        <div class=\"lead-err\">Введите корректный номер телефона</div>\n      </div>\n      <div class=\"lead-field\" id=\"lead-field-email\">\n        <label>Почта <span style=\"opacity:.6;\">(опционально)</span></label>\n        <input type=\"email\" class=\"lead-input\" name=\"email\" placeholder=\"Введите ваш эл. адрес\" maxlength=\"60\" autocomplete=\"email\">\n        <div class=\"lead-err\">Введите корректный e-mail</div>\n      </div>\n      <label class=\"lead-consent\">\n        <input type=\"checkbox\" id=\"leadConsent\" checked>\n        <span>Я согласен на обработку моих персональных данных. С\n          <a href=\"https://schoolsm.ru/privacy-policy\" target=\"_blank\">Политикой</a> ознакомлен.</span>\n      </label>\n      <label class=\"lead-consent\" style=\"margin-top:-10px\">\n        <input type=\"checkbox\" id=\"leadMailing\" checked>\n        <span>Согласен получать <a href=\"https://schoolsm.ru/soglasie-na-rassylku/\" target=\"_blank\" rel=\"noopener\">рассылку</a> с полезными материалами и предложениями</span>\n      </label>\n      <button type=\"submit\" class=\"lead-submit\" id=\"leadSubmit\">Перейти к оплате</button>\n    </form>\n  </div>\n</div>\n\n<script>\n(function () {\n  var modal   = document.getElementById('leadModal');\n  var form    = document.getElementById('leadForm');\n  var btn     = document.getElementById('leadSubmit');\n  var msg     = document.getElementById('leadMessage');\n  var closeBt = document.getElementById('leadClose');\n  if (!modal || !form) return;\n\n\n  // ── Рекламные метки ───────────────────────────────────────────────\n  // Всё, по чему можно понять, откуда пришёл человек: UTM, идентификаторы\n  // клика Директа, Google, VK, CPA-сетей и ClientID Метрики. Сохраняем при\n  // входе — человек может походить по страницам, прежде чем оставить\n  // заявку, и метки из адреса к тому моменту пропадут.\n  var MARKS_KEY = 'sm_marks';\n  var CLICK_IDS = ['yclid','ysclid','gclid','gbraid','wbraid','fbclid','vkclid','rb_clickid',\n                   'clickid','click_id','ttclid','_openstat','from','ref','partner','sub1','sub2','sub3'];\n  function readMarks() {\n    var q = new URLSearchParams(location.search), m = {};\n    q.forEach(function (v, k) {\n      if (!v) return;\n      if (k.indexOf('utm_') === 0 || CLICK_IDS.indexOf(k) !== -1) m[k] = v;\n    });\n    var saved = {};\n    try { saved = JSON.parse(localStorage.getItem(MARKS_KEY) || '{}') || {}; } catch (e) {}\n    // Метки старой формы лендингов — чтобы не потерять уже сохранённые.\n    try {\n      var old = JSON.parse(localStorage.getItem('iw_utm') || '{}') || {};\n      ['source','medium','campaign','term','content'].forEach(function (k) {\n        if (old[k] && !saved['utm_' + k]) saved['utm_' + k] = old[k];\n      });\n    } catch (e) {}\n    if (Object.keys(m).length) {\n      // Новый переход по рекламе перекрывает прежний целиком.\n      m._at = new Date().toISOString();\n      try { localStorage.setItem(MARKS_KEY, JSON.stringify(m)); } catch (e) {}\n      return m;\n    }\n    return saved;\n  }\n  function ymClientId() {\n    var c = document.cookie.match(/(?:^|;\\s*)_ym_uid=([^;]+)/);\n    return c ? c[1] : '';\n  }\n  // ── Точка входа ──────────────────────────────────────────────────────\n  // Заявка хранит страницу, на которой её отправили, но не ту, с которой\n  // человек ПРИШЁЛ. Из-за этого нельзя было ответить на простой вопрос:\n  // сколько заявок принесли статьи, если читатель потом ушёл на другую\n  // страницу и оставил контакт там (замер 27.09.2026 упёрся в логи, которые\n  // живут месяц). Теперь первая страница визита и источник запоминаются\n  // один раз и едут вместе с заявкой.\n  var ENTRY_KEY = 'sm_entry';\n  function entryInfo() {\n    var e = null;\n    try { e = JSON.parse(localStorage.getItem(ENTRY_KEY) || 'null'); } catch (x) {}\n    if (e && e.page) return e;\n    e = {\n      page: location.pathname,\n      ref: (document.referrer || '').slice(0, 200),\n      at: new Date().toISOString()\n    };\n    try { localStorage.setItem(ENTRY_KEY, JSON.stringify(e)); } catch (x) {}\n    return e;\n  }\n  var ENTRY = entryInfo();\n  window.smEntry = ENTRY;\n\n  var MARKS = readMarks();\n  // Кладём точку входа в метки: бэкенды уже умеют сохранять marks целиком,\n  // поэтому отдельных правил в приёмниках заявок не нужно.\n  MARKS.entry_page = ENTRY.page;\n  MARKS.entry_ref = ENTRY.ref;\n  MARKS.entry_at = ENTRY.at;\n  // Идентификатор следов визита (его ставит маячок /sm-player/sm-trace.js).\n  // По нему заявка сцепляется с визитами этого человека на всех наших сайтах,\n  // и в карточке видно, откуда он пришёл ИЗНАЧАЛЬНО, а не только последний шаг.\n  try {\n    var tid = localStorage.getItem('sm_tid') || '';\n    if (tid) { MARKS.sm_tid = tid; }\n  } catch (e) {}\n  // Отдаём наружу: другие формы сайта (например /neuro-50) шлют те же метки,\n  // не заводя собственного сбора — иначе правило разъедется по копиям.\n  window.smMarks = MARKS;\n  window.smYmClientId = ymClientId;\n\n  // Счётчик у каждого сайта свой: лендинг задаёт window.TD_METRIKA_ID.\n  var METRIKA_ID = window.TD_METRIKA_ID || 98326745;\n\n  function open(e){ if(e){e.preventDefault();} modal.classList.add('open'); document.body.style.overflow='hidden'; }\n  function close(){ modal.classList.remove('open'); document.body.style.overflow=''; }\n\n  // Все кнопки «ПРОЙТИ ТЕСТ-ДРАЙВ ЗА 990 ₽» открывают форму.\n  // href на оплату оставлен в разметке: если скрипт не отработает, кнопка всё равно рабочая.\n  document.querySelectorAll('.vsl__buybtn, .js-open-form').forEach(function(b){\n    b.addEventListener('click', open);\n  });\n  closeBt.addEventListener('click', close);\n  modal.addEventListener('click', function(e){ if(e.target===modal) close(); });\n  document.addEventListener('keydown', function(e){ if(e.key==='Escape') close(); });\n\n  function setError(id,on){ document.getElementById(id).classList.toggle('has-error', on); }\n  function showMsg(text, ok){ msg.textContent=text; msg.className='lead-msg '+(ok?'ok':'err'); }\n\n  var phoneRe = /^[+]?[\\d\\s()\\-]{7,}$/;\n  var emailRe = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\n  form.addEventListener('submit', function(e){\n    e.preventDefault();\n    // На сайте есть общий jQuery-обработчик, который перехватывает любую форму\n    // и шлёт её в inc/mail.php. Без этой строки на одну заявку приходило два\n    // сообщения в Telegram: одно отсюда, второе — от него.\n    e.stopPropagation();\n    msg.className='lead-msg';\n\n    var name  = form.name.value.trim();\n    var phone = form.phone.value.trim();\n    var email = form.email.value.trim();\n\n    var valid = true;\n    setError('lead-field-name', false);\n    setError('lead-field-phone', false);\n    setError('lead-field-email', false);\n    if (!name) { setError('lead-field-name', true); valid = false; }\n    if (!phoneRe.test(phone)) { setError('lead-field-phone', true); valid = false; }\n    if (email && !emailRe.test(email)) { setError('lead-field-email', true); valid = false; }\n    if (!document.getElementById('leadConsent').checked) {\n      showMsg('Необходимо согласие на обработку персональных данных', false);\n      valid = false;\n    }\n    if (!valid) return;\n\n    btn.disabled = true;\n    btn.textContent = 'Отправляем...';\n\n    fetch((window.TD_API_URL || '/api-lead.php'), {\n      method: 'POST',\n      headers: { 'Content-Type': 'application/json' },\n      body: JSON.stringify({\n        name: name,\n        phone: phone,\n        email: email || null,\n        offer: 'Тест-драйв системы (990 ₽)',\n        page: location.href,\n        // Согласие на рассылку — отдельная галочка (38-ФЗ ст.18, 152-ФЗ ст.9/15); хранится в заявке.\n        mailing: (function(){ var m = document.getElementById('leadMailing'); return m ? m.checked : undefined; })(),\n        // Бэкенды читают метки из utm{} или плоских полей — отдаём оба вида.\n        utm: {\n          source:   MARKS.utm_source   || '',\n          medium:   MARKS.utm_medium   || '',\n          campaign: MARKS.utm_campaign || '',\n          content:  MARKS.utm_content  || '',\n          term:     MARKS.utm_term     || MARKS.clickid || MARKS.click_id || ''\n        },\n        utm_source: MARKS.utm_source || '', utm_medium: MARKS.utm_medium || '',\n        utm_campaign: MARKS.utm_campaign || '', utm_content: MARKS.utm_content || '',\n        utm_term: MARKS.utm_term || MARKS.clickid || MARKS.click_id || '',\n        marks: MARKS,\n        ym_client_id: ymClientId(),\n        referrer: document.referrer || ''\n      })\n    })\n    .then(function(res){ return res.json().catch(function(){ return {}; }).then(function(data){ return {res:res,data:data}; }); })\n    .then(function(r){\n      if (r.res.ok && r.data.ok) {\n        showMsg('Заявка отправлена ! Перенаправляем...', true);\n        try { if (typeof ym === 'function') ym(METRIKA_ID, 'reachGoal', 'lead_confirmed'); } catch(_) {}\n        // Пиксель Facebook стоит только на части лендингов (kozdv.pro и соседи): там заявка —\n        // событие Lead, как было в их прежней форме. Где пикселя нет, строка ничего не делает.\n        try { if (typeof fbq === 'function') fbq('track', 'Lead', { content_name: 'test_drive_system', value: 990, currency: 'RUB' }); } catch(_) {}\n        form.reset();\n        document.getElementById('leadConsent').checked = true;\n        setTimeout(function(){ location.href = r.data.paymentUrl || (window.TD_PAY_URL || '/pay-testdrive.php'); }, 500);\n      } else {\n        showMsg(r.data.error || 'Не удалось отправить заявку. Попробуйте ещё раз.', false);\n      }\n    })\n    .catch(function(){ showMsg('Ошибка соединения с сервером. Попробуйте позже.', false); })\n    .then(function(){ btn.disabled = false; btn.textContent = 'Перейти к оплате'; });\n  });\n})();\n</script>\n<!-- SM-FUNNEL:START -->\n<script>\n/* Воронка для недельного отчёта в чат продаж.\n   Шаги: зашёл → начал урок → открылся секрет → открыл форму → заявка →\n   ушёл на оплату. Отправляется только название шага, случайный номер\n   браузера и путь страницы — без имён, телефонов и почты. Запрос идёт на\n   свой же домен (/__ev), его записывает nginx; сторонним сервисам ничего\n   не уходит, счётчики Метрики и пиксели этот код не трогает. */\n(function () {\n  if (window.__smFunnel) return;\n  window.__smFunnel = 1;\n\n  var sid = '';\n  try {\n    sid = localStorage.getItem('sm_sid') || '';\n    if (!sid) {\n      sid = (Math.random().toString(36).slice(2) + Date.now().toString(36)).slice(0, 20);\n      localStorage.setItem('sm_sid', sid);\n    }\n  } catch (e) { sid = 'n' + Math.random().toString(36).slice(2, 14); }\n\n  var sent = {};\n  function ev(name) {\n    if (sent[name]) return;\n    sent[name] = 1;\n    var u = '/__ev?e=' + name + '&s=' + encodeURIComponent(sid) + '&p=' + encodeURIComponent(location.pathname);\n    // У шага «секрет» отмечаем, открылся он по просмотру урока или по запасному\n    // таймеру: без этого в отчёте секретов больше, чем стартов урока.\n    if (name === 'unlock' && window.__vslUnlockBy) u += '&b=' + encodeURIComponent(window.__vslUnlockBy);\n    // sendBeacon переживает уход со страницы — важно для шага «ушёл на оплату».\n    try { if (navigator.sendBeacon && navigator.sendBeacon(u)) return; } catch (e) {}\n    try { (new Image()).src = u; } catch (e) {}\n  }\n  function byId(id) { return document.getElementById(id); }\n\n  // Заявка: смотрим ответ формы. Ответ отдаём странице нетронутым.\n  var leadOk = false;\n  var nativeFetch = window.fetch;\n  if (nativeFetch) {\n    window.fetch = function (input, init) {\n      var p = nativeFetch.apply(this, arguments);\n      try {\n        var url = typeof input === 'string' ? input : (input && input.url) || '';\n        var method = (init && init.method) || (input && input.method) || 'GET';\n        if (/\\/api\\/lead|api-lead\\.php/.test(url) && /post/i.test(method)) {\n          p.then(function (r) {\n            if (!r || !r.ok) return;\n            r.clone().json().then(function (d) {\n              if (d && d.ok) { leadOk = !!d.paymentUrl; ev('lead'); }\n            }).catch(function () {});\n          }).catch(function () {});\n        }\n      } catch (e) {}\n      return p;\n    };\n  }\n  // После заявки страница уходит на оплату — фиксируем сам уход.\n  window.addEventListener('pagehide', function () { if (leadOk) ev('pay'); });\n\n  // Основной урок. Прогревочный ролик не считаем: он может стартовать сам.\n  function hookVimeo() {\n    var f = byId('hero-vimeo');\n    if (!f || f.__smHooked || !window.Vimeo || !window.Vimeo.Player) return;\n    f.__smHooked = 1;\n    // player.js возвращает уже созданный плеер этого iframe, второго не будет.\n    try { new window.Vimeo.Player(f).on('play', function () { ev('video'); }); } catch (e) {}\n  }\n\n  var ticks = 0;\n  var timer = setInterval(function () {\n    ticks++;\n    if (window.__vslLessonStarted) ev('video');\n    var hero = byId('heroVideo');\n    if (hero && hero.classList.contains('is-playing')) ev('video');\n    hookVimeo();\n\n    // Блок открыт не сейчас, а восстановлен из памяти прошлого визита: шаг\n    // уже посчитан тогда. Гасим его заранее, чтобы повторные заходы не раздули\n    // число секретов относительно стартов урока.\n    if (window.__vslUnlockRestored) sent.unlock = 1;\n    var un = byId('vslUnlocked'), sec = byId('secretBlock');\n    if ((un && un.style.display === 'block') || (sec && sec.classList.contains('reveal-now'))) ev('unlock');\n\n    var m = byId('leadModal') || byId('formModal');\n    if (m && m.classList.contains('open')) ev('form');\n\n    if (ticks > 3600 || (sent.video && sent.unlock && sent.form)) clearInterval(timer);\n  }, 1000);\n\n  setTimeout(function () { ev('visit'); }, 800);\n})();\n</script>\n<!-- SM-FUNNEL:END -->\n<!-- SM-PHONE:START -->\n<style>\n.smp{position:relative;display:block}\n.smp__cc{position:absolute;left:0;top:0;bottom:0;display:flex;align-items:center;gap:3px;padding:0 2px 0 12px;\n  pointer-events:none;white-space:nowrap;line-height:1;z-index:1}\n.smp__cc b{font-weight:inherit}\n.smp__arr{font-size:.7em;opacity:.55}\n.smp__sel{position:absolute;left:0;top:0;bottom:0;opacity:0;cursor:pointer;z-index:2;font-size:16px;\n  border:0;margin:0;padding:0;-webkit-appearance:none;appearance:none}\n</style>\n<script>\n/* Телефон с кодом страны для всех наших форм.\n   По умолчанию Россия +7; страну выбирают из списка или просто вставляют номер\n   с «+» — код определится сам. Формат номера для каждой страны берёт\n   библиотека libphonenumber (та же, что у Google): руками форматы не пишем.\n   Полный номер кладётся в скрытое поле name=\"phone\", видимое поле — для ввода.\n   Номер неполный — скрытое поле пустое, и форма показывает свою ошибку. */\n(function () {\n  if (window.__smPhone) return;\n  window.__smPhone = 1;\n\n  var LIB = '/sm-player/libphonenumber.min.js';\n  // [код, ISO, флаг, страна, минимум цифр, максимум цифр, пример]\n  var C = [\n['7','RU','🇷🇺','Россия',10,10,'(912) 345-67-89'],\n['7','KZ','🇰🇿','Казахстан',10,10,'(771) 000-99-98'],\n['375','BY','🇧🇾','Беларусь',6,11,'29 491 19 11'],\n['380','UA','🇺🇦','Украина',9,10,'50 123 4567'],\n['998','UZ','🇺🇿','Узбекистан',9,9,'91 234 56 78'],\n['996','KG','🇰🇬','Кыргызстан',9,10,'700 123 456'],\n['992','TJ','🇹🇯','Таджикистан',9,9,'91 712 3456'],\n['993','TM','🇹🇲','Туркменистан',8,8,'66 123456'],\n['374','AM','🇦🇲','Армения',8,8,'77 123456'],\n['994','AZ','🇦🇿','Азербайджан',9,9,'40 123 45 67'],\n['995','GE','🇬🇪','Грузия',9,9,'555 12 34 56'],\n['373','MD','🇲🇩','Молдова',8,8,'621 12 345'],\n['371','LV','🇱🇻','Латвия',8,8,'21 234 567'],\n['370','LT','🇱🇹','Литва',8,8,'612 34567'],\n['372','EE','🇪🇪','Эстония',7,10,'5123 4567'],\n['90','TR','🇹🇷','Турция',7,13,'501 234 56 78'],\n['971','AE','🇦🇪','ОАЭ',5,12,'50 123 4567'],\n['972','IL','🇮🇱','Израиль',7,12,'50 234 5678'],\n['49','DE','🇩🇪','Германия',4,14,'1512 3456789'],\n['48','PL','🇵🇱','Польша',6,10,'512 345 678'],\n['420','CZ','🇨🇿','Чехия',9,12,'601 123 456'],\n['381','RS','🇷🇸','Сербия',6,12,'60 1234567'],\n['382','ME','🇲🇪','Черногория',8,9,'67 622 901'],\n['357','CY','🇨🇾','Кипр',8,8,'96 123456'],\n['30','GR','🇬🇷','Греция',10,12,'691 234 5678'],\n['359','BG','🇧🇬','Болгария',6,9,'43 012 345'],\n['40','RO','🇷🇴','Румыния',6,9,'712 034 567'],\n['36','HU','🇭🇺','Венгрия',8,9,'20 123 4567'],\n['43','AT','🇦🇹','Австрия',4,12,'664 123456'],\n['41','CH','🇨🇭','Швейцария',9,12,'78 123 45 67'],\n['31','NL','🇳🇱','Нидерланды',5,11,'6 12345678'],\n['32','BE','🇧🇪','Бельгия',8,9,'470 12 34 56'],\n['33','FR','🇫🇷','Франция',9,9,'6 12 34 56 78'],\n['34','ES','🇪🇸','Испания',9,9,'612 34 56 78'],\n['351','PT','🇵🇹','Португалия',9,9,'912 345 678'],\n['39','IT','🇮🇹','Италия',6,12,'312 345 6789'],\n['44','GB','🇬🇧','Великобритания',7,10,'7400 123456'],\n['353','IE','🇮🇪','Ирландия',7,10,'85 012 3456'],\n['46','SE','🇸🇪','Швеция',6,12,'70 123 45 67'],\n['47','NO','🇳🇴','Норвегия',5,8,'40 61 23 45'],\n['45','DK','🇩🇰','Дания',8,8,'34 41 23 45'],\n['358','FI','🇫🇮','Финляндия',9,9,'41 2345678'],\n['1','US','🇺🇸','США / Канада',10,10,'(201) 555-0123'],\n['52','MX','🇲🇽','Мексика',10,10,'222 123 4567'],\n['55','BR','🇧🇷','Бразилия',8,11,'(11) 96123-4567'],\n['54','AR','🇦🇷','Аргентина',10,11,'9 11 2345 6789'],\n['66','TH','🇹🇭','Таиланд',8,10,'81 234 5678'],\n['84','VN','🇻🇳','Вьетнам',7,10,'912 345 678'],\n['62','ID','🇮🇩','Индонезия',7,12,'812 345 678'],\n['60','MY','🇲🇾','Малайзия',8,10,'12 345 6789'],\n['65','SG','🇸🇬','Сингапур',8,11,'8123 4567'],\n['86','CN','🇨🇳','Китай',7,12,'131 2345 6789'],\n['82','KR','🇰🇷','Южная Корея',5,13,'10 2000 0000'],\n['81','JP','🇯🇵','Япония',8,13,'90 1234 5678'],\n['91','IN','🇮🇳','Индия',8,13,'81234 56789'],\n['20','EG','🇪🇬','Египет',8,10,'10 01234567'],\n['212','MA','🇲🇦','Марокко',9,9,'650 123456'],\n['966','SA','🇸🇦','Саудовская Аравия',9,10,'51 234 5678'],\n['974','QA','🇶🇦','Катар',7,11,'3312 3456'],\n['61','AU','🇦🇺','Австралия',5,12,'412 345 678'],\n    ['','','🌍','Другая страна — введите код с +',0,0,'+код и номер']\n  ];\n  var OTHER = C.length - 1;\n  var fields = [];\n\n  function dg(s) { return String(s || '').replace(/\\D/g, ''); }\n\n  // ---------- библиотека форматов ----------\n  var LP = null, libAsked = false;\n  function lib() {\n    if (LP || libAsked) return;\n    libAsked = true;\n    var s = document.createElement('script');\n    s.src = LIB; s.async = true;\n    s.onload = function () {\n      LP = window.libphonenumber || null;\n      for (var i = 0; i < fields.length; i++) { try { fields[i](); } catch (e) {} }\n    };\n    document.head.appendChild(s);\n  }\n\n  // Россия и Казахстан — привычный вид (912) 345-67-89.\n  function fmt7(d) {\n    var o = '';\n    if (d.length > 0) o = '(' + d.slice(0, 3);\n    if (d.length >= 3) o += ') ' + d.slice(3, 6);\n    if (d.length >= 6) o += '-' + d.slice(6, 8);\n    if (d.length >= 8) o += '-' + d.slice(8, 10);\n    return o;\n  }\n  function byThree(d) { return d.replace(/(\\d{3})(?=\\d)/g, '$1 ').trim(); }\n\n  /** Как показать номер: для +7 свой вид, для остальных — формат страны из библиотеки. */\n  function show(nd, c) {\n    if (!nd) return '';\n    if (c[0] === '7') return fmt7(nd);\n    if (!LP) return byThree(nd);\n    try {\n      var nat = new LP.AsYouType(c[1]).input(nd);\n      if (/[ \\-()]/.test(nat) && dg(nat) === nd) return nat;\n      var intl = new LP.AsYouType().input('+' + c[0] + nd), pre = '+' + c[0];\n      if (intl.indexOf(pre) === 0) {\n        var rest = intl.slice(pre.length).replace(/^\\s+/, '');\n        if (dg(rest) === nd) return rest;\n      }\n    } catch (e) {}\n    return byThree(nd);\n  }\n\n  /** Номер набран полностью? Спрашиваем библиотеку, без неё — по длине из списка. */\n  function full(nd, c) {\n    if (c === C[OTHER]) return nd.length >= 8 && nd.length <= 15;\n    if (LP) { try { return LP.validatePhoneNumberLength(nd, c[1]) === undefined; } catch (e) {} }\n    return nd.length >= c[4] && nd.length <= c[5];\n  }\n  /** Лишние цифры не даём набирать: больше максимума для страны — отбрасываем. */\n  function cap(nd, c) {\n    if (c === C[OTHER]) return nd.slice(0, 15);\n    if (LP) {\n      try { while (nd.length > c[4] && LP.validatePhoneNumberLength(nd, c[1]) === 'TOO_LONG') nd = nd.slice(0, -1); } catch (e) {}\n    }\n    return nd.length > c[5] ? nd.slice(0, c[5]) : nd;\n  }\n  // Самый длинный подходящий код страны; для +7 по умолчанию Россия.\n  function byPrefix(d) {\n    var best = -1;\n    for (var i = 0; i < OTHER; i++) {\n      if (d.indexOf(C[i][0]) === 0 && (best < 0 || C[i][0].length > C[best][0].length)) best = i;\n    }\n    return best;\n  }\n\n  function enhance(inp) {\n    if (inp.__smp) return;\n    inp.__smp = 1;\n    var wrap = document.createElement('span');\n    wrap.className = 'smp';\n    inp.parentNode.insertBefore(wrap, inp);\n    wrap.appendChild(inp);\n\n    var hid = document.createElement('input');\n    hid.type = 'hidden';\n    hid.name = inp.name || 'phone';\n    wrap.appendChild(hid);\n    inp.removeAttribute('name');\n    // На лендингах есть своя маска /phone-mask.js — эти отметки её выключают.\n    inp.setAttribute('data-no-phone-mask', '1');\n    inp.setAttribute('data-phone-mask-ready', '1');\n    inp.setAttribute('inputmode', 'tel');\n    inp.setAttribute('autocomplete', 'tel');\n    inp.removeAttribute('maxlength');\n\n    var cc = document.createElement('span');\n    cc.className = 'smp__cc';\n    var sel = document.createElement('select');\n    sel.className = 'smp__sel';\n    sel.setAttribute('aria-label', 'Код страны');\n    for (var i = 0; i < C.length; i++) {\n      var o = document.createElement('option');\n      o.value = i;\n      o.textContent = C[i][2] + ' ' + C[i][3] + (C[i][0] ? ' +' + C[i][0] : '');\n      sel.appendChild(o);\n    }\n    wrap.insertBefore(cc, inp);\n    wrap.insertBefore(sel, inp);\n\n    var cur = 0, picked = false, prev = '';\n    var star = /\\*\\s*$/.test(inp.placeholder || '') ? '*' : '';\n\n    // Шрифт поля телефона — как у соседних полей формы: у некоторых сайтов\n    // поле телефона осталось без класса и рисовалось системным мелким шрифтом.\n    function sameFont() {\n      // Соседнее поле ищем и в закрытом окне заявки: размеры шрифта у скрытых\n      // элементов читаются так же, а окно открывается позже.\n      var f = inp.form || document, sib = null, all = f.querySelectorAll('input[type=text],input[type=email],input:not([type])');\n      for (var i = 0; i < all.length; i++) if (all[i] !== inp && all[i].type !== 'hidden') { sib = all[i]; break; }\n      var s = getComputedStyle(sib || inp);\n      if (sib) { inp.style.fontSize = s.fontSize; inp.style.fontFamily = s.fontFamily; inp.style.fontWeight = s.fontWeight; }\n      var mine = getComputedStyle(inp);\n      cc.style.color = mine.color; cc.style.fontSize = mine.fontSize;\n      cc.style.fontFamily = mine.fontFamily; cc.style.fontWeight = mine.fontWeight;\n      return parseFloat(mine.paddingLeft) || 12;\n    }\n    var basePad = sameFont();\n\n    function paint() {\n      var c = C[cur];\n      cc.innerHTML = '<span>' + c[2] + '</span>' + (cur === OTHER ? '' : '<b>+' + c[0] + '</b>') +\n        '<span class=\"smp__arr\">▾</span>';\n      sel.value = String(cur);\n      var w = cc.getBoundingClientRect().width || 70;\n      sel.style.width = w + 'px';\n      // Цифры стоят вплотную к коду: одинаковый зазор при любой длине кода\n      // (+7 и +375 выглядят одинаково), номер читается как одно целое.\n      inp.style.paddingLeft = Math.round(w + 2) + 'px';\n      inp.placeholder = c[6] + star;\n    }\n\n    /** Каретку ставим после n-й цифры — тогда стирание и правка в середине не путаются. */\n    function caret(n) {\n      var v = inp.value;\n      if (n >= dg(v).length) { try { inp.setSelectionRange(v.length, v.length); } catch (e) {} return; }\n      var seen = 0, i = 0;\n      for (; i < v.length; i++) {\n        if (/\\d/.test(v[i])) { seen++; if (seen >= n) { i++; break; } }\n      }\n      if (n === 0) { i = 0; while (i < v.length && !/\\d/.test(v[i])) i++; }\n      try { inp.setSelectionRange(i, i); } catch (e) {}\n    }\n\n    function apply(kind) {\n      var v = inp.value, pos = inp.selectionStart == null ? v.length : inp.selectionStart;\n      var before = (v.slice(0, pos).match(/\\d/g) || []).length;\n      var nd = dg(v);\n\n      // Вставили или набрали номер с «+» — определяем страну по коду.\n      if (/\\+/.test(v)) {\n        var k = byPrefix(nd);\n        var whole = k >= 0 && nd.length >= C[k][0].length + C[k][4];\n        if (picked && cur !== OTHER && !whole) {\n          if (nd.indexOf(C[cur][0]) === 0 && nd.length > C[cur][0].length) nd = nd.slice(C[cur][0].length);\n        } else if (k >= 0) {\n          if (!(k === 0 && cur === 1)) cur = k;\n          nd = nd.slice(C[cur][0].length);\n          before = Math.max(0, before - C[cur][0].length);\n        } else if (nd.length > 3) {\n          cur = OTHER;\n        }\n      }\n      var c = C[cur];\n      // Стёрли знак форматирования — цифры не изменились: убираем цифру перед кареткой.\n      if (kind && kind.indexOf('delete') === 0 && nd === prev && before > 0) {\n        nd = nd.slice(0, before - 1) + nd.slice(before);\n        before--;\n      }\n      if (c[0] === '7') {\n        // 8 912… и 7 912… — та же десятка, первую цифру отбрасываем.\n        if (nd.length === 11 && (nd[0] === '8' || nd[0] === '7')) { nd = nd.slice(1); before = Math.max(0, before - 1); }\n      } else if (c[0] && nd.length > c[5] && nd.indexOf(c[0]) === 0) {\n        nd = nd.slice(c[0].length); before = Math.max(0, before - c[0].length);\n      }\n      nd = cap(nd, c);\n      if (before > nd.length) before = nd.length;\n      prev = nd;\n\n      var out = cur === OTHER ? '+' + nd : show(nd, c);\n      if (inp.value !== out) { inp.value = out; caret(before); }\n      hid.value = full(nd, c) ? (cur === OTHER ? '+' + nd : '+' + c[0] + ' ' + out) : '';\n      paint();\n    }\n\n    var kind = '';\n    inp.addEventListener('beforeinput', function (e) { kind = e.inputType || ''; });\n    inp.addEventListener('input', function (e) { apply(e.inputType || kind); kind = ''; });\n    inp.addEventListener('change', function () { apply(''); });\n    inp.addEventListener('focus', function () { lib(); basePad = sameFont(); paint(); });\n    inp.addEventListener('blur', function () { apply(''); });\n    sel.addEventListener('change', function () {\n      cur = +sel.value; picked = true; prev = '';\n      inp.value = cur === OTHER ? '+' : inp.value.replace(/^\\s*\\+\\d*\\s*/, '');\n      apply('');\n      try { inp.focus(); } catch (e) {}\n    });\n    var f = inp.form;\n    if (f) f.addEventListener('submit', function () { apply(''); }, true);\n\n    fields.push(function () { apply(''); });\n    apply('');\n    // Шрифт мог догрузиться позже — ширина кода поменяется.\n    setTimeout(function () { basePad = sameFont(); paint(); }, 600);\n    if (document.fonts && document.fonts.ready) document.fonts.ready.then(function () { basePad = sameFont(); paint(); });\n  }\n\n  function run() {\n    var list = document.querySelectorAll('input[type=\"tel\"][name=\"phone\"], input[name=\"phone\"]:not([type=\"hidden\"])');\n    for (var i = 0; i < list.length; i++) { try { enhance(list[i]); } catch (e) {} }\n    if (list.length) lib();   // формат нужен сразу, как только человек начнёт вводить\n  }\n  run();\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', run);\n})();\n</script>\n<!-- SM-PHONE:END -->\n","timer_js":"<script>(function(){\n  // -------- Timer: localStorage-persisted 24h deadline (real FOMO) --------\n  // Таймер спец-условий: 15 минут с первого визита, хранится в браузере.\n  // Раньше было 24 часа и блок часов — владелец попросил короткий отсчёт\n  // и убрать лишний квадрат, поэтому остались только минуты и секунды.\n  var M=document.getElementById('vslM'),S=document.getElementById('vslS'),\n      MS=document.getElementById('vslMs');\n  if(M&&S){\n    var KEY='vsl_deadline';\n    var LEN=15*60*1000;\n    var dl=parseInt((window.localStorage&&localStorage.getItem(KEY))||'0',10);\n    if(!dl || dl<Date.now() || dl-Date.now()>LEN){\n      dl=Date.now()+LEN;\n      try{localStorage.setItem(KEY,dl);}catch(_){ }\n    }\n    function pad(n){return (n<10?'0':'')+n;}\n    function tick(){\n      var rem = dl - Date.now();\n      if(rem <= 0){\n        // Отсчёт начинается заново, чтобы на экране не висели нули.\n        dl = Date.now() + LEN;\n        try{localStorage.setItem(KEY,dl);}catch(_){ }\n        rem = dl - Date.now();\n      }\n      var s=Math.floor(rem/1000);\n      M.textContent=pad(Math.floor(s/60));\n      S.textContent=pad(s%60);\n      if(MS) MS.textContent=pad(Math.floor((rem%1000)/10));\n    }\n    // Сотые доли обновляем часто — так отсчёт выглядит живым; минуты и секунды\n    // считаются в том же тике, отдельный интервал не нужен.\n    tick(); setInterval(tick, MS ? 60 : 1000);\n  }\n\n})();</script>","mech_js":"<script>\n(function(){\n  var CFG = window.TD_MECH || {};\n  function scrollToEl(el){ if(el) el.scrollIntoView({behavior:'smooth',block:'start'}); }\n  document.querySelectorAll('.vsl-scroll').forEach(function(b){\n    b.style.cursor='pointer';\n    b.addEventListener('click', function(){ scrollToEl(document.getElementById(b.dataset.target)); });\n  });\n  document.querySelectorAll('a[href$=\"#vsl\"]').forEach(function(a){\n    a.addEventListener('click', function(e){\n      var el=document.getElementById('vsl');\n      if(el){ e.preventDefault(); scrollToEl(el); }\n    });\n  });\n  var locked   = document.getElementById('vslLocked');\n  var unlocked = document.getElementById('vslUnlocked');\n  if(locked){ locked.addEventListener('click', function(){ scrollToEl(document.getElementById('vslLessonWrap')); }); }\n\n  // ---------------- Разблокировка блока «СЕКРЕТ» ----------------\n  // Открывается после UNLOCK_AT_SEC секунд реального просмотра урока.\n  // Три уровня надёжности, одинаковые для любого плеера:\n  //   1) события времени от плеера — основной путь;\n  //   2) опрос текущего времени раз в 2 сек — если события не приходят;\n  //   3) запасной режим: плеер не загрузился или молчит — таймер на\n  //      UNLOCK_AT_SEC секунд. Блок откроется в любом случае.\n  var UNLOCK_AT_SEC  = +CFG.unlockSec || 60;\n  var SDK_WAIT_MS    = 8000;   // ждём загрузку библиотеки плеера\n  var API_SILENCE_MS = 12000;  // ждём первый ответ плеера\n\n  var unlockedDone = false;\n  var lessonPlayer = null;\n\n  // Память об открытом секрете. Человек посмотрел минуту, блок открылся —\n  // и это уже не отбирается: ушёл на другую страницу, перезагрузил, вернулся\n  // через неделю — блок открыт. Иначе он упирается в запертую дверь, хотя\n  // доступ уже заслужил (разбор 24.09.2026).\n  var MEMKEY = 'sm_vsl_unlock';\n  function unlockRemembered(){\n    try{ return !!localStorage.getItem(MEMKEY); }catch(e){ return false; }\n  }\n  function rememberUnlock(how){\n    try{ if(!localStorage.getItem(MEMKEY)) localStorage.setItem(MEMKEY, JSON.stringify({at:Date.now(), by:how||'video'})); }catch(e){}\n  }\n\n  // Секрет уже открывали на этом устройстве — показываем сразу, молча.\n  setTimeout(function(){ if(unlockRemembered()) unlock(true); }, 0);\n\n  function unlock(restored){\n    if(unlockedDone) return; unlockedDone = true;\n    if(restored){\n      // Это возврат, а не новое открытие: счётчик воронки не должен считать\n      // шаг «секрет» заново, иначе секретов станет больше, чем стартов урока.\n      window.__vslUnlockRestored = true;\n    } else {\n      rememberUnlock(window.__vslUnlockBy);\n    }\n    // Как открылся секрет: по просмотру урока или по запасному таймеру (плеер\n    // не ответил). Счётчик воронки отправляет это вместе с шагом.\n    window.__vslUnlockBy = window.__vslUnlockBy || 'video';\n    if(locked)   locked.style.display   = 'none';\n    if(unlocked) unlocked.style.display = 'block';\n    // Урок НЕ останавливаем: открывшийся блок — лишь возможность записаться\n    // раньше, чтобы человек не ушёл. Прогрев на тест-драйв — в конце ролика,\n    // человек должен досмотреть. Сообщаем странице (тайм-коды сворачиваются).\n    try{ document.dispatchEvent(new CustomEvent('td:unlock')); }catch(e){}\n  }\n\n  // Считаем именно ПРОСМОТРЕННОЕ время, а не позицию в ролике:\n  // складываем только небольшие приросты. Перемотка вперёд и «продолжить\n  // просмотр» дают большой скачок — он не засчитывается.\n  var sawApi = false, watched = 0, lastT = null;\n  function feedTime(t){\n    if(typeof t !== 'number' || !isFinite(t)) return;\n    sawApi = true;\n    if(lastT !== null){\n      var d = t - lastT;\n      if(d > 0 && d <= 3) watched += d;\n    }\n    lastT = t;\n    // Наружу отдаём накопленные секунды НАСТОЯЩЕГО воспроизведения: по ним\n    // бот решает, открывать ли секрет. Раньше он ориентировался на открытие\n    // страницы, и секрет приходил тому, кто урок не включал.\n    try {\n      window.SM_LESSON_WATCHED = watched;\n      document.dispatchEvent(new CustomEvent('sm:lesson-progress',\n                                             { detail: { watched: watched } }));\n    } catch(e){}\n    if(watched >= UNLOCK_AT_SEC) unlock();\n  }\n\n  // Запасной таймер: отсчёт идёт от включения запасного режима (фактически\n  // от загрузки страницы) и ни от чего больше не зависит.\n  var fallbackUsed = false;\n  function fallback(extra){\n    if(fallbackUsed || unlockedDone) return; fallbackUsed = true;\n    window.__vslUnlockBy = 'timer';\n    if(extra){ try{ extra(); }catch(e){} }\n    setTimeout(unlock, UNLOCK_AT_SEC*1000);\n  }\n\n  // Урок и разогрев не должны играть одновременно: два потока разом телефон\n  // не тянет, второй глохнет через несколько секунд. Пошёл урок — гасим разогрев.\n  var stopWarmup = function(){};\n  window.__vslLessonStarted = false;\n  window.__vslStopWarmup = function(){ stopWarmup(); };\n  function lessonStarted(){\n    window.__vslLessonStarted = true;\n    try { document.dispatchEvent(new CustomEvent('sm:lesson-start')); } catch(e){}\n    stopWarmup();\n  }\n\n  function loadScript(src, onerror){\n    var s = document.createElement('script');\n    s.src = src; s.async = true; s.onerror = onerror;\n    document.head.appendChild(s);\n  }\n  function waitFor(check, onReady, onTimeout){\n    if(check()) return onReady();\n    var waited = 0;\n    var t = setInterval(function(){\n      if(check()){ clearInterval(t); onReady(); return; }\n      waited += 300;\n      if(waited >= SDK_WAIT_MS){ clearInterval(t); onTimeout(); }\n    }, 300);\n  }\n  // Общий для плееров «страховочный» опрос и проверка, что плеер вообще отвечает.\n  function watchPlayer(getTime){\n    var poll = setInterval(function(){\n      if(unlockedDone){ clearInterval(poll); return; }\n      try{\n        var pr = getTime();\n        if(pr && pr.then) pr.then(feedTime).catch(function(){});\n      }catch(e){}\n    }, 2000);\n    setTimeout(function(){\n      if(!sawApi && !unlockedDone){ clearInterval(poll); fallback(); }\n    }, API_SILENCE_MS);\n  }\n\n  var kMount = document.getElementById('vslLessonPlayer');\n  var LESSON_ID = kMount ? (kMount.getAttribute('data-kinescope-id') || '') : '';\n  \n\n  // ================= Vimeo (лендинги) =================\n  var vHero = document.getElementById('hero-vimeo');\n  var vPres = document.getElementById('pres-vimeo');\n  function whenVimeo(cb, onFail){\n    if(!window.Vimeo){ loadScript('https://player.vimeo.com/api/player.js', onFail); }\n    waitFor(function(){ return window.Vimeo && window.Vimeo.Player; }, cb, onFail);\n  }\n  if(vHero || vPres){\n    // player.js сам поднимает плеер на любом элементе с data-vimeo-id и кладёт\n    // в него ЕЩЁ один iframe — поверх ролика висел второй, немой. Лишние убираем.\n    var dropDoubles = function(){\n      ['video-short','video-main'].forEach(function(slot){\n        var host = document.querySelector('[data-td-slot=\"' + slot + '\"]');\n        if(!host) return;\n        host.querySelectorAll('iframe').forEach(function(f){\n          if(f.id !== 'pres-vimeo' && f.id !== 'hero-vimeo') f.remove();\n        });\n      });\n    };\n    [0, 300, 1000, 2500, 6000].forEach(function(ms){ setTimeout(dropDoubles, ms); });\n  }\n  if(vHero){\n    whenVimeo(function(){\n      var pl;\n      try{ pl = new window.Vimeo.Player(vHero); }catch(e){ fallback(); return; }\n      lessonPlayer = pl;\n      pl.on('play', lessonStarted);\n      pl.on('timeupdate', function(d){ feedTime(d && d.seconds); });\n      watchPlayer(function(){ return pl.getCurrentTime(); });\n    }, function(){ fallback(); });\n  }\n  // ================= Свой плеер (sm-player) =================\n  // Разметка <div data-sm-video=\"lesson|warmup\" data-src=\"…\">, скрипт /sm-player/sm-player.js.\n  // Язык тот же, что у Vimeo, поэтому механика та же.\n  var sLesson = document.querySelector('[data-sm-video=\"lesson\"]');\n  var sWarm   = document.querySelector('[data-sm-video=\"warmup\"]');\n  function whenSm(cb, onFail){ waitFor(function(){ return window.SMPlayer; }, cb, onFail); }\n  if(sLesson){\n    whenSm(function(){\n      var pl = window.SMPlayer.mount(sLesson);\n      lessonPlayer = pl;\n      pl.on('play', lessonStarted);\n      pl.on('timeupdate', function(d){ feedTime(d && d.seconds); });\n      pl.on('fatal', function(){ fallback(); });   // ни один источник не открылся\n      watchPlayer(function(){ return pl.getCurrentTime(); });\n    }, function(){ fallback(); });\n  }\n\n  // Урока нет совсем — всё равно не оставляем секрет запертым навсегда.\n  if(!(kMount && LESSON_ID) && !vHero && !sLesson && (locked || unlocked)) fallback();\n\n  // ================= Разогревочный ролик =================\n  var net = navigator.connection || navigator.mozConnection || navigator.webkitConnection;\n  // Экономия трафика: на медленной сети и в «экономном режиме» разогрев сам\n  // не запускаем — это украшение, а не содержание страницы.\n  var slowNet = !!(net && (net.saveData || /^(slow-)?2g$/.test(net.effectiveType || '')));\n  // Разогрев по умолчанию — как решил автор: на 5-й секунде и только со звуком.\n  var WARM_DELAY = (CFG.warmupDelay != null ? +CFG.warmupDelay : 5) * 1000;\n  var WARM_SOUND = CFG.warmupSound !== false;\n  // Кто разогрев уже посмотрел (20+ секунд или до конца), тому сам больше не\n  // запускаем — на большом сайте блок стоит на многих страницах.\n  function warmSeen(){ try{ return localStorage.getItem('sm_warm_seen') === '1'; }catch(e){ return false; } }\n  function markWarmSeen(){ try{ localStorage.setItem('sm_warm_seen', '1'); }catch(e){} }\n  function onScreen(el, cb){\n    // Запускаем только когда до разогрева долистали: иначе он качает мегабайты\n    // человеку, который до этого места не дошёл.\n    if(!('IntersectionObserver' in window)) return cb();\n    var o = new IntersectionObserver(function(es){\n      es.forEach(function(e){ if(e.isIntersecting){ o.disconnect(); cb(); } });\n    }, { rootMargin: '200px 0px' });\n    o.observe(el);\n  }\n\n  \n\n  // Разогрев через API плеера (Vimeo и свой — язык один). warmupSound — только\n  // со звуком: где браузер звук не даёт, не запускаем вовсе, человек нажмёт сам,\n  // ролик пойдёт с нуля.\n  function warmupWith(pp, el){\n    var touched = false;\n    pp.on('play', function(){ touched = true; });\n    pp.on('timeupdate', function(d){ if(d && d.seconds >= 20) markWarmSeen(); });\n    pp.on('ended', markWarmSeen);\n    stopWarmup = function(){ touched = true; var r = pp.pause(); if(r && r.catch) r.catch(function(){}); };\n    var go = function(){\n      if(touched || window.__vslLessonStarted || document.hidden || slowNet || warmSeen()) return;\n      if(WARM_SOUND){\n        pp.setMuted(false).then(function(){ return pp.setVolume(1); })\n          .then(function(){ return pp.play(); })\n          .catch(function(){\n            var r1 = pp.pause(); if(r1 && r1.catch) r1.catch(function(){});\n            var r2 = pp.setCurrentTime(0); if(r2 && r2.catch) r2.catch(function(){});\n          });\n      } else {\n        pp.setMuted(true).then(function(){ return pp.play(); }).catch(function(){});\n      }\n    };\n    // На лендинге разогрев в первом экране — считаем от входа.\n    if(CFG.warmupFromLoad) setTimeout(go, WARM_DELAY);\n    else onScreen(el, function(){ setTimeout(go, WARM_DELAY); });\n  }\n  if(vPres){\n    whenVimeo(function(){\n      var pp;\n      try{ pp = new window.Vimeo.Player(vPres); }catch(e){ return; }\n      warmupWith(pp, vPres);\n    }, function(){});\n  }\n  if(sWarm){\n    whenSm(function(){ warmupWith(window.SMPlayer.mount(sWarm), sWarm); }, function(){});\n  }\n\n  // -------- Timer: localStorage-persisted 24h deadline (real FOMO) --------\n  // Таймер спец-условий: 15 минут с первого визита, хранится в браузере.\n  // Раньше было 24 часа и блок часов — владелец попросил короткий отсчёт\n  // и убрать лишний квадрат, поэтому остались только минуты и секунды.\n  var M=document.getElementById('vslM'),S=document.getElementById('vslS'),\n      MS=document.getElementById('vslMs');\n  if(M&&S){\n    var KEY='vsl_deadline';\n    var LEN=15*60*1000;\n    var dl=parseInt((window.localStorage&&localStorage.getItem(KEY))||'0',10);\n    if(!dl || dl<Date.now() || dl-Date.now()>LEN){\n      dl=Date.now()+LEN;\n      try{localStorage.setItem(KEY,dl);}catch(_){ }\n    }\n    function pad(n){return (n<10?'0':'')+n;}\n    function tick(){\n      var rem = dl - Date.now();\n      if(rem <= 0){\n        // Отсчёт начинается заново, чтобы на экране не висели нули.\n        dl = Date.now() + LEN;\n        try{localStorage.setItem(KEY,dl);}catch(_){ }\n        rem = dl - Date.now();\n      }\n      var s=Math.floor(rem/1000);\n      M.textContent=pad(Math.floor(s/60));\n      S.textContent=pad(s%60);\n      if(MS) MS.textContent=pad(Math.floor((rem%1000)/10));\n    }\n    // Сотые доли обновляем часто — так отсчёт выглядит живым; минуты и секунды\n    // считаются в том же тике, отдельный интервал не нужен.\n    tick(); setInterval(tick, MS ? 60 : 1000);\n  }\n})();\n</script>\n","css":"@font-face{font-family:'Druk Wide Cyr';src:url('https://schoolsm.ru/fonts/druk/e7fa3e0f70e1466b2f73ee1ac39c8c30.woff2') format('woff2'),url('https://schoolsm.ru/fonts/druk/e7fa3e0f70e1466b2f73ee1ac39c8c30.woff') format('woff');font-weight:400;font-style:normal;font-display:swap;}\n.vsl{--font-family:\"Montserrat\",sans-serif;--second-family:\"Druk Wide Cyr\",\"Montserrat\",sans-serif;--t-body:clamp(16px,1.1vw,18px);--t-btn:16px;--t-display:clamp(30px,3.4vw,50px);--t-h2:clamp(24px,2.4vw,34px);--t-h3:clamp(19px,1.5vw,22px);}\n@media (max-width:768px){.vsl{--t-body:14px;--t-btn:14px;--t-display:clamp(17px,5.3vw,22px);--t-h2:19px;--t-h3:16px;}}\n.vsl .visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}\n.vsl{font-family:var(--font-family);background:linear-gradient(180deg,#000 0%,#161616 22%,#161616 78%,#000 100%);color:#fff;padding:70px 0;overflow:hidden;position:relative;}\n.vsl::before,.vsl::after{content:'';position:absolute;left:0;right:0;height:220px;pointer-events:none;z-index:0;}\n.vsl::before{top:0;background:linear-gradient(180deg,#000 0%,rgba(22,22,22,0) 100%);}\n.vsl::after{bottom:0;background:linear-gradient(0deg,#000 0%,rgba(22,22,22,0) 100%);}\n.vsl .center{width:100%;max-width:1100px;margin:0 auto;padding:0 20px;box-sizing:border-box;position:relative;z-index:1;}\n.vsl__hero{text-align:center;margin-bottom:36px;}\n.vsl__title{font-family:var(--second-family);font-size:clamp(24px,3.4vw,42px);line-height:1.15;font-weight:800;text-transform:uppercase;margin:0;}\n.vsl__title span{color:#54EA9F;}\n.vsl__if{margin-top:22px;color:#54EA9F;font-weight:700;text-transform:uppercase;letter-spacing:1px;}\n.vsl__list{list-style:none;padding:0;margin:18px auto;max-width:560px;text-align:left;}\n.vsl__list li{padding:7px 0 7px 34px;position:relative;font-size:16px;line-height:1.4;}\n.vsl__list li:before{content:'✓';position:absolute;left:4px;top:7px;color:#54EA9F;font-weight:800;}\n.vsl__cta1,.vsl__cta2{font-weight:800;margin-top:24px;font-size:clamp(15px,1.6vw,20px);text-transform:uppercase;cursor:pointer;}\n.vsl__arrow{display:flex;justify-content:center;margin-top:10px;}\n.vsl__arrow svg{width:44px;height:auto;animation:vslBounce 1.4s ease-in-out infinite;}\n.vsl__warmup,.vsl__lesson{margin:26px auto;max-width:860px;}\n.vsl__warning{background:#1d1d1d;border:1px solid #333;padding:11px 20px;border-radius:10px;text-align:center;margin-bottom:16px;font-size:14px;}\n.vsl__player{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:14px;background:#000;border:1px solid #2a2a2a;}\n.vsl__player iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0;}\n.vsl__bridge{text-align:center;margin:40px auto;max-width:780px;}\n.vsl__task{font-family:var(--second-family);font-size:clamp(18px,2vw,24px);margin-bottom:16px;}\n.vsl__bridge-title{color:#54EA9F;font-weight:700;margin:18px 0 8px;text-transform:uppercase;}\n.vsl__bridge-aft{margin-top:18px;font-weight:600;}\n.vsl__locked{text-align:center;padding:46px 30px;border:2px dashed #6340e5;border-radius:16px;margin:36px auto;max-width:680px;cursor:pointer;background:linear-gradient(160deg,#1a1430,#101010);animation:vslPulse 2.6s ease-in-out infinite;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;}\n.vsl__locked:hover{transform:scale(1.05);border-color:#54EA9F;box-shadow:0 0 45px rgba(99,64,229,.55);animation-play-state:paused;}\n.vsl__lock{font-size:44px;margin-bottom:12px;}\n.vsl__lock-text{font-weight:800;letter-spacing:1px;text-transform:uppercase;font-size:clamp(14px,1.6vw,18px);}\n.vsl__unlocked{margin:36px auto;max-width:720px;}\n.vsl__buybtn{display:block;box-sizing:border-box;width:100%;max-width:540px;margin:20px auto;background:linear-gradient(90deg,#6340e5 0%,#6132c1 50%,#5f249c 100%);color:#fff;padding:20px 28px;border-radius:50px;font-weight:800;text-transform:uppercase;text-decoration:none;font-size:clamp(15px,1.7vw,19px);text-align:center;box-shadow:0 10px 32px rgba(99,64,229,.45);transition:transform .15s ease;}\n.vsl__buybtn:hover{transform:translateY(-2px) scale(1.02);background:linear-gradient(90deg,#6f4cf0 0%,#6d3ad0 50%,#6a2bad 100%);}\n.vsl__sales{text-align:center;background:linear-gradient(180deg,#181428 0%,#0c0c0c 100%);border:1px solid #2a2440;border-radius:18px;padding:36px 26px;}\n.vsl__sales p{margin:10px 0;line-height:1.4;}\n.vsl__sub{font-family:var(--second-family);color:#54EA9F;font-weight:800;text-transform:uppercase;font-size:clamp(18px,2.2vw,26px);margin:14px 0;}\n.vsl__sales ul{list-style:none;padding:0;text-align:left;max-width:470px;margin:12px auto;}\n.vsl__sales ul li{padding:6px 0 6px 30px;position:relative;}\n.vsl__sales ul li:before{content:'✓';position:absolute;left:4px;top:6px;color:#54EA9F;font-weight:800;}\n.vsl__main{border:2px solid #6340e5;border-radius:16px;margin:26px auto;max-width:560px;overflow:hidden;}\n.vsl__main-head{font-family:var(--second-family);background:linear-gradient(90deg,#6340e5,#5f249c);padding:13px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;}\n.vsl__main-body{padding:24px 22px;}\n.vsl__main-body hr{border:0;border-top:1px solid #3a3350;margin:18px 0;}\n.vsl__price{font-family:var(--second-family);font-size:clamp(24px,3.4vw,38px);margin:16px 0;font-weight:800;}\n.vsl__price s{color:#777;margin-right:12px;font-size:.62em;}\n.vsl__price b{color:#54EA9F;}\n.vsl__badge{display:inline-block;background:#e23434;color:#fff;font-weight:800;font-size:14px;padding:4px 12px;border-radius:20px;margin-left:10px;vertical-align:middle;}\n.vsl__timer{margin:26px 0;}\n.vsl__timer-label{font-weight:700;text-transform:uppercase;font-size:14px;margin-bottom:12px;}\n.vsl__timer-digits{display:flex;justify-content:center;gap:8px;}\n.vsl__timer-digits span{background:#1d1d1d;border:1px solid #3a3350;border-radius:8px;padding:10px 12px;font-size:clamp(18px,2.4vw,26px);font-weight:800;min-width:48px;display:inline-block;}\n.vsl__timer-digits i{font-style:normal;font-size:22px;font-weight:800;align-self:center;color:#6340e5;}\n@media(max-width:768px){\n.vsl{padding:40px 0;}\n.vsl::before,.vsl::after{height:90px;}\n.vsl .center{padding:0 14px;}\n.vsl__hero{margin-bottom:24px;}\n.vsl__title{font-size:22px;line-height:1.2;}\n.vsl__if{margin-top:16px;font-size:14px;letter-spacing:.5px;}\n.vsl__list{margin:14px auto;max-width:100%;}\n.vsl__list li{font-size:14px;padding:5px 0 5px 26px;}\n.vsl__list li:before{top:5px;}\n.vsl__cta1,.vsl__cta2{font-size:15px;margin-top:18px;line-height:1.3;}\n.vsl__arrow svg{width:38px;}\n.vsl__warmup,.vsl__lesson{margin:18px auto;}\n.vsl__warning{font-size:12px;padding:9px 12px;}\n.vsl__player{border-radius:10px;}\n.vsl__bridge{margin:26px auto;}\n.vsl__task{font-size:17px;}\n.vsl__bridge-title{font-size:14px;}\n.vsl__bridge-aft{font-size:14px;}\n.vsl__locked{padding:30px 16px;margin:24px auto;}\n.vsl__lock{font-size:36px;}\n.vsl__lock-text{font-size:14px;}\n.vsl__unlocked{margin:24px auto;}\n.vsl__buybtn{padding:16px 14px;font-size:14px;border-radius:40px;margin:14px auto;}\n.vsl__sales{padding:24px 14px;border-radius:14px;}\n.vsl__sales p{font-size:14px;}\n.vsl__sub{font-size:19px;}\n.vsl__sales ul{max-width:100%;}\n.vsl__sales ul li{font-size:14px;}\n.vsl__main{margin:20px auto;}\n.vsl__main-head{font-size:14px;padding:11px;}\n.vsl__main-body{padding:18px 14px;}\n.vsl__price{font-size:26px;}\n.vsl__badge{font-size:12px;padding:3px 9px;margin-left:6px;}\n.vsl__timer-digits span{padding:8px 7px;min-width:40px;font-size:20px;}\n.vsl__timer-digits i{font-size:18px;}\n.vsl__timer-label{font-size:12px;}\n}\n@media(max-width:380px){\n.vsl__title{font-size:19px;}\n.vsl__timer-digits span{min-width:34px;padding:7px 5px;font-size:17px;}\n}\nsection:not(.article):not(.arts) .vsl__title,\nsection:not(.article):not(.arts) .extplatforms__title,\nsection:not(.article):not(.arts) .coursemain__wrapper-t2,\nsection:not(.article):not(.arts) > .center > .title,\nsection:not(.article):not(.arts) .webinarmain__wrapper-t2{\n  font-size: var(--t-display) !important;\n  line-height: 1.06 !important;\n  text-wrap: balance;\n}\nsection:not(.article):not(.arts) .wcol__title,\nsection:not(.article):not(.arts) .bonus__title,\nsection:not(.article):not(.arts) .path__title,\nsection:not(.article):not(.arts) .path__atitle,\nsection:not(.article):not(.arts) .path__wrapper-t,\nsection:not(.article):not(.arts) .learn__title,\nsection:not(.article):not(.arts) .learn__title4,\nsection:not(.article):not(.arts) .faq__title,\nsection:not(.article):not(.arts) .want__title,\nsection:not(.article):not(.arts) .efir__sub,\nsection:not(.article):not(.arts) .vsl__task,\nsection:not(.article):not(.arts) .test__title,\nsection:not(.article):not(.arts) .wedo__title,\nsection:not(.article):not(.arts) .start,\nsection:not(.article):not(.arts) .why,\nsection:not(.article):not(.arts) .t4,\nsection:not(.article):not(.arts) .wcol_aft,\nsection:not(.article):not(.arts) .smog__title{\n  font-size: var(--t-h2) !important;\n  line-height: 1.18 !important;\n  text-wrap: balance;\n}\nsection:not(.article):not(.arts) .vsl__cta1,\nsection:not(.article):not(.arts) .vsl__cta2,\nsection:not(.article):not(.arts) .vsl__lock-text,\nsection:not(.article):not(.arts) .vsl__bridge-title,\nsection:not(.article):not(.arts) .want__atitle,\nsection:not(.article):not(.arts) .atitle,\nsection:not(.article):not(.arts) .coursemain__wrapper-t1,\nsection:not(.article):not(.arts) .coursemain__wrapper-val,\nsection:not(.article):not(.arts) .webinarmain__wrapper-t1,\nsection:not(.article):not(.arts) .pname,\nsection:not(.article):not(.arts) .dolg,\nsection:not(.article):not(.arts) .extplatforms__atitle,\nsection:not(.article):not(.arts) .efir__points-text,\nsection:not(.article):not(.arts) .wcol__adv-item-title,\nsection:not(.article):not(.arts) .learn__wrapper-t,\nsection:not(.article):not(.arts) .bonus__t1,\nsection:not(.article):not(.arts) .test__atitle{\n  font-size: var(--t-h3) !important;\n  line-height: 1.32 !important;\n}\nsection:not(.article):not(.arts) .text,\nsection:not(.article):not(.arts) .wedo__text,\nsection:not(.article):not(.arts) .wedo__atext,\nsection:not(.article):not(.arts) .vsl__if,\nsection:not(.article):not(.arts) .vsl__warning,\nsection:not(.article):not(.arts) .vsl__bridge-aft,\nsection:not(.article):not(.arts) .vsl__list li,\nsection:not(.article):not(.arts) .vsl__sales p,\nsection:not(.article):not(.arts) .vsl__sales li,\nsection:not(.article):not(.arts) .coursemain__wrapper-t3,\nsection:not(.article):not(.arts) .coursemain__wrapper-t3 li,\nsection:not(.article):not(.arts) .coursemain__wrapper-full,\nsection:not(.article):not(.arts) .coursemain__wrapper-key,\nsection:not(.article):not(.arts) .webinarmain__wrapper-t3,\nsection:not(.article):not(.arts) .webinarmain__wrapper-t3 p,\nsection:not(.article):not(.arts) .wcol__adv-item-text,\nsection:not(.article):not(.arts) .path__wrapper-d,\nsection:not(.article):not(.arts) .pwrap__text,\nsection:not(.article):not(.arts) .want__aft,\nsection:not(.article):not(.arts) .extplatforms__cta,\nsection:not(.article):not(.arts) .extplatforms__sub,\nsection:not(.article):not(.arts) .learn__wrapper-d,\nsection:not(.article):not(.arts) .t3,\nsection:not(.article):not(.arts) .t5,\nsection:not(.article):not(.arts) .q,\nsection:not(.article):not(.arts) .d,\nsection:not(.article):not(.arts) .a{\n  font-size: var(--t-body) !important;\n  line-height: 1.55 !important;\n}\n.vsl__arrow, .arrow, .arrows, [class$=\"__arrow\"]{\n  margin: 6px auto 18px !important;\n  animation: smArrow 1.1s ease-in-out infinite;\n}\n@media (prefers-reduced-motion: reduce){\n.vsl__arrow, .arrow, .arrows, [class$=\"__arrow\"]{ animation: none; }\n}\nsection:not(.article):not(.arts) .vsl__sub{ font-size: var(--t-h3) !important; }\n.popup a.vsl__buybtn,\n.popup .vsl__buybtn,\n.popup a.vsl__buybtn:hover,\n.popup a.vsl__buybtn:visited{\n  color: #fff !important;\n  -webkit-text-fill-color: #fff !important;\n}\nsection:not(.article):not(.arts) a.btn,\n.experts a.btn,\n.compauth a.btn,\nsection.arts .arts__wrapper-buttons a.btn,\nfooter a.btn,\n.popup a.btn,\n.popup a.vsl__buybtn,\na.vsl__buybtn,\nbutton.cuc__button{\n  font-family: 'Montserrat', sans-serif !important;\n  font-weight: 700 !important;\n  font-size: 16px !important;\n  border-radius: 14px !important;\n}\n@media (max-width: 900px){\nsection:not(.article):not(.arts) a.btn,\n  .experts a.btn,\n  .compauth a.btn,\n  section.arts .arts__wrapper-buttons a.btn,\n  footer a.btn,\n  .popup a.btn,\n  .popup a.vsl__buybtn,\n  a.vsl__buybtn,\n  button.cuc__button{\n    font-size: 14px !important;\n  }\n}\n@media (max-width: 900px){\nsection:not(.article):not(.arts) h1,\n  section:not(.article):not(.arts) h2,\n  section:not(.article):not(.arts) h3,\n  section:not(.article):not(.arts) .title,\n  section:not(.article):not(.arts) [class*=\"__title\"],\n  section:not(.article):not(.arts) [class*=\"__wrapper-t\"],\n  section:not(.article):not(.arts) .vsl__title,\n  section:not(.article):not(.arts) .vsl__task,\n  section:not(.article):not(.arts) .vsl__cta1,\n  section:not(.article):not(.arts) .vsl__cta2,\n  section:not(.article):not(.arts) .atitle,\n  section:not(.article):not(.arts) .start,\n  section:not(.article):not(.arts) .why,\n  section:not(.article):not(.arts) .t4,\n  section:not(.article):not(.arts) .efir__sub,\n  section:not(.article):not(.arts) .wcol_aft{\n    text-wrap: wrap !important;\n    overflow-wrap: break-word;\n    word-break: normal;\n    hyphens: none;\n  }\n}\n@media (min-width: 769px) and (max-width: 1199px){\nsection:not(.article):not(.arts) a.btn,\n  .experts a.btn, .compauth a.btn,\n  section.arts .arts__wrapper-buttons a.btn,\n  footer a.btn, .popup a.btn, .popup a.vsl__buybtn,\n  a.vsl__buybtn, button.cuc__button{ font-size: 16px !important; }\n}\n.vsl__sub{\n  max-width: 720px; margin: 14px auto 0;\n  font-size: var(--t-body); line-height: 1.55; text-align: center; color: #d5d5db;\n}\n.vsl__actions{\n  display: flex; flex-wrap: wrap; gap: 16px;\n  align-items: center; justify-content: center; margin: 22px 0 0;\n}\n.vsl__actions-secondary{\n  font-size: var(--t-btn); font-weight: 700; color: #fff;\n  text-decoration: underline; text-underline-offset: 4px;\n}\n@media (max-width: 768px){\n.vsl__actions{ flex-direction: column; gap: 12px; }\n}\n.vsl__timer-digits, .timer, [class*=\"timer\"]{ font-variant-numeric: tabular-nums; }\n.vsl__intro{\n  max-width:760px; margin:14px auto 0; padding:0;\n  color:#c9ced6; font-weight:400; text-transform:none;\n  font-size:clamp(14px,1.5vw,17px); line-height:1.55;\n}\n@media (max-width:768px){\n.vsl__intro{ font-size:14px; line-height:1.5; margin-top:12px; }\n}\n.vsl__lead{\n  font-family: var(--second-family);\n  font-size: clamp(18px, 2vw, 24px);\n  font-weight: 800;\n  line-height: 1.2;\n  color: #fff;\n  text-transform: uppercase;\n  margin: 10px 0 0;\n}\n@media (max-width: 768px){\n.vsl__lead{ font-size: 17px; margin-top: 8px; }\n}\nsection:not(.article):not(.arts) .vsl__lead{\n  font-size: var(--t-h2) !important;\n  line-height: 1.18 !important;\n  text-wrap: balance;\n}\n.vsl__disclaimer{ margin-top: 20px; }\n@media (max-width: 768px){\n.vsl__disclaimer{ margin-top: 14px; }\n}\n.vsl__title, .vsl__lead, .want__title, .page-intro__title,\n.webinars__title, .coursemain__wrapper-t2, .storyhead_wrapper-title,\nsection .title, .efir__sub, .learn__title, .faq__title{\n  line-height: 1.28 !important;\n}\nsection:not(.article):not(.arts) .vsl__title,\nsection:not(.article):not(.arts) .vsl__lead,\nsection:not(.article):not(.arts) .vsl__task,\nsection:not(.article):not(.arts) > .center > .title,\nsection:not(.article):not(.arts) .want__title{\n  line-height: 1.28 !important;\n}\n@media (max-width: 768px){\n.vsl__title, .vsl__lead, .want__title, .page-intro__title, section .title{\n    line-height: 1.24 !important;\n  }\n}\n.vsl__timer-digits{ display: flex; justify-content: center; align-items: center; gap: 8px; }\n.vsl__disclaimer .risk-disclosure{ margin-left: 0 !important; margin-right: 0 !important; }\n.vsl__disclaimer .risk-disclosure{ margin-left: 0 !important; margin-right: 0 !important; }\n.vsl__ms{ min-width: 2ch; text-align: center; }\n.sale-pct,\n.btn-pct,\n.vsl__badge,\n.badge-pct{\n  -webkit-text-fill-color:#fff;\n  -webkit-background-clip:border-box;\n  background-clip:border-box;\n}\n\n/* снимок типографики блока со schoolsm.ru */\n.vsl{font-family:Montserrat, sans-serif;font-size:13.392px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:start;text-shadow:none;}\n.vsl .vsl__hero{font-family:Montserrat, sans-serif;font-size:13.392px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__title{font-family:\"Druk Wide Cyr\", sans-serif;font-size:48.96px;font-weight:800;font-style:normal;line-height:62.6688px;letter-spacing:normal;text-transform:uppercase;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__title > br{font-family:\"Druk Wide Cyr\", sans-serif;font-size:48.96px;font-weight:800;font-style:normal;line-height:62.6688px;letter-spacing:normal;text-transform:uppercase;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__title > span{font-family:\"Druk Wide Cyr\", sans-serif;font-size:48.96px;font-weight:800;font-style:normal;line-height:62.6688px;letter-spacing:normal;text-transform:uppercase;color:rgb(84, 234, 159);text-align:center;text-shadow:none;}\n.vsl .vsl__lead{font-family:\"Druk Wide Cyr\", sans-serif;font-size:34px;font-weight:800;font-style:normal;line-height:43.52px;letter-spacing:normal;text-transform:uppercase;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__sub{font-family:\"Druk Wide Cyr\", sans-serif;font-size:21.6px;font-weight:800;font-style:normal;line-height:33.48px;letter-spacing:normal;text-transform:uppercase;color:rgb(213, 213, 219);text-align:center;text-shadow:none;}\n.vsl .vsl__if{font-family:Montserrat, sans-serif;font-size:16px;font-weight:700;font-style:normal;line-height:24.8px;letter-spacing:1px;text-transform:uppercase;color:rgb(84, 234, 159);text-align:center;text-shadow:none;}\n.vsl .vsl__list{font-family:Montserrat, sans-serif;font-size:13.392px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:left;text-shadow:none;}\n.vsl .vsl__list > li{font-family:Montserrat, sans-serif;font-size:16px;font-weight:400;font-style:normal;line-height:24.8px;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:left;text-shadow:none;}\n.vsl .vsl__cta1{font-family:Montserrat, sans-serif;font-size:21.6px;font-weight:800;font-style:normal;line-height:28.512px;letter-spacing:normal;text-transform:uppercase;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__cta1 > br{font-family:Montserrat, sans-serif;font-size:21.6px;font-weight:800;font-style:normal;line-height:28.512px;letter-spacing:normal;text-transform:uppercase;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__arrow{font-family:Montserrat, sans-serif;font-size:21.6px;font-weight:800;font-style:normal;line-height:28.512px;letter-spacing:normal;text-transform:uppercase;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__arrow > svg{font-family:Montserrat, sans-serif;font-size:21.6px;font-weight:800;font-style:normal;line-height:28.512px;letter-spacing:normal;text-transform:uppercase;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__arrow > svg > path{font-family:Montserrat, sans-serif;font-size:21.6px;font-weight:800;font-style:normal;line-height:28.512px;letter-spacing:normal;text-transform:uppercase;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__warmup{font-family:Montserrat, sans-serif;font-size:13.392px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:start;text-shadow:none;}\n.vsl .vsl__warning{font-family:Montserrat, sans-serif;font-size:16px;font-weight:400;font-style:normal;line-height:24.8px;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__player{font-family:Montserrat, sans-serif;font-size:13.392px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:start;text-shadow:none;}\n.vsl .vsl__player > div{font-family:Montserrat, system-ui, -apple-system, \"Segoe UI\", Roboto, sans-serif;font-size:14px;font-weight:500;font-style:normal;line-height:17.5px;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:start;text-shadow:none;}\n.vsl .vsl__player > div > div{font-family:Montserrat, system-ui, -apple-system, \"Segoe UI\", Roboto, sans-serif;font-size:14px;font-weight:500;font-style:normal;line-height:17.5px;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:start;text-shadow:none;}\n.vsl .vsl__player > div > div > video{font-family:Montserrat, system-ui, -apple-system, \"Segoe UI\", Roboto, sans-serif;font-size:14px;font-weight:500;font-style:normal;line-height:17.5px;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:start;text-shadow:none;}\n.vsl .vsl__player > div > div > div{font-family:Montserrat, system-ui, -apple-system, \"Segoe UI\", Roboto, sans-serif;font-size:14px;font-weight:500;font-style:normal;line-height:17.5px;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:start;text-shadow:none;}\n.vsl .vsl__player > div > div > button{font-family:Arial;font-size:13.3333px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__player > div > div > button > svg{font-family:Arial;font-size:13.3333px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__player > div > div > button > svg > path{font-family:Arial;font-size:13.3333px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__player > div > div > div > button{font-family:Arial;font-size:13.3333px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__player > div > div > div > button > svg{font-family:Arial;font-size:13.3333px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__player > div > div > div > button > svg > path{font-family:Arial;font-size:13.3333px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__player > div > div > div > span{font-family:Montserrat, system-ui, -apple-system, \"Segoe UI\", Roboto, sans-serif;font-size:13px;font-weight:500;font-style:normal;line-height:16.25px;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__player > div > div > div > div{font-family:Montserrat, system-ui, -apple-system, \"Segoe UI\", Roboto, sans-serif;font-size:14px;font-weight:500;font-style:normal;line-height:17.5px;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:start;text-shadow:none;}\n.vsl .vsl__player > div > div > div > div > div{font-family:Montserrat, system-ui, -apple-system, \"Segoe UI\", Roboto, sans-serif;font-size:14px;font-weight:500;font-style:normal;line-height:17.5px;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:start;text-shadow:none;}\n.vsl .vsl__player > div > div > div > div > button{font-family:Arial;font-size:13.3333px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__player > div > div > div > div > button > svg{font-family:Arial;font-size:13.3333px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__player > div > div > div > div > button > svg > path{font-family:Arial;font-size:13.3333px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__player > div > div > div > div > input{font-family:Arial;font-size:13.3333px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(157, 150, 142);text-align:start;text-shadow:none;}\n.vsl .vsl__player > div > div > div > button > svg > circle{font-family:Arial;font-size:13.3333px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__player > div > div > div > div > span{font-family:Montserrat, system-ui, -apple-system, \"Segoe UI\", Roboto, sans-serif;font-size:12px;font-weight:500;font-style:normal;line-height:15px;letter-spacing:0.96px;text-transform:uppercase;color:rgba(255, 255, 255, 0.6);text-align:start;text-shadow:none;}\n.vsl .vsl__bridge{font-family:Montserrat, sans-serif;font-size:13.392px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__task{font-family:\"Druk Wide Cyr\", sans-serif;font-size:34px;font-weight:400;font-style:normal;line-height:43.52px;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__task > br{font-family:\"Druk Wide Cyr\", sans-serif;font-size:34px;font-weight:400;font-style:normal;line-height:43.52px;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__task > b{font-family:\"Druk Wide Cyr\", sans-serif;font-size:34px;font-weight:700;font-style:normal;line-height:43.52px;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__bridge-title{font-family:Montserrat, sans-serif;font-size:21.6px;font-weight:700;font-style:normal;line-height:28.512px;letter-spacing:normal;text-transform:uppercase;color:rgb(84, 234, 159);text-align:center;text-shadow:none;}\n.vsl .vsl__bridge-aft{font-family:Montserrat, sans-serif;font-size:16px;font-weight:600;font-style:normal;line-height:24.8px;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__bridge-aft > br{font-family:Montserrat, sans-serif;font-size:16px;font-weight:600;font-style:normal;line-height:24.8px;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__cta2{font-family:Montserrat, sans-serif;font-size:21.6px;font-weight:800;font-style:normal;line-height:28.512px;letter-spacing:normal;text-transform:uppercase;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__lesson{font-family:Montserrat, sans-serif;font-size:13.392px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:start;text-shadow:none;}\n.vsl .vsl__lesson > div{font-family:Montserrat, sans-serif;font-size:13.392px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:start;text-shadow:none;}\n.vsl .vsl__lesson > div > button{font-family:Montserrat, sans-serif;font-size:12px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:0.96px;text-transform:uppercase;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__lesson > div > button > span{font-family:Montserrat, sans-serif;font-size:12px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:0.96px;text-transform:uppercase;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__lesson > div > button > i{font-family:Montserrat, sans-serif;font-size:12px;font-weight:400;font-style:italic;line-height:normal;letter-spacing:0.96px;text-transform:uppercase;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__lesson > div > button > i > svg{font-family:Montserrat, sans-serif;font-size:12px;font-weight:400;font-style:italic;line-height:normal;letter-spacing:0.96px;text-transform:uppercase;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__lesson > div > button > i > svg > path{font-family:Montserrat, sans-serif;font-size:12px;font-weight:400;font-style:italic;line-height:normal;letter-spacing:0.96px;text-transform:uppercase;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__lesson > div > div{font-family:Montserrat, sans-serif;font-size:13.392px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:start;text-shadow:none;}\n.vsl .vsl__lesson > div > div > button{font-family:Montserrat, sans-serif;font-size:14px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:left;text-shadow:none;}\n.vsl .vsl__lesson > div > div > button > b{font-family:Montserrat, sans-serif;font-size:14px;font-weight:700;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:left;text-shadow:none;}\n.vsl .vsl__lesson > div > div > button > span{font-family:Montserrat, sans-serif;font-size:14px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:left;text-shadow:none;}\n.vsl .vsl__locked{font-family:Montserrat, sans-serif;font-size:13.392px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__lock{font-family:Montserrat, sans-serif;font-size:44px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__lock-text{font-family:Montserrat, sans-serif;font-size:21.6px;font-weight:800;font-style:normal;line-height:28.512px;letter-spacing:1px;text-transform:uppercase;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__unlocked{font-family:Montserrat, sans-serif;font-size:13.392px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:start;text-shadow:none;}\n.vsl .vsl__buybtn{font-family:Montserrat, sans-serif;font-size:16px;font-weight:700;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:uppercase;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__sales{font-family:Montserrat, sans-serif;font-size:13.392px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__sales > p{font-family:Montserrat, sans-serif;font-size:16px;font-weight:400;font-style:normal;line-height:24.8px;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__sales > p > br{font-family:Montserrat, sans-serif;font-size:16px;font-weight:400;font-style:normal;line-height:24.8px;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__sub > br{font-family:\"Druk Wide Cyr\", sans-serif;font-size:21.6px;font-weight:800;font-style:normal;line-height:33.48px;letter-spacing:normal;text-transform:uppercase;color:rgb(213, 213, 219);text-align:center;text-shadow:none;}\n.vsl .vsl__sales > p > b{font-family:Montserrat, sans-serif;font-size:16px;font-weight:700;font-style:normal;line-height:24.8px;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__sales > ul{font-family:Montserrat, sans-serif;font-size:13.392px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:left;text-shadow:none;}\n.vsl .vsl__sales > ul > li{font-family:Montserrat, sans-serif;font-size:16px;font-weight:400;font-style:normal;line-height:24.8px;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:left;text-shadow:none;}\n.vsl .vsl__main{font-family:Montserrat, sans-serif;font-size:13.392px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__main-head{font-family:\"Druk Wide Cyr\", sans-serif;font-size:13.392px;font-weight:800;font-style:normal;line-height:normal;letter-spacing:0.5px;text-transform:uppercase;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__main-body{font-family:Montserrat, sans-serif;font-size:13.392px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__main-body > p{font-family:Montserrat, sans-serif;font-size:16px;font-weight:400;font-style:normal;line-height:24.8px;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__main-body > p > b{font-family:Montserrat, sans-serif;font-size:16px;font-weight:700;font-style:normal;line-height:24.8px;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__main-body > p > b > br{font-family:Montserrat, sans-serif;font-size:16px;font-weight:700;font-style:normal;line-height:24.8px;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__main-body > hr{font-family:Montserrat, sans-serif;font-size:13.392px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(128, 128, 128);text-align:center;text-shadow:none;}\n.vsl .vsl__price{font-family:\"Druk Wide Cyr\", sans-serif;font-size:38px;font-weight:800;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__price > s{font-family:\"Druk Wide Cyr\", sans-serif;font-size:23.56px;font-weight:800;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(119, 119, 119);text-align:center;text-shadow:none;}\n.vsl .vsl__price > b{font-family:\"Druk Wide Cyr\", sans-serif;font-size:38px;font-weight:900;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(84, 234, 159);text-align:center;text-shadow:none;}\n.vsl .vsl__badge{font-family:\"Druk Wide Cyr\", sans-serif;font-size:14px;font-weight:800;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__timer{font-family:Montserrat, sans-serif;font-size:13.392px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__timer-label{font-family:Montserrat, sans-serif;font-size:14px;font-weight:700;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:uppercase;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__timer-digits{font-family:Montserrat, sans-serif;font-size:13.392px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__timer-digits > span{font-family:Montserrat, sans-serif;font-size:26px;font-weight:800;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__timer-digits > i{font-family:Montserrat, sans-serif;font-size:22px;font-weight:800;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(99, 64, 229);text-align:center;text-shadow:none;}\n.vsl .vsl__ms{font-family:Montserrat, sans-serif;font-size:26px;font-weight:800;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__disclaimer{font-family:Montserrat, sans-serif;font-size:13.392px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n.vsl .vsl__disclaimer > aside{font-family:Montserrat, sans-serif;font-size:11px;font-weight:400;font-style:normal;line-height:15.95px;letter-spacing:normal;text-transform:none;color:rgb(124, 130, 140);text-align:left;text-shadow:none;}\n.vsl .vsl__disclaimer > aside > strong{font-family:Montserrat, sans-serif;font-size:11px;font-weight:600;font-style:normal;line-height:15.95px;letter-spacing:normal;text-transform:none;color:rgb(154, 160, 168);text-align:left;text-shadow:none;}\n.vsl .vsl__disclaimer > aside > br{font-family:Montserrat, sans-serif;font-size:11px;font-weight:400;font-style:normal;line-height:15.95px;letter-spacing:normal;text-transform:none;color:rgb(124, 130, 140);text-align:left;text-shadow:none;}\n#leadModal{font-family:Montserrat, sans-serif;font-size:13.392px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:start;text-shadow:none;}\n#leadModal .lead-box{font-family:Montserrat, sans-serif;font-size:13.392px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:start;text-shadow:none;}\n#leadModal .lead-close{font-family:Arial;font-size:28px;font-weight:400;font-style:normal;line-height:28px;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n#leadModal .lead-title{font-family:Montserrat, sans-serif;font-size:24px;font-weight:800;font-style:italic;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n#leadModal .lead-offer{font-family:Montserrat, sans-serif;font-size:15px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:start;text-shadow:none;}\n#leadModal .lead-offer > span{font-family:Montserrat, sans-serif;font-size:15px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:start;text-shadow:none;}\n#leadModal .lead-offer > span > span{font-family:Montserrat, sans-serif;font-size:13px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:start;text-shadow:none;}\n#leadModal .lead-msg{font-family:Montserrat, sans-serif;font-size:14px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n#leadModal .lead-box > form{font-family:Montserrat, sans-serif;font-size:13.392px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:start;text-shadow:none;}\n#leadModal .lead-field{font-family:Montserrat, sans-serif;font-size:13.392px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:start;text-shadow:none;}\n#leadModal .lead-field > label{font-family:Montserrat, sans-serif;font-size:14px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(204, 204, 204);text-align:start;text-shadow:none;}\n#leadModal .lead-field > label > span{font-family:Montserrat, sans-serif;font-size:14px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(84, 234, 159);text-align:start;text-shadow:none;}\n#leadModal .lead-input{font-family:Montserrat, sans-serif;font-size:16px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(17, 17, 17);text-align:start;text-shadow:none;}\n#leadModal .lead-err{font-family:Montserrat, sans-serif;font-size:12px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 107, 107);text-align:start;text-shadow:none;}\n#leadModal .lead-field > span{font-family:Montserrat, sans-serif;font-size:13.392px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:start;text-shadow:none;}\n#leadModal .lead-field > span > span{font-family:Montserrat, sans-serif;font-size:16px;font-weight:400;font-style:normal;line-height:16px;letter-spacing:normal;text-transform:none;color:rgb(17, 17, 17);text-align:start;text-shadow:none;}\n#leadModal .lead-field > span > span > span{font-family:Montserrat, sans-serif;font-size:16px;font-weight:400;font-style:normal;line-height:16px;letter-spacing:normal;text-transform:none;color:rgb(17, 17, 17);text-align:start;text-shadow:none;}\n#leadModal .lead-field > span > span > b{font-family:Montserrat, sans-serif;font-size:16px;font-weight:400;font-style:normal;line-height:16px;letter-spacing:normal;text-transform:none;color:rgb(17, 17, 17);text-align:start;text-shadow:none;}\n#leadModal .lead-field > span > select{font-family:Arial;font-size:16px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(0, 0, 0);text-align:start;text-shadow:none;}\n#leadModal .lead-field > span > select > option{font-family:Arial;font-size:16px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(0, 0, 0);text-align:start;text-shadow:none;}\n#leadModal .lead-field > span > input{font-family:Arial;font-size:13.3333px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(0, 0, 0);text-align:start;text-shadow:none;}\n#leadModal .lead-consent{font-family:Montserrat, sans-serif;font-size:12px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(170, 170, 170);text-align:start;text-shadow:none;}\n#leadModal .lead-consent > input{font-family:Arial;font-size:13.3333px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(0, 0, 0);text-align:start;text-shadow:none;}\n#leadModal .lead-consent > span{font-family:Montserrat, sans-serif;font-size:12px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(170, 170, 170);text-align:start;text-shadow:none;}\n#leadModal .lead-consent > span > a{font-family:Montserrat, sans-serif;font-size:12px;font-weight:400;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:start;text-shadow:none;}\n#leadModal .lead-submit{font-family:Montserrat, sans-serif;font-size:16px;font-weight:700;font-style:normal;line-height:normal;letter-spacing:normal;text-transform:none;color:rgb(255, 255, 255);text-align:center;text-shadow:none;}\n@media (max-width:768px){\n.vsl{font-size:9px;}\n.vsl .vsl__hero{font-size:9px;}\n.vsl .vsl__title{font-size:20.67px;line-height:26.4576px;}\n.vsl .vsl__title > br{font-size:20.67px;line-height:26.4576px;}\n.vsl .vsl__title > span{font-size:20.67px;line-height:26.4576px;}\n.vsl .vsl__lead{font-size:19px;line-height:24.32px;}\n.vsl .vsl__sub{font-size:16px;line-height:23.2px;}\n.vsl .vsl__if{font-size:14px;line-height:21.7px;letter-spacing:0.5px;}\n.vsl .vsl__list{font-size:9px;}\n.vsl .vsl__list > li{font-size:14px;line-height:21.7px;}\n.vsl .vsl__cta1{font-size:16px;line-height:21.12px;}\n.vsl .vsl__cta1 > br{font-size:16px;line-height:21.12px;}\n.vsl .vsl__arrow{font-size:16px;line-height:21.12px;}\n.vsl .vsl__arrow > svg{font-size:16px;line-height:21.12px;}\n.vsl .vsl__arrow > svg > path{font-size:16px;line-height:21.12px;}\n.vsl .vsl__warmup{font-size:9px;}\n.vsl .vsl__warning{font-size:14px;line-height:21.7px;}\n.vsl .vsl__player{font-size:9px;}\n.vsl .vsl__player > div > div > div > span{font-size:12px;line-height:15px;}\n.vsl .vsl__bridge{font-size:9px;}\n.vsl .vsl__task{font-size:19px;line-height:24.32px;}\n.vsl .vsl__task > br{font-size:19px;line-height:24.32px;}\n.vsl .vsl__task > b{font-size:19px;line-height:24.32px;}\n.vsl .vsl__bridge-title{font-size:16px;line-height:21.12px;}\n.vsl .vsl__bridge-aft{font-size:14px;line-height:21.7px;}\n.vsl .vsl__bridge-aft > br{font-size:14px;line-height:21.7px;}\n.vsl .vsl__cta2{font-size:16px;line-height:21.12px;}\n.vsl .vsl__lesson{font-size:9px;}\n.vsl .vsl__lesson > div{font-size:9px;}\n.vsl .vsl__lesson > div > div{font-size:9px;}\n.vsl .vsl__locked{font-size:9px;}\n.vsl .vsl__lock{font-size:36px;}\n.vsl .vsl__lock-text{font-size:16px;line-height:21.12px;}\n.vsl .vsl__unlocked{font-size:9px;}\n.vsl .vsl__buybtn{font-size:14px;}\n.vsl .vsl__sales{font-size:9px;}\n.vsl .vsl__sales > p{font-size:14px;line-height:21.7px;}\n.vsl .vsl__sales > p > br{font-size:14px;line-height:21.7px;}\n.vsl .vsl__sub > br{font-size:16px;line-height:24.8px;}\n.vsl .vsl__sales > p > b{font-size:14px;line-height:21.7px;}\n.vsl .vsl__sales > ul{font-size:9px;}\n.vsl .vsl__sales > ul > li{font-size:14px;line-height:21.7px;}\n.vsl .vsl__main{font-size:9px;}\n.vsl .vsl__main-head{font-size:14px;}\n.vsl .vsl__main-body{font-size:9px;}\n.vsl .vsl__main-body > p{font-size:14px;line-height:21.7px;}\n.vsl .vsl__main-body > p > b{font-size:14px;line-height:21.7px;}\n.vsl .vsl__main-body > p > b > br{font-size:14px;line-height:21.7px;}\n.vsl .vsl__main-body > hr{font-size:9px;}\n.vsl .vsl__price{font-size:26px;}\n.vsl .vsl__price > s{font-size:16.12px;}\n.vsl .vsl__price > b{font-size:26px;}\n.vsl .vsl__badge{font-size:12px;}\n.vsl .vsl__timer{font-size:9px;}\n.vsl .vsl__timer-label{font-size:12px;}\n.vsl .vsl__timer-digits{font-size:9px;}\n.vsl .vsl__timer-digits > span{font-size:20px;}\n.vsl .vsl__timer-digits > i{font-size:18px;}\n.vsl .vsl__ms{font-size:20px;}\n.vsl .vsl__disclaimer{font-size:9px;}\n.vsl .vsl__disclaimer > aside{font-size:10px;line-height:14.5px;}\n.vsl .vsl__disclaimer > aside > strong{font-size:10px;line-height:14.5px;}\n.vsl .vsl__disclaimer > aside > br{font-size:10px;line-height:14.5px;}\n#leadModal{font-size:9px;}\n#leadModal .lead-box{font-size:9px;}\n#leadModal .lead-box > form{font-size:9px;}\n#leadModal .lead-field{font-size:9px;}\n#leadModal .lead-field > span{font-size:9px;}\n}\n"}