.newsletter-v7 {
  margin: 0 auto;
}

.newsletter-v7__title-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
}

.newsletter-v7__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3rem;
}
@media (min-width: 768px) {
  .newsletter-v7__content {
    flex-direction: row;
  }
}

@media (min-width: 768px) {
  .newsletter-v7__text {
    padding-inline-start: 3rem;
  }
}

.newsletter-v7__title {
  font-size: calc(var(--font-heading-scale) * var(--font-body-scale) * 4rem);
  line-height: calc(1 + 0.2 / var(--font-heading-scale));
  letter-spacing: calc(var(--font-heading-scale) * 0.5rem);
  text-align: center;
  position: relative;
}
@media (min-width: 768px) {
  .newsletter-v7__title {
    text-align: center;
  }
}

.newsletter-v7__subtitle {
  font-size: calc(var(--font-body-scale) * 1.8rem);
  line-height: calc(1 + 0.3 / var(--font-body-scale));
  color: rgba(var(--color-foreground), 0.5);
  font-weight: 400;
  text-align: center;
  margin-bottom: 2rem;
}
@media (min-width: 768px) {
  .newsletter-v7__subtitle {
    text-align: center;
    margin-bottom: 0;
  }
}

.newsletter-v7__input-wrap {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.newsletter-v7__input-wrap input::placeholder {
  color: #9591a8;
}

.newsletter-v7__input-btn {
  height: 6rem;
  width: 100%;
  display: flex;
}
.newsletter-v7__input-btn .xo-field-input__input {
  border: none;
  background-color: rgb(255, 255, 255);
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  padding: 0 1.5rem;
  height: 100%;
  border-radius: 0;
}

.newsletter-v7__button {
  all: unset;
  cursor: pointer;
  position: relative;
  width: clamp(9rem, calc(-10vw + 13rem), 1rem);
  flex-shrink: 0;
  background-color: rgba(var(--color-accent));
  overflow: hidden;
  border: 0.2rem solid rgb(255, 255, 255);
}

.newsletter-v7__button:hover .newsletter-v7__icon--before {
  transform: translate(-50%, -7rem);
}
.newsletter-v7__button:hover .newsletter-v7__icon--after {
  transform: translate(-50%, -50%);
}

.newsletter-v7__icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transition: 0.3s;
  padding-top: 0.8rem;
}
.newsletter-v7__icon svg {
  fill: #fff;
}

.newsletter-v7__icon--before {
  transform: translate(-50%, -50%);
}

.newsletter-v7__icon--after {
  transform: translate(-50%, 7rem);
}