:root {
  --black: #0a0a0a;
  --red: #f34d40;
  --white: #fff;
  --heading-font: "Oswald", sans-serif;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--white);
  color: var(--black);
  font-family: Arial, sans-serif;
}

a {
  color: inherit;
  text-decoration: none;
}

a:focus-visible {
  outline: 3px solid var(--red);
  outline-offset: 6px;
}

.header {
  background: var(--black);
  color: var(--white);
}

.header__inner {
  max-width: 1920px;
  min-height: 136px;
  margin: 0 auto;
  padding: 30px 5.45% 30px 3.54%;

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}

/*
  Логотип берём непосредственно из твоего макета.
  Показывается только область логотипа, не вся картинка.

  Координаты рассчитаны по предоставленному изображению
  в масштабе ширины 1920 px.
*/
.logo {
  display: block;
  flex: 0 0 274px;
  width: 274px;
  height: 76px;
  overflow: hidden;
}

.logo__image {
  display: block;
  width: 100%;
  height: 100%;

  background-image: url("/maket.webp");
  background-repeat: no-repeat;
  background-size: 1920px auto;
  background-position: -68px -30px;
}

.nav {
  display: flex;
  align-items: center;
  gap: 44px;
}

.nav a,
.header__phone,
.button {
  font-family: var(--heading-font);
  font-weight: 600;
  text-transform: uppercase;
  white-space: nowrap;
}

.nav a {
  font-size: 30px;
  line-height: 1.2;
}

.nav a:hover {
  color: var(--red);
}

.header__phone {
  display: inline-flex;
  align-items: center;
  gap: 8px;

  color: var(--red);
  font-size: 29px;
  line-height: 1.2;
}

.header__phone svg {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  background: var(--red);
  color: var(--white);
  padding: 8px 14px;

  font-size: 32px;
  line-height: 1.2;
}

.button:hover {
  filter: brightness(1.08);
}

/* Промежуточное поведение для узких экранов. */
@media (max-width: 1700px) {
  .header__inner {
    flex-wrap: wrap;
    gap: 24px;
  }

  .nav {
    order: 4;
    width: 100%;
    justify-content: center;
    flex-wrap: wrap;
    gap: 20px 36px;
  }
}

@media (max-width: 700px) {
  .header__inner {
    justify-content: center;
    padding: 24px 16px;
  }

  .nav a {
    font-size: 20px;
  }

  .header__phone {
    font-size: 24px;
  }

  .header__button {
    font-size: 26px;
  }
}
/* Ограничиваем ширину содержимого шапки */
.header__inner {
  width: calc(100% - 48px);
  max-width: 1440px;
  margin-inline: auto;
  padding: 24px 0;
  gap: 24px;
}

/* Размеры элементов под контейнер 1440 px */
.nav {
  gap: 28px;
}

.nav a {
  font-size: 24px;
}

.header__phone {
  font-size: 24px;
}

.header__button {
  font-size: 26px;
}

/* На достаточно широком экране меню остаётся в одной строке */
@media (min-width: 1400px) {
  .header__inner {
    flex-wrap: nowrap;
  }

  .nav {
    order: 0;
    width: auto;
    flex-wrap: nowrap;
  }
}

@media (max-width: 600px) {
  .header__inner {
    width: calc(100% - 32px);
  }
}
/* =========================
   ПЕРВЫЙ ЭКРАН
   ========================= */

.hero {
  background: var(--black);
}

.hero__stage {
  /*
    Содержимое ограничено той же шириной, что и шапка.
    cqw ниже — размеры относительно ширины этого блока.
  */
  container-type: inline-size;

  position: relative;
  isolation: isolate;
  overflow: hidden;

  width: calc(100% - 48px);
  max-width: 1440px;
  aspect-ratio: 1920 / 1072;
  margin-inline: auto;

  background: var(--black);
}

/* Белый диагональный участок снизу */
.hero__stage::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;

  background: var(--white);
  clip-path: polygon(
    0 65%,
    46% 100%,
    0 100%
  );
}

/*
  Показываем область исходного макета с дезинсектором.

  Расчёт сделан по предоставленному макету:
  ширина 1920 px, начало блока после шапки около 136 px.

  Это обрезка исходного изображения, не новая иллюстрация.
*/
.hero__art {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  pointer-events: none;

  clip-path: polygon(
    67% 0,
    100% 0,
    100% 100%,
    40% 100%,
    36% 88%,
    55% 70%,
    65% 60%
  );
}

.hero__art img {
  position: absolute;
  top: -7.083333cqw;
  left: 0;

  display: block;
  width: 100%;
  max-width: none;
  height: auto;
}

/* Текст поверх декоративных слоёв */
.hero__content {
  position: relative;
  z-index: 2;
  padding-top: 3.2cqw;
  padding-left: 3.125cqw;
}

.hero__title {
  margin: 0;

  color: var(--red);
  font-family: var(--heading-font);
  font-size: 7.6cqw;
  font-weight: 700;
  line-height: 1.14;
  letter-spacing: -0.12cqw;
  text-transform: uppercase;
}

.hero__title > span {
  display: block;
}

.hero__title .hero__title-row {
  display: flex;
  align-items: center;
  gap: 0.8cqw;
}

/* Небольшая подпись слева от слова «вредителей» */
.hero__tagline {
  display: flex;
  flex: 0 0 14.2cqw;
  flex-direction: column;

  color: var(--white);
  font-size: 1.9cqw;
  font-weight: 600;
  line-height: 1.18;
  letter-spacing: -0.035cqw;
}

.hero__tagline > span {
  white-space: nowrap;
}

.hero__tagline-red {
  color: var(--red);
}

/* Большая красная кнопка */
.hero__button {
  margin-top: 3.2cqw;
  padding: 0.9cqw 1.7cqw;

  font-size: 4.25cqw;
  line-height: 1.2;
}

/* Лицензия на белом участке */
.hero__license {
  margin: 1.7cqw 0 0;

  color: var(--black);
  font-family: var(--heading-font);
  font-size: 1.35cqw;
  font-weight: 600;
  line-height: 1.35;
  text-transform: uppercase;
}

/* =========================
   МОБИЛЬНАЯ ВЕРСИЯ
   ========================= */

@media (max-width: 700px) {
  .hero__stage {
    width: calc(100% - 32px);
    aspect-ratio: auto;
    min-height: 720px;
  }

  .hero__stage::before {
    clip-path: polygon(
      0 78%,
      100% 96%,
      100% 100%,
      0 100%
    );
  }

  .hero__content {
    padding: 28px 0 0;
  }

  .hero__title {
    font-size: clamp(35px, 9.3vw, 65px);
    line-height: 1.16;
    letter-spacing: -0.5px;
  }

  .hero__title .hero__title-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .hero__tagline {
    flex: none;
    margin-block: 12px;
    font-size: 18px;
    line-height: 1.2;
    letter-spacing: 0;
  }

  .hero__button {
    margin-top: 26px;
    padding: 14px 18px;
    font-size: clamp(24px, 6.5vw, 38px);
  }

  /*
    На телефоне оставляем иллюстрацию ниже текста,
    а не уменьшаем весь первый экран одной картинкой.
  */
  .hero__art {
    inset: auto 0 0 auto;
    width: 330px;
    height: 300px;

    clip-path: polygon(
      35% 0,
      100% 0,
      100% 100%,
      0 100%,
      0 75%
    );
  }

  .hero__art img {
    width: 660px;
    top: -49px;
    left: -330px;
  }

  .hero__license {
    position: relative;
    z-index: 3;

    width: fit-content;
    margin-top: 225px;
    margin-bottom: 20px;
    padding: 8px;

    background: var(--white);
    font-size: 13px;
  }
}
/* Подгоняем белую подложку под границу исходного макета */
@media (min-width: 701px) {
  .hero__stage::before {
    clip-path: polygon(
      0 64.93%,
      3.85% 72.85%,
      37.97% 72.85%,
      37.97% 85.35%,
      45.57% 100%,
      0 100%
    );
  }
}
/* Совмещаем кнопку с белой подложкой */
@media (min-width: 701px) {
  .hero__content {
    position: absolute;
    inset: 0;
  }

  .hero__button {
    position: absolute;

    top: 72.85%;
    left: 3.4375%;
    width: 34.53%;
    height: 12.5%;

    margin: 0;
    padding: 0;

    font-size: 4.25cqw;
    justify-content: center;
    align-items: center;
  }

  .hero__license {
    position: absolute;
    top: 88.5%;
    left: 3.54%;
    margin: 0;
  }
}
/* =========================
   ВИДЫ УСЛУГ
   ========================= */

