/* RESET CSS */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html,
body {
  min-height: 100vh;
}

body {
  line-height: 1;
  -webkit-font-smoothing: antialiased;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}

input,
button,
textarea,
select {
  font: inherit;
  border: none;
  outline: none;
  background: none;
}

button {
  cursor: pointer;
}

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

ul,
ol {
  list-style: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}
/* Загальний клас для Montserrat */
.montserrat-main {
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
}

/* Regular - 401 layer */
.montserrat-regular {
  font-family: "Montserrat", sans-serif;
  font-weight: 400;
  font-style: normal;
}

/* Medium - 225 layers */
.montserrat-medium {
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
  font-style: normal;
}

/* SemiBold - 44 layers */
.montserrat-semibold {
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  font-style: normal;
}

/* Bold - 129 layers */
.montserrat-bold {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-style: normal;
}

/* ExtraBold - 144 layers */
.montserrat-extrabold {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-style: normal;
}

/* Italic - 9 layers */
.montserrat-italic {
  font-family: "Montserrat", sans-serif;
  font-weight: 400; /* або інша вага, якщо Italic має бути жирним */
  font-style: italic;
}

body,
button,
input,
select,
textarea {
  font-family: "Montserrat", sans-serif;
}

:root {
  --container-width: 1440px;

  --font-main: "Montserrat", sans-serif;

  --color-light: #ffffff;
  --color-dark: #000000;
  --color-dblue: #0b0b33;
  --color-bg: #171717;
  --color-border-blue: #0254fd;
  --color-bg-blue: #091136;
  --color-red: #f40f3e;

  --fs-h3: clamp(12px, 4vw, 16px);
  --fs-h4: 20px;
  --fs-body: 16px;

  --lh: 1.5;
}

:root {
  /* 1. Від 320px до 768px (Ріст від 21px до 36px) */
  /* Швидкість росту тут висока: ~3.35vw */
  --fs-h1: clamp(21px, 3.348vw + 10.28px, 36px);
  --fs-h2: clamp(27px, calc(14.857px + 3.795vw), 44px);
}

@media (min-width: 768px) {
  :root {
    /* 2. Від 768px до 1200px (Ріст від 36px до 40px) */
    /* Тут ріст сповільнюється: ~0.93vw */
    --fs-h1: clamp(36px, 0.926vw + 28.89px, 40px);
  }
}

@media (min-width: 1200px) {
  :root {
    /* 3. Від 1200px до 1440px (Ріст від 40px до 48px) */
    /* Ріст знову прискорюється: ~3.33vw */
    --fs-h1: clamp(40px, 3.333vw + 0px, 48px);
    --fs-h2: clamp(40px, calc(-10px + 4.167vw), 50px);
  }
}

@media (min-width: 1440px) {
  :root {
    /* 4. Від 1440px до 1920px (Ріст від 48px до 60px) */
    /* Фінальний відрізок: 2.5vw */
    --fs-h1: clamp(48px, 2.5vw + 12px, 60px);
    --fs-h2: clamp(26px, 4vw, 50px);
  }
}

/* BASE */

/* ==========================================
   GLOBAL LAYOUT
   ========================================== */
body {
  background-color: var(--color-bg); /* Темний фон для всього сайту */
  color: var(--color-light); /* Білий текст за замовчуванням */
  font-family: var(--font-main); /* Шрифт Inter */
  font-size: 16px;
  line-height: 1.5;
}

.container {
  width: 100%;
  max-width: var(--container-width); /* 1440px */
  margin: 0 auto;
  padding: 0 15px; /* За замовчуванням мобілка */
}

@media (min-width: 768px) {
  .container {
    padding: 0 30px;
  }
}

@media (min-width: 1200px) {
  .container {
    padding: 0 100px; /* На 1200px (1200-200=1000px ширина контенту) */
  }
}

@media (min-width: 1440px) {
  .container {
    /* ТУТ УВАГА: Оскільки екран досяг 1440px, далі padding 
       можна взагалі не збільшувати. margin: 0 auto сам 
       відсуне контент від країв на великих моніторах. */
    padding: 0 170px;
  }
}
@media (min-width: 1920px) {
  .container {
    padding: 0 15px;
  }
}

/* Глобальний стиль для кнопок (у нас така в хедері) */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 9px 0;
  background-color: var(--color-red);
  color: var(--color-light);
  border-radius: 6px;
  transition: background-color 0.3s ease;
  width: 100%;
  max-width: 290px;
  font-size: 20px;
}

