/* ==========================================================================
   Homepage hero
   ========================================================================== */

.homeHero{
  position: relative;
  overflow: hidden;

  background: #fff;

  --hero-media-width: clamp(400px, 32vw, 560px);
}

.homeHero .hero__inner{
  width: 100%;
}

.homeHero .homeHero__grid{
  display: flex;
  flex-direction: row-reverse;
  align-items: stretch;

  width: 100%;

  min-height: 620px;
  height: clamp(620px, 80vh, 780px);
}


/* Background */

.homeHero .hero__bg{
  position: absolute;
  inset: 0 auto 0 0;

  width: var(--hero-media-width);

  margin: 0;

  overflow: hidden;

  z-index: 0;
}

.homeHero .hero__bgImg{
  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center;

  opacity: 1;
  filter: none;
  transform: none;
}

.homeHero .hero__bgOverlay{
  position: absolute;
  inset: 0;

  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,0.05),
      rgba(255,255,255,0.12)
    );
}


/* Text */

.homeHero .homeHero__content{
  position: relative;
  z-index: 2;

  width: calc(100% - var(--hero-media-width));

  padding: 48px clamp(42px, 6vw, 110px);

  display: flex;
  flex-direction: column;
  justify-content: center;

  background: #fff;
}

.homeHero .hero__title{
  width: 100%;
  max-width: 820px;

  margin: 0 auto 28px;

  text-align: center;
}

.homeHero .hero__lead{
  width: 100%;
  max-width: 820px;

  margin: 0 auto 32px;

  line-height: 1.75;

  text-align: left;
  text-indent: 2rem;
}


/* Visual */

.homeHero__media{
  position: relative;
  z-index: 2;

  flex: 0 0 var(--hero-media-width);
  width: var(--hero-media-width);

  padding: 44px 28px;

  display: flex;
  align-items: center;
  justify-content: center;
}

.surrogacy-image{
  display: block;

  width: 100%;
  max-width: 420px;

  height: auto;
  max-height: 650px;

  object-fit: contain;

  background: #fff;

  border: 5px solid #63325d;
  border-radius: 120px 28px;

  box-shadow:
    0 24px 70px rgba(71,35,66,0.16);
}


/* Actions */

.homeHero .hero__cta,
.homeHero .micro{
  width: 100%;
  max-width: 820px;

  margin-left: auto;
  margin-right: auto;
}

.homeHero .hero__cta{
  justify-content: center;
  margin-bottom: 22px;
}

.homeHero .micro{
  justify-content: center;
  text-align: left;
}


/* ==========================================================================
   Hero — laptop
   ========================================================================== */

@media (max-width: 1200px){

  .homeHero{
    --hero-media-width: clamp(380px, 34vw, 450px);
  }

  .homeHero .homeHero__content{
    padding: 52px clamp(36px, 5vw, 70px);
  }

  .homeHero__media{
    padding: 38px 24px;
  }

  .surrogacy-image{
    max-width: 380px;
    border-radius: 100px 26px;
  }
}


/* ==========================================================================
   Hero — mobile / tablet
   ========================================================================== */

@media (max-width: 820px){

  .homeHero{
    --hero-media-width: 100%;
  }

  .homeHero .homeHero__grid{
    flex-direction: column;

    min-height: auto;
    height: auto;
  }

  .homeHero .hero__bg{
    inset: 0 0 auto 0;

    width: 100%;
    height: 460px;
  }

  .homeHero .hero__bgOverlay{
    background:
      linear-gradient(
        180deg,
        rgba(255,255,255,0.04),
        rgba(255,255,255,0.10)
      );
  }

  .homeHero__media{
    order: -1;

    flex: none;

    width: 100%;
    height: 460px;

    padding: 34px 24px;
  }

  .surrogacy-image{
    width: auto;

    max-width: min(100%, 360px);
    max-height: 390px;

    border-width: 4px;
    border-radius: 80px 24px;

    box-shadow:
      0 18px 50px rgba(71,35,66,0.14);
  }

  .homeHero .homeHero__content{
    width: 100%;

    padding: 46px 20px 52px;

    background: #fff;

    text-align: center;
  }

  .homeHero .hero__title,
  .homeHero .hero__lead,
  .homeHero .micro{
    max-width: 680px;
  }

  .homeHero .hero__lead{
    font-size: 16px;
    line-height: 1.7;
  }

  .homeHero .hero__cta{
    flex-direction: column;
    align-items: center;
  }

  .homeHero .hero__cta .btn{
    width: 100%;
    max-width: 320px;
  }

  .homeHero .micro{
    align-items: flex-start;
  }
}


/* Small mobile */

@media (max-width: 480px){

  .homeHero .hero__bg,
  .homeHero__media{
    height: 400px;
  }

  .homeHero__media{
    padding: 28px 18px;
  }

  .surrogacy-image{
    max-width: 310px;
    max-height: 340px;

    border-radius: 68px 22px;
  }

  .homeHero .homeHero__content{
    padding: 40px 18px 48px;
  }
}