.services {
  padding: 30px 0 64px;
  background: var(--white);
  color: var(--black);
}

.services__container {
  container-type: inline-size;

  width: calc(100% - 48px);
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: 30px;
}

.services__title {
  margin: 0;

  color: var(--red);
  font-family: var(--heading-font);
  font-size: clamp(56px, 10.4cqw, 150px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.025em;
  text-transform: uppercase;
}

.services__subtitle {
  margin: 22px 0 44px;

  color: var(--red);
  font-size: clamp(18px, 2.5cqw, 36px);
  font-weight: 400;
  line-height: 1.25;
  text-transform: uppercase;
}

.services__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
  gap: 4.8cqw;
}

.service-card {
  min-width: 0;

  display: flex;
  flex-direction: column;

  background: var(--black);
  color: var(--white);
}

.service-card__title {
  display: flex;
  align-items: center;
  justify-content: center;

  min-height: 5.1cqw;
  margin: 0;
  padding: 10px 5px 16px;

  font-family: var(--heading-font);
  font-size: clamp(23px, 2.75cqw, 40px);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.045em;
  text-transform: uppercase;
}

/* Полоса выступает за границы карточки */
.service-card__ribbon {
  position: relative;
  flex-shrink: 0;

  height: 32px;
  margin: 0 -12px 20px;
  background: #111;
}

/*
  Иконки берём из исходного maket.webp.

  Здесь фиксированная обрезка четырёх щитов,
  рассчитанная для макета шириной 1920 px.
  Масштабируется только иконка, не текст карточки.
*/
.service-card__badge {
  position: absolute;
  top: 50%;
  left: 50%;

  display: block;
  width: 80px;
  height: 86px;

  background-image: url("/maket.webp");
  background-repeat: no-repeat;
  background-size: 1920px auto;

  transform: translate(-50%, -50%) scale(0.7);
  clip-path: polygon(
    50% 2%,
    91% 16%,
    91% 57%,
    84% 75%,
    68% 90%,
    50% 99%,
    30% 89%,
    13% 73%,
    9% 57%,
    9% 16%
  );
}

.service-card__badge--insects {
  background-position: -195px -1650px;
}

.service-card__badge--disinfection {
  background-position: -675px -1650px;
}

.service-card__badge--rodents {
  background-position: -1157px -1650px;
}

.service-card__badge--plants {
  background-position: -1635px -1650px;
}

.service-card__list {
  flex: 1;

  margin: 0;
  padding: 8px 14px 20px;
  list-style: none;

  font-size: clamp(12px, 1.05cqw, 16px);
  font-weight: 600;
  line-height: 1.25;
}

.service-card__list li {
  position: relative;
  padding-left: 17px;
}

.service-card__list li + li {
  margin-top: 8px;
}

.service-card__list li::before {
  content: "✓";
  position: absolute;
  top: 0;
  left: 0;
  font-weight: 400;
}

/* Цена всегда внизу, на одной линии у всех карточек */
.service-card__price {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 4px;

  margin-top: auto;
  padding: 9px 6px 12px;

  background: var(--red);
  color: var(--white);

  font-family: var(--heading-font);
  line-height: 1;
  text-transform: uppercase;
}

.service-card__price strong {
  font-size: clamp(42px, 3.4cqw, 50px);
  font-weight: 500;
}

.service-card__price span {
  font-size: 23px;
  font-weight: 500;
}

.service-card__price:hover {
  filter: brightness(1.08);
}

.service-card__price:focus-visible {
  outline: 3px solid var(--black);
  outline-offset: 4px;
}

/* Планшет: две карточки в ряд */
@media (max-width: 1100px) {
  .services__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 36px;
  }

  .service-card__title {
    min-height: 76px;
    font-size: 34px;
  }

  .service-card__list {
    font-size: 16px;
    padding: 12px 20px 24px;
  }

  .service-card__price strong {
    font-size: 50px;
  }
}

/* Телефон: одна карточка в ряд */
@media (max-width: 600px) {
  .services {
    padding: 32px 0 40px;
  }

  .services__container {
    width: calc(100% - 32px);
    padding-inline: 12px;
  }

  .services__title {
    font-size: clamp(46px, 12cqw, 68px);
  }

  .services__subtitle {
    margin: 18px 0 32px;
    font-size: 19px;
  }

  .services__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
  }

  .service-card__title {
    font-size: clamp(28px, 8cqw, 38px);
  }

  .service-card__list {
    min-height: 220px;
  }
}
/* Повышаем читаемость списков услуг */
.service-card__list {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
}

.service-card__list li + li {
  margin-top: 8px;
}

@media (max-width: 600px) {
  .service-card__list {
    font-size: 16px;
  }
}
/* =========================
   КАТЕГОРИИ ОБЪЕКТОВ
   ========================= */

/* Расстояние между карточками услуг и новым блоком */
.services {
  padding-bottom: 40px;
}

.objects {
  padding-bottom: 64px;
  background: var(--white);
}

.objects__container {
  width: calc(100% - 48px);
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: 30px;
}

.objects__band {
  position: relative;

  display: grid;
  grid-template-columns: minmax(0, 28%) minmax(0, 1fr);
  gap: 32px;

  padding: 26px 24px 12px;
  background: var(--black);
  color: var(--white);
}

/* Небольшой диагональный срез слева снизу */
.objects__band::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;

  width: 24px;
  height: 94px;

  background: var(--white);
  clip-path: polygon(0 0, 100% 30%, 100% 100%, 0 100%);
  pointer-events: none;
}

.objects__intro {
  position: relative;
  z-index: 1;

  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: 26px;

  min-width: 0;
}

.objects__intro h2 {
  margin: 0;

  color: var(--red);
  font-family: var(--heading-font);
  font-size: clamp(25px, 2.2vw, 34px);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.025em;
  text-transform: uppercase;
}

.objects__button {
  width: 100%;
  padding: 12px 8px;

  font-size: clamp(25px, 2.4vw, 36px);
  letter-spacing: -0.025em;
}

.objects__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-content: space-between;
  gap: 30px 18px;

  min-width: 0;
  margin: 0;
  padding: 5px 0 18px;
  list-style: none;
}

.objects__item {
  display: flex;
  align-items: center;
  gap: 12px;

  min-width: 0;

  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.12;
}

/*
  Показываем отдельные красные квадраты из maket.webp.
  Текст рядом с ними — настоящий HTML.
*/
.objects__icon {
  display: block;
  flex: 0 0 52px;

  width: 52px;
  height: 52px;
  overflow: hidden;

  background: var(--red);
}

.objects__sprite {
  display: block;
  width: 78px;
  height: 78px;

  background-image: url("/maket.webp");
  background-repeat: no-repeat;
  background-size: 1920px auto;

  transform: scale(0.6666667);
  transform-origin: top left;
}

/* Верхний ряд иконок в исходном макете */
.objects__sprite--home {
  background-position: -617px -2339px;
}

.objects__sprite--office {
  background-position: -922px -2339px;
}

.objects__sprite--hotel {
  background-position: -1228px -2339px;
}

.objects__sprite--shop {
  background-position: -1534px -2339px;
}

/* Нижний ряд иконок в исходном макете */
.objects__sprite--food {
  background-position: -617px -2468px;
}

.objects__sprite--car {
  background-position: -922px -2468px;
}

.objects__sprite--factory {
  background-position: -1228px -2468px;
}

.objects__sprite--medical {
  background-position: -1534px -2468px;
}

/* На более узком экране категории идут в две колонки */
@media (max-width: 1250px) {
  .objects__band {
    grid-template-columns: minmax(0, 34%) minmax(0, 1fr);
    gap: 28px;
  }

  .objects__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
  }

  .objects__intro {
    justify-content: center;
  }

  .objects__intro h2 {
    font-size: 30px;
  }

  .objects__button {
    font-size: 28px;
  }
}

/* Телефон */
@media (max-width: 700px) {
  .objects__band {
    grid-template-columns: minmax(0, 1fr);
    padding: 24px;
    gap: 32px;
  }

  .objects__band::before {
    display: none;
  }

  .objects__intro {
    gap: 20px;
  }

  .objects__button {
    width: auto;
    max-width: 100%;
    padding: 12px 16px;
    white-space: normal;
    text-align: center;
  }

  .objects__grid {
    padding: 0;
    gap: 24px 16px;
  }

  .objects__item {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;

    font-size: 15px;
    line-height: 1.2;
  }
}