.btn:hover {
  background-color: #d00b33; /* Трохи темніший червоний для ховеру */
}
/* TYPO */

h1 {
  font-size: var(--fs-h1);
  font-weight: 800;
}
h2 {
  font-size: var(--fs-h2);
  font-weight: 600;
}
h3 {
  font-size: var(--fs-h3);
  font-weight: 600;
}
h4 {
  font-size: var(--fs-h4);
  font-weight: 500;
}

p {
  margin-bottom: 16px;
}

nav {
  text-transform: uppercase;
}

/* ==============================================================================================================================
   HEADER
   ============================================================================================================================== */
.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  background-color: rgba(23, 23, 23, 0.9);
  transition:
    background-color 0.3s ease,
    border-bottom 0.3s ease;
}

body {
  padding-top: 60px;
}

.header__inner {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  height: 60px;
}

.header__logo {
  width: 113px;
}

.header__social {
  display: none;
}

/* МОБІЛЬНЕ МЕНЮ */
.header__menu {
  position: fixed;
  top: 60px;
  left: 0;
  width: 100%;
  height: calc(100vh - 60px);
  background-color: var(--color-bg-blue);
  padding: 30px 20px;
  transform: translateX(-100%);
  transition: transform 0.3s ease-in-out;
  z-index: 99;
}
.header__menu .header__menu--wrapper {
  display: flex;
  flex-direction: column;
  gap: 25px;
  font-size: 20px;
  font-weight: 500;
  text-transform: uppercase;
}
.header__menu .header__menu--wrapper li a {
  text-transform: uppercase;
  font-size: 14px;
}

.header__menu.is-active {
  transform: translateX(0);
}

.header__social .social__item--mail {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 33px;
  height: 33px;
  overflow: hidden;
  border-radius: 50%;
  background-color: #fff;
}
.header__social .social__item--mail svg {
  width: 20px;
  height: 14px;
}

/* БУРГЕР */
.burger-btn {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 25px;
  height: 16px;
  background: transparent;
  border: none;
  cursor: pointer;
  z-index: 101;
}

.burger-btn span {
  display: block;
  width: 100%;
  height: 2.8px;
  background-color: var(--color-light);
  transition: 0.3s;
}

/* ==============================================================================================================================
   SECTION TOP 
   ============================================================================================================================== */
section.top {
  min-height: 470px;
  position: relative;
  overflow: hidden;
  z-index: 1;
  background-color: #091136;
}

section.top .top__inner {
  display: flex;
  flex-direction: column;
}
section.top .top__content {
  text-align: center;
  padding-top: 28px;
  margin-bottom: -40%;
  z-index: 2;
}
section.top .top__content h1 {
  text-transform: uppercase;
}
section.top .top__content p {
  font-size: clamp(14px, calc(11.143px + 0.893vw), 18px);
}
section.top .btn-wrapp {
  position: absolute;
  width: 100%;
  height: 187px;
  left: 0;
  bottom: 0;
  background: linear-gradient(
    180deg,
    rgba(23, 23, 23, 0) 0%,
    rgba(23, 23, 23, 1) 100%
  );
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-bottom: 20px;
}
section.top .top__img {
  display: flex;
  align-items: flex-end;
  width: 210%;
  margin-left: -55%;
  margin-bottom: -60%;
  z-index: -1;
}

section.top .top__img img {
  display: block;
  max-width: 100%;
  height: auto;
}

@media (min-width: 700px) {
  section.top .top__img {
    margin-left: -45%;
  }
  section.top .top__img img {
    /* На планшеті можна трохи підняти картинку, щоб вона не була такою "втопленою" */
    transform: translateY(2%);
  }
}

/* ==========================================
   TABLET (від 768px)
   ========================================== */

@media (min-width: 768px) {
  .header__inner {
    height: 80px;
  }

  body {
    padding-top: 80px; /* Збільшуємо відступ для контенту на ПК */
  }

  /* ВИПРАВЛЕНО: .header__menu замість .hheader__menu */
  .header__menu {
    position: static;
    height: auto;
    width: auto;
    background-color: transparent;
    transform: translateX(0);
    padding: 0;
  }
  .header__logo {
    width: 166px;
  }

  .header__menu .header__menu--wrapper {
    flex-direction: row;
    gap: 30px;
    font-size: 16px;
  }

  .header__social {
    display: flex;
    align-items: center;
    gap: 30px;
  }

  .header__soc-item {
    display: flex;
    align-items: center;
    gap: 10px;
  }

  .burger-btn {
    display: none;
  }

  section.top .top__inner {
    flex-direction: row;
  }
  section.top .top__content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    padding-top: 70px;
    padding-bottom: 150px;
    width: 37%;
    max-width: 540px;
    margin-bottom: 0;
  }
  section.top .top__content h1 {
    margin-bottom: 45px;
    line-height: 110%;
  }
  section.top .top__content p {
    margin-bottom: 60px;
    line-height: 110%;
    font-size: clamp(18px, calc(14.444px + 0.463vw), 20px);
  }
  section.top .btn-wrapp {
    position: relative;
    background: none;
    padding: 0;
    margin-top: 30px;
    height: auto;
    max-width: 250px;
  }
  section.top .top__img {
    margin: 0;
    width: 63%;
  }
  section.top .top__img img {
    position: absolute;
    max-width: none;
    width: 900px;
    transform: translate(-20%, 28%);
  }
}

