Ремонт и Тюнинг Выхлопных Систем
в Москве от «Лёха Выхлоп»
Профессиональная замена катализаторов, гофр, глушителей. Чип-тюнинг Евро-2. Сварка аргоном. Гарантия до 2 лет!
Ваш Выхлоп Требует Внимания, Если:
Запах гари / Выхлопа
Горит Check Engine
Видны повреждения / Коррозия
Упала мощность
Проблемы с катализатором/DPF
Хочется другой звук/вид
Основные Направления Работ
Почему Выбирают «Лёха Выхлоп»?
Опытные Мастера
Специалисты со стажем 10+ лет, знающие все тонкости выхлопных систем.
Гарантия до 2 Лет
Мы уверены в качестве работ и материалов, поэтому даем честную гарантию.
Только Качество
Используем нержавеющую сталь AISI 304/409 и проверенные компоненты.
Честные Цены
Прозрачный расчет стоимости до начала работ, без скрытых платежей.
Как Мы Работаем
1. Заявка / Звонок
Вы связываетесь с нами удобным способом.
2. Диагностика
Проводим бесплатный осмотр и диагностику.
3. Согласование
Предлагаем решения и согласовываем цену.
4. Ремонт / Тюнинг
Выполняем работы качественно и в срок.
5. Гарантия
Вы получаете результат и нашу гарантию.
Профессиональный Ремонт Выхлопа
Устраняем любые неисправности выхлопной системы быстро и надежно:
- Замена гофры глушителя (включая Interlock)
- Замена и ремонт глушителей (банок) и резонаторов
- Ремонт и замена приемных труб, выпускных коллекторов
- Восстановление и замена креплений и прокладок
- Сварка трещин и прогаров (аргон TIG)
- Ремонт и замена лямбда-зондов (датчиков кислорода)

Тюнинг и Изготовление Выхлопа
Создадим уникальный выхлоп под ваши задачи и пожелания:
- Изменение звука выхлопа (тише/громче/басовитее)
- Раздвоение выхлопа на две стороны
- Установка стильных насадок на глушитель
- Изготовление кастомных выхлопных систем из нержавейки
- Установка спортивных глушителей и резонаторов
- Чип-тюнинг Stage 1 для увеличения мощности
- Изготовление пайпов (downpipe / midpipe)

Работа с Катализаторами и DPF
Решаем проблемы с экологическими системами автомобиля:
- Удаление катализатора / сажевого фильтра DPF/FAP
- Замена катализатора на пламегаситель или стронгер (нерж.)
- Установка универсальных или оригинальных катализаторов
- Установка механических/электронных обманок лямбда-зонда
- Программное отключение (прошивка Евро-2 / Евро-0 / DPF-off)
- Отключение и удаление клапана EGR / AGR
- Устранение ошибок (P0420, P0421, P0422 и др.)

Работаем с Любыми Марками Авто














