.hero {
  display: grid;
  min-height: clamp(719px, 70vw, 1060px);
  padding: 332px var(--page-padding) 72px;
  background:
    linear-gradient(#22242699, #22242699), url(../images/home/home-banner.webp);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  overflow: hidden;
}

.hero__content {
  width: 100%;
  max-width: 1920px;
  margin: 0 auto;
}

.hero__content > div {
  display: flex;
  gap: 55px;
  margin: 0 auto;
  margin-top: 35px;
  width: fit-content;
  padding-left: 215px;
  opacity: 0;
  animation: fadeIn 1s 1.5s forwards;
}

@media (max-width: 950px) {
  .hero__content > div {
    padding: 0;
  }
}

.hero__content > div > a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  height: auto;
  padding: 0 20px;
  border: 0;
  border-radius: 0;
  color: var(--color-white);
  background: var(--color-accent);
  font-size: 18px;
  text-transform: uppercase;
  transition:
    color 180ms ease,
    background-color 180ms ease;
  white-space: nowrap;
  gap: 10px;
}

.hero__content > div > a > svg {
  transition: 0.3s ease-in-out;
}

.hero__content > div > a:hover,
.hero__content > div > a:focus-visible {
  color: var(--color-white);
  background: #d84d12;
}

.hero__content > div > a:hover > svg,
.hero__content > div > a:focus-visible > svg {
  transform: translate(10px, -10px);
}

.hero__title {
  margin: 0;
  font-size: clamp(42px, 4vw, 75px);
  font-weight: 400;
  line-height: 120%;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  display: flex;
  flex-direction: column;
  text-align: center;
}

.hero__title > span:first-of-type {
  padding-left: 18px;
  animation:
    fadeRightPercent 1.5s forwards,
    blurIn 2.5s forwards;
}

.hero__title > span:last-of-type {
  margin-left: auto;
  padding-right: 2px;
  text-align: center;
  animation:
    fadeLeftPercent 1.5s forwards,
    blurIn 2.5s forwards;
}

.hero__text {
  max-width: 397px;
  margin: 0;
  color: var(--color-white);
  font-size: clamp(16px, 1.5vw, 18px);
}

@media (max-width: 840px) {
  .hero__title > span:last-of-type {
    margin-left: unset;
  }
}

@media (max-width: 720px) {
  .hero__content > div {
    flex-direction: column;
    gap: 15px;
  }

  .hero__content > div > .button-slide {
    height: 76px;
  }

  .hero__text {
    text-align: center;
    max-width: unset;
  }
}

.home-welcome {
  background-color: #b4b4b6;
}

.home-welcome > .content-wrapper {
  width: 100%;
  max-width: 1920px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 0 var(--page-padding);
}

.home-welcome > .content-wrapper > .items {
  display: flex;
  gap: 20px;
  margin-top: clamp(-106px, 70vw, -178px);
  opacity: 0;
}

.home-welcome > .content-wrapper > .items.animate {
  animation: fadeUp 1s forwards;
}

.home-welcome > .content-wrapper > .items > .card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 25px;
  background-color: var(--color-graphite);
  transition: 0.3s ease-in-out;
  color: var(--color-white);
  text-decoration: none;
  max-width: 560px;
  width: 100%;
  height: clamp(272px, 25vw, 340px);
  position: relative;
  overflow: hidden;
}

.home-welcome > .content-wrapper > .items > .card > img {
  opacity: 0;
  position: absolute;
  object-fit: contain;
  width: 80%;
  height: 100%;
  bottom: 0;
  right: 0;
  transition: 0.3s ease-in-out;
  pointer-events: none;
  user-select: none;
}

.home-welcome > .content-wrapper > .items > .card > svg {
  opacity: 0.4;
  transition: 0.3s ease-in-out;
}

.home-welcome > .content-wrapper > .items > .card > span {
  font-size: clamp(24px, 5vw, 32px);
  font-weight: 400;
  text-transform: uppercase;
  color: var(--color-white);
}

.home-welcome > .content-wrapper > .items > .card:hover {
  background-color: var(--color-accent);
}

.home-welcome > .content-wrapper > .items > .card:hover > svg {
  opacity: 1;
}

.home-welcome > .content-wrapper > .items > .card:hover > img {
  transition-delay: 0.2s;
  opacity: 1;
}

@media (max-width: 950px) {
  .home-welcome > .content-wrapper > .items {
    flex-direction: column;
    gap: 10px;
    margin-top: clamp(-66px, -4vw, -46px);
  }

  .home-welcome > .content-wrapper > .items > .card {
    max-width: unset;
  }
}

.home-welcome > .content-wrapper > .text {
  display: flex;
  gap: 20px;
  margin-bottom: -80px;
  opacity: 0;
}

.home-welcome > .content-wrapper > .text.animate {
  animation: fadeUp 1s forwards;
}

.home-welcome > .content-wrapper > .text > div {
  background-color: var(--color-white);
  padding: 60px;
  padding-bottom: 22px;
  display: flex;
  flex-direction: column;
  width: 100%;
}

.home-welcome > .content-wrapper > .text > img {
  object-fit: cover;
  width: 100%;
  height: auto;
  max-width: 560px;
  user-select: none;
  pointer-events: none;
}

.home-welcome > .content-wrapper > .text > div > h2 {
  font-size: clamp(32px, 4vw, 64px);
  letter-spacing: 0.01em;
  line-height: 120%;
  margin: 0;
  font-weight: 400;
  color: var(--color-graphite);
  text-transform: uppercase;
}

.home-welcome > .content-wrapper > .text > div > p {
  font-size: 24px;
  letter-spacing: 0.01em;
  line-height: 120%;
  margin: 0;
  margin-top: 11px;
  font-weight: 400;
  color: var(--color-graphite);
}

.home-welcome > .content-wrapper > .text > div > div {
  margin-top: 35px;
  display: flex;
  flex-direction: column;
  gap: 1px;
  max-width: 930px;
}

@media (max-width: 1290px) {
  .home-welcome > .content-wrapper > .text > div {
    min-width: 649px;
  }

  .home-welcome > .content-wrapper > .text > img {
    overflow: hidden;
  }
}

@media (max-width: 1275px) {
  .home-welcome > .content-wrapper > .text > div {
    padding: 40px;
    padding-bottom: 30px;
  }

  .home-welcome > .content-wrapper > .text > div > div {
    gap: 18px;
  }
}

@media (max-width: 999px) {
  .home-welcome > .content-wrapper > .text {
    flex-direction: column;
    gap: 10px;
  }

  .home-welcome > .content-wrapper > .text > div {
    min-width: unset;
    padding: 30px;
    padding-bottom: 32px;
  }

  .home-welcome > .content-wrapper > .text > div > h2 {
    text-align: center;
  }

  .home-welcome > .content-wrapper > .text > img {
    max-width: unset;
  }
}

.home-welcome > .content-wrapper > .text > div > div > p {
  font-size: clamp(16px, 1.3vw, 18px);
  margin: 0;
  font-weight: 400;
  color: var(--color-graphite);
}

