html {
  scroll-behavior: smooth;
}

body {
  font-family: "Inter", sans-serif;
  font-weight: 400;
}

[id] {
  scroll-margin-top: var(--header-h, 6.875rem);
}

.container {
  max-width: 95.625rem;
  margin-inline: auto;
  padding: 0 0.9375rem;
}

@font-face {
  font-family: "Tektur";
  font-weight: 900;
  font-style: normal;
  src: local("Tektur-Black"), url(../fd/assets/fonts/Tektur-Black.woff) format("woff");
  font-display: swap;
}

@font-face {
  font-family: "Tektur";
  font-weight: 800;
  font-style: normal;
  src: local("Tektur-ExtraBold"), url(../fd/assets/fonts/Tektur-ExtraBold.woff) format("woff");
  font-display: swap;
}

@font-face {
  font-family: "Tektur";
  font-weight: 700;
  font-style: normal;
  src: local("Tektur-Bold"), url(../fd/assets/fonts/Tektur-Bold.woff) format("woff");
  font-display: swap;
}

@font-face {
  font-family: "Inter";
  font-weight: 700;
  font-style: normal;
  src: local("Inter-Bold"), url(../fd/assets/fonts/Inter-Bold.woff) format("woff");
  font-display: swap;
}

@font-face {
  font-family: "Inter";
  font-weight: 600;
  font-style: normal;
  src: local("Inter-SemiBold"), url(../fd/assets/fonts/Inter-SemiBold.woff) format("woff");
  font-display: swap;
}

@font-face {
  font-family: "Inter";
  font-weight: 500;
  font-style: normal;
  src: local("Inter-Medium"), url(../fd/assets/fonts/Inter-Medium.woff) format("woff");
  font-display: swap;
}

@font-face {
  font-family: "Inter";
  font-weight: 400;
  font-style: normal;
  src: local("Inter-Regular"), url(../fd/assets/fonts/Inter-Regular.woff) format("woff");
  font-display: swap;
}

html {
  box-sizing: border-box;
}

*,
*::after,
*::before {
  box-sizing: border-box;
}

body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
li,
figure,
figcaption,
blockquote,
dl,
dd {
  margin: 0;
}

a {
  display: inline-block;
  text-decoration: none;
  color: inherit;
  transition: color 0.4s ease, opacity 0.4s ease, background-color 0.4s ease;
}

table,
ul {
  margin: 0;
  padding: 0;
}

img {
  max-width: 100%;
  display: block;
}

ul,
li {
  list-style: none;
}

button {
  cursor: pointer;
  color: inherit;
  background-color: transparent;
  border: none;
}

input,
button,
textarea,
select {
  font-family: inherit;
  font-weight: inherit;
}

html,
body {
  height: 100%;
}

body {
  background-color: #fff;
  color: #151D30;
  font-size: 1rem;
}

body.lock {
  overflow: hidden;
  touch-action: none;
}

.wrapper {
  min-height: 100%;
  display: flex;
  flex-direction: column;
  overflow: clip;
  position: relative;
}

.wrapper::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 197.1875rem;
  bottom: 0;
  left: 0;
  background: linear-gradient(180deg, rgba(243, 248, 255, 0) 0%, #F3F8FF 14.86%);
  z-index: 1;
}

.main {
  flex-grow: 1;
}

h1,
h2,
h3,
h4 {
  font-family: "Tektur", sans-serif;
  font-weight: 800;
}

.decor {
  position: relative;
}

.decor::after {
  content: "";
  position: absolute;
  width: 6.5rem;
  height: 0.25rem;
  background-color: #155DFC;
  border-radius: 0.25rem;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}

.btn {
  position: relative;
  z-index: 5;
  font-family: "Tektur", sans-serif;
  font-weight: 700;
  color: #fff;
  line-height: 1.5;
  border-radius: 0.9375rem;
  font-size: 1.125rem;
  padding: 0.9375rem 1.5625rem;
  background-color: #155DFC;
  gap: 0.625rem;
  align-items: center;
}

.btn img {
  transition: transform 0.4s ease, opacity 0.4s ease;
}

.header {
  background-color: rgba(17, 25, 45, 0.25);
  backdrop-filter: blur(0.78125rem);
  padding-block: 1.25rem;
  width: 100%;
  position: fixed;
  z-index: 1000;
  -webkit-transition: background-color 0.4s ease, padding-top 0.4s ease, backdrop-filter 0.4s ease;
  transition: background-color 0.4s ease, padding-top 0.4s ease, backdrop-filter 0.4s ease;
}

.scroll .header {
  background: rgba(17, 25, 45, 0.8);
  padding-top: 1.25rem;
  backdrop-filter: blur(0.78125rem);
}

.header__bottom {
  display: none;
}

.header .btn {
  background: rgba(255, 255, 255, 0.1);
}

.header__top {
  display: flex;
  justify-content: space-between;
  gap: 0.9375rem 1.25rem;
  align-items: center;
}

.logo {
  display: flex;
  align-items: center;
  gap: 1.5625rem;
  font-weight: 600;
  text-transform: uppercase;
  line-height: 1.5;
  font-size: 1.25rem;
  color: #fff;
}

.logo img {
  flex-shrink: 0;
  max-width: 4.375rem;
  width: 100%;
  aspect-ratio: 70/74;
  -o-object-fit: contain;
  object-fit: contain;
}

.menu {
  position: relative;
}

.menu ul {
  display: flex;
  gap: 0.625rem 3.125rem;
  flex-wrap: wrap;
  max-width: 37.5rem;
  justify-content: center;
}

.menu li {
  line-height: 1.5;
  font-weight: 700;
  color: #fff;
  text-transform: uppercase;
}

.menu__open {
  display: none;
}

.hero {
  padding-top: 14.5625rem;
  position: relative;
  z-index: 5;
}

.hero__desc {
  width: 100%;
  max-width: 53.9375rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  position: relative;
  z-index: 10;
  margin-bottom: 20.3125rem;
}

.hero__desc > span {
  font-family: "Tektur", sans-serif;
  font-weight: 700;
  line-height: 1.5;
  display: flex;
  align-items: center;
  gap: 0.625rem;
  color: #51C2FF;
  padding: 0.5625rem 0.625rem;
  border-radius: 6.25rem;
  border: 0.0625rem solid rgba(81, 194, 255, 0.5);
  background-color: rgba(21, 93, 252, 0.1);
  margin-bottom: 0.8125rem;
}

.hero__desc > span img {
  flex-shrink: 0;
}

.hero__desc p {
  color: #fff;
  font-weight: 500;
  font-size: 1.125rem;
  line-height: 1.5;
  margin-bottom: 2.5rem;
}

.hero__desc h1 {
  color: #fff;
  font-weight: 900;
  line-height: 1;
  margin-bottom: 1.875rem;
  font-size: clamp( 3.125rem , -2.4895833333rem  +  11.6666666667vw , 4rem );
}

