.text-oval-section {
  position: relative;
  overflow: visible;
}

.text-oval-inner {
  max-width: 1600px;
  margin: auto;
  position: relative;
}

/* CENTER */
.text-oval-content {
  position: relative;
  z-index: 2;
}

/* SHAPE */
.text-oval-shape {
  width: 440px;
  margin: auto;
  border-radius: 300px;
  padding: 14vh 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  overflow: hidden;
}

/* BACKGROUND BASE */
.text-oval-shape::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  z-index: 0;
}

/* THEMES */
.text-oval-shape.theme-green {
  color: var(--color-offwhite);
}
.text-oval-shape.theme-green::before {
  background: var(--color-green);
}

.text-oval-shape.theme-dark {
  color: var(--color-offwhite);
}
.text-oval-shape.theme-dark::before {
  background: var(--color-dark);
}

.text-oval-shape.theme-beige {
  color: var(--color-dark);
}
.text-oval-shape.theme-beige::before {
  background: var(--color-beige);
}

.text-oval-shape.theme-rosa {
  color: var(--color-dark);
}
.text-oval-shape.theme-rosa::before {
  background: var(--color-rosa);
}

/* BACKGROUND IMAGE */
.text-oval-shape::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background-image: var(--bg-image);
  background-size: cover;
  background-position: center;
  opacity: 0.15;
  z-index: 1;
}

/* CONTENT ABOVE */
.text-oval-shape > * {
  position: relative;
  z-index: 2;
}

/* TYPO */
.text-oval-headline {
  margin: 20px 0;
}

.text-oval-section .main-btn.main-btn-white {
  margin: 20px auto 0;
}

/* IMAGES */
.text-oval-img {
  position: absolute;
  width: 240px;
  height: 320px;
  z-index: 3;
  will-change: transform;
}

.text-oval-img-rotate {
  width: 100%;
  height: 100%;
  border-radius: var(--radius-small);
  overflow: hidden;
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.15);
}

/* ROTATION */
.text-oval-img-rotate-left {
  transform: rotate(-4deg);
}
.text-oval-img-rotate-right {
  transform: rotate(4deg);
}

.text-oval-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* POSITIONS */
.text-oval-img-left {
  left: 30px;
  top: 60px;
}

.text-oval-img-right {
  right: 30px;
  bottom: 60px;
}

/* RESPONSIVE */
@media (max-width: 1200px) {
  .text-oval-img-left {
    left: 0;
  }
  .text-oval-img-right {
    right: 0;
  }
}

@media (max-width: 991px) {
  .text-oval-img {
    display: none;
  }

  .text-oval-shape {
    width: 100%;
    max-width: 520px;
    padding: 100px 30px;
  }
}

@media (max-width: 575px) {
  .text-oval-shape {
    padding: 70px 40px;
    border-radius: 200px;
  }
}