.home-welcome > .content-wrapper > .text > div > div > .sign {
  display: flex;
  align-items: center;
  gap: 34px;
}

.home-welcome > .content-wrapper > .text > div > div > .sign > img {
  /* user-select: none;
  pointer-events: none; */
  width: clamp(99px, 10vw, 196px);
}

.home-welcome > .content-wrapper > .text > div > div > .sign > p {
  font-size: clamp(16px, 1.3vw, 18px);
  margin: 0;
  font-weight: 400;
  color: var(--color-graphite);
}

.home-welcome > .content-wrapper > .text > div > p > a {
  display: inline-flex;
  color: var(--color-accent);
}

.brand-numbers {
  background-color: var(--color-graphite);
  padding: 0 var(--page-padding);
  padding-top: 180px;
  padding-bottom: 130px;
  display: flex;
  flex-direction: column;
  gap: 65px;
  max-width: 1920px;
  margin: 0 auto;
}

.brand-numbers > .info {
  display: flex;
  align-items: flex-end;
  gap: 37px;
  opacity: 0;
}

@media (max-width: 1200px) {
  .brand-numbers > .info {
    gap: 15px;
  }
}

.brand-numbers > .info.animate {
  animation:
    fadeUp 1s forwards,
    blurIn 1.5s forwards;
}

.brand-numbers > .info > img {
  width: clamp(345px, 40vw, 760px);
  height: auto;
  flex-shrink: 1;
  user-select: none;
  pointer-events: none;
}

.brand-numbers > .info > h2 {
  margin: 0;
  font-size: clamp(40px, 4vw, 64px);
  line-height: 100%;
  letter-spacing: 0.01em;
  color: var(--color-gray);
  text-transform: uppercase;
  font-weight: 400;
  white-space: nowrap;
}

.brand-numbers > .info > p {
  margin: 0;
  margin-bottom: clamp(4px, 0.6vw, 11px);
  margin-left: auto;
  font-size: clamp(16px, 1.5vw, 18px);
  color: var(--color-white);
  white-space: nowrap;
}

.brand-numbers > .cards {
  display: flex;
  align-items: center;
  gap: 20px;
  opacity: 0;
}

@media (max-width: 999px) {
  .brand-numbers > .info {
    flex-direction: column;
    gap: 5px;
    align-items: center;
  }

  .brand-numbers > .info > img {
    width: clamp(320px, 70vw, 360px);
    order: 2;
  }

  .brand-numbers > .info > h2 {
    order: 3;
  }

  .brand-numbers > .info > p {
    margin-bottom: 15px;
    order: 1;
    margin-left: unset;
  }

  .brand-numbers > .cards {
    flex-direction: column;
    gap: 10px;
  }
}

.brand-numbers > .cards.animate {
  animation: fadeUp 1s 0.5s forwards;
}

.brand-numbers > .cards > div {
  display: flex;
  flex-direction: column;
  gap: 18px;
  border: 2px solid #ffffff33;
  padding: 20px;
  width: 100%;
  min-height: 260px;
}

.brand-numbers > .cards > div > h3 {
  margin: 0;
  position: relative;
  font-size: 32px;
  font-weight: 400;
  text-transform: uppercase;
  color: var(--color-white);
  padding-left: 34px;
}

.brand-numbers > .cards > div > h3::before {
  content: "";
  position: absolute;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background-color: var(--color-accent);
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
  left: 0;
  top: 14px;
}

.brand-numbers > .cards > div > p {
  margin: 0;
  font-size: clamp(18px, 1.5vw, 22px);
  font-weight: 400;
  color: var(--color-white);
}

.partners {
  position: relative;
}

.partners > .content-wrapper {
  display: flex;
  flex-direction: column;
  gap: 65px;
  padding: 130px var(--page-padding);
  position: relative;
  max-width: 1920px;
  margin: 0 auto;
}

.partners > .content-wrapper > .circle {
  background: radial-gradient(50% 50% at 50% 50%, #e52a009e 0, transparent);
  border-radius: 50%;
  height: 841px;
  position: absolute;
  width: 845px;
  top: -340px;
  right: -322px;
  z-index: 4;
  mix-blend-mode: plus-lighter;
  filter: blur(180px);
  pointer-events: none;
  user-select: none;
}

.partners > .partners-banner {
  display: block;
  position: absolute;
  inset: 0;
  pointer-events: none;
  user-select: none;
  background-image: url("../images/home/home-partners.webp");
  background-repeat: no-repeat;
  background-size: cover;
}

.partners > .partners-banner::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  user-select: none;
  background-color: #222426bf;
}

.partners > .content-wrapper > h2 {
  margin: 0;
  font-size: clamp(32px, 4vw, 64px);
  line-height: 120%;
  letter-spacing: 0.01em;
  color: var(--color-white);
  text-transform: uppercase;
  font-weight: 400;
  white-space: nowrap;
  z-index: 2;
}

@media (max-width: 580px) {
  .partners > .content-wrapper > h2 {
    text-align: center;
  }
}

.partners > .content-wrapper > .items {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 21px;
  z-index: 2;
}

.partners > .content-wrapper > .items > a,
.partners > .content-wrapper > .items > div {
  color: var(--color-graphite);
  text-decoration: none;
  background-color: var(--color-white);
  padding: 40px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 340px;
  min-width: 0;
  width: auto;
  opacity: 0;
  position: relative;
}

.partners > .content-wrapper > .items > a:first-of-type.animate {
  animation: fadeRightPercent 1s forwards;
}

.partners > .content-wrapper > .items > a:last-of-type.animate {
  animation: fadeUpPercent 1s 0.5s forwards;
}

.partners > .content-wrapper > .items > div.animate {
  animation: fadeLeftPercent 1s 0.8s forwards;
}

@media (max-width: 990px) {
  .partners > .content-wrapper > .items {
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 10px;
  }

  .partners > .content-wrapper > .items > a,
  .partners > .content-wrapper > .items > div {
    padding: 20px;
  }

  .partners > .content-wrapper > .items > a:last-of-type.animate {
    animation: fadeLeftPercent 1s 0.5s forwards;
  }

  .partners > .content-wrapper > .items > div.animate {
    animation: fadeRightPercent 1s 0.8s forwards;
  }
}

.partners > .content-wrapper > .items > a > img {
  max-height: 83px;
  max-width: 100%;
  object-fit: contain;
  height: 100%;
  width: fit-content;
}

.partners > .content-wrapper > .items > a > div {
  display: flex;
  flex-direction: column;
  position: relative;
  z-index: 2;
}

.partners > .content-wrapper > .items > a > div > h3 {
  font-size: clamp(20px, 1.8vw, 32px);
  letter-spacing: 0.01em;
  margin: 0;
  font-weight: 400;
  color: var(--color-graphite);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: 0.3s ease-in-out;
  word-break: break-word;
}