@media (max-width: 600px) {
  .objects {
    padding-bottom: 40px;
  }

  .objects__container {
    width: calc(100% - 32px);
    padding-inline: 12px;
  }

  .objects__intro h2 {
    font-size: 28px;
  }
}
/* =========================
   АЛГОРИТМ РАБОТЫ
   ========================= */

.workflow {
  padding: 0 0 64px;
  background: var(--white);
  color: var(--black);
}

.workflow__container {
  container-type: inline-size;

  width: calc(100% - 48px);
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: 30px;
}

.workflow__title {
  margin: 0;

  color: var(--red);
  font-family: var(--heading-font);
  font-size: clamp(48px, 10.4cqw, 150px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.025em;
  text-transform: uppercase;
}

.workflow__subtitle {
  margin: 22px 0 72px;

  color: var(--red);
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(18px, 2.5cqw, 36px);
  font-weight: 400;
  line-height: 1.25;
  text-transform: uppercase;
}

/* Три колонки, два ряда */
.workflow__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 48px 3.4cqw;

  margin: 0;
  padding: 0;
  list-style: none;
}

.workflow-step {
  min-width: 0;
}

/* Номер и слово «Этап» над чёрной линией */
.workflow-step__header {
  display: flex;
  align-items: center;
  gap: 14px;

  padding: 0 24px 18px;
  border-bottom: 3px solid var(--black);

  color: var(--red);
  font-family: var(--heading-font);
  font-weight: 600;
  text-transform: uppercase;
}

.workflow-step__number {
  display: flex;
  flex: 0 0 58px;
  align-items: center;
  justify-content: center;

  width: 58px;
  height: 58px;

  background: var(--black);
  font-size: 40px;
  line-height: 1;
}

.workflow-step__label {
  font-size: 28px;
  line-height: 1;
}

.workflow-step__body {
  padding: 16px 24px 0;
}

.workflow-step__body h3 {
  margin: 0 0 8px;

  color: var(--red);
  font-family: var(--heading-font);
  font-size: clamp(21px, 1.95cqw, 28px);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.025em;
  text-transform: uppercase;
}

.workflow-step__body p {
  margin: 0;

  font-family: Arial, Helvetica, sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.3;
}

/* Планшет */
@media (max-width: 1000px) {
  .workflow__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 40px 28px;
  }

  .workflow__subtitle {
    margin-bottom: 48px;
  }

  .workflow-step__body h3 {
    font-size: 26px;
  }
}

/* Телефон */
@media (max-width: 600px) {
  .workflow {
    padding-bottom: 40px;
  }

  .workflow__container {
    width: calc(100% - 32px);
    padding-inline: 12px;
  }

  .workflow__title {
    font-size: clamp(38px, 11.5cqw, 64px);
    overflow-wrap: break-word;
  }

  .workflow__subtitle {
    margin: 18px 0 36px;
    font-size: 19px;
  }

  .workflow__grid {
    grid-template-columns: minmax(0, 1fr);
gap: 32px;
  }

  .workflow-step__header {
    padding: 0 12px 16px;
  }

  .workflow-step__body {
    padding: 16px 12px 0;
  }

  .workflow-step__body h3 {
    font-size: 25px;
  }

  .workflow-step__body p {
    font-size: 15px;
    font-weight: 400;
    line-height: 1.4;
  }
}
/* =========================
   ГАРАНТИЯ В ДОГОВОРЕ
   ========================= */

.guarantee {
  padding: 48px 0 100px;
  background: var(--black);
  color: var(--white);
}

.guarantee__container {
  container-type: inline-size;

  width: calc(100% - 48px);
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: 30px;
}

.guarantee__title {
  margin: 0;

  font-family: var(--heading-font);
  font-size: clamp(44px, 9.5cqw, 137px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.03em;
  text-transform: uppercase;
}

.guarantee__subtitle {
  margin: 22px 0 76px;

  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(18px, 2.5cqw, 36px);
  line-height: 1.25;
  text-transform: uppercase;
}

/* Две колонки и два ряда */
.guarantee__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: 76px 6.5cqw;

  padding-left: 34px;
}

/* Белая карточка */
.guarantee-card {
  position: relative;
  min-width: 0;
  min-height: 150px;

  padding: 24px 20px 26px 42px;

  background: var(--white);
  color: var(--black);
}

.guarantee-card h3 {
  margin: 0 0 12px;

  color: var(--red);
  font-family: var(--heading-font);
  font-size: clamp(23px, 2cqw, 29px);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.035em;
  text-transform: uppercase;
}

.guarantee-card p {
  margin: 0;

  font-family: Arial, Helvetica, sans-serif;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
}

/* Красный значок выступает за верхний левый угол */
.guarantee-card__icon {
  position: absolute;
  top: -34px;
  left: -34px;

  display: block;
  width: 66px;
  height: 66px;
  overflow: hidden;

  background: var(--red);
}

/*
  Используем иконки из исходного maket.webp.
  Координаты рассчитаны в масштабе ширины макета 1920 px.
*/
.guarantee-card__sprite {
  display: block;
  width: 94px;
  height: 94px;

  background-image: url("/maket.webp");
  background-repeat: no-repeat;
  background-size: 1920px auto;

  transform: scale(0.70212766);
  transform-origin: top left;
}

.guarantee-card__sprite--shield {
  background-position: -52px -3988px;
}

.guarantee-card__sprite--repeat {
  background-position: -986px -3988px;
}

.guarantee-card__sprite--check {
  background-position: -52px -4296px;
}

.guarantee-card__sprite--documents {
  background-position: -986px -4296px;
}

/* Планшет */
@media (max-width: 1000px) {
  .guarantee {
    padding-block: 40px 72px;
  }

  .guarantee__grid {
    gap: 64px 40px;
    padding-left: 26px;
  }

  .guarantee-card {
    padding: 38px 20px 24px;
  }

  .guarantee-card__icon {
    top: -32px;
    left: -26px;
  }

  .guarantee-card h3 {
    font-size: 25px;
  }
}

/* Телефон */
@media (max-width: 600px) {
  .guarantee {
    padding-block: 32px 48px;
  }

  .guarantee__container {
    width: calc(100% - 32px);
    padding-inline: 12px;
  }

  .guarantee__title {
    font-size: clamp(38px, 11cqw, 64px);
    overflow-wrap: break-word;
  }

  .guarantee__subtitle {
    margin: 18px 0 64px;
    font-size: 19px;
  }

  .guarantee__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 58px;
    padding-left: 18px;
  }

  .guarantee-card {
    min-height: 0;
    padding: 42px 18px 24px;
  }

  .guarantee-card__icon {
    left: -18px;
  }

  .guarantee-card h3 {
    font-size: 25px;
  }

  .guarantee-card p {
    font-size: 15px;
    font-weight: 400;
    line-height: 1.4;
  }
}
/* =========================
   АКЦИИ И СКИДКИ
   ========================= */

.offers {
  padding: 48px 0 64px;
  background: var(--white);
  color: var(--black);
}

.offers__container {
  container-type: inline-size;

  width: calc(100% - 48px);
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: 30px;
}

.offers__title {
  margin: 0;

  color: var(--red);
  font-family: var(--heading-font);
  font-size: clamp(42px, 9.1cqw, 131px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.03em;
  text-transform: uppercase;
}

.offers__subtitle {
  margin: 22px 0 48px;

  color: var(--red);
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(18px, 2.5cqw, 36px);
  line-height: 1.25;
  text-transform: uppercase;
}

.offers__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 18px 3.4cqw;
}

.offer-card {
  container-type: inline-size;
  position: relative;
  isolation: isolate;

  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 12px;

  background: var(--black);
  color: var(--white);
}

.offer-card__content {
  position: relative;
  z-index: 1;

  min-height: 150px;
  padding-bottom: 18px;
}

.offer-card h3 {
  max-width: 66%;
  margin: 0 0 12px;

  color: var(--red);
  font-family: var(--heading-font);
  font-size: clamp(27px, 9.5cqw, 42px);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -0.025em;
  text-transform: uppercase;
}

.offer-card p {
  width: 64%;
  margin: 0;

  font-family: Arial, Helvetica, sans-serif;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.3;
}

/* Область исходной иллюстрации справа */
.offer-card__art {
  position: absolute;
  z-index: 0;
  top: 16px;
  right: 12px;

  display: block;
  width: 34%;
  aspect-ratio: 1;
  overflow: hidden;
  pointer-events: none;

  container-type: inline-size;
}

