@import url('https://fonts.googleapis.com/css2?family=Josefin+Sans:ital,wght@0,300..600;1,300..600&display=swap');

* {
padding: 0;
margin: 0;
box-sizing: border-box;
}

body {
    font-family: "Josefin Sans", serif;
    font-size: 16px;
    display: flex;
    width: 100%;
    min-height: 100vh;
    background: linear-gradient(135deg,hsl(0, 0%, 100%), hsl(0, 100%, 98%));
}

main {
    background: url(images/bg-pattern-desktop.svg) no-repeat center/cover;
    width: 55%;

}
.container {
    display: flex;
    flex-direction: column;
    width: 60%;
    margin: 65px auto;
}
.logo {
    width: 160px;
    margin-bottom: 130px;
}

.mobile-container {
    display: none;
    width: 100%;
}


.note-heading {
    color: hsl(0, 6%, 24%);
    font-size: 65px;
    letter-spacing: 16.8px;
    text-transform: uppercase;
    line-height: 1.07;
    margin-bottom: 25px;
}
.red-font {
    font-weight: 300;
    color: hsl(0, 36%, 70%);
}

.note {
    line-height: 1.5;
    font-weight: 500;
    color: hsl(0, 36%, 70%);
    margin-bottom: 35px;
}
.input-container {
    display: flex;
    width: 100%;
}
input, .submit {
    padding: 15px;
    border-radius: 30px;
    border: none;
}
input {
    border: 1px solid hsl(0, 36%, 70%);
    width: 90%;
    background: transparent;
    padding-left: 30px;
}
input:focus {
    outline: none;
}
input::placeholder {
    font-family: "Josefin Sans";
    color: hsla(0, 36%, 70%, 0.50);
    font-size: 15px;
}
.error-icon {
    visibility: hidden;
    position: relative;
    right: 80px; 
    top: 15px;
    width: 22px;
    height: 20px;
  }
  .error-message {
    display: none;
    color: hsl(0, 74%, 74%);
    font-size: 14px;
    margin-top: 8px;
    margin-left: 18px;
  }
  .error input {
    border: 2px solid hsl(0, 93%, 68%);
  }

  .error .error-icon {
    display: inline;
  }

  .error .error-message {
    display: block;
  }

  .invalid-placeholder::placeholder {
    color: hsl(0, 6%, 24%);
  }

.submit {
position: relative;
cursor: pointer;
right: 60px;
width: 25%;
background: linear-gradient(135deg, hsl(0, 80%, 86%), hsl(0, 74%, 74%));
box-shadow:  0px 9px 14px 0px hsla(0, 36%, 70%, 0.3);
}

.submit:hover {
background: hsl(0, 80%, 86%);
}
.desktop-container {
    width: 45%;
}

.desktop-container .hero-img {
width: 100%;
height: 100%;
}

.attribution { 
    font-size: 11px; 
    text-align: center;
    margin-top: 100px;
 }
.attribution a { 
    color: hsl(228, 45%, 44%); 
}



@media screen and (max-width: 780px) {

    body {
        flex-direction: column; 
    }
    
    main {
        background: none; 
        width: 100%; 
    
    }
    .mobile-container {
        display: block; 
    }
    .mobile-container .hero-img {
        width: 100%; 
    }
    .container {
        width: 80%; 
    }
    .logo {
        margin-bottom: 50px; 
    }
    .note-container {
        width: 60%; 
        margin: 40px auto; 
        text-align: center; 
    }
    .note-heading {
        font-size: 45px; 
    }
    .input-container {
        margin: auto; 
        width: 80%; 
    }
    input {
        width: 80%; 
    }
      .error-message {
        margin-left: 85px; 
      }
    .submit {
    width: 20%; 
    }

    .desktop-container {
        display: none; 
    }
    
    .attribution { 
        margin-top: 50px; 
     }
 }

 
 @media screen and (max-width: 380px) {
    
    .logo {
        margin-left: 30px;
        width: 100px; 
        margin-bottom: 30px; 
    }

    .container {
        margin-top: 30px; 
        width: 100%; 
    }
    
    .note-container {
        width: 80%; 
        margin: 40px auto; 
        text-align: center; 
    }
    .note-heading {
        margin-top: 20px;
        font-size: 40px; 
        letter-spacing: 10px; 
    }
    .note {
        margin-bottom: 0;
        font-size: 14px;
    }
    .input-container {
        margin-left: 40px; 
        width: 95%; 
    }
    input, .submit {
        padding: 14px; 
    }
    input {
        width: 80%; 
    }
 }