/* ════════════════════════════════════════════════
   Hero Section
   ─────────────────────────────────────────────
   Абсолютно позиционированы только те элементы,
   которые реально выходят за пределы container:
   · hero__bg     — фон на всю ширину экрана
   · hero__blob   — декоративные оверлеи
   · hero__worker — фото выходит за правый край container

   Карточка и бейджи — в нормальном потоке внутри .container
   ════════════════════════════════════════════════ */

.hero {
  position: relative;
  overflow: hidden;
}

.hero .container {
  position: relative;
}

.hero__wrapper {
  overflow: hidden;
  max-height: 716px;
  position: relative;
  border-radius: 0 0 50px 50px;

  @media (max-width: 1024px) {
    border-radius: 0 0 40px 40px;
  }

  @media (max-width: 768px) {
    border-radius: 0 0 30px 30px;
    max-height: 613px;
  }

  @media (max-width: 480px) {
    border-radius: 0 0 20px 20px;
    max-height: 770px;
    height: 770px;
  }

  @media (max-width: 360px) {
    max-height: 650px;
    height: 650px;
  }
}

/* ── Background image ────────────────────────── */
.hero__bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 716px;
  overflow: hidden;
  z-index: 0;

  @media (max-width: 1024px) {
    height: 598px;
  }

  @media (max-width: 768px) {
    height: 633px;
  }

  @media (max-width: 480px) {
    height: 770px;
  }

  @media (max-width: 360px) {
    height: 649px;
  }
}

.hero__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;

  @media (max-width: 480px) {
    object-position: left bottom;
  }
}

/* ── Decorative blobs ────────────────────────── */
.hero__blob {
  position: absolute;
  border-radius: 20px;
  backdrop-filter: blur(10px);
  z-index: 1;
}

.hero__blob--1 {
  top: 48px;
  left: -10px;
  width: 270px;
  height: 270px;
  background: rgba(30, 58, 138, 0.2);

  @media (max-width: 1024px) {
    top: 30px;
    /* left: 40px; */
    width: 200px;
    height: 200px;
  }

  @media (max-width: 768px) {
    top: 20px;
    /* left: 20px; */
    width: 180px;
    height: 180px;
    border-radius: 10px;
  }

  @media (max-width: 480px) {
    display: none;
  }
}

.hero__blob--2 {
  top: 258px;
  left: 803px;
  width: 180px;
  height: 180px;
  background: rgba(42, 139, 234, 0.2);
  border-radius: 10px;
  z-index: 4;

  @media (max-width: 1024px) {
    top: 180px;
    left: 583px;
    width: 130px;
    height: 130px;
  }

  @media (max-width: 768px) {
    top: 283px;
    left: 451px;
    width: 100px;
    height: 100px;
  }

  @media (max-width: 480px) {
    display: none;
  }
}

.hero__blob--3 {
  top: 438px;
  left: 1240px;
  width: 110px;
  height: 110px;
  background: rgba(30, 58, 138, 0.2);
  border-radius: 10px;

  @media (max-width: 1024px) {
    top: 268px;
    left: 857px;
    width: 90px;
    height: 90px;
  }

  @media (max-width: 768px) {
    top: 396px;
    left: 658px;
    width: 50px;
    height: 50px;
  }

  @media (max-width: 480px) {
    display: none;
  }
}

/* ── Worker photo ────────────────────────────── */
/* Выходит за правый край .container, поэтому absolute */
.hero__worker {
  position: absolute;
  bottom: 0;
  left: 832px;
  width: 519px;
  height: 668px;
  object-fit: contain;
  object-position: bottom;
  z-index: 5;
  pointer-events: none;

  @media (min-width: 1440px) {
    left: auto;
    right: 89px;
  }

  @media (max-width: 1024px) {
    top: 50px;
    left: 559px;
    width: 425px;
    height: 550px;
  }

  @media (max-width: 768px) {
    top: 166px;
    left: 394px;
    width: 353px;
    height: 457px;
  }

  @media (max-width: 480px) {
    top: auto;
    bottom: 30px;
    left: 240px;
    width: 240px;
    height: 346px;
  }

  @media (max-width: 360px) {
    display: none;
  }
}

/* ════════════════════════════════════════════════
   Content in normal flow (inside .container)
   ════════════════════════════════════════════════ */

/* Hero scene:
   padding-top = расстояние от верха страницы до верхнего края карточки
   (шапка фиксированная, смотрим на y-координату карточки в Figma)
   min-height = расстояние от верха до начала бейджей
   (чтобы бейджи оказались ниже фоновой картинки)
*/
.hero__scene {
  position: relative;
  z-index: 2;
  padding-top: 90px;
  min-height: 779px;

  @media (max-width: 1024px) {
    padding-top: 50px;
    min-height: 595px;
  }

  @media (max-width: 768px) {
    padding-top: 40px;
    min-height: 632px;
  }

  @media (max-width: 480px) {
    padding-top: 50px;
    min-height: 528px;
    display: flex;
    justify-content: center;
  }

  @media (max-width: 360px) {
    padding-top: 40px;
    min-height: 500px;
  }
}