/*
  Координаты обрезки заданы в масштабе исходного
  макета шириной 1920 px.

  Размер области иллюстрации — примерно 210 × 210 px.
*/
.offer-card__sprite {
  position: absolute;
  inset: 0;

  display: block;
  background-image: url("/maket.webp");
  background-repeat: no-repeat;
  background-size: 914.285714cqw auto;
}

/* Социальная скидка */
.offer-card__sprite--social {
  background-position: -190.47619cqw -2423.809524cqw;
}

/* Групповые заявки */
.offer-card__sprite--group {
  background-position: -485.714286cqw -2423.809524cqw;

  /* Сохраняем облако сверху, скрываем чужой текст снизу слева */
  clip-path: polygon(
    4% 0,
    100% 0,
    100% 100%,
    14% 100%,
    14% 32%,
    4% 32%
  );
}

/* За масштаб */
.offer-card__sprite--area {
  background-position: -785.714286cqw -2423.809524cqw;
  clip-path: inset(0 0 0 12%);
}

/* Комбо-предложение */
.offer-card__sprite--combo {
  background-position: -190.47619cqw -2590.47619cqw;
  clip-path: inset(10% 0 0 30%);
}

/* Постоянным клиентам */
.offer-card__sprite--regular {
  background-position: -495.238095cqw -2590.47619cqw;
  clip-path: inset(10% 0 0 10%);
}

/* За отзыв */
.offer-card__sprite--review {
  background-position: -785.714286cqw -2590.47619cqw;
  clip-path: inset(10% 0 0 0);
}

/* Красная полоса с процентом */
.offer-card__discount {
  position: relative;
  z-index: 1;

  display: flex;
  align-items: center;
  justify-content: center;

  min-height: 60px;
  margin-top: auto;
  padding: 4px 8px 8px;

  background: var(--red);
  color: var(--white);

  font-family: var(--heading-font);
  font-size: 54px;
  font-weight: 500;
  line-height: 1;
}

.offer-card__sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* Планшет */
@media (max-width: 1100px) {
  .offers__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
  }

  .offer-card__content {
    min-height: 185px;
  }

  .offer-card p {
    font-size: 14px;
  }
}

/* Телефон */
@media (max-width: 600px) {
  .offers {
    padding: 32px 0 40px;
  }

  .offers__container {
    width: calc(100% - 32px);
    padding-inline: 12px;
  }

  .offers__title {
    font-size: clamp(36px, 11cqw, 64px);
    overflow-wrap: break-word;
  }

  .offers__subtitle {
    margin: 18px 0 32px;
    font-size: 19px;
  }

  .offers__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
  }

  .offer-card {
    padding: 14px;
  }

  .offer-card__content {
    min-height: 190px;
  }

  .offer-card h3 {
    font-size: clamp(27px, 9.5cqw, 38px);
  }

  .offer-card p {
    font-size: 14px;
  }

  .offer-card__discount {
    font-size: 52px;
  }
}
/* =========================
   ДЕКОРАТИВНЫЕ ТАРАКАНЫ
   ========================= */

.offers {
  overflow: hidden;
}

.offers__container {
  position: relative;
  isolation: isolate;
}

.offers__decor {
  position: absolute;
  inset: 0;
  z-index: 2;

  pointer-events: none;
  user-select: none;

  /*
    Белый фон картинок не перекрывает текст и карточки.
    Это смешивание цветов, а не удаление фона из PNG.
  */
  mix-blend-mode: multiply;
}

.offers__bug {
  position: absolute;
  display: block;
  height: auto;
}

/* Над заголовком */
.offers__bug--1 {
  width: 68px;
  left: 23%;
  top: -35px;
  transform: rotate(-35deg);
}

/* Справа возле подзаголовка */
.offers__bug--2 {
  width: 82px;
  right: 8%;
  top: 23%;
  transform: rotate(5deg);
}

/* Маленький слева перед карточками */
.offers__bug--3 {
  width: 28px;
  left: 0;
  top: 32%;
  transform: rotate(-10deg);
}

/* Между первой и второй колонками */
.offers__bug--4 {
  width: 65px;
  left: 33.3%;
  top: 71%;
  transform: translateX(-50%) rotate(75deg);
}

/* Внизу между второй и третьей колонками */
.offers__bug--5 {
  width: 30px;
  left: 66.6%;
  bottom: -18px;
  transform: rotate(-10deg);
}

/* Внизу справа */
.offers__bug--6 {
  width: 72px;
  right: 3%;
  bottom: -55px;
  transform: rotate(-65deg);
}

/* На узком экране не кладём декор между карточками */
@media (max-width: 1100px) {
  .offers__bug--3,
  .offers__bug--4,
  .offers__bug--5 {
    display: none;
  }
}

@media (max-width: 600px) {
  .offers__bug--1 {
    width: 42px;
    left: auto;
    right: 12px;
    top: -25px;
  }

  .offers__bug--2 {
    display: none;
  }

  .offers__bug--6 {
    width: 45px;
    bottom: -32px;
  }
}
/* =========================
   ОТЗЫВЫ
   ========================= */

.reviews {
  padding: 48px 0;
  overflow: hidden;

  background: var(--black);
  color: var(--white);
}

.reviews__container {
  position: relative;
  isolation: isolate;
  container-type: inline-size;

  width: calc(100% - 48px);
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: 30px;
}

.reviews__art {
  position: absolute;
  z-index: -1;
  top: -30px;
  left: 0;

  width: 100%;
  aspect-ratio: 1920 / 1072;
  overflow: hidden;

  clip-path: inset(0 0 0 67%);
  pointer-events: none;
}

.reviews__art img {
  position: absolute;
  top: -7.083333cqw;
  left: 0;

  display: block;
  width: 100%;
  max-width: none;
  height: auto;
}

.reviews__title {
  position: relative;
  margin: 0;

  color: var(--red);
  font-family: var(--heading-font);
  font-size: clamp(48px, 10.4cqw, 150px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.025em;
  text-transform: uppercase;
}

.reviews__subtitle {
  position: relative;
  margin: 22px 0 100px;

  color: var(--red);
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(20px, 2.8cqw, 40px);
  line-height: 1.25;
}

.reviews__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4.5cqw;
}

/*
  Каждая карточка — область исходного maket.webp:
  скриншот переписки, щит и белые уголки.

  Координаты рассчитаны в масштабе макета 1920 px
  и пока не проверены в браузере.
*/
.review-card {
  container-type: inline-size;
  position: relative;

  aspect-ratio: 545 / 1140;
  min-width: 0;
  background: #000;
}

.review-card__shot {
  position: absolute;
  inset: 0;
  display: block;

  background-image: url("/maket.webp");
  background-repeat: no-repeat;
  background-size: 352.294cqw auto;
}

.review-card__shot--1 {
  background-position: -12.844cqw -1152.294cqw;
}

.review-card__shot--2 {
  background-position: -126.055cqw -1152.294cqw;
}

.review-card__shot--3 {
  background-position: -239.266cqw -1152.294cqw;
}

@media (max-width: 1000px) {
  .reviews__subtitle {
    margin-bottom: 76px;
  }
}

@media (max-width: 700px) {
  .reviews {
    padding: 32px 0 40px;
  }

  .reviews__container {
    width: calc(100% - 32px);
    padding-inline: 12px;
  }

  .reviews__title {
    font-size: clamp(42px, 11cqw, 70px);
  }

  .reviews__subtitle {
    margin: 18px 0 64px;
    font-size: 22px;
  }

  .reviews__art {
    display: none;
  }

  .reviews__grid {
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    gap: 56px;
  }

  .review-card {
    width: 100%;
    max-width: 420px;
  }
}
/* Исправляем границы трёх скриншотов отзывов */
.review-card {
  aspect-ratio: 532 / 1210;
  overflow: hidden;
  background: var(--black);
}

.review-card__shot {
  background-size: 360.902256cqw auto;
}

/* Левый отзыв */
.review-card__shot--1 {
  background-position: -5.639098cqw -1167.293233cqw;
}

/* Средний отзыв */
.review-card__shot--2 {
  background-position: -130.075188cqw -1167.293233cqw;
}

/* Правый отзыв */
.review-card__shot--3 {
  background-position: -254.887218cqw -1167.293233cqw;
}
/* =========================
   ВАЖНЫЕ ОТВЕТЫ
   ========================= */

.faq {
  padding: 48px 0 64px;
  background: var(--white);
  color: var(--black);
}

.faq__container {
  container-type: inline-size;

  width: calc(100% - 48px);
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: 30px;
}

