diff --git a/assets/css/main.css b/assets/css/main.css index a79dff1..069f5fb 100644 --- a/assets/css/main.css +++ b/assets/css/main.css @@ -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) { diff --git a/assets/css/main.min.css b/assets/css/main.min.css index 9368ba3..7972066 100644 --- a/assets/css/main.min.css +++ b/assets/css/main.min.css @@ -1 +1 @@ -@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500&family=Montserrat:wght@700&display=swap");a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{border:0;font-size:100%;font:inherit;margin:0;padding:0;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}table{border-collapse:collapse;border-spacing:0}:root{color-scheme:dark}*{box-sizing:border-box}body,html{background:#121212;color:#fff;font-family:Inter,Segoe UI,Segoe UI Variable,Helvetica Neue,Arial,sans-serif}body{font-weight:400;line-height:1}h1,h2,h3,h4,h5,h6{font-family:Montserrat,Inter,Segoe UI,Segoe UI Variable,Helvetica Neue,Arial,sans-serif;font-weight:700}a,button,input,li,p,select,span,textarea{font-family:Inter,Segoe UI,Segoe UI Variable,Helvetica Neue,Arial,sans-serif}b,strong{font-weight:500}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}@keyframes fade-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}.container{margin:0 auto;max-width:1400px;padding:0 24px;width:100%}.site{overflow:hidden;position:relative}.scroll-reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease;transition-delay:var(--reveal-delay,0s);will-change:opacity,transform}.scroll-reveal.is-visible{opacity:1;transform:translateY(0)}.btn{align-items:center;background:#cf1717;border:0;border-radius:14px;box-shadow:0 25px 50px rgba(231,0,11,.5);color:#fff;cursor:pointer;display:inline-flex;font-size:16px;font-weight:500;justify-content:center;line-height:24px;padding:18px 24px;transition:transform .25s ease,box-shadow .25s ease,background-color .25s ease}.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0)}.btn--small{box-shadow:0 10px 15px rgba(231,0,11,.4),0 4px 6px rgba(231,0,11,.4);font-size:14px;line-height:20px;padding:10px 24px}.btn--ghost{background:rgba(41,49,51,.6);border:2px solid hsla(0,0%,100%,.2);box-shadow:none}.header{animation:slide-down .65s ease both;background:hsla(0,0%,7%,.95);border-bottom:1px solid rgba(207,23,23,.2);inset:0 0 auto;position:fixed;z-index:20}.header__inner{justify-content:space-between;min-height:72px}.header__inner,.header__nav{align-items:center;display:flex}.header__nav{gap:32px;margin-left:auto;margin-right:32px}.header__nav a{color:hsla(0,0%,100%,.8);font-size:14px;font-weight:500;line-height:20px;transition:color .2s ease}.header__nav a:hover{color:#fff}.logo{display:inline-flex;height:30px;width:137px}.logo img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.hero{min-height:852px;padding-top:72px;position:relative}.hero__bg{background:linear-gradient(90deg,hsla(0,0%,7%,.9),hsla(0,0%,7%,.7) 50%,transparent),url(../images/other/section-main.webp) 50%/cover no-repeat;inset:0;position:absolute}.hero__bg:after{background-image:repeating-linear-gradient(0deg,hsla(0,0%,100%,.045) 0 1px,transparent 1px 8px),repeating-linear-gradient(90deg,hsla(0,0%,100%,.045) 0 1px,transparent 1px 8px);content:"";inset:0;mix-blend-mode:soft-light;position:absolute}.hero__content{margin-left:528px;max-width:1000px;padding-bottom:50px;padding-top:104px;position:relative;z-index:1}.hero__content>*{animation:fade-up .7s ease forwards;opacity:0}.hero__content h1{animation-delay:.15s}.hero__content p{animation-delay:.28s}.hero__content .hero__tags{animation-delay:.4s}.hero__content .hero__actions{animation-delay:.52s}.hero h1{font-size:72px;font-weight:700;line-height:90px;margin-bottom:24px;max-width:1000px}.hero h1 span{color:#cf1717}.hero p{color:hsla(0,0%,100%,.8);font-size:20px;line-height:32px;margin-bottom:32px;max-width:768px}.hero__tags{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:28px}.hero__tags li{background:rgba(41,49,51,.6);border:1px solid rgba(207,23,23,.3);border-radius:999px;font-size:14px;font-weight:500;line-height:20px;padding:9px 17px;transition:border-color .25s ease,background-color .25s ease,transform .25s ease;white-space:nowrap}.hero__tags li:hover{background:rgba(41,49,51,.9);border-color:rgba(207,23,23,.55);transform:translateY(-1px)}.hero__actions{display:flex;gap:16px}.highlights{background:linear-gradient(90deg,#293133,#20272a);padding:96px 0}.highlights__grid{display:grid;gap:24px;grid-template-columns:repeat(4,minmax(0,1fr))}.info-card{background:hsla(0,0%,7%,.4);border:1px solid hsla(0,0%,100%,.1);border-radius:16px;box-shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.1);min-height:178px;padding:33px;transition:transform .3s ease,border-color .3s ease,background-color .3s ease}.info-card:hover{background:hsla(0,0%,7%,.62);border-color:rgba(207,23,23,.45);transform:translateY(-6px)}.info-card h3{font-size:20px;font-weight:700;line-height:28px;margin-bottom:8px}.info-card p{color:hsla(0,0%,100%,.7);font-size:16px;line-height:24px}.section{padding:96px 0;position:relative}.section>.container{position:relative;z-index:1}.section--pattern{background:#121212}.section--pattern:before{background-image:radial-gradient(circle at 80px 80px,rgba(207,23,23,.25) 0 2px,transparent 2px 70px),radial-gradient(circle at 120px 120px,hsla(0,0%,100%,.06) 0 1px,transparent 1px 48px);background-size:320px 320px;content:"";inset:0;opacity:.4;pointer-events:none;position:absolute}.section__head{margin-bottom:64px;text-align:center}.section__head h2{font-size:48px;font-weight:700;line-height:1;margin-bottom:16px}.section__head p{color:hsla(0,0%,100%,.8);font-size:28px;line-height:1.15}.infrastructure{background:linear-gradient(90deg,#293133,#2f3b40)}.infrastructure .section__head{margin-bottom:56px}.infrastructure .section__head h2{font-size:48px;font-weight:700;line-height:1.05}.infrastructure .section__head p{font-size:20px;font-weight:400;line-height:1.2}.infrastructure__grid{display:grid;gap:24px;grid-template-columns:repeat(4,minmax(0,1fr))}.feature-card{align-items:center;background:hsla(0,0%,7%,.4);border:1px solid hsla(0,0%,100%,.1);border-radius:16px;box-shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.1);display:flex;flex-direction:column;justify-content:flex-start;min-height:238px;padding:32px 26px 30px;text-align:center;transition:transform .3s ease,border-color .3s ease,background-color .3s ease}.feature-card:hover{background:hsla(0,0%,7%,.6);border-color:rgba(207,23,23,.55);transform:translateY(-5px)}.feature-card__icon{align-items:center;background:#cf1717;border-radius:18px;box-shadow:0 12px 24px rgba(231,0,11,.5);color:#fff;display:inline-flex;height:64px;justify-content:center;margin-bottom:18px;width:64px}.feature-card__icon svg{display:block;height:32px;width:32px}.feature-card h3{font-size:18px;font-weight:700;line-height:1.2;margin-bottom:10px}.feature-card p{color:hsla(0,0%,100%,.7);font-size:16px;line-height:1.3}.objects{background-image:url(../images/bg-pattern.svg);background-position:50%}.objects .section__head{margin-bottom:64px}.object-card{display:grid;gap:32px;grid-template-columns:1fr 1fr;margin-bottom:48px}.object-card:last-child{margin-bottom:0}.object-card--reverse .object-card__image{order:2}.object-card--reverse .object-card__content{order:1}.object-card__image{background-position:50%;background-size:cover;border-radius:16px;min-height:400px;transition:transform .5s ease}.object-card__content{align-self:center;background:hsla(0,0%,7%,.4);border:1px solid hsla(0,0%,100%,.1);border-radius:16px;box-shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.1);display:flex;flex-direction:column;justify-content:center;min-height:338px;padding:33px;transition:transform .3s ease,border-color .3s ease}.object-card__content h3{font-size:34px;font-weight:700;line-height:1.1;margin-bottom:16px}.object-card__content p{color:hsla(0,0%,100%,.7);font-size:18px;line-height:28px;margin-bottom:24px}.object-card__content ul{margin-bottom:24px}.object-card__content li{color:hsla(0,0%,100%,.8);font-size:16px;line-height:28px;padding-left:14px;position:relative}.object-card__content li+li{margin-top:8px}.object-card__content li:before{background:#cf1717;border-radius:50%;content:"";height:6px;left:0;position:absolute;top:12px;width:6px}.object-card:hover .object-card__image{transform:scale(1.02)}.object-card:hover .object-card__content{border-color:rgba(207,23,23,.4);transform:translateY(-4px)}.services{background:#121212;background-image:url(../images/bg-pattern.svg);background-position:50%}.services .section__head{margin-bottom:52px}.services .section__head h2{font-size:48px;line-height:1.05}.services .section__head p{font-size:20px;line-height:1.2}.services__grid{display:grid;gap:18px;grid-template-columns:repeat(3,minmax(0,1fr));margin:0 auto;max-width:896px;width:100%}.services__cta{margin-top:48px;text-align:center}.services__cta-btn{box-shadow:0 18px 34px rgba(231,0,11,.45);font-size:18px;line-height:1.2;min-height:60px;padding:16px 26px;width:min(100%,560px)}.service-card{align-items:center;background:#1d252b;border:1px solid rgba(207,23,23,.45);border-radius:16px;color:#fff;display:flex;flex-direction:column;gap:10px;justify-content:center;min-height:152px;overflow:hidden;padding:20px;position:relative;text-align:center;transition:transform .25s ease,border-color .25s ease,background-color .25s ease,box-shadow .25s ease}.service-card__title{display:block;font-family:Montserrat,Inter,Segoe UI,Segoe UI Variable,Helvetica Neue,Arial,sans-serif;font-size:21px;font-weight:700;line-height:1.15;position:relative;z-index:1}.service-card__description,.service-card__title{transition:opacity .25s ease,transform .25s ease}.service-card__description{align-items:center;background:rgba(7,10,12,.84);color:hsla(0,0%,100%,.7);display:flex;font-size:15px;font-weight:500;inset:0;justify-content:center;line-height:1.45;opacity:0;padding:16px 18px;pointer-events:none;position:absolute;text-align:center;transform:translateY(10px);z-index:2}.service-card:focus-visible,.service-card:hover{background:#222c33;border-color:rgba(207,23,23,.75);box-shadow:0 14px 30px rgba(0,0,0,.3);transform:translateY(-3px)}.service-card:focus-visible .service-card__title,.service-card:hover .service-card__title{opacity:.25;transform:scale(.98)}.service-card:focus-visible .service-card__description,.service-card:hover .service-card__description{opacity:1;transform:translateY(0)}.pricing{background:linear-gradient(90deg,#293133,#20272a)}.pricing .section__head{margin-bottom:44px}.pricing__list{display:grid;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:28px}.pricing__note{color:hsla(0,0%,100%,.8);font-size:18px;line-height:1.45;margin-bottom:30px}.pricing__cta,.pricing__note{text-align:center}.pricing__cta-btn{font-size:18px;line-height:1.2;min-height:60px;padding:16px 26px;width:min(100%,420px)}.pricing-item{background:hsla(0,0%,7%,.4);border:1px solid hsla(0,0%,100%,.1);border-radius:16px;box-shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.1);min-height:144px;padding:24px}.pricing-item h3{font-size:22px;font-weight:700;line-height:1.25;margin-bottom:10px}.pricing-item p{color:#cf1717;font-size:24px;font-weight:700;line-height:1.2}.gallery{background:linear-gradient(90deg,#293133,#20272a)}.gallery__grid{display:grid;gap:24px;grid-template-columns:repeat(3,minmax(0,1fr))}.gallery__item{aspect-ratio:16/10;background-position:50%;background-size:cover;border:1px solid hsla(0,0%,100%,.1);border-radius:16px;transition:transform .45s ease,border-color .3s ease,filter .3s ease}.gallery__item:hover{border-color:rgba(207,23,23,.55);filter:saturate(1.08);transform:scale(1.03)}.reviews{background:#121212;background-image:url(../images/bg-pattern.svg);background-position:50%}.reviews__grid{display:grid;gap:32px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:64px}.review-card{background:hsla(0,0%,7%,.4);border:1px solid hsla(0,0%,100%,.1);border-radius:16px;box-shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.1);min-height:206px;padding:33px;transition:transform .3s ease,border-color .3s ease}.review-card:hover{border-color:rgba(207,23,23,.4);transform:translateY(-5px)}.review-card p{color:hsla(0,0%,100%,.8);font-size:16px;line-height:1.5;margin-bottom:24px}.review-card strong{display:block;font-size:16px;font-weight:700;line-height:1.2;margin-bottom:8px}.review-card span{color:hsla(0,0%,100%,.7);font-size:16px;line-height:1.2}.stats{display:grid;gap:32px;grid-template-columns:repeat(3,minmax(0,1fr))}.stats article{background:hsla(0,0%,7%,.4);background:#cf1717;border:0;border-radius:16px;box-shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.1);min-height:144px;padding:32px;text-align:center;transition:transform .3s ease}.stats article:hover{transform:translateY(-5px)}.stats strong{color:#fff;display:block;font-size:48px;font-weight:700;line-height:1;margin-bottom:8px}.stats span{color:#fff;font-size:16px;line-height:1.3}.booking{background:linear-gradient(90deg,#293133,#20272a)}.booking__wrap{display:grid;gap:48px;grid-template-columns:1fr 1fr}.booking h2{font-size:48px;font-weight:700;line-height:1.02;margin-bottom:24px}.booking p{color:hsla(0,0%,100%,.8);font-size:18px;font-weight:500;line-height:1.4;margin-bottom:32px}.booking form{gap:14px}.booking form,.booking__field{display:flex;flex-direction:column}.booking__field{gap:8px}.booking__field label{color:hsla(0,0%,100%,.88);font-size:14px;font-weight:500;line-height:1.25}.booking__field .required-mark{color:#cf1717}.booking__submit{font-size:19px;font-weight:500;height:64px;line-height:1.2;margin-top:10px;padding:0 24px;width:100%}.booking__consent{align-items:flex-start;color:hsla(0,0%,100%,.8);display:flex;font-size:14px;font-weight:400;gap:10px;line-height:1.45;margin-top:2px}.booking__consent input[type=checkbox]{accent-color:#cf1717;flex:0 0 18px;height:18px;margin-top:2px;width:18px}.booking__consent a{color:#ffd2d2;text-decoration:underline;text-underline-offset:2px}.booking input,.booking select,.booking textarea{background:hsla(0,0%,7%,.35);border:1px solid hsla(0,0%,100%,.1);border-radius:14px;color:#fff;font-size:16px;font-weight:400;line-height:1.35;outline:none;padding:0 20px;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.booking input:focus,.booking select:focus,.booking textarea:focus{border-color:rgba(207,23,23,.85);box-shadow:0 0 0 3px rgba(207,23,23,.25)}.booking input::-moz-placeholder,.booking select::-moz-placeholder,.booking textarea::-moz-placeholder{color:hsla(0,0%,100%,.45)}.booking input::placeholder,.booking select::placeholder,.booking textarea::placeholder{color:hsla(0,0%,100%,.45)}.booking input,.booking select{height:56px}.booking textarea{min-height:130px;padding:16px 20px;resize:vertical}.contacts-card,.hours-card{background:hsla(0,0%,7%,.4);border:1px solid hsla(0,0%,100%,.1);border-radius:16px;box-shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.1);padding:33px;transition:transform .3s ease,border-color .3s ease}.contacts-card:hover,.hours-card:hover{border-color:rgba(207,23,23,.4);transform:translateY(-4px)}.contacts-card{margin-bottom:32px}.contacts-card h3{font-size:24px;font-weight:700;line-height:1.05;margin-bottom:30px}.contacts-card ul{display:flex;flex-direction:column;gap:18px}.contacts-card li{align-items:flex-start;display:flex;gap:16px}.contacts-card__icon{flex:0 0 24px;height:24px;margin-top:2px;width:24px}.contacts-card__icon svg{display:block;height:24px;width:24px}.contacts-card__item-content strong{display:block;font-size:16px;font-weight:500;line-height:1.1;margin-bottom:8px}.contacts-card__item-content span{color:hsla(0,0%,100%,.8);font-size:16px;line-height:1.45}.hours-card h4{font-size:16px;font-weight:700;line-height:1.2;margin-bottom:16px}.hours-card p{font-size:16px;line-height:1.25;margin:0}.booking-modal{display:grid;inset:0;opacity:0;padding:20px;place-items:center;pointer-events:none;position:fixed;transition:opacity .25s ease,visibility .25s ease;visibility:hidden;z-index:60}.booking-modal.is-open{opacity:1;pointer-events:auto;visibility:visible}.booking-modal__overlay{backdrop-filter:blur(4px);background:radial-gradient(circle at 30% 10%,rgba(207,23,23,.2),transparent 55%),rgba(0,0,0,.72);inset:0;position:absolute}.booking-modal__content{background:linear-gradient(140deg,hsla(0,0%,100%,.03),hsla(0,0%,100%,0)),linear-gradient(165deg,#202a30,#181f24 62%);border:1px solid rgba(207,23,23,.52);border-radius:24px;box-shadow:0 26px 58px rgba(0,0,0,.52);padding:36px 30px 30px;position:relative;width:min(100%,620px)}.booking-modal__status{align-items:center;background:rgba(207,23,23,.18);border:1px solid rgba(207,23,23,.45);border-radius:16px;color:#ffd9d9;display:inline-flex;font-size:28px;font-weight:700;height:56px;justify-content:center;line-height:1;margin-bottom:18px;width:56px}.booking-modal__title{font-size:32px;font-weight:700;line-height:1.1;margin-bottom:12px;padding-right:42px}.booking-modal__text{color:hsla(0,0%,100%,.8);font-size:18px;font-weight:500;line-height:1.45;margin-bottom:24px}.booking-modal__actions{display:flex}.booking-modal__btn{min-width:220px}.booking-modal__close{background:hsla(0,0%,100%,.12);border:0;border-radius:50%;color:hsla(0,0%,100%,.92);cursor:pointer;font-size:22px;height:36px;line-height:1;position:absolute;right:14px;top:14px;transition:background-color .2s ease,transform .2s ease;width:36px}.booking-modal__close:hover{background:rgba(207,23,23,.34);transform:rotate(90deg)}.footer{background:#090a0f;border-top:1px solid rgba(207,23,23,.1);padding:64px 0 20px}.footer__top{display:grid;gap:36px;grid-template-columns:1.45fr 1fr 1.15fr 1fr;margin-bottom:48px}.footer__brand p{color:hsla(0,0%,100%,.65);font-size:14px;line-height:1.28;margin-top:16px;max-width:286px}.footer__contacts h4,.footer__nav h4,.footer__social h4{font-size:16px;font-weight:700;line-height:1.1;margin-bottom:16px}.footer__contacts a,.footer__contacts span,.footer__nav a,.footer__nav span,.footer__social a,.footer__social span{color:hsla(0,0%,100%,.65);display:block;font-size:14px;line-height:1.35}.footer__contacts a+a,.footer__contacts span+span,.footer__nav a+a,.footer__nav span+span,.footer__social a+a,.footer__social span+span{margin-top:10px}.footer__socials{display:flex;gap:12px}.footer__socials a{align-items:center;border:1px solid rgba(207,23,23,.5);border-radius:10px;color:hsla(0,0%,100%,.92);display:inline-flex;height:58px;justify-content:center;margin-top:0!important;transition:transform .25s ease,border-color .25s ease,background-color .25s ease;width:58px}.footer__socials a svg{display:block;height:24px;width:24px}.footer__socials a:hover{background:rgba(207,23,23,.15);border-color:rgba(207,23,23,.85);transform:translateY(-2px)}.footer__bottom{align-items:center;border-top:1px solid rgba(207,23,23,.35);display:flex;gap:24px;justify-content:space-between;padding-top:30px}.footer__bottom a,.footer__bottom span{color:hsla(0,0%,100%,.4);font-size:14px;line-height:1.3}.footer__legal{display:flex;gap:34px}@media only screen and (max-width:1600px){.hero__content{margin-left:auto}.hero h1{font-size:64px;line-height:1.15}}@media only screen and (max-width:1280px){.container{padding:0 20px}.header__nav{gap:20px;margin-right:20px}.hero__content{margin-left:280px;max-width:700px}.hero h1{font-size:56px}.hero p{font-size:18px;line-height:1.6}.section__head h2{font-size:40px}.section__head p{font-size:24px}.object-card__content h3{font-size:30px}.booking h2{font-size:48px}.contacts-card h3{font-size:24px}.contacts-card__item-content strong,.hours-card h4,.hours-card p{font-size:16px}.footer__brand p{font-size:28px}.footer__contacts h4,.footer__nav h4,.footer__social h4{font-size:16px}.footer__bottom a,.footer__bottom span,.footer__contacts a,.footer__contacts span,.footer__nav a,.footer__nav span,.footer__social a,.footer__social span{font-size:14px}}@media only screen and (max-width:1024px){.header__inner{min-height:64px}.header__nav{display:none}.hero{min-height:auto;padding:120px 0 80px}.hero__content{margin-left:0;max-width:100%;padding-top:0}.hero h1{font-size:48px;line-height:1.15}.hero h1,.hero p{max-width:640px}.hero__actions{flex-wrap:wrap}.footer__top,.gallery__grid,.highlights__grid,.infrastructure__grid,.reviews__grid,.services__grid,.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.services__grid{max-width:none}.booking__wrap,.object-card{gap:24px;grid-template-columns:1fr}.object-card--reverse .object-card__content,.object-card--reverse .object-card__image{order:0}.section{padding:72px 0}.section__head{margin-bottom:40px}.booking__contacts{display:grid;gap:24px;grid-template-columns:1fr 1fr}.contacts-card{margin-bottom:0}.footer__bottom{align-items:flex-start;flex-direction:column}.footer__top{gap:28px;grid-template-columns:repeat(2,minmax(0,1fr))}.footer__brand p{font-size:22px;margin-top:18px}.footer__contacts h4,.footer__nav h4,.footer__social h4{font-size:30px;margin-bottom:16px}.footer__contacts a,.footer__contacts span,.footer__nav a,.footer__nav span,.footer__social a,.footer__social span{font-size:22px;line-height:1.32}.footer__bottom a,.footer__bottom span{font-size:14px}}@media only screen and (max-width:768px){.container{padding:0 16px}.btn{width:100%}.btn--small{width:auto}.hero{padding-top:108px}.hero h1{font-size:40px;max-width:100%}.hero p{font-size:16px;line-height:1.5;max-width:100%}.hero__tags li{white-space:normal}.hero__actions .btn--ghost{width:100%}.section__head h2{font-size:34px}.section__head p{font-size:20px;line-height:1.3}.booking__contacts,.footer__top,.gallery__grid,.highlights__grid,.infrastructure__grid,.reviews__grid,.services__grid,.stats{grid-template-columns:1fr}.booking h2,.feature-card h3,.object-card__content h3{font-size:24px}.booking input,.booking select{height:52px}.contacts-card h3{font-size:34px;margin-bottom:18px}.contacts-card__item-content span,.contacts-card__item-content strong{font-size:16px}.hours-card h4{font-size:16px;margin-bottom:12px}.hours-card p{font-size:16px}.infrastructure .section__head h2,.services .section__head h2{font-size:38px}.infrastructure .section__head p,.services .section__head p{font-size:20px}.service-card__title{font-size:19px}.footer__brand p{font-size:16px;max-width:100%}.footer__contacts a,.footer__contacts h4,.footer__contacts span,.footer__nav a,.footer__nav h4,.footer__nav span,.footer__social a,.footer__social h4,.footer__social span{font-size:16px}.footer__bottom a,.footer__bottom span{font-size:14px}.stats strong{font-size:40px}.booking-modal__content{padding:28px 18px 22px}.booking-modal__status{border-radius:14px;font-size:24px;height:48px;margin-bottom:14px;width:48px}.booking-modal__title{font-size:26px}.booking-modal__text{font-size:16px;margin-bottom:18px}.booking-modal__btn{min-width:100%}}@media only screen and (max-width:520px){.header__inner{gap:12px}.logo{height:24px;width:110px}.btn--small{font-size:13px;padding:10px 16px}.hero{padding-top:100px}.hero h1{font-size:34px}.hero__actions{gap:12px}.section{padding:64px 0}.section__head h2{font-size:32px}.section__head p{font-size:18px}.contacts-card,.feature-card,.hours-card,.info-card,.object-card__content,.review-card,.stats article{padding:24px}.object-card__image{min-height:260px}.service-card{min-height:142px;padding:16px}.service-card__title{font-size:18px}.service-card__description{font-size:14px;inset:0;opacity:1;padding:14px;transform:translateY(0)}.services__cta-btn{font-size:16px;width:100%}.footer__bottom .footer__legal{flex-direction:column;gap:12px}.footer__top{gap:20px}.footer__socials a{height:50px;width:50px}}@media (hover:none){.service-card{justify-content:center}.service-card__description{opacity:1;pointer-events:auto;position:absolute;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;scroll-behavior:auto!important;transition:none!important}.hero__content>*,.scroll-reveal{opacity:1!important}.scroll-reveal{transform:none!important}} \ No newline at end of file +@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500&family=Montserrat:wght@700&display=swap");a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{border:0;font-size:100%;font:inherit;margin:0;padding:0;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}table{border-collapse:collapse;border-spacing:0}:root{color-scheme:dark}*{box-sizing:border-box}body,html{background:#121212;color:#fff;font-family:Inter,Segoe UI,Segoe UI Variable,Helvetica Neue,Arial,sans-serif}body{font-weight:400;line-height:1}h1,h2,h3,h4,h5,h6{font-family:Montserrat,Inter,Segoe UI,Segoe UI Variable,Helvetica Neue,Arial,sans-serif;font-weight:700}a,button,input,li,p,select,span,textarea{font-family:Inter,Segoe UI,Segoe UI Variable,Helvetica Neue,Arial,sans-serif}b,strong{font-weight:500}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}@keyframes fade-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}.container{margin:0 auto;max-width:1400px;padding:0 24px;width:100%}.site{overflow:hidden;position:relative}.scroll-reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease;transition-delay:var(--reveal-delay,0s);will-change:opacity,transform}.scroll-reveal.is-visible{opacity:1;transform:translateY(0)}.btn{align-items:center;background:#cf1717;border:0;border-radius:14px;box-shadow:0 25px 50px rgba(231,0,11,.5);color:#fff;cursor:pointer;display:inline-flex;font-size:16px;font-weight:500;justify-content:center;line-height:24px;padding:18px 24px;transition:transform .25s ease,box-shadow .25s ease,background-color .25s ease}.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0)}.btn--small{box-shadow:0 10px 15px rgba(231,0,11,.4),0 4px 6px rgba(231,0,11,.4);font-size:14px;line-height:20px;padding:10px 24px}.btn--ghost{background:rgba(41,49,51,.6);border:2px solid hsla(0,0%,100%,.2);box-shadow:none}.header{animation:slide-down .65s ease both;background:hsla(0,0%,7%,.95);border-bottom:1px solid rgba(207,23,23,.2);inset:0 0 auto;position:fixed;z-index:20}.header__inner{justify-content:space-between;min-height:72px}.header__inner,.header__nav{align-items:center;display:flex}.header__nav{gap:32px;margin-left:auto;margin-right:32px}.header__nav a{color:hsla(0,0%,100%,.8);font-size:14px;font-weight:500;line-height:20px;transition:color .2s ease}.header__nav a:hover{color:#fff}.logo{display:inline-flex;height:30px;width:137px}.logo img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.hero{min-height:852px;padding-top:72px;position:relative}.hero__bg{background:linear-gradient(90deg,hsla(0,0%,7%,.9),hsla(0,0%,7%,.7) 50%,transparent),url(../images/other/section-main.webp) 50%/cover no-repeat;inset:0;position:absolute}.hero__bg:after{background-image:repeating-linear-gradient(0deg,hsla(0,0%,100%,.045) 0 1px,transparent 1px 8px),repeating-linear-gradient(90deg,hsla(0,0%,100%,.045) 0 1px,transparent 1px 8px);content:"";inset:0;mix-blend-mode:soft-light;position:absolute}.hero__content{margin-left:528px;max-width:1000px;padding-bottom:50px;padding-top:104px;position:relative;z-index:1}.hero__content>*{animation:fade-up .7s ease forwards;opacity:0}.hero__content h1{animation-delay:.15s}.hero__content p{animation-delay:.28s}.hero__content .hero__tags{animation-delay:.4s}.hero__content .hero__actions{animation-delay:.52s}.hero h1{font-size:72px;font-weight:700;line-height:90px;margin-bottom:24px;max-width:1000px}.hero h1 span{color:#cf1717}.hero p{color:hsla(0,0%,100%,.8);font-size:20px;line-height:32px;margin-bottom:32px;max-width:768px}.hero__tags{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:28px}.hero__tags li{background:rgba(41,49,51,.6);border:1px solid rgba(207,23,23,.3);border-radius:999px;font-size:14px;font-weight:500;line-height:20px;padding:9px 17px;transition:border-color .25s ease,background-color .25s ease,transform .25s ease;white-space:nowrap}.hero__tags li:hover{background:rgba(41,49,51,.9);border-color:rgba(207,23,23,.55);transform:translateY(-1px)}.hero__actions{display:flex;gap:16px}.highlights{background:linear-gradient(90deg,#293133,#20272a);padding:96px 0}.highlights__grid{display:grid;gap:24px;grid-template-columns:repeat(4,minmax(0,1fr))}.info-card{background:hsla(0,0%,7%,.4);border:1px solid hsla(0,0%,100%,.1);border-radius:16px;box-shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.1);min-height:178px;padding:33px;transition:transform .3s ease,border-color .3s ease,background-color .3s ease}.info-card:hover{background:hsla(0,0%,7%,.62);border-color:rgba(207,23,23,.45);transform:translateY(-6px)}.info-card h3{font-size:20px;font-weight:700;line-height:28px;margin-bottom:8px}.info-card p{color:hsla(0,0%,100%,.7);font-size:16px;line-height:24px}.section{padding:96px 0;position:relative}.section>.container{position:relative;z-index:1}.section--pattern{background:#121212}.section--pattern:before{background-image:radial-gradient(circle at 80px 80px,rgba(207,23,23,.25) 0 2px,transparent 2px 70px),radial-gradient(circle at 120px 120px,hsla(0,0%,100%,.06) 0 1px,transparent 1px 48px);background-size:320px 320px;content:"";inset:0;opacity:.4;pointer-events:none;position:absolute}.section__head{margin-bottom:64px;text-align:center}.section__head h2{font-size:48px;font-weight:700;line-height:1;margin-bottom:16px}.section__head p{color:hsla(0,0%,100%,.8);font-size:28px;line-height:1.15}.infrastructure{background:linear-gradient(90deg,#293133,#2f3b40)}.infrastructure .section__head{margin-bottom:56px}.infrastructure .section__head h2{font-size:48px;font-weight:700;line-height:1.05}.infrastructure .section__head p{font-size:20px;font-weight:400;line-height:1.2}.infrastructure__grid{display:grid;gap:24px;grid-template-columns:repeat(4,minmax(0,1fr))}.feature-card{align-items:center;background:hsla(0,0%,7%,.4);border:1px solid hsla(0,0%,100%,.1);border-radius:16px;box-shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.1);display:flex;flex-direction:column;justify-content:flex-start;min-height:238px;padding:32px 26px 30px;text-align:center;transition:transform .3s ease,border-color .3s ease,background-color .3s ease}.feature-card:hover{background:hsla(0,0%,7%,.6);border-color:rgba(207,23,23,.55);transform:translateY(-5px)}.feature-card__icon{align-items:center;background:#cf1717;border-radius:18px;box-shadow:0 12px 24px rgba(231,0,11,.5);color:#fff;display:inline-flex;height:64px;justify-content:center;margin-bottom:18px;width:64px}.feature-card__icon svg{display:block;height:32px;width:32px}.feature-card h3{font-size:18px;font-weight:700;line-height:1.2;margin-bottom:10px}.feature-card p{color:hsla(0,0%,100%,.7);font-size:16px;line-height:1.3}.objects{background-image:url(../images/bg-pattern.svg);background-position:50%}.objects .section__head{margin-bottom:64px}.object-card{display:grid;gap:32px;grid-template-columns:1fr 1fr;margin-bottom:48px}.object-card:last-child{margin-bottom:0}.object-card--reverse .object-card__image{order:2}.object-card--reverse .object-card__content{order:1}.object-card__image{background-position:50%;background-size:cover;border-radius:16px;min-height:400px;transition:transform .5s ease}.object-card__content{align-self:center;background:hsla(0,0%,7%,.4);border:1px solid hsla(0,0%,100%,.1);border-radius:16px;box-shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.1);display:flex;flex-direction:column;justify-content:center;min-height:338px;padding:33px;transition:transform .3s ease,border-color .3s ease}.object-card__content h3{font-size:34px;font-weight:700;line-height:1.1;margin-bottom:16px}.object-card__content p{color:hsla(0,0%,100%,.7);font-size:18px;line-height:28px;margin-bottom:24px}.object-card__content ul{margin-bottom:24px}.object-card__content li{color:hsla(0,0%,100%,.8);font-size:16px;line-height:28px;padding-left:14px;position:relative}.object-card__content li+li{margin-top:8px}.object-card__content li:before{background:#cf1717;border-radius:50%;content:"";height:6px;left:0;position:absolute;top:12px;width:6px}.object-card:hover .object-card__image{transform:scale(1.02)}.object-card:hover .object-card__content{border-color:rgba(207,23,23,.4);transform:translateY(-4px)}.services{background:#121212;background-image:url(../images/bg-pattern.svg);background-position:50%}.services .section__head{margin-bottom:52px}.services .section__head h2{font-size:48px;line-height:1.05}.services .section__head p{font-size:20px;line-height:1.2}.services__grid{display:grid;gap:18px;grid-template-columns:repeat(3,minmax(0,1fr));margin:0 auto;max-width:896px;width:100%}.services__cta{margin-top:48px;text-align:center}.services__cta-btn{box-shadow:0 18px 34px rgba(231,0,11,.45);font-size:18px;line-height:1.2;min-height:60px;padding:16px 26px;width:min(100%,560px)}.service-card{align-items:center;background:#1d252b;border:1px solid rgba(207,23,23,.45);border-radius:16px;color:#fff;display:flex;flex-direction:column;gap:10px;justify-content:center;min-height:152px;overflow:hidden;padding:20px;position:relative;text-align:center;transition:transform .25s ease,border-color .25s ease,background-color .25s ease,box-shadow .25s ease}.service-card__title{display:block;font-family:Montserrat,Inter,Segoe UI,Segoe UI Variable,Helvetica Neue,Arial,sans-serif;font-size:21px;font-weight:700;line-height:1.15;position:relative;z-index:1}.service-card__description,.service-card__title{transition:opacity .25s ease,transform .25s ease}.service-card__description{align-items:center;background:rgba(7,10,12,.84);color:hsla(0,0%,100%,.7);display:flex;font-size:15px;font-weight:500;inset:0;justify-content:center;line-height:1.45;opacity:0;padding:16px 18px;pointer-events:none;position:absolute;text-align:center;transform:translateY(10px);z-index:2}.service-card:focus-visible,.service-card:hover{background:#222c33;border-color:rgba(207,23,23,.75);box-shadow:0 14px 30px rgba(0,0,0,.3);transform:translateY(-3px)}.service-card:focus-visible .service-card__title,.service-card:hover .service-card__title{opacity:.25;transform:scale(.98)}.service-card:focus-visible .service-card__description,.service-card:hover .service-card__description{opacity:1;transform:translateY(0)}.pricing{background:linear-gradient(90deg,#293133,#20272a)}.pricing .section__head{margin-bottom:44px}.pricing__list{display:grid;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:28px}.pricing__note{color:hsla(0,0%,100%,.8);font-size:18px;line-height:1.45;margin-bottom:30px}.pricing__cta,.pricing__note{text-align:center}.pricing__cta-btn{font-size:18px;line-height:1.2;min-height:60px;padding:16px 26px;width:min(100%,420px)}.pricing-item{background:hsla(0,0%,7%,.4);border:1px solid hsla(0,0%,100%,.1);border-radius:16px;box-shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.1);min-height:144px;padding:24px}.pricing-item h3{font-size:22px;font-weight:700;line-height:1.25;margin-bottom:10px}.pricing-item p{color:#cf1717;font-size:24px;font-weight:700;line-height:1.2}.gallery{background:linear-gradient(90deg,#293133,#20272a)}.gallery__grid{display:grid;gap:24px;grid-template-columns:repeat(3,minmax(0,1fr))}.gallery__item{aspect-ratio:16/10;background-position:50%;background-size:cover;border:1px solid hsla(0,0%,100%,.1);border-radius:16px;transition:transform .45s ease,border-color .3s ease,filter .3s ease}.gallery__item:hover{border-color:rgba(207,23,23,.55);filter:saturate(1.08);transform:scale(1.03)}.facts{background:#121212;background-image:url(../images/bg-pattern.svg);background-position:50%}.review-card{background:hsla(0,0%,7%,.4);border:1px solid hsla(0,0%,100%,.1);border-radius:16px;box-shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.1);min-height:206px;padding:33px;transition:transform .3s ease,border-color .3s ease}.review-card:hover{border-color:rgba(207,23,23,.4);transform:translateY(-5px)}.review-card p{color:hsla(0,0%,100%,.8);font-size:16px;line-height:1.5;margin-bottom:24px}.review-card strong{display:block;font-size:16px;font-weight:700;line-height:1.2;margin-bottom:8px}.review-card span{color:hsla(0,0%,100%,.7);font-size:16px;line-height:1.2}.stats{display:grid;gap:32px;grid-template-columns:repeat(3,minmax(0,1fr))}.stats__item{align-items:center;background:hsla(0,0%,7%,.4);background:#cf1717;border:0;border-radius:16px;box-shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.1);display:flex;flex-direction:column;justify-content:center;min-height:248px;padding:34px 24px;text-align:center;transition:transform .3s ease}.stats__item:hover{transform:translateY(-5px)}.stats strong{color:#fff;display:block;font-size:clamp(80px,9vw,120px);font-weight:700;letter-spacing:.01em;line-height:.9;margin-bottom:14px}.stats span{color:#fff;font-size:19px;font-weight:500;line-height:1.25;max-width:320px}.booking{background:linear-gradient(90deg,#293133,#20272a)}.booking__wrap{display:grid;gap:48px;grid-template-columns:1fr 1fr}.booking h2{font-size:48px;font-weight:700;line-height:1.02;margin-bottom:24px}.booking p{color:hsla(0,0%,100%,.8);font-size:18px;font-weight:500;line-height:1.4;margin-bottom:32px}.booking form{gap:14px}.booking form,.booking__field{display:flex;flex-direction:column}.booking__field{gap:8px}.booking__field label{color:hsla(0,0%,100%,.88);font-size:14px;font-weight:500;line-height:1.25}.booking__field .required-mark{color:#cf1717}.booking__submit{font-size:19px;font-weight:500;height:64px;line-height:1.2;margin-top:10px;padding:0 24px;width:100%}.booking__consent{align-items:flex-start;color:hsla(0,0%,100%,.8);display:flex;font-size:14px;font-weight:400;gap:10px;line-height:1.45;margin-top:2px}.booking__consent input[type=checkbox]{accent-color:#cf1717;flex:0 0 18px;height:18px;margin-top:2px;width:18px}.booking__consent a{color:#ffd2d2;text-decoration:underline;text-underline-offset:2px}.booking input,.booking select,.booking textarea{background:hsla(0,0%,7%,.35);border:1px solid hsla(0,0%,100%,.1);border-radius:14px;color:#fff;font-size:16px;font-weight:400;line-height:1.35;outline:none;padding:0 20px;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.booking input:focus,.booking select:focus,.booking textarea:focus{border-color:rgba(207,23,23,.85);box-shadow:0 0 0 3px rgba(207,23,23,.25)}.booking input::-moz-placeholder,.booking select::-moz-placeholder,.booking textarea::-moz-placeholder{color:hsla(0,0%,100%,.45)}.booking input::placeholder,.booking select::placeholder,.booking textarea::placeholder{color:hsla(0,0%,100%,.45)}.booking input,.booking select{height:56px}.booking textarea{min-height:130px;padding:16px 20px;resize:vertical}.contacts-card,.hours-card{background:hsla(0,0%,7%,.4);border:1px solid hsla(0,0%,100%,.1);border-radius:16px;box-shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.1);padding:33px;transition:transform .3s ease,border-color .3s ease}.contacts-card:hover,.hours-card:hover{border-color:rgba(207,23,23,.4);transform:translateY(-4px)}.contacts-card{margin-bottom:32px}.contacts-card h3{font-size:24px;font-weight:700;line-height:1.05;margin-bottom:30px}.contacts-card ul{display:flex;flex-direction:column;gap:18px}.contacts-card li{align-items:flex-start;display:flex;gap:16px}.contacts-card__icon{flex:0 0 24px;height:24px;margin-top:2px;width:24px}.contacts-card__icon svg{display:block;height:24px;width:24px}.contacts-card__item-content strong{display:block;font-size:16px;font-weight:500;line-height:1.1;margin-bottom:8px}.contacts-card__item-content a{color:hsla(0,0%,100%,.9);font-size:16px;line-height:1.4;text-decoration:underline;text-underline-offset:2px}.contacts-card__item-content span{color:hsla(0,0%,100%,.8);font-size:16px;line-height:1.45}.contacts-card__item-content small{color:hsla(0,0%,100%,.6);display:block;font-size:13px;line-height:1.35;margin-top:6px}.contacts-card__links{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.contacts-card__messenger{align-items:center;background:hsla(0,0%,100%,.04);border:1px solid hsla(0,0%,100%,.2);border-radius:999px;color:hsla(0,0%,100%,.92);display:inline-flex;height:44px;justify-content:center;min-width:44px;padding:0;text-decoration:none;transition:transform .2s ease,border-color .2s ease,background-color .2s ease;width:44px}.contacts-card__messenger:hover{background:rgba(207,23,23,.18);border-color:rgba(207,23,23,.7);transform:translateY(-1px)}.contacts-card__messenger--secondary{background:hsla(0,0%,100%,.02)}.contacts-card__action-icon{align-items:center;display:inline-flex;height:20px;justify-content:center;width:20px}.contacts-card__action-icon svg{color:currentColor;display:block;height:20px;opacity:.9;width:20px}.contacts-card__links--social{margin-top:14px}.contacts-card__links--social a{align-items:center;background:hsla(0,0%,100%,.03);border:1px solid hsla(0,0%,100%,.2);border-radius:12px;color:hsla(0,0%,100%,.85);display:inline-flex;height:44px;justify-content:center;text-decoration:none;transition:border-color .2s ease,color .2s ease,background-color .2s ease;width:44px}.contacts-card__links--social a:hover{background:rgba(207,23,23,.2);border-color:rgba(207,23,23,.8);color:#fff}.hours-card h4{font-size:16px;font-weight:700;line-height:1.2;margin-bottom:16px}.hours-card p{font-size:16px;line-height:1.25;margin:0}.map-card__embed{border:1px solid hsla(0,0%,100%,.15);border-radius:14px;margin-bottom:16px;margin-top:18px;overflow:hidden;width:100%}.map-card__embed iframe{border:0;display:block;min-height:260px;width:100%}.map-card__actions{display:flex;flex-wrap:wrap;gap:10px}.map-card__actions a{align-items:center;background:hsla(0,0%,100%,.03);border:1px solid hsla(0,0%,100%,.2);border-radius:12px;color:hsla(0,0%,100%,.8);display:inline-flex;height:44px;justify-content:center;text-decoration:none;transition:border-color .2s ease,background-color .2s ease,transform .2s ease;width:44px}.map-card__actions a:hover{background:rgba(207,23,23,.18);border-color:rgba(207,23,23,.75);transform:translateY(-1px)}.map-card__action-icon{align-items:center;color:#ffd5d5;display:inline-flex;height:20px;justify-content:center;width:20px}.map-card__action-icon svg{display:block;height:20px;width:20px}.map-card__route{box-shadow:none;height:44px;min-width:44px;padding:0;width:44px}.booking-modal{display:grid;inset:0;opacity:0;padding:20px;place-items:center;pointer-events:none;position:fixed;transition:opacity .25s ease,visibility .25s ease;visibility:hidden;z-index:60}.booking-modal.is-open{opacity:1;pointer-events:auto;visibility:visible}.booking-modal__overlay{backdrop-filter:blur(4px);background:radial-gradient(circle at 30% 10%,rgba(207,23,23,.2),transparent 55%),rgba(0,0,0,.72);inset:0;position:absolute}.booking-modal__content{background:linear-gradient(140deg,hsla(0,0%,100%,.03),hsla(0,0%,100%,0)),linear-gradient(165deg,#202a30,#181f24 62%);border:1px solid rgba(207,23,23,.52);border-radius:24px;box-shadow:0 26px 58px rgba(0,0,0,.52);padding:36px 30px 30px;position:relative;width:min(100%,620px)}.booking-modal__status{align-items:center;background:rgba(207,23,23,.18);border:1px solid rgba(207,23,23,.45);border-radius:16px;color:#ffd9d9;display:inline-flex;font-size:28px;font-weight:700;height:56px;justify-content:center;line-height:1;margin-bottom:18px;width:56px}.booking-modal__title{font-size:32px;font-weight:700;line-height:1.1;margin-bottom:12px;padding-right:42px}.booking-modal__text{color:hsla(0,0%,100%,.8);font-size:18px;font-weight:500;line-height:1.45;margin-bottom:24px}.booking-modal__actions{display:flex}.booking-modal__btn{min-width:220px}.booking-modal__close{background:hsla(0,0%,100%,.12);border:0;border-radius:50%;color:hsla(0,0%,100%,.92);cursor:pointer;font-size:22px;height:36px;line-height:1;position:absolute;right:14px;top:14px;transition:background-color .2s ease,transform .2s ease;width:36px}.booking-modal__close:hover{background:rgba(207,23,23,.34);transform:rotate(90deg)}.footer{background:#090a0f;border-top:1px solid rgba(207,23,23,.1);padding:64px 0 20px}.footer__top{display:grid;gap:36px;grid-template-columns:1.45fr 1fr 1.15fr 1fr;margin-bottom:48px}.footer__brand p{color:hsla(0,0%,100%,.65);font-size:14px;line-height:1.28;margin-top:16px;max-width:286px}.footer__contacts h4,.footer__nav h4{font-size:16px;font-weight:700;line-height:1.1;margin-bottom:16px}.footer__contacts a,.footer__contacts span,.footer__nav a,.footer__nav span{color:hsla(0,0%,100%,.65);display:block;font-size:14px;line-height:1.35}.footer__contacts a+a,.footer__contacts span+span,.footer__nav a+a,.footer__nav span+span{margin-top:10px}.footer__socials{display:flex;flex-wrap:wrap;gap:12px}.footer__socials a{align-items:center;background:hsla(0,0%,100%,.03);border:1px solid hsla(0,0%,100%,.22);border-radius:12px;color:hsla(0,0%,100%,.92);display:inline-flex;height:46px;justify-content:center;margin-top:0!important;transition:transform .2s ease,border-color .2s ease,background-color .2s ease;width:46px}.footer__socials a svg{display:block;height:22px;width:22px}.footer__socials a:hover{background:rgba(207,23,23,.18);border-color:rgba(207,23,23,.75);transform:translateY(-2px)}.footer__bottom{align-items:center;border-top:1px solid rgba(207,23,23,.35);display:flex;gap:24px;justify-content:space-between;padding-top:30px}.footer__bottom a,.footer__bottom span{color:hsla(0,0%,100%,.4);font-size:14px;line-height:1.3}.footer__legal{display:flex;flex-wrap:wrap;gap:10px 24px}.footer__messengers{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.footer__messengers a{align-items:center;background:hsla(0,0%,100%,.03);border:1px solid hsla(0,0%,100%,.22);border-radius:12px;color:hsla(0,0%,100%,.85)!important;display:inline-flex!important;height:40px;justify-content:center;margin-top:0!important;padding:0;text-decoration:none!important;transition:border-color .2s ease,background-color .2s ease;width:40px}.footer__messengers a:hover{background:rgba(207,23,23,.16);border-color:rgba(207,23,23,.72)}.footer__messenger-icon{align-items:center;display:inline-flex;height:16px;justify-content:center;width:16px}.footer__messenger-icon svg{color:currentColor;display:block;height:16px;width:16px}@media only screen and (max-width:1600px){.hero__content{margin-left:auto}.hero h1{font-size:64px;line-height:1.15}}@media only screen and (max-width:1280px){.container{padding:0 20px}.header__nav{gap:20px;margin-right:20px}.hero__content{margin-left:280px;max-width:700px}.hero h1{font-size:56px}.hero p{font-size:18px;line-height:1.6}.section__head h2{font-size:40px}.section__head p{font-size:24px}.object-card__content h3{font-size:30px}.booking h2{font-size:48px}.contacts-card h3{font-size:24px}.contacts-card__item-content strong,.footer__brand p,.footer__contacts h4,.footer__nav h4,.hours-card h4,.hours-card p{font-size:16px}.footer__bottom a,.footer__bottom span,.footer__contacts a,.footer__contacts span,.footer__nav a,.footer__nav span{font-size:14px}}@media only screen and (max-width:1024px){.header__inner{min-height:64px}.header__nav{display:none}.hero{min-height:auto;padding:120px 0 80px}.hero__content{margin-left:0;max-width:100%;padding-top:0}.hero h1{font-size:48px;line-height:1.15}.hero h1,.hero p{max-width:640px}.hero__actions{flex-wrap:wrap}.footer__top,.gallery__grid,.highlights__grid,.infrastructure__grid,.reviews__grid,.services__grid,.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.services__grid{max-width:none}.booking__wrap,.object-card{gap:24px;grid-template-columns:1fr}.object-card--reverse .object-card__content,.object-card--reverse .object-card__image{order:0}.section{padding:72px 0}.section__head{margin-bottom:40px}.booking__contacts{display:grid;gap:24px;grid-template-columns:1fr 1fr}.contacts-card{margin-bottom:0}.footer__bottom{align-items:flex-start;flex-direction:column}.footer__top{gap:28px;grid-template-columns:repeat(2,minmax(0,1fr))}.footer__brand p{font-size:16px;margin-top:18px}.footer__contacts h4,.footer__nav h4{font-size:18px;margin-bottom:16px}.footer__contacts a,.footer__contacts span,.footer__nav a,.footer__nav span{font-size:15px;line-height:1.4}.footer__bottom a,.footer__bottom span{font-size:14px}}@media only screen and (max-width:768px){.container{padding:0 16px}.btn{width:100%}.btn--small{width:auto}.hero{padding-top:108px}.hero h1{font-size:40px;max-width:100%}.hero p{font-size:16px;line-height:1.5;max-width:100%}.hero__tags li{white-space:normal}.hero__actions .btn--ghost{width:100%}.section__head h2{font-size:34px}.section__head p{font-size:20px;line-height:1.3}.booking__contacts,.footer__top,.gallery__grid,.highlights__grid,.infrastructure__grid,.reviews__grid,.services__grid,.stats{grid-template-columns:1fr}.booking h2,.feature-card h3,.object-card__content h3{font-size:24px}.booking input,.booking select{height:52px}.contacts-card h3{font-size:34px;margin-bottom:18px}.contacts-card__item-content span,.contacts-card__item-content strong{font-size:16px}.hours-card h4{font-size:16px;margin-bottom:12px}.hours-card p{font-size:16px}.infrastructure .section__head h2,.services .section__head h2{font-size:38px}.infrastructure .section__head p,.services .section__head p{font-size:20px}.service-card__title{font-size:19px}.footer__brand p{font-size:16px;max-width:100%}.footer__contacts a,.footer__contacts h4,.footer__contacts span,.footer__nav a,.footer__nav h4,.footer__nav span{font-size:16px}.footer__bottom a,.footer__bottom span{font-size:14px}.stats strong{font-size:clamp(66px,17vw,96px)}.booking-modal__content{padding:28px 18px 22px}.booking-modal__status{border-radius:14px;font-size:24px;height:48px;margin-bottom:14px;width:48px}.booking-modal__title{font-size:26px}.booking-modal__text{font-size:16px;margin-bottom:18px}.booking-modal__btn{min-width:100%}}@media only screen and (max-width:520px){.header__inner{gap:12px}.logo{height:24px;width:110px}.btn--small{font-size:13px;padding:10px 16px}.hero{padding-top:100px}.hero h1{font-size:34px}.hero__actions{gap:12px}.section{padding:64px 0}.section__head h2{font-size:32px}.section__head p{font-size:18px}.contacts-card,.feature-card,.hours-card,.info-card,.object-card__content,.review-card,.stats__item{padding:24px}.object-card__image{min-height:260px}.service-card{min-height:142px;padding:16px}.service-card__title{font-size:18px}.service-card__description{font-size:14px;inset:0;opacity:1;padding:14px;transform:translateY(0)}.services__cta-btn{font-size:16px;width:100%}.footer__bottom .footer__legal{flex-direction:column;gap:12px}.footer__top{gap:20px}.footer__socials a{height:44px;width:44px}}@media (hover:none){.service-card{justify-content:center}.service-card__description{opacity:1;pointer-events:auto;position:absolute;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;scroll-behavior:auto!important;transition:none!important}.hero__content>*,.scroll-reveal{opacity:1!important}.scroll-reveal{transform:none!important}} \ No newline at end of file diff --git a/assets/images/svg-sprites.svg b/assets/images/svg-sprites.svg index e487e05..034634e 100644 --- a/assets/images/svg-sprites.svg +++ b/assets/images/svg-sprites.svg @@ -43,4 +43,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/js/main.js b/assets/js/main.js index f3828be..915c01f 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -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"); diff --git a/assets/scss/_base.scss b/assets/scss/_base.scss index 42ff7f2..6af43c5 100644 --- a/assets/scss/_base.scss +++ b/assets/scss/_base.scss @@ -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; } } } diff --git a/index.html b/index.html index 96c5732..7b8a213 100644 --- a/index.html +++ b/index.html @@ -282,36 +282,26 @@ -
+
-

Отзывы

-

Что говорят о нас спортсмены и тренеры

+

Цифры о комплексе

+

Ключевые показатели инфраструктуры OlimpArena

- -
-
-

"Лучшие ледовые условия в Москве. Качество льда на высочайшем уровне, всё организовано профессионально."

- Александр Иванов - Тренер хоккейной школы +
+
+ 0 + номеров для проживания
-
-

"Отличный комплекс для тренировок. Залы хореографии и фитнеса действительно помогают прогрессировать быстрее."

- Елена Петрова - Фигуристка +
+ 0 + ледовые арены 56×26 м
-
-

"Проводим здесь турниры уже второй год. Профессиональный подход команды и высокая готовность площадок."

- Дмитрий Соколов - Организатор турниров +
+ 0 + оборудованных раздевалок
- -
-
150+Мест для проживания
-
2Профессиональных ледовых поля
-
10Оборудованных раздевалок
-
@@ -376,7 +366,18 @@
Адрес - Москва, в пределах ТТК
15 минут от м. Волгоградский проспект
+ Москва, Автомобильный проезд, 4 +
+ +
  • + +
    + Режим работы + Ежедневно с 06:00 до 23:00
  • @@ -387,7 +388,7 @@
    Телефон - +7 (495) 123-45-67 + +7 (495) 123-45-67
  • @@ -398,14 +399,64 @@
    Email - receptionadmin@o-arena.ru + receptionadmin@o-arena.ru
  • + + -
    -

    Режим работы

    -

    Ежедневно: 06:00 — 23:00

    +
    +

    Карта и маршрут

    +
    + +
    +
    @@ -432,44 +483,67 @@ -

    Современный спортивный комплекс в центре Москвы

    +

    OlimpArena — спорткомплекс полного цикла: ледовые арены, залы, проживание и питание на одной территории.

    + -