/* Fluid sizing and module artwork for large screens through mobile. */

:root {
  --landing-page-gutter: clamp(18px, 3.2vw, 76px);
  --landing-grid-gap: clamp(14px, 1.15vw, 24px);
}

.navbar-container,
.hero-content,
.stats-container,
.container,
.steps-container,
.pricing-grid,
.footer-container {
  width: 100%;
  max-width: none;
}

.navbar-container {
  padding-left: var(--landing-page-gutter);
}

.hero {
  padding: clamp(118px, 8vw, 150px) var(--landing-page-gutter) clamp(52px, 4vw, 76px);
}

.hero-main {
  grid-template-columns: minmax(0, 1.08fr) minmax(420px, 0.92fr);
  gap: clamp(38px, 4.6vw, 96px);
}

.hero-copy,
.hero h1,
body.light-theme .hero h1,
.hero-description {
  max-width: none;
}

.hero h1,
body.light-theme .hero h1 {
  font-size: clamp(46px, 3.45vw, 74px);
}

.hero-description {
  width: min(100%, 820px);
}

.hero-visual {
  min-height: clamp(430px, 29vw, 620px);
}

.hero-visual-image {
  width: min(96%, 860px);
  height: 88%;
}

.hero .hero-downloads-cards {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--landing-grid-gap);
}

.stats-section {
  padding-inline: var(--landing-page-gutter);
}

.section {
  padding: clamp(76px, 5vw, 106px) var(--landing-page-gutter);
}

.section-header {
  width: min(100%, 960px);
  max-width: none;
  margin-bottom: clamp(38px, 3vw, 56px);
}

.features-grid,
.modules-grid,
.steps-container,
.pricing-grid,
.testimonials-grid {
  gap: var(--landing-grid-gap);
}

.features-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.modules-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.module-card,
body.light-theme .module-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: clamp(18px, 1.35vw, 26px);
  border-radius: 22px;
}

.module-illustration {
  display: grid;
  place-items: center;
  height: clamp(112px, 8vw, 156px);
  margin: -4px -2px 14px;
}

.module-illustration img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 8px 12px rgba(23, 35, 60, 0.045));
}

.module-icon {
  display: none;
}

.module-header {
  min-height: 42px;
  margin-bottom: 10px;
}

.module-title {
  font-size: clamp(14px, 0.88vw, 17px);
}

.module-description {
  min-height: 0;
  margin-bottom: 14px;
  font-size: clamp(12px, 0.7vw, 14px);
}

.module-features {
  margin-top: auto;
}

.module-features li {
  font-size: clamp(11px, 0.63vw, 13px);
}

.footer {
  padding-inline: var(--landing-page-gutter);
}

@media (min-width: 1600px) and (max-width: 1899px) {
  .modules-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}

@media (min-width: 1100px) and (max-width: 1599px) {
  .modules-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (min-width: 981px) and (max-width: 1240px) {
  .hero-main {
    grid-template-columns: minmax(0, 1fr) minmax(400px, 0.92fr);
  }

  .features-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 1099px) {
  .modules-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 980px) {
  .hero-main {
    grid-template-columns: 1fr;
  }

  .hero-copy {
    width: 100%;
    max-width: none;
  }

  .hero .hero-downloads-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .features-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  :root {
    --landing-page-gutter: 18px;
  }

  .navbar-container {
    padding-right: 18px;
  }

  .hero {
    padding-top: 112px;
  }

  .hero h1,
  body.light-theme .hero h1 {
    font-size: clamp(36px, 11vw, 48px);
  }

  .hero .hero-downloads-cards,
  .features-grid,
  .modules-grid {
    grid-template-columns: 1fr;
  }

  .module-illustration {
    height: clamp(150px, 42vw, 190px);
  }

  .module-title {
    font-size: 17px;
  }

  .module-description {
    font-size: 13px;
  }

  .module-features li {
    font-size: 12px;
  }
}

@media (min-width: 1280px) {
  .navbar-container {
    padding-right: clamp(220px, 14vw, 280px);
  }
}