.faq__title {
  margin: 0;

  color: var(--red);
  font-family: var(--heading-font);
  font-size: clamp(46px, 10.4cqw, 150px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.025em;
  text-transform: uppercase;
}

.faq__subtitle {
  margin: 22px 0 64px;

  color: var(--red);
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(18px, 2.5cqw, 36px);
  line-height: 1.25;
  text-transform: uppercase;
}

.faq__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px 28px;
}

.faq-item {
  min-width: 0;
}

/* Чёрная плашка вопроса */
.faq-item__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 66px;
  align-items: center;
  gap: 18px;

  min-height: 100px;
  padding: 12px 18px;

  background: var(--black);
  color: var(--white);
}

.faq-item__header h3 {
  margin: 0;

  font-family: var(--heading-font);
  font-size: clamp(23px, 2.1cqw, 30px);
  font-weight: 600;
  line-height: 1.18;
  letter-spacing: -0.025em;
  text-transform: uppercase;
}

/* Знак вопроса — текст, не картинка */
.faq-item__mark {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 66px;
  height: 66px;

  background: var(--red);
  color: var(--white);

  font-family: Arial, Helvetica, sans-serif;
  font-size: 58px;
  font-weight: 400;
  line-height: 1;
}

.faq-item__answer {
  padding-top: 16px;

  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.3;
}

.faq-item__answer p {
  margin: 0;
}

.faq-item__answer p + p {
  margin-top: 16px;
}

.faq-item__answer .faq-item__regions {
  margin-top: 6px;
  font-size: 14px;
  line-height: 1.5;
}

@media (max-width: 1000px) {
  .faq-item__header {
    grid-template-columns: minmax(0, 1fr) 52px;
    gap: 12px;
    padding: 14px;
  }

  .faq-item__header h3 {
    font-size: 24px;
  }

  .faq-item__mark {
    width: 52px;
    height: 52px;
    font-size: 46px;
  }
}

@media (max-width: 700px) {
  .faq__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
  }

  .faq__subtitle {
    margin-bottom: 36px;
  }
}

@media (max-width: 600px) {
  .faq {
    padding: 32px 0 40px;
  }

  .faq__container {
    width: calc(100% - 32px);
    padding-inline: 12px;
  }

  .faq__title {
    font-size: clamp(38px, 11cqw, 64px);
    overflow-wrap: break-word;
  }

  .faq__subtitle {
    margin-top: 18px;
    font-size: 19px;
  }

  .faq-item__header h3 {
    font-size: 23px;
  }

  .faq-item__answer {
    font-size: 15px;
    font-weight: 400;
    line-height: 1.4;
  }
}
/* =========================
   КОНТАКТЫ И ФОРМА
   ========================= */

.contacts {
  padding: 48px 0 64px;
  overflow: hidden;
  background: var(--black);
  color: var(--white);
}

.contacts__container {
  container-type: inline-size;

  width: calc(100% - 48px);
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: 30px;
}

.contacts__title {
  margin: 0;
  color: var(--red);

  font-family: var(--heading-font);
  font-size: clamp(48px, 10.4cqw, 150px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.025em;
  text-transform: uppercase;
}

.contacts__subtitle {
  margin: 22px 0 48px;
  color: var(--red);

  font-size: clamp(18px, 2.5cqw, 36px);
  line-height: 1.25;
  text-transform: uppercase;
}

.contacts__layout {
  position: relative;
  isolation: isolate;

  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 31%);
  align-items: start;
  gap: 30px;
}

/* Адрес, почта, телефоны */
.contacts__details {
  position: relative;
  z-index: 1;

  min-width: 0;
  padding-top: 34px;
  font-style: normal;
}

.contacts__group + .contacts__group {
  margin-top: 36px;
}

.contacts__group h3 {
  margin: 0 0 10px;
  color: var(--red);

  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(28px, 3cqw, 44px);
  font-weight: 500;
  line-height: 1.2;
}

.contacts__group p,
.contacts__group a {
  margin: 0;
  font-size: clamp(19px, 1.9cqw, 28px);
  font-weight: 400;
  line-height: 1.5;
}

.contacts__group a {
  display: table;
  overflow-wrap: anywhere;
}

.contacts__group a:hover {
  color: var(--red);
}

/*
  Противогаз из исходного макета.
  Координаты пока приблизительные: проверим по скриншоту.
*/
.contacts__art {
  position: absolute;
  z-index: 0;
  right: 27%;
  bottom: 0;

  width: 32%;
  aspect-ratio: 520 / 680;
  overflow: hidden;
  pointer-events: none;
  container-type: inline-size;
}

.contacts__mask {
  position: absolute;
  inset: 0;

  background-image: url("/maket.webp");
  background-repeat: no-repeat;
  background-size: 369.230769cqw auto;
  background-position: -153.846154cqw -1711.538462cqw;
}

/* Белая форма */
.contact-form {
  position: relative;
  z-index: 2;

  display: flex;
  flex-direction: column;
  gap: 18px;
  min-width: 0;
  padding: 28px;

  background: var(--white);
  color: var(--black);
}

.contact-form__title {
  margin: 0;
  color: var(--red);
  text-align: center;

  font-family: var(--heading-font);
  font-size: clamp(44px, 4.6cqw, 68px);
  font-weight: 700;
  line-height: 1.1;
  text-transform: uppercase;
}

.contact-form__intro {
  margin: -4px 0 14px;
  text-align: center;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.25;
}

.contact-form input,
.contact-form textarea,
.contact-form select {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 58px;

  border: 0;
  border-radius: 0;
  padding: 16px 12px;

  background: var(--black);
  color: var(--white);

  font-family: Arial, Helvetica, sans-serif;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.3;
  text-align: center;
}

.contact-form textarea {
  min-height: 72px;
  resize: vertical;
}

.contact-form input::placeholder,
.contact-form textarea::placeholder {
  color: var(--white);
  opacity: 1;
}

.contact-form input:focus-visible,
.contact-form textarea:focus-visible,
.contact-form select:focus-visible {
  outline: 3px solid var(--red);
  outline-offset: 3px;
}

.contact-form__submit {
  width: 100%;
  min-height: 58px;
  border: 0;
  border-radius: 0;

  font-size: clamp(23px, 2.5cqw, 36px);
  white-space: normal;
  text-align: center;
}

.contact-form__submit:disabled {
  cursor: not-allowed;
}

.contact-form__submit:disabled:hover {
  filter: none;
}

.contact-form__status {
  margin: 0;
  font-size: 12px;
  line-height: 1.4;
  text-align: center;
}

/* Скрытые визуально, но доступные подписи полей */
.contact-form__label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

@media (max-width: 1100px) {
  .contacts__layout {
    grid-template-columns: minmax(0, 1fr) minmax(0, 42%);
  }

  .contacts__art {
    display: none;
  }

  .contact-form {
    padding: 24px;
  }

  .contacts__group p,
  .contacts__group a {
    font-size: 21px;
  }
}

@media (max-width: 700px) {
  .contacts__layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 36px;
  }

  .contacts__details {
    padding-top: 0;
  }

  .contact-form {
    width: 100%;
    max-width: 480px;
    justify-self: center;
  }

  .contact-form__title {
    font-size: 58px;
  }

  .contact-form__submit {
    font-size: 30px;
  }
}

@media (max-width: 600px) {
  .contacts {
    padding: 32px 0 40px;
  }

  .contacts__container {
    width: calc(100% - 32px);
    padding-inline: 12px;
  }

  .contacts__title {
    font-size: clamp(44px, 12cqw, 70px);
  }

  .contacts__subtitle {
    margin: 18px 0 32px;
    font-size: 19px;
  }

  .contacts__group h3 {
    font-size: 30px;
  }

  .contacts__group p,
  .contacts__group a {
    font-size: 19px;
  }
}
/* Верхнюю границу задаём смещением самого изображения */
/* Скрываем посторонний фрагмент над формой */
.contacts__art {
  clip-path: inset(3% 0 0 0);
}/* =========================
   ПОДВАЛ
   ========================= */

.footer {
  padding: 56px 0 64px;
  background: var(--white);
  color: var(--black);
  font-family: Arial, Helvetica, sans-serif;
}

.footer__container {
  container-type: inline-size;
  width: calc(100% - 48px);
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: 30px;
}

/* Общие колонки верхней и нижней частей */
.footer__top,
.footer__bottom {
  display: grid;
  grid-template-columns:
    minmax(0, 1.55fr)
    minmax(0, 1fr)
    minmax(0, 0.8fr);
  column-gap: 40px;
}

.footer__top {
  align-items: center;
  padding-bottom: 18px;
  border-bottom: 3px solid var(--red);
}

.footer__top > *,
.footer__bottom > * {
  min-width: 0;
}