/* ==========================================================================
   Homepage statistics
   ========================================================================== */

.homeStats{
  padding: 84px 0;

  background: #f7f4f7;

  border-top: 1px solid rgba(99,50,93,0.07);
  border-bottom: 1px solid rgba(99,50,93,0.07);
}

.homeStats__grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}


/* Cards — static informational blocks */

.homeStats__item{
  min-width: 0;
  min-height: 260px;

  padding: 34px 24px;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  background: #fff;

  border: 1px solid rgba(99,50,93,0.09);
  border-radius: 26px;

  box-shadow:
    0 10px 30px rgba(40,25,38,0.045);

  text-align: center;
}


/* Icons */

.homeStats__icon{
  width: 54px;
  height: 54px;

  margin-bottom: 24px;

  display: flex;
  align-items: center;
  justify-content: center;

  flex-shrink: 0;

  color: #63325d;

  background: #f5edf3;

  border: 1px solid rgba(99,50,93,0.12);
  border-radius: 18px;
}

.homeStats__icon svg{
  width: 27px;
  height: 27px;

  flex-shrink: 0;
}


/* Main value */

.homeStats__value{
  min-height: 2.15em;

  margin-bottom: 10px;

  display: flex;
  align-items: center;
  justify-content: center;

  font-size: clamp(1.55rem, 2vw, 1.95rem);
  line-height: 1.1;
  font-weight: 900;
  letter-spacing: -0.035em;

  color: #463444;

  text-align: center;
}


/* Description */

.homeStats__title{
  max-width: 220px;

  margin: 0;

  font-size: 0.95rem;
  line-height: 1.45;
  font-weight: 700;

  color: rgba(39,31,42,0.68);

  text-align: center;
}


/* Tablet */

@media (min-width: 700px){

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


/* Desktop */

@media (min-width: 1120px){

  .homeStats{
    padding: 90px 0;
  }

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

    gap: 22px;
  }

  .homeStats__item{
    min-height: 275px;
  }
}


/* Mobile */

@media (max-width: 520px){

  .homeStats{
    padding: 58px 0;
  }

  .homeStats__item{
    min-height: 220px;

    padding: 28px 20px;
  }

  .homeStats__icon{
    width: 48px;
    height: 48px;

    margin-bottom: 18px;
  }

  .homeStats__icon svg{
    width: 25px;
    height: 25px;
  }

  .homeStats__value{
    font-size: 1.5rem;
  }
}


/* ==========================================================================
   Homepage video
   ========================================================================== */

.homeVideo{
  padding: 92px 0 100px;

  background: #fff;
}


/* Heading */

.homeVideo__head{
  width: 100%;
  max-width: 760px;

  margin: 0 auto 44px;

  text-align: center;
}

.homeVideo__head .eyebrow,
.homeVideo__eyebrow{
  display: inline-block;

  margin-bottom: 14px;

  color: #63325d;

  font-size: 12px;
  line-height: 1.3;
  font-weight: 900;

  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.homeVideo__title{
  margin: 0 0 16px;

  color: #2d2330;

  font-size: clamp(2rem, 3.2vw, 2.8rem);
  line-height: 1.12;
  font-weight: 900;

  letter-spacing: -0.04em;
}

.homeVideo__lead,
.homeVideo__head .sub{
  max-width: 660px;

  margin: 0 auto;

  color: rgba(39,31,42,0.64);

  font-size: 16px;
  line-height: 1.75;
}


/* Video frame */

.homeVideo__frame{
  width: 100%;
  max-width: 1040px;

  margin: 0 auto;
  padding: 7px;

  overflow: hidden;

  background: #f7f4f7;

  border: 1px solid rgba(99,50,93,0.13);
  border-radius: 30px;

  box-shadow:
    0 24px 70px rgba(46,29,43,0.11);
}

.homeVideo__video{
  display: block;

  width: 100%;
  height: auto;

  aspect-ratio: 16 / 9;

  object-fit: contain;

  background: #111;

  border-radius: 23px;
}


/* ==========================================================================
   Video — tablet
   ========================================================================== */

@media (max-width: 900px){

  .homeVideo{
    padding: 72px 0 80px;
  }

  .homeVideo__head{
    margin-bottom: 36px;
  }

  .homeVideo__frame{
    padding: 6px;
    border-radius: 25px;
  }

  .homeVideo__video{
    border-radius: 19px;
  }
}


/* ==========================================================================
   Video — mobile
   ========================================================================== */

@media (max-width: 520px){

  .homeVideo{
    padding: 10px 0 64px;
  }

  .homeVideo__head{
    margin-bottom: 30px;
  }

  .homeVideo__title{
    font-size: 1.85rem;
  }

  .homeVideo__lead,
  .homeVideo__head .sub{
    font-size: 15px;
  }

  .homeVideo__frame{
    padding: 4px;
    border-radius: 20px;
  }

  .homeVideo__video{
    border-radius: 16px;
  }
}