/* ── White content card ──────────────────────── */
.hero__card {
  background: var(--color-white);
  border-radius: 20px;
  padding: 30px;
  display: flex;
  flex-direction: column;
  gap: 30px;
  max-width: 900px;
  margin-left: 30px;

  @media (max-width: 1024px) {
    padding: 20px;
    max-width: 660px;
    gap: 20px;
  }

  @media (max-width: 768px) {
    max-width: 660px;
    padding: 20px;
    margin-left: 0;
  }

  @media (max-width: 480px) {
    max-width: 440px;
    width: 100%;
    max-height: 528px;
  }

  @media (max-width: 360px) {
    max-width: 440px;
    padding: 15px;
    align-items: center;
    text-align: center;
  }
}

.hero__card-texts {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.hero__title {
  font-size: var(--fs-h1);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
  color: var(--color-black);
}

.hero__subtitle {
  max-width: 580px;
  font-size: var(--fs-h3);
  font-weight: var(--fw-medium);
  line-height: var(--lh-tight);
  color: var(--color-black);
}

.hero__desc {
  max-width: 655px;
  font-size: var(--fs-body-lg);
  font-weight: var(--fw-regular);
  line-height: var(--lh-base);
  color: var(--color-black);
  opacity: 0.6;

  @media (max-width: 1024px) {
    max-width: 524px;
  }

  @media (max-width: 768px) {
    max-width: 432px;

    br {
      display: none;
    }
  }

  @media (max-width: 480px) {
    max-width: 350px;
    font-size: var(--fs-body-sm);
  }
}

/* ── CTA group ───────────────────────────────── */
.hero__cta-group {
  display: flex;
  flex-direction: column;
  gap: 10px;

  @media (max-width: 360px) {
    width: 100%;
    align-items: center;
  }
}

.hero__cta {
  justify-content: space-between;
  width: 348px;
  height: 62px;

  @media (max-width: 1024px) {
    width: 300px;
    height: 50px;
  }

  @media (max-width: 480px) {
    width: 250px;
  }

  @media (max-width: 360px) {
    width: 100%;
  }
}

.hero__cta-note {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-primary);
  font-size: var(--fs-body);
  font-weight: var(--fw-medium);
  line-height: var(--lh-base);
  color: var(--color-black);

  @media (max-width: 1024px) {
    font-size: var(--fs-body-sm);
  }
}

/* ════════════════════════════════════════════════
   Trust badges — нормальный поток после сцены
   ════════════════════════════════════════════════ */

/*
  Раскладка по брейкпоинтам:
  ≥1025 → 4 в ряд,  icon+text горизонтально,  h 97px
  1024  → 4 в ряд,  icon сверху / text снизу,  h 154px
  768   → 2×2,      icon+text горизонтально,   h 97px
  480   → 2×2,      icon сверху / text снизу,  h 144px
  360   → 1 столбец, icon+text горизонтально,  h 97px
*/
.hero__badges {
  display: flex;
  gap: 20px;
  padding-bottom: 20px;
  margin-top: -50px;
  z-index: 5;
  position: relative;

  @media (max-width: 768px) {
    flex-wrap: wrap;
  }

  @media (max-width: 480px) {
    margin-top: -75px;
  }

  @media (max-width: 360px) {
    flex-direction: column;
    margin-top: -55px;
  }
}

/* ── Shared trust badge ──────────────────────── */
.trust-badge {
  flex: 1 0 0;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 20px;
  min-width: 0;
  padding: 20px;
  background: var(--color-grey);
  border-radius: 10px;
  box-shadow: 0 3px 5px rgba(167, 168, 169, 0.35);
}

/* 1024: 4 колонки, icon сверху */
@media (max-width: 1024px) and (min-width: 769px) {
  .trust-badge {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-height: 154px;
  }
}

/* 768: 2×2, горизонтально */
@media (max-width: 768px) and (min-width: 481px) {
  .trust-badge {
    flex: 1 1 calc(50% - 10px);
    min-height: 97px;
  }
}

/* 480: 2×2, icon сверху */
@media (max-width: 480px) and (min-width: 361px) {
  .trust-badge {
    flex: 1 1 calc(50% - 10px);
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-height: 144px;
    padding: 15px;
  }
}

/* 360: 1 столбец, горизонтально */
@media (max-width: 360px) {
  .trust-badge {
    flex: 1 1 100%;
    min-height: 97px;
  }
}

.trust-badge__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 60px;
  height: 60px;
  background: var(--color-white);
  border-radius: 5px;
  padding: 10px;

  @media (max-width: 1024px) {
    max-width: 40px;
    max-height: 40px;
    padding: 6px;
  }
}

.trust-badge__icon img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.trust-badge__text {
  font-family: var(--font-primary);
  font-size: var(--fs-body-sm);
  font-weight: var(--fw-medium);
  line-height: var(--lh-base);
  color: var(--color-black);
}