Нам Доверяют
Реальные отзывы и высокие оценки на популярных площадках.
«Менял гофру и удалял катализатор на Солярисе. Лёха и команда сделали все четко, быстро. Объяснили, показали. Цена адекватная. Ошибок нет, машина едет!»
«Делала раздвоение выхлопа на BMW. Результат превзошел ожидания! Звук приятный, не орет. Выглядит супер. Спасибо ребятам за профессионализм!»
Ответы на Частые Вопросы
Сколько стоит удалить катализатор и прошить на Евро-2?
Стоимость зависит от марки и модели вашего автомобиля, сложности работ и типа устанавливаемого пламегасителя/стронгера. В среднем, работа «под ключ» (удаление, установка пламегасителя, чип-тюнинг Евро-2) начинается от 6000-8000 рублей. Точную цену мы сможем назвать после бесплатной диагностики. Запишитесь на расчет.
Как долго служит пламегаситель? Какая гарантия?
Мы используем качественные пламегасители из нержавеющей стали, которые рассчитаны на весь срок службы автомобиля при правильной эксплуатации. Гарантия на сам пламегаситель и работы по его установке составляет до 2-х лет.
Можно ли сделать тихий спортивный выхлоп?
Да, это возможно. Мы можем подобрать компоненты (спортивные резонаторы, глушители с камерами) таким образом, чтобы получить приятный, породистый, но не навязчивый и не громкий звук. Все обсуждается индивидуально под ваши предпочтения.
Зачем нужна сварка аргоном (TIG)?
Аргонодуговая сварка (TIG) позволяет получить очень качественный, прочный и аккуратный шов при работе с нержавеющей сталью, титаном и алюминием, которые часто используются в выхлопных системах. Это обеспечивает максимальную герметичность и долговечность соединений, особенно при изготовлении кастомных систем.
Запишитесь на Диагностику или Получите Расчет Стоимости!
Оставьте свои данные, и наш специалист свяжется с вами в ближайшее время.
Наши Контакты
г. Москва, Олений вал д.7 стр.5
+7 (903) 129-20-00
Написать в Telegram
Пн-Вс: 10:00 — 20:00 (Без выходных)
/* css/index.css */
/* Кодировка */
@charset «UTF-8″;
/* Подключение шрифтов Google Fonts */
@import url(‘https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;700&family=Oswald:wght@400;500;700&display=swap’);
/* CSS Переменные */
:root {
/* Цвета */
—color-primary: #1A2E40; /* Темно-синий/графит */
—color-secondary: #3B596F; /* Спокойный сине-серый */
—color-accent: #F2A900; /* Яркий желто-оранжевый */
—color-accent-hover: #d99800; /* Темнее акцентный для hover */
—color-text-light: #F5F5F5;
—color-text-dark: #333333;
—color-text-muted: #6c757d;
—color-background-light: #FFFFFF;
—color-background-medium: #F8F9FA;
—color-background-dark: var(—color-primary);
—color-background-footer: #111f2d;
—color-success: #28a745;
—color-error: #dc3545;
—color-border: #dee2e6;
—color-overlay: rgba(26, 46, 64, 0.7);
/* Типография */
—font-family-base: ‘Montserrat’, sans-serif;
—font-family-headings: ‘Oswald’, sans-serif;
—font-size-base: 1rem;
—font-size-h1: calc(2.2rem + 1.5vw);
—font-size-h2: calc(1.8rem + 1vw);
—font-size-h3: calc(1.3rem + 0.5vw);
—line-height-base: 1.6;
—font-weight-normal: 400;
—font-weight-medium: 500;
—font-weight-bold: 700;
/* Отступы */
—spacing-xs: 0.25rem;
—spacing-sm: 0.5rem;
—spacing-md: 1rem;
—spacing-lg: 1.5rem;
—spacing-xl: 3rem;
—spacing-xxl: 5rem;
—section-padding: var(—spacing-xl) 0;
—container-max-width: 1200px;
—container-padding: 0 var(—spacing-lg);
/* Границы */
—border-radius-sm: 0.2rem;
—border-radius: 0.3rem;
—border-radius-lg: 0.5rem;
/* Тени */
—box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
—box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1);
—box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.15);
—box-shadow-accent: 0 0.5rem 1rem rgba(242, 169, 0, 0.2);
/* Переходы */
—transition-base: all 0.3s ease-in-out;
/* Z-index */
—z-index-back-to-top: 1000;
—z-index-header: 1010;
—z-index-mobile-menu: 1020;
—z-index-hero-decor: 3;
}
@media (max-width: 768px) {
:root {
—font-size-h1: calc(1.8rem + 1.5vw);
—font-size-h2: calc(1.5rem + 1vw);
—font-size-h3: calc(1.2rem + 0.5vw);
—section-padding: var(—spacing-lg) 0;
}
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 100%; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { font-family: var(—font-family-base); font-size: var(—font-size-base); line-height: var(—line-height-base); color: var(—color-text-dark); background-color: var(—color-background-light); overflow-x: hidden; }
body.no-scroll { overflow: hidden; }
h1, h2, h3, h4, h5, h6 { font-family: var(—font-family-headings); font-weight: var(—font-weight-bold); line-height: 1.3; margin-bottom: var(—spacing-md); color: var(—color-primary); }
h1 { font-size: var(—font-size-h1); }
h2 { font-size: var(—font-size-h2); }
h3 { font-size: var(—font-size-h3); }
p { margin-bottom: var(—spacing-md); }
a { color: var(—color-accent); text-decoration: none; transition: var(—transition-base); }
a:hover { color: var(—color-accent-hover); }
img { max-width: 100%; height: auto; display: block; }
ul { list-style: none; }
ul li::before { content: »; display: none; }
.container { max-width: var(—container-max-width); margin-left: auto; margin-right: auto; padding: var(—container-padding); }
.section { padding: var(—section-padding); }
.section—first { padding-top: 0; }
.section—bg-medium { background-color: var(—color-background-medium); }
.section—bg-dark { background-color: var(—color-background-dark); color: var(—color-text-light); }
.section__title { text-align: center; margin-bottom: var(—spacing-md); position: relative; padding-bottom: var(—spacing-sm); }
.section__title::after { content: »; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 70px; height: 3px; background-color: var(—color-accent); border-radius: var(—border-radius-sm); }
.section__title—left { text-align: left; }
.section__title—left::after { left: 0; transform: none; }
.section__title—light { color: var(—color-text-light); }
.section__title—light::after { background-color: var(—color-text-light); }
.section__subtitle { text-align: center; max-width: 750px; margin: 0 auto var(—spacing-xl); color: var(—color-text-muted); font-size: 1.1rem; line-height: 1.7; }
.section__subtitle—left { text-align: left; margin-left: 0; max-width: none; }
.section__subtitle—light { color: rgba(245, 245, 245, 0.8); }
.section__cta { text-align: center; margin-top: var(—spacing-xl); }
.highlight { color: var(—color-accent); font-weight: var(—font-weight-medium); }
.accent-word { color: var(—color-accent); font-weight: inherit; }
.visually-hidden { position: absolute !important; height: 1px; width: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.text-center { text-align: center; }
.animate-on-scroll { opacity: 0; transform: translateY(20px); transition: opacity 0.6s ease-out, transform 0.6s ease-out; }
.animate-on-scroll.is-visible { opacity: 1; transform: translateY(0); }
/* Кнопки */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: var(—spacing-sm); font-family: var(—font-family-headings); font-weight: var(—font-weight-medium); text-align: center; vertical-align: middle; user-select: none; background-color: transparent; border: 2px solid transparent; padding: 0.7rem 1.8rem; font-size: 1rem; line-height: 1.5; border-radius: var(—border-radius-lg); transition: var(—transition-base); cursor: pointer; text-transform: uppercase; letter-spacing: 0.5px; }
.btn i { line-height: 1; }
.btn—primary { color: var(—color-text-light); background-color: var(—color-primary); border-color: var(—color-primary); }
.btn—primary:hover, .btn—primary:focus { background-color: var(—color-secondary); border-color: var(—color-secondary); color: var(—color-text-light); transform: translateY(-2px); box-shadow: var(—box-shadow); }
.btn—secondary { color: var(—color-primary); background-color: transparent; border-color: var(—color-primary); }
.btn—secondary:hover, .btn—secondary:focus { background-color: var(—color-primary); border-color: var(—color-primary); color: var(—color-text-light); transform: translateY(-2px); }
.btn—accent { color: var(—color-primary); background-color: var(—color-accent); border-color: var(—color-accent); }
.btn—accent:hover, .btn—accent:focus { background-color: var(—color-accent-hover); border-color: var(—color-accent-hover); color: var(—color-primary); transform: translateY(-2px); box-shadow: var(—box-shadow-accent); }
.btn—light {
color: var(—color-primary);
background-color: var(—color-text-light);
border-color: var(—color-text-light);
}
.btn—light:hover, .btn—light:focus {
background-color: #e2e6ea;
border-color: #dae0e5;
color: var(—color-primary);
transform: translateY(-2px);
box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.1);
}
/* Для кнопок на темных фонах, чтобы .btn—secondary стал светлым */
.hero .btn—secondary,
.contacts .btn—secondary,
.section—bg-dark .btn—secondary {
color: var(—color-text-light);
border-color: var(—color-text-light);
}
.hero .btn—secondary:hover,
.contacts .btn—secondary:hover,
.section—bg-dark .btn—secondary:hover {
background-color: var(—color-text-light);
color: var(—color-primary);
}
.btn—large { padding: 0.9rem 2.5rem; font-size: 1.1rem; }
.btn—small { padding: 0.4rem 1rem; font-size: 0.9rem; border-width: 1px; }
.btn:focus { outline: none; }
/* ==================== HEADER ==================== */
.header { position: fixed; top: 0; left: 0; width: 100%; background-color: rgba(26, 46, 64, 0.9); backdrop-filter: blur(5px); z-index: var(—z-index-header); transition: background-color 0.3s ease, box-shadow 0.3s ease, height 0.3s ease; box-shadow: none; height: 80px; }
.header.scrolled { background-color: var(—color-primary); box-shadow: var(—box-shadow); height: 70px; }
.header__container { display: flex; justify-content: space-between; align-items: center; height: 100%; }
.logo { display: flex; align-items: center; gap: var(—spacing-sm); }
.logo img { height: 50px; width: auto; transition: height 0.3s ease; }
.header.scrolled .logo img { height: 40px; }
/* Навигация десктоп */
.nav__list { display: flex; align-items: center; gap: var(—spacing-lg); }
.nav__link { color: var(—color-text-light); font-weight: var(—font-weight-medium); position: relative; padding: var(—spacing-sm) 0; transition: var(—transition-base); }
.nav__link::after { content: »; position: absolute; bottom: 0; left: 0; width: 0; height: 2px; background-color: var(—color-accent); transition: width 0.3s ease; }
.nav__link:hover, .nav__link.active { color: var(—color-accent); }
.nav__link:hover::after, .nav__link.active::after { width: 100%; }
.nav__close { display: none; } /* Скрыт на десктопе */
/* Правая часть хедера */
.header__actions { display: flex; align-items: center; gap: var(—spacing-md); margin-left: auto; /* Отодвигаем весь блок вправо */ }
.header__contacts-main {
display: flex;
flex-direction: column;
align-items: flex-end;
margin-right: var(—spacing-md); /* Отступ от кнопок */
}
.header__phone {
display: flex; /* Для иконки и текста в ряд */
align-items: center;
gap: var(—spacing-xs);
color: var(—color-accent); /* Желтый цвет */
font-weight: var(—font-weight-bold);
font-size: 1.2rem;
margin-bottom: 2px;
}
.header__phone:hover { color: var(—color-accent-hover); }
.header__phone i { font-size: 1rem; /* Размер иконки телефона */ }
.header__address {
display: block;
color: var(—color-text-muted);
font-size: 0.85rem;
}
.header__cta-buttons {
display: flex;
align-items: center;
gap: var(—spacing-sm); /* Отступ между кнопками */
}
.header__telegram-desktop { /* Стили для десктопной кнопки телеграм */
/* btn—light и btn—small уже применены */
}
.header__cta-button {
/* btn—accent уже применен */
}
.header__toggle { display: none; font-size: 1.5rem; color: var(—color-text-light); cursor: pointer; background: none; border: none; padding: 5px; }
.header__toggle:hover { color: var(—color-accent); }
/* Адаптация хедера */
@media (max-width: 1024px) { /* Планшеты */
.header__contacts-main { display: none; } /* Скрываем телефон и адрес */
.header__nav { margin-right: var(—spacing-md); } /* Небольшой отступ для меню перед кнопками */
}
@media (max-width: 900px) { /* Порог для мобильного меню */
.header { height: 70px; }
.header.scrolled { height: 70px; }
.logo img { height: 40px; }
.header__nav { position: fixed; top: 0; right: -100%; width: 85%; max-width: 350px; height: 100vh; background-color: var(—color-primary); box-shadow: -4px 0 15px rgba(0, 0, 0, 0.2); padding: var(—spacing-xl) var(—spacing-lg); transition: right 0.4s ease-in-out; z-index: var(—z-index-mobile-menu); display: flex; flex-direction: column; justify-content: space-between; overflow-y: auto; margin-right: 0; /* Сбрасываем отступ */ }
.header__nav.show-menu { right: 0; }
.nav__list { flex-direction: column; align-items: flex-start; gap: var(—spacing-md); margin-bottom: var(—spacing-xl); }
.nav__link { font-size: 1.2rem; width: 100%; }
.nav__link::after { display: none; }
.nav__close { display: block; position: absolute; top: var(—spacing-lg); right: var(—spacing-lg); font-size: 1.8rem; color: var(—color-text-light); }
.nav__close:hover { color: var(—color-accent); }
.header__actions { margin-left: auto; /* Гамбургер будет справа */ }
.header__contacts-main { display: none; } /* Убедимся, что скрыто */
.header__cta-buttons { display: none; } /* Скрываем десктопные кнопки */
.header__toggle { display: block; } /* Показываем гамбургер */
.nav__mobile-contacts { margin-top: auto; padding-top: var(—spacing-lg); border-top: 1px solid var(—color-secondary); display: flex; flex-direction: column; gap: var(—spacing-md); align-items: flex-start; }
.nav__mobile-phone { color: var(—color-text-light); font-size: 1.1rem; display: flex; align-items: center; gap: var(—spacing-sm); }
.nav__mobile-phone i { color: var(—color-accent); }
.nav__mobile-telegram.btn { width: 100%; box-sizing: border-box; }
}
@media (max-width: 480px) { /* Совсем маленькие экраны */
.header__phone { font-size: 1rem; } /* Уменьшаем телефон, если он виден */
.header__cta-buttons .btn { padding: 0.6rem 1.2rem; font-size: 0.9rem; } /* Уменьшаем кнопки, если они видны */
}
/* ==================== HERO Section ==================== */
.hero { position: relative; min-height: 70vh; display: flex; align-items: center; justify-content: center; text-align: center; color: var(—color-text-light); background-size: cover; background-position: center center; background-attachment: fixed; }
.hero__overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: var(—color-overlay); z-index: 1; }
.hero__container { position: relative; z-index: 2; padding-top: var(—spacing-xl); padding-bottom: var(—spacing-xl); }
.hero__content { max-width: 850px; margin: 0 auto; }
.hero__title { font-size: var(—font-size-h1); color: var(—color-text-light); margin-bottom: var(—spacing-md); text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); }
.hero__subtitle { font-size: 1.3rem; margin-bottom: var(—spacing-xl); line-height: 1.7; text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5); }
.hero__cta { display: flex; justify-content: center; gap: var(—spacing-md); flex-wrap: wrap; margin-top: var(—spacing-lg); }
.hero__decor-img { position: absolute; bottom: 20px; right: 30px; max-width: 150px; opacity: 0.5; z-index: var(—z-index-hero-decor); display: none; }
@media (min-width: 992px) { .hero__decor-img { display: block; } }
@media (max-width: 768px) { .hero { min-height: 60vh; } .hero__title { font-size: calc(1.8rem + 2vw); } .hero__subtitle { font-size: 1.1rem; margin-bottom: var(—spacing-lg); } .hero__cta { gap: var(—spacing-sm); } .hero .btn { padding: 0.6rem 1.2rem; font-size: 0.9rem; } }
/* ==================== Problem Section ==================== */
.problems__list { display: flex; flex-wrap: wrap; justify-content: center; gap: var(—spacing-sm) var(—spacing-md); margin-bottom: var(—spacing-xl); max-width: 950px; margin-left: auto; margin-right: auto; }
.problems__list span { display: inline-flex; align-items: center; gap: var(—spacing-sm); background-color: var(—color-background-medium); padding: var(—spacing-sm) var(—spacing-md); border-radius: var(—border-radius); border: 1px solid var(—color-border); font-size: 0.9rem; color: var(—color-text-dark); transition: var(—transition-base); box-shadow: var(—box-shadow-sm); }
.problems__list span:hover { background-color: var(—color-accent); color: var(—color-primary); border-color: var(—color-accent); transform: translateY(-2px); }
.problems__list i { color: var(—color-secondary); transition: var(—transition-base); }
.problems__list span:hover i { color: var(—color-primary); }
/* ==================== Key Services Section ==================== */
.services__grid { display: grid; gap: var(—spacing-lg); }
.services__grid—four { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
@media (min-width: 768px) and (max-width: 991px) { .services__grid—four { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) and (max-width: 1199px) { .services__grid—four { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1200px) { .services__grid—four { grid-template-columns: repeat(4, 1fr); } }
.service-card { background-color: var(—color-background-light); border-radius: var(—border-radius-lg); text-align: center; border: 1px solid var(—color-border); box-shadow: var(—box-shadow-sm); transition: var(—transition-base); display: flex; flex-direction: column; overflow: hidden; }
.service-card:hover { transform: translateY(-5px); box-shadow: var(—box-shadow); border-color: var(—color-accent); }
.service-card__image-top { width: 100%; height: 180px; object-fit: cover; }
.service-card__content { padding: var(—spacing-md); flex-grow: 1; display: flex; flex-direction: column; align-items: center; }
.service-card__title { font-size: 1.2rem; margin-bottom: var(—spacing-sm); color: var(—color-primary); margin-top: var(—spacing-xs); }
.service-card__description { color: var(—color-text-muted); font-size: 0.9rem; flex-grow: 1; margin-bottom: var(—spacing-md); }
.service-card .btn { margin-top: auto; }
/* ==================== Why Us Section ==================== */
.why-us__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: var(—spacing-lg); margin-top: var(—spacing-xl); }
.why-us__item { background-color: var(—color-background-medium); padding: var(—spacing-lg); border-radius: var(—border-radius); text-align: center; border: 1px solid var(—color-border); transition: var(—transition-base); }
.why-us__item:hover { background-color: var(—color-background-light); transform: translateY(-5px); box-shadow: var(—box-shadow); }
.why-us__icon-img { height: 60px; width: auto; margin-bottom: var(—spacing-md); }
.why-us__title { font-size: 1.2rem; margin-bottom: var(—spacing-sm); color: var(—color-primary); }
.why-us__item p { color: var(—color-text-muted); font-size: 0.9rem; margin-bottom: 0; }
/* ==================== How We Work Section ==================== */
.how-work__steps { display: grid; gap: var(—spacing-lg); }
.how-work__steps—five { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
@media (min-width: 768px) and (max-width: 991px) { .how-work__steps—five { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 992px) and (max-width: 1199px) { .how-work__steps—five { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1200px) { .how-work__steps—five { grid-template-columns: repeat(5, 1fr); } }
@media (max-width: 575px) { .how-work__steps—five { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); } }
.how-work__step { background-color: var(—color-background-light); padding: var(—spacing-lg); border-radius: var(—border-radius); border: 1px solid var(—color-border); text-align: center; transition: var(—transition-base); }
.how-work__step:hover { transform: translateY(-3px); box-shadow: var(—box-shadow-sm); border-color: var(—color-accent); }
.how-work__icon { font-size: 2.5rem; color: var(—color-accent); margin-bottom: var(—spacing-md); display: block; }
.how-work__title { font-size: 1.1rem; margin-bottom: var(—spacing-xs); color: var(—color-primary); }
.how-work__step p { color: var(—color-text-muted); font-size: 0.85rem; margin-bottom: 0; }
/* ==================== Feature Section (Ремонт, Тюнинг, Катализаторы) ==================== */
.feature-section__container {
display: grid;
grid-template-columns: 1fr;
gap: var(—spacing-xl);
align-items: flex-start;
}
@media (min-width: 992px) {
.feature-section__container {
grid-template-columns: 1fr 1fr;
}
.feature-section__container—reversed .feature-section__image {
order: -1;
}
}
.feature-section__content p {
margin-bottom: var(—spacing-lg);
}
.feature-section__list {
list-style: none;
padding-left: 0;
margin-top: 0;
margin-bottom: var(—spacing-lg);
display: flex;
flex-direction: column;
gap: var(—spacing-md);
}
.feature-section__list-item {
display: flex;
align-items: flex-start;
gap: var(—spacing-sm);
padding: var(—spacing-sm);
border-radius: var(—border-radius-sm);
background-color: var(—color-background-medium);
border: 1px solid var(—color-border);
transition: var(—transition-base);
}
.feature-section__list-item:hover {
border-left: 3px solid var(—color-accent);
background-color: var(—color-background-light);
box-shadow: var(—box-shadow-sm);
transform: translateX(3px);
}
.feature-section__list-icon {
color: var(—color-accent);
margin-top: 0.2em;
flex-shrink: 0;
font-size: 0.9em;
}
.feature-section__list-text {
font-size: 0.95rem;
line-height: 1.6;
}
.feature-section__list-text .highlight {
font-weight: var(—font-weight-bold);
}
.feature-section__image img {
border-radius: var(—border-radius-lg);
box-shadow: var(—box-shadow);
width: 100%;
height: auto;
object-fit: cover;
max-height: 450px;
}
/* ==================== Gallery Section ==================== */
.gallery__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: var(—spacing-md); }
@media (min-width: 768px) { .gallery__grid { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(—spacing-lg); } }
.gallery__item { position: relative; overflow: hidden; border-radius: var(—border-radius); box-shadow: var(—box-shadow-sm); }
.gallery__item img { display: block; width: 100%; height: 250px; object-fit: cover; transition: transform 0.4s ease; }
.gallery__item a::after { content: ‘\f00e’; font-family: «Font Awesome 6 Free»; font-weight: 900; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%) scale(0.8); font-size: 2.5rem; color: var(—color-text-light); background-color: rgba(0, 0, 0, 0.5); width: 60px; height: 60px; border-radius: 50%; display: flex; align-items: center; justify-content: center; opacity: 0; transition: var(—transition-base); }
.gallery__item a:hover::after { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.gallery__item a:hover img { transform: scale(1.05); }
/* ==================== Brands Section ==================== */
.brands__grid {
display: grid;
gap: var(—spacing-md);
grid-template-columns: repeat(2, 1fr);
}
.brands__item {
text-align: center;
background: var(—color-background-light);
padding: var(—spacing-sm);
border-radius: var(—border-radius);
border: 1px solid var(—color-border);
display: flex;
align-items: center;
justify-content: center;
height: 70px;
filter: grayscale(100%);
opacity: 0.7;
transition: var(—transition-base);
}
.brands__item:hover {
filter: grayscale(0%);
opacity: 1;
transform: scale(1.05);
box-shadow: var(—box-shadow-sm);
}
.brands__item img {
max-height: 40px;
width: auto;
max-width: 100%;
}
@media (min-width: 576px) { .brands__grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 768px) { .brands__grid { grid-template-columns: repeat(4, 1fr); } .brands__item { height: 80px; padding: var(—spacing-md); } .brands__item img { max-height: 50px; } }
@media (min-width: 992px) { .brands__grid { grid-template-columns: repeat(5, 1fr); } }
@media (min-width: 1200px) { .brands__grid { grid-template-columns: repeat(6, 1fr); } }
/* ==================== Reviews Section ==================== */
.reviews-block { display: grid; grid-template-columns: 1fr; gap: var(—spacing-xl); }
@media (min-width: 992px) { .reviews-block { grid-template-columns: 300px 1fr; } }
.reviews-block__rating { display: flex; flex-direction: column; gap: var(—spacing-lg); background-color: var(—color-background-light); padding: var(—spacing-lg); border-radius: var(—border-radius); box-shadow: var(—box-shadow-sm); border: 1px solid var(—color-border); }
.rating-item { display: flex; align-items: center; gap: var(—spacing-md); border-bottom: 1px dashed var(—color-border); padding-bottom: var(—spacing-md); }
.rating-item:last-child { border-bottom: none; padding-bottom: 0; }
.rating-item img:first-child { height: 30px; width: auto; }
.rating-value { font-weight: var(—font-weight-bold); font-size: 1.1rem; color: var(—color-primary); margin-left: auto; display: inline-flex; align-items: center; gap: var(—spacing-xs); }
.rating-value img { height: 1em; width: auto; display: inline-block; vertical-align: baseline; }
.rating-link { font-size: 0.85rem; color: var(—color-accent); text-decoration: underline; margin-left: var(—spacing-sm); }
.rating-link:hover { color: var(—color-accent-hover); }
.reviews-block__quotes { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(—spacing-lg); }
.review-item { background-color: var(—color-background-light); border-radius: var(—border-radius); padding: var(—spacing-lg); border-left: 4px solid var(—color-accent); box-shadow: var(—box-shadow-sm); display: flex; flex-direction: column; border: 1px solid var(—color-border); }
.review-item__header { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(—spacing-md); }
.review-item__author { font-weight: var(—font-weight-bold); color: var(—color-primary); }
.review-item__rating { color: var(—color-accent); font-size: 1rem; letter-spacing: 1px; }
.review-item__text { font-style: italic; color: var(—color-text-dark); margin-bottom: 0; font-size: 0.95rem; position: relative; padding-left: var(—spacing-lg); flex-grow: 1; }
.review-item__text::before { content: ‘\f10d’; font-family: «Font Awesome 6 Free»; font-weight: 900; position: absolute; left: -5px; top: -5px; font-size: 1.5rem; color: var(—color-accent); opacity: 0.2; }
.review-item__text .highlight { font-weight: normal; background-color: rgba(242, 169, 0, 0.1); padding: 0.1em 0.3em; border-radius: var(—border-radius-sm); }
/* ==================== FAQ Section ==================== */
.faq__list { max-width: 850px; margin: var(—spacing-xl) auto 0; display: flex; flex-direction: column; gap: var(—spacing-sm); }
.faq__item { background-color: var(—color-background-light); border: 1px solid var(—color-border); border-radius: var(—border-radius); overflow: hidden; transition: border-color 0.3s ease; }
.faq__item[open] { border-color: var(—color-accent); }
.faq__question { display: flex; align-items: center; gap: var(—spacing-md); padding: var(—spacing-md) var(—spacing-lg); font-size: 1.05rem; font-weight: var(—font-weight-medium); cursor: pointer; list-style: none; width: 100%; color: var(—color-primary); transition: background-color 0.3s ease; }
.faq__item[open] .faq__question { background-color: rgba(242, 169, 0, 0.05); }
.faq__question::-webkit-details-marker { display: none; }
.faq__icon { color: var(—color-accent); font-size: 1rem; transition: transform 0.3s ease; flex-shrink: 0; }
.faq__item[open] .faq__question .faq__icon { transform: rotate(135deg); color: var(—color-secondary); }
.faq__answer { padding: 0 var(—spacing-lg) var(—spacing-lg) calc(var(—spacing-lg) + var(—spacing-md) + 1rem); font-size: 0.95rem; color: var(—color-text-muted); line-height: 1.7; margin: 0; }
.faq__answer a { text-decoration: underline; }
/* ==================== CTA Form Section ==================== */
.cta-form-section__form { background-color: rgba(255, 255, 255, 0.05); padding: var(—spacing-xl) var(—spacing-lg); border-radius: var(—border-radius-lg); border: 1px solid rgba(255, 255, 255, 0.1); margin-top: var(—spacing-xl); }
.cta-form-section__form .section__title,
.cta-form-section__form .section__subtitle { color: var(—color-text-light); }
.form__row { display: grid; grid-template-columns: 1fr; gap: var(—spacing-md); margin-bottom: var(—spacing-md); }
@media (min-width: 768px) { .form__row { grid-template-columns: 1fr 1fr; } }
.form__group—full { grid-column: 1 / -1; }
.form__group—message { margin-bottom: var(—spacing-md); }
.form__group—submit { margin-bottom: 0; text-align: center; }
.form__input, .form__textarea, .form__select { width: 100%; padding: 0.8rem 1rem; font-family: var(—font-family-base); font-size: 1rem; line-height: 1.5; color: var(—color-text-dark); background-color: var(—color-background-light); border: 1px solid var(—color-border); border-radius: var(—border-radius); transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }
.form__input::placeholder, .form__textarea::placeholder { color: var(—color-text-muted); opacity: 0.8; }
.form__input:focus, .form__textarea:focus, .form__select:focus { border-color: var(—color-accent); outline: 0; box-shadow: 0 0 0 3px rgba(242, 169, 0, 0.25); }
.form__select { appearance: none; background-image: url(«data:image/svg+xml,%3Csvg xmlns=’http://www.w3.org/2000/svg’ viewBox=’0 0 16 16’%3E%3Cpath fill=’none’ stroke=’%23333′ stroke-linecap=’round’ stroke-linejoin=’round’ stroke-width=’2′ d=’M2 5l6 6 6-6’/%3E%3C/svg%3E»); background-repeat: no-repeat; background-position: right 1rem center; background-size: 1em; padding-right: 2.5rem; }
.form__textarea { resize: vertical; min-height: 100px; }
.form__submit-btn { width: auto; min-width: 250px; }
.form__submit-btn:disabled { background-color: var(—color-text-muted); border-color: var(—color-text-muted); cursor: not-allowed; color: var(—color-background-medium); box-shadow: none; transform: none; }
.form__privacy { font-size: 0.8rem; text-align: center; margin-top: var(—spacing-md); color: rgba(245, 245, 245, 0.7); }
.form__privacy a { color: var(—color-text-light); text-decoration: underline; }
.form__privacy a:hover { color: var(—color-accent); }
.form__message { margin-top: var(—spacing-md); padding: var(—spacing-sm) var(—spacing-md); border-radius: var(—border-radius); font-size: 0.9rem; text-align: center; display: none; }
.form__message.success { background-color: var(—color-success); color: var(—color-text-light); display: block; }
.form__message.error { background-color: var(—color-error); color: var(—color-text-light); display: block; }
/* ==================== Contacts Section ==================== */
.contacts { position: relative; background-size: cover; background-position: center; color: var(—color-text-light); }
.contacts__overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(26, 46, 64, 0.85); z-index: 1; }
.contacts__container { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr; gap: var(—spacing-xl); align-items: center; padding-top: var(—spacing-xl); padding-bottom: var(—spacing-xl); }
@media (min-width: 992px) { .contacts__container { grid-template-columns: 1fr 1fr; } }
.contacts__info .section__title { margin-bottom: var(—spacing-lg); }
.contacts__item { display: flex; align-items: flex-start; gap: var(—spacing-md); margin-bottom: var(—spacing-lg); }
.contacts__icon { font-size: 1.5rem; color: var(—color-accent); width: 25px; text-align: center; flex-shrink: 0; margin-top: 0.1em; }
.contacts__item strong { display: block; margin-bottom: var(—spacing-xs); font-weight: var(—font-weight-medium); }
.contacts__link { color: var(—color-text-light); text-decoration: underline; }
.contacts__link:hover { color: var(—color-accent); }
.contacts__cta { margin-top: var(—spacing-lg); } /* .btn—light применен в HTML */
.contacts__map { text-align: center; }
.contacts__map img { border-radius: var(—border-radius); box-shadow: var(—box-shadow); max-width: 100%; height: auto; border: 3px solid var(—color-accent); }
.contacts__map-link { display: inline-block; margin-top: var(—spacing-md); color: var(—color-accent); text-decoration: underline; font-weight: var(—font-weight-medium); }
.contacts__map-link:hover { color: var(—color-text-light); }
/* ==================== FOOTER ==================== */
.footer { background-color: var(—color-background-footer); padding-top: var(—spacing-xl); color: var(—color-text-muted); }
.footer__container { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: var(—spacing-xl); padding-bottom: var(—spacing-xl); }
.footer__column—about { grid-column: span 1; }
@media (min-width: 992px) { .footer__column—about { grid-column: span 2; } }
.footer__logo img { max-height: 50px; width: auto; margin-bottom: var(—spacing-md); }
.footer__description { font-size: 0.9rem; line-height: 1.7; margin-bottom: var(—spacing-md); }
.footer__socials { display: flex; gap: var(—spacing-md); }
.footer__social-link { color: var(—color-text-muted); font-size: 1.5rem; transition: var(—transition-base); }
.footer__social-link:hover { color: var(—color-accent); transform: translateY(-2px); }
.footer__title { font-size: 1.1rem; color: var(—color-text-light); margin-bottom: var(—spacing-lg); font-family: var(—font-family-headings); text-transform: uppercase; letter-spacing: 1px; }
.footer__list { display: flex; flex-direction: column; gap: var(—spacing-sm); }
.footer__link { color: var(—color-text-muted); font-size: 0.95rem; transition: var(—transition-base); display: inline-block; position: relative; padding-left: 0; }
.footer__link::before { content: »; }
.footer__link:hover { color: var(—color-accent); padding-left: 10px; }
.footer__link:hover::before { content: ‘»’; position: absolute; left: 0; opacity: 1; color: var(—color-accent); }
.footer__list—contacts li { display: flex; align-items: flex-start; gap: var(—spacing-sm); font-size: 0.95rem; margin-bottom: var(—spacing-xs); }
.footer__list—contacts .footer__link { padding-left: 0; }
.footer__list—contacts .footer__link:hover { padding-left: 0; color: var(—color-accent); }
.footer__contact-icon { color: var(—color-accent); width: 16px; text-align: center; margin-top: 0.2em; }
.footer__bottom { background-color: rgba(0, 0, 0, 0.2); padding: var(—spacing-md) 0; text-align: center; }
.footer__copyright { font-size: 0.85rem; color: var(—color-text-muted); margin: 0; }
/* ==================== BACK TO TOP Button ==================== */
.back-to-top { position: fixed; bottom: 1.5rem; right: 1.5rem; background-color: var(—color-accent); color: var(—color-primary); width: 40px; height: 40px; border-radius: 50%; display: flex; justify-content: center; align-items: center; font-size: 1rem; box-shadow: var(—box-shadow-accent); z-index: var(—z-index-back-to-top); opacity: 0; visibility: hidden; transform: translateY(10px); transition: var(—transition-base); }
.back-to-top.show { opacity: 1; visibility: visible; transform: translateY(0); }
.back-to-top:hover { background-color: var(—color-accent-hover); transform: translateY(-3px); }
document.addEventListener(‘DOMContentLoaded’, () => {
‘use strict’;
// — Функции Хедера —
const header = document.getElementById(‘header’);
const body = document.body;
function getHeaderHeight() {
return header ? header.offsetHeight : 0;
}
function adjustBodyPadding() {
const headerHeight = getHeaderHeight();
body.style.paddingTop = `${headerHeight}px`;
}
function scrollHeader() {
if (!header) return;
const isScrolled = window.scrollY >= 50;
header.classList.toggle(‘scrolled’, isScrolled);
adjustBodyPadding();
}
adjustBodyPadding();
window.addEventListener(‘resize’, adjustBodyPadding);
window.addEventListener(‘scroll’, scrollHeader);
// — Плавная прокрутка —
const smoothScrollLinks = document.querySelectorAll(‘a.scroll-link[href^=»#»]’);
smoothScrollLinks.forEach(link => {
link.addEventListener(‘click’, function (e) {
e.preventDefault();
const targetId = this.getAttribute(‘href’).substring(1);
const targetElement = document.getElementById(targetId);
if (targetElement) {
if (isMenuOpen) {
toggleMobileMenu();
}
const offsetTop = targetElement.getBoundingClientRect().top + window.pageYOffset — getHeaderHeight();
window.scrollTo({
top: offsetTop,
behavior: ‘smooth’
});
}
});
});
// — Анимация при скролле —
const animatedElements = document.querySelectorAll(‘.animate-on-scroll’);
if (animatedElements.length > 0) {
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add(‘is-visible’);
}
});
}, { threshold: 0.1 });
animatedElements.forEach(element => observer.observe(element));
}
// — Бургер-меню —
const navMenu = document.getElementById(‘nav-menu’);
const navToggle = document.getElementById(‘nav-toggle’);
const navClose = document.getElementById(‘nav-close’);
let isMenuOpen = false;
const toggleMobileMenu = () => {
if (navMenu && body) {
isMenuOpen = !isMenuOpen;
navMenu.classList.toggle(‘show-menu’, isMenuOpen);
body.classList.toggle(‘no-scroll’, isMenuOpen);
}
};
if (navToggle) navToggle.addEventListener(‘click’, toggleMobileMenu);
if (navClose) navClose.addEventListener(‘click’, toggleMobileMenu);
document.addEventListener(‘click’, (event) => {
const isClickInsideMenu = navMenu && navMenu.contains(event.target);
const isClickOnToggle = navToggle && navToggle.contains(event.target);
if (isMenuOpen && !isClickInsideMenu && !isClickOnToggle) {
toggleMobileMenu();
}
});
// — Кнопка «Наверх» —
const backToTopButton = document.getElementById(‘back-to-top’);
const scrollFunction = () => {
if (!backToTopButton) return;
const show = document.body.scrollTop > 300 || document.documentElement.scrollTop > 300;
backToTopButton.classList.toggle(‘show’, show);
};
window.addEventListener(‘scroll’, scrollFunction);
if (backToTopButton) {
backToTopButton.addEventListener(‘click’, (e) => {
e.preventDefault();
window.scrollTo({ top: 0, behavior: ‘smooth’ });
});
}
// — Обновление года в футере —
const currentYearSpan = document.getElementById(‘current-year’);
if (currentYearSpan) {
currentYearSpan.textContent = new Date().getFullYear();
}
// — Обработка формы —
const ctaForm = document.getElementById(‘main-contact-form’);
const ctaSubmitButton = document.getElementById(‘cta-submit-btn’);
const ctaFormMessage = document.getElementById(‘cta-form-message’);
function showFormMessage(message, type = ‘success’) {
if (ctaFormMessage) {
ctaFormMessage.textContent = message;
ctaFormMessage.className = `form__message ${type}`;
ctaFormMessage.style.display = ‘block’;
}
}
function resetButtonState() {
if (ctaSubmitButton) {
ctaSubmitButton.disabled = false;
ctaSubmitButton.textContent = ‘Отправить Заявку’;
}
}
if (ctaForm && ctaSubmitButton && ctaFormMessage) {
ctaForm.addEventListener(‘submit’, function(event) {
event.preventDefault();
ctaSubmitButton.disabled = true;
ctaSubmitButton.textContent = ‘Отправка…’;
ctaFormMessage.style.display = ‘none’;
ctaFormMessage.className = ‘form__message’;
const formData = new FormData(ctaForm);
const data = Object.fromEntries(formData.entries());
if (!data.name || !data.phone) {
showFormMessage(‘Пожалуйста, заполните обязательные поля (*).’, ‘error’);
resetButtonState();
return;
}
console.log(‘Данные формы:’, data);
setTimeout(() => {
const isSuccess = Math.random() > 0.1;
if (isSuccess) {
showFormMessage(‘Спасибо! Ваша заявка успешно отправлена.’, ‘success’);
ctaForm.reset();
} else {
showFormMessage(‘Произошла ошибка при отправке. Попробуйте еще раз.’, ‘error’);
}
resetButtonState();
}, 1500);
});
}
// — Логика FAQ —
const faqItems = document.querySelectorAll(‘.faq__item’);
faqItems.forEach(item => {
const summary = item.querySelector(‘.faq__question’);
if (summary) {
summary.addEventListener(‘click’, (e) => {
if (!item.hasAttribute(‘open’)) {
faqItems.forEach(otherItem => {
if (otherItem !== item && otherItem.hasAttribute(‘open’)) {
otherItem.removeAttribute(‘open’);
}
});
}
});
}
});
// if (typeof Fancybox !== ‘undefined’) {
// Fancybox.bind(«[data-fancybox=’gallery’]», {});
// }
});