.partners > .content-wrapper > .items > a > div > p {
  font-size: 18px;
  margin: 0;
  font-weight: 400;
  color: var(--color-graphite);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  opacity: 0;
  transform: translateY(20px);
  max-height: 0;
  overflow: hidden;
  transition: 0.3s ease-in-out;
}

.partners > .content-wrapper > .items > a:hover > div > h3 {
  font-size: 24px;
  margin-bottom: 10px;
}

.partners > .content-wrapper > .items > a:hover > div > p {
  opacity: 1;
  transform: translateY(0);
  max-height: 100px;
}

.partners > .content-wrapper > .items > div > span {
  font-size: clamp(16px, 1.5vw, 18px);
  color: var(--color-graphite);
}

.partners > .content-wrapper > .items > div > p {
  margin: 0;
  font-size: clamp(16px, 1.5vw, 22px);
  color: var(--color-graphite);
}

.production {
  display: flex;
  flex-direction: column;
  gap: 65px;
  padding: 130px var(--page-padding);
  max-width: 1920px;
  margin: 0 auto;
  scroll-margin-top: 90px;
  opacity: 0;
}

.production.animate {
  animation: fadeUp 1s forwards;
}

.production__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}

.production__title {
  margin: 0;
  font-size: clamp(40px, 4vw, 64px);
  line-height: 120%;
  letter-spacing: 0.01em;
  color: var(--color-white);
  text-transform: uppercase;
  font-weight: 400;
  white-space: nowrap;
}
.production > .production__catalog {
  display: none;
}

.production__catalog {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 76px;
  padding: 0 20px;
  color: var(--color-white);
  background-color: var(--color-accent);
  font-size: 14px;
  line-height: 120%;
  text-transform: uppercase;
  transition:
    color 0.3s ease-in-out,
    background-color 0.3s ease-in-out;
  white-space: nowrap;
}

.production__catalog > svg {
  flex: 0 0 auto;
  transition: transform 0.3s ease-in-out;
}

.production__catalog:hover,
.production__catalog:focus-visible {
  background-color: #d84d12;
}

.production__catalog:hover > svg,
.production__catalog:focus-visible > svg {
  transform: translate(5px, -5px);
}

.production__cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.production-card {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 520px;
  aspect-ratio: 560 / 800;
  overflow: hidden;
  color: var(--color-white);
  background-color: #18191b;
  isolation: isolate;
  opacity: 0;
}

.production-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, transparent 40%, rgba(5, 5, 5, 0.42) 100%),
    rgba(5, 5, 5, 0.12);
  transition: background-color 0.3s ease-in-out;
  pointer-events: none;
}

.production.animate .production-card {
  animation:
    fadeIn 1s forwards,
    blurIn 1s forwards;
}

.production.animate .production-card:first-of-type {
  animation-delay: 0.5s;
}

.production.animate .production-card:nth-of-type(2) {
  animation-delay: 1s;
}

.production.animate .production-card:last-of-type {
  animation-delay: 1.5s;
}

.production-card__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.45s ease-in-out;
  pointer-events: none;
  user-select: none;
}

.production-card--supports > .production-card__image {
  object-position: 50% 0;
}

.production-card__body {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
  width: 100%;
  padding: 40px;
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 0.3s ease-in-out,
    transform 0.3s ease-in-out;
}

.production-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(54px, 4vw, 75px);
  height: clamp(54px, 4vw, 75px);
  color: var(--color-white);
  background-color: var(--color-accent);
}

.production-card__title {
  max-width: 520px;
  font-size: clamp(22px, 1.8vw, 32px);
  line-height: 120%;
  letter-spacing: 0.01em;
  text-transform: uppercase;
}

.production-card:hover > .production-card__image,
.production-card:focus-visible > .production-card__image {
  transform: scale(1.06);
}

.production-card:hover::after,
.production-card:focus-visible::after {
  background:
    linear-gradient(180deg, transparent 32%, rgba(5, 5, 5, 0.46) 100%),
    rgba(5, 5, 5, 0.04);
}

.production-card:hover > .production-card__body,
.production-card:focus-visible > .production-card__body {
  opacity: 1;
  transform: translateY(0);
}

.production__catalog:focus-visible,
.production-card:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 4px;
}

@media (max-width: 1180px) {
  .production {
    gap: 44px;
  }

  .production__cards {
    gap: 16px;
  }

  .production-card {
    min-height: 420px;
  }

  .production-card__body {
    gap: 18px;
    padding: 28px;
  }
}

@media (max-width: 1024px) {
  .production-card__icon {
    display: none;
  }
}

@media (max-width: 950px) {
  .production {
    padding-top: 90px;
    padding-bottom: 90px;
    scroll-margin-top: 180px;
    gap: 20px;
  }

  .production > .production__catalog {
    display: inline-flex;
    margin-top: -2px;
  }

  .production__header {
    align-items: flex-start;
    flex-direction: column;
  }

  .production__header > .production__catalog {
    display: none;
  }

  .production__cards {
    grid-template-columns: 1fr;
  }

  .production-card {
    min-height: 280px;
    height: clamp(280px, 68vw, 460px);
    aspect-ratio: auto;
  }

  .production-card__body {
    opacity: 1;
    transform: none;
  }

  .production-card::after {
    background:
      linear-gradient(180deg, transparent 26%, rgba(5, 5, 5, 0.58) 100%),
      rgba(5, 5, 5, 0.08);
  }
}

@media (max-width: 520px) {
  .production {
    gap: 32px;
    padding-top: 70px;
    padding-bottom: 70px;
  }

  .production__title {
    white-space: normal;
    text-align: center;
    width: 100%;
  }

  .production-card__body {
    gap: 14px;
    padding: 20px;
  }

  .production-card__title {
    font-size: 20px;
  }
}

@media (hover: none) {
  .production-card__body {
    opacity: 1;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .production__catalog,
  .production__catalog > svg,
  .production-card,
  .production-card::after,
  .production-card__image,
  .production-card__body {
    transition: none;
  }
}

.services {
  display: flex;
  flex-direction: column;
  padding: 130px 0 0;
  scroll-margin-top: 90px;
}

.services__inner {
  width: 100%;
  max-width: 1920px;
  margin: 0 auto;
  padding: 0 var(--page-padding) 130px;
  opacity: 0;
}

.services__inner.animate {
  animation:
    fadeUp 1s forwards,
    blurIn 1s forwards;
}

.services__title {
  margin: 0;
  font-size: clamp(40px, 4vw, 64px);
  line-height: 120%;
  letter-spacing: 0;
  color: var(--color-white);
  text-transform: uppercase;
  font-weight: 400;
  white-space: nowrap;
}

.services__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding: 0;
  margin: 60px 0 0;
  list-style: none;
  border-top: 1px solid var(--color-line);
  border-left: 1px solid var(--color-line);
}

.services__item {
  min-height: clamp(160px, 13.75vw, 264px);
  border-right: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
}

.services-intro,
.services-card {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: inherit;
  overflow: hidden;
  color: var(--color-white);
}

