<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width,initial-scale=1.0">
  <title>Все виджеты вместе — полностью исправленный чат с таймером и закрытием</title>

  <!-- 
    ==================== Глобальные переменные (общие для всех виджетов) ====================
    Переменные (CSS custom properties) для цветов, анимаций и базовых настроек.
  -->
  <style>
    /* Универсальные правила – вставляем сразу после открытия тега <style>
       Это добавляем, не удаляя ничего, для предотвращения горизонтальной прокрутки
       и нежелательного масштабирования на мобильных устройствах */
    html, body {
      overflow-x: hidden;  /* Отключаем горизонтальную прокрутку */
      box-sizing: border-box;
    }
    *, *::before, *::after {
      box-sizing: inherit;
    }
    img, video {
      max-width: 100%;
      height: auto;
    }

    :root {
      /* Основные цвета */
      --lb-primary-color: #000000;                 /** Основной цвет хавал #1BDBD1 Москвич #D83F2A */
      --lb-secondary-color: #25292B;               /** Вторичный цвет Хавал #4BBFE8 Москвич #ad382b*/
      --lb-font-family: "Roboto", sans-serif;      /** Основной шрифт для виджетов */

      /* Градиент и анимации */
      --lb-gradient: linear-gradient(to right, var(--lb-primary-color), var(--lb-secondary-color)); 
      --lb-animation-duration: 2.5s;               /** Длительность анимации градиента */
      --lb-animation-timing: cubic-bezier(0.19, 1, 0.22, 1);  /** Тип анимации градиента */

      /* Фоны и цвета текста */
      --lb-background-white: #FFFFFF;              /** Основной белый фон */
      --lb-font-color: #5B657A;                    /** Базовый цвет шрифта */
      --lb-red-color: #FF0000;                     /** Красный цвет для ошибок */
      --lb-border-gray: #CCCCCC;                   /** Цвет бордюра (серый) */
      --lb-input-hover-background: #f0f0f0;        /** Фон инпута при наведении */

      /* Фон сообщений бота и тени */
      --lb-bot-message-background: #f9fafc;        /** Фон сообщений бота в чате */
      --lb-shadow-color: #c8d0e7;                  /** Цвет для теней */

      /* Тени и радиусы */
      --lb-box-shadow: 0 20px 25px rgba(0, 0, 0, 0.2);  /** Тень для блоков */
      --lb-radius-large: 20px !important;          /** Больший радиус */
      --lb-radius-small: 15px;                     /** Меньший радиус */
      --lb-radius-modal: 8px;                      /** Радиус углов для окон (модальных) */

      /* Черный цвет и переходы */
      --lb-black-color: #000000;                   /** Чёрный цвет */
      --lb-transition-opacity: opacity 0.6s ease;  /** Плавный переход для прозрачности */
      --lb-transition-transform: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.4s ease;

      /* Z-index для слоев */
      --lb-z-index: 999999999;                     /** Максимальный z-index */
      --lb-z-index-overlay: 99999999;              /** Чуть меньший z-index для оверлеев */
    }

    /* 
      === FIX POLICY === 
      Стили для чекбоксов политики:
      Убеждаемся, что он не наследует стили input[type="text"]
    */
    /* Общие стили для чекбоксов в main и chat виджетах */
    #mainWidget input2[type="checkbox"][name="consent"],
    #chatWidget input2[type="checkbox"][name="consent"] {
      -webkit-appearance: none; /* Добавлен префикс для Safari и других WebKit-браузеров */
      -moz-appearance: none;    /* Добавлен префикс для Mozilla-браузеров */
      appearance: none; 
      width: 12px;               /* Ширина чекбокса */
      height: 12px;              /* Высота чекбокса */
      border: 1px solid var(--lb-font-color); /* Бордер чекбокса */
      border-radius: 2px;        /* Скругление углов */
      cursor: pointer;
      position: relative;
      margin: 0;
      background: var(--lb-background-white);
    }

    /* Стили для отмеченного чекбокса */
    #mainWidget input2[type="checkbox"][name="consent"]:checked,
    #chatWidget input2[type="checkbox"][name="consent"]:checked {
      -webkit-appearance: none; /* Для мобильных устройств на базе WebKit */
      -moz-appearance: none;    /* Для Mozilla */
      appearance: none;
      background: none !important;
      border: 1px solid var(--lb-font-color) !important;
    }
 
    /* Галочка внутри отмеченного чекбокса */
    #mainWidget input2[type="checkbox"][name="consent"]:checked::after,
    #chatWidget input2[type="checkbox"][name="consent"]:checked::after {
      content: "";
      display: block;
      width: 6px;                /* Ширина галочки */
      height: 10px;              /* Высота галочки */
      border: solid var(--lb-font-color);
      border-width: 0 2px 2px 0;
      transform: rotate(45deg);
      position: absolute;
      top: 1px;
      left: 3px;
    }

    /* Стиль для контейнера согласия на политику */
    .policy-consent {
      display: inline-flex;                            /** Встроенный флекс-контейнер */
      align-items: center;                             /** Вертикальное выравнивание */
      gap: 5px;                                        /** Отступ между элементами */
      margin-top: 2px !important;                      /** Верхний отступ */
      font-size: 8px !important;                       /** Размер шрифта */
      color: var(--lb-font-color) !important;           /** Цвет текста */
      white-space: nowrap;                             /** Предотвращение переноса текста */
      justify-content: center;                         /** Горизонтальное центрирование */
      background: none  !important;   
    }
    /* Стили ссылок внутри согласия на политику */
    .policy-consent a {
      text-decoration: underline;                      /** Подчеркивание текста */
      color: var(--lb-font-color) !important;           /** Цвет ссылки */
    }
    
    @media (max-width: 600px) {
      /* Скрываем все чекбоксы, включая их стили и галочку */
      #mainWidget input2[type="checkbox"][name="consent"],
      #chatWidget input2[type="checkbox"][name="consent"],
      .policy-consent {
        display: none !important;
      }
    }
  </style>

  <!-- 
    Подключение шрифтов/иконок (один раз):
    - Roboto, Montserrat, GT Eesti Pro Display
    - Material Icons
    - Material Symbols Outlined
  -->
  <link href="https://fonts.googleapis.com/css2?family=Roboto&family=Montserrat&family=GT+Eesti+Pro+Display&display=swap" rel="stylesheet">
  <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
  <link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined" rel="stylesheet">
  <!-- Подключение Font Awesome -->
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" integrity="sha512-..." crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
  
  
  
  
<body>

