/* Homepage hero background video */
html {
  font-size: 59.375%;
}

.footer-credit-heart {
  color: var(--accent--dark);
}

.footer-application-btn {
  border-color: var(--accent--dark);
  color: var(--accent--dark);
}

#service-ai,
#service-sites,
#service-ecommerce,
#service-seo {
  scroll-margin-top: 10rem;
}

.footer-legal-links {
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
}

.mxd-hero-03__top {
  isolation: isolate;
  background-color: #303030;
}

.mxd-hero-03__background-video {
  position: absolute;
  top: -7.6rem;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 0;
  width: 100%;
  height: calc(100% + 7.6rem);
  object-fit: cover;
  object-position: center;
}

.hero-video-intro,
.hero-video-loop {
  transition: opacity 300ms ease;
}

.hero-video-loop {
  opacity: 0;
}

.hero-video-loop.is-active {
  opacity: 1;
}

.hero-video-intro.is-finished {
  opacity: 0;
}

.mxd-hero-03__top::after {
  position: absolute;
  top: -7.6rem;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  background: rgba(22, 22, 22, 0.3);
  content: "";
  pointer-events: none;
}

.mxd-hero-03__headline {
  z-index: 2;
  color: #fff;
  mix-blend-mode: normal;
}

@media only screen and (min-width: 2200px) {
  .mxd-hero-03__headline {
    max-width: 100%;
    padding-right: 4%;
    padding-left: 4%;
  }
}

.hero-03-headline__brand {
  display: block;
  width: 100%;
  max-width: 100%;
  color: #fff;
  font-family: var(--_font-accent);
  font-size: clamp(10rem, 15vw, 60rem);
  font-weight: 500;
  letter-spacing: 0.0em;
  line-height: 0.9;
  white-space: nowrap;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
}

.hero-03-headline__title {
  text-align: center;
}

.hero-03-headline__brand-word + .hero-03-headline__brand-word {
  margin-left: 0.12em;
}

.hero-03-headline__caption {
  color: #fff;
  mix-blend-mode: normal;
  font-size: 3rem;
  margin-bottom: 4rem;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
}

.hero-03-headline__intro {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2rem;
  width: 100%;
  min-width: 0;
}

.hero-03-headline__intro .hero-03-headline__caption {
  min-width: 0;
}

.mxd-logo__mark {
  display: inline-block;
  padding: 0 0.08em;
  margin-left: -0.08em;
  background: #2328e6;
  color: #fff;
}

.hero-caption__accent {
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  transition: background-color 180ms ease;
}

.hero-caption__accent:hover {
  background-color: #2328e6;
}

.mxd-promo__bg {
  background-image: url("../img/backgrounds/1440x900_cta-01.webp");
}

.service-card-link {
  color: inherit;
  text-decoration: none;
}

.service-card-link .mxd-services-cards-s__title h3 {
  text-decoration-line: underline;
  text-decoration-color: transparent;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.12em;
  transition: text-decoration-color 260ms ease;
}

.service-card-link:hover .mxd-services-cards-s__title h3,
.service-card-link:focus-visible .mxd-services-cards-s__title h3 {
  text-decoration-color: currentColor;
}

.service-card-link:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: -0.5rem;
}

@media only screen and (min-width: 1200px) {
  #service-support .mxd-services-cards-s__image.image-top {
    right: auto;
    left: 50%;
    transform: translateX(-50%);
  }
}

@media only screen and (min-width: 992px) and (max-width: 1599px) {
  .mxd-services-cards-s .mxd-services-cards-s__item {
    height: 52rem;
  }
}

@media only screen and (min-width: 1600px) {
  .mxd-services-cards-s .mxd-services-cards-s__item {
    height: 68rem;
  }
}

.hero-feature {
  position: relative;
  z-index: 1;
  order: -1;
  width: min(39rem, 100%);
  color: #fff;
}

.hero-feature__swiper {
  width: 100%;
  overflow: hidden;
}