.hero__desc h1 span {
  background: -webkit-gradient(linear, left top, right top, from(#50A4FF), to(#51C2FF));
  background: linear-gradient(90deg, #50A4FF 0%, #51C2FF 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.hero__desc-buttons {
  display: flex;
  align-items: center;
  gap: 0.625rem 0.9375rem;
  flex-wrap: wrap;
}

.hero__desc-buttons img {
  flex-shrink: 0;
}

.hero__desc-buttons a {
  padding-block: 1.25rem;
}

.hero__desc-buttons a:first-child {
  display: flex;
}

.hero__desc-buttons a:last-child {
  color: #151D30;
  background-color: #fff;
}

.hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.hero__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: -webkit-gradient(linear, left top, left bottom, from(#151D30), color-stop(30%, rgba(21, 29, 48, 0.5)), color-stop(44.16%, rgba(255, 255, 255, 0.3)), color-stop(80%, #FFF), to(#FFF));
  background: linear-gradient(180deg, #151D30 0%, rgba(21, 29, 48, 0.5) 30%, rgba(255, 255, 255, 0.3) 44.16%, #FFF 80%, #FFF 100%);
  z-index: 2;
  height: 100.5%;
}

.hero__bg::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(81deg, #151D30 7.62%, rgba(21, 29, 48, 0) 97.41%);
}

.hero__bg img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.about-hero {
  position: relative;
  z-index: 10;
}

.about-hero__inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1.25rem;
}

.about-hero__desc {
  max-width: 45.9375rem;
  width: 100%;
}

.about-hero__desc h2 {
  font-size: 2.625rem;
  position: relative;
  margin-bottom: 3.125rem;
  padding-bottom: 1.25rem;
}

.about-hero__desc h2::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  height: 0.25rem;
  width: 6.5rem;
  background-color: #155DFC;
  border-radius: 0.25rem;
}

.about-hero__desc p {
  font-size: 1.125rem;
  line-height: 1.5;
  margin-bottom: 1.5625rem;
}

.about-hero__desc p:has(+ div) {
  margin-bottom: 3.125rem;
}

.about-hero__desc span {
  font-weight: 600;
}

.about-hero__desc-box {
  position: relative;
  padding-block: 3.125rem;
  padding-inline: 1.875rem 4.375rem;
  border-radius: 0 1.5625rem 1.5625rem 0;
  background: -webkit-gradient(linear, left top, right top, from(rgba(21, 93, 252, 0.05)), to(rgba(21, 93, 252, 0)));
  background: linear-gradient(90deg, rgba(21, 93, 252, 0.05) 0%, rgba(21, 93, 252, 0) 100%);
}

.about-hero__desc-box::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 0.25rem;
  height: 100%;
  background-color: #155DFC;
}

.about-hero__desc-box p {
  line-height: 1.5;
  font-size: 1.125rem;
  font-weight: 500;
}

.about-hero__items {
  max-width: 37.9375rem;
  width: 100%;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.875rem;
  flex-shrink: 0;
}

.about-hero__item {
  max-width: 18rem;
  min-height: 18rem;
  width: 100%;
  padding: 1.5625rem;
  border-radius: 1.5625rem;
  background-color: #fff;
  -webkit-box-shadow: 0 0.25rem 1.5625rem 0 rgba(0, 0, 0, 0.05);
  box-shadow: 0 0.25rem 1.5625rem 0 rgba(0, 0, 0, 0.05);
}

.about-hero__item h3 {
  font-size: 1.25rem;
  line-height: 1.5;
  margin-bottom: 0.625rem;
}

.about-hero__item p {
  font-size: 1.125rem;
  line-height: 1.5;
}

.about-hero__item span {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  border-radius: 0.625rem;
  max-width: 3.75rem;
  width: 100%;
  aspect-ratio: 1;
  margin-bottom: 1.875rem;
  background: #B1EC52;
  flex-shrink: 0;
}

.about-hero__item:last-child {
  grid-column: span 2;
  max-width: 100%;
}

.about-hero__item:last-child span {
  background: rgba(21, 93, 252, 0.05);
}

.about-hero__item:nth-child(2) {
  padding-top: 0.625rem;
}

.about-hero__item:nth-child(2) img {
  max-width: 8.6875rem;
  width: 100%;
  aspect-ratio: 139/94;
  -o-object-fit: cover;
  object-fit: cover;
  margin-bottom: 0.6875rem;
  flex-shrink: 0;
}

.block {
  position: relative;
  padding-top: 9.375rem;
  margin-bottom: 12.5rem;
}

.block__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 254.3125rem;
  -o-object-fit: cover;
  object-fit: cover;
  z-index: 2;
  -webkit-mask-image: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(5%, #000), color-stop(95%, #000), to(transparent));
  -webkit-mask-image: linear-gradient(transparent, #000 5%, #000 95%, transparent);
  mask-image: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(5%, #000), color-stop(95%, #000), to(transparent));
  mask-image: linear-gradient(transparent, #000 5%, #000 95%, transparent);
}

.technologies {
  position: relative;
  z-index: 3;
  margin-bottom: 9.0625rem;
}

.technologies__desc {
  max-width: 51.875rem;
  text-align: center;
  margin-inline: auto;
  margin-bottom: 7.5rem;
}

.technologies__desc h2 {
  font-size: 2.625rem;
}

.technologies__desc h3 {
  font-size: 1.5rem;
  padding-bottom: 1.25rem;
  margin-bottom: 3.125rem;
}

.technologies__desc p {
  font-size: 1.125rem;
  line-height: 1.5;
}

.technologies__desc span {
  font-weight: 700;
}

.technologies .btn {
  display: flex;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  -webkit-transition: color 0.4s ease;
  transition: color 0.4s ease;
}

.technologies__items {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 5rem 1.875rem;
}

.technologies__item {
  max-width: 45.9375rem;
  width: 100%;
  border-radius: 1.5625rem;
  background-color: #fff;
  -webkit-box-shadow: 0 0.25rem 1.5625rem 0 rgba(0, 0, 0, 0.05);
  box-shadow: 0 0.25rem 1.5625rem 0 rgba(0, 0, 0, 0.05);
  padding: 2.5rem;
}

.technologies__item h4,
.technologies__item p {
  max-width: 31.25rem;
}

.technologies__item h4 {
  margin-bottom: 0.9375rem;
  font-size: clamp( 1.25rem , -2.9772727273rem  +  7.2727272727vw , 1.5rem );
}

.technologies__item p {
  font-weight: 500;
  line-height: 1.5;
  margin-bottom: 1.875rem;
}

.technologies__item-top {
  margin-bottom: 1.25rem;
  display: flex;
  gap: 2.5rem;
  align-items: flex-start;
}

.technologies__item-top img {
  max-width: 15.0625rem;
  width: 100%;
  -o-object-fit: contain;
  object-fit: contain;
  aspect-ratio: 241/335;
  margin-top: -8.25rem;
  flex-shrink: 0;
}

.technologies__item-top ul {
  display: flex;
  flex-direction: column;
  gap: 0.3125rem;
  margin-top: 1.25rem;
}

.technologies__item-top li {
  position: relative;
  padding-left: 1.4375rem;
  font-weight: 600;
  line-height: 1.5;
}

.technologies__item-top li::after {
  content: "";
  position: absolute;
  border-radius: 6.25rem;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  left: 0;
  width: 0.875rem;
  height: 0.875rem;
  background: url(../fd/assets/images/icons/check-dark.svg) center/cover no-repeat;
}

.banner {
  position: relative;
  z-index: 3;
  margin-bottom: 9.375rem;
}

.banner__inner {
  position: relative;
  border-radius: 1.5625rem;
  background: -webkit-gradient(linear, left top, right top, from(#324B98), to(#3C4456));
  background: linear-gradient(90deg, #324B98 0%, #3C4456 100%);
  min-height: 23.6875rem;
  padding: 3.125rem 4.375rem;
}

.banner__inner img {
  max-width: 28.0625rem;
  width: 100%;
  aspect-ratio: 449/471;
  -o-object-fit: contain;
  object-fit: contain;
  position: absolute;
  bottom: 0;
  right: clamp( 0.0000000625rem , -65.1041661701rem  +  83.3333327778vw , 9.375rem );
}

.banner__desc {
  max-width: 41.8125rem;
  width: 100%;
  color: #fff;
}

.banner__desc h2 {
  font-size: 2rem;
  margin-bottom: 0.9375rem;
}

.banner__desc p {
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.5;
  margin-bottom: 0.9375rem;
}

.banner .btn {
  color: #155DFC;
  background-color: #fff;
}

.services {
  margin-bottom: 9.375rem;
  position: relative;
  z-index: 3;
}

.services__item {
  position: relative;
  overflow: hidden;
  max-width: 45.9375rem;
  width: 100%;
  border-radius: 1.5625rem;
  background-color: #fff;
  -webkit-box-shadow: 0 0.25rem 1.5625rem 0 rgba(0, 0, 0, 0.05);
  box-shadow: 0 0.25rem 1.5625rem 0 rgba(0, 0, 0, 0.05);
  padding: 2.5rem 2.5rem 8.5625rem;
  display: grid;
  grid-row: span 3;
  grid-template-rows: subgrid;
  gap: 0;
}

.services__item::after {
  content: "";
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background: -webkit-gradient(linear, left top, right top, color-stop(30%, #FFF), to(rgba(255, 255, 255, 0)));
  background: linear-gradient(90deg, #FFF 30%, rgba(255, 255, 255, 0) 100%);
}

.services__item h2 {
  font-size: 2.625rem;
  margin-bottom: 0.9375rem;
  max-width: 30rem;
  position: relative;
  z-index: 5;
}

.services__item p {
  position: relative;
  z-index: 5;
  font-size: 1.125rem;
  line-height: 1.5;
  margin-bottom: 0.8125rem;
  max-width: 30rem;
}

.services .btn {
  display: flex;
  -webkit-transition: color 0.4s ease;
  transition: color 0.4s ease;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}

.services__item-bg {
  -o-object-fit: cover;
  object-fit: cover;
  inset: 0;
  width: 100%;
  height: 100%;
  position: absolute;
}

.services__item-bg img {
  -o-object-fit: contain;
  object-fit: contain;
  width: 100%;
  height: 100%;
}

.services__items {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.875rem;
}

.partners {
  position: relative;
  z-index: 3;
  margin-bottom: 9.375rem;
}

.partners__desc {
  max-width: 45.9375rem;
  margin-bottom: 4.375rem;
  margin-inline: auto;
  text-align: center;
}

.partners__desc h2 {
  font-size: 2.625rem;
  margin-bottom: 3.125rem;
  padding-bottom: 1.25rem;
}

.partners__desc p {
  font-size: 1.125rem;
  line-height: 1.5;
}

.partners__items {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: clamp( 1.25rem , -27.9166666667rem  +  33.3333333333vw , 1.875rem );
}

.partners__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
  text-align: center;
  width: 100%;
  border-radius: 0.9375rem;
  background-color: #fff;
  padding: 0.9375rem;
  -webkit-box-shadow: 0 0.25rem 1.5625rem 0 rgba(0, 0, 0, 0.05);
  box-shadow: 0 0.25rem 1.5625rem 0 rgba(0, 0, 0, 0.05);
}

.partners__item img {
  -o-object-fit: contain;
  object-fit: contain;
  max-width: 6.8125rem;
  width: 100%;
  aspect-ratio: 109/60;
}

.partners__item p {
  font-weight: 500;
  opacity: 0.7;
}

.contacts {
  position: relative;
  z-index: 3;
}

.contacts h2 {
  font-size: 2.625rem;
  text-align: center;
  margin-bottom: 4.375rem;
  padding-bottom: 1.25rem;
}

.contacts__info {
  width: 100%;
  max-width: clamp( 30rem , -34.5583333333rem  +  84.6666666667vw , 37.9375rem );
}

.contacts__items {
  max-width: 21.5rem;
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 1.875rem 1.25rem;
  margin-bottom: 4.375rem;
}

.contacts__item {
  display: flex;
  gap: 1.875rem;
  align-items: flex-start;
}

.contacts__item span {
  font-family: "Tektur", sans-serif;
  font-weight: 700;
  display: block;
  margin-bottom: 0.3125rem;
  line-height: 1.5;
}

.contacts__item a,
.contacts__item p {
  line-height: 1.5;
  font-size: 1.125rem;
}

.contacts__item-emails {
  display: flex;
  flex-direction: column;
  gap: 0.3125rem;
}

.contacts__item-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  max-width: 2.5rem;
  width: 100%;
  aspect-ratio: 1;
  border-radius: 0.625rem;
  background-color: #155DFC;
  -webkit-box-shadow: 0 0.25rem 1.5625rem 0 rgba(0, 0, 0, 0.05);
  box-shadow: 0 0.25rem 1.5625rem 0 rgba(0, 0, 0, 0.05);
  flex-shrink: 0;
}

.contacts__map {
  width: 100%;
  height: 21.25rem;
  overflow: hidden;
  border-radius: 1.5625rem;
}

.contacts .ymaps-2-1-79-copyright__logo,
.contacts .ymaps-2-1-79-copyright__content,
.contacts .ymaps-2-1-79-gototaxi__container,
.contacts .ymaps-2-1-79-gototech {
  display: none;
}

.contacts__inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 3.125rem 1.5625rem;
}

.contacts__form {
  padding: 3.125rem;
  border-radius: 1.5625rem;
  background-color: #fff;
  -webkit-box-shadow: 0 0.25rem 1.5625rem 0 rgba(0, 0, 0, 0.05);
  box-shadow: 0 0.25rem 1.5625rem 0 rgba(0, 0, 0, 0.05);
}

.contacts__form h3 {
  font-size: 2rem;
  margin-bottom: 2.5rem;
}

.contacts__form strong {
  font-weight: 500;
  line-height: 1.5;
  font-size: 0.875rem;
  display: block;
  margin-bottom: 0.3125rem;
}

.contacts__form input,
.contacts__form textarea {
  width: 100%;
  background-color: #fff;
  border-radius: 0.9375rem;
  border: 0.0625rem solid rgba(21, 29, 48, 0.1);
  outline: none;
  padding: 0.6875rem;
  font-size: 1rem;
  line-height: 1.5;
  -webkit-transition: border-color 0.4s ease;
  transition: border-color 0.4s ease;
}

.contacts__form input::-webkit-input-placeholder,
.contacts__form textarea::-webkit-input-placeholder {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #151D30;
  opacity: 0.4;
  -webkit-transition: opacity 0.4s ease;
  transition: opacity 0.4s ease;
}

.contacts__form input::-moz-placeholder,
.contacts__form textarea::-moz-placeholder {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #151D30;
  opacity: 0.4;
  -moz-transition: opacity 0.4s ease;
  transition: opacity 0.4s ease;
}

.contacts__form input:-ms-input-placeholder,
.contacts__form textarea:-ms-input-placeholder {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #151D30;
  opacity: 0.4;
  -ms-transition: opacity 0.4s ease;
  transition: opacity 0.4s ease;
}

.contacts__form input::-ms-input-placeholder,
.contacts__form textarea::-ms-input-placeholder {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #151D30;
  opacity: 0.4;
  -ms-transition: opacity 0.4s ease;
  transition: opacity 0.4s ease;
}

.contacts__form input::placeholder,
.contacts__form textarea::placeholder {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #151D30;
  opacity: 0.4;
  -webkit-transition: opacity 0.4s ease;
  transition: opacity 0.4s ease;
}

.contacts__form input:focus,
.contacts__form textarea:focus {
  border-color: #151D30;
}

.contacts__form input:focus::-webkit-input-placeholder,
.contacts__form textarea:focus::-webkit-input-placeholder {
  opacity: 0;
}

.contacts__form input:focus::-moz-placeholder,
.contacts__form textarea:focus::-moz-placeholder {
  opacity: 0;
}

.contacts__form input:focus:-ms-input-placeholder,
.contacts__form textarea:focus:-ms-input-placeholder {
  opacity: 0;
}

.contacts__form input:focus::-ms-input-placeholder,
.contacts__form textarea:focus::-ms-input-placeholder {
  opacity: 0;
}

.contacts__form input:focus::placeholder,
.contacts__form textarea:focus::placeholder {
  opacity: 0;
}

.contacts__form textarea {
  resize: vertical;
  height: 5rem;
  min-height: 5rem;
  margin-bottom: 2.5rem;
  border-radius: 0.625rem;
}

.contacts__form br {
  display: none;
}

.contacts__form > input {
  margin-bottom: 0.9375rem;
}

.contacts__form button {
  width: 100%;
  text-align: center;
  -webkit-transition: color 0.4s ease;
  transition: color 0.4s ease;
}

.contacts__form label {
  position: relative;
  display: block;
  cursor: pointer;
  padding-left: 2.5625rem;
  font-size: 0.875rem;
  line-height: 1.5;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  max-width: 31.25rem;
  margin-bottom: 1.25rem;
}

.contacts__form label input[type="checkbox"],
.contacts__form label input[type="radio"] {
  width: auto;
  overflow: hidden;
  position: absolute;
  width: 0;
  height: 0;
  clip-path: rect(0 0 0 0);
}

.contacts__form label input[type="checkbox"]:checked + span::after,
.contacts__form label input[type="radio"]:checked + span::after {
  opacity: 1;
}

.contacts__form label input[type="checkbox"]:focus-visible + span,
.contacts__form label input[type="radio"]:focus-visible + span {
  border-color: #151D30;
}

.contacts__form a {
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 20%;
}

.contacts__form label > span:not(.wpcf7-form-control-wrap):not(.wpcf7-form-control):not(.wpcf7-list-item):not(.wpcf7-list-item-label) {
  position: absolute;
  top: 0;
  left: 0;
  width: 1.625rem;
  height: 1.625rem;
  border-radius: 0.3125rem;
  border: 0.0625rem solid rgba(21, 29, 48, 0.15);
  -webkit-box-shadow: 0 0.25rem 1.5625rem 0 rgba(0, 0, 0, 0.05);
  box-shadow: 0 0.25rem 1.5625rem 0 rgba(0, 0, 0, 0.05);
  -webkit-transition: border-color 0.4s ease;
  transition: border-color 0.4s ease;
}

.contacts__form label > span:not(.wpcf7-form-control-wrap):not(.wpcf7-form-control):not(.wpcf7-list-item):not(.wpcf7-list-item-label)::after {
  content: "";
  position: absolute;
  width: 0.875rem;
  height: 0.875rem;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  background-color: #155DFC;
  -webkit-transition: opacity 0.4s ease;
  transition: opacity 0.4s ease;
  border-radius: 0.3125rem;
  opacity: 0;
}

/*
  Форма «Оставить заявку» рендерится через Contact Form 7 (шорткод в index.php).
  CF7 оборачивает каждое поле в <span class="wpcf7-form-control-wrap">, а чекбокс
  согласия ([acceptance]) — в <label><input><span class="wpcf7-list-item-label">.
  Правила ниже адаптируют штатную разметку CF7 под уже готовые визуальные стили формы.
*/
.contacts__form .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}

.contacts__form label:has(.wpcf7-form-control-wrap:not([data-name*="acceptance"]):not([data-name*="privacy"])) {
  padding-left: 0;
  width: 100%;
  max-width: none;
  cursor: default;
}

.contacts__form .wpcf7-form-control-wrap[data-name="service"] {
  margin-bottom: 0.9375rem;
}

.contacts__form .wpcf7-form-control-wrap[data-name*="acceptance"],
.contacts__form .wpcf7-form-control-wrap[data-name*="privacy"],
.contacts__form .wpcf7-acceptance,
.contacts__form .wpcf7-list-item {
  display: block;
}

.contacts__form .wpcf7-list-item {
  margin: 0;
}

.contacts__form .wpcf7-list-item-label {
  position: static;
  display: inline;
  width: auto;
  height: auto;
  border: none;
  -webkit-box-shadow: none;
  box-shadow: none;
}

.contacts__form .wpcf7-list-item-label::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 1.625rem;
  height: 1.625rem;
  border-radius: 0.3125rem;
  border: 0.0625rem solid rgba(21, 29, 48, 0.15);
  -webkit-box-shadow: 0 0.25rem 1.5625rem 0 rgba(0, 0, 0, 0.05);
  box-shadow: 0 0.25rem 1.5625rem 0 rgba(0, 0, 0, 0.05);
  -webkit-transition: border-color 0.4s ease;
  transition: border-color 0.4s ease;
}

.contacts__form label input[type="checkbox"]:checked + .wpcf7-list-item-label::after,
.contacts__form label input[type="radio"]:checked + .wpcf7-list-item-label::after {
  content: "";
  position: absolute;
  width: 0.875rem;
  height: 0.875rem;
  top: 0.375rem;
  left: 0.375rem;
  background-color: #155DFC;
  border-radius: 0.3125rem;
  -webkit-transition: opacity 0.4s ease;
  transition: opacity 0.4s ease;
}

.contacts__form .wpcf7-not-valid-tip {
  display: block;
  margin-top: 0.3125rem;
  font-size: 0.8125rem;
  color: #e02b2b;
}

.contacts__box {
  max-width: 45.875rem;
  width: 100%;
}

.contacts__form-inputs {
  margin-bottom: 0.9375rem;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.9375rem 1.5625rem;
}

.analogues {
  position: relative;
  z-index: 3;
  margin-bottom: 9.375rem;
}

.analogues__inner {
  position: relative;
  overflow: hidden;
  padding-top: 4.9375rem;
  margin-top: -4.9375rem;
  border-bottom-right-radius: 3.125rem;
}

.analogues__text {
  color: #fff;
  max-width: 50.625rem;
  margin-bottom: 4.0625rem;
  position: relative;
  z-index: 3;
}

.analogues__text h2 {
  font-size: 2.625rem;
  margin-bottom: 1.875rem;
}

.analogues__text p {
  font-size: 1.125rem;
  line-height: 1.5;
}

.analogues__content {
  border-radius: 3.125rem;
  position: relative;
  background-color: #151D30;
  padding-block: 4.375rem 4.0625rem;
  overflow: hidden;
  min-height: 36.6875rem;
  padding-inline: clamp( 2.5rem , -16.9711538462rem  +  23.0769230769vw , 4.375rem );
}

.analogues__content::after,
.analogues__content::before {
  content: "";
  position: absolute;
  -webkit-filter: blur(7.8125rem);
  filter: blur(7.8125rem);
  border-radius: 50%;
  width: 32.125rem;
  height: 32.125rem;
  opacity: 0.3;
}

.analogues__content::after {
  bottom: -164px;
  left: -182px;
  background: #51C2FF;
}

.analogues__content::before {
  top: -150px;
  right: 133px;
  background: #155DFC;
}

.analogues__items {
  max-width: 58.125rem;
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem 1.875rem;
  position: relative;
  z-index: 3;
}

.analogues__item {
  max-width: 28.125rem;
  width: 100%;
  border-radius: 1.5625rem;
  border: 0.0625rem solid rgba(255, 255, 255, 0.3);
  background: rgba(255, 255, 255, 0.05);
  backdrop-filter: blur(0.78125rem);
  padding: 1.875rem;
  color: #fff;
}

.analogues__item span {
  font-family: "Tektur", sans-serif;
  font-weight: 700;
  font-size: 1.125rem;
  display: flex;
  gap: 0.625rem 0.9375rem;
  align-items: flex-start;
  margin-bottom: 0.9375rem;
  color: rgba(255, 255, 255, 0.7);
  flex-wrap: nowrap;
}

.analogues__item img {
  flex-shrink: 0;
}

.analogues__item-label {
  flex: 1 1 auto;
  min-width: 0;
}

.analogues__item h3 {
  font-size: 2.625rem;
  opacity: 0.5;
  font-weight: 900;
  margin-bottom: 1.25rem;
}

.analogues__item p {
  font-weight: 500;
  line-height: 1.5;
  opacity: 0.7;
}

.analogues__item--active {
  background: rgba(21, 93, 252, 0.25);
}

.analogues__item--active h3 {
  opacity: 1;
  text-shadow: 0 0 0.625rem rgba(255, 255, 255, 0.25);
}

.analogues__item--active p {
  opacity: 1;
}

.analogues__item--active span {
  color: #fff;
}

.analogues__img {
  display: block;
  position: absolute;
  bottom: 0;
  max-width: 30.125rem;
  width: 100%;
  aspect-ratio: 482/665;
  z-index: 2;
  right: clamp( -7.5rem , -85.3846160337rem  +  92.3076930769vw , 0.0000000625rem );
}

.analogues__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
  object-fit: contain;
}

.modal {
  backdrop-filter: blur(0.3125rem);
  -webkit-backdrop-filter: blur(0.3125rem);
  background: rgba(21, 29, 48, 0.5);
  overflow: auto;
  position: fixed;
  inset: 0;
  z-index: 1020;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease;
  align-content: center;
  padding-block: 3.125rem;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}

.modal--active {
  visibility: visible;
  opacity: 1;
  pointer-events: all;
}

.modal__inner {
  overflow: hidden;
  width: 100%;
  position: relative;
  border-radius: 3.125rem;
  background-color: #fff;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.875rem;
  padding-right: clamp( 5.625rem , -59.125rem  +  74vw , 7.9375rem );
}

.modal__content {
  max-width: 45.9375rem;
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
  align-items: flex-start;
  margin-block: 5rem 2.5rem;
}

.modal__content h2 {
  font-size: 2rem;
  padding-bottom: 1.25rem;
}

.modal__content p,
.modal__text ul,
.modal__text ol {
  font-size: 1.125rem;
  line-height: 1.5;
}

.modal__text ul,
.modal__text ol {
  padding-left: 1.25em;
}

.modal__text ul {
  list-style: disc;
}

.modal__text ol {
  list-style: decimal;
}

.modal__text li + li {
  margin-top: 0.375rem;
}

.modal__text > *:not(:last-child) {
  margin-bottom: 0.75rem;
}

.modal .btn {
  padding-block: 1.25rem;
}

.modal .decor::after {
  left: 0;
  -webkit-transform: translateX(0);
  -ms-transform: translateX(0);
  transform: translateX(0);
}

.modal__img {
  max-width: 30.625rem;
  width: 100%;
  aspect-ratio: 490/680;
  -o-object-fit: contain;
  object-fit: contain;
  flex-shrink: 0;
}

.modal__close {
  position: absolute;
  z-index: 2;
  top: 1.875rem;
  right: 1.875rem;
  max-width: 2.875rem;
  width: 100%;
  aspect-ratio: 1;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-color: #fff;
  border-radius: 50%;
  -webkit-box-shadow: 0 0.25rem 1.5625rem 0 rgba(0, 0, 0, 0.1);
  box-shadow: 0 0.25rem 1.5625rem 0 rgba(0, 0, 0, 0.1);
}

.modal__close img {
  -webkit-transition: opacity 0.4s ease;
  transition: opacity 0.4s ease;
  max-width: 1.125rem;
  width: 100%;
  aspect-ratio: 1;
}

.footer {
  position: relative;
  z-index: 3;
  margin-bottom: 3.125rem;
}

.footer__top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1.875rem 1.25rem;
}

.footer__bottom {
  display: none;
}

.footer__desc {
  max-width: 22.0625rem;
  width: 100%;
  display: flex;
  flex-direction: column;
}

.footer__desc strong {
  font-family: "Tektur", sans-serif;
  font-weight: 700;
  line-height: 1.5;
  margin-bottom: 0.3125rem;
}

.footer__desc p {
  margin-bottom: 0.9375rem;
  opacity: 0.7;
  font-size: 0.875rem;
  line-height: 1.5;
}

.footer__desc-copy {
  font-weight: 500;
  line-height: 1.5;
  font-size: 0.875rem;
  opacity: 0.7;
}

.footer__info {
  max-width: 20.9375rem;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 0.3125rem;
}

.footer__info span {
  font-weight: 500;
  line-height: 1.5;
}

.footer__info p {
  font-weight: 500;
  font-size: 0.875rem;
  line-height: 1.5;
  opacity: 0.5;
}

.footer__links {
  max-width: 20rem;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}

.footer__links a {
  font-size: 0.875rem;
  opacity: 0.7;
  line-height: 1.5;
  text-decoration: underline;
  text-underline-offset: 20%;
}

.footer__dev img {
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}

@media (max-width: 79.99875em) {
  .banner__inner img {
    right: 0;
    border-bottom-right-radius: 1.5625rem;
  }
}

@media (max-width: 78.12375em) {
  .about-hero__desc-box {
    padding-right: 2.5rem;
  }

  .about-hero__items {
    max-width: 36.875rem;
    gap: 1.25rem;
  }

  .technologies__items {
    -webkit-column-gap: 1.25rem;
    -moz-column-gap: 1.25rem;
    column-gap: 1.25rem;
  }

  .technologies__item {
    padding-bottom: 0.9375rem;
    padding-inline: 1.5625rem 0.9375rem;
  }

  .technologies__item-top {
    flex-direction: column;
  }

  .technologies__item-top ul {
    margin-top: 0;
  }

  .banner__inner {
    padding-inline: 2.5rem;
  }

  .banner__desc {
    max-width: 40rem;
  }

  .services__item::after {
    background: -webkit-gradient(linear, left top, right top, color-stop(41.5%, #FFF), to(rgba(255, 255, 255, 0)));
    background: linear-gradient(90deg, #FFF 41.5%, rgba(255, 255, 255, 0) 100%);
  }

  .services__items {
    gap: 1.25rem;
  }

  .partners__items {
    grid-template-columns: repeat(3, 1fr);
  }

  .analogues__inner {
    border-radius: 3.125rem;
    padding: 2.5rem;
    margin-top: 0;
    background-color: #151D30;
  }

  .analogues__text {
    margin-bottom: 1.875rem;
    max-width: 100%;
  }

  .analogues__content {
    padding: 0;
    background-color: transparent;
    border-radius: 0;
    overflow: visible;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    min-height: auto;
  }

  .analogues__items {
    flex-direction: column;
    width: 100%;
  }

  .analogues__item {
    max-width: 100%;
  }

  .analogues__item--active {
    order: -1;
  }

  .analogues__img {
    position: relative;
    right: -2.5rem;
    bottom: -2.5rem;
    align-self: flex-end;
    max-width: 21.25rem;
  }

  .modal__content {
    margin-top: 4.375rem;
  }

  .modal__img {
    max-width: 25rem;
  }
}

@media (max-width: 74.99875em) {
  .header {
    background-color: transparent;
    backdrop-filter: blur(0);
  }

  .header__top {
    flex-wrap: wrap;
  }

  .menu {
    width: 100%;
    order: 1;
  }

  .menu ul {
    max-width: 100%;
    justify-content: flex-end;
  }

  .hero__bg {
    height: 96.25rem;
  }

  .about-hero__inner {
    flex-direction: column;
    gap: 4.375rem;
  }

  .about-hero__desc {
    max-width: 100%;
  }

  .about-hero__desc-box {
    padding-right: 4.375rem;
  }

  .about-hero__items {
    max-width: 100%;
  }

  .about-hero__item {
    max-width: 100%;
  }

  .about-hero__item:first-child,
  .about-hero__item:nth-child(2) {
    min-height: 14.625rem;
  }

  .banner__inner {
    min-height: 19.375rem;
  }

  .banner__inner img {
    max-width: 25rem;
  }

  .banner__desc {
    max-width: 30.3125rem;
  }

  .banner__desc h2,
  .banner__desc p {
    margin-bottom: 1.375rem;
  }

  .banner__desc h2 {
    font-size: 1.5rem;
  }

  .contacts__form {
    padding-inline: 1.875rem;
  }

  .contacts__form-inputs {
    -webkit-column-gap: 1.25rem;
    -moz-column-gap: 1.25rem;
    column-gap: 1.25rem;
  }

  .footer__top {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 70.62375em) {
  .services__item {
    max-width: 100%;
    display: block;
    grid-row: unset;
    padding-bottom: 2.5rem;
  }

  .services__item p {
    max-width: 34.25rem;
    margin-bottom: 2.5rem;
  }

  .services__item h2 {
    max-width: 34.25rem;
  }

  .services__item:first-child::after {
    background: -webkit-gradient(linear, left top, right top, from(#FFF), to(rgba(255, 255, 255, 0)));
    background: linear-gradient(90deg, #FFF 0%, rgba(255, 255, 255, 0) 100%);
  }

  .services__items {
    grid-template-columns: repeat(1, 1fr);
    gap: 1.875rem;
  }

  .contacts__info {
    max-width: 100%;
  }

  .contacts__items {
    margin-bottom: 3.125rem;
    max-width: 100%;
    grid-template-columns: repeat(3, 1fr);
    align-items: center;
  }

  .contacts__item {
    max-width: 18.1875rem;
    gap: 0.9375rem;
    justify-content: flex-end;
  }

  .contacts__inner {
    flex-direction: column;
  }

  .contacts__form {
    padding-inline: 3.125rem;
  }

  .contacts__box {
    max-width: 100%;
  }

  .contacts__form-inputs {
    -webkit-column-gap: 1.5625rem;
    -moz-column-gap: 1.5625rem;
    column-gap: 1.5625rem;
  }

  .modal__content h2 {
    font-size: 1.75rem;
  }

  .modal__content p,
  .modal__text ul,
  .modal__text ol {
    font-size: 1rem;
  }

  .footer__top {
    grid-template-columns: repeat(2, 1fr);
    margin-bottom: 1.875rem;
  }

  .footer__bottom {
    display: flex;
    justify-content: space-between;
    gap: 0.625rem 1.25rem;
    align-items: center;
    flex-wrap: wrap;
  }

  .footer__desc p {
    margin-bottom: 0;
  }
}

@media (max-width: 62.06125em) {
  .wrapper::after {
    height: 53.4523809524%;
  }

  .container {
    padding-inline: 2.5rem;
  }

  .header {
    padding-top: 2.5rem;
  }

  .header .btn {
    padding: 1.125rem 2.1875rem;
  }

  .header__top {
    row-gap: 2.1875rem;
  }

  .menu ul {
    gap: 0.9375rem 1.25rem;
    width: 100%;
    max-width: 44.4375rem;
    margin-inline: auto;
    justify-content: space-between;
  }

  .hero {
    padding-top: 18.25rem;
  }

  .hero__desc {
    margin-bottom: 22.8125rem;
  }

  .hero__bg {
    height: 78.125rem;
  }

  .hero__bg::after {
    background: -webkit-gradient(linear, left top, left bottom, from(#151D30), color-stop(61.98%, rgba(21, 29, 48, 0.5)), color-stop(82.32%, rgba(255, 255, 255, 0.6)), color-stop(99.85%, #FFF));
    background: linear-gradient(180deg, #151D30 0%, rgba(21, 29, 48, 0.5) 61.98%, rgba(255, 255, 255, 0.6) 82.32%, #FFF 99.85%);
  }

  .block {
    padding-top: 12.5rem;
    margin-bottom: 9.375rem;
  }

  .block__bg {
    display: none;
  }

  .technologies__desc {
    max-width: 45.9375rem;
  }

  .technologies__item p {
    margin-bottom: 1.25rem;
  }

  .technologies__item-top {
    margin-bottom: 1.875rem;
  }

  .banner {
    margin-bottom: 7.8125rem;
  }

  .banner__inner {
    padding-block: 2.5rem 3.3125rem;
  }

  .banner__inner img {
    max-width: clamp( 15rem , -45.9rem  +  112vw , 22rem );
  }

  .services {
    margin-bottom: 12.5rem;
  }

  .contacts h2 {
    margin-bottom: 3.125rem;
  }

  .contacts__map {
    height: 34.375rem;
  }

  .analogues {
    margin-bottom: 12.5rem;
  }

  .analogues__inner {
    padding-top: 5rem;
  }

  .analogues__inner::after {
    content: "";
    position: absolute;
    -webkit-filter: blur(7.8125rem);
    filter: blur(7.8125rem);
    border-radius: 50%;
    width: 32.125rem;
    height: 32.125rem;
    top: -9.375rem;
    background: #155DFC;
    right: -5.9375rem;
    opacity: 0.3;
  }

  .analogues__text {
    max-width: 46.875rem;
    margin-inline: auto;
    margin-bottom: 0.6875rem;
  }

  .analogues__content::after,
  .analogues__content::before {
    display: none;
  }

  .analogues__items {
    max-width: 26.0625rem;
    margin-top: 2.8125rem;
    flex-shrink: 0;
  }

  .analogues__img {
    max-width: 28.25rem;
    flex-shrink: 0;
    right: clamp( -0.1875rem , 48.7067307692rem  +  -86.9230769231vw , 6.875rem );
    margin-top: -2.5rem;
  }

  .modal {
    padding-block: 0;
    background: transparent;
    backdrop-filter: blur(0);
  }

  .modal__inner {
    flex-direction: column;
    border-radius: 0;
    height: 100%;
    min-height: 100vh;
    min-height: 100dvh;
    justify-content: unset;
    padding-bottom: 5rem;
    padding-right: 0;
  }

  .modal__content {
    max-width: 100%;
    margin: 0;
    padding-inline: 2.5rem;
  }

  .modal__content h2 {
    font-size: 2rem;
  }

  .modal__content p,
  .modal__text ul,
  .modal__text ol {
    font-size: 1.125rem;
  }

  .modal__img {
    max-width: 32.4375rem;
  }

  .modal__close {
    top: 5rem;
    right: 2.5rem;
    max-width: 2.75rem;
    background-color: #F5F5F5;
    -webkit-box-shadow: none;
    box-shadow: none;
  }

  .modal__close img {
    max-width: 1.25rem;
  }

  .modal .container {
    padding-inline: 0;
  }

  .footer {
    margin-bottom: 2.5rem;
  }
}

@media (max-width: 59.37375em) {
  .contacts__items {
    grid-template-columns: repeat(1, 1fr);
    gap: 1.5625rem;
  }

  .contacts__item {
    justify-content: flex-start;
    max-width: 100%;
  }
}

@media (max-width: 53.74875em) {
  .technologies {
    margin-bottom: 7.8125rem;
  }

  .technologies__items {
    grid-template-columns: repeat(1, 1fr);
  }

  .technologies__item {
    padding: 1.25rem;
    max-width: 100%;
  }

  .technologies__item h4,
  .technologies__item p {
    max-width: 100%;
  }

  .technologies__item-top {
    gap: 1.25rem;
  }

  .technologies__item-top img {
    margin-top: -4.375rem;
  }

  .banner__inner {
    overflow: hidden;
    padding-bottom: 0;
    min-height: auto;
  }

  .banner__inner img {
    position: relative;
    margin-left: auto;
    margin-top: -4.0625rem;
    right: -2.5rem;
    border-radius: 0;
  }

  .banner__desc {
    max-width: 100%;
  }

  .analogues__inner {
    padding-top: 3.125rem;
  }
}

@media (max-width: 47.99875em) {
  .wrapper::after {
    height: 57.8313253012%;
  }

  .decor::after {
    height: 0.125rem;
  }

  .container {
    padding-inline: 1.25rem;
  }

  .btn {
    padding-block: 0.75rem;
    border-radius: 0.625rem;
  }

  .header {
    padding-top: 1.25rem;
  }

  .header__bottom {
    display: flex;
    align-items: center;
    gap: 0.9375rem;
    flex-wrap: wrap;
    justify-content: flex-end;
  }

  .header .btn {
    padding: 0.75rem 1.875rem;
  }

  .header__top {
    margin-bottom: 1.25rem;
  }

  .logo {
    gap: 0.9375rem;
    font-size: 1rem;
  }

  .logo img {
    max-width: 3.125rem;
  }

  .menu {
    max-width: 10rem;
  }

  .menu ul {
    position: absolute;
    top: 2.5rem;
    right: 0;
    flex-direction: column;
    background-color: #fff;
    border-radius: 0.625rem;
    padding: 0.9375rem;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
    -webkit-box-shadow: 0.0625rem 0.25rem 0.625rem 0 rgba(0, 0, 0, 0.08);
    box-shadow: 0.0625rem 0.25rem 0.625rem 0 rgba(0, 0, 0, 0.08);
  }

  .menu li {
    color: #171F31;
    font-size: 0.875rem;
  }

  .open-menu .menu ul {
    opacity: 1;
    visibility: visible;
    pointer-events: all;
  }

  .menu__open {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    margin-left: auto;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
  }

  .menu__open p {
    color: #fff;
    line-height: 1.5;
    -webkit-transition: opacity 0.4s ease;
    transition: opacity 0.4s ease;
  }

  .menu__open button {
    padding: 0;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 1.375rem;
    height: 0.9375rem;
  }

  .menu__open button::after,
  .menu__open button::before {
    content: "";
    position: absolute;
    width: 100%;
    height: 0.125rem;
    border-radius: 0.5rem;
    left: 0;
    -webkit-transition: all 0.4s ease;
    transition: all 0.4s ease;
    background-color: #fff;
  }

  .menu__open button::after {
    -webkit-transform: translateY(0.375rem);
    -ms-transform: translateY(0.375rem);
    transform: translateY(0.375rem);
  }

  .menu__open button::before {
    -webkit-transform: translateY(-0.375rem);
    -ms-transform: translateY(-0.375rem);
    transform: translateY(-0.375rem);
  }

  .menu__open span {
    width: 100%;
    background-color: #fff;
    height: 0.125rem;
    border-radius: 0.5rem;
    -webkit-transition: all 0.4s ease;
    transition: all 0.4s ease;
  }

  .open-menu .menu__open button::after {
    -webkit-transform: rotate(-45deg);
    -ms-transform: rotate(-45deg);
    transform: rotate(-45deg);
  }

  .open-menu .menu__open button::before {
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
  }

  .open-menu .menu__open span {
    opacity: 0;
    -webkit-transform: scaleX(0);
    -ms-transform: scaleX(0);
    transform: scaleX(0);
  }

  .open-menu .menu__open p {
    opacity: 0.5;
  }

  .hero {
    padding-top: 13.875rem;
  }

  .hero__desc {
    margin-bottom: 15.625rem;
  }

  .hero__desc h1 {
    margin-bottom: 1.25rem;
    line-height: 1.1;
    font-size: clamp( 1.75rem , -0.2142857143rem  +  7.8571428571vw , 3.125rem );
  }

  .hero__desc p {
    font-size: 1rem;
    margin-bottom: 1.875rem;
  }

  .hero__desc-buttons a {
    padding-block: 0.75rem;
  }

  .hero__bg {
    height: 62.5rem;
  }

  .about-hero__desc > p {
    font-size: 1rem;
    margin-bottom: 0.625rem;
  }

  .about-hero__desc > p:has(+ div) {
    margin-bottom: 1.875rem;
  }

  .about-hero__desc h2 {
    font-size: 2.1875rem;
    margin-bottom: 1.875rem;
  }

  .about-hero__desc h2::after {
    height: 0.125rem;
  }

  .about-hero__desc-box {
    padding: 1.875rem;
  }

  .about-hero__desc-box p {
    font-size: 1rem;
  }

  .about-hero__items {
    grid-template-columns: repeat(1, 1fr);
  }

  .about-hero__item {
    min-height: auto;
    border-radius: 0.9375rem;
  }

  .about-hero__item p {
    font-size: 1rem;
  }

  .about-hero__item:last-child {
    grid-column: unset;
  }

  .about-hero__item:first-child,
  .about-hero__item:nth-child(2) {
    min-height: auto;
  }

  .block {
    margin-bottom: 7.5rem;
    padding-top: 7.5rem;
  }

  .technologies {
    margin-bottom: 5rem;
  }

  .technologies__desc {
    margin-bottom: 5rem;
  }

  .technologies__desc h2 {
    font-size: 2.1875rem;
    line-height: 0.8;
    margin-bottom: 0.625rem;
  }

  .technologies__desc h3 {
    padding-bottom: 0.9375rem;
    margin-bottom: 1.875rem;
    font-size: 1.25rem;
  }

  .technologies__desc p {
    font-size: 1rem;
  }

  .banner {
    margin-bottom: 5rem;
  }

  .banner .container {
    padding-inline: 0;
  }

  .banner__inner {
    border-radius: 0;
    padding-inline: 1.25rem;
  }

  .banner__inner img {
    right: -1.25rem;
  }

  .banner__desc h2 {
    margin-bottom: 0.9375rem;
  }

  .banner__desc p {
    font-size: 1rem;
    margin-bottom: 1.5625rem;
  }

  .services {
    margin-bottom: 7.5rem;
  }

  .services__item {
    border-radius: 0.9375rem;
    padding: 1.25rem;
    min-height: 17.875rem;
  }

  .services__item::after {
    background: linear-gradient(122deg, #FFF 40.08%, rgba(255, 255, 255, 0) 99.15%);
  }

  .services__item:first-child::after {
    background: -webkit-gradient(linear, left top, right top, from(#FFF), color-stop(53.64%, rgba(255, 255, 255, 0)));
    background: linear-gradient(90deg, #FFF 0%, rgba(255, 255, 255, 0) 53.64%);
  }

  .services__item:first-child .services__item-bg img {
    -o-object-position: right;
    object-position: right;
  }

  .services__item h2 {
    font-size: 2.1875rem;
  }

  .services__item p {
    margin-bottom: 0.9375rem;
    font-size: 1rem;
  }

  .partners {
    margin-bottom: 5rem;
  }

  .partners__desc {
    margin-bottom: 3.125rem;
  }

  .partners__desc h2 {
    font-size: 2.1875rem;
    margin-bottom: 1.875rem;
  }

  .partners__desc p {
    font-size: 1rem;
  }

  .partners__items {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.625rem;
  }

  .partners__item {
    border-radius: 0.625rem;
    padding: 1.25rem 0.625rem;
    gap: 0.625rem;
  }

  .contacts h2 {
    font-size: 2.1875rem;
    margin-bottom: 2.0625rem;
  }

  .contacts__form {
    padding: 1.5625rem;
  }

  .contacts__form h3,
  .contacts__form textarea {
    margin-bottom: 1.875rem;
  }

  .contacts__form button {
    padding-block: 0.9375rem;
    border-radius: 0.9375rem;
  }

  .contacts__form-inputs {
    grid-template-columns: repeat(1, 1fr);
  }

  .analogues {
    margin-bottom: 5rem;
  }

  .analogues .container {
    padding-inline: 0;
  }

  .analogues__inner {
    padding-bottom: 0;
    padding-inline: 1.25rem;
    border-radius: 0;
  }

  .analogues__text {
    margin-bottom: 3.125rem;
    text-align: center;
  }

  .analogues__text h2 {
    font-size: 2.1875rem;
    margin-bottom: 0.9375rem;
  }

  .analogues__text p {
    font-size: 1rem;
  }

  .analogues__content {
    flex-direction: column;
    gap: 1.25rem;
  }

  .analogues__items {
    max-width: 100%;
    gap: 0.625rem;
    margin-top: 0;
  }

  .analogues__item {
    padding: 1.25rem;
  }

  .analogues__item h3 {
    font-size: 2.1875rem;
  }

  .analogues__img {
    position: static;
    margin-top: 0;
    align-self: center;
  }

  .modal__inner {
    padding-bottom: 4.6875rem;
    gap: 1.25rem;
  }

  .modal__content {
    padding-inline: 1.25rem;
  }

  .modal__content h2 {
    font-size: 1.5625rem;
  }

  .modal__content p,
  .modal__text ul,
  .modal__text ol {
    font-size: 1rem;
  }

  .modal .btn {
    padding-block: 0.9375rem;
  }

  .modal .decor::after {
    height: 0.25rem;
  }

  .modal__img {
    max-width: 17.5625rem;
  }

  .modal__close {
    max-width: 2.5rem;
    top: 3.75rem;
    right: 1.25rem;
  }

  .modal__close img {
    max-width: 1rem;
  }

  .footer__top {
    gap: 1.25rem;
    margin-bottom: 1.25rem;
    grid-template-columns: repeat(1, 1fr);
  }

  .footer__desc {
    max-width: 100%;
  }

  .footer__info {
    max-width: 100%;
  }

  .footer__links {
    max-width: 100%;
  }
}

@media (max-width: 36.24875em) {
  .header__bottom {
    justify-content: space-between;
  }

  .hero__desc-buttons {
    flex-direction: column;
    width: 100%;
  }

  .hero__desc-buttons a:first-child {
    justify-content: center;
  }

  .hero__desc-buttons a {
    width: 100%;
    text-align: center;
  }
}

@media (max-width: 29.99875em) {
  .btn {
    font-size: 0.875rem;
  }

  .header {
    padding-top: 1.875rem;
  }

  .header__top {
    justify-content: center;
  }

  .logo {
    font-size: 0.875rem;
  }

  .logo img {
    max-width: 2.8125rem;
  }

  .menu {
    max-width: 8.4375rem;
  }

  .menu ul {
    top: 2.0625rem;
  }

  .menu li {
    font-size: 0.75rem;
  }

  .menu__open {
    font-size: 0.875rem;
  }

  .menu__open button {
    height: 0.75rem;
    width: 1.3125rem;
  }

  .menu__open button::after {
    -webkit-transform: translateY(0.3125rem);
    -ms-transform: translateY(0.3125rem);
    transform: translateY(0.3125rem);
  }

  .menu__open button::before {
    -webkit-transform: translateY(-0.3125rem);
    -ms-transform: translateY(-0.3125rem);
    transform: translateY(-0.3125rem);
  }

  .hero__desc p {
    font-size: 0.875rem;
  }

  .hero__desc > span {
    font-size: 0.75rem;
    padding: 0.375rem 0.4375rem;
    margin-bottom: 0.625rem;
  }

  .hero__desc > span img {
    width: 0.75rem;
    height: 0.75rem;
  }

  .hero__desc h1 {
    line-height: 1.2;
  }

  .about-hero__inner {
    gap: 5rem;
  }

  .about-hero__desc h2 {
    font-size: 1.75rem;
  }

  .about-hero__desc > p {
    font-size: 0.875rem;
  }

  .about-hero__desc-box {
    padding: 0.9375rem;
  }

  .about-hero__desc-box::after {
    width: 0.125rem;
  }

  .about-hero__desc-box p {
    font-size: 0.875rem;
  }

  .about-hero__items {
    gap: 0.625rem;
  }

  .about-hero__item {
    padding: 0.9375rem;
    display: flex;
    gap: 1.25rem;
    align-items: flex-start;
  }

  .about-hero__item h3 {
    font-size: 1rem;
    margin-bottom: 0.3125rem;
  }

  .about-hero__item p {
    font-size: 0.875rem;
  }

  .about-hero__item span {
    margin-bottom: 0;
    max-width: 3.125rem;
  }

  .about-hero__item:nth-child(2) {
    padding-top: 0.9375rem;
  }

  .about-hero__item:nth-child(2) img {
    max-width: 5.75rem;
    margin-bottom: 0;
  }

  .technologies__desc h2 {
    font-size: 1.75rem;
  }

  .technologies__desc h3 {
    font-size: 0.875rem;
  }

  .technologies__desc p {
    font-size: 0.875rem;
  }

  .technologies__item h4 {
    font-size: 1.125rem;
    margin-bottom: 0.625rem;
  }

  .technologies__item p {
    font-size: 0.875rem;
  }

  .technologies__item-top img {
    max-width: 9.6875rem;
  }

  .technologies__item-top li {
    font-size: 0.875rem;
  }

  .banner__inner {
    background: -webkit-gradient(linear, left top, left bottom, from(#324B98), to(#3C4456));
    background: linear-gradient(180deg, #324B98 0%, #3C4456 100%);
  }

  .banner__inner img {
    max-width: 12.125rem;
  }

  .banner__desc h2 {
    font-size: 1.125rem;
  }

  .banner__desc p {
    font-size: 0.875rem;
  }

  .services__item h2 {
    font-size: 1.75rem;
  }

  .services__item p {
    font-size: 0.875rem;
  }

  .partners__desc h2 {
    font-size: 1.75rem;
  }

  .partners__desc p {
    font-size: 0.875rem;
  }

  .partners__item {
    justify-content: center;
  }

  .partners__item p {
    font-size: 0.875rem;
  }

  .contacts h2 {
    font-size: 1.75rem;
    padding-inline: 1.25rem;
  }

  .contacts .container {
    padding-inline: 0;
  }

  .contacts__items {
    margin-bottom: 5rem;
    padding-inline: 1.25rem;
  }

  .contacts__item span {
    margin-bottom: 0;
    font-size: 0.875rem;
  }

  .contacts__item a,
  .contacts__item p {
    font-size: 1rem;
  }

  .contacts__map {
    border-radius: 0;
    height: 37.5rem;
  }

  .contacts__inner {
    gap: 5rem;
  }

  .contacts__form h3 {
    font-size: 1.75rem;
  }

  .contacts__form strong {
    font-size: 0.75rem;
  }

  .contacts__form input,
  .contacts__form textarea {
    font-size: 0.875rem;
  }

  .contacts__form input::-webkit-input-placeholder,
  .contacts__form textarea::-webkit-input-placeholder {
    font-size: 0.875rem;
  }

  .contacts__form input::-moz-placeholder,
  .contacts__form textarea::-moz-placeholder {
    font-size: 0.875rem;
  }

  .contacts__form input:-ms-input-placeholder,
  .contacts__form textarea:-ms-input-placeholder {
    font-size: 0.875rem;
  }

  .contacts__form input::-ms-input-placeholder,
  .contacts__form textarea::-ms-input-placeholder {
    font-size: 0.875rem;
  }

  .contacts__form input::placeholder,
  .contacts__form textarea::placeholder {
    font-size: 0.875rem;
  }

  .contacts__form label {
    padding-left: 2.1875rem;
    font-size: 0.75rem;
  }

  .contacts__form label > span:not(.wpcf7-form-control-wrap):not(.wpcf7-form-control):not(.wpcf7-list-item):not(.wpcf7-list-item-label),
  .contacts__form .wpcf7-list-item-label::before {
    width: 1.25rem;
    height: 1.25rem;
  }

  .contacts__form label > span:not(.wpcf7-form-control-wrap):not(.wpcf7-form-control):not(.wpcf7-list-item):not(.wpcf7-list-item-label)::after {
    width: 0.75rem;
    height: 0.75rem;
    border-radius: 0.25rem;
  }

  .contacts__form label input[type="checkbox"]:checked + .wpcf7-list-item-label::after,
  .contacts__form label input[type="radio"]:checked + .wpcf7-list-item-label::after {
    width: 0.75rem;
    height: 0.75rem;
    border-radius: 0.25rem;
    top: 0.25rem;
    left: 0.25rem;
  }

  .contacts__box {
    padding-inline: 1.25rem;
  }

  .analogues__inner::after {
    display: none;
  }

  .analogues__text h2 {
    font-size: 1.75rem;
  }

  .analogues__text p {
    font-size: 0.875rem;
  }

  .analogues__item h3 {
    font-size: 2rem;
  }

  .analogues__item p {
    font-size: 0.875rem;
  }

  .analogues__item span {
    font-size: 0.875rem;
  }

  .analogues__item img {
    max-width: 1.375rem;
  }

  .analogues__img {
    max-width: 19.75rem;
  }

  .modal__content h2 {
    font-size: 1.125rem;
  }

  .modal__content p,
  .modal__text ul,
  .modal__text ol {
    font-size: 0.875rem;
  }

  .modal .btn {
    padding-block: 0.75rem;
    width: 100%;
    text-align: center;
  }

  .footer__desc-copy {
    font-size: 0.75rem;
  }

  .footer__info span {
    font-size: 0.875rem;
  }

  .footer__links {
    gap: 0.3125rem;
  }

  .footer__links a {
    font-size: 0.75rem;
  }
}

@media (any-hover: hover) {
  .btn:hover {
    color: rgba(255, 255, 255, 0.6);
  }

  .btn:hover img {
    transform: rotate(45deg);
    opacity: 0.6;
  }

  .menu a:hover {
    opacity: 0.5;
  }

  .hero__desc-buttons a:last-child:hover {
    color: rgba(21, 29, 48, 0.6);
  }

  .banner .btn:hover {
    color: rgba(21, 94, 252, 0.6);
  }

  .partners__item:hover {
    opacity: 0.6;
  }

  .contacts__item a:hover {
    opacity: 0.6;
  }

  .contacts__form a:hover {
    opacity: 0.6;
  }

  .modal__close:hover img {
    opacity: 0.6;
  }

  .footer__links a:hover {
    opacity: 1;
  }

  .footer__dev:hover img {
    -webkit-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
/*
  Страница «Каталог продукции» (шаблон page-catalog.php)
*/

/* Шапка фиксированная и прозрачная — на внутренней светлой странице делаем её сплошной */
.page-template-page-catalog .header,
.page-template-page-article .header {
  background-color: #11192D;
}

.page-head {
  position: relative;
  z-index: 3;
  text-align: center;
  max-width: 51.875rem;
  margin-inline: auto;
  margin-bottom: 5rem;
}

.page-head h1 {
  font-size: clamp( 1.75rem , 1.15rem  +  2.5vw , 2.625rem );
  line-height: 1.2;
  padding-bottom: 1.25rem;
}

.page-head p {
  font-size: 1.125rem;
  line-height: 1.5;
  margin-top: 1.875rem;
}

.block--inner {
  padding-top: calc(var(--header-h, 6.875rem) + 5rem);
  margin-bottom: 9.375rem;
}

.block--inner .block__bg {
  height: 100%;
}

.catalog {
  position: relative;
  z-index: 3;
  margin-bottom: 9.375rem;
}

.catalog__items {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.875rem;
}

.catalog__item {
  display: grid;
  grid-row: span 3;
  grid-template-rows: subgrid;
  gap: 0;
  width: 100%;
  border-radius: 1.5625rem;
  background-color: #fff;
  -webkit-box-shadow: 0 0.25rem 1.5625rem 0 rgba(0, 0, 0, 0.05);
  box-shadow: 0 0.25rem 1.5625rem 0 rgba(0, 0, 0, 0.05);
  padding: 1.875rem;
}

.catalog__item-img {
  border-radius: 0.9375rem;
  overflow: hidden;
  background-color: #F3F8FF;
  margin-bottom: 1.5625rem;
}

.catalog__item-img img {
  width: 100%;
  height: 100%;
  aspect-ratio: 430/270;
  -o-object-fit: cover;
  object-fit: cover;
}

.catalog__item-desc {
  margin-bottom: 1.5625rem;
}

.catalog__item h2 {
  font-size: 1.5rem;
  line-height: 1.3;
  margin-bottom: 0.9375rem;
}

.catalog__item p {
  font-weight: 500;
  line-height: 1.5;
  opacity: 0.8;
}

.catalog .btn {
  display: flex;
  align-self: end;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  -webkit-transition: color 0.4s ease;
  transition: color 0.4s ease;
}

.contacts--form-only h2 {
  text-align: center;
  margin-inline: auto;
}

.contacts--form-only .contacts__box {
  max-width: 45.9375rem;
  margin-inline: auto;
}

@media (max-width: 78.12375em) {
  .catalog__items {
    gap: 1.25rem;
  }

  .catalog__item {
    padding: 1.5625rem;
  }
}

@media (max-width: 62.06125em) {
  .page-head {
    margin-bottom: 3.75rem;
  }

  .block--inner {
    padding-top: calc(var(--header-h, 6.875rem) + 3.125rem);
    margin-bottom: 6.25rem;
  }

  .catalog {
    margin-bottom: 6.25rem;
  }

  .catalog__items {
    grid-template-columns: repeat(2, 1fr);
  }

  .catalog__item {
    grid-row: span 3;
  }
}

@media (max-width: 47.99875em) {
  .catalog__item h2 {
    font-size: 1.25rem;
  }

  .contacts--form-only .contacts__form {
    padding: 1.875rem;
  }
}

@media (max-width: 36.24875em) {
  .page-head {
    margin-bottom: 2.5rem;
  }

  .page-head p {
    font-size: 1rem;
    margin-top: 1.25rem;
  }

  .block--inner {
    padding-top: calc(var(--header-h, 6.875rem) + 1.875rem);
    margin-bottom: 4.375rem;
  }

  .catalog {
    margin-bottom: 4.375rem;
  }

  .catalog__items {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }

  .catalog__item {
    grid-row: auto;
    display: flex;
    flex-direction: column;
    padding: 1.25rem;
  }

  .catalog__item-img,
  .catalog__item-desc {
    margin-bottom: 1.25rem;
  }

  .catalog .btn {
    width: 100%;
    justify-content: center;
  }

  .contacts--form-only .contacts__form {
    padding: 1.25rem;
  }
}

@media (any-hover: hover) {
  .catalog__item:hover .catalog__item-img img {
    -webkit-transform: scale(1.04);
    -ms-transform: scale(1.04);
    transform: scale(1.04);
  }

  .catalog .btn:hover img {
    -webkit-transform: translateX(0.3125rem);
    -ms-transform: translateX(0.3125rem);
    transform: translateX(0.3125rem);
  }
}

.catalog__item-img img {
  -webkit-transition: transform 0.4s ease;
  transition: transform 0.4s ease;
}

.catalog .btn--disabled {
  display: flex;
  align-self: end;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  background-color: rgba(21, 29, 48, 0.25);
  cursor: default;
  pointer-events: none;
}

@media (max-width: 36.24875em) {
  .catalog .btn--disabled {
    width: 100%;
    justify-content: center;
  }
}

/* Информационная страница (шаблон page-article.php) */
.article {
  position: relative;
  z-index: 3;
  margin-bottom: 9.375rem;
}

.article .container {
  max-width: 75rem;
}

.article__block {
  display: grid;
  gap: 2.5rem 3.125rem;
  align-items: start;
  margin-bottom: 3.75rem;
}

.article__block:last-child {
  margin-bottom: 0;
}

.article__block--media-left,
.article__block--media-right {
  grid-template-columns: minmax(0, 27.5rem) minmax(0, 1fr);
}

.article__block--media-right {
  grid-template-columns: minmax(0, 1fr) minmax(0, 27.5rem);
}

.article__block--media-right .article__media {
  order: 2;
}

.article__media {
  margin: 0;
  border-radius: 1.25rem;
  overflow: hidden;
  background-color: #F3F8FF;
  box-shadow: 0 0.25rem 1.5625rem 0 rgba(0, 0, 0, 0.05);
}

.article__media img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

.article__media figcaption {
  font-size: 0.9375rem;
  line-height: 1.5;
  opacity: 0.7;
  padding: 0.9375rem 1.25rem;
}

.article__text h2 {
  font-size: clamp( 1.375rem , 1.1rem  +  1.1vw , 1.75rem );
  line-height: 1.3;
  margin-bottom: 1.25rem;
}

.article__text h3 {
  font-size: 1.375rem;
  line-height: 1.3;
  margin: 1.875rem 0 0.9375rem;
}

.article__text p {
  font-size: 1.0625rem;
  font-weight: 500;
  line-height: 1.7;
  opacity: 0.85;
}

.article__text p + p {
  margin-top: 1.125rem;
}

.article__text ul,
.article__text ol {
  margin: 1.25rem 0 0 1.25rem;
  display: grid;
  gap: 0.625rem;
}

.article__text ul li {
  list-style: disc;
}

.article__text ol li {
  list-style: decimal;
}

.article__text li {
  font-size: 1.0625rem;
  font-weight: 500;
  line-height: 1.6;
  opacity: 0.85;
}

.article__text a {
  color: #155DFC;
  text-decoration: underline;
}

.article__text img {
  max-width: 100%;
  height: auto;
  border-radius: 1.25rem;
  margin: 1.25rem 0;
}

.article__text blockquote {
  margin: 1.875rem 0;
  padding: 1.25rem 1.5625rem;
  border-left: 0.25rem solid #155DFC;
  background-color: #F3F8FF;
  border-radius: 0.9375rem;
}

.article-cta {
  position: relative;
  z-index: 3;
  margin-bottom: 9.375rem;
}

.article-cta__inner {
  border-radius: 1.5625rem;
  background-color: #fff;
  box-shadow: 0 0.25rem 1.5625rem 0 rgba(0, 0, 0, 0.05);
  padding: 2.5rem;
  text-align: center;
  max-width: 75rem;
  margin-inline: auto;
}

.article-cta__inner h2 {
  font-size: clamp( 1.5rem , 1.2rem  +  1.2vw , 1.875rem );
  line-height: 1.3;
  margin-bottom: 0.9375rem;
}

.article-cta__inner p {
  font-weight: 500;
  line-height: 1.6;
  opacity: 0.8;
  margin-bottom: 1.875rem;
}

.article-cta .btn {
  display: inline-flex;
  gap: 0.625rem;
  align-items: center;
}

@media (max-width: 62.06125em) {
  .article__block--media-left,
  .article__block--media-right {
    grid-template-columns: minmax(0, 20rem) minmax(0, 1fr);
    gap: 1.875rem 2.1875rem;
  }

  .article__block--media-right {
    grid-template-columns: minmax(0, 1fr) minmax(0, 20rem);
  }
}

@media (max-width: 47.99875em) {
  .article,
  .article-cta {
    margin-bottom: 5rem;
  }

  .article__block,
  .article__block--media-left,
  .article__block--media-right {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5625rem;
    margin-bottom: 2.5rem;
  }

  .article__block--media-right .article__media {
    order: 0;
  }

  .article-cta__inner {
    padding: 1.875rem 1.25rem;
  }
}