.services-intro {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: clamp(20px, 2vw, 40px);
}

.services-intro__title {
  max-width: 400px;
  margin: 0;
  font-size: clamp(21px, 2vw, 32px);
  line-height: 120%;
  letter-spacing: 0;
  font-weight: 400;
  text-transform: uppercase;
}

.services-intro__text {
  max-width: 360px;
  margin: clamp(26px, 2vw, 40px) 0 0;
  color: var(--color-white);
  font-size: 18px;
  line-height: 135%;
}

.services-card {
  display: flex;
  align-items: flex-start;
  border: 0;
  padding: clamp(24px, 2vw, 40px);
  font: inherit;
  text-align: left;
  cursor: pointer;
  isolation: isolate;
  background-color: transparent;
}

.services-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(34, 36, 38, 0.68), rgba(34, 36, 38, 0.22)),
    rgba(5, 5, 5, 0.26);
  opacity: 0;
  transition: opacity 0.3s ease-in-out;
  pointer-events: none;
}

.services-card__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transform: scale(1.04);
  transition:
    opacity 0.3s ease-in-out,
    transform 0.45s ease-in-out;
  pointer-events: none;
  user-select: none;
}

.services-card__title {
  position: relative;
  z-index: 2;
  font-size: clamp(21px, 2vw, 32px);
  line-height: 120%;
  letter-spacing: 0;
  text-transform: uppercase;
  padding-left: 31px;
}

.services-card__title::before {
  content: "";
  position: absolute;
  top: 0.56em;
  left: 0;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background-color: var(--color-accent);
  opacity: 0;
  transform: translateY(-50%) scale(0.7);
  transition:
    opacity 0.3s ease-in-out,
    transform 0.3s ease-in-out;
}

.services-card:hover::after,
.services-card:focus-visible::after,
.services-card.is-active::after,
.services-card:hover > .services-card__image,
.services-card:focus-visible > .services-card__image,
.services-card.is-active > .services-card__image {
  opacity: 1;
}

.services-card:hover > .services-card__image,
.services-card:focus-visible > .services-card__image,
.services-card.is-active > .services-card__image {
  transform: scale(1);
}

.services-card.is-active .services-card__title::before {
  opacity: 1;
  transform: translateY(-50%) scale(1);
}

.services-card:focus-visible,
.services-preview__link:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 4px;
}

.services-preview {
  position: relative;
  min-height: clamp(420px, 47vw, 900px);
  overflow: hidden;
  background-color: #111315;
  isolation: isolate;
  opacity: 0;
}

.services-preview.animate {
  animation:
    fadeIn 1s forwards,
    blurIn 1s forwards;
}

.services-preview::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(5, 5, 5, 0.04) 45%, rgba(5, 5, 5, 0.34) 100%),
    rgba(5, 5, 5, 0.18);
  pointer-events: none;
}

.services-preview__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition:
    opacity 0.3s ease-in-out,
    transform 0.6s ease-in-out;
}

.services-preview__image.is-changing {
  opacity: 0;
  transform: scale(1.02);
}

.services-preview__link {
  position: absolute;
  left: 50%;
  bottom: clamp(46px, 5.4vw, 104px);
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 76px;
  padding: 0 22px;
  color: var(--color-white);
  background-color: var(--color-accent);
  font-size: 14px;
  line-height: 120%;
  text-transform: uppercase;
  transform: translateX(-50%);
  transition: background-color 0.3s ease-in-out;
  white-space: nowrap;
}

.services-preview__link > svg {
  flex: 0 0 auto;
  transition: transform 0.3s ease-in-out;
}

.services-preview__link:hover,
.services-preview__link:focus-visible {
  background-color: #d84d12;
}

.services-preview__link:hover > svg,
.services-preview__link:focus-visible > svg {
  transform: translate(5px, -5px);
}

@media (max-width: 1180px) {
  .services__inner {
    padding-bottom: 60px;
  }

  .services__grid {
    margin-top: 44px;
  }
}

@media (max-width: 950px) {
  .services {
    padding-top: 90px;
    scroll-margin-top: 180px;
  }

  .services__inner {
    padding-bottom: 80px;
  }

  .services-intro__title,
  .services-card__title {
    font-size: clamp(20px, 3.3vw, 24px);
  }

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

  .services__item {
    min-height: 190px;
  }

  .services-preview {
    min-height: clamp(360px, 68vw, 560px);
  }
}

@media (max-width: 640px) {
  .services {
    padding-top: 70px;
  }

  .services__inner {
    padding-bottom: 50px;
  }

  .services__title {
    white-space: normal;
  }

  .services-card__title {
    padding-left: 25px;
  }

  .services-card__title::before {
    width: 10px;
    height: 10px;
  }

  .services__grid {
    grid-template-columns: 1fr;
    margin-top: 32px;
  }

  .services__item {
    min-height: 148px;
  }

  .services-intro,
  .services-card {
    padding: 22px;
  }

  .services-intro__title,
  .services-card__title {
    font-size: 22px;
  }

  .services-intro__text {
    margin-top: 22px;
    font-size: 16px;
  }

  .services-preview__link {
    width: calc(100% - 40px);
    max-width: 320px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .services-card,
  .services-card::after,
  .services-card__image,
  .services-card__title::before,
  .services-preview__image,
  .services-preview__link,
  .services-preview__link > svg {
    transition: none;
  }
}

.advantages {
  padding: 88px 0 76px;
  color: #282b2d;
  background-color: var(--color-white);
  scroll-margin-top: 90px;
}

.advantages__inner {
  width: 100%;
  max-width: 1920px;
  margin: 0 auto;
  padding: 0 var(--page-padding);
  opacity: 0;
}

.advantages__inner.animate {
  animation:
    fadeUp 1s forwards,
    blurIn 1s forwards;
}

.advantages__title {
  margin: 0;
  color: #282b2d;
  font-size: 44px;
  line-height: 120%;
  letter-spacing: 0;
  font-weight: 400;
  text-transform: uppercase;
}

.advantages__scroller {
  --advantages-column-width: 277px;
  --advantages-line-overhang: 0px;
  --advantages-line-top: clamp(106px, 6.35vw, 130px);
  --advantages-title-line-gap: 29px;

  width: 100%;
  margin-top: 36px;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: thin;
  scrollbar-color: #b4b4b6 transparent;
  opacity: 0;
}

.advantages__scroller.animate {
  animation:
    fadeUp 1s forwards,
    blurIn 1s forwards;
}

.advantages__scroller::-webkit-scrollbar {
  height: 8px;
}

.advantages__scroller::-webkit-scrollbar-track {
  background-color: transparent;
}

.advantages__scroller::-webkit-scrollbar-thumb {
  background-color: #b4b4b6;
}

.advantages__list {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, var(--advantages-column-width));
  width: max-content;
  min-height: 248px;
  margin: 0 auto;
  padding: 0 var(--page-padding);
  list-style: none;
}