.hero-feature__link {
  display: flex;
  align-items: center;
  gap: 3.2rem;
  width: 100%;
  color: #fff;
  text-decoration: none;
}

.hero-feature__link:hover .hero-feature__caption,
.hero-feature__link:focus-visible .hero-feature__caption {
  text-decoration: underline;
  text-decoration-color: currentColor;
  text-underline-offset: 0.14em;
  text-decoration-thickness: 1px;
}

.hero-feature__link:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 4px;
}

.hero-feature__slide,
.hero-feature__slide.swiper-slide-active {
  filter: none;
}

.hero-feature__image {
  display: block;
  width: 12.8rem;
  height: 12.8rem;
  flex: 0 0 12.8rem;
  border-radius: 2.6rem;
}

.hero-feature__caption {
  margin: 0 0 23px 0;
  font: normal var(--fw-medium) 2rem/1.2 var(--_font-accent);
  color: #fff;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
}

#service-ai,
#service-sites {
  scroll-margin-top: 12rem;
}

.hero-feature .hero-feature__pagination {
  position: absolute;
  z-index: 1;
  bottom: 4px;
  left: 16rem;
  display: flex;
  gap: 1rem;
  width: max-content;
  max-width: calc(100% - 16rem);
}

.hero-feature .hero-feature__pagination .swiper-pagination-bullet {
  display: block;
  width: 1rem;
  height: 1rem;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #858585;
  opacity: 1;
  cursor: pointer;
}

.hero-feature .hero-feature__pagination .swiper-pagination-bullet-active {
  background: #fff;
}

.hero-feature .hero-feature__pagination .swiper-pagination-bullet:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

@media only screen and (min-width: 1400px) {
  .hero-03-headline__intro {
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
    gap: 3rem;
  }

  .hero-feature {
    order: 0;
    flex: 0 0 39rem;
    margin-bottom: 4rem;
  }
}

.menu-promo__map {
  max-width: 100%;
  overflow: hidden;
  color: var(--t-bright);
  text-align: left;
  border-radius: var(--_radius-m);
  margin-top: -2.1rem;
}

.menu-promo__contact {
  margin-bottom: 15px;
  font-family: var(--_font-accent);
}

.menu-promo__caption {
  font-family: var(--_font-accent);
  font-size: 1.7rem;
}

.menu-promo__contact {
  font-size: 2rem;
}

.menu-promo__contact a {
  color: #2328E6;
  text-decoration: underline;
  text-decoration-color: #2328E6;
  text-underline-offset: 0.15em;
  background: none;
}

.no-touch p.menu-promo__contact a:hover,
p.menu-promo__contact a:focus-visible {
  color: #0B0F96;
  text-decoration-color: #0B0F96;
  background: none;
}

.menu-promo__map iframe {
  display: block;
  width: 100%;
  height: clamp(220px, 34vh, 360px);
  max-width: 100%;
  border: 0;
}

.yandex-map__links {
  position: absolute;
  inset: 0 0 auto;
  z-index: 1;
}

.mxd-header {
  position: fixed;
}

.mxd-header.is-hidden {
  transform: none;
  opacity: 1;
}

.yandex-map__links a {
  position: absolute;
  left: 0;
  color: #eee;
  font-size: 1.2rem;
  line-height: 1.2;
}

.yandex-map__links a:first-child {
  top: 0;
}

.yandex-map__links a:last-child {
  top: 1.4rem;
}

@media only screen and (min-width: 1200px) {
  .menu-promo__map {
    padding: 0;
    background: transparent;
    margin-top: -3rem;
  }
}

@media only screen and (min-width: 768px) {
  .mxd-hero-03__background-video {
    top: -9.6rem;
    height: calc(100% + 9.6rem);
  }

  .mxd-hero-03__top::after {
    top: -9.6rem;
  }
}

