<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Профессиональные сантехнические услуги - СантехМастер</title>
<style>
/* Основные стили */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
background-color: #f5f7fa;
color: #333;
line-height: 1.6;
}
.container {
width: 100%;
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
/* Шапка сайта */
header {
background: linear-gradient(135deg, #1e5799 0%, #207cca 100%);
color: white;
padding: 15px 0;
position: sticky;
top: 0;
z-index: 100;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
.header-content {
display: flex;
justify-content: space-between;
align-items: center;
}
.logo {
display: flex;
align-items: center;
}
.logo h1 {
font-size: 24px;
margin-left: 10px;
}
.logo-icon {
font-size: 32px;
}
nav ul {
display: flex;
list-style: none;
}
nav ul li {
margin-left: 25px;
}
nav ul li a {
color: white;
text-decoration: none;
font-weight: 500;
transition: all 0.3s ease;
}
nav ul li a:hover {
color: #ffd700;
}
.contacts {
text-align: right;
}
.phone {
font-size: 20px;
font-weight: bold;
margin-bottom: 5px;
}
.callback-btn {
background: #ffd700;
color: #1e5799;
border: none;
padding: 8px 15px;
border-radius: 30px;
font-weight: bold;
cursor: pointer;
transition: all 0.3s ease;
}
.callback-btn:hover {
background: #ffc400;
transform: translateY(-2px);
}
/* Герой-секция */
.hero {
background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><rect width="100" height="100" fill="%231e5799"/><path d="M0 0L100 100M100 0L0 100" stroke="%23207cca" stroke-width="1"/></svg>') center/cover;
color: white;
padding: 100px 0;
text-align: center;
position: relative;
}
.hero-content {
max-width: 800px;
margin: 0 auto;
}
.hero h2 {
font-size: 48px;
margin-bottom: 20px;
text-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.hero p {
font-size: 20px;
margin-bottom: 30px;
}
.cta-button {
background: #ffd700;
color: #1e5799;
border: none;
padding: 15px 40px;
border-radius: 50px;
font-size: 18px;
font-weight: bold;
cursor: pointer;
transition: all 0.3s ease;
box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}
.cta-button:hover {
background: #ffc400;
transform: translateY(-3px);
box-shadow: 0 6px 15px rgba(0,0,0,0.3);
}
/* Секция услуг */
.services {
padding: 80px 0;
background-color: white;
}
.section-title {
text-align: center;
margin-bottom: 50px;
}
.section-title h2 {
font-size: 36px;
color: #1e5799;
position: relative;
display: inline-block;
padding-bottom: 15px;
}
.section-title h2::after {
content: '';
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
width: 80px;
height: 3px;
background: #ffd700;
}
.services-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 30px;
}
.service-card {
background: white;
border-radius: 10px;
overflow: hidden;
box-shadow: 0 5px 15px rgba(0,0,0,0.1);
transition: transform 0.3s ease;
}
.service-card:hover {
transform: translateY(-10px);
}
.service-icon {
background: #1e5799;
color: white;
font-size: 40px;
text-align: center;
padding: 25px;
}
.service-content {
padding: 25px;
}
.service-content h3 {
color: #1e5799;
margin-bottom: 15px;
}
.price {
color: #ff6b6b;
font-weight: bold;
font-size: 20px;
margin: 15px 0;
}
/* Секция преимуществ */
.benefits {
padding: 80px 0;
background: linear-gradient(to bottom, #f0f8ff, #e6f7ff);
}
.benefits-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 30px;
}
.benefit-item {
text-align: center;
padding: 30px 20px;
background: white;
border-radius: 10px;
box-shadow: 0 5px 15px rgba(0,0,0,0.05);
}
.benefit-icon {
font-size: 40px;
color: #1e5799;
margin-bottom: 20px;
}
/* Секция отзывов */
.testimonials {
padding: 80px 0;
background-color: white;
}
.testimonials-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
gap: 30px;
}
.testimonial-card {
background: #f9f9f9;
border-radius: 10px;
padding: 30px;
position: relative;
box-shadow: 0 5px 15px rgba(0,0,0,0.05);
}
.testimonial-card::before {
content: '"';
position: absolute;
top: 20px;
left: 20px;
font-size: 60px;
color: #ffd700;
opacity: 0.3;
font-family: serif;
}
.client-info {
display: flex;
align-items: center;
margin-top: 20px;
}
.client-info img {
width: 50px;
height: 50px;
border-radius: 50%;
margin-right: 15px;
object-fit: cover;
}
/* Форма заявки */
.contact-form {
padding: 80px 0;
background: linear-gradient(135deg, #1e5799 0%, #207cca 100%);
color: white;
}
.form-container {
max-width: 600px;
margin: 0 auto;
background: rgba(255, 255, 255, 0.1);
padding: 40px;
border-radius: 10px;
backdrop-filter: blur(10px);
}
.form-container h2 {
text-align: center;
margin-bottom: 30px;
}
.form-group {
margin-bottom: 20px;
}
.form-group label {
display: block;
margin-bottom: 8px;
}
.form-group input,
.form-group textarea {
width: 100%;
padding: 12px;
border-radius: 5px;
border: 1px solid rgba(255,255,255,0.2);
background: rgba(255,255,255,0.1);
color: white;
font-size: 16px;
}
.form-group input::placeholder,
.form-group textarea::placeholder {
color: rgba(255,255,255,0.6);
}
.submit-btn {
width: 100%;
padding: 15px;
background: #ffd700;
color: #1e5799;
border: none;
border-radius: 5px;
font-size: 18px;
font-weight: bold;
cursor: pointer;
transition: all 0.3s ease;
}
.submit-btn:hover {
background: #ffc400;
}
/* Игра в футере */
.game-section {
background: #222;
padding: 20px 0;
text-align: center;
}
.game-container {
max-width: 600px;
margin: 0 auto;
padding: 20px;
}
.game-title {
color: white;
margin-bottom: 15px;
}
.game-description {
color: #aaa;
margin-bottom: 20px;
}
#gameCanvas {
background: #333;
border-radius: 5px;
display: block;
margin: 0 auto;
border: 2px solid #ffd700;
}
.game-controls {
margin-top: 15px;
color: #ddd;
}
/* Подвал */
footer {
background: #111;
color: #aaa;
padding: 30px 0;
text-align: center;
}
.footer-content {
display: flex;
flex-direction: column;
align-items: center;
}
.copyright {
margin-top: 20px;
}
/* Адаптивность */
@media (max-width: 768px) {
.header-content {
flex-direction: column;
text-align: center;
}
nav ul {
margin: 20px 0;
}
nav ul li {
margin: 0 10px;
}
.contacts {
text-align: center;
}
.hero h2 {
font-size: 36px;
}
.hero p {
font-size: 18px;
}
}
</style>
</head>
<body>
<!-- Шапка сайта -->
<header>
<div class="container">
<div class="header-content">
<div class="logo">
<div class="logo-icon">🚰</div>
<h1>СантехМастер</h1>
</div>
<nav>
<ul>
<li><a href="#services">Услуги</a></li>
<li><a href="#benefits">Преимущества</a></li>
<li><a href="#testimonials">Отзывы</a></li>
<li><a href="#contact">Контакты</a></li>
</ul>
</nav>
<div class="contacts">
<div class="phone">+7 (999) 123-45-67</div>
<button class="callback-btn">Заказать звонок</button>
</div>
</div>
</div>
</header>
<!-- Герой-секция -->
<section class="hero">
<div class="container">
<div class="hero-content">
<h2>Профессиональные сантехнические услуги</h2>
<p>Быстрое решение любых проблем с сантехникой, отоплением и канализацией. Работаем 24/7 с гарантией качества!</p>
<button class="cta-button">Вызвать мастера</button>
</div>
</div>
</section>
<!-- Секция услуг -->
<section id="services" class="services">
<div class="container">
<div class="section-title">
<h2>Наши услуги</h2>
</div>
<div class="services-grid">
<div class="service-card">
<div class="service-icon">🚿</div>
<div class="service-content">
<h3>Устранение протечек</h3>
<p>Оперативное устранение протечек труб, кранов, радиаторов и других сантехнических элементов.</p>
<div class="price">от 1500 руб.</div>
</div>
</div>
<div class="service-card">
<div class="service-icon">🔧</div>
<div class="service-content">
<h3>Установка сантехники</h3>
<p>Профессиональный монтаж унитазов, раковин, смесителей, душевых кабин и другой сантехники.</p>
<div class="price">от 2500 руб.</div>
</div>
</div>
<div class="service-card">
<div class="service-icon">💧</div>
<div class="service-content">
<h3>Прочистка засоров</h3>
<p>Эффективная прочистка канализационных труб и устранение засоров любой сложности.</p>
<div class="price">от 2000 руб.</div>
</div>
</div>
<div class="service-card">
<div class="service-icon">🔥</div>
<div class="service-content">
<h3>Ремонт отопления</h3>
<p>Установка, замена и ремонт радиаторов отопления, труб и других элементов системы.</p>
<div class="price">от 3000 руб.</div>
</div>
</div>
<div class="service-card">
<div class="service-icon">🚽</div>
<div class="service-content">
<h3>Замена канализации</h3>
<p>Полная или частичная замена канализационных труб, стояков и других элементов системы.</p>
<div class="price">от 4500 руб.</div>
</div>
</div>
<div class="service-card">
<div class="service-icon">🛠️</div>
<div class="service-content">
<h3>Аварийный ремонт</h3>
<p>Круглосуточный выезд мастера для устранения аварийных ситуаций в сантехнике.</p>
<div class="price">от 3000 руб.</div>
</div>
</div>
</div>
</div>
</section>
<!-- Секция преимуществ -->
<section id="benefits" class="benefits">
<div class="container">
<div class="section-title">
<h2>Почему выбирают нас</h2>
</div>
<div class="benefits-grid">
<div class="benefit-item">
<div class="benefit-icon">⏱️</div>
<h3>Быстрый выезд</h3>
<p>Мастер приедет в течение 60 минут после вашего звонка</p>
</div>
<div class="benefit-item">
<div class="benefit-icon">🎯</div>
<h3>Опытные мастера</h3>
<p>Работают специалисты с опытом от 5 лет</p>
</div>
<div class="benefit-item">
<div class="benefit-icon">🔒</div>
<h3>Гарантия качества</h3>
<p>Гарантия на все виды работ до 2 лет</p>
</div>
<div class="benefit-item">
<div class="benefit-icon">💲</div>
<h3>Фиксированные цены</h3>
<p>Цена оговаривается до начала работ и не меняется</p>
</div>
</div>
</div>
</section>
<!-- Секция отзывов -->
<section id="testimonials" class="testimonials">
<div class="container">
<div class="section-title">
<h2>Отзывы клиентов</h2>
</div>
<div class="testimonials-grid">
<div class="testimonial-card">
<p>Вызвал мастера ночью из-за прорыва трубы. Приехал через 40 минут, быстро все починил. Цена соответствовала озвученной по телефону. Очень доволен оперативностью и качеством работы!</p>
<div class="client-info">
<div style="background: #1e5799; width: 50px; height: 50px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: white; font-weight: bold;">ИП</div>
<div>
<h4>Иван Петров</h4>
<p>Москва, 12 мая 2023</p>
</div>
</div>
</div>
<div class="testimonial-card">
<p>Заказывала установку новой душевой кабины. Мастер приехал точно в назначенное время, аккуратно выполнил работу, убрал за собой. Качеством довольна, цена адекватная. Буду рекомендовать знакомым!</p>
<div class="client-info">
<div style="background: #ff6b6b; width: 50px; height: 50px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: white; font-weight: bold;">ОС</div>
<div>
<h4>Ольга Сидорова</h4>
<p>Московская обл., 28 апреля 2023</p>
</div>
</div>
</div>
<div class="testimonial-card">
<p>Проблема с канализацией в частном доме. Долго не мог найти специалистов, которые могли бы качественно решить проблему. Эти ребята приехали с необходимым оборудованием, прочистили засор, дали гарантию. Спасибо!</p>
<div class="client-info">
<div style="background: #ffd700; width: 50px; height: 50px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #1e5799; font-weight: bold;">АК</div>
<div>
<h4>Алексей Козлов</h4>
<p>Подольск, 3 мая 2023</p>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Форма заявки -->
<section id="contact" class="contact-form">
<div class="container">
<div class="form-container">
<h2>Оставьте заявку</h2>
<form>
<div class="form-group">
<label for="name">Ваше имя</label>
<input type="text" id="name" placeholder="Иван Иванов" required>
</div>
<div class="form-group">
<label for="phone">Телефон</label>
<input type="tel" id="phone" placeholder="+7 (999) 999-99-99" required>
</div>
<div class="form-group">
<label for="service">Услуга</label>
<select id="service" style="width: 100%; padding: 12px; border-radius: 5px; border: 1px solid rgba(255,255,255,0.2); background: rgba(255,255,255,0.1); color: white; font-size: 16px;">
<option value="">Выберите услугу</option>
<option value="leak">Устранение протечек</option>
<option value="installation">Установка сантехники</option>
<option value="cleaning">Прочистка засоров</option>
<option value="heating">Ремонт отопления</option>
<option value="sewer">Замена канализации</option>
<option value="emergency">Аварийный ремонт</option>
</select>
</div>
<div class="form-group">
<label for="message">Сообщение (необязательно)</label>
<textarea id="message" rows="3" placeholder="Опишите вашу проблему..."></textarea>
</div>
<button type="submit" class="submit-btn">Вызвать мастера</button>
</form>
</div>
</div>
</section>
<!-- Игра в футере -->
<section class="game-section">
<div class="container">
<div class="game-container">
<h3 class="game-title">Игра "Сантехник"</h3>
<p class="game-description">Помогите сантехнику перепрыгнуть протечки! Нажмите пробел, чтобы прыгнуть.</p>
<canvas id="gameCanvas" width="600" height="150"></canvas>
<p class="game-controls">Управление: пробел или стрелка вверх для прыжка</p>
</div>
</div>
</section>
<!-- Подвал -->
<footer>
<div class="container">
<div class="footer-content">
<div class="logo">
<div class="logo-icon">🚰</div>
<h1 style="color: #ddd;">СантехМастер</h1>
</div>
<div class="contacts">
<div class="phone">+7 (999) 123-45-67</div>
<p>Круглосуточно, без выходных</p>
</div>
<div class="copyright">
<p>© 2023 СантехМастер. Все права защищены.</p>
</div>
</div>
</div>
</footer>
<script>
// Игра "Сантехник"
document.addEventListener('DOMContentLoaded', function() {
const canvas = document.getElementById('gameCanvas');
const ctx = canvas.getContext('2d');
// Размеры персонажа
const plumberWidth = 30;
const plumberHeight = 50;
const plumberX = 50;
let plumberY = canvas.height - plumberHeight - 10;
// Переменные для прыжка
let isJumping = false;
let jumpPower = 0;
const gravity = 0.6;
const jumpStrength = 12;
// Препятствия (протечки)
let leaks = [];
const leakWidth = 20;
const leakHeight = 30;
let leakSpeed = 5;
let leakInterval = 1500; // миллисекунды
let lastLeakTime = 0;
// Игровые переменные
let score = 0;
let gameSpeed = 1;
let gameRunning = false;
// Изображения
const plumberImg = new Image();
plumberImg.src = 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 50"><rect width="30" height="50" fill="%231e5799"/><circle cx="15" cy="15" r="10" fill="%23ffd700"/><rect x="10" y="25" width="10" height="20" fill="%23ffd700"/></svg>';
const leakImg = new Image();
leakImg.src = 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 30"><path d="M10 0 Q15 10 10 20 Q5 30 10 30 Q15 30 10 20 Q5 10 10 0" fill="%23ff6b6b"/></svg>';
// Управление
document.addEventListener('keydown', function(event) {
if ((event.code === 'Space' || event.key === 'ArrowUp') && !isJumping && gameRunning) {
isJumping = true;
jumpPower = jumpStrength;
}
// Запуск игры при нажатии пробела
if (!gameRunning && (event.code === 'Space' || event.key === 'ArrowUp')) {
startGame();
}
});
// Функция запуска игры
function startGame() {
gameRunning = true;
score = 0;
leaks = [];
plumberY = canvas.height - plumberHeight - 10;
gameSpeed = 1;
leakSpeed = 5;
leakInterval = 1500;
lastLeakTime = 0;
gameLoop();
}
// Главный игровой цикл
function gameLoop(timestamp) {
if (!gameRunning) return;
ctx.clearRect(0, 0, canvas.width, canvas.height);
// Отрисовка земли
ctx.fillStyle = '#555';
ctx.fillRect(0, canvas.height - 10, canvas.width, 10);
// Отрисовка сантехника
ctx.drawImage(plumberImg, plumberX, plumberY, plumberWidth, plumberHeight);
// Физика прыжка
if (isJumping) {
plumberY -= jumpPower;
jumpPower -= gravity;
if (plumberY >= canvas.height - plumberHeight - 10) {
plumberY = canvas.height - plumberHeight - 10;
isJumping = false;
}
}
// Создание новых протечек
if (timestamp - lastLeakTime > leakInterval) {
leaks.push({
x: canvas.width,
y: canvas.height - leakHeight - 10,
width: leakWidth,
height: leakHeight
});
lastLeakTime = timestamp;
// Увеличение сложности
if (leakInterval > 800) {
leakInterval -= 10;
}
if (leakSpeed < 10) {
leakSpeed += 0.1;
}
}
// Отрисовка и движение протечек
for (let i = 0; i < leaks.length; i++) {
const leak = leaks[i];
leak.x -= leakSpeed;
ctx.drawImage(leakImg, leak.x, leak.y, leak.width, leak.height);
// Удаление протечек, вышедших за экран
if (leak.x + leak.width < 0) {
leaks.splice(i, 1);
i--;
score++;
continue;
}
// Проверка столкновений
if (
plumberX < leak.x + leak.width &&
plumberX + plumberWidth > leak.x &&
plumberY < leak.y + leak.height &&
plumberY + plumberHeight > leak.y
) {
gameOver();
return;
}
}
// Отрисовка счета
ctx.fillStyle = 'white';
ctx.font = '20px Arial';
ctx.fillText('Счет: ' + score, 20, 30);
requestAnimationFrame(gameLoop);
}
// Функция завершения игры
function gameOver() {
gameRunning = false;
ctx.fillStyle = 'rgba(0, 0, 0, 0.7)';
ctx.fillRect(0, 0, canvas.width, canvas.height);
ctx.fillStyle = 'white';
ctx.font = '30px Arial';
ctx.textAlign = 'center';
ctx.fillText('Игра окончена!', canvas.width / 2, canvas.height / 2 - 20);
ctx.font = '24px Arial';
ctx.fillText('Ваш счет: ' + score, canvas.width / 2, canvas.height / 2 + 20);
ctx.font = '18px Arial';
ctx.fillText('Нажмите пробел, чтобы играть снова', canvas.width / 2, canvas.height / 2 + 60);
}
// Начальная отрисовка экрана приветствия
drawWelcomeScreen();
function drawWelcomeScreen() {
ctx.fillStyle = '#333';
ctx.fillRect(0, 0, canvas.width, canvas.height);
ctx.fillStyle = 'white';
ctx.font = '24px Arial';
ctx.textAlign = 'center';
ctx.fillText('Игра "Сантехник"', canvas.width / 2, canvas.height / 2 - 30);
ctx.font = '18px Arial';
ctx.fillText('Нажмите пробел или стрелку вверх, чтобы начать', canvas.width / 2, canvas.height / 2 + 20);
ctx.fillStyle = '#ffd700';
ctx.font = '16px Arial';
ctx.fillText('Перепрыгивайте протечки воды!', canvas.width / 2, canvas.height / 2 + 60);
}
});
</script>
</body>
</html>