/* ==========================================================================
   home.css — home page sections
   ========================================================================== */

/* ---- Hero ---------------------------------------------------------------- */
.hero--home { padding: 200px 0 360px; }
.hero--home::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 112px;
  background: url("../media/2024/05/Vector-1.png") no-repeat center / 100% 100%;
}
.hero--home .hero__content {
  max-width: calc(900px + 2 * var(--gutter));
  margin-inline: auto;
  padding: 0 var(--gutter);
  text-align: center;
}
.hero--home .hero__title {
  font-size: 48px;
  line-height: 1.2;
  margin: 0 0 20px;
}
/* One sentence per line on desktop, as on the original site; natural wrapping on smaller screens. */
.hero__line { display: block; }
.hero--home p { margin: 0 0 16px; }
.hero--home .btn { margin-top: 38px; }

/* The team/target animation overlaps the bottom of the hero. */
.hero-animation {
  position: relative;
  z-index: 2;
  max-width: calc(var(--container) + 2 * var(--gutter));
  margin: -316px auto 0;
  padding: 0 var(--gutter);
}
.lottie--hero { --lottie-ratio: 1046 / 891; }

@media (max-width: 1200px) {
  .hero--home { padding: 150px 0 110px; }
  .hero-animation { margin-top: -120px; }
}
@media (max-width: 980px) {
  .hero--home { padding: 50px 0 40px; }
  .hero--home::after { height: 60px; }
  .hero--home .hero__title { font-size: 30px; }
  .hero__line { display: inline; }
  .hero-animation { margin-top: -30px; }
}
@media (max-width: 600px) {
  .hero--home .hero__title { font-size: 26px; }
  .hero--home .btn { margin-top: 10px; }
}

/* ---- Feature rows (Discover / Consulting / Cloud) ----------------------- */
.feature { padding: 100px 0 54px; }
.feature--alt { background-color: var(--bg-alt); }
.feature--discover { padding-bottom: 100px; background-image: url("../media/2024/05/Vector-277.png"); background-repeat: no-repeat; background-position: right bottom; }
.feature--consulting { padding-top: 120px; background-image: url("../media/2024/05/Vector-276.png"); background-repeat: no-repeat; background-position: right top; background-size: 100% auto; }

.feature__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}
.feature__text h2 { font-size: 37px; line-height: 1.3; margin: 0 0 16px; }
.feature__text p { font-size: 16px; line-height: 1.5; margin: 0 0 16px; }
.feature__text p:last-child { margin-bottom: 0; }
.feature__text em { font-weight: 600; }
.feature__media .lottie { --lottie-ratio: 1 / 1; }

@media (max-width: 980px) {
  .feature { padding: 60px 0 40px; }
  .feature--discover { padding-bottom: 40px; }
  .feature__inner { grid-template-columns: 1fr; gap: 24px; }
  .feature--media-first .feature__media { order: 2; }
  .feature__text h2 { font-size: 30px; }
  .feature__media { max-width: 480px; margin-inline: auto; }
}
@media (max-width: 600px) {
  .feature__text h2 { font-size: 24px; }
}

/* ---- Our approach (4 cards) --------------------------------------------- */
.approach { padding: 100px 0 54px; }
.approach__title {
  max-width: 687px;
  margin: 0 auto 30px;
  font-size: 48px;
  line-height: 1.3;
  font-weight: 700;
  text-align: center;
}
.approach__title::before { left: 50%; margin-left: -300px; }

.approach__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px 60px;
  list-style: none;
}
.approach-card {
  padding: 34px 45px 30px;
  background: var(--white);
  box-shadow: var(--shadow-card);
  border-bottom: 4px solid var(--green);
}
.approach-card img { width: 104px; height: 104px; margin-bottom: 28px; }
.approach-card h3 { font-size: 28px; line-height: 1; margin: 0 0 14px; color: var(--green); }
.approach-card p { font-size: 14px; line-height: 1.7; color: var(--text-soft); }
.approach-card--orange { border-bottom-color: var(--orange); }
.approach-card--orange h3 { color: var(--orange); }

@media (max-width: 980px) {
  .approach { padding: 40px 0 30px; }
  .approach__title { font-size: 30px; margin-bottom: 24px; }
  .approach__title::before { left: 0; margin-left: 0; }
  .approach__grid { grid-template-columns: 1fr; gap: 28px; }
  .approach-card { padding: 34px 30px 30px; }
}
@media (max-width: 600px) {
  .approach__title { font-size: 24px; }
}

/* ---- Promo band ---------------------------------------------------------- */
.promo {
  position: relative;
  padding: 100px 0;
  margin: 200px 0 100px;
  background: var(--green) url("../media/2024/05/image-4.png") no-repeat center / cover;
  color: var(--white);
}
.promo__content {
  position: relative;
  z-index: 1;
  max-width: 840px;
  margin-inline: auto;
  padding: 0 var(--gutter);
  text-align: center;
}
.promo__title { color: var(--white); font-size: 48px; line-height: 1.2; margin: 0 0 24px; }
.promo p { margin: 0 0 16px; font-size: 16px; line-height: 1; }
.promo .btn { margin-top: 12px; }

.promo__animation {
  position: absolute;
  width: 330px;
  z-index: 2;
  pointer-events: none;
}
.promo__animation--top { top: -200px; left: 120px; }
.promo__animation--top .lottie { --lottie-ratio: 923 / 845; }
.promo__animation--bottom { bottom: -110px; right: 120px; }
.promo__animation--bottom .lottie { --lottie-ratio: 770 / 902; }

@media (max-width: 1200px) {
  .promo__animation { width: 190px; }
  .promo__animation--top { top: -120px; }
  .promo__animation--bottom { bottom: -60px; right: 0; }
}
@media (max-width: 980px) {
  .promo { padding: 60px 0; margin: 40px 0 60px; }
  .promo__title { font-size: 30px; }
}
@media (max-width: 767px) {
  .promo { padding: 50px 0; margin: 0; }
  .promo__animation--top { display: none; }
  .promo__animation--bottom { width: 180px; bottom: -40px; }
}
@media (max-width: 600px) {
  .promo__title { font-size: 24px; }
}

/* ---- Partners ("Better Together") --------------------------------------- */
.partners { padding: 50px 0 54px; background: var(--bg-soft); }
.partners__title {
  font-family: var(--font-alt);
  font-size: 42px;
  line-height: 1;
  margin: 0 0 40px;
  text-align: center;
}
@media (max-width: 980px) {
  .partners__title { font-size: 30px; margin-bottom: 24px; }
}
