:root{
  --blue:#1076cf;
  --blue-dark:#08345f;
  --blue-deep:#042847;
  --blue-soft:#eaf5ff;
  --text:#10243b;
  --muted:#55697d;
  --line:#d9e7f3;
  --white:#ffffff;
  --shadow:0 18px 40px rgba(8,52,95,.12);
  --radius:22px;
  --ease:cubic-bezier(.2,.8,.2,1);
  --container:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  min-width:320px;
  font-family:Inter,Arial,Helvetica,sans-serif;
  color:var(--text);
  background:#f7fbff;
  overflow-x:hidden;
}
a{text-decoration:none;color:inherit}
button,input,textarea{font:inherit}
img{max-width:100%;display:block}
.container{width:min(calc(100% - 40px),var(--container));margin-inline:auto}

.preloader{
  position:fixed;inset:0;z-index:120;background:linear-gradient(180deg,#f3faff 0%,#e2f0fb 100%);
  display:grid;place-items:center;gap:14px;transition:opacity .45s var(--ease),visibility .45s var(--ease)
}
.preloader.is-gone{opacity:0;visibility:hidden}
.preloader__drop{
  width:46px;height:58px;border-radius:50% 50% 60% 60%/60% 60% 40% 40%;
  background:linear-gradient(180deg,#3eb5ff,#0f73cb);transform:rotate(45deg);animation:float 1.5s ease-in-out infinite alternate
}
.preloader p{margin:0;font-weight:800;color:var(--blue-dark)}
.scroll-progress{position:fixed;top:0;left:0;height:4px;width:0;background:linear-gradient(90deg,#2eb5ff,#1076cf);z-index:110}

.header{position:sticky;top:0;z-index:90;background:rgba(255,255,255,.9);backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:.25s var(--ease)}
.header.is-scrolled{border-color:#dbe8f3;box-shadow:0 8px 20px rgba(6,33,60,.06)}
.header__inner{display:flex;align-items:center;justify-content:space-between;gap:28px;height:92px}
.logo{display:flex;align-items:center;gap:12px;flex-shrink:0}
.logo__mark{position:relative;width:48px;height:42px;display:block}
.logo__drop{position:absolute;left:5px;top:0;width:20px;height:28px;border-radius:50% 50% 60% 60%/60% 60% 40% 40%;background:linear-gradient(180deg,#4fc2ff,#137bd3);transform:rotate(45deg)}
.logo__wave{position:absolute;left:4px;right:0;height:8px;border:2px solid #137bd3;border-top:none;border-left:none;border-right:none;border-radius:50%}
.logo__wave--one{bottom:8px;width:34px}
.logo__wave--two{bottom:0;width:42px}
.logo__text{display:flex;flex-direction:column;line-height:1}
.logo__text strong{font-size:22px;font-weight:900;letter-spacing:.02em}
.logo__text em{font-style:normal;color:var(--blue);font-weight:800;font-size:18px}

.nav{display:flex;align-items:center;gap:24px}
.nav a{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.02em;color:#2d4156;position:relative;white-space:nowrap}
.nav a::after{content:"";position:absolute;left:0;bottom:-7px;width:0;height:2px;background:var(--blue);transition:width .25s var(--ease)}
.nav a:hover::after,.nav a.is-active::after{width:100%}

.header__phone{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid #d9e7f2;border-radius:999px;background:#fff;box-shadow:0 8px 24px rgba(7,46,84,.06);white-space:nowrap}
.header__phone-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--blue);color:#fff;font-size:18px}
.header__phone strong{display:block;font-size:18px;font-weight:900}
.header__phone small{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.burger{display:none;appearance:none;border:0;background:transparent;padding:0;cursor:pointer;width:42px;height:42px;position:relative}
.burger span{position:absolute;left:8px;right:8px;height:2px;background:#133456;border-radius:99px;transition:.25s var(--ease)}
.burger span:nth-child(1){top:12px}.burger span:nth-child(2){top:20px}.burger span:nth-child(3){top:28px}
.burger.is-open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.burger.is-open span:nth-child(2){opacity:0}
.burger.is-open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

.hero{position:relative;overflow:hidden;background:linear-gradient(180deg,#f9fdff 0%,#edf7ff 50%,#ffffff 100%)}
.hero__bg{position:absolute;inset:0;overflow:hidden}
.sun{position:absolute;top:70px;left:55%;width:116px;height:116px;border-radius:50%;background:radial-gradient(circle,#fffcd4 0%,#ffd45c 48%,rgba(255,212,92,.05) 72%);box-shadow:0 0 80px rgba(255,212,92,.35)}
.cloud{position:absolute;background:rgba(255,255,255,.9);border-radius:999px;box-shadow:0 18px 30px rgba(64,117,164,.08)}
.cloud::before,.cloud::after{content:"";position:absolute;background:inherit;border-radius:inherit}
.cloud--1{width:120px;height:36px;top:110px;left:16%;animation:cloudMove 20s linear infinite}
.cloud--1::before{width:46px;height:46px;left:18px;top:-18px}.cloud--1::after{width:58px;height:58px;right:16px;top:-24px}
.cloud--2{width:138px;height:40px;top:160px;left:68%;animation:cloudMove 27s linear infinite reverse}
.cloud--2::before{width:48px;height:48px;left:24px;top:-18px}.cloud--2::after{width:60px;height:60px;right:20px;top:-23px}
.cloud--3{width:92px;height:28px;top:210px;left:40%;animation:cloudMove 24s linear infinite}
.cloud--3::before{width:36px;height:36px;left:12px;top:-14px}.cloud--3::after{width:42px;height:42px;right:14px;top:-16px}
.hill{position:absolute;left:-10%;right:-10%;border-radius:50% 50% 0 0/100% 100% 0 0}
.hill--back{bottom:150px;height:180px;background:linear-gradient(180deg,#b2e2a6,#9ed48f)}
.hill--front{bottom:0;height:240px;background:linear-gradient(180deg,#96d280,#76bd65)}
.hero__inner{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.03fr) minmax(380px,.97fr);gap:42px;align-items:center;min-height:670px;padding:40px 0 60px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:#fff;border:1px solid #dbeaf5;color:var(--blue);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.eyebrow::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--blue)}
.hero__title{margin:16px 0 16px;font-size:60px;line-height:.96;font-weight:900;max-width:650px}
.hero__title span{display:block;color:var(--blue)}
.hero__lead{margin:0;max-width:580px;font-size:18px;line-height:1.6;color:#31485f}
.hero__benefits{display:flex;flex-wrap:wrap;gap:16px;margin-top:28px}
.mini-benefit{display:flex;align-items:center;gap:10px;min-width:150px;background:rgba(255,255,255,.78);backdrop-filter:blur(6px);border:1px solid #ddeaf5;border-radius:16px;padding:10px 12px;box-shadow:0 12px 26px rgba(8,52,95,.07)}
.mini-benefit__icon{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:#e7f4ff;font-size:18px;flex:0 0 auto}
.mini-benefit p{margin:0;font-size:13px;font-weight:800;line-height:1.35}
.hero__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
.btn{position:relative;overflow:hidden;display:inline-flex;justify-content:center;align-items:center;gap:10px;min-height:58px;padding:0 28px;border-radius:12px;font-size:15px;font-weight:900;letter-spacing:.01em;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .25s var(--ease),color .25s var(--ease);border:1px solid transparent;cursor:pointer}
.btn:hover{transform:translateY(-2px)}
.btn .ripple{position:absolute;width:16px;height:16px;border-radius:50%;background:rgba(255,255,255,.35);transform:translate(-50%,-50%) scale(0);animation:ripple .65s ease-out}
.btn--primary{background:linear-gradient(180deg,#1a8ae8,#0f72c7);color:#fff;box-shadow:0 16px 34px rgba(16,118,207,.27)}
.btn--ghost{background:#fff;color:var(--blue-dark);border-color:#cfe1ef}
.btn--white{background:#fff;color:var(--blue-dark)}
.btn--outline-white{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}
.btn--viber{background:linear-gradient(180deg,#2e9cf2,#1478cd);color:#fff}

.hero__visual{display:grid;gap:18px;align-self:center;transition:transform .18s ease-out}
.hero-card{background:rgba(255,255,255,.86);border:1px solid #d7e6f2;border-radius:var(--radius);box-shadow:var(--shadow);backdrop-filter:blur(8px)}
.hero-card--photo{padding:12px;overflow:hidden}
.hero-card--info{padding:18px;display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.info-chip{display:inline-flex;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;background:#f3f9ff;border:1px solid #d7e8f5;font-weight:800;color:#173d66}
.info-chip span{font-size:18px}
.site-photo{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease),filter .35s var(--ease)}
.site-photo--hero{height:390px;border-radius:16px;object-position:center center}
.site-photo--work{height:280px;object-position:center center}
.work-card:nth-child(2) .site-photo--work{object-position:center top}
.work-card:hover .site-photo,.hero-card--photo:hover .site-photo{transform:scale(1.045);filter:saturate(1.06) contrast(1.03)}

.feature-band{position:relative;z-index:2;margin-top:-18px}
.feature-band__grid{display:grid;grid-template-columns:repeat(4,1fr);background:linear-gradient(180deg,#07325f,#052848);border-radius:18px;overflow:hidden;box-shadow:0 22px 50px rgba(3,36,67,.16)}
.band-card{padding:26px 22px;display:flex;align-items:flex-start;gap:16px;color:#fff;border-right:1px solid rgba(255,255,255,.09)}
.band-card:last-child{border-right:0}
.band-card__icon{display:grid;place-items:center;flex:0 0 auto;width:54px;height:54px;border-radius:16px;background:rgba(255,255,255,.08);font-size:28px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.band-card h3{margin:0 0 8px;font-size:18px;line-height:1.15;text-transform:uppercase}
.band-card p{margin:0;color:#dcecff;line-height:1.5;font-size:14px}

.section{padding:92px 0}
.section-head{text-align:center;max-width:760px;margin:0 auto 42px}
.section-head h2{margin:0 0 14px;font-size:42px;line-height:1.05;text-transform:uppercase}
.section-head p{margin:0;color:var(--muted);font-size:17px;line-height:1.6}

.services__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}
.service-card{padding:30px;border-radius:var(--radius);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);transition:transform .18s ease-out,box-shadow .25s var(--ease)}
.service-card__icon,.step__icon{display:grid;place-items:center;width:64px;height:64px;border-radius:18px;background:linear-gradient(180deg,#eaf5ff,#d8ebfb);font-size:30px;box-shadow:inset 0 0 0 1px #d2e5f4}
.service-card h3{margin:18px 0 10px;font-size:26px;line-height:1.1}
.service-card p{margin:0 0 16px;color:var(--muted);line-height:1.6}
.service-card ul{margin:0;padding-left:18px;color:#27445f;display:grid;gap:8px;font-weight:700}

.process{background:linear-gradient(180deg,#f9fcff 0%,#f1f8ff 100%)}
.process__grid{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;position:relative}
.process__grid::before{content:"";position:absolute;left:10%;right:10%;top:38px;border-top:2px dashed #bfd8ea;z-index:0}
.step{position:relative;z-index:1;text-align:center;padding:22px 16px;border-radius:20px;background:#fff;border:1px solid #dbe8f3;box-shadow:var(--shadow)}
.step__num{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:50%;margin-bottom:16px;background:var(--blue);color:#fff;font-weight:900}
.step__icon{margin:0 auto 16px}
.step h3{margin:0 0 8px;font-size:20px}
.step p{margin:0;color:var(--muted);line-height:1.5;font-size:14px}

.works{background:#fff}
.works__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.work-card{padding:0;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);transition:transform .18s ease-out}

.areas{background:#fff}
.areas__inner{display:grid;grid-template-columns:.95fr 1.05fr;gap:34px;align-items:center}
.eyebrow--blue{background:#eef6ff}
.areas__text h2{margin:14px 0;font-size:42px;line-height:1.06;text-transform:uppercase}
.areas__text p{margin:0 0 22px;color:var(--muted);font-size:17px;line-height:1.65}
.areas__chips{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 24px}
.areas__chips span{padding:10px 14px;border-radius:999px;background:#eef6ff;border:1px solid #d7e8f5;color:#174670;font-size:14px;font-weight:800}
.areas__map{padding:18px;border-radius:28px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);transition:transform .18s ease-out}
.map-box{position:relative;height:380px;border-radius:22px;background:linear-gradient(180deg,#eef8ff,#d9edfb);overflow:hidden}
.map-box::before{content:"";position:absolute;inset:22px;background:radial-gradient(circle at 25% 30%,rgba(16,118,207,.16) 0 16%,transparent 17%),radial-gradient(circle at 40% 55%,rgba(16,118,207,.14) 0 18%,transparent 19%),radial-gradient(circle at 58% 42%,rgba(16,118,207,.13) 0 19%,transparent 20%),radial-gradient(circle at 70% 62%,rgba(16,118,207,.14) 0 15%,transparent 16%);border-radius:18px;border:1px dashed rgba(16,118,207,.25)}
.map-dot{position:absolute;transform:translate(-50%,-50%);padding:8px 12px;background:#fff;border-radius:999px;border:1px solid #d8e8f3;box-shadow:0 10px 20px rgba(16,118,207,.12);font-size:13px;font-weight:800;color:#18486e;white-space:nowrap}
.map-dot::before{content:"📍";margin-right:6px}

.cta{position:relative;overflow:hidden;padding:44px 0;background:linear-gradient(180deg,#0c63b1,#074784);color:#fff}
.cta__inner{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:24px}
.cta__copy h2{margin:0 0 10px;font-size:40px;line-height:1.02;text-transform:uppercase}
.cta__copy p{margin:0;max-width:640px;color:#d8ecff;line-height:1.6;font-size:16px}
.cta__actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.bubble{position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.35);opacity:.36;animation:bubble 8s linear infinite}
.bubble--1{width:44px;height:44px;top:18px;right:30px}.bubble--2{width:18px;height:18px;bottom:18px;right:94px;animation-delay:1.4s}.bubble--3{width:64px;height:64px;left:-14px;top:10px;animation-delay:2.4s}

.footer{background:#041e37;color:#c4d7e8;padding:30px 0 0}
.footer__grid{display:grid;grid-template-columns:1.3fr .85fr .95fr 1.1fr;gap:34px;padding-bottom:22px}
.footer .logo{margin-bottom:14px}
.footer p{margin:0;line-height:1.6;font-size:14px}
.footer h3{margin:6px 0 12px;color:#fff;font-size:13px;text-transform:uppercase;letter-spacing:.06em}
.footer a,.footer span{display:block;margin:7px 0;color:#c4d7e8;font-size:14px}
.footer a:hover{color:#fff}
.footer__bottom{height:54px;border-top:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:space-between;font-size:13px}
.float-call{position:fixed;right:20px;bottom:20px;z-index:80;display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:linear-gradient(180deg,#1a8ae8,#0f72c7);color:#fff;box-shadow:0 18px 36px rgba(16,118,207,.34);font-size:24px;animation:pulse 2.3s infinite}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .75s var(--ease),transform .75s var(--ease);transition-delay:var(--delay,0s);will-change:transform,opacity}
.reveal.is-visible{opacity:1;transform:none}

@keyframes float{from{transform:rotate(45deg) translateY(-3px)}to{transform:rotate(45deg) translateY(4px)}}
@keyframes cloudMove{from{transform:translateX(0)}50%{transform:translateX(18px)}to{transform:translateX(0)}}
@keyframes ripple{to{transform:translate(-50%,-50%) scale(18);opacity:0}}
@keyframes bubble{from{transform:translateY(26px);opacity:.12}50%{opacity:.45}to{transform:translateY(-42px);opacity:0}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(16,118,207,.32)}50%{box-shadow:0 0 0 14px rgba(16,118,207,0)}}

@media (max-width:1120px){
  .header__inner{gap:20px}
  .nav{gap:16px}
  .nav a{font-size:11px}
  .hero__inner{grid-template-columns:1fr .9fr;gap:28px}
  .feature-band__grid{grid-template-columns:repeat(2,1fr)}
  .process__grid{grid-template-columns:repeat(3,1fr)}
  .process__grid::before{display:none}
  .works__grid{grid-template-columns:repeat(2,1fr)}
  .footer__grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:920px){
  .header__phone{display:none}
  .burger{display:block}
  .nav{position:fixed;top:84px;left:20px;right:20px;display:grid;gap:0;padding:10px;background:#fff;border:1px solid #dbe8f3;border-radius:18px;box-shadow:var(--shadow);transform:translateY(-12px);opacity:0;visibility:hidden;transition:.25s var(--ease)}
  .nav.is-open{transform:none;opacity:1;visibility:visible}
  .nav a{padding:13px 14px;font-size:12px}
  .nav a::after{display:none}
  .hero__inner,.areas__inner{grid-template-columns:1fr}
  .hero__visual{max-width:640px;width:100%;margin:0 auto}
  .services__grid{grid-template-columns:1fr}
  .cta__inner{display:block}
  .cta__actions{margin-top:18px}
}
@media (max-width:640px){
  .container{width:min(calc(100% - 28px),var(--container))}
  .header__inner{height:74px}
  .logo__mark{width:42px;height:38px}
  .logo__text strong{font-size:17px}.logo__text em{font-size:15px}
  .hero__inner{min-height:auto;padding:30px 0 50px}
  .sun{top:70px;left:auto;right:20px;width:82px;height:82px}
  .hero__title{font-size:40px}
  .hero__lead{font-size:16px}
  .hero__benefits{display:grid;grid-template-columns:1fr}
  .hero__actions{display:grid}
  .btn{width:100%}
  .feature-band__grid,.process__grid,.works__grid,.footer__grid{grid-template-columns:1fr}
  .feature-band__grid .band-card{border-right:0;border-bottom:1px solid rgba(255,255,255,.09)}
  .feature-band__grid .band-card:last-child{border-bottom:0}
  .hero-card--info{justify-content:stretch}
  .info-chip{width:100%;justify-content:center}
  .site-photo--hero{height:280px}
  .site-photo--work{height:270px}
  .section{padding:70px 0}
  .section-head h2,.areas__text h2,.cta__copy h2{font-size:30px}
  .service-card h3{font-size:22px}
  .map-box{height:300px}
  .map-dot{font-size:11px;padding:7px 10px}
  .cta__actions .btn{width:100%}
  .footer__bottom{height:auto;display:grid;gap:8px;padding:14px 0}
  .float-call{right:14px;bottom:14px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}
