.hero-calculator-cta {
  position:relative; isolation:isolate; display:flex; align-items:center; gap:12px;
  min-width:278px; padding:12px 14px; border:0; border-radius:999px;
  color:#fff; background:#336aea; box-shadow:0 14px 34px rgba(35,91,212,.42),0 4px 12px rgba(20,63,164,.24);
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
}
.intro-video-area > .container { position:relative; z-index:3; }
.hero-calculator-cta:hover { color:#fff; background:#285ed9; transform:translateY(-2px); box-shadow:0 18px 42px rgba(35,91,212,.5),0 6px 16px rgba(20,63,164,.28); }
.hero-calculator-cta:focus-visible { outline:3px solid rgba(255,255,255,.72); outline-offset:3px; }
.hero-calculator-cta__icon { display:grid; place-items:center; flex:0 0 42px; height:42px; border-radius:50%; color:#336aea; background:#fff; box-shadow:0 4px 12px rgba(23,32,51,.12); font-size:19px; }
.hero-calculator-cta strong,.hero-calculator-cta small { display:block; }
.hero-calculator-cta strong { font-size:16px; font-weight:900; line-height:1.2; }
.hero-calculator-cta small { margin-top:2px; color:rgba(255,255,255,.78); font-size:11px; font-weight:700; }

.home-quality-mark {
  display:block;
  width:clamp(112px, 50%, 180px);
  height:auto;
  margin-inline:auto;
  object-fit:contain;
}

.home-comparison-section { overflow:hidden; background:#f4f7fb; }
.home-comparison-card {
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:38px;
}
.home-comparison {
  --comparison-position:52%;
  position:relative;
  width:100%;
  max-width:1120px;
  margin-inline:auto;
  min-width:0;
  min-height:0;
  height:auto;
  aspect-ratio:1600 / 744;
  overflow:hidden;
  background:#e8edf4;
  isolation:isolate;
  contain:layout paint style;
  cursor:ew-resize;
  touch-action:none;
  user-select:none;
  border-radius:26px;
  box-shadow:0 20px 52px rgba(23,32,51,.12);
}
.home-comparison__image {
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  user-select:none;
  pointer-events:none;
  backface-visibility:hidden;
  transform:translateZ(0);
}
.home-comparison__image--after { clip-path:inset(0 calc(100% - var(--comparison-position)) 0 0); will-change:clip-path; }
.home-comparison__label {
  position:absolute;
  z-index:4;
  top:20px;
  padding:7px 11px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:999px;
  color:#fff;
  background:rgba(12,26,48,.72);
  box-shadow:0 6px 18px rgba(0,0,0,.16);
  backdrop-filter:blur(8px);
  font-size:11px;
  font-weight:900;
  letter-spacing:.06em;
  line-height:1;
  text-transform:uppercase;
}
.home-comparison__label--before { right:20px; }
.home-comparison__label--after { left:20px; }
.home-comparison__divider {
  position:absolute;
  z-index:3;
  top:0;
  bottom:0;
  left:0;
  width:2px;
  background:#fff;
  box-shadow:0 0 0 1px rgba(23,32,51,.12),0 0 20px rgba(23,32,51,.22);
  transform:translate3d(0,0,0) translateX(-50%);
  transition:none !important;
  pointer-events:none;
  will-change:transform;
}
.home-comparison__handle {
  position:absolute;
  top:50%;
  left:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:3px;
  width:48px;
  height:48px;
  border:4px solid rgba(255,255,255,.78);
  border-radius:50%;
  color:#fff;
  background:#336aea;
  box-shadow:0 10px 30px rgba(23,32,51,.3);
  transform:translate(-50%,-50%);
  font-size:13px;
}
.home-comparison__range {
  position:absolute;
  z-index:5;
  width:1px;
  height:1px;
  margin:-1px;
  padding:0;
  overflow:hidden;
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
  white-space:nowrap;
  border:0;
}
.home-comparison:focus-visible { outline:3px solid rgba(51,106,234,.34); outline-offset:4px; }
.home-comparison:focus-visible .home-comparison__handle { box-shadow:0 0 0 5px rgba(51,106,234,.2),0 10px 30px rgba(23,32,51,.3); }
.home-comparison-card__content.home-section-heading { margin-bottom:0; padding:0 4px; }
.home-comparison-card__benefits { display:grid; gap:11px; margin:22px 0 0; padding:0; list-style:none; }
.home-comparison-card__benefits li { display:flex; align-items:flex-start; gap:10px; color:#344054; font-size:14px; font-weight:700; line-height:1.45; }
.home-comparison-card__benefits i { flex:0 0 auto; margin-top:2px; color:#ff9f43; font-size:17px; }

.brand-area .brand-list {
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin-top:28px;
  padding:0;
  border:0;
  background:transparent;
}
.brand-area .brand-list::before { display:none; }
.brand-area .brand-list li { min-width:0; border:0; }
.brand-area .brand-list li a {
  display:flex;
  align-items:center;
  justify-content:center;
  height:112px;
  padding:22px;
  border:1px solid #e3e8ef !important;
  border-radius:16px;
  background:#fff;
  line-height:1;
  box-shadow:0 8px 24px rgba(23,32,51,.035);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.brand-area .brand-list li a:hover {
  border-color:#cbd8f2 !important;
  box-shadow:0 14px 34px rgba(23,32,51,.09);
  transform:translateY(-3px);
}
.brand-area .brand-list li a img {
  display:block;
  width:auto;
  max-width:145px;
  height:auto;
  max-height:54px;
  object-fit:contain;
  filter:grayscale(100%);
  opacity:.78;
  transform:none;
  transition:filter .18s ease,opacity .18s ease,transform .18s ease;
}
.brand-area .brand-list li a:hover img { filter:grayscale(0); opacity:1; transform:scale(1.03); }
.home-video-showcase { padding-top:30px; padding-bottom:80px; }
.home-video-card { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); min-height:390px; overflow:hidden; border:1px solid #e2e8f0; border-radius:28px; background:#fff; box-shadow:0 28px 75px rgba(23,32,51,.1); }
.home-video-card__content { display:flex; flex-direction:column; justify-content:center; padding:52px; }
.home-video-card__eyebrow { color:#336aea; font-size:12px; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.home-video-card h2 { max-width:470px; margin:10px 0 14px; color:#172033; font-size:clamp(28px,2.6vw,38px); line-height:1.12; }
.home-video-card p { margin:0; color:#667085; font-size:16px; line-height:1.65; }
.home-video-card__link { display:inline-flex; align-items:center; gap:10px; align-self:flex-start; margin-top:25px; color:#172033; font-weight:900; }
.home-video-card__link i { display:grid; place-items:center; width:38px; height:38px; border-radius:50%; color:#fff; background:#336aea; }
.home-video-card__media { position:relative; display:grid; place-items:center; min-height:390px; overflow:hidden; background:linear-gradient(120deg,rgba(10,24,44,.18),rgba(10,24,44,.62)),url('../images/video/video-bg.jpg') center/cover no-repeat; }
.home-video-card__media::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 48%,rgba(9,19,34,.55)); }
.home-video-card__play { position:relative; z-index:2; display:grid; place-items:center; width:58px; height:58px; border:0; border-radius:50%; color:#fff; background:#336aea; box-shadow:0 16px 38px rgba(31,91,226,.48); font-size:19px; transition:transform .38s cubic-bezier(.22,.61,.36,1),background-color .38s ease,box-shadow .38s ease; }
.home-video-card__play i { display:block; margin-left:3px; line-height:1; }
.home-video-card__play::before { content:""; position:absolute; inset:-2px; z-index:-1; border-radius:50%; background:rgba(51,106,234,.3); animation:home-video-pulse 2.8s cubic-bezier(.22,.61,.36,1) infinite; }
.home-video-card__media:hover .home-video-card__play { transform:scale(1.045); background:#285fdd; box-shadow:0 19px 44px rgba(31,91,226,.56); }
.home-video-card__media:focus-visible { outline:3px solid #ffb800; outline-offset:-3px; }
.home-video-card__media:focus-visible .home-video-card__play { transform:scale(1.06); }
@keyframes home-video-pulse { 0%{transform:scale(.92);opacity:.8} 72%,100%{transform:scale(1.48);opacity:0} }
@media(prefers-reduced-motion:reduce){.home-video-card__play::before{animation:none}.home-video-card__play{transition:none}}
.home-video-card__duration { position:absolute; z-index:2; left:28px; bottom:24px; padding:8px 12px; border:1px solid rgba(255,255,255,.28); border-radius:999px; color:#fff; background:rgba(11,25,45,.56); backdrop-filter:blur(10px); font-size:12px; font-weight:800; }
.home-video-modal .modal-dialog { width:min(1120px,calc(100% - 28px)); max-width:none; }
.home-video-modal .modal-content { position:relative; overflow:hidden; border:0; border-radius:22px; background:#07111f; box-shadow:0 28px 90px rgba(8,20,38,.32); }
.home-video-modal__close { position:absolute; z-index:5; top:14px; right:14px; width:40px; height:40px; margin:0; padding:0; border-radius:50%; background-color:rgba(255,255,255,.92); background-size:13px; box-shadow:0 8px 24px rgba(5,14,28,.28); opacity:1; transition:transform .18s ease,background-color .18s ease; }
.home-video-modal__close:hover { transform:scale(1.05); background-color:#fff; opacity:1; }
.home-video-modal__close:focus-visible { outline:3px solid #336aea; outline-offset:2px; box-shadow:none; }
.home-video-modal .modal-body { padding:0; background:#07111f; }
.home-video-modal__frame { position:relative; width:100%; aspect-ratio:16/9; background:#07111f; }
.home-video-modal__frame iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
@media(max-width:575px){.home-video-modal .modal-dialog{width:calc(100% - 18px);margin:9px auto}.home-video-modal .modal-content{border-radius:17px}.home-video-modal__close{top:10px;right:10px;width:36px;height:36px}}
@media(max-width:991px){.brand-area .brand-list{grid-template-columns:repeat(3,minmax(0,1fr))}.home-comparison-card{grid-template-columns:1fr}.home-comparison{height:auto;min-height:0;aspect-ratio:2.15/1}.home-comparison-card__content{padding:34px}.home-video-card{grid-template-columns:1fr}.home-video-card__content{padding:36px}.home-video-card__media{min-height:330px}.hero-calculator-cta{min-width:0;width:100%;max-width:390px}}
@media(max-width:575px){.brand-area .brand-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.brand-area .brand-list li a{height:94px;padding:17px}.brand-area .brand-list li a img{max-width:112px;max-height:44px}.home-comparison-card{border-radius:20px}.home-comparison{aspect-ratio:4/3}.home-comparison__label{top:14px}.home-comparison__label--before{right:14px}.home-comparison__label--after{left:14px}.home-comparison__handle{width:42px;height:42px}.home-comparison-card__content{padding:28px 22px}.home-video-card{border-radius:20px}.home-video-card__content{padding:28px 22px}.home-video-card__media{min-height:250px}.hero-calculator-cta{padding:12px 13px;border-radius:14px}.hero-calculator-cta__icon{flex-basis:42px;height:42px}}

/* Homepage visual system */
.home-hero {
  display:flex;
  align-items:center;
  min-height:620px;
  padding:190px 0 125px !important;
  background-position:center;
}
.home-hero__content { max-width:610px; }
.home-hero .typed h1 { margin:0 0 5px; color:#3d79f0; font-size:clamp(38px,4.2vw,58px); line-height:1.04; letter-spacing:-.035em; }
.home-hero .typed-text { min-height:57px; margin:0; color:#fff; font-size:clamp(30px,3vw,43px); font-weight:700; line-height:1.2; }
.home-hero .typed > p { max-width:590px; margin:20px 0 0; color:rgba(255,255,255,.82); font-size:16px; line-height:1.7; }
.home-hero .hero-calculator-cta { min-width:300px; padding:14px 16px; border-radius:999px; }

.home-section-heading { max-width:760px; margin-bottom:40px; }
.home-section-heading--wide { max-width:900px; }
.home-section-heading--action { display:flex; align-items:flex-end; justify-content:space-between; gap:32px; max-width:none; }
.home-section-heading--action > div { max-width:780px; }
.home-section-heading__eyebrow {
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:13px;
  color:#336aea;
  font-size:12px;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.home-section-heading__eyebrow i { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; color:#fff; background:#336aea; font-size:13px; }
.home-section-heading h2,
.home-about__content h2 { margin:0; color:#1f2326; font-size:clamp(32px,3.2vw,44px); font-weight:750; letter-spacing:-.025em; line-height:1.16; }
.home-section-heading p { max-width:720px; margin:16px 0 0; color:#667085; font-size:16px; line-height:1.7; }
.home-outline-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  flex:0 0 auto;
  min-height:46px;
  padding:0 18px;
  border:1px solid #cdd9ed;
  border-radius:12px;
  color:#245bd4;
  background:#fff;
  font-size:13px;
  font-weight:850;
  box-shadow:0 8px 22px rgba(35,69,122,.05);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.home-outline-button:hover { color:#245bd4; border-color:#9eb8e9; box-shadow:0 12px 28px rgba(35,69,122,.1); transform:translateY(-2px); }

.home-products { overflow:hidden; padding-top:96px; padding-bottom:104px; }
.home-products .single-head { position:relative; }
.home-products .service-patern { left:-60px !important; bottom:-45px !important; opacity:.75; }
.home-products .home-product-card {
  display:flex;
  flex-direction:column;
  gap:0;
  min-height:100%;
  padding:24px;
  overflow:hidden;
  border:1px solid #dfe6f0;
  border-radius:18px;
  background:#f7f9fc;
  box-shadow:0 10px 28px rgba(25,48,83,.045);
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
  color:inherit;
  cursor:pointer;
  text-decoration:none;
}
.home-products .home-product-card::before { display:none; }
.home-products .home-product-card:hover,.home-products .home-product-card:focus-visible { border-color:#afc5e8; background:#fff; box-shadow:0 18px 42px rgba(25,48,83,.12); transform:translateY(-4px); }
.home-products .home-product-card:focus-visible { outline:3px solid rgba(51,106,234,.2); outline-offset:3px; }
.home-products .home-product-card h3 { margin:0; }
.home-products .home-product-card h3 { color:#202631; font-size:16px; font-weight:750; transition:color .18s ease; }
.home-products .home-product-card:hover h3,.home-products .home-product-card:focus-visible h3 { color:#245bd4; }
.home-products .home-product-card img { order:2; width:100%; height:145px; margin:18px 0 0; border-radius:13px !important; object-fit:cover; }
.home-products .home-product-card p { order:3; margin:20px 0 0; color:#525d6f; font-size:13px; line-height:1.55; }
.home-products .home-product-card:hover p { color:#525d6f; }
.home-product-card__link { order:4; display:inline-flex; align-items:center; gap:7px; align-self:flex-start; margin-top:auto; padding-top:18px; color:#245bd4; font-size:12px; font-weight:850; }
.home-product-card__link i { font-size:11px; transition:transform .18s ease; }
.home-product-card:hover .home-product-card__link i,.home-product-card:focus-visible .home-product-card__link i { transform:translateX(3px); }

.home-about { padding-top:96px; padding-bottom:96px; background:#f5f8fc; }
.home-about__layout { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(390px,.95fr); gap:72px; align-items:center; }
.home-about__content > p { margin:18px 0 0; color:#596579; font-size:15px; line-height:1.78; }
.home-text-link { display:inline-flex; align-items:center; gap:9px; margin-top:26px; color:#245bd4; font-size:14px; font-weight:850; }
.home-text-link:hover { color:#1949b2; }
.home-about__features { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.home-about__feature {
  display:flex;
  align-items:flex-start;
  gap:14px;
  min-height:148px;
  padding:22px;
  border:1px solid #dfe6f0;
  border-radius:17px;
  background:#fff;
  box-shadow:0 10px 30px rgba(25,48,83,.05);
}
.home-about__feature > i { display:grid; place-items:center; flex:0 0 42px; height:42px; border-radius:12px; color:#336aea; background:#edf3ff; font-size:19px; }
.home-about__feature strong,.home-about__feature span { display:block; }
.home-about__feature strong { margin-top:2px; color:#222a37; font-size:14px; line-height:1.35; }
.home-about__feature span { margin-top:7px; color:#6b7585; font-size:12px; line-height:1.5; }

.home-offer { padding-top:96px; padding-bottom:104px; background:#fff; }
.home-offer__slider-shell { position:relative; padding-bottom:44px; }
.home-offer-slider { display:flex; }
.home-offer__slide { height:100%; }
.home-offer__slide > .single-news { display:flex; flex-direction:column; width:100%; height:100%; }
.home-offer__slide .content-body { flex:1 1 auto; }
.home-offer__slider-shell .tns-outer { position:relative; }
.home-offer__slider-shell .tns-ovh { overflow:hidden; }
.home-offer__slider-shell .tns-nav {
  position:absolute;
  z-index:3;
  right:0;
  bottom:-36px;
  left:0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  height:20px;
}
.home-offer__slider-shell .tns-nav button {
	flex:0 0 auto;
  width:9px;
  height:9px;
  margin:0;
  padding:0;
  border:0;
  border-radius:999px;
  background:#202a38;
  transition:width .18s ease,background-color .18s ease;
}
.home-offer__slider-shell .tns-nav button.tns-nav-active { flex-basis:auto; width:20px; background:#3269ed; }
.home-offer__slider-shell .tns-nav button:focus-visible { outline:3px solid rgba(50,105,237,.25); outline-offset:3px; }
.home-offer .single-news { border-radius:18px; box-shadow:0 10px 30px rgba(25,48,83,.055); }
.home-offer .single-news .image {
  position:relative;
  height:240px;
  margin:0;
  padding:0;
  overflow:hidden;
  border-radius:0;
  background:#edf2f8;
}
.home-offer .single-news .image > img,
.home-offer .single-news .image .site-card-slider,
.home-offer .single-news .image .carousel-inner,
.home-offer .single-news .image .carousel-item {
  display:block;
  width:100%;
  height:100%;
}
.home-offer .single-news .image img {
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  margin:0;
  object-fit:cover;
  object-position:center;
  transform:scale(1.001) rotate(0deg);
  transform-origin:center;
  backface-visibility:hidden;
  transition:transform .42s cubic-bezier(.2,.7,.2,1);
  will-change:transform;
}
.home-offer .single-news:hover .image img {
  transform:scale(1.045) rotate(.55deg);
}
.home-offer .single-news .content-body { padding:24px; }
.home-offer .single-news .content-body .title { margin-bottom:12px; }
.home-offer .single-news .content-body .title a { color:#222a37; font-size:18px; font-weight:750; }
.home-offer .single-news .content-body p { margin:0; color:#667085; font-size:13px; line-height:1.65; }

.home-comparison-section { padding-top:96px; padding-bottom:96px; }
.home-comparison { min-height:0; }

.home-portfolio { padding-top:96px; padding-bottom:110px; background:#fff; }
.home-portfolio .screen-head { position:relative; margin-top:5px; padding-bottom:44px; }
.home-portfolio .tns-nav { z-index:3; left:0; bottom:0; display:flex; align-items:center; justify-content:center; gap:7px; height:20px; transform:none; }
.home-portfolio .tns-nav button { flex:0 0 auto; margin:0; }

.home-project-map { padding-top:96px; padding-bottom:104px; overflow:hidden; background:#fff; }
.home-project-map__heading-row { display:flex; align-items:center; justify-content:space-between; gap:48px; margin-bottom:40px; }
.home-project-map__heading-row .home-section-heading { margin-bottom:0; }
.home-project-map__layout { width:100%; max-width:1040px; margin-inline:auto; }
.home-project-map__canvas { position:relative; min-height:530px; }
.home-project-map__legend { position:absolute; z-index:4; top:30px; right:30px; display:flex; align-items:center; gap:10px; min-width:150px; padding:11px 14px; border:1px solid #dfe3e9; border-radius:2px; color:#303642; background:#fff; box-shadow:0 3px 8px rgba(31,48,76,.06); font-size:12px; font-weight:600; line-height:1.2; }
.home-project-map__legend-swatch { display:block; width:30px; height:12px; background:#ffb81c; }
.home-project-map__svg { position:relative; z-index:1; display:block; width:100%; height:530px; }
.home-project-map__country,.home-project-map__country-region,.home-project-map__neighbor-country { fill:url(#poland-map-gradient); stroke:url(#poland-map-gradient); stroke-width:8; stroke-linecap:round; stroke-linejoin:round; transition:filter .18s ease,opacity .18s ease; }
.home-project-map__neighbor-country:hover { filter:brightness(.94); }
.home-project-map__region { cursor:default; fill:rgba(255,255,255,.035); stroke:rgba(255,255,255,.92); stroke-width:1.5; stroke-dasharray:5 5; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke; transition:fill .18s ease; }
.home-project-map__region:hover { fill:rgba(37,48,71,.1); }
.home-project-map__country-label { pointer-events:none; fill:#566175; font-size:11px; font-weight:850; letter-spacing:.08em; paint-order:stroke; stroke:#d9dee6; stroke-width:4px; text-transform:uppercase; }
.home-project-map__city { pointer-events:none; }
.home-project-map__city circle { fill:#fff; stroke:#5875a5; stroke-width:1.5; }
.home-project-map__city text { fill:#596273; font-size:9px; font-weight:750; paint-order:stroke; stroke:#e0e4e9; stroke-width:3px; stroke-linejoin:round; }
.home-project-map__city.is-major circle { fill:#ffb81c; stroke:#fff; stroke-width:2; }
.home-project-map__city.is-major text { fill:#273c61; font-size:10px; font-weight:850; }
.home-project-map__connection { fill:none; stroke:rgba(65,91,132,.62); stroke-width:1.05; stroke-dasharray:3 3 3; stroke-dashoffset:252; stroke-linecap:round; vector-effect:non-scaling-stroke; will-change:stroke-dashoffset; animation:portfolio-map-route 8s linear infinite; animation-delay:var(--connection-delay,0s); }
.home-project-map__company-marker { pointer-events:none; }
.home-project-map__company-pulse { fill:rgba(255,184,28,.22); transform-box:fill-box; transform-origin:center; animation:portfolio-map-company-pulse 2.2s ease-out infinite; }
.home-project-map__company-ring { fill:#fff; stroke:#ffb81c; stroke-width:2; }
.home-project-map__company-dot { fill:#ffb81c; }
.home-project-map__marker { cursor:pointer; opacity:1; outline:none; }
.home-project-map__marker-pulse { fill:rgba(47,141,224,.18); transform-box:fill-box; transform-origin:center; animation:portfolio-map-pulse 2.2s ease-out infinite; }
.home-project-map__marker-ring { fill:rgba(47,141,224,.2); stroke:rgba(47,141,224,.38); stroke-width:1.5; }
.home-project-map__marker-dot { fill:#1676cc; }
.home-project-map__marker:hover .home-project-map__marker-ring,.home-project-map__marker:focus .home-project-map__marker-ring { fill:rgba(47,141,224,.3); stroke:rgba(22,118,204,.72); stroke-width:2; }
@keyframes portfolio-map-pulse { 0%{opacity:.8;transform:scale(.45)} 72%,100%{opacity:0;transform:scale(1.35)} }
@keyframes portfolio-map-route { from{stroke-dashoffset:252} to{stroke-dashoffset:0} }
@keyframes portfolio-map-company-pulse { 0%{opacity:.8;transform:scale(.45)} 72%,100%{opacity:0;transform:scale(1.45)} }
@media (prefers-reduced-motion:reduce) { .home-project-map__company-pulse,.home-project-map__marker-pulse{animation:none} }
.home-project-map__empty { position:absolute; z-index:3; left:50%; top:50%; display:flex; align-items:center; flex-direction:column; width:min(300px,80%); padding:24px; border:1px solid rgba(51,106,234,.15); border-radius:18px; background:rgba(255,255,255,.88); box-shadow:0 16px 42px rgba(30,58,105,.09); backdrop-filter:blur(9px); text-align:center; transform:translate(-50%,-50%); }
.home-project-map__empty[hidden] { display:none; }
.home-project-map__empty i { display:grid; place-items:center; width:42px; height:42px; border-radius:50%; color:#fff; background:#336aea; }
.home-project-map__empty strong { margin-top:12px; color:#202631; font-size:15px; }
.home-project-map__empty span { margin-top:5px; color:#667085; font-size:12px; line-height:1.5; }
.home-project-map__counter { display:flex; align-items:center; gap:15px; }
.home-project-map__counter strong { color:#336aea; font-size:62px; font-weight:800; letter-spacing:-.055em; line-height:1; }
.home-project-map__counter span { color:#253047; font-size:13px; font-weight:800; line-height:1.3; text-transform:uppercase; }

.home-video-showcase { padding-top:96px; padding-bottom:96px; background:#f5f8fc; }
.home-video-card { min-height:410px; border-radius:24px; box-shadow:0 18px 54px rgba(23,32,51,.085); }
.home-video-card__content { padding:clamp(38px,4vw,56px); }
.home-video-card__media { min-height:410px; }

.home-partners { padding-top:96px; padding-bottom:96px; background:#fff; }
.home-partners .brand-list { margin-top:0; }
.home-partners .brand-list li a { border-radius:15px; box-shadow:none; }

.home-faq { padding-top:96px; padding-bottom:96px; background:#f5f8fc; }
.home-faq__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.home-faq__item { display:flex; gap:18px; min-height:188px; padding:26px; border:1px solid #dfe6f0; border-radius:18px; background:#fff; box-shadow:0 9px 26px rgba(25,48,83,.045); }
.home-faq__item > span { display:grid; place-items:center; flex:0 0 42px; height:42px; border-radius:12px; color:#245bd4; background:#edf3ff; font-size:12px; font-weight:900; }
.home-faq__item h3 { margin:2px 0 10px; color:#222a37; font-size:17px; line-height:1.35; }
.home-faq__item p { margin:0; color:#667085; font-size:13px; line-height:1.7; }

.home-final-cta { padding-top:74px; padding-bottom:74px; background:#fff; }
.home-final-cta__inner { display:flex; align-items:center; justify-content:space-between; gap:48px; padding:44px 48px; overflow:hidden; border-radius:24px; color:#fff; background:linear-gradient(125deg,#245bd4,#3978ef); box-shadow:0 22px 55px rgba(36,91,212,.24); }
.home-final-cta__inner > div:first-child { max-width:760px; }
.home-final-cta__inner span { color:#ffcf5a; font-size:12px; font-weight:850; letter-spacing:.09em; text-transform:uppercase; }
.home-final-cta__inner h2 { margin:9px 0 10px; color:#fff; font-size:clamp(28px,3vw,39px); line-height:1.17; }
.home-final-cta__inner p { margin:0; color:rgba(255,255,255,.8); font-size:14px; line-height:1.65; }
.home-final-cta__actions { display:flex; gap:10px; flex:0 0 auto; }
.home-final-cta__actions a { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:46px; padding:0 18px; border:1px solid rgba(255,255,255,.46); border-radius:12px; font-size:13px; font-weight:850; }
.home-final-cta__primary { color:#245bd4; background:#fff; }
.home-final-cta__primary:hover { color:#1949b2; background:#f7faff; }
.home-final-cta__secondary { color:#fff; background:rgba(255,255,255,.08); }
.home-final-cta__secondary:hover { color:#fff; background:rgba(255,255,255,.16); }

@media(max-width:1199px){
  .home-about__layout{gap:42px}
  .home-products .home-product-card{padding:20px}
  .home-products .home-product-card img{height:130px}
}
@media(max-width:991px){
  .home-hero{min-height:620px;padding:160px 0 105px!important}
  .home-about__layout{grid-template-columns:1fr;gap:40px}
  .home-about__features{max-width:720px}
  .home-section-heading--action{align-items:flex-start;flex-direction:column;gap:22px}
  .home-project-map__heading-row{align-items:center}
  .home-comparison{min-height:0}
  .home-comparison-card{gap:34px}
  .home-final-cta__inner{align-items:flex-start;flex-direction:column;padding:38px}
}
@media(max-width:767px){
  .home-products,.home-about,.home-offer,.home-comparison-section,.home-portfolio,.home-project-map,.home-video-showcase,.home-partners,.home-faq{padding-top:68px;padding-bottom:68px}
  .home-section-heading{margin-bottom:30px}
  .home-section-heading h2,.home-about__content h2{font-size:31px}
  .home-section-heading p{font-size:14px}
  .home-about__features{grid-template-columns:1fr}
  .home-about__feature{min-height:0}
  .home-project-map__canvas,.home-project-map__svg{height:430px;min-height:430px}
  .home-project-map__counter strong{font-size:52px}
  .home-faq__grid{grid-template-columns:1fr}
  .home-faq__item{min-height:0}
  .home-final-cta{padding:54px 0}
  .home-final-cta__inner{gap:28px;padding:32px 26px;border-radius:20px}
  .home-final-cta__actions{width:100%;flex-wrap:wrap}
  .home-final-cta__actions a{flex:1 1 160px}
}
@media(max-width:575px){
  .home-hero{min-height:650px;padding:138px 0 82px!important;background-attachment:scroll}
  .home-hero .typed h1{font-size:36px}
  .home-hero .typed-text{min-height:72px;font-size:29px}
  .home-hero .typed>p{font-size:14px}
  .home-products .home-product-card{padding:20px}
  .home-products .home-product-card img{height:auto;aspect-ratio:16/8}
  .home-about__feature{padding:19px}
  .home-offer .single-news .image{height:220px}
  .home-project-map__heading-row{align-items:flex-start;flex-direction:column;gap:20px;margin-bottom:30px}
  .home-project-map__legend{top:10px;right:10px;min-width:0;padding:8px 10px}
  .home-project-map__legend-swatch{width:22px;height:9px}
  .home-project-map__canvas,.home-project-map__svg{height:350px;min-height:350px}
  .home-project-map__city:not(.is-major) text{display:none}
  .home-faq__item{gap:14px;padding:21px}
}
