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
All checks were successful
Deploy Olimparena / deploy (push) Successful in 15s
Reviewed-on: #13
This commit was merged in pull request #13.
This commit is contained in:
@@ -713,17 +713,11 @@ img {
|
||||
filter: saturate(1.08);
|
||||
}
|
||||
|
||||
.reviews {
|
||||
.facts {
|
||||
background: #121212;
|
||||
background-image: url(../images/bg-pattern.svg);
|
||||
background-position: center;
|
||||
}
|
||||
.reviews__grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||
gap: 32px;
|
||||
margin-bottom: 64px;
|
||||
}
|
||||
|
||||
.review-card {
|
||||
background: rgba(18, 18, 18, 0.4);
|
||||
@@ -762,33 +756,40 @@ img {
|
||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||
gap: 32px;
|
||||
}
|
||||
.stats article {
|
||||
.stats__item {
|
||||
background: rgba(18, 18, 18, 0.4);
|
||||
border: 1px solid rgba(255, 255, 255, 0.1);
|
||||
border-radius: 16px;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||
border: 0;
|
||||
background: #cf1717;
|
||||
min-height: 144px;
|
||||
padding: 32px;
|
||||
min-height: 248px;
|
||||
padding: 34px 24px;
|
||||
text-align: center;
|
||||
transition: transform 0.3s ease;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.stats article:hover {
|
||||
.stats__item:hover {
|
||||
transform: translateY(-5px);
|
||||
}
|
||||
.stats strong {
|
||||
display: block;
|
||||
margin-bottom: 8px;
|
||||
margin-bottom: 14px;
|
||||
color: #ffffff;
|
||||
font-size: 48px;
|
||||
font-size: clamp(80px, 9vw, 120px);
|
||||
font-weight: 700;
|
||||
line-height: 1;
|
||||
line-height: 0.9;
|
||||
letter-spacing: 0.01em;
|
||||
}
|
||||
.stats span {
|
||||
color: #ffffff;
|
||||
font-size: 16px;
|
||||
line-height: 1.3;
|
||||
font-size: 19px;
|
||||
font-weight: 500;
|
||||
line-height: 1.25;
|
||||
max-width: 320px;
|
||||
}
|
||||
|
||||
.booking {
|
||||
@@ -950,11 +951,89 @@ img {
|
||||
font-weight: 500;
|
||||
line-height: 1.1;
|
||||
}
|
||||
.contacts-card__item-content a {
|
||||
color: rgba(255, 255, 255, 0.9);
|
||||
font-size: 16px;
|
||||
line-height: 1.4;
|
||||
text-decoration: underline;
|
||||
text-underline-offset: 2px;
|
||||
}
|
||||
.contacts-card__item-content span {
|
||||
color: rgba(255, 255, 255, 0.8);
|
||||
font-size: 16px;
|
||||
line-height: 1.45;
|
||||
}
|
||||
.contacts-card__item-content small {
|
||||
display: block;
|
||||
margin-top: 6px;
|
||||
color: rgba(255, 255, 255, 0.6);
|
||||
font-size: 13px;
|
||||
line-height: 1.35;
|
||||
}
|
||||
.contacts-card__links {
|
||||
margin-top: 24px;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 10px;
|
||||
}
|
||||
.contacts-card__messenger {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
min-width: 44px;
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
padding: 0;
|
||||
border: 1px solid rgba(255, 255, 255, 0.2);
|
||||
border-radius: 999px;
|
||||
background: rgba(255, 255, 255, 0.04);
|
||||
color: rgba(255, 255, 255, 0.92);
|
||||
text-decoration: none;
|
||||
transition: transform 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
|
||||
}
|
||||
.contacts-card__messenger:hover {
|
||||
transform: translateY(-1px);
|
||||
border-color: rgba(207, 23, 23, 0.7);
|
||||
background: rgba(207, 23, 23, 0.18);
|
||||
}
|
||||
.contacts-card__messenger--secondary {
|
||||
background: rgba(255, 255, 255, 0.02);
|
||||
}
|
||||
.contacts-card__action-icon {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.contacts-card__action-icon svg {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
display: block;
|
||||
color: currentColor;
|
||||
opacity: 0.9;
|
||||
}
|
||||
.contacts-card__links--social {
|
||||
margin-top: 14px;
|
||||
}
|
||||
.contacts-card__links--social a {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
border-radius: 12px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.2);
|
||||
color: rgba(255, 255, 255, 0.85);
|
||||
background: rgba(255, 255, 255, 0.03);
|
||||
transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
|
||||
text-decoration: none;
|
||||
}
|
||||
.contacts-card__links--social a:hover {
|
||||
border-color: rgba(207, 23, 23, 0.8);
|
||||
color: #ffffff;
|
||||
background: rgba(207, 23, 23, 0.2);
|
||||
}
|
||||
|
||||
.hours-card h4 {
|
||||
margin-bottom: 16px;
|
||||
@@ -968,6 +1047,64 @@ img {
|
||||
line-height: 1.25;
|
||||
}
|
||||
|
||||
.map-card__embed {
|
||||
width: 100%;
|
||||
margin-top: 18px;
|
||||
margin-bottom: 16px;
|
||||
overflow: hidden;
|
||||
border-radius: 14px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.15);
|
||||
}
|
||||
.map-card__embed iframe {
|
||||
width: 100%;
|
||||
min-height: 260px;
|
||||
border: 0;
|
||||
display: block;
|
||||
}
|
||||
.map-card__actions {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 10px;
|
||||
}
|
||||
.map-card__actions a {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.2);
|
||||
border-radius: 12px;
|
||||
background: rgba(255, 255, 255, 0.03);
|
||||
color: rgba(255, 255, 255, 0.8);
|
||||
text-decoration: none;
|
||||
transition: border-color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
|
||||
}
|
||||
.map-card__actions a:hover {
|
||||
transform: translateY(-1px);
|
||||
border-color: rgba(207, 23, 23, 0.75);
|
||||
background: rgba(207, 23, 23, 0.18);
|
||||
}
|
||||
.map-card__action-icon {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: #ffd5d5;
|
||||
}
|
||||
.map-card__action-icon svg {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
display: block;
|
||||
}
|
||||
.map-card__route {
|
||||
min-width: 44px;
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
padding: 0;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.booking-modal {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
@@ -1073,19 +1210,19 @@ img {
|
||||
font-size: 14px;
|
||||
line-height: 1.28;
|
||||
}
|
||||
.footer__nav h4, .footer__contacts h4, .footer__social h4 {
|
||||
.footer__nav h4, .footer__contacts h4 {
|
||||
margin-bottom: 16px;
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
line-height: 1.1;
|
||||
}
|
||||
.footer__nav a, .footer__contacts a, .footer__social a {
|
||||
.footer__nav a, .footer__contacts a {
|
||||
display: block;
|
||||
color: rgba(255, 255, 255, 0.65);
|
||||
font-size: 14px;
|
||||
line-height: 1.35;
|
||||
}
|
||||
.footer__nav span, .footer__contacts span, .footer__social span {
|
||||
.footer__nav span, .footer__contacts span {
|
||||
display: block;
|
||||
color: rgba(255, 255, 255, 0.65);
|
||||
font-size: 14px;
|
||||
@@ -1093,35 +1230,36 @@ img {
|
||||
}
|
||||
.footer__nav a + a,
|
||||
.footer__nav span + span, .footer__contacts a + a,
|
||||
.footer__contacts span + span, .footer__social a + a,
|
||||
.footer__social span + span {
|
||||
.footer__contacts span + span {
|
||||
margin-top: 10px;
|
||||
}
|
||||
.footer__socials {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 12px;
|
||||
}
|
||||
.footer__socials a {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 58px;
|
||||
height: 58px;
|
||||
border: 1px solid rgba(207, 23, 23, 0.5);
|
||||
border-radius: 10px;
|
||||
width: 46px;
|
||||
height: 46px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.22);
|
||||
border-radius: 12px;
|
||||
background: rgba(255, 255, 255, 0.03);
|
||||
color: rgba(255, 255, 255, 0.92);
|
||||
transition: transform 0.25s ease, border-color 0.25s ease, background-color 0.25s ease;
|
||||
transition: transform 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
.footer__socials a svg {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
display: block;
|
||||
}
|
||||
.footer__socials a:hover {
|
||||
transform: translateY(-2px);
|
||||
border-color: rgba(207, 23, 23, 0.85);
|
||||
background: rgba(207, 23, 23, 0.15);
|
||||
border-color: rgba(207, 23, 23, 0.75);
|
||||
background: rgba(207, 23, 23, 0.18);
|
||||
}
|
||||
.footer__bottom {
|
||||
display: flex;
|
||||
@@ -1139,7 +1277,46 @@ img {
|
||||
}
|
||||
.footer__legal {
|
||||
display: flex;
|
||||
gap: 34px;
|
||||
flex-wrap: wrap;
|
||||
gap: 10px 24px;
|
||||
}
|
||||
.footer__messengers {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
margin-top: 12px;
|
||||
}
|
||||
.footer__messengers a {
|
||||
display: inline-flex !important;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
padding: 0;
|
||||
border: 1px solid rgba(255, 255, 255, 0.22);
|
||||
border-radius: 12px;
|
||||
color: rgba(255, 255, 255, 0.85) !important;
|
||||
background: rgba(255, 255, 255, 0.03);
|
||||
margin-top: 0 !important;
|
||||
text-decoration: none !important;
|
||||
transition: border-color 0.2s ease, background-color 0.2s ease;
|
||||
}
|
||||
.footer__messengers a:hover {
|
||||
border-color: rgba(207, 23, 23, 0.72);
|
||||
background: rgba(207, 23, 23, 0.16);
|
||||
}
|
||||
.footer__messenger-icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.footer__messenger-icon svg {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
display: block;
|
||||
color: currentColor;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1600px) {
|
||||
@@ -1195,15 +1372,14 @@ img {
|
||||
font-size: 16px;
|
||||
}
|
||||
.footer__brand p {
|
||||
font-size: 28px;
|
||||
font-size: 16px;
|
||||
}
|
||||
.footer__nav h4, .footer__contacts h4, .footer__social h4 {
|
||||
.footer__nav h4, .footer__contacts h4 {
|
||||
font-size: 16px;
|
||||
}
|
||||
.footer__nav a,
|
||||
.footer__nav span, .footer__contacts a,
|
||||
.footer__contacts span, .footer__social a,
|
||||
.footer__social span {
|
||||
.footer__contacts span {
|
||||
font-size: 14px;
|
||||
}
|
||||
.footer__bottom span,
|
||||
@@ -1282,19 +1458,18 @@ img {
|
||||
gap: 28px;
|
||||
}
|
||||
.footer__brand p {
|
||||
font-size: 22px;
|
||||
font-size: 16px;
|
||||
margin-top: 18px;
|
||||
}
|
||||
.footer__nav h4, .footer__contacts h4, .footer__social h4 {
|
||||
font-size: 30px;
|
||||
.footer__nav h4, .footer__contacts h4 {
|
||||
font-size: 18px;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
.footer__nav a,
|
||||
.footer__nav span, .footer__contacts a,
|
||||
.footer__contacts span, .footer__social a,
|
||||
.footer__social span {
|
||||
font-size: 22px;
|
||||
line-height: 1.32;
|
||||
.footer__contacts span {
|
||||
font-size: 15px;
|
||||
line-height: 1.4;
|
||||
}
|
||||
.footer__bottom span,
|
||||
.footer__bottom a {
|
||||
@@ -1387,13 +1562,12 @@ img {
|
||||
font-size: 16px;
|
||||
max-width: 100%;
|
||||
}
|
||||
.footer__nav h4, .footer__contacts h4, .footer__social h4 {
|
||||
.footer__nav h4, .footer__contacts h4 {
|
||||
font-size: 16px;
|
||||
}
|
||||
.footer__nav a,
|
||||
.footer__nav span, .footer__contacts a,
|
||||
.footer__contacts span, .footer__social a,
|
||||
.footer__social span {
|
||||
.footer__contacts span {
|
||||
font-size: 16px;
|
||||
}
|
||||
.footer__bottom span,
|
||||
@@ -1401,7 +1575,7 @@ img {
|
||||
font-size: 14px;
|
||||
}
|
||||
.stats strong {
|
||||
font-size: 40px;
|
||||
font-size: clamp(66px, 17vw, 96px);
|
||||
}
|
||||
.booking-modal__content {
|
||||
padding: 28px 18px 22px;
|
||||
@@ -1457,7 +1631,7 @@ img {
|
||||
.info-card,
|
||||
.feature-card,
|
||||
.review-card,
|
||||
.stats article,
|
||||
.stats__item,
|
||||
.contacts-card,
|
||||
.hours-card,
|
||||
.object-card__content {
|
||||
@@ -1492,8 +1666,8 @@ img {
|
||||
gap: 20px;
|
||||
}
|
||||
.footer__socials a {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
}
|
||||
}
|
||||
@media (hover: none) {
|
||||
|
||||
2
assets/css/main.min.css
vendored
2
assets/css/main.min.css
vendored
File diff suppressed because one or more lines are too long
@@ -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="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 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>
|
||||
|
||||
@@ -55,6 +55,73 @@
|
||||
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 bookingForm = document.getElementById("booking-form");
|
||||
const successModal = document.getElementById("booking-success-modal");
|
||||
|
||||
@@ -735,17 +735,10 @@ img {
|
||||
}
|
||||
}
|
||||
|
||||
.reviews {
|
||||
.facts {
|
||||
background: $color-bg;
|
||||
background-image: url(../images/bg-pattern.svg);
|
||||
background-position: center;
|
||||
|
||||
&__grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||
gap: 32px;
|
||||
margin-bottom: 64px;
|
||||
}
|
||||
}
|
||||
|
||||
.review-card {
|
||||
@@ -786,14 +779,18 @@ img {
|
||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||
gap: 32px;
|
||||
|
||||
article {
|
||||
&__item {
|
||||
@include card;
|
||||
border: 0;
|
||||
background: $color-accent;
|
||||
min-height: 144px;
|
||||
padding: 32px;
|
||||
min-height: 248px;
|
||||
padding: 34px 24px;
|
||||
text-align: center;
|
||||
transition: transform 0.3s ease;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
&:hover {
|
||||
transform: translateY(-5px);
|
||||
@@ -802,17 +799,20 @@ img {
|
||||
|
||||
strong {
|
||||
display: block;
|
||||
margin-bottom: 8px;
|
||||
margin-bottom: 14px;
|
||||
color: $color-text;
|
||||
font-size: 48px;
|
||||
font-size: clamp(80px, 9vw, 120px);
|
||||
font-weight: 700;
|
||||
line-height: 1;
|
||||
line-height: 0.9;
|
||||
letter-spacing: 0.01em;
|
||||
}
|
||||
|
||||
span {
|
||||
color: $color-text;
|
||||
font-size: 16px;
|
||||
line-height: 1.3;
|
||||
font-size: 19px;
|
||||
font-weight: 500;
|
||||
line-height: 1.25;
|
||||
max-width: 320px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -991,11 +991,100 @@ img {
|
||||
line-height: 1.1;
|
||||
}
|
||||
|
||||
a {
|
||||
color: rgba(255, 255, 255, 0.9);
|
||||
font-size: 16px;
|
||||
line-height: 1.4;
|
||||
text-decoration: underline;
|
||||
text-underline-offset: 2px;
|
||||
}
|
||||
|
||||
span {
|
||||
color: $color-text-soft;
|
||||
font-size: 16px;
|
||||
line-height: 1.45;
|
||||
}
|
||||
|
||||
small {
|
||||
display: block;
|
||||
margin-top: 6px;
|
||||
color: rgba(255, 255, 255, 0.6);
|
||||
font-size: 13px;
|
||||
line-height: 1.35;
|
||||
}
|
||||
}
|
||||
|
||||
&__links {
|
||||
margin-top: 24px;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
&__messenger {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
min-width: 44px;
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
padding: 0;
|
||||
border: 1px solid rgba(255, 255, 255, 0.2);
|
||||
border-radius: 999px;
|
||||
background: rgba(255, 255, 255, 0.04);
|
||||
color: rgba(255, 255, 255, 0.92);
|
||||
text-decoration: none;
|
||||
transition: transform 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
|
||||
|
||||
&:hover {
|
||||
transform: translateY(-1px);
|
||||
border-color: rgba(207, 23, 23, 0.7);
|
||||
background: rgba(207, 23, 23, 0.18);
|
||||
}
|
||||
|
||||
&--secondary {
|
||||
background: rgba(255, 255, 255, 0.02);
|
||||
}
|
||||
}
|
||||
|
||||
&__action-icon {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
svg {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
display: block;
|
||||
color: currentColor;
|
||||
opacity: 0.9;
|
||||
}
|
||||
}
|
||||
|
||||
&__links--social {
|
||||
margin-top: 14px;
|
||||
|
||||
a {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
border-radius: 12px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.2);
|
||||
color: rgba(255, 255, 255, 0.85);
|
||||
background: rgba(255, 255, 255, 0.03);
|
||||
transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
border-color: rgba(207, 23, 23, 0.8);
|
||||
color: $color-text;
|
||||
background: rgba(207, 23, 23, 0.2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1014,6 +1103,73 @@ img {
|
||||
}
|
||||
}
|
||||
|
||||
.map-card {
|
||||
&__embed {
|
||||
width: 100%;
|
||||
margin-top: 18px;
|
||||
margin-bottom: 16px;
|
||||
overflow: hidden;
|
||||
border-radius: 14px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.15);
|
||||
|
||||
iframe {
|
||||
width: 100%;
|
||||
min-height: 260px;
|
||||
border: 0;
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
&__actions {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 10px;
|
||||
|
||||
a {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.2);
|
||||
border-radius: 12px;
|
||||
background: rgba(255, 255, 255, 0.03);
|
||||
color: rgba(255, 255, 255, 0.8);
|
||||
text-decoration: none;
|
||||
transition: border-color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
transform: translateY(-1px);
|
||||
border-color: rgba(207, 23, 23, 0.75);
|
||||
background: rgba(207, 23, 23, 0.18);
|
||||
}
|
||||
}
|
||||
|
||||
&__action-icon {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: #ffd5d5;
|
||||
|
||||
svg {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
&__route {
|
||||
min-width: 44px;
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
padding: 0;
|
||||
box-shadow: none;
|
||||
}
|
||||
}
|
||||
|
||||
.booking-modal {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
@@ -1136,8 +1292,7 @@ img {
|
||||
}
|
||||
|
||||
&__nav,
|
||||
&__contacts,
|
||||
&__social {
|
||||
&__contacts {
|
||||
h4 {
|
||||
margin-bottom: 16px;
|
||||
font-size: 16px;
|
||||
@@ -1167,30 +1322,32 @@ img {
|
||||
|
||||
&__socials {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 12px;
|
||||
|
||||
a {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 58px;
|
||||
height: 58px;
|
||||
border: 1px solid rgba(207, 23, 23, 0.5);
|
||||
border-radius: 10px;
|
||||
width: 46px;
|
||||
height: 46px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.22);
|
||||
border-radius: 12px;
|
||||
background: rgba(255, 255, 255, 0.03);
|
||||
color: rgba(255, 255, 255, 0.92);
|
||||
transition: transform 0.25s ease, border-color 0.25s ease, background-color 0.25s ease;
|
||||
transition: transform 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
|
||||
margin-top: 0 !important;
|
||||
|
||||
svg {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
transform: translateY(-2px);
|
||||
border-color: rgba(207, 23, 23, 0.85);
|
||||
background: rgba(207, 23, 23, 0.15);
|
||||
border-color: rgba(207, 23, 23, 0.75);
|
||||
background: rgba(207, 23, 23, 0.18);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1213,7 +1370,51 @@ img {
|
||||
|
||||
&__legal {
|
||||
display: flex;
|
||||
gap: 34px;
|
||||
flex-wrap: wrap;
|
||||
gap: 10px 24px;
|
||||
}
|
||||
|
||||
&__messengers {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
margin-top: 12px;
|
||||
|
||||
a {
|
||||
display: inline-flex !important;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
padding: 0;
|
||||
border: 1px solid rgba(255, 255, 255, 0.22);
|
||||
border-radius: 12px;
|
||||
color: rgba(255, 255, 255, 0.85) !important;
|
||||
background: rgba(255, 255, 255, 0.03);
|
||||
margin-top: 0 !important;
|
||||
text-decoration: none !important;
|
||||
transition: border-color 0.2s ease, background-color 0.2s ease;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
border-color: rgba(207, 23, 23, 0.72);
|
||||
background: rgba(207, 23, 23, 0.16);
|
||||
}
|
||||
}
|
||||
|
||||
&__messenger-icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
svg {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
display: block;
|
||||
color: currentColor;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1304,12 +1505,11 @@ img {
|
||||
|
||||
.footer {
|
||||
&__brand p {
|
||||
font-size: 28px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
&__nav,
|
||||
&__contacts,
|
||||
&__social {
|
||||
&__contacts {
|
||||
h4 {
|
||||
font-size: 16px;
|
||||
}
|
||||
@@ -1422,22 +1622,21 @@ img {
|
||||
}
|
||||
|
||||
&__brand p {
|
||||
font-size: 22px;
|
||||
font-size: 16px;
|
||||
margin-top: 18px;
|
||||
}
|
||||
|
||||
&__nav,
|
||||
&__contacts,
|
||||
&__social {
|
||||
&__contacts {
|
||||
h4 {
|
||||
font-size: 30px;
|
||||
font-size: 18px;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
a,
|
||||
span {
|
||||
font-size: 22px;
|
||||
line-height: 1.32;
|
||||
font-size: 15px;
|
||||
line-height: 1.4;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1574,8 +1773,7 @@ img {
|
||||
}
|
||||
|
||||
&__nav,
|
||||
&__contacts,
|
||||
&__social {
|
||||
&__contacts {
|
||||
h4 {
|
||||
font-size: 16px;
|
||||
}
|
||||
@@ -1595,7 +1793,7 @@ img {
|
||||
}
|
||||
|
||||
.stats strong {
|
||||
font-size: 40px;
|
||||
font-size: clamp(66px, 17vw, 96px);
|
||||
}
|
||||
|
||||
.booking-modal {
|
||||
@@ -1672,7 +1870,7 @@ img {
|
||||
.info-card,
|
||||
.feature-card,
|
||||
.review-card,
|
||||
.stats article,
|
||||
.stats__item,
|
||||
.contacts-card,
|
||||
.hours-card,
|
||||
.object-card__content {
|
||||
@@ -1718,8 +1916,8 @@ img {
|
||||
}
|
||||
|
||||
&__socials a {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
166
index.html
166
index.html
@@ -282,36 +282,26 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="section reviews">
|
||||
<section class="section facts" id="facts">
|
||||
<div class="container">
|
||||
<header class="section__head">
|
||||
<h2>Отзывы</h2>
|
||||
<p>Что говорят о нас спортсмены и тренеры</p>
|
||||
<h2>Цифры о комплексе</h2>
|
||||
<p>Ключевые показатели инфраструктуры OlimpArena</p>
|
||||
</header>
|
||||
|
||||
<div class="reviews__grid">
|
||||
<article class="review-card">
|
||||
<p>"Лучшие ледовые условия в Москве. Качество льда на высочайшем уровне, всё организовано профессионально."</p>
|
||||
<strong>Александр Иванов</strong>
|
||||
<span>Тренер хоккейной школы</span>
|
||||
<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="review-card">
|
||||
<p>"Отличный комплекс для тренировок. Залы хореографии и фитнеса действительно помогают прогрессировать быстрее."</p>
|
||||
<strong>Елена Петрова</strong>
|
||||
<span>Фигуристка</span>
|
||||
<article class="stats__item">
|
||||
<strong class="js-counter" data-target="2">0</strong>
|
||||
<span>ледовые арены 56×26 м</span>
|
||||
</article>
|
||||
<article class="review-card">
|
||||
<p>"Проводим здесь турниры уже второй год. Профессиональный подход команды и высокая готовность площадок."</p>
|
||||
<strong>Дмитрий Соколов</strong>
|
||||
<span>Организатор турниров</span>
|
||||
<article class="stats__item">
|
||||
<strong class="js-counter" data-target="9">0</strong>
|
||||
<span>оборудованных раздевалок</span>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
<div class="stats">
|
||||
<article><strong>150+</strong><span>Мест для проживания</span></article>
|
||||
<article><strong>2</strong><span>Профессиональных ледовых поля</span></article>
|
||||
<article><strong>10</strong><span>Оборудованных раздевалок</span></article>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -376,7 +366,18 @@
|
||||
</span>
|
||||
<div class="contacts-card__item-content">
|
||||
<strong>Адрес</strong>
|
||||
<span>Москва, в пределах ТТК<br>15 минут от м. Волгоградский проспект</span>
|
||||
<span>Москва, Автомобильный проезд, 4</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>
|
||||
</li>
|
||||
<li>
|
||||
@@ -387,7 +388,7 @@
|
||||
</span>
|
||||
<div class="contacts-card__item-content">
|
||||
<strong>Телефон</strong>
|
||||
<span>+7 (495) 123-45-67</span>
|
||||
<a href="tel:+74951234567">+7 (495) 123-45-67</a>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
@@ -398,14 +399,64 @@
|
||||
</span>
|
||||
<div class="contacts-card__item-content">
|
||||
<strong>Email</strong>
|
||||
<span>receptionadmin@o-arena.ru</span>
|
||||
<a href="mailto:receptionadmin@o-arena.ru">receptionadmin@o-arena.ru</a>
|
||||
</div>
|
||||
</li>
|
||||
</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 class="hours-card">
|
||||
<h4>Режим работы</h4>
|
||||
<p>Ежедневно: 06:00 — 23:00</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -432,44 +483,67 @@
|
||||
<a class="logo" href="#top" aria-label="OlimpArena">
|
||||
<img src="./assets/images/logo.svg" alt="OlimpArena">
|
||||
</a>
|
||||
<p>Современный спортивный комплекс в центре Москвы</p>
|
||||
<p>OlimpArena — спорткомплекс полного цикла: ледовые арены, залы, проживание и питание на одной территории.</p>
|
||||
</div>
|
||||
<nav class="footer__nav" aria-label="Навигация в футере">
|
||||
<h4>Навигация</h4>
|
||||
<h4>Объекты</h4>
|
||||
<a href="#objects">Объекты</a>
|
||||
<a href="#services">Услуги</a>
|
||||
<a href="#infrastructure">Инфраструктура</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>
|
||||
<div class="footer__contacts">
|
||||
<h4>Контакты</h4>
|
||||
<span>+7 (495) 123-45-67</span>
|
||||
<span>receptionadmin@o-arena.ru</span>
|
||||
<span>Москва, ТТК</span>
|
||||
<h4>Контакты и режим работы</h4>
|
||||
<a href="tel:+74951234567">+7 (495) 123-45-67</a>
|
||||
<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 class="footer__social">
|
||||
<h4>Социальные сети</h4>
|
||||
<div class="footer__socials">
|
||||
<a href="#" aria-label="Instagram">
|
||||
<span class="footer__messenger-icon" aria-hidden="true">
|
||||
<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"/>
|
||||
<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"/>
|
||||
<use href="./assets/images/svg-sprites.svg#icon-instagram"></use>
|
||||
</svg>
|
||||
</span>
|
||||
</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">
|
||||
<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>
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer__bottom">
|
||||
<span>© 2026 OlimpArena. Все права защищены.</span>
|
||||
<span>© 2026 ООО «ОлимпАрена»</span>
|
||||
<div class="footer__legal">
|
||||
<a href="#">Политика конфиденциальности</a>
|
||||
<a href="#">Условия использования</a>
|
||||
<a href="#">Договор оферты</a>
|
||||
<span>ИНН 7700000000 · ОГРН 1207700000000</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user