25 Commits

Author SHA1 Message Date
382afe7694 style: update base scss styles 2026-06-02 18:04:42 +03:00
d426e3cb3e Merge pull request 'feat: added review block' (#16) from style/edit into main
All checks were successful
Deploy Olimparena / deploy (push) Successful in 41s
Reviewed-on: #16
2026-05-27 12:53:28 +00:00
Ignat Karelov
98f3d12455 feat: added review block 2026-05-27 15:53:03 +03:00
288f028235 Merge pull request 'style/edit' (#15) from style/edit into main
All checks were successful
Deploy Olimparena / deploy (push) Successful in 18s
Reviewed-on: #15
2026-05-27 10:57:44 +00:00
Ignat Karelov
7ce71ffa33 style; change hero block 2026-05-27 13:54:55 +03:00
Ignat Karelov
1f8cb4e8c5 style: change blocks 2026-05-27 13:53:32 +03:00
1707f05f7a Merge pull request 'style: edit texts' (#14) from style/edit into main
All checks were successful
Deploy Olimparena / deploy (push) Successful in 15s
Reviewed-on: #14
2026-05-22 12:08:41 +00:00
Ignat Karelov
429af5fa0f style: edit texts 2026-05-22 15:06:58 +03:00
9903a824a5 Merge pull request 'feat: added new blocks/form changed' (#13) from style/edit into main
All checks were successful
Deploy Olimparena / deploy (push) Successful in 15s
Reviewed-on: #13
2026-05-22 11:01:44 +00:00
Ignat Karelov
e75a56cd9e feat: added new blocks/form changed 2026-05-22 13:59:25 +03:00
09a407d456 Merge pull request 'style: chaged blocks' (#12) from style/edit-blocks into main
All checks were successful
Deploy Olimparena / deploy (push) Successful in 15s
Reviewed-on: #12
2026-05-15 11:29:35 +00:00
Ignat Karelov
a72a42031a style: chaged blocks 2026-05-15 14:29:01 +03:00
29d81800ce Merge pull request 'style: change appearance of object cards' (#10) from feature/price-block into main
All checks were successful
Deploy Olimparena / deploy (push) Successful in 14s
Reviewed-on: #10
2026-05-13 11:18:31 +00:00
Ignat Karelov
ae1cc39fd1 style: change appearance of object cards 2026-05-13 14:16:19 +03:00
0892a4392d Merge pull request 'feature/price-block' (#9) from feature/price-block into main
All checks were successful
Deploy Olimparena / deploy (push) Successful in 14s
Reviewed-on: #9
2026-05-13 11:14:52 +00:00
Ignat Karelov
a2127549ac feat: added new pricing block 2026-05-13 14:14:26 +03:00
Ignat Karelov
acd36fce34 Merge branch 'main' of https://git.aiconversion.ru/adcovn/olimparena into feature/price-block 2026-05-13 14:10:41 +03:00
86fca87b87 Merge pull request 'style: changing appearance of blocks' (#8) from style/edit-text into main
All checks were successful
Deploy Olimparena / deploy (push) Successful in 16s
Reviewed-on: #8
2026-05-13 11:10:38 +00:00
Ignat Karelov
a54df15979 Merge branch 'main' of https://git.aiconversion.ru/adcovn/olimparena into feature/price-block 2026-05-13 14:10:06 +03:00
Ignat Karelov
8a402c2fd2 style: changing appearance of blocks 2026-05-13 00:47:32 +03:00
67753a3aa6 Merge pull request 'style/edit-text' (#7) from style/edit-text into main
All checks were successful
Deploy Olimparena / deploy (push) Successful in 48s
Reviewed-on: #7
2026-05-12 21:32:27 +00:00
Ignat Karelov
bcbab99a7c style: edit texts 2026-05-13 00:31:52 +03:00
Ignat Karelov
c26e67446f style: edit texts 2026-05-13 00:28:22 +03:00
459e9c1357 Merge pull request 'style: change images' (#6) from style/change-images into main
All checks were successful
Deploy Olimparena / deploy (push) Successful in 13s
Reviewed-on: #6
2026-04-24 09:56:59 +00:00
b44e2013e4 style: change images 2026-04-24 12:56:22 +03:00
26 changed files with 2145 additions and 320 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 927 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 609 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 310 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 242 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 211 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 287 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 231 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 375 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 471 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 428 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

View File

@@ -43,4 +43,37 @@
<path d="M20 4H4C2.89543 4 2 4.89543 2 6V18C2 19.1046 2.89543 20 4 20H20C21.1046 20 22 19.1046 22 18V6C22 4.89543 21.1046 4 20 4Z" stroke="#CF1717" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M20 4H4C2.89543 4 2 4.89543 2 6V18C2 19.1046 2.89543 20 4 20H20C21.1046 20 22 19.1046 22 18V6C22 4.89543 21.1046 4 20 4Z" stroke="#CF1717" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M22 7L13.03 12.7C12.7213 12.8934 12.3643 12.996 12 12.996C11.6357 12.996 11.2787 12.8934 10.97 12.7L2 7" stroke="#CF1717" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M22 7L13.03 12.7C12.7213 12.8934 12.3643 12.996 12 12.996C11.6357 12.996 11.2787 12.8934 10.97 12.7L2 7" stroke="#CF1717" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</symbol> </symbol>
<symbol id="icon-time" viewBox="0 0 24 24" fill="none">
<circle cx="12" cy="12" r="9" stroke="#CF1717" stroke-width="2"/>
<path d="M12 7V12L15 14" stroke="#CF1717" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</symbol>
<symbol id="icon-whatsapp" viewBox="0 0 24 24" fill="none">
<path d="M20.521 3.479A11.91 11.91 0 0012.037 0C5.488 0 .137 5.35.137 11.9c0 2.096.548 4.141 1.588 5.946L0 24l6.307-1.66a11.844 11.844 0 005.73 1.46h.005c6.549 0 11.9-5.35 11.9-11.9a11.833 11.833 0 00-3.421-8.421zm-8.484 18.31h-.004a9.86 9.86 0 01-5.018-1.371l-.36-.213-3.742.984.998-3.646-.234-.374a9.88 9.88 0 01-1.51-5.27c.002-5.457 4.442-9.896 9.904-9.896a9.83 9.83 0 017.01 2.903 9.833 9.833 0 012.89 6.997c-.003 5.458-4.443 9.886-9.934 9.886z" fill="currentColor"/>
<path d="M17.457 14.572c-.298-.15-1.764-.87-2.037-.968-.273-.1-.472-.15-.67.15-.198.298-.768.968-.943 1.166-.174.2-.347.224-.645.075-.298-.149-1.257-.463-2.395-1.477-.885-.788-1.483-1.762-1.657-2.06-.174-.299-.019-.46.131-.61.135-.134.298-.348.447-.521.15-.174.199-.299.299-.498.099-.199.05-.373-.025-.523-.075-.149-.67-1.614-.918-2.211-.241-.58-.486-.502-.67-.511-.174-.008-.372-.01-.57-.01a1.097 1.097 0 00-.794.373c-.273.298-1.042 1.017-1.042 2.48 0 1.465 1.067 2.88 1.216 3.078.149.199 2.103 3.213 5.095 4.505.712.307 1.266.49 1.699.627.713.227 1.362.195 1.875.118.572-.085 1.764-.72 2.013-1.414.248-.695.248-1.29.173-1.414-.074-.125-.273-.2-.57-.349z" fill="currentColor"/>
</symbol>
<symbol id="icon-telegram" viewBox="0 0 24 24" fill="none">
<path d="M9.347 14.695l-.394 5.54c.564 0 .808-.242 1.101-.533l2.64-2.52 5.472 4.005c1.004.558 1.712.264 1.983-.924L23.74 3.35c.355-1.453-.525-2.022-1.503-1.658L1.09 9.84c-1.443.563-1.421 1.367-.246 1.73l5.406 1.686L18.806 5.4c.591-.39 1.13-.174.687.217l-10.146 9.078z" fill="currentColor"/>
</symbol>
<symbol id="icon-route" viewBox="0 0 24 24" fill="none">
<path d="M6.5 4.5a2.5 2.5 0 110 5 2.5 2.5 0 010-5zm0 10a2.5 2.5 0 110 5 2.5 2.5 0 010-5zm11-5a2.5 2.5 0 110 5 2.5 2.5 0 010-5z" stroke="currentColor" stroke-width="1.8"/>
<path d="M8.8 7h5.1c1.2 0 2.1 1 2.1 2.1v.2M15.9 12.9v.2c0 1.2-1 2.1-2.1 2.1H8.8" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/>
</symbol>
<symbol id="icon-map" viewBox="0 0 24 24" fill="none">
<path d="M8 3.5l8-2v19l-8 2-6-1.5v-19L8 3.5zm0 0v19m8-21l6 1.5v19L16 20.5" stroke="currentColor" stroke-width="1.8" stroke-linejoin="round"/>
</symbol>
<symbol id="icon-instagram" viewBox="0 0 24 24" fill="none">
<rect x="2.5" y="2.5" width="19" height="19" rx="5" stroke="currentColor" stroke-width="2"/>
<circle cx="12" cy="12" r="4.25" stroke="currentColor" stroke-width="2"/>
<circle cx="17.2" cy="6.8" r="1.2" fill="currentColor"/>
</symbol>
<symbol id="icon-vk" viewBox="0 0 24 24" fill="none">
<path d="M3.8 7.5c.1-.4.4-.6.8-.6h2.2c.3 0 .6.2.7.5.8 2.1 1.8 3.9 2.6 4.8.3.3.5.4.7.4.1 0 .2-.1.2-.4V7.8c0-.5.4-.9.9-.9h2c.5 0 .9.4.9.9v2.4c0 .8.3 1.1.6 1.1.2 0 .4-.1.7-.4.8-.9 1.7-2.6 2.5-4.6.1-.3.4-.5.7-.5h2.2c.6 0 1 .6.8 1.2-.6 1.7-1.5 3.3-2.4 4.4-.3.4-.4.7 0 1.2.9 1 1.8 1.9 2.5 3.2.3.6-.1 1.3-.8 1.3h-2.4c-.3 0-.5-.1-.7-.4-.5-.7-1.1-1.4-1.8-2-.2-.1-.3-.2-.5-.2-.2 0-.4.2-.4.5v1.2c0 .5-.4.9-.9.9h-1.3c-1.2 0-2.4-.4-3.6-1.4-1.7-1.4-3.1-3.7-4-6.4 0-.1 0-.3 0-.4z" fill="currentColor"/>
</symbol>
</svg> </svg>

View File

@@ -54,3 +54,287 @@
elements.forEach((element) => observer.observe(element)); elements.forEach((element) => observer.observe(element));
})(); })();
(() => {
const counters = Array.from(document.querySelectorAll(".js-counter"));
if (!counters.length) return;
const reduceMotion = window.matchMedia("(prefers-reduced-motion: reduce)").matches;
const formatCounter = (counter, value) => {
const suffix = counter.dataset.suffix || "";
counter.textContent = `${value}${suffix}`;
};
const setFinalValue = (counter) => {
const target = Number(counter.dataset.target || 0);
formatCounter(counter, Number.isFinite(target) ? target : 0);
};
const animateCounter = (counter) => {
const target = Number(counter.dataset.target || 0);
const duration = Number(counter.dataset.duration || 1300);
if (!Number.isFinite(target) || target <= 0) {
setFinalValue(counter);
return;
}
let startTime = null;
const tick = (timestamp) => {
if (startTime === null) startTime = timestamp;
const progress = Math.min((timestamp - startTime) / duration, 1);
const currentValue = Math.floor(progress * target);
formatCounter(counter, currentValue);
if (progress < 1) {
window.requestAnimationFrame(tick);
return;
}
setFinalValue(counter);
};
window.requestAnimationFrame(tick);
};
if (reduceMotion || !("IntersectionObserver" in window)) {
counters.forEach(setFinalValue);
return;
}
const observer = new IntersectionObserver(
(entries, currentObserver) => {
entries.forEach((entry) => {
if (!entry.isIntersecting) return;
animateCounter(entry.target);
currentObserver.unobserve(entry.target);
});
},
{ threshold: 0.45 }
);
counters.forEach((counter) => {
formatCounter(counter, 0);
observer.observe(counter);
});
})();
(() => {
const slider = document.querySelector("[data-reviews-slider]");
if (!slider) return;
const viewport = slider.querySelector("[data-reviews-viewport]");
const track = slider.querySelector("[data-reviews-track]");
const prevButton = slider.querySelector("[data-reviews-prev]");
const nextButton = slider.querySelector("[data-reviews-next]");
const dotsContainer = document.querySelector("[data-reviews-dots]");
const cards = Array.from(track?.querySelectorAll(".review-card") ?? []);
if (!viewport || !track || !prevButton || !nextButton || !dotsContainer || cards.length < 2) return;
let currentIndex = 0;
let touchStartX = 0;
const readVisibleSlides = () => {
const visibleValue = Number.parseInt(getComputedStyle(slider).getPropertyValue("--reviews-visible"), 10);
return Number.isFinite(visibleValue) && visibleValue > 0 ? visibleValue : 1;
};
const readTrackGap = () => {
const styles = getComputedStyle(track);
const gapValue = styles.gap || styles.columnGap || "0";
const parsedGap = Number.parseFloat(gapValue);
return Number.isFinite(parsedGap) ? parsedGap : 0;
};
const maxIndex = () => Math.max(0, cards.length - readVisibleSlides());
const renderDots = () => {
const total = maxIndex() + 1;
dotsContainer.innerHTML = "";
for (let index = 0; index < total; index += 1) {
const dot = document.createElement("button");
dot.type = "button";
dot.className = "reviews__dot";
dot.setAttribute("aria-label", `Показать отзыв ${index + 1}`);
dot.addEventListener("click", () => {
currentIndex = index;
update();
});
dotsContainer.appendChild(dot);
}
};
const update = () => {
const max = maxIndex();
currentIndex = Math.min(Math.max(currentIndex, 0), max);
const cardWidth = cards[0].getBoundingClientRect().width;
const offset = (cardWidth + readTrackGap()) * currentIndex;
track.style.transform = `translateX(${-offset}px)`;
prevButton.disabled = currentIndex === 0;
nextButton.disabled = currentIndex === max;
const dots = Array.from(dotsContainer.querySelectorAll(".reviews__dot"));
dots.forEach((dot, index) => {
dot.classList.toggle("is-active", index === currentIndex);
dot.setAttribute("aria-current", index === currentIndex ? "true" : "false");
});
};
prevButton.addEventListener("click", () => {
currentIndex -= 1;
update();
});
nextButton.addEventListener("click", () => {
currentIndex += 1;
update();
});
viewport.addEventListener("touchstart", (event) => {
touchStartX = event.changedTouches[0].clientX;
}, { passive: true });
viewport.addEventListener("touchend", (event) => {
const deltaX = event.changedTouches[0].clientX - touchStartX;
const threshold = 48;
if (deltaX > threshold) {
currentIndex -= 1;
update();
return;
}
if (deltaX < -threshold) {
currentIndex += 1;
update();
}
}, { passive: true });
const handleResize = () => {
renderDots();
update();
};
let resizeRaf = null;
window.addEventListener("resize", () => {
if (resizeRaf) return;
resizeRaf = window.requestAnimationFrame(() => {
resizeRaf = null;
handleResize();
});
});
renderDots();
update();
})();
(() => {
const bookingForm = document.getElementById("booking-form");
const successModal = document.getElementById("booking-success-modal");
if (!bookingForm || !successModal) return;
const closeTriggers = Array.from(successModal.querySelectorAll("[data-modal-close]"));
const openModal = () => {
successModal.classList.add("is-open");
successModal.setAttribute("aria-hidden", "false");
};
const closeModal = () => {
successModal.classList.remove("is-open");
successModal.setAttribute("aria-hidden", "true");
};
const triggerAnalytics = () => {
const eventName = "заявка";
const metrikaIdRaw = bookingForm.dataset.metrikaId || document.body.dataset.metrikaId || window.YANDEX_METRIKA_ID;
const metrikaId = Number(metrikaIdRaw);
if (typeof window.ym === "function" && Number.isFinite(metrikaId) && metrikaId > 0) {
window.ym(metrikaId, "reachGoal", eventName);
}
const legacyCounterKey = Object.keys(window).find((key) => {
return key.startsWith("yaCounter") && typeof window[key]?.reachGoal === "function";
});
if (legacyCounterKey) {
window[legacyCounterKey].reachGoal(eventName);
}
if (typeof window.gtag === "function") {
window.gtag("event", eventName, {
event_category: "lead",
event_label: "booking_form"
});
}
if (Array.isArray(window.dataLayer)) {
window.dataLayer.push({
event: eventName,
event_category: "lead",
event_label: "booking_form"
});
}
};
const triggerAutoReply = async (email) => {
if (!email) return;
const autoReplyEndpoint = bookingForm.dataset.autoreplyEndpoint || window.BOOKING_AUTOREPLY_ENDPOINT;
if (!autoReplyEndpoint) return;
try {
await fetch(autoReplyEndpoint, {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
email,
source: "booking-form"
})
});
} catch (error) {
// Auto-reply is optional and should not block form success.
console.error("Auto-reply request failed", error);
}
};
bookingForm.addEventListener("submit", async (event) => {
event.preventDefault();
if (!bookingForm.checkValidity()) {
bookingForm.reportValidity();
return;
}
const formData = new FormData(bookingForm);
const email = String(formData.get("email") || "").trim();
triggerAnalytics();
await triggerAutoReply(email);
bookingForm.reset();
openModal();
});
closeTriggers.forEach((trigger) => {
trigger.addEventListener("click", closeModal);
});
document.addEventListener("keydown", (event) => {
if (event.key === "Escape" && successModal.classList.contains("is-open")) {
closeModal();
}
});
})();

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +1,5 @@
:root { @import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500&family=Montserrat:wght@700&display=swap");
:root {
color-scheme: dark; color-scheme: dark;
} }

View File

@@ -7,7 +7,8 @@ $bp-lg: 1024px;
$bp-md: 768px; $bp-md: 768px;
$bp-sm: 520px; $bp-sm: 520px;
$font-main: "Segoe UI", "Segoe UI Variable", "Helvetica Neue", Arial, sans-serif; $font-main: "Inter", "Segoe UI", "Segoe UI Variable", "Helvetica Neue", Arial, sans-serif;
$font-heading: "Montserrat", "Inter", "Segoe UI", "Segoe UI Variable", "Helvetica Neue", Arial, sans-serif;
$color-bg: #121212; $color-bg: #121212;
$color-surface: #293133; $color-surface: #293133;

View File

@@ -16,6 +16,7 @@
<nav class="header__nav" aria-label="Основная навигация"> <nav class="header__nav" aria-label="Основная навигация">
<a href="#objects">Объекты</a> <a href="#objects">Объекты</a>
<a href="#services">Услуги</a> <a href="#services">Услуги</a>
<a href="#pricing">Стоимость</a>
<a href="#gallery">Галерея</a> <a href="#gallery">Галерея</a>
<a href="#contacts">Контакты</a> <a href="#contacts">Контакты</a>
</nav> </nav>
@@ -28,23 +29,21 @@
<div class="hero__bg" aria-hidden="true"></div> <div class="hero__bg" aria-hidden="true"></div>
<div class="container hero__content"> <div class="container hero__content">
<h1> <h1>
Современная Спорткомплекс полного цикла в <span>Москве:</span>
<span>спортивная арена</span> лёд, залы, проживание и питание на одной территории
в центре Москвы
</h1> </h1>
<p> <p>
Два ледовых поля 56×26 м и полный комплекс для тренировок — Два ледовых поля 58×26 м, универсальный зал, фитнес-центр и
15 минут пешком от метро Волгоградский проспект апарт-отель на 70+ номеров. В пределах ТТК.
</p> </p>
<ul class="hero__tags"> <ul class="hero__tags">
<li>2 ледовых поля 56×26 м</li> <li>2 ледовых поля 58×26 м</li>
<li>Универсальный зал</li> <li>Универсальный зал, фитнес центр, и зал хореографии</li>
<li>Фитнес-центр</li> <li>Проживание и питание на территории</li>
<li>Апарт-комплекс на 150+ спортсменов</li>
</ul> </ul>
<div class="hero__actions"> <div class="hero__actions">
<a class="btn" href="#booking">Забронировать лед / зал</a> <a class="btn" href="#booking">Забронировать площадку</a>
<a class="btn btn--ghost" href="#">Посмотреть расписание</a> <a class="btn btn--ghost" href="#">Узнать расписание</a>
</div> </div>
</div> </div>
</section> </section>
@@ -52,20 +51,20 @@
<section class="highlights"> <section class="highlights">
<div class="container highlights__grid"> <div class="container highlights__grid">
<article class="info-card"> <article class="info-card">
<h3>Развитая спортивная инфраструктура</h3> <h3>Всё в одном месте</h3>
<p>Всё для тренировок в одном месте</p> <p>Лёд, спортзалы, фитнес, проживание и питание — 5 минут от метро Волгоградский проспект, удобный заезд на автомобиле, собственная парковка для гостей комплекса</p>
</article> </article>
<article class="info-card"> <article class="info-card">
<h3>Идеальная транспортная доступность</h3> <h3>Удобная логистика</h3>
<p>15 минут пешком от метро</p> <p>15 минут пешком от метро, удобный заезд на автомобиле, бесплатная парковка для гостей и команд.</p>
</article> </article>
<article class="info-card"> <article class="info-card">
<h3>Комфортные условия</h3> <h3>Комфорт для команд</h3>
<p>Проживание и питание на территории</p> <p>9 раздевалок, судейские помещения, ресторан, апарт-отель — всё для тренировок, сборов и турниров любого масштаба.</p>
</article> </article>
<article class="info-card"> <article class="info-card">
<h3>Профессиональный сервис</h3> <h3>Готовы к соревнованиям</h3>
<p>Современное оборудование и команда</p> <p>Стандартные размеры площадок, профессиональное оборудование, опыт проведения турниров.</p>
</article> </article>
</div> </div>
</section> </section>
@@ -78,67 +77,65 @@
</header> </header>
<article class="object-card"> <article class="object-card">
<div class="object-card__image" style="background-image: linear-gradient(0deg, rgba(18,18,18,.3), rgba(18,18,18,.3)), url('./assets/images/other/ledovie.png');"></div> <div class="object-card__image" style="background-image: linear-gradient(0deg, rgba(18,18,18,.3), rgba(18,18,18,.3)), url('./assets/images/renders/led.jpg');"></div>
<div class="object-card__content"> <div class="object-card__content">
<h3>Ледовые поля</h3> <h3>Два ледовых поля</h3>
<p>Два профессиональных поля 56×26 м для хоккея, фигурного катания и массовых катаний.</p> <p>Стандарт 58×26 м. Тренировки, сборы, соревнования.</p>
<ul>
<li>56×26 м, профессиональное покрытие и LED-освещение</li>
<li>Хоккей, фигурное катание, массовые катания</li>
</ul>
<a class="btn btn--small" href="#booking">Забронировать</a> <a class="btn btn--small" href="#booking">Забронировать</a>
</div> </div>
</article> </article>
<article class="object-card object-card--reverse"> <article class="object-card object-card--reverse">
<div class="object-card__image" style="background-image: linear-gradient(0deg, rgba(18,18,18,.3), rgba(18,18,18,.3)), url('./assets/images/other/universal-zal.png');"></div> <div class="object-card__image" style="background-image: linear-gradient(0deg, rgba(18,18,18,.3), rgba(18,18,18,.3)), url('./assets/images/renders/basket.jpg');"></div>
<div class="object-card__content"> <div class="object-card__content">
<h3>Универсальный зал</h3> <h3>Универсальный зал</h3>
<p>Многофункциональное пространство для командных и индивидуальных тренировок.</p> <p>Зал для игровых видов спорта, паркетное покрытие.</p>
<ul>
<li>Полноразмерный зал с современным покрытием</li>
<li>Баскетбол, волейбол, мини-футбол, ОФП</li>
</ul>
<a class="btn btn--small" href="#booking">Забронировать</a> <a class="btn btn--small" href="#booking">Забронировать</a>
</div> </div>
</article> </article>
<article class="object-card"> <article class="object-card">
<div class="object-card__image" style="background-image: linear-gradient(0deg, rgba(18,18,18,.3), rgba(18,18,18,.3)), url('./assets/images/other/fitnes.png');"></div> <div class="object-card__image" style="background-image: linear-gradient(0deg, rgba(18,18,18,.3), rgba(18,18,18,.3)), url('./assets/images/other/6399e455dd0120ee5802a0d0_643691cf6bb745.08564640.jpg');"></div>
<div class="object-card__content"> <div class="object-card__content">
<h3>Фитнес-центр</h3> <h3>Фитнес-центр</h3>
<p>Современная зона для силовых и функциональных тренировок.</p> <p>Кардио, силовая и функциональная зоны. Premium-оборудование.</p>
<ul> <a class="btn btn--small" href="#booking">Подробнее</a>
<li>Кардио и силовое оборудование нового поколения</li> </div>
<li>Персональные и групповые тренировки</li> </article>
</ul>
<a class="btn btn--small" href="#booking">Забронировать</a> <article class="object-card object-card--reverse" style="display:none;">
<div class="object-card__image" style="background-image: linear-gradient(0deg, rgba(18,18,18,.3), rgba(18,18,18,.3)), url('./assets/images/other/1231.png');"></div>
<div class="object-card__content">
<h3>Зал хореографии</h3>
<p>Оборудован зеркалами и станками для занятий хореографией.</p>
<a class="btn btn--small" href="#booking">Подробнее</a>
</div> </div>
</article> </article>
<article class="object-card object-card--reverse"> <article class="object-card object-card--reverse">
<div class="object-card__image" style="background-image: linear-gradient(0deg, rgba(18,18,18,.3), rgba(18,18,18,.3)), url('./assets/images/other/fitnes.png');"></div> <div class="object-card__image" style="background-image: linear-gradient(0deg, rgba(18,18,18,.3), rgba(18,18,18,.3)), url('./assets/images/other/6399e455dd0120ee5802a0d0_643691cf6bb745.08564640.jpg');"></div>
<div class="object-card__content"> <div class="object-card__content">
<h3>Фитнес-центр</h3> <h3>Апарт-отель</h3>
<p>Кардио и силовое оборудование последнего поколения.</p> <p>70+ номеров для команд и гостей. Прямо на территории.</p>
<ul> <a class="btn btn--small" href="#booking">Подробнее</a>
<li>200+ кв.м • Новейшее оборудование</li>
<li>Силовые тренировки, кардио, ОФП</li>
</ul>
<a class="btn btn--small" href="#booking">Забронировать</a>
</div> </div>
</article> </article>
<article class="object-card"> <article class="object-card">
<div class="object-card__image" style="background-image: linear-gradient(0deg, rgba(18,18,18,.3), rgba(18,18,18,.3)), url('./assets/images/other/horeografia.png');"></div> <div class="object-card__image" style="background-image: linear-gradient(0deg, rgba(18,18,18,.3), rgba(18,18,18,.3)), url('./assets/images/other/IMG_4521-min.jpg');"></div>
<div class="object-card__content"> <div class="object-card__content">
<h3>Зал хореографии</h3> <h3>Ресторан</h3>
<p>Просторный зал с зеркалами и хореографическими станками.</p> <p>Сбалансированное спортивное питание. Меню для команд.</p>
<ul> <a class="btn btn--small" href="#booking">Подробнее</a>
<li>Зеркала • Станки • Звуковая система</li> </div>
<li>Фигурное катание, танцы, балет</li> </article>
</ul>
<a class="btn btn--small" href="#booking">Забронировать</a> <article class="object-card object-card--reverse">
<div class="object-card__image" style="background-image: linear-gradient(0deg, rgba(18,18,18,.3), rgba(18,18,18,.3)), url('./assets/images/other/8540eec74dd51616e6b30215183b38ad1-870x580.jpg');"></div>
<div class="object-card__content">
<h3>Парковка и подъезд</h3>
<p>Своя парковка для гостей и автобусов команд.</p>
<a class="btn btn--small" href="#booking">Подробнее</a>
</div> </div>
</article> </article>
</div> </div>
@@ -157,8 +154,8 @@
<use href="./assets/images/svg-sprites.svg#icon-complex"></use> <use href="./assets/images/svg-sprites.svg#icon-complex"></use>
</svg> </svg>
</div> </div>
<h3>Апарт-комплекс</h3> <h3>Апарт-отель</h3>
<p>150+ мест для проживания</p> <p>70+ номеров на территории.</p>
</article> </article>
<article class="feature-card"> <article class="feature-card">
<div class="feature-card__icon" aria-hidden="true"> <div class="feature-card__icon" aria-hidden="true">
@@ -167,7 +164,7 @@
</svg> </svg>
</div> </div>
<h3>Ресторан</h3> <h3>Ресторан</h3>
<p>Спортивное питание</p> <p>Сбалансированное питание для спортсменов. Меню под запрос команды (диета, время приёмов, специализированное питание).</p>
</article> </article>
<article class="feature-card"> <article class="feature-card">
<div class="feature-card__icon" aria-hidden="true"> <div class="feature-card__icon" aria-hidden="true">
@@ -175,8 +172,8 @@
<use href="./assets/images/svg-sprites.svg#icon-changingrooms"></use> <use href="./assets/images/svg-sprites.svg#icon-changingrooms"></use>
</svg> </svg>
</div> </div>
<h3>10 раздевалок</h3> <h3>9 раздевалок</h3>
<p>Современные условия</p> <p>Душевые, индивидуальные шкафчики, скамейки, всё необходимое для команд и посетителей.</p>
</article> </article>
<article class="feature-card"> <article class="feature-card">
<div class="feature-card__icon" aria-hidden="true"> <div class="feature-card__icon" aria-hidden="true">
@@ -184,8 +181,8 @@
<use href="./assets/images/svg-sprites.svg#icon-drying"></use> <use href="./assets/images/svg-sprites.svg#icon-drying"></use>
</svg> </svg>
</div> </div>
<h3>Сушильные помещения</h3> <h3>Судейские помещения</h3>
<p>Для экипировки</p> <p>Отдельные комнаты для судей, организаторов и пресс-зоны при проведении соревнований.</p>
</article> </article>
</div> </div>
</div> </div>
@@ -198,15 +195,51 @@
<p>Широкий спектр возможностей для вашего спорта</p> <p>Широкий спектр возможностей для вашего спорта</p>
</header> </header>
<div class="services__grid"> <div class="services__grid">
<a class="service-card" href="#booking">Аренда льда</a> <a class="service-card" href="#booking">
<a class="service-card" href="#booking">Аренда залов</a> <span class="service-card__title">Аренда льда</span>
<a class="service-card" href="#booking">Тренировки секций</a> <span class="service-card__description">Почасовая аренда. Подберем удобные слоты для тренировок и матчей.</span>
<a class="service-card" href="#booking">Турниры</a> </a>
<a class="service-card" href="#booking">Корпоративные мероприятия</a> <a class="service-card" href="#booking">
<a class="service-card" href="#booking">Фитнес-занятия</a> <span class="service-card__title">Аренда залов</span>
<span class="service-card__description">Полноценная инфраструктура для проведения тренировочного процесса и организации мероприятий.</span>
</a>
<a class="service-card" href="#booking">
<span class="service-card__title">Сборы команд под ключ</span>
<span class="service-card__description">Лёд, зал, проживание и питание в одном комплексе без лишней логистики.</span>
</a>
<a class="service-card" href="#booking">
<span class="service-card__title">Корпоративные мероприятия</span>
<span class="service-card__description">Спортивные тимбилдинги, активные форматы и сопровождение программы под задачи компании.</span>
</a>
</div> </div>
<div class="services__cta"> <div class="services__cta">
<a class="btn services__cta-btn" href="#">Посмотреть актуальное расписание</a> <a class="btn services__cta-btn" href="#booking">Подобрать формат и время</a>
</div>
</div>
</section>
<section class="section pricing" id="pricing">
<div class="container">
<header class="section__head">
<h2>Стоимость</h2>
</header>
<div class="pricing__list">
<article class="pricing-item">
<h3>Аренда льда</h3>
<p>от 25.000₽/час</p>
</article>
<article class="pricing-item">
<h3>Универсальный зал</h3>
<p>от 7.000₽/час</p>
</article>
<article class="pricing-item">
<h3>Фитнес центр</h3>
<p>от 3.000₽/месяц</p>
</article>
</div>
<p class="pricing__note">Точная стоимость зависит от времени, длительности и пакета услуг. Оставьте заявку — пришлём расчёт за 30 минут.</p>
<div class="pricing__cta">
<a class="btn pricing__cta-btn" href="#booking">Получить расчёт</a>
</div> </div>
</div> </div>
</section> </section>
@@ -218,45 +251,130 @@
<p>Пространства OlimpArena в деталях</p> <p>Пространства OlimpArena в деталях</p>
</header> </header>
<div class="gallery__grid"> <div class="gallery__grid">
<div class="gallery__item" style="background-image:url('./assets/images/other/gallery1.png');"></div> <div class="gallery__item" style="background-image:url('./assets/images/renders/basket.jpg');"></div>
<div class="gallery__item" style="background-image:url('./assets/images/other/gallery2.png');"></div> <div class="gallery__item" style="background-image:url('./assets/images/renders/led.jpg');"></div>
<div class="gallery__item" style="background-image:url('./assets/images/other/gallery3.png');"></div> <div class="gallery__item" style="background-image:url('./assets/images/renders/ledadnbasket.jpg');"></div>
<div class="gallery__item" style="background-image:url('./assets/images/other/gallery4.png');"></div> <div class="gallery__item" style="background-image:url('./assets/images/other/IMG_4521-min.jpg');"></div>
<div class="gallery__item" style="background-image:url('./assets/images/other/gallery5.png');"></div> <div class="gallery__item" style="background-image:url('./assets/images/other/ledovie.jpg');"></div>
<div class="gallery__item" style="background-image:url('./assets/images/other/gallery1.png');"></div> <div class="gallery__item" style="background-image:url('./assets/images/other/6399e455dd0120ee5802a0d0_643691cf6bb745.08564640.jpg');"></div>
</div> </div>
</div> </div>
</section> </section>
<section class="section reviews"> <section class="section reviews" id="reviews">
<div class="container"> <div class="container">
<header class="section__head"> <header class="section__head">
<h2>Отзывы</h2> <h2>Отзывы</h2>
<p>Что говорят о нас спортсмены и тренеры</p> <p>Что говорят клиенты о тренировках и сборах в OlimpArena</p>
</header> </header>
<div class="reviews__slider" data-reviews-slider>
<div class="reviews__grid"> <button class="reviews__nav reviews__nav--prev" type="button" data-reviews-prev aria-label="Предыдущий отзыв"></button>
<div class="reviews__viewport" data-reviews-viewport>
<div class="reviews__track" data-reviews-track>
<article class="review-card"> <article class="review-card">
<p>"Лучшие ледовые условия в Москве. Качество льда на высочайшем уровне, всё организовано профессионально."</p> <p>Ледовая арена премиум-уровня с отличной локацией. Удобные раздевалки и отличный лед. Профессиональный и приветливый персонал. Лучшая арена для тренировок и соревнований</p>
<strong>Александр Иванов</strong> <div class="review-card__meta">
<span>Тренер хоккейной школы</span> <strong>Владимир Л.</strong>
<a href="https://yandex.ru/maps/org/144435842347/reviews?reviews%5BpublicId%5D=1zaqed8uewrx0zdfqr75d3n8zm&si=j6p3d50uf3hwfup3ey7u8b3myg&utm_source=review" target="_blank" rel="noopener noreferrer">Читать на Яндекс Картах</a>
</div>
</article> </article>
<article class="review-card"> <article class="review-card">
<p>"Отличный комплекс для тренировок. Залы хореографии и фитнеса действительно помогают прогрессировать быстрее."</p> <p>Отличная локация, вежливый персонал, прекрасные ледовые арены, хорошо обустроенные раздевалки. Дизайнерское решение соответствует направлению. Всё очень круто!!! Обязательно посетите данное место!</p>
<strong>Елена Петрова</strong> <div class="review-card__meta">
<span>Фигуристка</span> <strong>Закопайло С.</strong>
<a href="https://yandex.ru/maps/org/144435842347/reviews?reviews%5BpublicId%5D=9g4uxhfhd4cqbjdjec0unkqzug&si=j6p3d50uf3hwfup3ey7u8b3myg&utm_source=review" target="_blank" rel="noopener noreferrer">Читать на Яндекс Картах</a>
</div>
</article> </article>
<article class="review-card"> <article class="review-card">
<p>"Проводим здесь турниры уже второй год. Профессиональный подход команды и высокая готовность площадок."</p> <p>Отличная локация, отличный лед и его постоянно обновляют, очень вежливый персонал, очень приятно находиться в помещении. Очень современные место. Хорошее впечатление</p>
<strong>Дмитрий Соколов</strong> <div class="review-card__meta">
<span>Организатор турниров</span> <strong>Ольга Р.</strong>
<a href="https://yandex.ru/maps/org/144435842347/reviews?reviews%5BpublicId%5D=vpdm0u6jzp7dcwndttf7z9akv4&si=j6p3d50uf3hwfup3ey7u8b3myg&utm_source=review" target="_blank" rel="noopener noreferrer">Читать на Яндекс Картах</a>
</div>
</article>
<article class="review-card">
<p>Побывала на экскурсии по своему направлению деятельности, понравилось все: инфраструктура комплекса, дизайн, персонал, все на высшем уровне 👍</p>
<div class="review-card__meta">
<strong>Елена Ильина</strong>
<a href="https://yandex.ru/maps/org/144435842347/reviews?reviews%5BpublicId%5D=fwfzfd88e6uq59qa8h6pv84ve0&si=j6p3d50uf3hwfup3ey7u8b3myg&utm_source=review target="_blank" rel="noopener noreferrer">Читать на Яндекс Картах</a>
</div>
</article>
<article class="review-card">
<p>Нам очень понравилась арена! Высокий уровень-комфорт, красота, расположение, персонал. Очень понравилось качество льда. Спасибо</p>
<div class="review-card__meta">
<strong>Руслан Я.</strong>
<a href="https://yandex.ru/maps/org/144435842347/reviews?reviews%5BpublicId%5D=81a1u705vn3kd0kmhdkc7qh02c&si=j6p3d50uf3hwfup3ey7u8b3myg&utm_source=review" target="_blank" rel="noopener noreferrer">Читать на Яндекс Картах</a>
</div>
</article>
<article class="review-card">
<p>Полноценное футбольное поле под крышей! Чего ещё желать? Таких объектов в Москве по пальцам одной руки можно пересчитать. И самое главное на территории легендарная футбольная школа...</p>
<div class="review-card__meta">
<strong>Andrey Kuleshov</strong>
<a href="https://yandex.ru/maps/org/144435842347/reviews?reviews%5BpublicId%5D=k1eyc820uqf5wua1ypqua8zyww&si=j6p3d50uf3hwfup3ey7u8b3myg&utm_source=review" target="_blank" rel="noopener noreferrer">Читать на Яндекс Картах</a>
</div>
</article>
<article class="review-card">
<p>Отличный лед. Приветливый персонал. Очень красиво внутри. Просторные раздевалки.</p>
<div class="review-card__meta">
<strong>Сергей рылов</strong>
<a href="https://yandex.ru/maps/org/144435842347/reviews?reviews%5BpublicId%5D=nah55c29h52e3fxw0bfuk2he1c&si=j6p3d50uf3hwfup3ey7u8b3myg&utm_source=review" target="_blank" rel="noopener noreferrer">Читать на Яндекс Картах</a>
</div>
</article>
<article class="review-card">
<p>Хороший персонал, хорошие место, хороший пк клуб. Всем советую, хороший пк клуб</p>
<div class="review-card__meta">
<strong>Иван Курцев</strong>
<a href="https://yandex.ru/maps/org/144435842347/reviews?reviews%5BpublicId%5D=af38gg3nfbrz1cnfr94peuv6zc&si=j6p3d50uf3hwfup3ey7u8b3myg&utm_source=review" target="_blank" rel="noopener noreferrer">Читать на Яндекс Картах</a>
</div>
</article>
<article class="review-card">
<p>Выглядит очень здорово. Будете в восторге от места, где найдется всем место для комфортного катания и ожидания.Отличный лед</p>
<div class="review-card__meta">
<strong>Оксана Викторовна завхоз</strong>
<a href="https://yandex.ru/maps/org/144435842347/reviews?reviews%5BpublicId%5D=rtr4medjwd3hev3138by8nw17c&si=j6p3d50uf3hwfup3ey7u8b3myg&utm_source=review" target="_blank" rel="noopener noreferrer">Читать на Яндекс Картах</a>
</div>
</article>
<article class="review-card">
<p>Отличное место для занятия спортом, очень понравилось😊 рекомендую👍</p>
<div class="review-card__meta">
<strong>Serega</strong>
<a href="https://yandex.ru/maps/org/144435842347/reviews?reviews%5BpublicId%5D=5tctvtm88tq564tc117493nqq4&si=j6p3d50uf3hwfup3ey7u8b3myg&utm_source=review" target="_blank" rel="noopener noreferrer">Читать на Яндекс Картах</a>
</div>
</article>
<article class="review-card">
<p>Отличная арена 🏒</p>
<div class="review-card__meta">
<strong>Андрей Иванов</strong>
<a href="https://yandex.ru/maps/org/144435842347/reviews?reviews%5BpublicId%5D=heccmk2e26d2bcpqtgdccq47bg&si=j6p3d50uf3hwfup3ey7u8b3myg&utm_source=review" target="_blank" rel="noopener noreferrer">Читать на Яндекс Картах</a>
</div>
</article> </article>
</div> </div>
</div>
<button class="reviews__nav reviews__nav--next" type="button" data-reviews-next aria-label="Следующий отзыв"></button>
</div>
<div class="reviews__dots" data-reviews-dots></div>
</div>
</section>
<div class="stats"> <section class="section facts" id="facts" style="display:none;">
<article><strong>150+</strong><span>Мест для проживания</span></article> <div class="container">
<article><strong>2</strong><span>Профессиональных ледовых поля</span></article> <header class="section__head">
<article><strong>10</strong><span>Оборудованных раздевалок</span></article> <h2>Цифры о комплексе</h2>
<p>Ключевые показатели инфраструктуры OlimpArena</p>
</header>
<div class="stats stats--facts">
<article class="stats__item">
<strong class="js-counter" data-target="70" data-suffix="+">0</strong>
<span>аппартов</span>
</article>
<article class="stats__item">
<strong class="js-counter" data-target="2">0</strong>
<span>профессиональных ледовых поля</span>
</article>
<article class="stats__item">
<strong class="js-counter" data-target="9">0</strong>
<span>оборудованных раздевалок</span>
</article>
</div> </div>
</div> </div>
</section> </section>
@@ -264,22 +382,49 @@
<section class="section booking" id="booking"> <section class="section booking" id="booking">
<div class="container booking__wrap"> <div class="container booking__wrap">
<div class="booking__form"> <div class="booking__form">
<h2>Забронировать время</h2> <h2>Оставьте заявку — подберём площадку и время</h2>
<p>Заполните форму, и мы свяжемся с вами в ближайшее время для подтверждения заявки.</p> <p>Перезвоним в течение 15 минут в рабочее время и пришлём расчёт</p>
<form action="#" method="post"> <form id="booking-form" action="#" method="post" novalidate data-metrika-id="" data-autoreply-endpoint="">
<label> <div class="booking__field">
<input type="text" name="sport" placeholder="Вид спорта"> <label for="booking-name">Имя <span class="required-mark">*</span></label>
<input id="booking-name" type="text" name="name" autocomplete="name" placeholder="Введите имя" required>
</div>
<div class="booking__field">
<label for="booking-phone">Телефон <span class="required-mark">*</span></label>
<input id="booking-phone" type="tel" name="phone" autocomplete="tel" placeholder="+7 (___) ___-__-__" required>
</div>
<div class="booking__field">
<label for="booking-email">E-mail (для расчёта)</label>
<input id="booking-email" type="email" name="email" autocomplete="email" placeholder="example@mail.ru">
</div>
<div class="booking__field">
<label for="booking-interest">Что интересует <span class="required-mark">*</span></label>
<select id="booking-interest" name="interest" required>
<option value="" selected disabled>Выберите вариант</option>
<option value="Лёд">Лёд</option>
<option value="Универсальный зал">Универсальный зал</option>
<option value="Зал единоборств">Зал единоборств</option>
<option value="Зал хореографии">Зал хореографии</option>
<option value="Фитнес">Фитнес</option>
<option value="Сборы команды">Сборы команды</option>
<option value="Турнир">Турнир</option>
<option value="Корпоратив">Корпоратив</option>
<option value="Другое">Другое</option>
</select>
</div>
<div class="booking__field">
<label for="booking-date">Удобная дата</label>
<input id="booking-date" type="date" name="date">
</div>
<div class="booking__field">
<label for="booking-comment">Комментарий</label>
<textarea id="booking-comment" name="comment" placeholder="Кратко опишите запрос"></textarea>
</div>
<label class="booking__consent" for="booking-consent">
<input id="booking-consent" type="checkbox" name="consent" required>
<span>Я согласен(а) с <a href="#" target="_blank" rel="noopener noreferrer">политикой обработки ПДн</a> <span class="required-mark">*</span></span>
</label> </label>
<label> <button class="btn booking__submit" type="submit">Отправить заявку</button>
<input type="text" name="date" placeholder="Желаемая дата">
</label>
<label>
<input type="text" name="name" placeholder="Ваше имя">
</label>
<label>
<input type="tel" name="phone" placeholder="Телефон">
</label>
<button class="btn" type="submit">Отправить заявку</button>
</form> </form>
</div> </div>
@@ -295,7 +440,18 @@
</span> </span>
<div class="contacts-card__item-content"> <div class="contacts-card__item-content">
<strong>Адрес</strong> <strong>Адрес</strong>
<span>Москва, в пределах ТТК<br>15 минут от м. Волгоградский проспект</span> <span>Москва, Автомобильный проезд, 4к5</span>
</div>
</li>
<li>
<span class="contacts-card__icon" aria-hidden="true">
<svg viewBox="0 0 24 24" fill="none">
<use href="./assets/images/svg-sprites.svg#icon-time"></use>
</svg>
</span>
<div class="contacts-card__item-content">
<strong>Режим работы</strong>
<span>Ежедневно с 06:00 до 23:00</span>
</div> </div>
</li> </li>
<li> <li>
@@ -306,7 +462,8 @@
</span> </span>
<div class="contacts-card__item-content"> <div class="contacts-card__item-content">
<strong>Телефон</strong> <strong>Телефон</strong>
<span>+7 (495) 123-45-67</span> <a style="margin-bottom:5px;" href="tel:+79251404737">+7 (925) 140-47-37</a><br>
<a href="tel:+79251404764">+7 (925) 140-47-64</a>
</div> </div>
</li> </li>
<li> <li>
@@ -317,20 +474,83 @@
</span> </span>
<div class="contacts-card__item-content"> <div class="contacts-card__item-content">
<strong>Email</strong> <strong>Email</strong>
<span>info@olimparena.ru</span> <a href="mailto:receptionadmin@o-arena.ru">receptionadmin@o-arena.ru</a>
</div> </div>
</li> </li>
</ul> </ul>
<div class="contacts-card__links">
<a class="contacts-card__messenger" href="https://wa.me/74951234567?text=%D0%94%D0%BE%D0%B1%D1%80%D1%8B%D0%B9%20%D0%B4%D0%B5%D0%BD%D1%8C%2C%20%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%B5%D1%81%D1%83%D0%B5%D1%82%20%D0%B1%D1%80%D0%BE%D0%BD%D1%8C%20%D0%B2%20OlimpArena." target="_blank" rel="noopener noreferrer" aria-label="WhatsApp">
<span class="contacts-card__action-icon" aria-hidden="true">
<svg viewBox="0 0 24 24" fill="none">
<use href="./assets/images/svg-sprites.svg#icon-whatsapp"></use>
</svg>
</span>
</a>
<a class="contacts-card__messenger contacts-card__messenger--secondary" href="https://t.me/o_arena_admin" target="_blank" rel="noopener noreferrer" aria-label="Telegram">
<span class="contacts-card__action-icon" aria-hidden="true">
<svg viewBox="0 0 24 24" fill="none">
<use href="./assets/images/svg-sprites.svg#icon-telegram"></use>
</svg>
</span>
</a>
</div>
<div class="contacts-card__links contacts-card__links--social">
<a href="#" aria-label="ВКонтакте">
<span class="contacts-card__action-icon" aria-hidden="true">
<svg viewBox="0 0 24 24" fill="none">
<use href="./assets/images/svg-sprites.svg#icon-vk"></use>
</svg>
</span>
</a>
<a href="#" aria-label="Instagram">
<span class="contacts-card__action-icon" aria-hidden="true">
<svg viewBox="0 0 24 24" fill="none">
<use href="./assets/images/svg-sprites.svg#icon-instagram"></use>
</svg>
</span>
</a>
</div>
</div>
<div class="hours-card map-card">
<h4>Карта и маршрут</h4>
<div class="map-card__embed">
<iframe title="OlimpArena на Яндекс Картах" src="https://yandex.ru/map-widget/v1/?text=%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0%2C%20%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%BE%D0%B1%D0%B8%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9%20%D0%BF%D1%80%D0%BE%D0%B5%D0%B7%D0%B4%2C%204&z=16" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe>
</div>
<div class="map-card__actions">
<a class="btn btn--small map-card__route" href="https://yandex.ru/maps/?rtext=~%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0%2C%20%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%BE%D0%B1%D0%B8%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9%20%D0%BF%D1%80%D0%BE%D0%B5%D0%B7%D0%B4%2C%204&rtt=auto" target="_blank" rel="noopener noreferrer" aria-label="Построить маршрут">
<span class="map-card__action-icon" aria-hidden="true">
<svg viewBox="0 0 24 24" fill="none">
<use href="./assets/images/svg-sprites.svg#icon-route"></use>
</svg>
</span>
</a>
<a href="https://yandex.ru/maps/?text=%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0%2C%20%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%BE%D0%B1%D0%B8%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9%20%D0%BF%D1%80%D0%BE%D0%B5%D0%B7%D0%B4%2C%204" target="_blank" rel="noopener noreferrer" aria-label="Открыть в Яндекс Картах">
<span class="map-card__action-icon" aria-hidden="true">
<svg viewBox="0 0 24 24" fill="none">
<use href="./assets/images/svg-sprites.svg#icon-map"></use>
</svg>
</span>
</a>
</div> </div>
<div class="hours-card">
<h4>Режим работы</h4>
<p>Ежедневно: 06:00 — 23:00</p>
</div> </div>
</div> </div>
</div> </div>
</section> </section>
</main> </main>
<div class="booking-modal" id="booking-success-modal" aria-hidden="true" role="dialog" aria-modal="true" aria-labelledby="booking-success-title">
<button class="booking-modal__overlay" type="button" data-modal-close aria-label="Закрыть окно"></button>
<div class="booking-modal__content">
<button class="booking-modal__close" type="button" data-modal-close aria-label="Закрыть окно">×</button>
<div class="booking-modal__status" aria-hidden="true"></div>
<h2 class="booking-modal__title" id="booking-success-title">Заявка отправлена</h2>
<p class="booking-modal__text">Перезвоним в течение 15 минут.</p>
<div class="booking-modal__actions">
<button class="btn booking-modal__btn" type="button" data-modal-close>Понятно</button>
</div>
</div>
</div>
<footer class="footer"> <footer class="footer">
<div class="container"> <div class="container">
<div class="footer__top"> <div class="footer__top">
@@ -338,44 +558,68 @@
<a class="logo" href="#top" aria-label="OlimpArena"> <a class="logo" href="#top" aria-label="OlimpArena">
<img src="./assets/images/logo.svg" alt="OlimpArena"> <img src="./assets/images/logo.svg" alt="OlimpArena">
</a> </a>
<p>Современный спортивный комплекс в центре Москвы</p> <p>OlimpArena — спорткомплекс полного цикла: ледовые арены, залы, проживание и питание на одной территории.</p>
</div> </div>
<nav class="footer__nav" aria-label="Навигация в футере"> <nav class="footer__nav" aria-label="Навигация в футере">
<h4>Навигация</h4> <h4>Объекты</h4>
<a href="#objects">Объекты</a> <a href="#objects">Объекты</a>
<a href="#services">Услуги</a> <a href="#infrastructure">Инфраструктура</a>
<a href="#gallery">Галерея</a> <a href="#gallery">Галерея</a>
<a href="#contacts">Контакты</a> <a href="#facts">Цифры о комплексе</a>
</nav>
<nav class="footer__nav" aria-label="Услуги в футере">
<h4>Услуги</h4>
<a href="#services">Форматы аренды и мероприятий</a>
<a href="#pricing">Стоимость</a>
<a href="#booking">Оставить заявку</a>
</nav> </nav>
<div class="footer__contacts"> <div class="footer__contacts">
<h4>Контакты</h4> <h4>Контакты и режим работы</h4>
<span>+7 (495) 123-45-67</span> <a href="tel:+79251404737">+7 (925) 140-47-37</a><br>
<span>info@olimparena.ru</span> <a href="tel:+79251404764">+7 (925) 140-47-64</a>
<span>Москва, ТТК</span> <a href="mailto:receptionadmin@o-arena.ru">receptionadmin@o-arena.ru</a>
<span>Москва, Автомобильный проезд, 4</span>
<span>Ежедневно с 06:00 до 23:00</span>
<div class="footer__messengers">
<a href="https://wa.me/74951234567" target="_blank" rel="noopener noreferrer" aria-label="WhatsApp">
<span class="footer__messenger-icon" aria-hidden="true">
<svg viewBox="0 0 24 24" fill="none">
<use href="./assets/images/svg-sprites.svg#icon-whatsapp"></use>
</svg>
</span>
</a>
<a href="https://t.me/o_arena_admin" target="_blank" rel="noopener noreferrer" aria-label="Telegram">
<span class="footer__messenger-icon" aria-hidden="true">
<svg viewBox="0 0 24 24" fill="none">
<use href="./assets/images/svg-sprites.svg#icon-telegram"></use>
</svg>
</span>
</a>
</div> </div>
<div class="footer__social">
<h4>Социальные сети</h4>
<div class="footer__socials"> <div class="footer__socials">
<a href="#" aria-label="Instagram"> <a href="#" aria-label="Instagram">
<span class="footer__messenger-icon" aria-hidden="true">
<svg viewBox="0 0 24 24" fill="none"> <svg viewBox="0 0 24 24" fill="none">
<rect x="2.5" y="2.5" width="19" height="19" rx="5" stroke="currentColor" stroke-width="2"/> <use href="./assets/images/svg-sprites.svg#icon-instagram"></use>
<circle cx="12" cy="12" r="4.25" stroke="currentColor" stroke-width="2"/>
<circle cx="17.2" cy="6.8" r="1.2" fill="currentColor"/>
</svg> </svg>
</span>
</a> </a>
<a href="#" aria-label="Facebook"> <a href="#" aria-label="ВКонтакте">
<span class="footer__messenger-icon" aria-hidden="true">
<svg viewBox="0 0 24 24" fill="none"> <svg viewBox="0 0 24 24" fill="none">
<path d="M14.5 8H16.5V5H14C11.8 5 10 6.8 10 9V11H8V14H10V19H13V14H15.5L16 11H13V9.5C13 8.67 13.67 8 14.5 8Z" fill="currentColor"/> <use href="./assets/images/svg-sprites.svg#icon-vk"></use>
</svg> </svg>
</span>
</a> </a>
</div> </div>
</div> </div>
</div> </div>
<div class="footer__bottom"> <div class="footer__bottom">
<span>© 2026 OlimpArena. Все права защищены.</span> <span>© 2026 ООО «ОлимпАрена»</span>
<div class="footer__legal"> <div class="footer__legal">
<a href="#">Политика конфиденциальности</a> <a href="#">Политика конфиденциальности</a>
<a href="#">Условия использования</a> <a href="#">Договор оферты</a>
<span>ИНН 7700000000 · ОГРН 1207700000000</span>
</div> </div>
</div> </div>
</div> </div>