.advantages__list::before {
  content: "";
  position: absolute;
  top: var(--advantages-line-top);
  left: calc(var(--advantages-line-overhang) * -1);
  right: calc(var(--advantages-line-overhang) * -1);
  height: 2px;
  background-color: #595b5d;
}

.advantages__item {
  min-width: 0;
}

.advantages-card {
  position: relative;
  display: block;
  min-height: 222px;
  padding: 0 24px 0 0;
  color: #282b2d;
  outline: none;
}

.advantages-card__title {
  display: flex;
  align-items: flex-end;
  min-height: var(--advantages-line-top);
  max-width: 260px;
  margin: 0;
  padding: 0 0 var(--advantages-title-line-gap);
  color: inherit;
  font-size: clamp(20px, 1.45vw, 28px);
  line-height: 120%;
  letter-spacing: 0;
  font-weight: 400;
  text-transform: uppercase;
  transition: color 0.25s ease-in-out;
}

.advantages-card__title > span {
  display: block;
  white-space: nowrap;
}

.advantages-card__marker {
  position: absolute;
  top: calc(var(--advantages-line-top) - 5px);
  left: 20px;
  z-index: 1;
  width: 11px;
  height: 11px;
  background-color: #282b2d;
  transition: background-color 0.25s ease-in-out;
}

.advantages-card__bottom {
  position: relative;
  min-height: 98px;
  padding-top: var(--advantages-title-line-gap);
}

.advantages-card__number {
  display: block;
  color: #aeb0b2;
  font-size: 64px;
  line-height: 100%;
  letter-spacing: 0;
  position: relative;
  left: -10px;
  transition:
    opacity 0.25s ease-in-out,
    transform 0.25s ease-in-out;
}

.advantages-card__text {
  position: absolute;
  top: var(--advantages-title-line-gap);
  left: 0;
  width: 188px;
  margin: 0;
  color: var(--color-black);
  font-size: 13px;
  line-height: 140%;
  letter-spacing: 0;
  white-space: nowrap;
  opacity: 0;
  transform: translateY(8px);
  transition:
    opacity 0.25s ease-in-out,
    transform 0.25s ease-in-out;
  pointer-events: none;
}

.advantages-card:hover .advantages-card__title,
.advantages-card:focus .advantages-card__title,
.advantages-card:focus-visible .advantages-card__title {
  color: var(--color-accent);
}

.advantages-card:hover .advantages-card__marker,
.advantages-card:focus .advantages-card__marker,
.advantages-card:focus-visible .advantages-card__marker {
  background-color: var(--color-accent);
}

.advantages-card:hover .advantages-card__number,
.advantages-card:focus .advantages-card__number,
.advantages-card:focus-visible .advantages-card__number {
  opacity: 0;
  transform: translateY(-4px);
}

.advantages-card:hover .advantages-card__text,
.advantages-card:focus .advantages-card__text,
.advantages-card:focus-visible .advantages-card__text {
  opacity: 1;
  transform: none;
}

@media (max-width: 1180px) {
  .advantages__scroller {
    --advantages-line-top: 112px;
    --advantages-title-line-gap: 34px;
  }
}

@media (max-width: 950px) {
  .advantages {
    padding: 72px 0 58px;
    scroll-margin-top: 180px;
  }

  .advantages__title {
    font-size: 38px;
  }

  .advantages__scroller {
    margin-top: 30px;
  }

  .advantages-card__title {
    max-width: 260px;
  }
}

/* @media (min-width: 1720px) {
} */

@media (min-width: 1920px) {
  .advantages__list::before {
    left: calc(50% - 50vw);
    right: calc(50% - 50vw);
  }
}

@media (min-width: 1740px) {
  .advantages__scroller {
    overflow-x: hidden;
  }
}

@media (min-width: 1546px) {
  .advantages__scroller {
    --advantages-column-width: 345px;
  }
}

@media (max-width: 640px) {
  .advantages {
    padding: 58px 0 48px;
  }

  .advantages__scroller {
    --advantages-column-width: 245px;
  }

  .advantages__title {
    font-size: 32px;
  }

  .advantages__list {
    min-height: 230px;
  }

  .advantages-card {
    min-height: 230px;
    padding-right: 18px;
  }

  .advantages-card__title {
    max-width: 260px;
  }

  .advantages-card__number {
    font-size: 38px;
  }

  .advantages-card__text {
    width: 170px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .advantages-card__title,
  .advantages-card__marker,
  .advantages-card__number,
  .advantages-card__text {
    transition: none;
  }
}

.company-news {
  padding: 130px var(--page-padding);
  color: var(--color-white);
  background-color: var(--color-accent);
  scroll-margin-top: 90px;
}

.company-news__inner {
  width: 100%;
  max-width: 1720px;
  margin: 0 auto;
  opacity: 0;
}

.company-news__inner.animate {
  animation:
    fadeUp 1s forwards,
    blurIn 1s forwards;
}

.company-news__inner.animate .company-news__item {
  animation:
    fadeIn 1s 0.5s forwards,
    blurIn 1s 0.5s forwards;
}

.company-news__inner.animate .company-news__item:nth-of-type(2) {
  animation:
    fadeIn 1s 1s forwards,
    blurIn 1s 1s forwards;
}
.company-news__inner.animate .company-news__item:last-of-type {
  animation:
    fadeIn 1s 1.5s forwards,
    blurIn 1s 1.5s forwards;
}

.company-news__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  margin-bottom: 60px;
}

.company-news__title {
  margin: 0;
  color: var(--color-white);
  font-size: clamp(40px, 4vw, 64px);
  font-weight: 400;
  line-height: 120%;
  letter-spacing: 0;
  text-transform: uppercase;
}

.company-news__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-width: 204px;
  min-height: 76px;
  padding: 0 24px;
  color: var(--color-white);
  background-color: var(--color-graphite);
  font-size: 18px;
  line-height: 120%;
  text-transform: uppercase;
  transition:
    color 0.3s ease-in-out,
    background-color 0.3s ease-in-out;
  white-space: nowrap;
}

.company-news__link > svg {
  flex: 0 0 auto;
  transition: transform 0.3s ease-in-out;
}

.company-news__link:hover,
.company-news__link:focus-visible {
  background-color: #17191a;
}

.company-news__link:hover > svg,
.company-news__link:focus-visible > svg {
  transform: translate(5px, -5px);
}

.company-news__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.company-news__item {
  min-width: 0;
  opacity: 0;
}

.company-news-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 340px;
  padding: 40px;
  overflow: hidden;
  color: var(--color-white);
  background-color: var(--color-graphite);
  isolation: isolate;
}

.company-news-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(5, 5, 5, 0.18) 0%, rgba(5, 5, 5, 0.38) 100%),
    rgba(5, 5, 5, 0.26);
  transition: background-color 0.3s ease-in-out;
  pointer-events: none;
}

.company-news-card__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.55s ease-in-out;
  pointer-events: none;
  user-select: none;
}

.company-news-card--processing > .company-news-card__image {
  object-position: 50% 49%;
}