@media (min-width: 1200px) {
  section.top .top__content {
    width: 35%;
    padding-top: 90px;
    padding-bottom: 188px;
  }
  section.top .top__content h1 {
    margin-bottom: 63px;
  }
  section.top .top__img img {
    width: 1130px;
    transform: translate(-17%, 28%);
  }
  section.top .top__content p {
    font-size: clamp(20px, calc(12.889px + 0.926vw), 24px);
  }
}

@media (min-width: 1440px) {
  section.top .top__content {
    padding-top: 136px;
    padding-bottom: 239px;
  }
  section.top .top__content h1 {
    margin-bottom: 70px;
  }
  section.top .top__content p {
    margin-bottom: 70px;
  }
  section.top .top__img img {
    width: 1260px;
    transform: translate(-14%, 28%);
  }
}
@media (min-width: 1920px) {
  section.top .top__content {
    padding-top: 119px;
    padding-bottom: 149px;
  }
  section.top .top__content h1 {
    margin-bottom: 60px;
    text-transform: capitalize;
  }
  section.top .top__content p {
    margin-bottom: 119px;
  }
  section.top .top__img img {
    width: 1410px;
    transform: translate(-9%, 35%);
  }
}
/* ==============================================================================================================================
   SECTION POSITIONS 
   ============================================================================================================================== */

.positions {
  padding: 40px 0;
  background-color: var(--color-light);
  position: relative;
}

h2 {
  color: var(--color-dark);
  text-align: center;
  font-weight: bold;
  font-size: var(--fs-h2);
}

.after--title__line {
  position: relative;
  width: 100%;
  max-width: 660px;
  height: 2px;
  background-color: var(--color-red);
  margin: auto;
}

.after--title__line::before,
.after--title__line::after {
  content: "";
  position: absolute;
  top: -2px;
  width: 6px;
  height: 6px;
  background-color: var(--color-red);
  transform: rotate(45deg);
}

.after--title__line::after {
  right: 0;
}

.positions__list {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-top: 30px;
}

.positions__list > div {
  flex-direction: column;
}

.positions .swiper-button-prev,
.positions .swiper-button-next {
  display: none;
}
.positions__item {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  gap: 10px 20px;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid rgba(0, 0, 0, 1);
}

/* Ховаємо картинку на мобілці і планшеті */
.positions__item-img {
  display: none;
}

.positions__item h3 {
  color: var(--color-dblue);
  font-size: var(--fs-h3);
  font-weight: 600;
  grid-column: 1 / 5;
  grid-row: 1 / 2;
  margin: 0;
  font-weight: 800;
}

.positions__item-link {
  grid-column: 5 / 7;
  grid-row: 1 / 2;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-color: var(--color-border-blue);
  border-style: solid;
  border-width: 1px;
  border-radius: 6px;
}
.positions__item-link span {
  display: flex;
  color: var(--color-border-blue);
  font-size: 0;
  width: 20px;
  height: 1px;
  background-color: var(--color-border-blue);
  position: relative;
}
.positions__item-link span::before,
.positions__item-link span::after {
  content: "";
  position: absolute;
  right: 2px;
  width: 1px;
  height: 5px;
  background-color: var(--color-border-blue);
}
.positions__item-link span::before {
  transform: rotate(45deg);
}
.positions__item-link span::after {
  transform: rotate(-45deg);
  top: -4px;
}

.positions__item .positions__item-info {
  color: var(--color-dark);
  font-size: var(--fs-body);
  grid-column: 1 / 6;
  grid-row: 2 / 3;
  display: block;
  gap: 15px;
}

.positions__item .positions__item-info span:first-child {
  border-right: 1px solid rgba(0, 0, 0, 1);
  padding-right: 10px;
  margin-right: 10px;
}
.positions .btn-wrapp {
  display: flex;
  justify-content: center;
  margin-top: 30px;
}