.footer__heading {
  margin: 0 0 18px;
  font-size: clamp(28px, 2.4cqw, 36px);
  font-weight: 700;
  line-height: 1.15;
}

/* Временная текстовая версия логотипа */
.footer__logo {
  width: 224px;
  height: 68px;

  background-image: url("/maket.webp");
  background-repeat: no-repeat;
  background-size: 1536px auto;
  background-position: -41.6px -7742.4px;
}

.footer__description {
  margin: 22px 0 0;
  font-size: 13px;
  line-height: 1.4;
}

/* Телефоны */
.footer__phones .footer__heading {
  margin-bottom: 10px;
}

.footer__phones a {
  display: block;
  width: fit-content;
  color: var(--red);
  font-size: clamp(23px, 2.1cqw, 32px);
  font-weight: 700;
  line-height: 1.3;
}

.footer__button {
  justify-self: stretch;
  padding: 12px 10px;
  font-size: clamp(25px, 2.6cqw, 38px);
  white-space: normal;
  text-align: center;
}

/* Нижние колонки */
.footer__bottom {
  grid-template-areas:
    "contacts services info"
    "contacts legal legal";
  row-gap: 60px;
  padding-top: 22px;
  align-items: start;
}

.footer__contacts {
  grid-area: contacts;
}

.footer__services {
  grid-area: services;
}

.footer__info {
  grid-area: info;
}

.footer__details {
  margin: 24px 0 0;
  font-size: clamp(18px, 1.5cqw, 23px);
  line-height: 1.3;
}

.footer__details > div + div {
  margin-top: 28px;
}

.footer__details dt {
  font-weight: 700;
}

.footer__details dd {
  margin: 0;
  overflow-wrap: anywhere;
}

.footer__list {
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
  font-size: clamp(18px, 1.5cqw, 23px);
  line-height: 1.4;
}

.footer__legal {
  grid-area: legal;
  align-self: end;
  font-size: 13px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.footer__legal p {
  margin: 0;
}

.footer__phones a:hover,
.footer__details a:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* Планшет */
@media (max-width: 1100px) {
  .footer__top,
  .footer__bottom {
    column-gap: 28px;
    grid-template-columns:
      minmax(0, 1.2fr)
      minmax(0, 1fr);
  }

  .footer__top {
    row-gap: 24px;
  }

  .footer__button {
    grid-column: 2;
  }

  .footer__bottom {
    grid-template-areas:
      "contacts services"
      "contacts info"
      "legal legal";
    row-gap: 32px;
  }
}

/* Телефон */
@media (max-width: 700px) {
  .footer {
    padding: 36px 0 40px;
  }

  .footer__container {
    width: calc(100% - 32px);
    padding-inline: 12px;
  }

  .footer__top,
  .footer__bottom {
    grid-template-columns: minmax(0, 1fr);
  }

  .footer__top {
    gap: 28px;
    padding-bottom: 28px;
  }

  .footer__button {
    grid-column: auto;
    justify-self: start;
    max-width: 100%;
    padding: 12px 18px;
    font-size: 30px;
  }

  .footer__bottom {
    grid-template-areas:
      "contacts"
      "services"
      "info"
      "legal";
    gap: 32px;
    padding-top: 28px;
  }

  .footer__heading {
    font-size: 30px;
    margin-bottom: 16px;
  }

  .footer__phones a {
    font-size: clamp(23px, 6.5vw, 30px);
  }

  .footer__details,
  .footer__list {
    margin-top: 16px;
    font-size: 19px;
  }

  .footer__details > div + div {
    margin-top: 22px;
  }

  .footer__legal {
    font-size: 12px;
  }
}
/* =========================
   ОТЗЫВЫ: ЕДИНЫЙ ФОН НА КОМПЬЮТЕРЕ
   ========================= */

@media (min-width: 701px) {
  /* Убираем отдельную копию дезинсектора из первого экрана */
  .reviews__art {
    display: none;
  }

  /*
   Общая область трёх отзывов.
   Пропорции и расстояния теперь берутся из самого макета.
  */
  .reviews__grid {
    position: relative;
    isolation: isolate;
    container-type: inline-size;

    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    aspect-ratio: 1920 / 1210;
  }

  /*
   Одна картинка вместо трёх независимых обрезок.

   Основная область начинается на y = 6210
   в масштабе макета шириной 1920 px.

   Сверху дополнительно показываем 400 px рисунка,
   но только справа — без растрового заголовка.
  */
  .reviews__grid::before {
    content: "";
    position: absolute;
    z-index: 0;

    left: 0;
    right: 0;
    top: -20.833333cqw;
    bottom: 0;

    background-image: url("/maket.webp");
    background-repeat: no-repeat;
    background-size: 100% auto;
    background-position: left top -302.604167cqw;

    clip-path: polygon(
  64% 4%,
  100% 4%,
  100% 100%,
  0 100%,
  0 24.84472%,
  64% 24.84472%
);

    pointer-events: none;
  }

  /* Сохраняем доступные описания, убираем старые картинки */
  .reviews__grid > .review-card {
    position: relative;
    z-index: 1;
    width: auto;
    max-width: none;
    aspect-ratio: auto;
    background: transparent;
    overflow: visible;
  }

  .reviews__grid .review-card__shot {
    display: none;
  }
}
/* Заголовки отзывов поверх выступающего фонового слоя */
.reviews__title,
.reviews__subtitle {
  position: relative;
  z-index: 2;
}/* Ссылки нижнего меню */
.footer__list a:hover {
  color: var(--red);
  text-decoration: underline;
  text-underline-offset: 4px;
}

.footer__list a:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 4px;
}
/* Уточнение шапки и заголовка на телефоне */
@media (max-width: 700px) {
  .header__inner {
    flex-direction: column;
    gap: 14px;
    min-height: 0;
    padding: 18px 0;
  }

  .header .logo {
    flex: none;
    width: 205.5px;
    height: 57px;
  }

  .header .logo__image {
    background-size: 1440px auto;
    background-position: -51px -22.5px;
  }

  .header__phone {
    font-size: 22px;
  }

  .header__phone svg {
    width: 26px;
    height: 26px;
  }

  .header__button {
    font-size: 22px;
    padding: 10px 16px;
  }

  .header .nav {
    gap: 12px 20px;
  }

  .header .nav a {
    font-size: 18px;
  }

  .hero__content {
    padding-top: 20px;
  }

  .hero__title .hero__title-row {
    flex-direction: row;
    align-items: center;
    gap: 8px;
  }

  .hero__tagline {
    flex: 0 0 28%;
    margin: 0;
    font-size: clamp(12px, 3.1vw, 20px);
    line-height: 1.2;
  }
}
/* Последовательное расположение первого экрана на телефоне */
@media (max-width: 700px) {
  .hero__stage {
    display: flex;
    flex-direction: column;
    min-height: 0;
    padding-top: 20px;
  }

  .hero__stage::before {
    display: none;
  }

  .hero__content {
    display: contents;
  }

  .hero__title {
    position: relative;
    z-index: 2;
    order: 1;
  }

  .hero__button {
    order: 2;
    align-self: flex-start;
  }

    .hero__art {
    position: relative;
    inset: auto;
    order: 3;
    flex: none;
    align-self: flex-end;
    margin-top: 20px;

    clip-path: polygon(
      35% 0,
      100% 0,
      100% 100%,
      0 100%,
      0 85%,
      25% 65%
    );
  }

  .hero__license {
    order: 4;
    width: 100%;
    margin: 16px 0 24px;
    padding: 12px;
  }
}
/* Кнопка мобильного меню */
.menu-toggle {
  display: none;
}

@media (max-width: 700px) {
  .header.menu-ready .header__inner {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 16px 0;
  }

  .header.menu-ready .logo {
    order: 0;
  }

  .header.menu-ready .menu-toggle {
    order: 1;
    display: flex;
    flex: 0 0 48px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;

    width: 48px;
    height: 48px;
    padding: 0;
    border: 1px solid var(--red);
    border-radius: 4px;

    background: transparent;
    color: var(--white);
    cursor: pointer;
  }

  .menu-toggle span {
    display: block;
    width: 26px;
    height: 2px;
    background: currentColor;
    transition: transform 180ms ease, opacity 180ms ease;
  }

  .menu-toggle:focus-visible {
    outline: 3px solid var(--red);
    outline-offset: 4px;
  }

  /* Три полоски превращаются в крестик */
  .menu-toggle[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
  }

  .menu-toggle[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
  }

  .menu-toggle[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
  }

  /* Содержимое закрытого меню */
  .header.menu-ready .nav,
  .header.menu-ready .header__phone,
  .header.menu-ready .header__button {
    display: none;
  }

  /* Раскрытое меню */
  .header.menu-ready.is-menu-open .nav {
    order: 2;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    gap: 0;
    padding-top: 8px;
    border-top: 1px solid #333;
  }

  .header.menu-ready .nav a {
    padding: 12px 0;
    font-size: 22px;
  }

  .header.menu-ready.is-menu-open .header__phone {
    order: 3;
    display: inline-flex;
    width: 100%;
    padding: 8px 0;
  }

 .header.menu-ready.is-menu-open .header__button {
  display: none;
}

  .header.is-menu-open .nav,
  .header.is-menu-open .header__phone,
  .header.is-menu-open .header__button {
    animation: mobile-menu-appear 180ms ease-out;
  }
}