@media only screen and (max-width: 767px) {
  .hero-feature__link {
    gap: 1.5rem;
  }

  .hero-feature__image {
    width: 7.2rem;
    height: 7.2rem;
    flex-basis: 7.2rem;
    border-radius: 1.6rem;
  }

  .hero-feature__caption {
    font-size: 1.5rem;
  }

  .hero-feature .hero-feature__pagination {
    left: 8.7rem;
    max-width: calc(100% - 8.7rem);
  }

  .hero-03-headline__title {
    text-align: left;
  }

  .hero-03-headline__caption {
    font-size: 2.3rem;
  }

  .hero-03-headline__brand {
    width: 100%;
    font-size: clamp(6.4rem, 25.6vw, 12.8rem);
    white-space: normal;
  }

  .hero-03-headline__brand-word {
    display: block;
    width: max-content;
    max-width: 100%;
  }

  .hero-03-headline__brand-word + .hero-03-headline__brand-word {
    margin-left: 0;
  }
}

/* Bitrix24 CRM form styling */
.b24-window-close {
  top: 30px !important;
  right: 22px !important;
  width: 40px !important;
  height: 40px !important;
  border-radius: 30% !important;
  background-color: #808080 !important;
}

.b24-form-control-alert-message {
  left: 0 !important;
  background: #DC143C !important;
}

.b24-form-btn {
  border-radius: 25px !important;
}

.b24-form-header {
  padding: 35px 31px 15px !important;
}

.b24-form-header-title {
  font-weight: 400 !important;
  font-size: 28px !important;
  line-height: 33px !important;
  font-family: var(--_font-accent) !important;
}

.b24-form-wrapper {
  border-radius: 10px !important;
}


/* Blog sidebar search: scoped so it does not affect contact or CRM forms. */
.blog-standard-page .widget-search .widget-search__form {
  width: 100%;
}

.blog-standard-page .widget-search .search-form {
  position: relative;
  display: block;
  width: 100%;
  min-height: 6rem;
}

.blog-standard-page .widget-search .search-form input[type="search"] {
  display: block;
  width: 100%;
  height: 6rem;
  margin: 0;
  padding: 0 7rem 0 2rem;
  border: 1px solid var(--st-medium);
  border-radius: var(--_radius-s);
  outline: none;
  background: var(--base);
  color: var(--t-bright);
  font: normal var(--fw-regular) 1.8rem/1.2 var(--_font-accent);
  appearance: none;
  -webkit-appearance: none;
}

.blog-standard-page .widget-search .search-form input[type="search"]::placeholder {
  color: var(--t-muted);
  opacity: 1;
}

.blog-standard-page .widget-search .search-form input[type="search"]:focus {
  border-color: var(--st-bright);
}

.blog-standard-page .widget-search .search-form .btn-form {
  top: 50%;
  right: 0.2rem;
  display: flex;
  width: 5.6rem;
  height: 5.6rem;
  padding: 0;
  align-items: center;
  justify-content: center;
  border: 0;
  transform: translateY(-50%);
}

.blog-standard-page .widget-search .search-form .btn-form i {
  font-size: 2.4rem;
}