/* ==========================================
   TABLET (від 768px - підстав свій брейкпоінт)
   ========================================== */
@media (min-width: 768px) {
  .positions::before {
    content: "";
    position: absolute;
    display: flex;
    top: -38px;
    left: 0;
    width: 100%;
    height: 38px;
    background-color: var(--color-light);
    z-index: 2;
    border-radius: 50px 50px 0 0;
  }

  .positions__item--wrapp {
    background-color: #d1d2d6;
    border-radius: 14px;
  }

  .positions__list .positions__item {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    border: none;
    background-color: transparent;
    position: relative;
    overflow: hidden;
    height: 195px;
    color: var(--color-light);
  }
  .positions__list .positions__item h3,
  .positions__list .positions__item .positions__item-info {
    color: var(--color-light);
    font-weight: 500;
    line-height: 110%;
  }
  .positions__list .positions__item h3 {
    font-size: 22px;
  }
  .positions__list .positions__item .positions__item-info {
    font-size: 10px;
    display: none;
  }
  .positions__list .positions__item a {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
    border: none;
  }
  .positions__list > div {
    flex-direction: row;
  }

  .positions__item-img {
    display: flex;
    position: absolute;
    z-index: -1;
    width: 100%;
    top: 0;
  }

  .positions .swiper-button-prev,
  .positions .swiper-button-next {
    display: block;
  }
  .positions .btn-wrapp {
    justify-content: space-between;
  }
  .positions .btn-wrapp .swiper-btns {
    position: relative;
    width: 125px;
  }
}

/* ==========================================
   DESKTOP (від 1440px)
   ========================================== */
@media (min-width: 1440px) {
}

/* ==============================================================================================================================
   SECTION WHO WE 
   ============================================================================================================================== */

.who-we {
  background-color: var(--color-bg-blue);
  overflow: hidden; /* Обрізає все, що вилазить за межі секції (низ та боки) */
  padding-top: 34px; /* Зверху відступ є, знизу забираємо (буде на inner) */
}

.who-we__inner {
  /* НАЙГОЛОВНІШЕ: Це тримає кубок в межах 1440px, щоб він не літав по всьому монітору */
  position: relative;
  /* Твій точний відступ для мобілки від тексту до низу */
  padding-bottom: 210px;
}

.who-we__content {
  position: relative;
  z-index: 2; /* Текст завжди поверх усього */
}

.who-we h2 {
  margin-bottom: 20px;
  color: var(--color-light);
}

.who-we__text {
  margin-bottom: 15px;
  color: var(--color-light);
  font-size: clamp(14px, calc(9.714px + 1.339vw), 20px);
  line-height: 110%;
}

/* АБСОЛЮТНИЙ КУБОК (Мобілка - по центру знизу) */
.who-we__img {
  position: absolute;
  bottom: -205px;
  left: 40%;
  transform: translateX(-50%);
  width: 360px;
  z-index: 1;
}

.who-we__img img {
  width: 100%;
  height: auto;
  display: block;
  position: relative;
  z-index: 2; /* ВАЖЛИВО: Кубок поверх плями */
}

/* ЧЕРВОНА ПЛЯМА */
.who-we__img::before {
  content: "";
  position: absolute;
  top: 20%;
  left: 60%;
  transform: translate(-50%, -50%);
  width: 250px;
  height: 250px;
  background-color: var(--color-red);
  border-radius: 50%;
  filter: blur(140px);
  z-index: -1;
  opacity: 0.8;
}

/* ==========================================
   TABLET (від 768px)
   ========================================== */
@media (min-width: 768px) {
  .who-we {
    padding: 45px 0; /* Повертаємо класичні відступи секції */
  }

  .who-we__inner {
    padding-bottom: 0; /* Забираємо мобільну дірку знизу */
    min-height: 400px; /* Задаємо висоту, щоб кубку було де стати і він не наліз на текст */
    display: flex;
    align-items: center; /* Центруємо текст по вертикалі */
  }

  .who-we__content {
    max-width: 54%; /* Строго обмежуємо текст, щоб він не ліз на кубок */
  }

  .who-we__content h2 {
    text-align: left;
  }
  .who-we__img {
    left: auto;
    transform: none;
    right: -100px;
    bottom: -175px;
    width: 490px;
  }

  .who-we__img::before {
    width: 300px;
    height: 300px;
    filter: blur(100px);
  }
}

/* ==========================================
   DESKTOP (від 1200px)
   ========================================== */