<!-- 
  ======================= 
  Глобальный скрипт для переключения активных виджетов 
  (main / chat / exit) 
  =======================
-->
<script>
  // Переменная для хранения текущего активного виджета
  let activeWidget = null;

  /**
   * Устанавливает активный виджет и скрывает/показывает элементы основного виджета.
   * @param {string|null} name - Имя виджета ('main', 'chat', 'exit') или null для сброса.
   */
  function setActiveWidget(name) {
    activeWidget = name || null;

    const mainPulseContainer = document.querySelector('#mainWidget .pulse-container');
    const mainWidgetText     = document.querySelector('#mainWidget #widgetText');
    if (!mainPulseContainer || !mainWidgetText) return;

    if (activeWidget && activeWidget !== 'main') {
      mainPulseContainer.classList.add('hidden');  // Скрываем пульсацию
      mainWidgetText.style.display = 'none';        // Скрываем текст
    }
    else if (!activeWidget) {
      mainPulseContainer.classList.remove('hidden'); // Показываем пульсацию
      mainWidgetText.style.display = 'flex';          // Показываем текст
    }
  }

  /**
   * Проверяет, можно ли показать виджет (нет других активных виджетов).
   * @returns {boolean}
   */
  function canShowWidget() {
    return (activeWidget === null);
  }

  /**
   * Открывает чат-виджет, если функция showChatWidget определена.
   */
  window.openChatWidget = function() {
    if (typeof showChatWidget === 'function') {
      showChatWidget();
    }
  };
</script>



<!-- 
  ==================================================================================
  ============================= 1. ОСНОВНОЙ ВИДЖЕТ  ================================
  ==================================================================================
