* {
    box-sizing: border-box;
}

body {
    text-align: center;
    font-size: 18px;
    font-family: 'Merriweather', sans-serif;
}

.container {
    width: 90%;
    margin: 0 auto;
}

header {
    width: 100vw;
    background-color: #3A606E;
    margin-bottom: 30px;
}

h1 {
    text-transform: uppercase;
    color: white;
    padding: 30px 0;
    font-weight: bold;
    letter-spacing: 3px;
}

.heading-container {
    margin-bottom: 30px;
}

h2 {
    font-weight: bold;
    margin-bottom: 10px;
}

p.heading-description {
    color: grey;
    font-size: 0.8em;
    line-height: 20px;
}

.thick-line {
    border: 2px solid black;
    margin-top: 25px;
    margin-bottom: 0;
}

.small-line {
    border: 0;
    width: 100%;
    clear:both;
    display:block;              
    background-color: black;
    height: 1px;
    margin-bottom: 20px;
}


form {
    text-align: left;
    display: flex;
    flex-direction: column;
}

legend {
    margin-bottom: 20px;
}

.first-fieldset input, .first-fieldset label, .first-fieldset select {
    display: block;
    margin: 20px 0;;
}



#user_zipcode {
    width: 50%;
}

.first-fieldset input, .first-fieldset select {
    background-color: rgb(234, 230, 230);
    padding: 15px 20px;
    width: 100%;
    border: none;
    border-radius: 5px;
}

option:first-of-type {
    color: darkgrey;
}

.first-fieldset input::placeholder {
    text-align: right;
    text-transform: capitalize;
}

#user_zipcode::placeholder {
    text-align: left;
    text-transform: none;
}

form {
    color: rgb(68, 85, 103)
}

.newsletter-label {
    display: block;
}

.second-fieldset input {
    display: inline-block;
}

.second-fieldset input:not(:first-of-type){
    margin-top: 15px;
}

label[for="javascript-news"]{
    margin-bottom: 20px;
}

/**** Animations ****/

.first-fieldset input, textarea {
    transition: padding 0.5s ease-out;
}


.first-fieldset input:focus {
    padding: 18px 25px;
    outline: none;
    border: 2px solid grey;
}


#html-news {
    margin-top: 20px;
}

.newsletter-label {
    margin-top: 20px;
    margin-bottom: 20px;
}

.other-topics {
    display: block;
    margin-top: 20px;
}

textarea {
    width: 100%;
    background-color: rgb(234, 230, 230);
    border: none;
    margin-top: 15px;

}

textarea:focus {
    padding: 18px 25px;
    outline: none;
}

button {
    width: 100%;
    padding: 15px 0;
    background-color: #393f39;
    border: none;
    font-family: inherit;
    margin-top: 20px;
    color: white;
    font-weight: bold;
    font-size: 20px;
    border-radius: 5px;
}

button:hover, button:focus {
    background-color: #828E82;
    cursor: pointer;
}

.italic {
    font-style: italic;
}

.footer-description {
    margin-top: 30px;
    color: grey;
    text-align: center;
    padding-bottom: 30px;
}


/******** Tablet size and bigger *******/


@media screen and (min-width: 768px) {

    .container {
        max-width: 700px;
    }

    .flexbox-container {
        display: flex;
        align-items: center;
    }

    input#user_zipcode {
        max-width: 25%;
    }

    .flexbox-container label {
        flex-basis: 30%;
    }
    .flexbox-container input,  .flexbox-container select{
        flex-basis: 70%;
    }

    
}