@media (min-width: 1200px) {
  .who-we {
    padding: 80px 0;
  }

  .who-we__inner {
    /* min-height: 480px; */
  }

  .who-we__content {
    max-width: 55%;
  }
  .who-we__content h2 {
    margin-bottom: 50px;
  }
  .who-we__img {
    right: 0;
    bottom: 0;
    width: 510px;
    transform: translate(-5%, 34%);
  }
  .who-we__img::before {
    width: 550px;
    height: 550px;
    filter: blur(160px);
    opacity: 0.8;
    top: 40%;
  }
}

/* ==========================================
   DESKTOP LARGE (від 1440px)
   ========================================== */
@media (min-width: 1440px) {
  .who-we__content {
    max-width: 50%;
  }

  .who-we__img {
    right: -120px; /* Кубок солідно вилазить за 1440px контейнер */
    bottom: -80px;
    width: 750px; /* Максимальний розмір */
  }

  .who-we__img::before {
    width: 450px;
    height: 450px;
    filter: blur(140px); /* Розмазуємо пляму сильніше */
  }
}

/* ==============================================================================================================================
   SECTION WHY US 
   ============================================================================================================================== */
.why-us {
  padding: 40px 0;
  background-color: var(--color-light);
}
.WUSwiper {
  padding-bottom: 52px !important;
}
.WUSwiper .swiper-slide {
  color: var(--color-dark);
}
.WUSwiper .swiper-slide h3 {
  display: flex;
  align-items: center;
  align-items: center;
  font-size: 12px;
  line-height: 110%;
  font-weight: 800;
  background-color: var(--color-red);
  min-height: 100px;
  max-width: 230px;
  border-radius: 10px;
  padding: 10px;
  text-transform: uppercase;
  color: var(--color-light);
}

.WUSwiper .swiper-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
}
.WUSwiper .swiper-pagination .swiper-pagination-bullet {
  display: flex;
  background-color: var(--color-border-blue);
  opacity: 1;
}
.WUSwiper .swiper-pagination .swiper-pagination-bullet-active {
  background-color: var(--color-bg-blue);
  width: 12px;
  height: 12px;
}

/* ==========================================
   TABLET (від 768px)
   ========================================== */
@media (min-width: 768px) {
  .WUSwiper .swiper-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25%;
  }
  .WUSwiper .swiper-wrapper .swiper-slide {
    width: 32.5%;
    margin-bottom: 20px;
    font-size: 14px;
  }
  .WUSwiper .swiper-wrapper .swiper-slide h3 {
    max-width: 100%;
    border-radius: 20px;
    margin-bottom: 15px;
    font-size: 14px;
  }
}
/* ==========================================
   DESKTOP (від 1200px)
   ========================================== */
@media (min-width: 1200px) {
  .WUSwiper .swiper-wrapper {
    gap: 0.8%;
  }
  .WUSwiper .swiper-wrapper {
    justify-content: space-between;
  }
  .WUSwiper .swiper-wrapper .swiper-slide {
    width: 16%;
  }
  .WUSwiper .swiper-slide h3 {
    min-height: 140px;
  }
}

/* ==========================================
   DESKTOP LARGE (від 1440px)
   ========================================== */
@media (min-width: 1440px) {
  .WUSwiper .swiper-slide h3 {
    min-height: 166px;
  }
}

/* ==============================================================================================================================
   SECTION CONTACTS 
   ============================================================================================================================== */

section.contacts {
  background-color: var(--color-bg-blue);
  color: var(--color-light);
  padding-bottom: 30px;
}

section.contacts h2 {
  color: var(--color-light);
  margin-bottom: 15px;
}

section.contacts .after--title__line {
  margin-bottom: 30px;
}
section.contacts li {
  margin-bottom: 24px;
}
/* ==============================================================================================================================
   PAGE LIST CAREER
   ============================================================================================================================== */
.careers {
  padding: 40px 0;
  background-color: var(--color-light);
}

/* ==============================================================================================================================
   PAGE SINGLE CAREER
   ============================================================================================================================== */

.job-single {
  padding: 40px 0;
  background-color: var(--color-light);
  color: var(--color-dark);
}
/* ==============================================================================================================================
   SECTION FOOTER
   ============================================================================================================================== */

footer {
  padding: 30px 0 70px;
}

footer nav {
  display: flex;
  flex-direction: column;
  gap: 20px;
  align-items: flex-start;
}

footer nav li {
  margin-bottom: 20px;
}

footer .logo {
  display: flex;
  justify-content: center;
}