.company-news-card--standards > .company-news-card__image {
  object-position: 50% 46%;
}

.company-news-card__date,
.company-news-card__title {
  position: relative;
  z-index: 2;
}

.company-news-card__date {
  color: rgba(255, 255, 255, 0.72);
  font-size: clamp(18px, 1.2vw, 22px);
  line-height: 120%;
}

.company-news-card__title {
  max-width: clamp(250px, 19.5vw, 371px);
  color: var(--color-white);
  font-size: clamp(20px, 1.35vw, 24px);
  line-height: 120%;
  letter-spacing: 0;
  text-transform: uppercase;
}

.company-news-card--standards > .company-news-card__title {
  max-width: clamp(250px, 19.5vw, 371px);
}

.company-news-card__icon.production-card__icon {
  position: absolute;
  right: 40px;
  bottom: 40px;
  z-index: 2;
  color: var(--color-graphite);
  background-color: var(--color-white);
  opacity: 0;
  transform: translate(12px, 12px);
  transition:
    opacity 0.3s ease-in-out,
    transform 0.3s ease-in-out;
}

.company-news-card:hover > .company-news-card__image,
.company-news-card:focus-visible > .company-news-card__image {
  transform: scale(1.1);
}

.company-news-card:hover::after,
.company-news-card:focus-visible::after {
  background:
    linear-gradient(180deg, rgba(5, 5, 5, 0.12) 0%, rgba(5, 5, 5, 0.42) 100%),
    rgba(5, 5, 5, 0.2);
}

.company-news-card:hover > .company-news-card__icon,
.company-news-card:focus-visible > .company-news-card__icon {
  opacity: 1;
  transform: none;
}

.company-news__link:focus-visible,
.company-news-card:focus-visible {
  outline: 2px solid var(--color-white);
  outline-offset: 4px;
}

@media (max-width: 1180px) {
  .company-news {
    padding-top: 60px;
    padding-bottom: 80px;
  }

  .company-news__inner {
    max-width: 984px;
  }

  .company-news__header {
    margin-bottom: 40px;
  }

  .company-news__title {
    font-size: clamp(40px, 4vw, 44px);
  }

  .company-news__link {
    min-width: 194px;
    min-height: 77px;
  }

  .company-news-card {
    min-height: 270px;
    padding: 26px 20px;
  }

  .company-news-card__icon.production-card__icon {
    right: 20px;
    bottom: 26px;
  }
}

@media (max-width: 950px) {
  .company-news {
    scroll-margin-top: 180px;
  }

  .company-news__list {
    gap: 10px;
  }
}

@media (max-width: 860px) {
  .company-news {
    padding-top: 50px;
    padding-bottom: 50px;
  }

  .company-news__header {
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
    margin-bottom: 14px;
    text-align: center;
  }

  .company-news__title {
    font-size: 32px;
  }

  .company-news__link {
    width: 100%;
    min-height: 76px;
    font-size: 18px;
  }

  .company-news__list {
    grid-template-columns: 1fr;
  }

  .company-news-card {
    min-height: 270px;
    aspect-ratio: auto;
    padding: 20px;
  }

  .company-news-card__date {
    font-size: 18px;
  }

  .company-news-card__title {
    max-width: none;
    font-size: 22px;
  }

  .company-news-card--standards > .company-news-card__title {
    max-width: none;
  }

  .company-news-card__icon.production-card__icon {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .company-news__link,
  .company-news__link > svg,
  .company-news-card,
  .company-news-card::after,
  .company-news-card__image,
  .company-news-card__icon.production-card__icon {
    transition: none;
  }
}

.faq {
  position: relative;
  z-index: 1;
  padding: 110px var(--page-padding) 223px;
  color: #282b2d;
  background-color: var(--color-white);
  scroll-margin-top: 90px;
}

.faq__inner {
  display: flex;
  justify-content: space-between;
  gap: 50px;
  width: 100%;
  max-width: 1720px;
  margin: 0 auto;
  opacity: 0;
}

.faq__inner.animate {
  animation:
    fadeUp 1s forwards,
    blurIn 1s forwards;
}

.faq__intro {
  min-width: 0;
}

.faq__copy {
  min-width: 0;
}

.faq__title {
  max-width: 520px;
  margin: 0;
  color: #282b2d;
  font-size: clamp(44px, 4vw, 64px);
  font-weight: 400;
  line-height: 120%;
  letter-spacing: 0;
  text-transform: uppercase;
}

.faq__subtitle {
  max-width: 520px;
  margin: 18px 0 0;
  color: #282b2d;
  font-size: clamp(16px, 1.5vw, 24px);
  line-height: 130%;
  letter-spacing: 0;
}

.faq__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 195px;
  min-height: 76px;
  margin-top: 24px;
  padding: 0 24px;
  border: 0;
  color: var(--color-white);
  background-color: var(--color-accent);
  font-size: 18px;
  line-height: 120%;
  letter-spacing: 0;
  text-transform: uppercase;
  transition: background-color 0.3s ease-in-out;
  white-space: nowrap;
}

.faq__button:hover,
.faq__button:focus-visible {
  background-color: #d84d12;
}

.faq__accordion {
  min-width: 0;
  overflow-anchor: none;
  max-width: clamp(750px, 55vw, 850px);
}

.faq__item {
  border-bottom: 1px solid #d6d6d7;
}

.faq__heading {
  margin: 0;
}

.faq__question {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 65px;
  align-items: center;
  gap: 28px;
  width: 100%;
  min-height: 100px;
  padding: 20px 0;
  border: 0;
  color: #282b2d;
  background-color: transparent;
  font: inherit;
  font-size: clamp(24px, 1.7vw, 28px);
  font-weight: 400;
  line-height: 120%;
  letter-spacing: 0;
  text-align: left;
  text-transform: uppercase;
  cursor: pointer;
}

.faq__item:first-child .faq__question {
  min-height: 54px;
  padding-top: 0;
}

.faq__toggle {
  position: relative;
  width: 65px;
  height: 67px;
  background-color: #17191a;
  transition:
    background-color 0.3s ease-in-out,
    transform 0.3s ease-in-out;
}

.faq__toggle::before,
.faq__toggle::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 24px;
  height: 1px;
  background-color: #b4b4b6;
  content: "";
  transform: translate(-50%, -50%);
  transition:
    background-color 0.3s ease-in-out,
    opacity 0.3s ease-in-out,
    transform 0.3s ease-in-out;
}

.faq__toggle::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.faq__question[aria-expanded="true"] .faq__toggle {
  background-color: var(--color-accent);
}

.faq__question[aria-expanded="true"] .faq__toggle::before {
  background-color: var(--color-white);
}

.faq__question[aria-expanded="true"] .faq__toggle::after {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(90deg) scaleX(0);
}

.faq__question:hover .faq__toggle,
.faq__question:focus-visible .faq__toggle {
  background-color: var(--color-accent);
}

