/**
* Reset
**/

*, *:before, *:after {
  box-sizing: border-box;
}

/**
* Variables
**/

:root {
  --metric-rhythm: 2rem;
  --metric-interaction-padding: 0.6rem 0.6rem;
}

/**
* Base
**/

body {
  height: 100vh;
  font-family: 'Josefin Sans', sans-serif;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 65% 35%;
  grid-template-areas:
    "header side-image"
    "main side-image"
    "main side-image"
    "footer side-image";
  background-image: url('https://res.cloudinary.com/gb2020/image/upload/v1589217438/base%20apparel%20coming%20soon/bg-pattern-desktop_ohtovt.svg');
  background-size: 100% 100%;
}

/**
* Utilities
**/

.visually-hidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: auto;
  margin: 0;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
}

.flow {
  --flow-space: var(--metric-rhythm);
}

.flow > * + * {
  margin-top: 1em;
  margin-top: var(--flow-space);
}

/**
* Header
**/

header {
  grid-area: header;
  height: 100px;
  padding-top: 3rem;
  padding-left: 10rem;
}

/**
* Side
**/

.side-image {
  grid-area: side-image;
  background-image: url('https://res.cloudinary.com/gb2020/image/upload/v1589217439/base%20apparel%20coming%20soon/hero-desktop_qd7w4w.jpg');
  background-repeat: no-repeat;
  background-size: cover;
}

/**
* Main
**/

.main {
  grid-area: main;
  max-width: 800px;
  padding-left: 10rem;
}

h2 {
  font-size: 4rem;
  font-weight: 400;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  word-spacing: 100vw;
  line-height: 1.1em;
}

h2 .heading--pink {
  font-weight: 300;
  color: hsl(32, 100%, 64%);
  letter-spacing: 0.33em;
}

.main p {
  color: hsl(142, 50%, 35%);
  line-height: 1.5em;
  width: 49ch;
}

.form {
    --flow-space: 3.5rem;
}

.form__control {
  display: flex;
  position: relative;
  width: 48ch;
  border: 1px solid hsl(142, 50%, 35%);
  border-radius: 999px;
  transition: 0.2s;
  --flow-space: 0.5rem;
}

.form__control:focus-within {
  border-width: 2px;
}

.form__control label {
  position: absolute;
  text-transform: capitalize;
  height: 100%;
  color: hsl(152, 76%, 29%);
  display: flex;
  align-items: center;
  padding-left: 2rem;
  width: 100%;
  transition: 0.2s;
}

input:-webkit-autofill,
input:-webkit-autofill:hover, 
input:-webkit-autofill:focus, 
input:-webkit-autofill:active  {
  -webkit-box-shadow: 0 0 0 30px white inset !important;
}

.form__control input {
  border: none;
  background-color: transparent;
  outline: 0;
  padding: 20px 0 20px 2rem;
  flex: auto;
}

input:focus + label, input:not([value=""]) + label {
    align-items: flex-start;
    opacity: 0.75;
    transform: translateY(-1.5rem);
}


.button {
  z-index: 1;
  background-image: linear-gradient(135deg, hsl(142, 50%, 35%), hsl(144, 64%, 53%));
  min-width: 7.5rem;
  border-radius: 999px;
  cursor: pointer;
}

.button:hover, .button:focus {
  filter: brightness(1.05);
  box-shadow: 0px 8px 15px rgba(0, 0, 0, 0.1);
  color: #fff;
  outline: 0;
}

.button svg {
  transform: translateY(1px); /* Optical adjustment */
}

/**
 * ALERT COMPONENT
 */

.form__alert {
    --flow-space: 0;
}

.alert {
  --alert-text: hsl(142, 50%, 35%);

  display: flex;
  align-items: flex-start;
  color: var(--alert-text);
  animation: slide-up 250ms ease;
}

.alert[data-state='success'] {
  --alert-text: green;
}

.alert__icon {
  font-size: 1.6em;
  flex-shrink: 0;
}

.alert__content {
  padding-left: 2rem;
}

.alert__content b {
  display: block;
}

/**
 * ANIMATIONS
 */
@keyframes slide-up {
  0% {
    opacity: 0;
    transform: translateY(0.4rem);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/**
* Footer
**/

footer {
  grid-area: footer;
  display: flex;
  justify-content: center;
}

footer a {
  color: hsl(142, 50%, 35%);
}

/**
* Media Query
**/

@media screen and (-ms-high-contrast: active) {
  input[type],
  button {
    border: 1px solid;
  }
}
  

@media(max-width: 1000px) {
  body {
    grid-template-columns: 100%;
    grid-template-areas:
      "header"
      "side-image"
      "main"
      "footer";
  }
  
  .side-image {
    min-height: 25rem;
    background-image: url('https://res.cloudinary.com/gb2020/image/upload/v1589217439/base%20apparel%20coming%20soon/hero-mobile_dv2qh6.jpg');
  }
  
  .main, header {
    padding: 2rem;
    width: 100vw;
    margin: 0 auto;
  }
  
  .main h2, .main p {
    text-align: center;
  }
  
  .main h2 {
    font-size: 3rem;
  }
  
  .main p, .form__control {
    width: 98%;
    margin: 0 auto;
  }
}