/* Blog editorial/admin components. Kept scoped to these pages only. */
.blog-standard-page .blog-card-excerpt {
  margin-top: 1.2rem;
  color: var(--t-medium);
}
.blog-standard-page .blog-cover-placeholder {
  display: block;
  width: 100%;
  height: 100%;
  background: radial-gradient(ellipse at 70% 28%, color-mix(in srgb, var(--accent--dark) 65%, transparent), transparent 42%), linear-gradient(135deg, var(--base-tint), var(--additional--dark));
}
.blog-standard-page .post-featured__title {
  font-size: clamp(3rem, 3.4vw, 4.6rem);
  line-height: 1.08;
}
.blog-standard-page .post-featured__categories {
  flex-direction: column;
}
.blog-standard-page .blog-featured-categories {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
@media (min-width: 1200px) {
  .blog-standard-page .blog-featured-categories {
    flex-direction: column;
  }
}
.blog-standard-page .blog-featured-hashtags {
  display: flex;
  flex-wrap: nowrap;
  gap: .7rem;
  width: max-content;
  max-width: 100%;
  margin-top: .2rem;
  overflow-x: auto;
  scrollbar-width: none;
}
.blog-standard-page .blog-featured-hashtags::-webkit-scrollbar {
  display: none;
}
.blog-standard-page .blog-featured-hashtags .tag {
  flex: 0 0 auto;
  opacity: .68;
  white-space: nowrap;
}
.blog-standard-page .blog-featured-hashtags .tag a {
  font-size: .94em;
}
.blog-category-breadcrumbs .breadcrumbs__nav {
  justify-content: flex-start;
}
.blog-article-body h2,
.blog-article-body h3 {
  margin: 2.4rem 0 1.2rem;
  color: var(--t-bright);
}
.blog-article-body p,
.blog-article-body li,
.blog-article-body blockquote {
  margin-bottom: 1.6rem;
}
.blog-article-body ul {
  padding-left: 2.4rem;
  list-style: disc;
}
.blog-article-cover {
  margin: 0 0 clamp(3.2rem, 5vw, 8rem);
}
.blog-article-cover .mxd-article__thumb {
  height: clamp(28rem, 48vw, 76rem);
  margin-bottom: 0;
}
.blog-article-cover figcaption {
  max-width: 90rem;
  margin: 1.6rem auto 0;
  padding: 0 1.5rem;
  color: var(--t-muted);
  font: normal var(--fw-regular) 1.4rem/1.6 var(--_font-default);
  text-align: center;
}
.blog-article-body .block-image {
  width: 100%;
}
.blog-article-body .block-image__container {
  width: 100%;
  min-width: 0;
}
.blog-article-body .block-image__container > img {
  display: block;
  width: 100%;
  max-height: 72rem;
  object-fit: cover;
}
.blog-topic-placeholder--1 {
  background-image: radial-gradient(ellipse at 25% 28%, color-mix(in srgb, var(--accent--dark) 85%, transparent), transparent 52%), linear-gradient(145deg, var(--base-tint), var(--additional--dark));
}
.blog-topic-placeholder--2 {
  background-image: radial-gradient(ellipse at 72% 30%, color-mix(in srgb, var(--accent--dark) 75%, transparent), transparent 48%), linear-gradient(145deg, var(--additional--dark), var(--base-tint));
}
.blog-topic-placeholder--3 {
  background-image: radial-gradient(ellipse at 48% 70%, color-mix(in srgb, var(--accent--dark) 70%, transparent), transparent 50%), linear-gradient(145deg, var(--base), var(--additional--dark));
}
.blog-article-body a {
  color: var(--accent--dark);
  text-decoration: underline;
  text-underline-offset: .2em;
}
.text-page-template__breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem;
  margin-bottom: 4rem;
  color: var(--t-muted);
  font: normal var(--fw-regular) 1.5rem/1.4 var(--_font-default);
}
.text-page-template__breadcrumbs a { color: var(--t-bright); }
.mxd-page-content.inner-page-content.text-page-template {
  padding-top: 28rem;
}
.mxd-section.text-page-template__heading {
  padding-bottom: clamp(3rem, 5vw, 6rem);
}
.mxd-section.text-page-template__cover-section {
  padding-bottom: clamp(3rem, 5vw, 6rem);
}
.mxd-section.text-page-template__body-section {
  padding-bottom: clamp(7rem, 9vw, 12rem);
}
.text-page-template__heading .inner-headline__title {
  width: 100%;
  max-width: none;
  font-size: clamp(5rem, 7vw, 9rem);
  line-height: 1.08;
}
.text-page-template__breadcrumbs { margin: 2.4rem 0 0; }
.text-page-template__lead {
  max-width: 120rem;
  margin-top: 3rem;
  color: var(--t-medium);
  font: normal var(--fw-regular) clamp(2.2rem, 2.5vw, 3.2rem)/1.4 var(--_font-accent);
}
.text-page-template__cover {
  width: 100%;
  margin: 0;
}
.text-page-template__cover img {
  display: block;
  width: 100%;
  height: clamp(34rem, 52vw, 78rem);
  border-radius: var(--_radius-l);
  object-fit: cover;
}
.text-page-template__cover figcaption,
.text-page-template__image-block figcaption {
  margin-top: 1.5rem;
  color: var(--t-muted);
  font: normal var(--fw-regular) 1.4rem/1.6 var(--_font-default);
}
.text-page-template__body {
  width: 100%;
  max-width: 128rem;
  margin: 0 auto;
  color: var(--t-medium);
  font: normal var(--fw-regular) 2.2rem/1.6 var(--_font-accent);
}
.text-page-template__body p,
.text-page-template__body li { color: inherit; }
.text-page-template__intro {
  max-width: 120rem;
  margin-bottom: clamp(3rem, 5vw, 6rem);
  font: normal var(--fw-regular) clamp(2.2rem, 2.4vw, 3rem)/1.55 var(--_font-accent);
}
.text-page-template__text-block {
  margin-bottom: clamp(3.5rem, 5vw, 6rem);
}
.text-page-template__text-block h2 {
  margin-bottom: 2.5rem;
  font-size: clamp(3.4rem, 4vw, 5.4rem);
  line-height: 1.12;
}
.text-page-template__columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(2.5rem, 5vw, 7rem);
}
.text-page-template__image-block {
  width: 100%;
  margin: 0 0 clamp(3.5rem, 5vw, 6rem);
}
.text-page-template__image-block img {
  display: block;
  width: 100%;
  max-height: 78rem;
  border-radius: var(--_radius-l);
  object-fit: cover;
}
.text-page-template__split {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(28rem, .8fr);
  align-items: center;
  gap: clamp(2.5rem, 5vw, 7rem);
}
.text-page-template__image-block--side { margin: 0; }
.text-page-template__body ul { padding-left: 2.5rem; list-style: disc; }
.text-page-template__body li { padding-left: .4rem; }
.text-page-template__quote {
  margin: 0 0 clamp(3.5rem, 5vw, 6rem);
  padding: 1rem 0 1rem clamp(2rem, 4vw, 5rem);
  border-left: .4rem solid var(--accent--dark);
  color: var(--t-bright);
  font: normal var(--fw-medium) clamp(2.6rem, 3.5vw, 4.4rem)/1.3 var(--_font-accent);
}
.text-page-template__quote p { color: inherit; }
.blog-article-categories {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: .8rem 1.2rem;
  margin: -1.8rem 0 1.6rem;
  color: var(--t-muted);
  font: normal var(--fw-regular) 1.5rem/1.4 var(--_font-default);
}
.blog-article-categories__link {
  color: var(--t-bright);
  text-decoration: underline;
  text-underline-offset: .2em;
}
.blog-article-back {
  margin-top: 3rem;
}
.blog-article-back__link {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  color: var(--t-muted);
  font: normal var(--fw-regular) 1.5rem/1.4 var(--_font-default);
  text-decoration: underline;
  text-underline-offset: .2em;
  transition: color .25s ease;
}
.blog-article-back__link:hover {
  color: var(--t-bright);
}
.case-detail-hero { background-size: cover; }
.case-detail-media { height: auto; min-height: 0; margin: 0; }
.case-detail-media img { display: block; width: 100%; height: auto; aspect-ratio: 8 / 5; object-fit: cover; }
.case-image-caption { padding: 1.2rem 1.6rem; color: var(--t-muted); font-size: 1.5rem; line-height: 1.5; }
.case-detail-page .mxd-project-cards__inner { margin: 0; }
.case-detail-page .mxd-project-cards__inner .case-image-caption { position: absolute; right: 0; bottom: 0; left: 0; background: rgb(0 0 0 / 58%); color: #fff; }
.cases-page .mxd-projects-masonry__gallery { row-gap: 3rem; }
.cases-page .mxd-project-item__preview { background-position: center; background-size: cover; }
.case-detail-page .mxd-project__block { margin-bottom: clamp(5rem, 8vw, 10rem); }
.case-detail-page .mxd-project__block.no-margin { margin-bottom: 0; }
.blog-admin__panel {
  max-width: 112rem;
  margin: 0 auto;
  padding: clamp(2rem, 4vw, 5rem);
  border-radius: var(--_radius-m);
  background: var(--base-tint);
}
.blog-admin__panel h1,
.blog-admin__panel h2 { margin-bottom: 2rem; }
.blog-admin__heading,
.blog-admin__actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: 2rem;
}
.blog-admin__form { display: grid; gap: 2rem; }
.blog-admin__form label,
.blog-admin form > label {
  display: grid;
  gap: .8rem;
  color: var(--t-bright);
  font: normal var(--fw-medium) 1.7rem/1.4 var(--_font-accent);
}
.blog-admin__form input,
.blog-admin__form textarea,
.blog-admin__form select,
.blog-admin form > label input {
  width: 100%;
  min-height: 5.2rem;
  padding: 1.2rem 1.5rem;
  border: 1px solid var(--st-medium);
  border-radius: var(--_radius-s);
  background: var(--base);
  color: var(--t-bright);
  font: normal var(--fw-regular) 1.6rem/1.5 var(--_font-default);
}
.blog-admin__form textarea { min-height: 10rem; resize: vertical; }
.blog-admin__form label:has(textarea[name="body"]) textarea { min-height: 42rem; }
.blog-admin__form small,
.blog-admin__table small,
.blog-admin__term-list small {
  display: block;
  color: var(--t-muted);
  font: normal var(--fw-regular) 1.3rem/1.5 var(--_font-default);
}
.blog-admin__actions { justify-content: flex-start; }
.blog-admin__text-button {
  padding: .8rem 0;
  border: 0;
  background: none;
  color: var(--t-bright);
  font: inherit;
  text-decoration: underline;
  cursor: pointer;
}
.blog-admin__delete { color: #f26d76; }
.blog-admin__error { margin: 1rem 0 2rem; color: #f26d76; }
.blog-admin__table-wrap { width: 100%; overflow-x: auto; }
.blog-admin__table { width: 100%; border-collapse: collapse; text-align: left; }
.blog-admin__table th,
.blog-admin__table td { padding: 1.4rem 1rem; border-bottom: 1px solid var(--st-medium); vertical-align: top; }
.blog-admin__table td:first-child { min-width: 24rem; }
.blog-admin__terms-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4rem; }
.blog-admin__term-list { margin-top: 2rem; }
.blog-admin__term-list li { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--st-medium); }
@media (max-width: 767px) {
  .blog-admin__terms-grid { grid-template-columns: 1fr; gap: 3rem; }
  .blog-admin__heading { align-items: flex-start; flex-direction: column; }
  .blog-article-cover { margin-bottom: 3.2rem; }
  .blog-article-cover .mxd-article__thumb { height: clamp(24rem, 74vw, 38rem); }
  .blog-article-cover figcaption { margin-top: 1.2rem; font-size: 1.3rem; }
  .text-page-template__breadcrumbs { margin-top: 1.8rem; }
  .mxd-page-content.inner-page-content.text-page-template { padding-top: 14rem; }
  .mxd-section.text-page-template__heading { padding-bottom: 3rem; }
  .mxd-section.text-page-template__cover-section { padding-bottom: 3rem; }
  .mxd-section.text-page-template__body-section { padding-bottom: 7rem; }
  .text-page-template__heading .inner-headline__title { font-size: clamp(4.2rem, 12vw, 6rem); }
  .text-page-template__lead { margin-top: 1.6rem; }
  .text-page-template__cover img { height: clamp(25rem, 82vw, 42rem); }
  .text-page-template__body { font-size: 1.8rem; line-height: 1.6; }
  .text-page-template__columns,
  .text-page-template__split { grid-template-columns: 1fr; }
  .text-page-template__image-block--side { margin-bottom: 0; }
}
