*{padding:0;margin:0;border:0}*,*:before,*:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}:focus,:active{outline:none}a:focus,a:active{outline:none}nav,footer,header,aside{display:block}html,body{height:100%;width:100%;font-size:100%;line-height:1;font-size:14px;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;-webkit-text-size-adjust:100%;scroll-behavior:smooth}input,button,textarea{font-family:inherit}input::-ms-clear{display:none}button{cursor:pointer}button::-moz-focus-inner{padding:0;border:0}a,a:visited{text-decoration:none}a:hover{text-decoration:none}ul li{list-style:none}img{vertical-align:top}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:400}body{font-family:"Montserrat",sans-serif;font-weight:400;font-size:14px;color:#1e1f21;background:#fff}.container{max-width:1263px;margin:0 auto;padding:0 59px}.header{padding:37px 0 24px 0}.header__menu{display:flex;align-items:center;justify-content:space-between}.header__menu-link{font-size:18px;font-weight:500;color:rgb(0 0 0 / .67)}.header__btn-link{display:flex;width:180px;height:39px;border-radius:5px;background:#2a8bec;justify-content:center;align-items:center;font-family:"Inter",sans-serif;font-weight:700;font-size:17px;text-transform:uppercase;color:#fff;margin-left:2px;padding:10px 30px}.header__logo{margin-right:40px;margin-bottom:10px}.header__menu-item:not(.header__logo):not(.header__btn){margin-right:80px}.hero{background:linear-gradient(172.1deg,rgb(255 255 255 / .19) -17.61%,rgb(227 227 227 / .19) -9.76%,rgb(200 200 200 / .19) 5.3%,rgb(95 95 95 / .19) 55.43%,rgb(0 0 0 / .19) 72.83%);padding:81px 0 0 0;box-shadow:-11px 7px 13.7px 0 rgb(0 0 0 / .25)}.hero__title{font-size:40px;color:#002e61;text-transform:uppercase;font-weight:700;max-width:574px;margin-bottom:23px}.hero__subtitle{font-family:"Inter",sans-serif;font-size:28px;line-height:125%;margin-bottom:37px}.hero__subtitle span{display:block;font-family:"Montserrat",sans-serif;font-size:28px;line-height:126%;color:rgb(0 0 0 / .67)}.hero__actions{display:flex;gap:43px;padding-bottom:222px}.hero__btn{display:flex;justify-content:center;align-items:center;font-weight:700;font-size:20px;text-transform:uppercase;border-radius:5px;padding:12px 30px;box-shadow:0 4px 4px 0 rgb(0 0 0 / .25)}.hero__btn--book{color:#fff;background:#002e61;width:213px;height:50px}.hero__btn--call{color:#357ccd;background:#fff;width:247px;height:50px}.hero .container{position:relative}.hero__bg{position:absolute;bottom:0;right:0;z-index:-1}.estimates{padding:105px 0 0 0}.section-title{font-weight:700;font-size:32px;color:#002e61;line-height:54px;text-transform:uppercase;margin-bottom:10px;text-align:center}.estimates__subtitle{text-align:center;font-weight:700;font-size:20px;margin-bottom:40px}.estimates__list{display:flex;gap:32px 48px;flex-wrap:wrap}.estimates__item{display:flex;align-items:center;width:569px;height:148px;box-shadow:35px 23px 68px 0 rgb(0 0 0 / .07);box-shadow:-6px -3px 28px 0 rgb(0 0 0 / .07);border-radius:16px;padding:28px 20px 28px 20px}.estimates .container{max-width:1310px}.estimates__item-img{margin-right:24px}.estimates__item-title{font-size:22px;color:#030303;font-weight:700;margin-bottom:6px}.estimates__item-subtitle{font-family:"Roboto",sans-serif;font-size:20px;font-weight:700;color:#5a5a5a;text-transform:uppercase}.estimates__item-link{margin-left:auto}.appiance{padding:105px 0}.appiance__list{display:flex;gap:20px;margin-top:50px}.appiance__item{display:flex;flex-direction:column;gap:20px;align-items:center}.appiance__item-title{background:#f4f5f7;font-size:17px;line-height:137%;width:183px;height:92px;display:flex;justify-content:center;align-items:center;text-align:center;padding:22px 11px;color:#525252;text-transform:capitalize}.appiance__item-img{height:152px}.team{padding-top:80px}.team__title{margin-bottom:5px}.team__subtitle{text-align:center;font-weight:500;font-size:14px;color:#626d73}.team__list{display:flex;flex-direction:column;gap:51px;margin-top:43px;padding-bottom:100px}.team__item{display:flex;gap:40px;max-width:562px;align-items:flex-start}.team__item-title{font-size:16px;font-weight:900;line-height:21px;letter-spacing:1.6px;text-transform:uppercase;margin-bottom:10px}.team__item-subtitle{font-size:14px;line-height:21px}.team .container{position:relative}.team__bg{position:absolute;bottom:-10px;right:-80px;z-index:-1}.call{background:#2a8bec;padding:45px 0}.call__offer{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:27px}.call__title{text-transform:uppercase;font-size:38px;font-weight:600;color:#fff;margin:0 auto;text-align:center;padding:19px 20px;display:flex;align-items:center;gap:15px;border:1px solid rgb(255 255 255 / .4);border-radius:5px}.call__title::after{content:"";display:block;width:43px;height:31px;background:url(../img/call__arrow.svg) no-repeat center top / cover}.call__inner{display:flex;gap:60px}.call__text{font-size:16px;line-height:24px;color:#fff;opacity:.6}.call__text span{font-weight:600;margin-left:10px}.faq{padding:100px 0 0}.faq__list{display:flex;flex-direction:column;gap:20px;margin-top:50px}.faq__question{font-size:20px;font-weight:600}.faq__answer{font-size:14px;font-weight:400;line-height:21px;margin-top:25px}.faq__item{border:1px solid #2a8bec;padding:30px;border-radius:16px;cursor:pointer}.faq__item p:not(:last-child){margin-bottom:25px}.faq__question{position:relative;font-size:20px;font-weight:600;padding-right:25px}.faq__arrow{position:absolute;right:10px;top:50%;width:10px;height:10px;border-right:2px solid #2a8bec;border-bottom:2px solid #2a8bec;transform:translateY(-50%) rotate(45deg);transition:transform 0.3s ease}.faq__item.active .faq__arrow{transform:translateY(-50%) rotate(-135deg)}.works__title{color:#002e61;margin-bottom:50px;font-size:32px;font-weight:700;line-height:54px;letter-spacing:1%;text-transform:uppercase}.works{position:relative;overflow:visible;padding:100px 0}.works .works__slider{overflow:visible;margin-top:60px}.works .swiper-slide{width:auto}.works .swiper-slide img{display:block;width:402px;transition:transform 0.3s ease}.works .swiper-slide-active img{transform:scale(1.15)}.works .swiper-button-prev,.works .swiper-button-next{background:#fff;border:2px solid #2a8bec;color:#2a8bec;width:49px;height:49px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:0.3s;right:0;left:auto;top:auto;bottom:-35px}.works .swiper-button-prev{right:250px}.works .swiper-button-next{right:180px}.works .swiper-button-prev:hover,.works .swiper-button-next:hover{background:#fff;border:1px solid #000}.works .swiper-button-next:hover::after,.works .swiper-button-prev:hover::after{color:#000}.works .swiper-button-prev::after,.works .swiper-button-next::after{font-size:18px}.works{overflow:hidden;padding-bottom:59px}.works .swiper-slide{transition:all 0.4s ease;transform-origin:center bottom}.works .swiper-slide-active{min-width:432px;z-index:2}.works .swiper-slide:not(.swiper-slide-active){min-width:432px;transform:translateY(-28px)}.works__slider{margin-left:32px}.reviews{padding:105px 0}.reviews__slide{display:flex;flex-direction:column;align-items:center;background:#fdfdfd;border-radius:12px;padding:24px 28px;margin:0 0}.reviews__slide-icon{margin-bottom:24px}.reviews__slide-text{margin-bottom:32px;font-weight:700;font-size:16px;color:#959595;line-height:20px;text-align:center}.reviews__subtitle{text-align:center;margin-bottom:40px;color:#030303;font-size:18px;font-weight:700}.reviews__slide-author{font-weight:700;color:#030303;font-size:18px;line-height:26px;margin-top:auto}.reviews__slide{display:flex;flex-direction:column;align-items:center;height:442px}.reviews__slider{max-width:995px}.reviews__container{position:relative}.reviews .swiper-button-prev::after{content:"";display:block;background:url(../img/reviews_left-arrow.png) no-repeat center top / cover;width:48px;height:48px}.reviews .swiper-button-next::after{content:"";display:block;background:url(../img/reviews_right-arrow.png) no-repeat center top / cover;width:48px;height:48px}.reviews .swiper-button-prev,.reviews .swiper-button-next{width:50px;height:48px}.reviews .swiper-button-prev{left:-50px}.reviews .swiper-button-next{right:-50px}.brands{padding:80px 0}.brands__subtitle{max-width:700px;margin:0 auto;text-align:center;font-size:14px;line-height:26px;color:#626d73;font-weight:500;margin-bottom:44px}.brands__list{display:flex;justify-content:center;gap:24px}.brands__item{width:163px;height:81px;display:flex;justify-content:center;align-items:center;border:.7px solid #989898;border-radius:14px}.brands__list--overflow{margin-top:30px}.contact{padding:105px 0}.contact__inner{display:flex;justify-content:space-between}.contact__title{color:#000e5b;font-size:32px;line-height:54px;letter-spacing:1%;text-transform:uppercase;font-weight:700;margin-bottom:25px}.contact__form{display:flex;flex-wrap:wrap;max-width:551px;gap:25px 20px}.contact input{height:54px;border:1px solid #d6d6d6;border-radius:5px;padding-left:20px;padding-right:5px;font-size:16px}.contact input::placeholder,.contact textarea::placeholder{color:rgb(56 56 56 / .35);font-size:16px;font-weight:300}.contact input[name="name"],.contact input[name="phone"]{width:265px}.contact input[name="email"]{width:100%}.contact button{width:100%;height:46px;display:flex;justify-content:center;align-items:center;background:#08f;color:#fff;text-transform:uppercase;font-family:"Poppins",sans-serif;font-weight:500;font-size:17px;border-radius:10px}.contact textarea{width:100%;height:130px;border:1px solid #d6d6d6;border-radius:5px;padding-left:20px;padding-top:20px;padding-right:5px;font-size:16px;resize:none}.footer{border-top:1px solid rgb(151 151 151 / .5);padding:43px 0 57px 0;background:linear-gradient(179.8deg,#ffffff 27.59%,#c9dae9 68.34%,#8cb1d1 90.01%,#005299 124.48%)}.footer__logo{margin-bottom:39px}.footer__menu{display:flex;width:100%;justify-content:space-between;margin-bottom:76px}.footer .container{max-width:850px;display:flex;flex-direction:column;justify-content:center;align-items:center}.footer__call{margin-bottom:68px;color:#002e61;font-size:18px;font-weight:400;display:flex;align-items:center;gap:3px}.footer__call:before{content:"";display:block;width:21px;height:21px;background:url(../img/call_icon.svg) no-repeat center top / cover}.footer__socials{display:flex;align-items:center;gap:35px}.footer__menu-link{font-size:18px;font-family:"Open Sans",sans-serif;font-weight:300;line-height:100%;color:#002554}.team{overflow:hidden}.team__bg{z-index:-1}@media screen and (max-width:1420px){.appiance__list{flex-wrap:wrap;justify-content:center;gap:50px}.appiance__item{width:30%}.estimates__list{justify-content:center}.appiance__item-title{width:247px}.reviews__container{margin:0 40px}.team__bg{bottom:-95px}}@media screen and (max-width:1300px){.header__menu-item:not(.header__logo):not(.header__btn){margin-right:15px}.hero__title{font-size:30px;max-width:350px}.hero__subtitle,.hero__subtitle span{font-size:24px}.hero__actions{flex-direction:column;gap:14px;padding-bottom:110px}.estimates{padding-top:50px}.appiance{padding-top:70px}.appiance__list{gap:50px 30px}.brands__list{flex-wrap:wrap}.contact__inner{flex-direction:column;gap:50px;justify-content:center;align-items:center}.reviews__slider{max-width:672px}}@media screen and (max-width:1100px){.hero__bg{width:55%}.header__menu{flex-direction:column;gap:30px}.header__logo,.header__menu-item:not(.header__logo):not(.header__btn){margin-right:0}.header{padding:21px 0 30px 0}.team__bg{width:46%}.faq__question{font-size:18px;line-height:25px}.brands__item{width:25%}.works .swiper-slide-active{min-width:200px}.works .swiper-slide:not(.swiper-slide-active){min-width:200px}.works .swiper-slide img{width:200px}.works .swiper-slide-active img{transform:scale(1)}}@media screen and (max-width:900px){.appiance{padding-bottom:50px}.team{padding-top:30px}.call__title{font-size:30px}.call__inner{flex-direction:column;justify-content:center;align-items:center;gap:10px}.faq{padding-top:40px}.works{padding-top:70px}.reviews{padding-top:50px}.brands{padding-top:30px;padding-bottom:50px}.contact{padding-top:20px;padding-bottom:60px}}@media screen and (max-width:768px){.footer__menu{flex-direction:column;justify-content:center;align-items:center;gap:30px;margin-bottom:40px}.footer__call{margin-bottom:40px}.contact__right{max-width:80%}.hero__bg{display:none}.hero .container{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.hero__actions{align-items:center}.section-title{font-size:23px}.team__bg{display:none}.team__list{align-items:center;padding-bottom:60px}.appiance__item-title{width:191px;height:69px}.works__title{font-size:25px;text-align:center}.reviews__slide-text{font-size:14px}.faq__question{font-size:17px}.works .swiper-button-prev,.works .swiper-button-next{position:static;margin-top:0}.swiper-buttons-container{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:30px}.estimates__item{max-width:450px}.estimates__item-title{font-size:18px}.estimates__item-subtitle{font-size:17px}.appiance__list{gap:50px 40px}.team__item{text-align:center;flex-direction:column;align-items:center;gap:15px}.team__item-subtitle{max-width:400px}.reviews{padding-bottom:50px;padding-top:10px}}@media screen and (max-width:600px){.appiance__item-title{font-size:14px;width:148px}.contact input[name="name"],.contact input[name="phone"]{width:100%}.reviews__slide{height:475px}}@media screen and (max-width:480px){.estimates__item-img{width:18%}.estimates__item-link img{width:80%}.estimates__item-subtitle{font-size:14px}.estimates__item-title{font-size:16px;margin-bottom:10px}.estimates__subtitle{font-size:17px}.section-title{line-height:26px;margin-bottom:20px}.appiance__list{flex-direction:column;justify-content:center;align-items:center}.appiance__item-title{font-size:16px;width:230px}}

/* ====== STERLING HOME GROUP — BUTTON FX (works with existing classes) ====== */

:root{

  --blue-1:#0080C5;

  --blue-2:#004E77;

  --neutral-gray:#4D4D4F;

  --ring: 0 0 0 3px rgba(0,128,197,.18), 0 0 0 1px #0080C5 inset;

  --ease: cubic-bezier(.22,.61,.36,1);

  --shadow-1: 0 8px 20px rgba(4,78,119,.14);

  --shadow-2: 0 14px 34px rgba(4,78,119,.22);

}



/* Группа ПЕРВИЧНЫХ CTA (градиент + glow) */

:where(.header__btn-link,

       .hero__btn--book,

       .contact button,

       .mobile-nav__cta){

  position:relative; isolation:isolate; overflow:hidden;

  background:linear-gradient(90deg,var(--blue-1),var(--blue-2)) !important;

  color:#fff !important;

  box-shadow:var(--shadow-1), 0 1px 0 rgba(255,255,255,.35) inset;

  transform:translateZ(0);

  transition:transform .15s var(--ease), box-shadow .3s var(--ease), filter .3s var(--ease), opacity .3s var(--ease);

}



/* hover/active + «магнитный» tilt */

@media (hover:hover){

  :where(.header__btn-link,

         .hero__btn--book,

         .contact button,

         .mobile-nav__cta):hover{

    transform:translateY(-2px);

    box-shadow:var(--shadow-2);

    filter:saturate(1.05) brightness(1.02);

  }

  :where(.header__btn-link,

         .hero__btn--book,

         .contact button,

         .mobile-nav__cta):active{

    transform:translateY(0) scale(.985);

    box-shadow:var(--shadow-1);

  }

}



/* shine-sweep (диагональный блик) */

:where(.header__btn-link,

       .hero__btn--book,

       .contact button,

       .mobile-nav__cta)::after{

  content:""; position:absolute; inset:-150% -50% auto auto;

  width:60%; height:300%; pointer-events:none; opacity:0;

  transform:rotate(20deg) translateX(-120%);

  background:linear-gradient(to right, transparent, rgba(255,255,255,.35), transparent);

  transition: transform .9s cubic-bezier(.16,1,.3,1), opacity .2s;

}

@media (hover:hover){

  :where(.header__btn-link,

         .hero__btn--book,

         .contact button,

         .mobile-nav__cta):hover::after{

    opacity:1; transform:rotate(20deg) translateX(60%);

  }

}



/* Фокус-кольцо и доступность */

:where(.header__btn-link,

       .hero__btn--book,

       .hero__btn--call,

       .contact button,

       .mobile-nav__cta):focus-visible{

  outline:none; box-shadow:var(--ring);

}



/* СЕКОНДАРНЫЕ (светлые) кнопки: hero call, и др. белые */

:where(.hero__btn--call){

  position:relative; isolation:isolate; overflow:hidden;

  background:#fff !important; color:#002e61 !important;

  box-shadow:var(--shadow-1), 0 1px 0 rgba(255,255,255,.6) inset;

  transition:transform .15s var(--ease), box-shadow .3s var(--ease), background .3s var(--ease);

}

@media (hover:hover){

  .hero__btn--call:hover{ transform:translateY(-2px); box-shadow:var(--shadow-2); }

  .hero__btn--call:active{ transform:translateY(0) scale(.985); }

}

.hero__btn--call::after{

  content:""; position:absolute; inset:-150% -50% auto auto;

  width:60%; height:300%; pointer-events:none; opacity:0;

  transform:rotate(20deg) translateX(-120%);

  background:linear-gradient(to right, transparent, rgba(0,46,97,.18), transparent);

  transition: transform .9s cubic-bezier(.16,1,.3,1), opacity .2s;

}

@media (hover:hover){

  .hero__btn--call:hover::after{ opacity:1; transform:rotate(20deg) translateX(60%); }

}



/* CTA в синем блоке «Call us» — лёгкий glow */

.call__title{

  position:relative; isolation:isolate;

  box-shadow:0 8px 24px rgba(0,0,0,.2);

  transition:transform .15s var(--ease), box-shadow .3s var(--ease), filter .3s var(--ease);

}

@media (hover:hover){

  .call__title:hover{ transform:translateY(-2px); box-shadow:0 14px 38px rgba(0,0,0,.28); filter:brightness(1.05); }

  .call__title:active{ transform:translateY(0) scale(.985); }

}



/* Футер-кнопка звонка — стиль «ghost/outline» */

.footer__call{

  position:relative; isolation:isolate; overflow:hidden;

  border-radius:10px; padding:12px 16px;

  background:rgba(255,255,255,.85);

  transition:transform .15s var(--ease), box-shadow .3s var(--ease), background .3s var(--ease);

}

@media (hover:hover){

  .footer__call:hover{ transform:translateY(-2px); box-shadow:var(--shadow-1); background:#fff; }

}



/* Ripple (для всех основных триггеров) */

:where(.header__btn-link,

       .hero__btn--book,

       .hero__btn--call,

       .mobile-nav__cta,

       .contact button,

       .call__title,

       .footer__call)::before{

  content:""; position:absolute; inset:0; border-radius:inherit;

  background:radial-gradient(circle at var(--rx,50%) var(--ry,50%), rgba(255,255,255,.25), transparent 40%);

  transform:scale(0); opacity:0; transition:transform .35s var(--ease), opacity .45s var(--ease);

}

:where(.header__btn-link,

       .hero__btn--book,

       .hero__btn--call,

       .mobile-nav__cta,

       .contact button,

       .call__title,

       .footer__call).is-rippling::before{

  transform:scale(3); opacity:1;

}



/* Loading / Success (по желанию включать классами) */

:where(.header__btn-link,

       .hero__btn--book,

       .contact button,

       .mobile-nav__cta).is-loading{ pointer-events:none; }

:where(.header__btn-link,

       .hero__btn--book,

       .contact button,

       .mobile-nav__cta).is-loading > *{ opacity:0; }

:where(.header__btn-link,

       .hero__btn--book,

       .contact button,

       .mobile-nav__cta).is-loading::after{

  content:""; position:absolute; inset:0; margin:auto; width:22px; height:22px; border-radius:50%;

  border:2.5px solid rgba(255,255,255,.6); border-top-color:#fff; animation:spin .9s linear infinite;

}

@keyframes spin{to{transform:rotate(360deg);}}



/* success галочка */

:where(.header__btn-link,

       .hero__btn--book,

       .contact button,

       .mobile-nav__cta).is-success{ pointer-events:none; }

:where(.header__btn-link,

       .hero__btn--book,

       .contact button,

       .mobile-nav__cta).is-success > *{ opacity:0; }

:where(.header__btn-link,

       .hero__btn--book,

       .contact button,

       .mobile-nav__cta).is-success::after{

  content:""; position:absolute; inset:0; margin:auto; width:22px; height:22px;

  background:linear-gradient(90deg,var(--blue-1),var(--blue-2));

  -webkit-mask:

    radial-gradient(circle at 11px 13px, #000 3px, transparent 3.5px),

    linear-gradient(#000 0 0) center/14px 3px no-repeat,

    linear-gradient(#000 0 0) 8px 11px/4px 10px no-repeat;

  mask:

    radial-gradient(circle at 11px 13px, #000 3px, transparent 3.5px),

    linear-gradient(#000 0 0) center/14px 3px no-repeat,

    linear-gradient(#000 0 0) 8px 11px/4px 10px no-repeat;

  animation:pop .28s var(--ease) both;

}

@keyframes pop{from{transform:scale(.6);opacity:.2;}to{transform:scale(1);opacity:1;}}



/* Reduced motion */

@media (prefers-reduced-motion: reduce){

  :where(.header__btn-link,.hero__btn--book,.contact button,.mobile-nav__cta,

         .hero__btn--call,.call__title,.footer__call),

  :where(.header__btn-link,.hero__btn--book,.contact button,.mobile-nav__cta)::after{ transition:none; animation:none; }

}



/* ===== ATTRACT FX for existing blue CTAs (idle, no hover needed) ===== */

:where(.header__btn-link, .hero__btn--book, .contact button, .mobile-nav__cta){

  /* плавный сдвиг градиента + дыхание света */

  background-size: 200% 200%;

  animation:

    gradientShift 6s linear infinite,

    glowBreath 2.8s ease-in-out infinite;

}



/* диагональный блик крутится сам по себе */

:where(.header__btn-link, .hero__btn--book, .contact button, .mobile-nav__cta)::after{

  opacity:.35; /* видно и без hover */

  animation: idleSheen 3.8s cubic-bezier(.65,.05,.36,1) infinite;

}



/* на touch-устройствах добавим едва заметное «плавание» */

@media (hover:none){

  :where(.header__btn-link, .hero__btn--book, .mobile-nav__cta){

    animation:

      gradientShift 6s linear infinite,

      glowBreath 2.8s ease-in-out infinite,

      floatY 4.5s ease-in-out infinite;

  }

}



/* при взаимодействии останавливаем idle-анимации — остаются hover/active */

:where(.header__btn-link, .hero__btn--book, .contact button, .mobile-nav__cta):hover,

:where(.header__btn-link, .hero__btn--book, .contact button, .mobile-nav__cta):active{

  animation-play-state: paused;

}



/* reduced-motion — анимации выключаем */

@media (prefers-reduced-motion: reduce){

  :where(.header__btn-link, .hero__btn--book, .contact button, .mobile-nav__cta){

    animation:none;

  }

  :where(.header__btn-link, .hero__btn--book, .contact button, .mobile-nav__cta)::after{

    animation:none; opacity:0;

  }

}



/* ===== Keyframes ===== */

@keyframes gradientShift{

  0%   { background-position: 0% 50%; }

  50%  { background-position: 100% 50%; }

  100% { background-position: 0% 50%; }

}



@keyframes glowBreath{

  0%,100% {

    box-shadow: var(--shadow-1), 0 1px 0 rgba(255,255,255,.35) inset;

    filter: saturate(1) brightness(1);

  }

  50% {

    box-shadow: var(--shadow-2), 0 1px 0 rgba(255,255,255,.35) inset, 0 0 18px rgba(42,139,236,.35);

    filter: saturate(1.06) brightness(1.03);

  }

}



@keyframes idleSheen{

  0%   { transform: rotate(20deg) translateX(-140%); opacity:.35; }

  46%  { transform: rotate(20deg) translateX(65%);  opacity:.35; }

  47%  { opacity:0; }           /* короткая пауза между проходами */

  60%  { transform: rotate(20deg) translateX(65%);  opacity:0; }

  100% { transform: rotate(20deg) translateX(-140%); opacity:.35; }

}



@keyframes floatY{

  0%,100% { transform: translateY(0); }

  50%     { transform: translateY(-1.5px); }

}





/* 23233222 */





/* ================= Floating CTA (Soft Red) ================= */

:root{

  --cta-red-1:#FF6B6F;      /* base */

  --cta-red-2:#E5484D;      /* deeper edge */

  --cta-shadow-1: 0 12px 28px rgba(229,72,77,.28);

  --cta-shadow-2: 0 18px 38px rgba(229,72,77,.35);

  --cta-focus: 0 0 0 3px rgba(229,72,77,.25), 0 0 0 1px #FF6B6F inset;

}



/* контейнер */

.floater-cta{

  position: fixed;

  left: 50%;

  bottom: max(18px, env(safe-area-inset-bottom));

  transform: translateX(-50%) translateY(16px);

  width: min(88vw, 420px);

  z-index: 999;

  display: grid;

  justify-items: center;

  gap: 8px;

  opacity: 0;

  visibility: hidden;

  transition: opacity .35s ease, transform .35s ease, visibility .35s ease;

  pointer-events: none; /* пока скрыта */

}

.floater-cta.is-visible{

  opacity: 1;

  visibility: visible;

  transform: translateX(-50%) translateY(0);

  pointer-events: auto;

}



/* сама кнопка */

.floater-cta__btn{

  -webkit-tap-highlight-color:transparent;

  width: 100%;

  min-height: 54px;

  padding: 14px 22px;

  border: 0;

  border-radius: 14px;

  cursor: pointer;

  color: #fff;

  font: 700 16px/1 Inter, system-ui, sans-serif;

  letter-spacing: .2px;



  background: linear-gradient(90deg, var(--cta-red-1), var(--cta-red-2));

  background-size: 200% 200%;

  box-shadow: var(--cta-shadow-1), 0 1px 0 rgba(255,255,255,.4) inset;



  position: relative;

  isolation: isolate;

  overflow: hidden;

  transform: translateZ(0);

  transition: transform .15s cubic-bezier(.22,.61,.36,1), box-shadow .3s cubic-bezier(.22,.61,.36,1);



  /* idle анимации без ховера */

  animation:

    ctaGradient 6s linear infinite,

    ctaGlow 2.8s ease-in-out infinite;

}



/* sheen (диагональный блик) — работает сам */

.floater-cta__btn::after{

  content:"";

  position:absolute; inset:-150% -50% auto auto;

  width:60%; height:300%;

  transform: rotate(20deg) translateX(-140%);

  background: linear-gradient(to right, transparent, rgba(255,255,255,.35), transparent);

  opacity:.28;

  pointer-events:none;

  animation: ctaSheen 4s cubic-bezier(.65,.05,.36,1) infinite;

}



/* ripple слой */

.floater-cta__btn::before{

  content:"";

  position:absolute; inset:0; border-radius:inherit;

  background: radial-gradient(circle at var(--rx,50%) var(--ry,50%), rgba(255,255,255,.25), transparent 40%);

  transform: scale(0); opacity: 0;

  transition: transform .35s ease, opacity .45s ease;

}

.floater-cta__btn.is-rippling::before{ transform: scale(3); opacity: 1; }



/* press */

.floater-cta__btn:active{ transform: translateY(1px) scale(.985); box-shadow: var(--cta-shadow-1); }



/* focus */

.floater-cta__btn:focus-visible{ outline: none; box-shadow: var(--cta-focus); }



/* loading / success */

.floater-cta__btn.is-loading{ pointer-events:none; }

.floater-cta__btn.is-loading .floater-cta__label{ opacity:0; }

.floater-cta__btn.is-loading::after{

  content:""; position:absolute; inset:0; margin:auto; width:22px; height:22px; border-radius:50%;

  border:2.5px solid rgba(255,255,255,.6); border-top-color:#fff; animation: ctaSpin .9s linear infinite;

}

.floater-cta__btn.is-success{ pointer-events:none; }

.floater-cta__btn.is-success .floater-cta__label{ opacity:0; }

.floater-cta__btn.is-success::after{

  content:""; position:absolute; inset:0; margin:auto; width:22px; height:22px;

  background: linear-gradient(90deg, var(--cta-red-1), var(--cta-red-2));

  -webkit-mask:

    radial-gradient(circle at 11px 13px, #000 3px, transparent 3.5px),

    linear-gradient(#000 0 0) center/14px 3px no-repeat,

    linear-gradient(#000 0 0) 8px 11px/4px 10px no-repeat;

  mask:

    radial-gradient(circle at 11px 13px, #000 3px, transparent 3.5px),

    linear-gradient(#000 0 0) center/14px 3px no-repeat,

    linear-gradient(#000 0 0) 8px 11px/4px 10px no-repeat;

  animation: ctaPop .28s cubic-bezier(.22,.61,.36,1) both;

}



/* microcopy */

.floater-cta__note{

  font: 600 12px/1.2 Inter, system-ui, sans-serif;

  color: rgba(0,0,0,.45);

  text-align: center;

}



/* dismiss chip */

.floater-cta__close{

  position:absolute; right: -10px; top: -10px;

  width:28px; height:28px; border-radius:14px; border:0;

  background: #fff; color:#111; box-shadow: 0 4px 12px rgba(0,0,0,.16);

  font: 700 16px/1 Inter, system-ui, sans-serif;

  cursor: pointer;

  transition: transform .15s ease, box-shadow .25s ease, opacity .25s ease;

}

.floater-cta__close:hover{ transform: translateY(-1px); box-shadow: 0 8px 18px rgba(0,0,0,.2); }



/* безопасные зоны */

@supports (bottom: env(safe-area-inset-bottom)){

  .floater-cta{ padding-bottom: env(safe-area-inset-bottom); }

}



/* анимации */

@keyframes ctaGradient{

  0%{ background-position: 0% 50%; }

  50%{ background-position: 100% 50%; }

  100%{ background-position: 0% 50%; }

}

@keyframes ctaGlow{

  0%,100%{ box-shadow: var(--cta-shadow-1), 0 1px 0 rgba(255,255,255,.4) inset; filter: saturate(1) brightness(1); }

  50%{ box-shadow: var(--cta-shadow-2), 0 1px 0 rgba(255,255,255,.4) inset, 0 0 18px rgba(229,72,77,.35); filter: saturate(1.05) brightness(1.03); }

}

@keyframes ctaSheen{

  0%{ transform: rotate(20deg) translateX(-140%); opacity:.28; }

  46%{ transform: rotate(20deg) translateX(65%);  opacity:.28; }

  47%{ opacity:0; }

  60%{ transform: rotate(20deg) translateX(65%);  opacity:0; }

  100%{ transform: rotate(20deg) translateX(-140%); opacity:.28; }

}

@keyframes ctaSpin{ to{ transform: rotate(360deg); } }

@keyframes ctaPop{ from{ transform: scale(.6); opacity:.2; } to{ transform: scale(1); opacity:1; } }



/* reduced motion */

@media (prefers-reduced-motion: reduce){

  .floater-cta__btn{ animation:none; }

  .floater-cta__btn::after{ animation:none; opacity:0; }

}



/* слегка уменьшить на очень узких экранах */

@media (max-width: 360px){

  .floater-cta{ width: min(92vw, 420px); }

  .floater-cta__btn{ min-height: 52px; }

}



/* ===== Contact Form — Premium Upgrade ===== */

:root{

  --brand-1:#2A8BEC; --brand-2:#002E61;

  --glass-bg: rgba(255,255,255,.7);

  --glass-brd: rgba(0,46,97,.12);

  --ring: 0 0 0 4px rgba(42,139,236,.16), 0 0 0 1.5px #2A8BEC inset;

}



.contact-card{

  background: var(--glass-bg);

  border: 1px solid var(--glass-brd);

  border-radius: 16px;

  padding: 22px;

  box-shadow: 0 20px 40px rgba(0,46,97,.08);

  backdrop-filter: blur(10px) saturate(130%);

}



/* microcopy */

.contact__microcopy{

  margin: -4px 0 14px;

  color:#626d73;

  font:600 12px/1.2 Inter, system-ui, sans-serif;

  opacity:.9;

}



/* honeypot (hide) */

.hp{ position:absolute; left:-9999px; top:-9999px; opacity:0; }



/* fields */

.field{ position:relative; width:100%; }

.field:not(:last-child){ margin-bottom:18px; }



.field input, .field textarea{

  width:100% !important; background:#fff; color:#1e1f21;

  border:1.5px solid #d6d6d6; border-radius:12px;

  padding:18px 14px 14px;

  font: 500 16px/1.2 Inter, system-ui, sans-serif;

  transition: border-color .25s ease, box-shadow .25s ease, transform .2s ease, background .25s ease;

  outline:0;

}

.field textarea{ resize:none; }



/* floating labels */

.field__label{

  position:absolute; left:12px; top:14px;

  padding:0 6px; background:#fff;

  color:#6b7280; font:600 12px/1 Inter, system-ui, sans-serif;

  transform-origin:left top;

  transform: translateY(-18px) scale(.92);

  pointer-events:none; opacity:.95;

}



/* placeholders */

.field input::placeholder, .field textarea::placeholder{ color:rgba(56,56,56,.35); }



/* focus ring (gradient glow) */

.field:focus-within input, .field:focus-within textarea{

  border-color: var(--brand-1);

  box-shadow: var(--ring);

}



/* valid/invalid states */

.field[data-invalid="true"] input,

.field[data-invalid="true"] textarea{

  border-color:#e5484d;

  box-shadow: 0 0 0 4px rgba(229,72,77,.12);

  animation: shake .22s ease both;

}

.field[data-valid="true"] input,

.field[data-valid="true"] textarea{

  border-color:#20b26b;

  box-shadow: 0 0 0 4px rgba(32,178,107,.12);

}



@keyframes shake{

  0%,100%{ transform: translateX(0); }

  25%{ transform: translateX(-4px); }

  75%{ transform: translateX(4px); }

}



/* hint + counter */

.field__hint{

  display:block; margin-top:8px;

  color:#8a8f98; font:500 12px/1.2 Inter, system-ui, sans-serif;

}

.field__meter{ display:flex; justify-content:flex-end; margin-top:6px; }

#msg_counter{ font:600 12px/1 Inter, system-ui, sans-serif; color:#8a8f98; }



/* submit button (brand gradient + motion) */

.contact__submit{

  width:100%; height:52px; margin-top:6px;

  border:0; border-radius:10px; color:#fff;

  background: linear-gradient(90deg, var(--brand-1), var(--brand-2));

  font:700 17px/1 Inter, system-ui, sans-serif; text-transform:uppercase;

  box-shadow: 0 12px 28px rgba(0,46,97,.22);

  position:relative; isolation:isolate; overflow:hidden; cursor:pointer;

  transition: transform .15s cubic-bezier(.22,.61,.36,1), box-shadow .3s ease, filter .3s ease;

}

@media (hover:hover){

  .contact__submit:hover{ transform: translateY(-2px); box-shadow: 0 18px 38px rgba(0,46,97,.3); filter:saturate(1.06) brightness(1.02); }

  .contact__submit:active{ transform: translateY(0) scale(.985); }

}



/* loader */

.contact__submit.is-loading{ color:transparent; pointer-events:none; }

.contact__submit.is-loading::after{

  content:""; position:absolute; inset:0; margin:auto; width:22px; height:22px; border-radius:50%;

  border:2.5px solid rgba(255,255,255,.6); border-top-color:#fff; animation: spin .9s linear infinite;

}

@keyframes spin{ to{ transform: rotate(360deg);} }



/* success panel */

.contact__success{

  margin-top:16px; padding:18px;

  border-radius:12px; background:#f4fbff;

  border:1px solid rgba(42,139,236,.25);

  box-shadow: 0 8px 24px rgba(0,46,97,.08);

  text-align:center; animation: successIn .3s ease both;

}

@keyframes successIn{ from{ opacity:0; transform:scale(.985);} to{ opacity:1; transform:scale(1);} }



.contact__success h3{ margin:6px 0 6px; color:#002e61; font:800 18px/1.2 Montserrat, sans-serif; }

.contact__success p{ color:#626d73; margin-bottom:10px; }

.contact__success-call{

  display:inline-flex; align-items:center; justify-content:center; gap:6px;

  padding:10px 14px; border-radius:8px; background:#fff; color:#002e61;

  border:1px solid rgba(0,46,97,.2);

  transition: transform .15s ease, box-shadow .25s ease;

}

@media (hover:hover){

  .contact__success-call:hover{ transform: translateY(-1px); box-shadow: 0 8px 16px rgba(0,46,97,.18); }

}



/* animated check icon */

.contact__success-icon{

  width:28px; height:28px; margin:0 auto 6px;

  background: linear-gradient(90deg,var(--brand-1),var(--brand-2));

  -webkit-mask:

    radial-gradient(circle at 13px 16px,#000 3px, transparent 3.5px),

    linear-gradient(#000 0 0) center/16px 3px no-repeat,

    linear-gradient(#000 0 0) 9px 12px/5px 12px no-repeat;

  mask:

    radial-gradient(circle at 13px 16px,#000 3px, transparent 3.5px),

    linear-gradient(#000 0 0) center/16px 3px no-repeat,

    linear-gradient(#000 0 0) 9px 12px/5px 12px no-repeat;

  animation: pop .28s ease both;

}

@keyframes pop{ from{ transform:scale(.6); opacity:.2;} to{ transform:scale(1); opacity:1;} }





/* ===== Map Card (brand styled) ===== */

.map{ padding: 70px 0; }

.map-card{

  position: relative;

  border-radius: 16px;

  overflow: hidden;

  box-shadow: 0 18px 44px rgba(0,46,97,.12);

  background: linear-gradient(180deg,#ffffff 0%, #f6f9ff 100%);

  border: 1px solid rgba(0,46,97,.08);

}

.map-card__header{

  padding: 18px 20px;

  background: linear-gradient(90deg,#2A8BEC,#002E61);

  color:#fff;

}

.map-card__title{

  font: 800 20px/1.2 "Montserrat", system-ui, sans-serif;

  margin:0;

  letter-spacing:.3px;

  text-transform:uppercase;

}

.map-card__subtitle{

  margin:6px 0 0;

  font: 600 13px/1.4 "Inter", system-ui, sans-serif;

  opacity:.9;

}



.map-card__canvas{

  width:100%;

  height: 570px;

}

@media (max-width:768px){

  .map-card__canvas{ height: 340px; }

  .contact .container {

    padding: 0px !important;

  }

  .map-card__canvas {

    height: 700px;

  }

}



/* Legend badge */

.map-legend{

  position: absolute;

  left: 50%;

  bottom: 16px;

  transform: translateX(-50%);

  display: inline-flex;

  align-items: center;

  gap: 10px;

  padding:10px 12px;

  background: rgba(255,255,255,.85);

  backdrop-filter: blur(8px) saturate(140%);

  border: 1px solid rgba(0,46,97,.12);

  border-radius: 12px;

  box-shadow: 0 12px 28px rgba(0,46,97,.12);

  font: 600 13px/1 "Inter", system-ui, sans-serif;

  color:#002E61;

}

.legend-dot{

  width:12px; height:12px; border-radius:50%;

  background: rgba(42,139,236,.18);

  box-shadow: 0 0 0 2px #2A8BEC inset;

}

.legend-cta{

  margin-left:6px;

  display:inline-flex; align-items:center; justify-content:center;

  padding:8px 12px; border-radius:8px; color:#fff; text-transform:uppercase;

  font: 800 12px/1 "Inter", system-ui, sans-serif;

  background: linear-gradient(90deg,#2A8BEC,#002E61);

  box-shadow: 0 8px 18px rgba(0,46,97,.24);

  transition: transform .15s ease, box-shadow .25s ease, filter .25s ease;

}

@media (hover:hover){

  .legend-cta:hover{ transform: translateY(-1px); box-shadow: 0 12px 24px rgba(0,46,97,.28); filter:saturate(1.05); }

}



/* Dark-mode soft */

@media (prefers-color-scheme:dark){

  .map-card{ background: linear-gradient(180deg,#0b0f13 0%, #0f1620 100%); border-color: rgba(255,255,255,.08); }

  .map-legend{ background: rgba(16,22,31,.8); color:#e6edf5; border-color: rgba(255,255,255,.08); }

}



.mapsss2 {

    width: 100%;

    max-width: 1100px;

    margin-left: auto;

    margin-right: auto;

}