/* BASE */
:root {
  --desaturated-red:  hsl(0, 36%, 70%);
  --soft-red:         hsl(0, 93%, 68%);
  --desaturated-red-focus: hsl(0, 24%, 45%);
  --dark-grayish-red: hsl(0, 6%, 24%);
  --input-border: hsl(350, 14%, 79%);
  --linear-gradient-1-fallback: hsl(0, 100%, 98%);
  --linear-gradient-1: linear-gradient(135deg, hsl(0, 0%, 100%) 0%, hsl(0, 100%, 98%) 100%);
  --linear-gradient-2-fallback: hsl(0, 80%, 86%);
  --linear-gradient-2: linear-gradient(135deg, hsl(0, 80%, 86%) 0%, hsl(0, 74%, 74%) 100%);
  --linear-gradient-3-fallback: hsl(358, 76%, 92%);
  --linear-gradient-3: linear-gradient(to right, hsl(0, 80%, 92%) 0%, hsl(0, 80%, 86%) 100%);
}

/* SETUP */
html {
  font-size: 100%;
  box-sizing: border-box;
}

*, *::before, *::after {
  box-sizing: inherit;
}

body {
  margin: 0;
  padding: 0;
  background: var(--white);
  font-family: 'Josefin Sans', Arial, 'Helvetica Neue', Helvetica, sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.6;
  color: var(--desaturated-red);
}

h2 {
  margin: 0;
}

.sr-only {
  border: 0 !important;
  clip: rect(1px, 1px, 1px, 1px) !important;
  /* 1 */
  clip-path: inset(50%) !important;
  /* 2 */
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  width: 1px !important;
  white-space: nowrap !important;
  /* 3 */
}

.sr-only-focusable:focus,
.sr-only-focusable:active {
  clip: auto !important;
  clip-path: none !important;
  height: auto !important;
  margin: auto !important;
  overflow: visible !important;
  width: auto !important;
  white-space: normal !important;
}

/* COMPONENTS */
/* GRID */
.main {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: repeat(2, max-content) 1fr;
  grid-template-areas: "header" "visual" "soon";
  background: var(--linear-gradient-1-fallback);
  background: var(--linear-gradient-1);
}

@media (min-width: 768px) {
  .main {
    grid-template-columns: 2fr minmax(360px, 1fr);
    grid-template-rows: min-content 1fr;
    grid-template-areas: "header visual" "soon visual";
  }
}

@media (min-width: 1200px) {
  .main {
    grid-template-columns: 2fr minmax(610px, 1fr);
  }
}

/* PATTERN */
@media (min-width: 768px) {
  .pattern {
    background-image: url("/images/bg-pattern-desktop.svg");
    background-size: cover;
    background-repeat: no-repeat;
    grid-column: 1 / 2;
    grid-row: 1 / 3;
  }
}

/* HEADER */
.header {
  grid-area: header;
}

.header__content {
  padding: 2rem 0;
  margin: 0 auto;
  width: 80%;
  max-width: 600px;
}

@media (min-width: 768px) {
  .header__content {
    padding: 3rem 0 0;
  }
}

@media (min-width: 992px) {
  .header__content {
    padding: 4rem 0 1rem;
    max-width: 490px;
  }
}

.header__logo {
  display: flex;
  max-width: 100px;
}

@media (min-width: 768px) {
  .header__logo {
    max-width: 130px;
  }
}

@media (min-width: 992px) {
  .header__logo {
    max-width: 160px;
  }
}

/* VISUAL */
.visual {
  background-color: var(--desaturated-red);
  grid-area: visual;
  max-height: 15.625rem;
}

@media (min-width: 500px) {
  .visual {
    max-height: 26.25rem;
  }
}

@media (min-width: 768px) {
  .visual {
    max-height: unset;
  }
}