-->
<div id="mainWidget">
  <style>
    /* Основной контейнер виджета */
    #mainWidget {
      font-family: var(--lb-font-family);          /** Шрифт для виджета */
      position: relative;                          /** Относительное позиционирование */
      z-index: var(--lb-z-index);                  /** Приоритет отображения */
    }

    /* Контейнер для пульсации кнопки виджета */
    #mainWidget .pulse-container {
      position: fixed;                             /** Фиксированное позиционирование */
      bottom: 20px;                                /** Отступ снизу */
      left: 20px;                                  /** Отступ слева */
      width: 75px;                                 /** Ширина контейнера */
      height: 75px;                                /** Высота контейнера */
      display: flex;                               /** Флекс-контейнер */
      justify-content: center;                     /** Горизонтальное центрирование */
      align-items: center;                         /** Вертикальное центрирование */
      z-index: var(--lb-z-index);                  /** Приоритет отображения */
      transition: opacity 0.3s ease, visibility 0.3s ease; /** Переходы для плавности */
    }

    /* Скрытие пульсации */
    #mainWidget .pulse-container.hidden {
      opacity: 0;                                  /** Прозрачность */
      visibility: hidden;                           /** Скрыть элемент */
    }

    /* Кнопка основного виджета */
    #mainWidget #customWidgetButton {
      animation: pulse 1.5s infinite ease-in-out;   /** Анимация пульсации */
      position: relative;                           /** Относительное позиционирование */
      width: 75px;                                  /** Ширина кнопки */
      height: 75px;                                 /** Высота кнопки */
      background: var(--lb-gradient);               /** Градиентный фон */
      border-radius: 50%;                           /** Круглая форма */
      display: flex;                                /** Флекс-контейнер */
      justify-content: center;                      /** Горизонтальное центрирование */
      align-items: center;                          /** Вертикальное центрирование */
      box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);    /** Тень кнопки */
      cursor: pointer;                              /** Курсор при наведении */
      background-size: 200% auto;                    /** Размер фона для анимации */
      background-position: 0 50%;                    /** Начальная позиция фона */
      will-change: transform, box-shadow;           /** Оптимизация анимации */
      transition: transform 0.3s ease, box-shadow 0.3s ease; /** Переходы для плавности */
      z-index: var(--lb-z-index);                   /** Приоритет отображения */
    }

    /* Анимация пульсации */
    @keyframes pulse {
      0% { transform: scale(1); }
      50% { transform: scale(1.1); }
      100% { transform: scale(1); }
    }

    /* Анимация волны пульсации */
    @keyframes pulseWave {
      0% { transform: scale(1); opacity: 0.4; }
      100% { transform: scale(1.8); opacity: 0; }
    }

    /* Дополнительные круги для пульсации */
    #mainWidget .pulse-circle {
      position: absolute;                           /** Абсолютное позиционирование */
      width: 75px;                                  /** Ширина круга */
      height: 75px;                                 /** Высота круга */
      border: 3px solid var(--lb-primary-color);    /** Бордер круга */
      border-radius: 50%;                           /** Круглая форма */
      background-color: transparent;                /** Прозрачный фон */
      opacity: 0.4;                                 /** Прозрачность */
      animation: pulseWave 2.5s infinite ease-out;  /** Анимация волны */
      pointer-events: none;                         /** Игнорировать события мыши */
      will-change: transform, opacity;              /** Оптимизация анимации */
    }

    /* Задержка анимации для второго круга */
    #mainWidget .pulse-circle:nth-child(2) {
      animation-delay: 0.8s;
    }

    /* Задержка анимации для третьего круга */
    #mainWidget .pulse-circle:nth-child(3) {
      animation-delay: 1.6s;
    }

    /* Иконка телефона внутри кнопки виджета */
    #mainWidget .phone-icon {
      font-size: 29px;                              /** Размер иконки */
      animation: pulse 1.5s infinite ease-in-out;   /** Анимация пульсации */
      will-change: transform;                       /** Оптимизация анимации */
      color: var(--lb-background-white);             /** Цвет иконки */
      transition: color 0.3s ease;                  /** Переход цвета при наведении */
      cursor: pointer;                               /** Курсор при наведении */
    }

    /* Стили для иконки при наведении на кнопку */
    #mainWidget #customWidgetButton:hover .phone-icon {
      color: var(--lb-background-white);             /** Цвет иконки при наведении */
    }
    
    
    #mainWidget .modal-button.active-button {
      background: var(--lb-gradient) !important;
      color: var(--lb-background-white) !important;
    }

    /* Текст виджета "Заказать звонок" */
    #mainWidget #widgetText {
      position: fixed;                               /** Фиксированное позиционирование */
      bottom: 40px;                                  /** Отступ снизу */
      left: 120px;                                   /** Отступ слева */
      background: var(--lb-background-white);         /** Белый фон */
      border-radius: var(--lb-radius-large);          /** Скругленные углы */
      padding: 10px;                                  /** Внутренний отступ */
      font-size: 14px;                                /** Размер шрифта */
      color: var(--lb-font-color);                     /** Цвет текста */
      display: flex;                                  /** Флекс-контейнер */
      align-items: center;                            /** Вертикальное выравнивание */
      gap: 10px;                                      /** Отступ между элементами */
      box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);      /** Тень */
      transition: opacity 0.3s ease;                  /** Переход для плавности */
      z-index: var(--lb-z-index);                     /** Приоритет отображения */
    }

    /* Стиль для спана внутри текста виджета */
    #mainWidget #widgetText span {
      flex-grow: 1;                                   /** Растягивание спана */
    }

    /* Модальное окно виджета */
    #mainWidget #customWidgetModal {
      display: none;                                  /** Скрыто по умолчанию */
      position: fixed;                                /** Фиксированное позиционирование */
      bottom: 20px;                                   /** Отступ снизу */
      left: 20px;                                     /** Отступ слева */
      width: 340px;                                   /** Ширина модального окна */
      background: var(--lb-background-white);          /** Белый фон */
      border-radius: var(--lb-radius-large);           /** Скругленные углы */
      box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.15);   /** Тень */
      z-index: var(--lb-z-index);                      /** Приоритет отображения */
      display: block;                                 /** Отображение блока */
      flex-direction: column;                         /** Вертикальное направление флекса */
      visibility: hidden;                             /** Скрыто */
      opacity: 0;                                     /** Прозрачность */
      padding: 4px;                                   /** Внутренний отступ */
      transition: opacity 0.3s ease, transform 0.3s ease; /** Переходы для плавности */
      transition: all 0.4s ease-in-out !important;    /** Дополнительный переход */
    }

    /* Показ модального окна */
    #mainWidget #customWidgetModal.show {
      visibility: visible;                            /** Видимость */
      opacity: 1;                                     /** Прозрачность */
      transform: translateY(0);                       /** Положение */
    }

    /* Скрытие модального окна */
    #mainWidget #customWidgetModal.hide {
      opacity: 0;                                     /** Прозрачность */
      transform: translateY(20px);                    /** Позиционирование */
    }

    /* Заголовок модального окна */
    #mainWidget #customWidgetModalHeader {
      flex: 0 0 auto;                                 /** Флекс-базовый размер */
      margin-top: 15px;                               /** Верхний отступ */
      padding: 5px 20px;                              /** Внутренние отступы */
      background: var(--lb-background-white);           /** Белый фон */
      color: var(--lb-font-color);                      /** Цвет текста */
      font-weight: bold;                               /** Жирный шрифт */
      font-size: 22px;                                 /** Размер шрифта */
      display: flex;                                   /** Флекс-контейнер */
      justify-content: space-between;                   /** Распределение пространства */
      align-items: center;                             /** Вертикальное выравнивание */
      border-top-left-radius: var(--lb-radius-modal);   /** Скругление верхнего левого угла */
      border-top-right-radius: var(--lb-radius-modal);  /** Скругление верхнего правого угла */
    }

    /* Кнопка закрытия модального окна */
    #mainWidget #customCloseWidget {
      background: none;                               /** Без фона */
      border: none;                                   /** Без бордера */
      color: var(--lb-font-color);                      /** Цвет символа закрытия */
      font-size: 24px;                                /** Размер символа */
      cursor: pointer;                                /** Курсор при наведении */
    }

    /* Кнопки внутри модального окна */
    #mainWidget .modal-button {
      padding: 11px;                                  /** Внутренний отступ */
      background: var(--lb-input-hover-background);      /** Фон кнопки */
      color: var(--lb-font-color) !important;           /** Цвет текста */
      border: none;                                   /** Без бордера */
      border-radius: var(--lb-radius-small) !important;  /** Скругленные углы */
      cursor: pointer;                                /** Курсор при наведении */
      font-size: 18px;                                /** Размер шрифта */
      display: flex;                                  /** Флекс-контейнер */
      align-items: center;                            /** Вертикальное выравнивание */
      justify-content: center;                        /** Горизонтальное центрирование */
      width: calc(100% - 40px);                        /** Ширина кнопки */
      margin: 10px auto;                              /** Отступы */
      box-sizing: border-box;                         /** Включение бордера и паддингов в ширину */
      font-family: var(--lb-font-family);              /** Шрифт кнопки */
      transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease; /** Переходы */
      text-decoration: none;                          /** Без подчеркивания */
      box-shadow: none;                               /** Без тени */
    }

    /* Последняя кнопка имеет дополнительный отступ снизу */
    #mainWidget .modal-button:last-child {
      margin-bottom: 18px;
    }

    /* Стили при наведении на кнопку */
    #mainWidget .modal-button:hover {
      background: var(--lb-gradient);                 /** Градиентный фон при наведении */
      color: var(--lb-background-white) !important;     /** Цвет текста при наведении */
    }

    /* Стили иконок внутри кнопок */
    #mainWidget .modal-button .material-icons,
    #mainWidget .modal-button .material-symbols-outlined {
      margin-right: 10px;                             /** Отступ справа от иконки */
      font-size: 24px;                                /** Размер иконки */
      color: var(--lb-font-color);                      /** Цвет иконки */
      transition: color 0.3s ease;                    /** Переход цвета */
    }

    /* Стили иконок при наведении и активном состоянии кнопки */
    #mainWidget .modal-button:hover .material-icons,
    #mainWidget .modal-button.active-button .material-icons,
    #mainWidget .modal-button:hover .material-symbols-outlined,
    #mainWidget .modal-button.active-button .material-symbols-outlined {
      color: var(--lb-background-white);               /** Цвет иконки при наведении */
    }

    /* Оверлей для модального окна */
    #mainWidget #modalOverlay {
      position: fixed;                                /** Фиксированное позиционирование */
      top: 0;                                         /** Верхний отступ */
      left: 0;                                        /** Левый отступ */
      width: 100%;                                    /** Ширина оверлея */
      height: 100%;                                   /** Высота оверлея */
      background-color: var(--lb-black-color);         /** Черный фон */
      z-index: var(--lb-z-index-overlay);             /** Приоритет отображения */
      display: none;                                  /** Скрыто по умолчанию */
      opacity: 0;                                     /** Прозрачность */
      visibility: hidden;                              /** Скрыто */
      transition: var(--lb-transition-opacity);        /** Переход прозрачности */
    }

    /* Показ оверлея */
    #mainWidget #modalOverlay.show {
      display: block;                                 /** Отображение блока */
      visibility: visible;                             /** Видимость */
      opacity: 0.5;                                   /** Прозрачность */
    }

    /* Скрытие оверлея */
    #mainWidget #modalOverlay.hide {
      opacity: 0;                                     /** Прозрачность */
    }

    /* Скрытые элементы */
    #mainWidget .hidden {
      display: none !important;                       /** Полное скрытие элемента */
    }

    /* Форма телефона (скрыта по умолчанию) */
    #mainWidget .phone-form {
      display: none;                                  /** Скрыто по умолчанию */
      flex-direction: column;                         /** Вертикальное направление флекса */
      align-items: center;                            /** Горизонтальное выравнивание */
      width: 100%;                                    /** Ширина формы */
      margin: 20px 0;                                 /** Отступы */
      gap: 10px;                                      /** Отступ между элементами */
      padding: 20px;                                  /** Внутренний отступ */
      box-sizing: border-box;                         /** Включение бордера и паддингов в ширину */
      position: relative;                             /** Относительное позиционирование */
      
      transition: all 0.4s ease-in-out !important;    /** Плавные переходы */
    }

    /* Активное состояние формы телефона */
    #mainWidget .phone-form.active {
      display: flex;                                  /** Отображение флекса */
    }

    /* Метка (label) внутри формы телефона */
    #mainWidget .phone-form label {
      font-size: 21px;                                /** Размер шрифта */
      color: var(--lb-font-color);                      /** Цвет текста */
      text-align: center;                             /** Центрирование текста */
      margin: 10px 0px 10px 0px;                       /** Отступы */
    }

    /* Инпуты формы телефона */
    #mainWidget .phone-form input {
      width: 100%;                                    /** Ширина инпута */
      padding: 15px 15px 15px 30px;                    /** Внутренние отступы */
      font-size: 17px;                                /** Размер шрифта */
      color: var(--lb-font-color);                      /** Цвет текста */
      border: 1px solid rgba(222, 232, 247, 0.6);      /** Бордер инпута */
      border-radius: 1rem;                             /** Скругленные углы */
      box-shadow:
        inset 0.2rem 0.2rem 0.5rem var(--lb-shadow-color),  /** Внутренняя тень */
        inset -0.2rem -0.2rem 0.5rem var(--lb-background-white); /** Внутренняя светлая тень */
      background: var(--lb-input-hover-background);      /** Фон инпута */
      box-sizing: border-box;                           /** Включение бордера и паддингов в ширину */
      transition: background 0.3s ease, box-shadow 0.3s ease; /** Переходы для плавности */
      text-align: center;                               /** Центрирование текста */
      position: relative;                               /** Относительное позиционирование */
      margin-bottom: 3px;                                /** Нижний отступ */
    }

    /* Фон инпута при наведении */
    #mainWidget .phone-form input:hover {
      background: var(--lb-background-white);             /** Белый фон при наведении */
    }

    /* Плейсхолдер инпута */
    #mainWidget .phone-form input::placeholder {
      color: var(--lb-font-color);                        /** Цвет плейсхолдера */
      text-align: center;                                 /** Центрирование текста */
    }

    /* Стили при фокусе на инпуте */
    #mainWidget .phone-form input:focus {
      outline: none;                                      /** Убираем обводку */
      box-shadow:
        0.3rem 0.3rem 0.6rem var(--lb-border-gray),      /** Тень при фокусе */
        -0.2rem -0.2rem 0.5rem var(--lb-background-white); /** Светлая тень при фокусе */
      background: var(--lb-background-white);             /** Белый фон при фокусе */
    }

    /* Иконка внутри инпута */
    #mainWidget .phone-form .input-icon {
      position: absolute;                                 /** Абсолютное позиционирование */
      left: 45px;                                         /** Смещение слева */
      top: 50%;                                           /** Центрирование по вертикали */
      transform: translateY(-50%);                         /** Центрирование по вертикали */
      font-size: 24px;                                    /** Размер иконки */
      color: var(--lb-primary-color);                       /** Цвет иконки */
      pointer-events: none;                               /** Игнорирование событий мыши */
      transition: color 0.3s ease;                       /** Переход цвета */
    }

    /* Цвет иконки при фокусе на инпуте */
    #mainWidget .phone-form input:focus + .input-icon {
      color: var(--lb-primary-color);                       /** Цвет иконки при фокусе */
    }

    /* Кнопка отправки формы телефона */
    #mainWidget .phone-form button {
      background: var(--lb-gradient);                      /** Градиентный фон */
      color: var(--lb-background-white);                     /** Белый цвет текста */
      cursor: pointer;                                      /** Курсор при наведении */
      font-size: 18px;                                      /** Размер шрифта */
      border: none;                                         /** Без бордера */
      transition: background-position var(--lb-animation-duration) var(--lb-animation-timing); /** Переход фона */
      background-size: 200% auto;                           /** Размер фона для анимации */
      background-position: 0 50%;                           /** Начальная позиция фона */
      border-radius: var(--lb-radius-small);                /** Скругленные углы */
      width: 100%;                                          /** Ширина кнопки */
      box-sizing: border-box;                               /** Включение бордера и паддингов в ширину */
      padding: 15px;                                        /** Внутренний отступ */
      margin-bottom: 5px;                                    /** Нижний отступ */
    }

    /* Переход фона кнопки при наведении */
    #mainWidget .phone-form button:hover {
      background-position: 100% 50%;                        /** Позиция фона при наведении */
    }

    /* Сообщение об ошибке в форме телефона */
    #mainWidget .phone-form .error-message {
      font-size: 12px;                                      /** Размер шрифта */
      color: var(--lb-red-color);                            /** Красный цвет текста */
      margin-top: 5px;                                       /** Верхний отступ */
      text-align: center;                                    /** Центрирование текста */
    }

    /* Кнопка закрытия формы телефона */
    #mainWidget .phone-form .close-form-btn {
      position: left !important;                           /** Позиционирование слева */
      top: 0px !important;                                  /** Позиционирование сверху */
      right: 20px !important;                                /** Позиционирование справа */
      width: 30px;                                          /** Ширина кнопки */
      height: 30px;                                         /** Высота кнопки */
      cursor: pointer;                                      /** Курсор при наведении */
      display: flex;                                        /** Флекс-контейнер */
      align-items: center;                                  /** Вертикальное выравнивание */
      justify-content: center;                              /** Горизонтальное центрирование */
      background: rgba(0, 0, 0, 0.5);                       /** Полупрозрачный фон */
      border-radius: 50%;                                   /** Круглая форма */
      opacity: 0.27;                                        /** Прозрачность */
      transition: opacity 0.3s ease, background 0.3s ease; /** Переходы */
    }

    /* Стили кнопки закрытия при наведении */
    #mainWidget .phone-form .close-form-btn:hover {
      opacity: 1;                                           /** Прозрачность при наведении */
      background: rgba(0, 0, 0, 0.7);                       /** Более темный фон при наведении */
    }

    /* Иконка внутри кнопки закрытия */
    #mainWidget .phone-form .close-form-btn .material-symbols-outlined {
      font-size: 20px;                                      /** Размер иконки */
      color: #FFFFFF;                                        /** Белый цвет иконки */
    }

    /* Адаптивные стили для узких экранов */
    @media (max-width: 340px) {
      .policy-consent {
        display: flex;                    /* Используем flex, чтобы контролировать перенос элементов */
        flex-wrap: wrap;                  /* Разрешаем перенос элементов на новую строку */
        justify-content: center;          /* Центрируем содержимое по горизонтали */
        align-items: center;              /* Центрируем по вертикали */
        white-space: normal !important;   /* Позволяем тексту переноситься */
        text-align: center;               /* Центрируем текст внутри контейнера */
        padding: 0 5px;                   /* Добавляем небольшие отступы слева и справа */
      }

      /* Если необходимо, скорректируйте позиционирование галочки в чекбоксе */
      #mainWidget input2[type="checkbox"][name="consent"]:checked::after,
      #chatWidget input2[type="checkbox"][name="consent"]:checked::after {
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%) rotate(45deg);
        width: 6px;                
        height: 10px;
        border-width: 0 2px 2px 0;
      }
    }
  </style>

  <!-- Контейнер пульсации и кнопки виджета -->
  <div class="pulse-container">
    <!-- Кнопка виджета -->
    <div id="customWidgetButton">
      <span class="material-icons phone-icon">phone</span> <!-- Иконка телефона -->
    </div>
    <!-- Круги для пульсации -->
    <div class="pulse-circle"></div>
    <div class="pulse-circle"></div>
    <div class="pulse-circle"></div>
  </div>

  <!-- Текст виджета -->
  <div id="widgetText">
    <span>Заказать звонок</span>
  </div>

  <!-- Модальное окно виджета -->
  <div id="customWidgetModal">
    <!-- Заголовок модального окна -->
    <div id="customWidgetModalHeader">
      <span>HAVAL FRESH</span> <!-- Название компании -->
      <button id="customCloseWidget">&times;</button> <!-- Кнопка закрытия модального окна -->
    </div>
    <!-- Контейнер для кнопок внутри модального окна -->
    <div id="modalButtonsContainer">
      <!-- Кнопки добавятся скриптом -->
    </div>
    <!-- Форма для ввода телефона -->
    <form id="phoneForm" class="phone-form" action="#" method="POST">
      <button type="button" class="close-form-btn">
        <span class="material-symbols-outlined">arrow_back</span> <!-- Иконка стрелки назад -->
      </button>
      <label>Напишите ваш телефон и мы перезвоним через 25 секунд</label> <!-- Инструкция для пользователя -->
      <div style="position: relative; width: 100%;">
        <input type="tel" id="phone-input" name="phone" placeholder="+7 (XXX) XXX-XX-XX" required> <!-- Поле ввода телефона -->
        <span class="material-icons input-icon">phone</span> <!-- Иконка телефона внутри инпута -->
      </div>
      <button type="submit" id="submit-button">ОТПРАВИТЬ</button> <!-- Кнопка отправки формы -->
      <div class="error-message" id="phone-error"></div> <!-- Контейнер для сообщений об ошибках -->
      <input type="hidden" name="source" value="customWidget"> <!-- Скрытое поле для источника заявки -->

      <!-- === FIX POLICY === -->
      <div class="policy-consent">
        <input type="checkbox" name="consent" checked /> <!-- Чекбокс согласия -->
        Даю согласие на <a href="#" target="_blank" rel="nofollow" id="privacyLinkMain">обработку персональных данных</a> <!-- Ссылка на политику конфиденциальности -->
      </div>
    </form>
  </div>

  <!-- Оверлей для модального окна -->
  <div id="modalOverlay"></div>

  <!-- Подключение Calltouch -->
  <script>
    (function(w,d,t,u,n,a,m){
      w['CalltouchObject']=n;w[n]=w[n]||function(){
      (w[n].q=w[n].q||[]).push(arguments)},w[n].l=1*new Date();
      a=d.createElement(t), m=d.getElementsByTagName(t)[0];
      a.async=1;a.src=u;m.parentNode.insertBefore(a,m)
    })(window, document, 'script', 'https://cdn.calltouch.ru/calltouch.js', 'ctw');
  </script>

  <!-- JS Основного виджета -->
  <script>
    document.addEventListener('DOMContentLoaded', function () {
      // Конфигурация виджета
      const fixedCalltouchKey = 'key-dashio'; // Ключ для Calltouch
      const privacyPolicyUrl  = 'https://freshauto-exeed.ru/policy'; // URL политики конфиденциальности
      const thankYouUrl       = 'https://freshauto-exeed.ru/thank-you'; // URL страницы благодарности

      // Список элементов для кнопок модального окна
      const items = [
        { text: 'Заказать звонок', link: thankYouUrl, icon: 'phone', iconType: 'material-icons' },
        { text: 'Онлайн чат', link: thankYouUrl, icon: 'sms', iconType: 'material-symbols-outlined' },
        { text: 'Оценить авто', link: thankYouUrl, icon: 'swap_driving_apps', iconType: 'material-symbols-outlined' },
        { text: 'Запись на Тест-драйв', link: thankYouUrl, icon: 'swap_driving_apps_wheel', iconType: 'material-symbols-outlined' },
        { text: 'Рассчитать кредит', link: thankYouUrl, icon: 'credit_score', iconType: 'material-icons' },
        { text: 'Запись на сервис', link: thankYouUrl, icon: 'build', iconType: 'material-icons' },
        { text: 'Получить выгоду', link: thankYouUrl, icon: 'volunteer_activism', iconType: 'material-symbols-outlined' },
        { text: 'Написать в Telegram', link: thankYouUrl, icon: 'fab fa-telegram', iconType: 'fa' },
        { text: 'Написать в WhatsApp', link: thankYouUrl, icon: 'fab fa-whatsapp', iconType: 'fa' },
        { text: 'Написать во ВКонтакте', link: thankYouUrl, icon: 'fab fa-vk', iconType: 'fa' },
      ];

      let activeButtonIndex = 0;                       // Индекс активной кнопки
      let colorChangeInterval = null;                   // Интервал для смены кнопок
      let currentCalltouchKey = '';                     // Текущий ключ Calltouch
      let currentFormId = '';                           // Текущий ID формы
      let currentListener = null;                       // Текущий обработчик события

      // Элементы DOM
      const widgetButton        = document.getElementById('customWidgetButton'); // Кнопка виджета
      const pulseContainer      = document.querySelector('#mainWidget .pulse-container'); // Контейнер пульсации
      const iconElement         = widgetButton.querySelector('.phone-icon'); // Иконка внутри кнопки
      const widgetText          = document.getElementById('widgetText'); // Текст виджета
      const widgetModal         = document.getElementById('customWidgetModal'); // Модальное окно
      const overlay             = document.getElementById('modalOverlay'); // Оверлей
      const customCloseWidget   = widgetModal.querySelector('#customCloseWidget'); // Кнопка закрытия модального окна
      const modalButtonsContainer = document.getElementById('modalButtonsContainer'); // Контейнер для кнопок
      const phoneForm           = document.getElementById('phoneForm'); // Форма телефона
      const closeFormBtn        = phoneForm.querySelector('.close-form-btn'); // Кнопка закрытия формы
      const phoneInput          = phoneForm.querySelector('#phone-input'); // Поле ввода телефона
      const phoneError          = phoneForm.querySelector('#phone-error'); // Контейнер для ошибок
      const submitButton        = phoneForm.querySelector('#submit-button'); // Кнопка отправки формы

      const privacyLinkMain     = document.getElementById('privacyLinkMain'); // Ссылка на политику конфиденциальности
      if (privacyLinkMain) {
        privacyLinkMain.href = privacyPolicyUrl; // Установка href для ссылки на политику
      }

      let isModalHovered = false;                       // Флаг наведения на модальное окно
      const isTouchDevice = ('ontouchstart' in window) || (navigator.maxTouchPoints > 0) || (navigator.msMaxTouchPoints > 0); // Проверка устройства с сенсорным экраном

      /**
       * Транслитерация текста с кириллицы на латиницу.
       * @param {string} text - Текст для транслитерации.
       * @returns {string} - Транслитерированный текст.
       */
      function transliterate(text) {
        const translitMap = {
          'а': 'a','б': 'b','в': 'v','г': 'g','д': 'd','е': 'e','ё': 'e','ж': 'zh','з': 'z','и': 'i',
          'й': 'y','к': 'k','л': 'l','м': 'm','н': 'n','о': 'o','п': 'p','р': 'r','с': 's','т': 't',
          'у': 'u','ф': 'f','х': 'h','ц': 'ts','ч': 'ch','ш': 'sh','щ': 'shch','ъ': '','ы': 'y','ь': '',
          'э': 'e','ю': 'yu','я': 'ya','А': 'A','Б': 'B','В': 'V','Г': 'G','Д': 'D','Е': 'E','Ё': 'E',
          'Ж': 'Zh','З': 'Z','И': 'I','Й': 'Y','К': 'K','Л': 'L','М': 'M','Н': 'N','О': 'O','П': 'P',
          'Р': 'R','С': 'S','Т': 'T','У': 'U','Ф': 'F','Х': 'H','Ц': 'Ts','Ч': 'Ch','Ш': 'Sh','Щ': 'Shch',
          'Ъ': '','Ы': 'Y','Ь': '','Э': 'E','Ю': 'Yu','Я': 'Ya'
        };
        return text.split('').map(char => translitMap[char] || char).join('');
      }

      /**
       * Создает кнопки внутри модального окна на основе массива items.
       */
      function createButtons() {
        items.forEach((item, index) => {
          const button = document.createElement('a'); // Создаем ссылку как кнопку
          button.href = item.link;                      // Устанавливаем ссылку
          button.className = 'modal-button';            // Присваиваем класс
          button.dataset.calltouchKey = fixedCalltouchKey; // Устанавливаем data-атрибут
          const formId = transliterate(item.text).replace(/\s+/g, '-').toLowerCase(); // Генерируем ID формы
          button.dataset.formId = formId;               // Устанавливаем data-атрибут
          
          if (item.iconType === 'fa') {
            button.innerHTML = `<i class="${item.icon}" style="margin-right:10px;"></i><span>${item.text}</span>`;
          } else {
            const iconClass = (item.iconType === 'material-symbols-outlined') ? 'material-symbols-outlined' : 'material-icons';
            button.innerHTML = `<span class="${iconClass}">${item.icon}</span><span>${item.text}</span>`;
          }

          modalButtonsContainer.appendChild(button);     // Добавляем кнопку в контейнер
        });
      }
      createButtons(); // Вызываем функцию создания кнопок

      const buttons = Array.from(modalButtonsContainer.querySelectorAll('.modal-button')); // Получаем все кнопки

      /**
       * Удаляет класс 'active-button' у всех кнопок.
       */
      function removeAllActiveButtons() {
        buttons.forEach(button => {
          button.classList.remove('active-button');
        });
      }

      /**
       * Синхронизирует выделение активной кнопки и обновляет иконку.
       * @param {number} index - Индекс активной кнопки.
       */
      function syncHighlight(index) {
        buttons.forEach((button, i) => {
          if (i === index) {
            button.classList.add('active-button');       // Добавляем класс активной кнопке
          } else {
            button.classList.remove('active-button');    // Убираем класс с остальных
          }
        });
        const currentItem = items[index];
        
        
        if (currentItem.iconType === 'fa') {
          iconElement.className = currentItem.icon + " phone-icon";
          iconElement.textContent = "";
        } else if (currentItem.iconType === 'material-symbols-outlined') {
          iconElement.className = 'material-symbols-outlined phone-icon';
          iconElement.textContent = currentItem.icon;
        } else {
          iconElement.className = 'material-icons phone-icon';
          iconElement.textContent = currentItem.icon;
        }

      }

      /**
       * Запускает цикл смены активных кнопок с интервалом.
       */
      function startColorCycle() {
        if (colorChangeInterval !== null) clearInterval(colorChangeInterval); // Очищаем предыдущий интервал
        syncHighlight(activeButtonIndex);                                        // Синхронизируем выделение
        widgetText.querySelector('span').textContent = items[activeButtonIndex].text; // Обновляем текст виджета
        colorChangeInterval = setInterval(() => {
          if (!isModalHovered || isTouchDevice) {                              // Если модальное окно не наведено или устройство сенсорное
            activeButtonIndex = (activeButtonIndex + 1) % buttons.length;    // Увеличиваем индекс кнопки
            syncHighlight(activeButtonIndex);                                // Синхронизируем выделение
            widgetText.querySelector('span').textContent = items[activeButtonIndex].text; // Обновляем текст виджета
          }
        }, 3000); // Интервал 3 секунды
      }

      /**
       * Останавливает цикл смены активных кнопок.
       */
      function stopColorCycle() {
        if (colorChangeInterval !== null) {
          clearInterval(colorChangeInterval); // Очищаем интервал
          colorChangeInterval = null;
        }
        removeAllActiveButtons();               // Убираем выделение с всех кнопок
      }

      // Обработчики наведения для не сенсорных устройств
      if (!isTouchDevice) {
        widgetModal.addEventListener('mouseenter', () => {
          isModalHovered = true;               // Устанавливаем флаг наведения
          stopColorCycle();                    // Останавливаем цикл смены кнопок
        });
        widgetModal.addEventListener('mouseleave', () => {
          isModalHovered = false;              // Сбрасываем флаг наведения
          startColorCycle();                   // Запускаем цикл смены кнопок
        });
      }

      /**
       * Обработчик клика по кнопке внутри модального окна.
       */
      buttons.forEach((button, index) => {
        const item = items[index];
        button.addEventListener('click', event => {
          event.preventDefault(); // Предотвращаем переход по ссылке
          const calltouchKey = button.dataset.calltouchKey; // Получаем ключ Calltouch
          const formId = button.dataset.formId;             // Получаем ID формы
          const buttonText = button.querySelector('span:nth-child(2)').textContent.trim(); // Получаем текст кнопки
          const link = item.link;                            // Получаем ссылку

          if (['Онлайн чат', 'Написать в Telegram', 'Написать в WhatsApp', 'Написать во ВКонтакте'].includes(item.text)) {              // Если выбрана опция "Онлайн чат"
            hideModal();                                      // Скрываем модальное окно
            setTimeout(() => {
              window.openChatWidget();                        // Открываем чат-виджет
            }, 400);
            return;
          }

          if (calltouchKey && formId) {
            currentCalltouchKey = calltouchKey;               // Устанавливаем текущий ключ
            currentFormId = formId;                           // Устанавливаем текущий ID формы
            hideButtonsAndShowForm(formId, buttonText, link); // Скрываем кнопки и показываем форму
          }
        });

        // Обработчики наведения для не сенсорных устройств
        if (!isTouchDevice) {
          button.addEventListener('mouseover', () => {
            if (!isModalHovered) {
              syncHighlight(index);                            // Синхронизируем выделение
              widgetText.querySelector('span').textContent = items[index].text; // Обновляем текст виджета
            }
          });
          button.addEventListener('mouseout', () => {
            if (!isModalHovered) {
              syncHighlight(activeButtonIndex);               // Синхронизируем выделение
              widgetText.querySelector('span').textContent = items[activeButtonIndex].text; // Обновляем текст виджета
            }
          });
        }
      });

      /**
       * Показывает модальное окно виджета.
       */
      function showModal() {
        if (!canShowWidget()) return; // Проверяем возможность показа виджета
        setActiveWidget('main');      // Устанавливаем активный виджет

        widgetModal.classList.add('show');          // Добавляем класс показа модального окна
        overlay.classList.add('show');              // Добавляем класс показа оверлея
        widgetText.style.display = 'none';          // Скрываем текст виджета
        pulseContainer.classList.add('hidden');      // Скрываем пульсацию
        startColorCycle();                           // Запускаем цикл смены кнопок
      }

      /**
       * Скрывает модальное окно виджета.
       */
      function hideModal() {
        widgetModal.classList.remove('show');        // Убираем класс показа модального окна
        widgetModal.classList.add('hide');           // Добавляем класс скрытия модального окна
        overlay.classList.remove('show');            // Убираем класс показа оверлея
        overlay.classList.add('hide');               // Добавляем класс скрытия оверлея
        setTimeout(() => {
          widgetModal.classList.remove('hide');       // Убираем класс скрытия модального окна
          overlay.classList.remove('hide');           // Убираем класс скрытия оверлея
          widgetText.style.display = 'flex';           // Показываем текст виджета
          pulseContainer.classList.remove('hidden');    // Показываем пульсацию
        }, 300);
        setActiveWidget(null);                        // Сбрасываем активный виджет
      }

      // Обработчики событий для показа модального окна
      widgetButton.addEventListener('mouseover', showModal); // Показываем модальное окно при наведении на кнопку
      widgetButton.addEventListener('click', event => {      // Показываем модальное окно при клике на кнопку
        event.preventDefault();
        showModal();
      });
      widgetText.addEventListener('mouseover', showModal);   // Показываем модальное окно при наведении на текст

      // Обработчики событий для закрытия модального окна
      customCloseWidget.addEventListener('click', hideModal); // Закрываем модальное окно при клике на кнопку закрытия
      overlay.addEventListener('click', hideModal);           // Закрываем модальное окно при клике на оверлей
      closeFormBtn.addEventListener('click', showButtonsAndHideForm); // Показываем кнопки и скрываем форму при клике на кнопку закрытия формы

      // Таймер ROUND для автоматического показа модального окна через 15 секунд и каждые 50 секунд
      setTimeout(() => {
        if (canShowWidget()) {
          showModal();
          setInterval(() => {
            if (canShowWidget()) {
              showModal();
            }
          }, 50000); // далее через каждые 50 секунд
        }
      }, 40000); // первый раз через 15 секунд

      syncHighlight(activeButtonIndex); // Синхронизируем начальное выделение кнопки
      startColorCycle();                 // Запускаем цикл смены кнопок

      /**
       * Скрывает кнопки и показывает форму для ввода телефона.
       * @param {string} formId - ID формы.
       * @param {string} buttonText - Текст кнопки.
       * @param {string} link - Ссылка для формы.
       */
      function hideButtonsAndShowForm(formId, buttonText, link) {
        modalButtonsContainer.style.display = 'none';     // Скрываем кнопки
        phoneForm.classList.add('active');                // Показываем форму
        phoneForm.id = formId;                             // Устанавливаем ID формы
        phoneForm.action = link;                           // Устанавливаем действие формы
        submitButton.textContent = buttonText;             // Обновляем текст кнопки отправки
        document.getElementById('customWidgetModalHeader').style.display = 'none'; // Скрываем заголовок модального окна
        integrateCalltouch(formId, fixedCalltouchKey);    // Интегрируем Calltouch для формы
      }

      /**
       * Показывает кнопки и скрывает форму для ввода телефона.
       */
      function showButtonsAndHideForm() {
        modalButtonsContainer.style.display = 'block';    // Показываем кнопки
        phoneForm.classList.remove('active');             // Скрываем форму
        phoneForm.reset();                                 // Сбрасываем форму
        phoneError.textContent = '';                       // Очищаем сообщения об ошибках
        phoneForm.id = 'phoneForm';                        // Устанавливаем стандартный ID формы
        phoneForm.action = '#';                            // Сбрасываем действие формы
        submitButton.textContent = 'ОТПРАВИТЬ';            // Устанавливаем стандартный текст кнопки
        currentCalltouchKey = '';                          // Сбрасываем текущий ключ Calltouch
        currentFormId = '';                                // Сбрасываем текущий ID формы
        document.getElementById('customWidgetModalHeader').style.display = 'flex'; // Показываем заголовок модального окна
      }

      // Форматирование ввода телефона в основном виджете
      phoneInput.addEventListener("input", function () {
        let value = phoneInput.value.replace(/\D/g, "").substring(0, 11); // Убираем нецифры и ограничиваем длину
        let formattedValue = "+7 (";
        if (value.length > 1) formattedValue += value.substring(1, 4);
        if (value.length >= 5) formattedValue += ") " + value.substring(4, 7);
        if (value.length >= 8) formattedValue += "-" + value.substring(7, 9);
        if (value.length >= 10) formattedValue += "-" + value.substring(9, 11);
        phoneInput.value = formattedValue; // Устанавливаем отформатированное значение
      });

      /**
       * Интегрирует Calltouch для формы.
       * @param {string} formId - ID формы.
       * @param {string} widgetKey - Ключ виджета Calltouch.
       */
      function integrateCalltouch(formId, widgetKey) {
        const form = document.getElementById(formId);                    // Получаем форму по ID
        const phoneInput = form?.querySelector('input[name="phone"]');    // Получаем поле ввода телефона
        if (!form || !phoneInput) {
          console.error(`Форма "${formId}" не найдена.`);              // Ошибка, если форма не найдена
          return;
        }
        if (currentListener) {
          form.removeEventListener('submit', currentListener);           // Удаляем предыдущий слушатель
        }
        // Создаем новый обработчик отправки формы
        currentListener = function (event) {
          event.preventDefault(); // Предотвращаем стандартное поведение формы
          const phone = phoneInput.value.trim().replace(/\D/g, '');    // Получаем телефон без нецифр
          if (!phone) {
            alert('Введите корректный номер телефона.');               // Предупреждение, если телефон пуст
            return;
          }
          if (!window.ctw || typeof window.ctw.createRequest !== 'function') {
            console.error('Calltouch API не загружен.');              // Ошибка, если Calltouch не загружен
            alert('Произошла ошибка. Пожалуйста, попробуйте позже.');
            return;
          }
          // Создаем заявку через Calltouch
          window.ctw.createRequest(
            widgetKey,                      // Ключ виджета
            phone,                          // Телефон
            [],                             // Дополнительные параметры
            function (success, data) {      // Callback функция
              if (success) {
                console.log('Заявка успешно создана, ID:', data.callbackRequestId);
                const formData = new FormData(form); // Получаем данные формы
                // Отправляем данные формы на сервер
                fetch(form.action, {
                  method: form.method,
                  body: formData,
                })
                  .then(response => {
                    if (response.ok) {
                      console.log('Данные успешно отправлены на сервер.');
                      alert('Заявка успешно отправлена!');
                      window.location.href = form.action; // Перенаправляем на страницу благодарности
                    } else {
                      console.error('Ошибка при отправке:', response.statusText);
                      alert('Ошибка при отправке данных. Попробуйте позже.');
                    }
                  })
                  .catch(error => {
                    console.error('Ошибка при fetch:', error);
                    alert('Произошла ошибка. Пожалуйста, попробуйте позже.');
                  });
              } else {
                console.error('Ошибка создания заявки:', data);
                alert('Ошибка при отправке заявки. Попробуйте позже.');
              }
            },
            null,
            ['popup_widget_round', 'Форма сайта', 'round', 'popup_widget', formId] // Дополнительные параметры
          );
        };
        form.addEventListener('submit', currentListener); // Добавляем обработчик события отправки
      }

      // Интеграция Calltouch для основной формы
      integrateCalltouch('phoneForm', fixedCalltouchKey);
    });
  </script>
</div><!-- /#mainWidget -->