@keyframes mobile-menu-appear {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .menu-toggle span {
    transition: none;
  }

  .header.is-menu-open .nav,
  .header.is-menu-open .header__phone,
  .header.is-menu-open .header__button {
    animation: none;
  }
}
/* Полная сцена обработки и кнопка под рисунком */
@media (max-width: 700px) {
  .hero__art {
    order: 2;
    align-self: stretch;
    position: relative;
    inset: auto;
    flex: none;

    width: 100%;
    height: auto;
    aspect-ratio: 1220 / 1072;
    margin-top: 16px;

    container-type: inline-size;
    overflow: hidden;

    /* Исключаем надписи и кнопку из исходного макета */
    clip-path: polygon(
      48% 0,
      100% 0,
      100% calc(100% - 1px),
0 calc(100% - 1px),
      0 86%,
      4% 86%,
      4% 80%,
      30% 62%,
      45% 48%
    );
  }

  .hero__art img {
    position: absolute;
    width: 157.377049cqw;
    max-width: none;
    height: auto;
    left: -57.377049cqw;
    top: -11.147541cqw;
  }

  .hero__button {
    order: 3;
    align-self: stretch;
    margin-top: 16px;
    text-align: center;
  }

  .hero__license {
    order: 4;
    margin-top: 16px;
  }
}
/* Услуги: горизонтальное листание на телефоне */
@media (max-width: 700px) {
  .services__grid {
    display: flex;
    align-items: stretch;
    gap: 32px;
    min-width: 0;

    /* Место для выступающих чёрных плашек */
    margin-inline: -12px;
    padding: 12px 12px 20px;

    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 12px;

    scrollbar-width: thin;
    scrollbar-color: var(--red) #e5e5e5;
  }

  .services__grid > .service-card {
  flex: 0 0 65%;
  min-width: 0;

  scroll-snap-align: start;
  scroll-snap-stop: always;
}
.services__grid .service-card__title {
  font-size: clamp(20px, 5.5vw, 28px);
  min-height: 68px;
}

.services__grid .service-card__list {
  font-size: 14px;
  padding: 12px 12px 20px;
}

.services__grid .service-card__price strong {
  font-size: 42px;
}

  .services__grid:focus-visible {
    outline: 2px solid var(--red);
    outline-offset: 4px;
  }
}
/* Более компактные карточки услуг на телефоне */
@media (max-width: 700px) {
  .services__grid .service-card__title {
    min-height: 54px;
    padding: 8px 4px 12px;
  }

  .services__grid .service-card__ribbon {
    height: 26px;
    margin-bottom: 12px;
  }

  .services__grid .service-card__badge {
    transform: translate(-50%, -50%) scale(0.55);
  }

  .services__grid .service-card__list {
    min-height: 0;
    padding: 8px 12px 14px;
    line-height: 1.2;
  }

  .services__grid .service-card__list li + li {
    margin-top: 5px;
  }

  .services__grid .service-card__price {
    padding: 8px 6px;
  }

  .services__grid .service-card__price strong {
    font-size: 38px;
  }
}
/* Очищаем фон третьего отзыва на телефоне */
@media (max-width: 700px) {
  .review-card__shot--3 {
    clip-path: polygon(
      0 6.2%,
      6.8% 6.2%,
      6.8% 6.8%,

      41.9% 6.8%,
      41.9% 2.56%,
      60.4% 2.56%,
      60.4% 6.8%,

      92.1% 6.8%,
      92.1% 6.2%,
      100% 6.2%,

      100% 9%,
      98.7% 9%,
      98.7% 95.7%,
      100% 95.7%,

      100% 100%,
      0 100%,

      0 95.7%,
      0.75% 95.7%,
      0.75% 9%,
      0 9%
    );
  }
}
.reviews__swipe-hint {
  display: none;
}

/* Отзывы: горизонтальное листание на телефоне */
@media (max-width: 700px) {
  .reviews__subtitle {
    margin-bottom: 24px;
  }

  .reviews__swipe-hint {
    display: block;
    margin: 0 0 16px;
    color: var(--white);
    font-size: 14px;
    line-height: 1.4;
  }

  .reviews__grid {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    min-width: 0;

    padding-bottom: 16px;
    overflow-x: auto;

    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    scrollbar-color: var(--red) #333;
  }

  .reviews__grid > .review-card {
    flex: 0 0 65%;
width: 65%;
    max-width: none;
    min-width: 0;
    aspect-ratio: 532 / 1210;

    scroll-snap-align: start;
    scroll-snap-stop: always;
  }

  .reviews__grid:focus-visible {
    outline: 2px solid var(--red);
    outline-offset: 4px;
  }
}
/* Скрываем кнопку шапки на планшете */
@media (min-width: 701px) and (max-width: 1100px) {
  .header__button {
    display: none;
  }
}
/* Убираем тонкий стык под первым экраном */
@media (min-width: 701px) {
  .hero__stage::after {
    content: "";
    position: absolute;
    z-index: 3;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1px;
    background: var(--white);
    pointer-events: none;
  }
}
/* Услуги: лента на планшете */
@media (min-width: 701px) and (max-width: 1100px) {
  .services__grid {
    display: flex;
    align-items: stretch;
    gap: 28px;
    min-width: 0;

    margin-inline: -12px;
    padding: 12px 12px 20px;
    overflow-x: auto;

    scroll-snap-type: x mandatory;
    scroll-padding-inline: 12px;

    scrollbar-width: thin;
    scrollbar-color: var(--red) #e5e5e5;
  }

  .services__grid > .service-card {
    flex: 0 0 44%;
    min-width: 0;

    scroll-snap-align: start;
    scroll-snap-stop: always;
  }

  .services__grid .service-card__title {
    font-size: 28px;
    min-height: 68px;
  }
}

/* =========================
   МЯГКИЕ АНИМАЦИИ И МИКРОЭФФЕКТЫ
   ========================= */

/* Кнопки: небольшой подъём и световой блик */
.button,
.service-card__price {
  overflow: hidden;
  transition: translate 220ms ease, scale 220ms ease, filter 220ms ease, box-shadow 220ms ease;
}

/* Preserve the desktop hero button's absolute positioning. */
.button:not(.hero__button),
.service-card__price {
  position: relative;
}

@media (max-width: 700px) {
  .hero__button { position: relative; }
}

.button::after,
.service-card__price::after {
  content: "";
  position: absolute;
  top: -40%;
  bottom: -40%;
  left: -42%;
  width: 26%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.32), transparent);
  transform: skewX(-20deg);
  transition: left 520ms ease;
  pointer-events: none;
}

.button:not(:disabled):hover,
.service-card__price:hover {
  translate: 0 -2px;
  box-shadow: 0 10px 24px rgba(0,0,0,.16);
}

.button:not(:disabled):hover::after,
.service-card__price:hover::after {
  left: 118%;
}

.button:not(:disabled):active,
.service-card__price:active {
  translate: 0 0;
  scale: .985;
}

/* Навигация: подчёркивание вместо резкого переключения цвета */
.nav a,
.footer__list a {
  position: relative;
}

.nav a::after,
.footer__list a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -5px;
  height: 2px;
  background: var(--red);
  transition: right 220ms ease;
}

.nav a:hover::after,
.footer__list a:hover::after {
  right: 0;
}