.faq__question:hover .faq__toggle::before,
.faq__question:hover .faq__toggle::after,
.faq__question:focus-visible .faq__toggle::before,
.faq__question:focus-visible .faq__toggle::after {
  background-color: var(--color-white);
}

.faq__answer {
  box-sizing: border-box;
  overflow: hidden;
  color: #282b2d;
  font-size: 18px;
  line-height: 140%;
  letter-spacing: 0;
  transition:
    height 0.35s ease,
    opacity 0.25s ease;
  will-change: height, opacity;
}

.faq__answer > p {
  margin: 0;
  padding: 0 80px 22px 0;
}

.faq__button:focus-visible,
.faq__question:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 4px;
}

@media (max-width: 1180px) {
  .faq {
    padding-top: 60px;
    padding-bottom: 100px;
  }

  .faq__inner {
    flex-direction: column;
    gap: 40px;
  }

  .faq__intro {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 30px;
  }

  .faq__title {
    max-width: none;
    font-size: 40px;
  }

  .faq__subtitle {
    max-width: 590px;
    margin-top: 8px;
    font-size: 16px;
  }

  .faq__button {
    margin-top: 0;
  }

  .faq__accordion {
    max-width: unset;
  }

  .faq__question {
    min-height: 110px;
    font-size: 28px;
  }
}

@media (max-width: 950px) {
  .faq {
    scroll-margin-top: 180px;
  }
}

@media (max-width: 790px) {
  .faq {
    padding-top: 36px;
    padding-bottom: 40px;
  }

  .faq__inner {
    gap: 30px;
  }

  .faq__intro {
    display: block;
    text-align: center;
  }

  .faq__title {
    font-size: 32px;
  }

  .faq__subtitle {
    margin: 0 auto;
    margin-top: 15px;
  }

  .faq__button {
    width: 100%;
    margin-top: 20px;
    font-size: 14px;
  }

  .faq__question {
    grid-template-columns: minmax(0, 1fr) 65px;
    gap: 12px;
    min-height: 78px;
    padding: 12px 0;
    font-size: 18px;
    line-height: normal;
  }

  .faq__item:first-child .faq__question {
    min-height: 44px;
  }

  .faq__answer {
    font-size: 16px;
    line-height: normal;
  }

  .faq__answer > p {
    padding-right: 56px;
    padding-bottom: 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .faq__button,
  .faq__question,
  .faq__answer,
  .faq__toggle,
  .faq__toggle::before,
  .faq__toggle::after {
    transition: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .feedback__link,
  .feedback__link > svg,
  .feedback-field__input,
  .feedback-upload__dropzone,
  .feedback-upload__remove,
  .feedback__submit,
  .feedback-consent__box {
    transition: none;
  }
}

.quality-quote {
  color: var(--color-white);
  background-color: var(--color-white);
}

.quality-quote__inner {
  --quality-quote-frame-width: min(100vw, 1920px);
  --quality-quote-frame-height: calc(
    var(--quality-quote-frame-width) * 1000 / 1920
  );
  --quality-quote-frame-offset: max(0px, calc((100vw - 1920px) / 2));
  --quality-quote-grid: calc(var(--quality-quote-frame-width) * 74.4 / 1360);
  --quality-quote-grid-x: calc(
    var(--quality-quote-frame-offset) - var(--quality-quote-frame-width) *
      28.8 / 1360
  );
  --quality-quote-grid-y: calc(var(--quality-quote-frame-height) * 20 / 710);
  --quality-quote-line-left: calc(
    var(--quality-quote-grid-x) + var(--quality-quote-grid) * 2
  );
  --quality-quote-line-step: calc(
    var(--quality-quote-grid-x) + var(--quality-quote-grid) * 5
  );
  --quality-quote-line-right: calc(
    var(--quality-quote-grid-x) + var(--quality-quote-grid) * 17
  );
  --quality-quote-line-top: calc(
    var(--quality-quote-grid-y) + var(--quality-quote-grid)
  );
  --quality-quote-line-middle: calc(
    var(--quality-quote-grid-y) + var(--quality-quote-grid) * 6
  );
  --quality-quote-line-bottom: calc(
    var(--quality-quote-grid-y) + var(--quality-quote-grid) * 8
  );
  --quality-quote-line-right-top: calc(
    var(--quality-quote-grid-y) + var(--quality-quote-grid) * 5
  );
  --quality-quote-marker-top-x: var(--quality-quote-line-left);
  --quality-quote-marker-top-y: var(--quality-quote-line-top);
  --quality-quote-marker-bottom-x: var(--quality-quote-line-step);
  --quality-quote-marker-bottom-y: var(--quality-quote-line-bottom);
  --quality-quote-marker-right-x: var(--quality-quote-line-right);
  --quality-quote-marker-right-y: var(--quality-quote-line-right-top);
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  height: var(--quality-quote-frame-height);
  margin: 0 auto;
  overflow: hidden;
  background:
    linear-gradient(rgba(255, 255, 255, 0.16) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.16) 1px, transparent 1px),
    var(--color-graphite);
  background-size:
    var(--quality-quote-grid) var(--quality-quote-grid),
    var(--quality-quote-grid) var(--quality-quote-grid),
    100% 100%,
    100% 100%;
  background-position:
    var(--quality-quote-grid-x) var(--quality-quote-grid-y),
    var(--quality-quote-grid-x) var(--quality-quote-grid-y),
    0 0,
    0 0;
}

.quality-quote__inner > .circles {
  position: relative;
  width: 100%;
  height: 100%;
  max-width: 1920px;
  margin: 0 auto;
  pointer-events: none;
  user-select: none;
  position: absolute;
}

.quality-quote__inner > .circles > .circle {
  background: radial-gradient(50% 50% at 50% 50%, #f25b199e 0, transparent);
  border-radius: 50%;
  height: 841px;
  position: absolute;
  width: 845px;
  z-index: 4;
  mix-blend-mode: plus-lighter;
  filter: blur(180px);
  pointer-events: none;
  user-select: none;
}

.quality-quote__inner > .circles > .circle:first-of-type {
  top: -695px;
  left: -72px;
}

.quality-quote__inner > .circles > .circle:last-of-type {
  top: -405px;
  right: -252px;
}

.quality-quote__line {
  position: absolute;
  inset: 0;
  z-index: 1;
  color: var(--color-accent);
  pointer-events: none;
  user-select: none;
  opacity: 0;
}

.quality-quote__line.animate {
  animation:
    fadeIn 1s forwards,
    blurIn 1s forwards;
}

.quality-quote__line-part {
  position: absolute;
  display: block;
  background-color: currentColor;
}

.quality-quote__line-part--top,
.quality-quote__line-part--middle,
.quality-quote__line-part--bottom,
.quality-quote__line-part--right-top {
  height: 1px;
  transform: translateY(-50%);
}

.quality-quote__line-part--left,
.quality-quote__line-part--step,
.quality-quote__line-part--right {
  width: 1px;
  transform: translateX(-50%);
}

.quality-quote__line-part--top {
  top: var(--quality-quote-line-top);
  left: 0;
  width: var(--quality-quote-line-left);
}

.quality-quote__line-part--left {
  top: var(--quality-quote-line-top);
  left: var(--quality-quote-line-left);
  height: calc(
    var(--quality-quote-line-middle) - var(--quality-quote-line-top)
  );
}

.quality-quote__line-part--middle {
  top: var(--quality-quote-line-middle);
  left: var(--quality-quote-line-left);
  width: calc(var(--quality-quote-line-step) - var(--quality-quote-line-left));
}

.quality-quote__line-part--step {
  top: var(--quality-quote-line-middle);
  left: var(--quality-quote-line-step);
  height: calc(
    var(--quality-quote-line-bottom) - var(--quality-quote-line-middle)
  );
}

.quality-quote__line-part--bottom {
  top: var(--quality-quote-line-bottom);
  left: var(--quality-quote-line-step);
  width: calc(var(--quality-quote-line-right) - var(--quality-quote-line-step));
}

.quality-quote__line-part--right {
  top: var(--quality-quote-line-right-top);
  left: var(--quality-quote-line-right);
  height: calc(
    var(--quality-quote-line-bottom) - var(--quality-quote-line-right-top)
  );
}

.quality-quote__line-part--right-top {
  top: var(--quality-quote-line-right-top);
  left: var(--quality-quote-line-right);
  width: calc(100% - var(--quality-quote-line-right));
}

.quality-quote__marker {
  position: absolute;
  z-index: 2;
  display: block;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background-color: var(--color-accent);
  transform: translate(-50%, -50%);
  pointer-events: none;
  user-select: none;
  isolation: isolate;
}

.quality-quote__marker::before,
.quality-quote__marker::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  background-color: var(--color-accent);
  opacity: 0;
  animation: quality-quote-marker-pulse 2.4s ease-out infinite;
}

.quality-quote__marker::before {
  --quality-quote-marker-pulse-scale: 2;
  animation-delay: 0.2s;
}

.quality-quote__marker::after {
  --quality-quote-marker-pulse-scale: 3;
  animation-delay: 0.55s;
}

.quality-quote__marker--top {
  top: var(--quality-quote-marker-top-y);
  left: var(--quality-quote-marker-top-x);
}

.quality-quote__marker--bottom {
  top: var(--quality-quote-marker-bottom-y);
  left: var(--quality-quote-marker-bottom-x);
}

.quality-quote__marker--right {
  top: var(--quality-quote-marker-right-y);
  left: var(--quality-quote-marker-right-x);
}

.quality-quote__content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: clamp(548px, 70vw, 1351px);
  margin: 0;
  text-align: center;
  opacity: 0;
}

