/* Complete CSS Reset */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    scroll-behavior: smooth;
}

body,
h1,
p {
    margin-block-end: 0;
}

body {
    min-height: 100vh;
    line-height: 1.5;
}

h1 {
    line-height: 1.1;
}

img {
    max-width: 100%;
    display: block;
}

input,
button {
    font-family: inherit;
}

button {
    border: none;
    background: none;
    cursor: pointer;
}

/* Adding Fonts */
@font-face {
    font-display: swap;
    font-family: 'Josefin Sans';
    font-style: normal;
    font-weight: 300;
    src: url('./assets/fonts/josefin-sans-v34-latin-300.woff2') format('woff2');
}

@font-face {
    font-display: swap;
    font-family: 'Josefin Sans';
    font-style: normal;
    font-weight: 400;
    src: url('./assets/fonts/josefin-sans-v34-latin-regular.woff2') format('woff2');
}

@font-face {
    font-display: swap;
    font-family: 'Josefin Sans';
    font-style: normal;
    font-weight: 600;
    src: url('./assets/fonts/josefin-sans-v34-latin-600.woff2') format('woff2');
}

/* Global Changes in Root */
:root {
    /* Colors */
    --clr-pink-400: hsl(0, 36%, 70%);
    --clr-red-500: hsl(0, 93%, 68%);
    --clr-gray-900: hsl(0, 6%, 24%);
    --gradient-background: linear-gradient(135deg, hsl(0, 0%, 100%), hsl(0, 100%, 98%));
    --gradient-button: linear-gradient(135deg, hsl(0, 80%, 86%), hsl(0, 74%, 74%));

    /* Font */
    --FF: 'Josefin Sans', sans-serif;

    --FS-13: 0.813rem; /* 13px */
    --FS-15: 0.938rem; /* 15px */
    --FS-16: 1rem;     /* 16px */
    --FS-36: 2.25rem;  /* 36px */
    --FS-58: 3.625rem; /* 58px */

    --FW-300: 300;
    --FW-400: 400;
    --FW-600: 600;
}

/* General Classes */
.hidden {
    display: none;
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

/* Typography */
body {
    font-family: var(--FF);
    font-size: var(--FS-16);
    color: var(--clr-gray-900);
}

.info-container__title {
    font-size: var(--FS-36);
    text-transform: uppercase;
    text-align: center;
    font-weight: var(--FW-600);
    letter-spacing: 9px;
}

.info-container__title span {
    color: var(--clr-pink-400);
    font-weight: var(--FW-300);
}

.info-container__desc {
    color: var(--clr-pink-400);
    font-size: var(--FS-15);
    text-align: center;
    font-weight: var(--FW-400);
}

.email-form__input {
    color: var(--clr-pink-400);
    font-weight: var(--FW-300);
}

.email-form__error-message {
    font-size: var(--FS-13);
    font-weight: var(--FW-400);
    color: var(--clr-pink-400);
}

/* General - Mobile View (375px) */
.site {
    background: var(--gradient-background), url(./assets/images/bg-pattern-desktop.svg);
    background-repeat: no-repeat;
    background-size: contain;
    max-width: 375px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
}

.site-header {
    padding: 1.25em;
}

.site-header__logo {
    width: 100px;
}

.hero-container {
    margin-bottom: 2.5em;
}

.info-container__title {
    margin-bottom: 0.938em;
}

.info-container__desc {
    width: 85%;
    margin: 0 auto;
    padding-bottom: 1.875em;
}

.email-form__input-container {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
}

.email-form__input {
    padding: 0.8em;
    border-radius: 12px;
    border: 1px solid var(--clr-pink-400);
    width: 250px;
}

.email-form__submit-button {
    appearance: none;
    -webkit-appearance: none;
    border: none;
    background: var(--gradient-button);
    padding: 0.8em;
    border-radius: 15px;
    width: 55px;
    margin-left: -2.5em;
    display: grid;
    place-items: center;
    transition: filter 0.2s ease-in-out;
}

.email-form__submit-button:hover,
.email-form__submit-button:focus {
    filter: brightness(1.1);
}

.email-form__submit-button:focus-visible {
    outline: 2px solid var(--clr-red-500);
    outline-offset: 3px;
}

.email-form__error-icon {
    margin-left: -3.75em;
}

.email-form__error-message {
    margin-left: 3em;
    margin-top: 0.188em;
}

.email-form__input--error {
    border-color: var(--clr-red-500);
}

/* General - Desktop View (1024px) */
@media (min-width: 1024px) {
    .site {
        max-width: 100%;
        flex-direction: row;
        align-items: stretch;
    }

    .site-header {
        position: absolute;
    }

    .site-header__logo {
        margin-left: 5em;
        margin-top: 1.2em;
        width: 140px;
    }

    .content-container {
        display: flex;
        flex: 1;
    }

    .hero-container {
        order: 2;
        margin-bottom: 0;
    }

    .hero-container__image {
        height: 100%;
        object-fit: cover;
        width: 1024px;
    }

    .info-container {
        margin-top: 12.5em;
    }

    .info-container__title {
        width: 24%;
        text-align: left;
        margin-left: 1.75em;
        margin-bottom: 0.5em;
        font-size: var(--FS-58);
    }

    .info-container__desc {
        width: 50%;
        text-align: left;
        margin-left: 6.875em;
    }

    .email-form__input-container {
        margin-left: 6em;
        justify-content: left;
    }

    .email-form__input {
        width: 300px;
    }

    .email-form__submit-button {
        margin-right: 20px;
    }

    .email-form__error-icon {
        margin-right: 30px;
    }

    .email-form__error-message {
        margin-top: 8px;
        margin-left: 100px;
    }
}