/* Карточки получают немного глубины только на устройствах с мышью */
@media (hover: hover) and (pointer: fine) {
  .service-card,
  .guarantee-card,
  .offer-card,
  .faq-item {
    transition: translate 260ms cubic-bezier(.2,.8,.2,1), box-shadow 260ms ease;
  }

  .service-card:hover,
  .guarantee-card:hover,
  .offer-card:hover,
  .faq-item:hover {
    translate: 0 -6px;
    box-shadow: 0 18px 38px rgba(0,0,0,.10);
  }

  .service-card__badge,
  .guarantee-card__icon,
  .objects__icon {
    transition: translate 260ms ease, rotate 260ms ease, scale 260ms ease;
  }

  .service-card:hover .service-card__badge {
    scale: 1.05;
    rotate: -3deg;
  }

  .objects__item:hover .objects__icon,
  .guarantee-card:hover .guarantee-card__icon {
    translate: 0 -3px;
    rotate: -2deg;
  }
}

/* Первый экран: текст приходит слева, специалист — справа */
.motion-ready .hero__title > span,
.motion-ready .hero__button,
.motion-ready .hero__license {
  opacity: 0;
  transform: translate3d(-34px, 0, 0);
}

.motion-ready .hero__art {
  opacity: 0;
  transform: translate3d(58px, 0, 0) scale(1.025);
}

.hero-entered .hero__title > span,
.hero-entered .hero__button,
.hero-entered .hero__license,
.hero-entered .hero__art {
  opacity: 1;
  transform: translate3d(0,0,0) scale(1);
  transition-property: opacity, transform, translate, scale, box-shadow, filter;
  transition-duration: 720ms, 720ms, 220ms, 220ms, 220ms, 220ms;
  transition-timing-function: cubic-bezier(.18,.82,.24,1);
}

.hero-entered .hero__title > span:nth-child(1) { transition-delay: 80ms; }
.hero-entered .hero__title > span:nth-child(2) { transition-delay: 160ms; }
.hero-entered .hero__title > span:nth-child(3) { transition-delay: 240ms; }
.hero-entered .hero__title > span:nth-child(4) { transition-delay: 320ms; }
.hero-entered .hero__art { transition-delay: 180ms; }
.hero-entered .hero__button { transition-delay: 410ms, 410ms, 0ms, 0ms, 0ms, 0ms; }
.hero-entered .hero__license { transition-delay: 500ms; }

/* Появление секций при скролле */
.motion-ready .reveal {
  opacity: 0;
  transition: opacity 620ms ease var(--reveal-delay, 0ms),
              transform 620ms cubic-bezier(.2,.8,.2,1) var(--reveal-delay, 0ms),
              translate 260ms ease, scale 220ms ease, box-shadow 260ms ease;
}

.motion-ready .reveal--up { transform: translate3d(0, 34px, 0); }
.motion-ready .reveal--left { transform: translate3d(-38px, 0, 0); }
.motion-ready .reveal--right { transform: translate3d(38px, 0, 0); }

.motion-ready .reveal.is-visible {
  opacity: 1;
  transform: translate3d(0,0,0);
}

/* Шаги алгоритма: линия как будто дорисовывается */
.motion-ready .workflow-step__header {
  position: relative;
  border-bottom-color: transparent;
}

.motion-ready .workflow-step__header::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -3px;
  width: 100%;
  height: 3px;
  background: var(--black);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 560ms ease calc(var(--reveal-delay, 0ms) + 160ms);
}

.motion-ready .workflow-step.is-visible .workflow-step__header::after {
  transform: scaleX(1);
}

/* Ненавязчивая кнопка наверх */
.scroll-top {
  position: fixed;
  right: clamp(16px, 2vw, 30px);
  bottom: clamp(16px, 2vw, 30px);
  z-index: 30;

  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border: 0;
  border-radius: 50%;
  background: var(--red);
  color: var(--white);
  box-shadow: 0 12px 28px rgba(0,0,0,.22);
  cursor: pointer;

  font-family: var(--heading-font);
  font-size: 32px;
  line-height: 1;

  opacity: 0;
  visibility: hidden;
  transform: translateY(14px) scale(.9);
  transition: opacity 220ms ease, transform 220ms ease, visibility 220ms;
}

.scroll-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

.scroll-top:hover {
  transform: translateY(-3px) scale(1.04);
}

.scroll-top:active {
  transform: scale(.96);
}

.scroll-top:focus-visible {
  outline: 3px solid var(--black);
  outline-offset: 4px;
}

@media (max-width: 700px) {
  .scroll-top {
    width: 48px;
    height: 48px;
    font-size: 28px;
  }

  .hero-entered .hero__art {
    transition-delay: 260ms;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }

  .motion-ready .hero__title > span,
  .motion-ready .hero__button,
  .motion-ready .hero__license,
  .motion-ready .hero__art,
  .motion-ready .reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .motion-ready .workflow-step__header::after {
    transform: scaleX(1);
    transition: none;
  }

  .button,
  .service-card__price,
  .service-card,
  .guarantee-card,
  .offer-card,
  .faq-item,
  .scroll-top {
    transition: none !important;
  }

  .button::after,
  .service-card__price::after {
    display: none;
  }
}

/* Preserve the original disabled state and reduced-motion behavior. */
.button:disabled::after { display: none; }
@media (prefers-reduced-motion: reduce) {
  .button, .service-card__price, .service-card, .guarantee-card,
  .offer-card, .faq-item, .service-card__badge,
  .guarantee-card__icon, .objects__icon {
    translate: none !important;
    rotate: none !important;
    scale: none !important;
    transition: none !important;
  }
}
@media print {
  .motion-ready .reveal,
  .motion-ready .hero__title > span,
  .motion-ready .hero__art,
  .motion-ready .hero__button,
  .motion-ready .hero__license {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .scroll-top { display: none !important; }
}


/* Всплывающая форма заявки: те же поля и оформление, что в «Контактах». */
body.lead-modal-open {
  overflow: hidden;
}

.lead-modal {
  box-sizing: border-box;
  width: min(510px, calc(100% - 32px));
  max-width: 510px;
  max-height: calc(100vh - 32px);
  max-height: calc(100dvh - 32px);
  margin: auto;
  padding: 0;
  border: 0;
  background: var(--white);
  color: var(--black);
  overflow-y: auto;
  overscroll-behavior: contain;
  box-shadow: 0 18px 75px rgba(0, 0, 0, 0.35);
}

.lead-modal::backdrop {
  background: rgba(0, 0, 0, 0.78);
  backdrop-filter: blur(3px);
}

.lead-modal .contact-form {
  width: 100%;
  max-width: none;
  gap: 16px;
  padding: 36px 32px 28px;
}

.lead-modal .contact-form__title {
  font-size: clamp(42px, 8vw, 58px);
  padding-inline: 24px;
}

.lead-modal .contact-form__submit {
  font-size: clamp(24px, 5vw, 32px);
}

.lead-modal__close {
  position: absolute;
  z-index: 3;
  top: 10px;
  right: 10px;
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: var(--black);
  color: var(--white);
  font: 30px/1 Arial, sans-serif;
  cursor: pointer;
}

.lead-modal__close:hover {
  background: var(--red);
}

.lead-modal__close:focus-visible {
  outline: 3px solid var(--red);
  outline-offset: 3px;
}

@media (max-width: 600px) {
  .lead-modal {
    width: calc(100% - 20px);
    max-height: calc(100vh - 20px);
    max-height: calc(100dvh - 20px);
  }

  .lead-modal .contact-form {
    gap: 12px;
    padding: 46px 18px 20px;
  }

  .lead-modal .contact-form__title {
    font-size: clamp(40px, 11vw, 54px);
  }

  .lead-modal .contact-form__intro {
    margin-bottom: 2px;
    font-size: 14px;
  }

  .lead-modal .contact-form input,
  .lead-modal .contact-form textarea,
  .lead-modal .contact-form select,
  .lead-modal .contact-form__submit {
    min-height: 52px;
  }
}


/* Согласие на обработку персональных данных */
.contact-form__consent {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: -2px 0 0;
  color: #191919;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
  text-align: left;
}

.contact-form .contact-form__consent-input {
  flex: 0 0 20px;
  width: 20px;
  min-width: 20px;
  height: 20px;
  min-height: 20px;
  margin: 1px 0 0;
  padding: 0;
  border: 1px solid #191919;
  accent-color: var(--red);
  cursor: pointer;
}

.contact-form__consent a,
.contact-form__legal a,
.footer__legal-links a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.contact-form__consent a:hover,
.contact-form__legal a:hover,
.footer__legal-links a:hover {
  color: var(--red);
}

.contact-form__legal {
  margin: -10px 0 0;
  color: #555;
  font-size: 11px;
  line-height: 1.35;
  text-align: left;
}

.footer__legal-links {
  margin-bottom: 16px !important;
}

@media (max-width: 600px) {
  .lead-modal .contact-form__consent { font-size: 11px; }
  .lead-modal .contact-form__legal { font-size: 10px; }
}