.quality-quote__content.animate {
  animation:
    fadeUp 1s forwards,
    blurIn 1s forwards;
}

.quality-quote__text {
  margin: 0;
  color: var(--color-white);
  font-size: clamp(20px, 2.5vw, 48px);
  line-height: 1.35;
  letter-spacing: 0.01em;
  text-transform: uppercase;
}

.quality-quote__author {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: clamp(42px, 3.2vw, 50px);
}

.quality-quote__photo {
  display: block;
  width: clamp(100px, 9.5vw, 170px);
  height: clamp(100px, 9.5vw, 170px);
  border-radius: 50%;
  overflow: hidden;
  pointer-events: none;
  user-select: none;
}

.quality-quote__photo-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1);
  transform: scale(1.6);
  transform-origin: 60% 15%;
  object-position: top;
}

.quality-quote__name {
  margin: 0;
  margin-top: clamp(10px, 1.5vw, 30px);
  color: var(--color-white);
  font-size: clamp(16px, 1.5vw, 24px);
  font-weight: 400;
  line-height: 120%;
  letter-spacing: 0.01em;
}

@media (max-width: 1180px) {
  .quality-quote__inner {
    --quality-quote-grid: clamp(39px, 5.15vw, 74px);
    --quality-quote-grid-x: 0;
    --quality-quote-grid-y: 0;
    --quality-quote-line-left: calc(var(--quality-quote-grid) * 2);
    --quality-quote-line-step: calc(var(--quality-quote-grid) * 5);
    --quality-quote-line-right: calc(var(--quality-quote-grid) * 18);
    --quality-quote-line-top: var(--quality-quote-grid);
    --quality-quote-line-middle: calc(var(--quality-quote-grid) * 7);
    --quality-quote-line-bottom: calc(var(--quality-quote-grid) * 9);
    --quality-quote-line-right-top: calc(var(--quality-quote-grid) * 6);
    height: 566px;
  }

  .quality-quote__text {
    letter-spacing: 0;
  }

  .quality-quote__name {
    letter-spacing: 0;
  }

  .quality-quote__inner > .circles {
    display: none;
  }

  .quality-quote__content {
    margin-bottom: clamp(0px, calc(505.71px - 42.86vw), 160px);
  }
}

@media (max-width: 900px) {
  .quality-quote__inner {
    --quality-quote-line-left: var(--quality-quote-grid);
    --quality-quote-line-right: calc(100% - var(--quality-quote-grid));
    --quality-quote-line-top: calc(var(--quality-quote-grid) * 8);
    --quality-quote-line-bottom: calc(var(--quality-quote-grid) * 10);
    --quality-quote-line-right-top: calc(var(--quality-quote-grid) * 9);
    --quality-quote-marker-bottom-x: var(--quality-quote-line-left);
    --quality-quote-marker-right-y: var(--quality-quote-line-bottom);
  }

  .quality-quote__line-part--middle,
  .quality-quote__line-part--step {
    display: none;
  }

  .quality-quote__marker--bottom {
    display: none;
  }

  .quality-quote__line-part--left {
    height: calc(
      var(--quality-quote-line-bottom) - var(--quality-quote-line-top)
    );
  }

  .quality-quote__line-part--bottom {
    left: var(--quality-quote-line-left);
    width: calc(
      var(--quality-quote-line-right) - var(--quality-quote-line-left)
    );
  }
}

@media (max-width: 550px) {
  .quality-quote__content {
    width: 100%;
    padding: 0 20px;
  }
}

@media (min-width: 360px) and (max-width: 389px) {
  .quality-quote__inner {
    --quality-quote-line-right: calc(var(--quality-quote-grid) * 9);
  }
}

@media (max-width: 359px) {
  .quality-quote__inner {
    --quality-quote-line-right: calc(var(--quality-quote-grid) * 8);
  }
}

@media (prefers-reduced-motion: reduce) {
  .quality-quote__inner {
    transition: none;
  }

  .quality-quote__marker::before,
  .quality-quote__marker::after {
    animation: none;
  }
}

@keyframes quality-quote-marker-pulse {
  0%,
  15% {
    opacity: 0;
    transform: scale(1);
  }

  24% {
    opacity: 0.34;
  }

  74%,
  100% {
    opacity: 0;
    transform: scale(var(--quality-quote-marker-pulse-scale));
  }
}
