/* import fonts */
@import url('https://fonts.googleapis.com/css2?family=Raleway:wght@100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@200..800&family=Outfit:wght@100..900&display=swap');

/* reset css */

* {
  padding: 0;
  margin: 0;
  border: 0;
}

*,
*:before,
*:after {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

:focus,
:active {
  outline: none;
}

a:focus,
a:active {
  outline: none;
}

nav,
footer,
header,
aside {
  display: block;
}

html,
body {
  height: 100%;
  width: 100%;
  font-style: 100%;
  line-height: 1;
  font-style: 14px;
  -ms-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  background: var(--background-dark);
}

input,
button,
textarea {
  font-family: inherit;
  background: transparent;
}

input::-ms-clear {
  display: none;
}

button {
  cursor: pointer;
}

button::-moz-focus-inner {
  padding: 0;
  border: 0;
}

a,
a:visited {
  text-decoration: none;
}

a:hover {
  text-decoration: none;
}

ul li {
  list-style-type: none;
}

img {
  vertical-align: top;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-style: inherit;
  font-weight: 400;
}

body {
  overflow-x: hidden;
}

/* ---------------------------- UI Kit ---------------------------- */

.primary__button {
  padding: 12px 56px;
  border-radius: 100px;
  display: flex;
  justify-content: center;
  align-items: center;
  background: var(--primary-blue);
  color: var(--white);
  font-weight: 800;
  line-height: 175%;
  letter-spacing: 0.01em;
  transition: all 0.5s ease, transform 0.3s ease;
  white-space: nowrap;
}

.secondary__button {
  padding: 8px 32px;
  border-radius: 6px;
  display: flex;
  justify-content: center;
  align-items: center;
  background: #1C1B2E;
  color: var(--white);
  font-size: 18px;
  font-weight: 800;
  line-height: 170%;
  letter-spacing: 0.01em;
}

.input {
  padding: 14px 20px;
  font-family: "Roboto", sans-serif;
  background: var(--white);
  font-size: 16px;
  color: #949494;
  border-radius: 6px;
  line-height: 120%;
}

.title {
  color: var(--primary-dark-blue);
  font-size: 50px;
  font-weight: 400;
  line-height: 135%;
  letter-spacing: 0.01em;
}

.secondary__text {
  color: var(--primary-dark-blue);
  font-family: "Outfit", sans-serif;
  font-size: 14px;
  line-height: 150%;
}

.label {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 16px;
  font-family: "Outfit", sans-serif;
  color: var(--primary-dark-blue);
  font-size: 14px;
  line-height: 24px;
}

.secondary__input {
  padding: 16px 24px;
  background: #D9D9D9;
  border-radius: 68px;
  font-family: "Outfit", sans-serif;
  color: var(--primary-dark-blue);
  font-size: 14px;
  line-height: 24px;
}

/* UI Kit responsive styles */

@media screen and (max-width: 1280px) {
  .secondary__button {
    padding: 8px 16px;
  }
}

@media screen and (min-width: 1024px) {
  .primary__button:hover {
    box-shadow: 4px 8px 20px 0 rgba(29, 184, 228, 0.8);
  }
}

@media screen and (max-width: 1280px) {
  .title {
    font-size: 36px;
  }
}

@media screen and (max-width: 1024px) {
  .title {
    font-size: 30px;
  }
}

@media screen and (max-width: 768px) {
  .title {
    font-size: 24px;
  }

  .label {
    gap: 8px;
  }

  .secondary__input {
    padding: 8px 12px;
  }
}

/* ---------------------------- layout ---------------------------- */

.container {
  max-width: 1440px;
  padding: 0 114px;
  display: flex;
  align-self: center;
  justify-content: center;
}

.inner__container {
  max-width: 1440px;
  display: flex;
  align-self: center;
  justify-content: center;
}

/* layout responsive styles */

@media screen and (max-width: 1280px) {
  .container {
    padding: 0 48px;
  }
}

@media screen and (max-width: 1024px) {
  .container {
    padding: 0 32px;
  }
}

@media screen and (max-width: 768px) {
  .container {
    padding: 0 24px;
  }
}

@media screen and (max-width: 640px) {
  .container {
    padding: 0 16px;
  }
}

/* ---------------------------- header ---------------------------- */

/* header styles */
.header {
  padding: 24px 96px;
  background: var(--white);
  display: flex;
  justify-content: center;
  font-family: "Outfit", sans-serif;
}

.header__container {
  max-width: 100%;
  width: 1440px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 32px;
}

.header__container__nav {
  padding-left: 96px;
  display: flex;
  gap: 56px;
}

.header__container__nav__item {
  position: relative;
  color: #3F3F3F;
  line-height: 175%;
  letter-spacing: 0.01em;
}

.header__container__nav__item.active {
  color: var(--primary-green);
}

.header__container__nav__item:before {
  display: block;
  content: '';
  width: 0;
  height: 3px;
  left: 0;
  bottom: -3px;
  border-radius: 16px;
  position: absolute;
  background: var(--primary-green);
  transition: all 0.5s ease, transform 0.3s ease;
}

.header__container__nav__item:hover:before {
  width: 100%;
}

.header__container__right {
  display: flex;
  align-items: center;
  gap: 28px;
}

.header__container__right__linkedin {
  width: 28px;
  height: 28px;
  display: flex;
  justify-content: center;
  align-items: center;
  border: 1px solid transparent;
  border-radius: 50%;
  transition: all 0.3s ease;
}

.header__container__right__linkedin>img {
  width: 16px;
  height: 16px;
}

.header__container__right__phone__number {
  display: flex;
  align-items: center;
  gap: 8px;
}

.header__container__right__phone__number__text {
  color: #3F3F3F;
  font-size: 18px;
  font-weight: 500;
  line-height: 170%;
  letter-spacing: 0.01em;
  white-space: nowrap;
}

.header__container__end {
  display: flex;
  align-items: center;
  gap: 32px;
}

/* header responsive styles */
@media screen and (min-width: 1024px) {
  .header__container__right__linkedin:hover {
    border: 1px solid var(--primary-dark-blue);
  }
}

@media screen and (min-width: 1281px) {
  .header__container__end {
    display: none;
  }
}

@media screen and (max-width: 1440px) {
  .header {
    padding: 24px 48px;
  }

  .header__container__nav {
    padding-left: 32px;
  }
}

@media screen and (max-width: 1280px) {
  .header__container__image {
    width: 200px;
  }

  .header__container__nav,
  .header__container__right__linkedin,
  .header__container__right_cla {
    display: none;
  }
}

@media screen and (max-width: 1024px) {
  .header {
    padding: 24px 32px;
  }
}

@media screen and (max-width: 768px) {
  .header {
    padding: 24px;
  }
}

@media screen and (max-width: 640px) {
  .header {
    padding: 16px;
  }

  .header__container__image {
    width: 150px;
  }

  .header__container__right__phone__number {
    display: none;
  }

  .header__container__end .mobile__nav__contacts {
    display: none;
  }
}

/* hamburger menu styles */

.hamburger {
  display: none;
  flex-direction: column;
  justify-content: space-between;
  width: 32px;
  height: 21px;
  cursor: pointer;
}

.hamburger span {
  display: block;
  height: 3px;
  background: var(--primary-green);
  border-radius: 3px;
  transition: all 0.3s ease-in-out;
}

.hamburger span:nth-child(2) {
  width: 60%;
  align-self: flex-end;
}

.mobile__nav {
  display: none;
  flex-direction: column;
  gap: 8px;
  position: absolute;
  top: 78px;
  left: 0;
  width: 100%;
  background: var(--white);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  padding: 16px;
}

.mobile__nav__list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.mobile__nav>.primary__button {
  margin-top: 16px;
  width: fit-content;
}

.mobile__nav__list__item {
  color: #3F3F3F;
  font-size: 18px;
  font-weight: 500;
}

.mobile__nav__contacts {
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: space-evenly;
  gap: 32px;
}

.mobile__nav__contacts.mobile {
  margin-top: 16px;
}

.mobile__nav__contacts__phone__number {
  display: flex;
  align-items: center;
  gap: 8px;
}

.mobile__nav__contacts__phone__number__text {
  color: #3F3F3F;
  font-size: 18px;
  font-weight: 500;
}

@media screen and (max-width: 640px) {
  .hamburger {
    width: 24px;
    height: 15px;
  }

  .hamburger span {
    height: 2px;
  }

  .mobile__nav {
    top: 60px;
  }

  .mobile__nav>.primary__button {
    width: 100%;
  }
}

@media screen and (min-width: 641px) {
  .mobile__nav__contacts.mobile {
    display: none;
  }
}

/* Header responsive styles */
@media screen and (max-width: 1280px) {
  .hamburger {
    display: flex;
  }

  .header__container__right__phone__number {
    display: none;
  }
}

@media screen and (max-width: 1024px) {

  .header__container__nav,
  .header__container__right_cla,
  .header__container__right__linkedin {
    display: none;
  }
}

/* hamburger menu animation */
.hamburger.active span:nth-child(1) {
  transform: rotate(45deg) translateY(12px);
}

.hamburger.active span:nth-child(2) {
  opacity: 0;
}

.hamburger.active span:nth-child(3) {
  transform: rotate(-45deg) translateY(-12px);
}

.mobile__nav.active {
  display: flex;
  animation: slideDown 0.3s ease-in-out;
}

@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-100px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media screen and (max-width: 640px) {
  .hamburger.active span:nth-child(1) {
    transform: rotate(45deg) translateY(9px);
  }

  .hamburger.active span:nth-child(3) {
    transform: rotate(-45deg) translateY(-9px);
  }
}

/* ---------------------------- footer ---------------------------- */
.footer {
  padding: 128px 114px 32px;
  background: linear-gradient(123.43deg, #1EB8E4 22.97%, #BBCD1D 87.64%);
  display: flex;
  justify-content: center;
  font-family: "Outfit", sans-serif;
  overflow: hidden;
}

.footer__container {
  max-width: 1440px;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 80px;
}

.footer__container__top {
  display: flex;
  justify-content: space-between;
}

.footer__container__top__company__details {
  max-width: 365px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.footer__container__top__company__details__description,
.footer__container__top__block__links__list__item,
.footer__container__top__mailings__description {
  color: var(--white);
  font-weight: 500;
  line-height: 150%;
}

.footer__container__top__company__details__social__media__icons {
  display: flex;
  align-items: center;
  gap: 12px;
}

.footer__container__top__company__details__social__media__icons__item {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid var(--white);
  display: flex;
  justify-content: center;
  align-items: center;
}

.footer__container__top__block__links {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.footer__container__top__block__links__title,
.footer__container__top__mailings__title {
  color: var(--white);
  font-size: 24px;
  font-weight: 700;
  line-height: 170%;
}

.footer__container__top__block__links__list {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.footer__container__top__mailings {
  max-width: 300px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.footer__container__top__mailings__subscription {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}

.footer__container__top__mailings__subscription__input {
  width: 300px;
}

.footer__container__bottom {
  position: relative;
  display: flex;
  justify-content: center;
}

.footer__container__bottom::before {
  position: absolute;
  content: "";
  top: -20px;
  left: -114px;
  width: 120%;
  height: 1px;
  background: var(--white);
}

.footer__container__bottom__copyright {
  color: var(--white);
  font-weight: 500;
  line-height: 120%;
}

/* footer responsive styles */
@media screen and (max-width: 1280px) {
  .footer {
    padding: 128px 48px 32px;
  }

  .footer__container__top {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 32px 48px;
  }

  .footer__container__top__company__details img {
    width: 70%;
  }
}

@media screen and (max-width: 1024px) {
  .footer {
    padding: 128px 32px 32px;
  }
}

@media screen and (max-width: 768px) {
  .footer {
    padding: 128px 24px 32px;
  }

  .footer__container__top {
    display: grid;
    grid-template-rows: auto;
    gap: 24px;
  }

  .footer__container__top__company__details {
    grid-row: 1;
    grid-column: span 2;
  }

  .footer__container__top__company__details img {
    width: 60%;
  }

  .footer__container__top__block__links {
    width: 100%;
    grid-row: 2;
    gap: 8px;
  }

  .footer__container__top__mailings {
    grid-row: 3;
    grid-column: span 2;
  }
}

@media screen and (max-width: 640px) {
  .footer {
    padding: 128px 16px 24px;
  }

  .footer__container__top__company__details {
    width: 80%;
    max-width: none;
  }

  .footer__container__top__block__links__title,
  .footer__container__top__mailings__title {
    font-size: 20px;
  }

  .footer__container__top__mailings {
    max-width: none;
    width: 100%;
  }

  .footer__container__top__mailings__subscription>button {
    width: 100%;
  }

  .footer__container__top__mailings__subscription__input {
    width: 100%;
  }

  .footer__container__bottom__copyright {
    text-align: center;
  }

  .footer__container__bottom::before {
    left: -16px;
  }
}

@media screen and (max-width: 425px) {
  .footer__container__top__company__details img {
    width: 80%;
  }
}

/* sections */

main {
  font-family: "Manrope", sans-serif;
  display: flex;
  flex-direction: column;
  gap: 64px;
}

:root {
  --white: #fff;
  --black: #000;
  --primary-blue: #1DB8E4;
  --primary-green: #6CC382;
  --primary-gray: #575757;
  --primary-dark-blue: #11173B;
  --border: #B5B5B5;
  --primary-gray-bg-section: #F5F5F5;
}