.visual__image {
  display: flex;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (min-width: 500px) {
  .visual__image {
    object-position: 50% 25%;
  }
}

/* SOON */
.soon {
  grid-area: soon;
  display: flex;
  align-items: center;
  min-height: 27.5rem;
}

@media (min-width: 768px) {
  .soon {
    min-height: 34.375rem;
  }
}

.soon__content {
  margin: 0 auto;
  width: 80%;
  max-width: 25rem;
}

@media (min-width: 992px) {
  .soon__content {
    max-width: 31.25rem;
    margin-top: -1.3rem;
  }
}

.soon__heading {
  text-align: center;
  text-transform: uppercase;
  font-size: 2.5rem;
  font-weight: 300;
  letter-spacing: .65rem;
  color: var(--desaturated-red);
  margin-bottom: 1rem;
  line-height: 1;
}

.soon__heading > span {
  display: block;
  font-weight: 600;
  color: var(--dark-grayish-red);
}

@media (min-width: 768px) {
  .soon__heading {
    font-size: 2.5rem;
    line-height: 1.2;
    letter-spacing: 1rem;
    margin-bottom: 1.5rem;
  }
}

@media (min-width: 992px) {
  .soon__heading {
    font-size: 4rem;
    letter-spacing: 1.1rem;
    margin-bottom: 1.1rem;
    text-align: unset;
    line-height: 1.1;
  }
}

.soon__text {
  text-align: center;
  font-size: 0.875rem;
  margin-bottom: 2rem;
}

@media (min-width: 768px) {
  .soon__text {
    font-size: 1rem;
  }
}

@media (min-width: 992px) {
  .soon__text {
    text-align: unset;
    line-height: 1.8;
    max-width: 27.5rem;
    margin-bottom: 2.1rem;
  }
}

@media (min-width: 992px) {
  .subscribe {
    width: 90%;
  }
}

.subscribe button, .subscribe input {
  font-family: inherit;
  font-size: 0.875rem;
  border-radius: 3rem;
}

.subscribe button:focus, .subscribe input:focus {
  outline: 2px dotted var(--desaturated-red);
  outline-offset: 1px;
}

.subscribe__group {
  position: relative;
}

.subscribe__email-input {
  padding: .9rem 5rem .75rem 1.2rem;
  background-color: transparent;
  color: var(--dark-grayish-red);
  border: 1px solid var(--input-border);
  width: 100%;
  line-height: 1.5;
}

.subscribe__email-input::placeholder {
  color: var(--input-border);
}

@media (min-width: 992px) {
  .subscribe__email-input {
    font-size: 1rem;
    line-height: 2;
    padding: .9rem 7rem .75rem 2rem;
  }
}

.subscribe__error-icon {
  position: absolute;
  top: 25%;
  right: 5rem;
  opacity: 0;
}

@media (min-width: 992px) {
  .subscribe__error-icon {
    right: 7rem;
  }
}

.subscribe__submit {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  background: var(--linear-gradient-2-fallback);
  background: var(--linear-gradient-2);
  color: var(--desaturated-red);
  border: none;
  width: 4rem;
  box-shadow: 0px 15px 40px -10px rgba(248, 150, 150, 0.85);
}

.subscribe__submit:hover {
  background: var(--linear-gradient-3-fallback);
  background: var(--linear-gradient-3);
  box-shadow: 0px 15px 40px -10px #f89696;
  cursor: pointer;
}

@media (min-width: 992px) {
  .subscribe__submit {
    width: 6rem;
  }
}

.subscribe__error-text {
  padding: 0 1.2rem;
  font-size: 0.75rem;
  color: var(--soft-red);
  opacity: 0;
}

.subscribe--error .subscribe__email-input {
  padding-right: 9.5rem;
  border-color: transparent;
  box-shadow: 0px 0px 0px 2px #E78F8E;
}

.subscribe--error .subscribe__error-icon {
  opacity: 1;
}

.subscribe--error .subscribe__error-text {
  opacity: 1;
}
/*# sourceMappingURL=main.css.map */