html, body, h1, h2, h3, h4, h5, h6, p {
    margin: 0;
    padding: 0;
}

html {
    font-size: 14px;
}

@media (width >= 768px) {
    html {
        font-size: 16px;
    }
}

body {
    --dark-blue: #272E5A;
    --light-blue: #8D9EBB;
    --green: #768163;
    --pink: #F9BCB3;

    --cursive: "Carattere", cursive;
    --serif: "Merriweather", serif;
    
    --text-small: 1rem;
    --text-medium: 1.5rem;
    --text-large: 2.5rem;
    --text-huge: 5rem;

    background-color: var(--dark-blue);
    color: white;
    font-family: var(--serif);
    font-weight: 300;

    min-height: 100vh;
    width: 100vw;
    box-sizing: border-box;
}

button, input[type = "submit"] {
    background-color: var(--dark-blue);
    color: var(--pink);
    border: solid 1px var(--pink);
    border-radius: 2px;
    font-size: var(--text-small);
    padding: 0 1.5rem;
    cursor: pointer;
}

input[type = "email"] {
    width: 180px;
    outline: none;
    border: none;
    font-size: var(--font-small);
    padding: 0.25rem;
}

@media (width >= 375px) {
    input[type = "email"] {
        width: 250px;
    }
}

@media (width >= 768px) {
    input[type = "email"] {
        width: 400px;
    }
}

.center {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.big-fancy-text {
    font-family: var(--cursive);
    font-weight: 400;
    font-size: var(--text-huge);
    color: var(--pink);
}

#save-the-date {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    max-width: 700px;
    margin: 1rem;
    text-align: center;
    box-sizing: border-box;
}

@media (width >= 480px) {
    #save-the-date {
        border: solid 1px white;
        padding: 2rem;
        margin: 2rem;
    }
}

#save-the-date > h1 {
    margin-top: 2rem;
}

#bridget-mathew {
    font-family: var(--cursive);
    font-size: var(--text-large);
    color: white;
    margin-top: 1rem;
}

#bridget-mathew * {
    margin: 0 0.25rem;
    color: var(--pink);
}

#date {
    font-size: var(--text-medium);
    font-weight: 500;
}

#location {
    font-size: var(--text-small);
}

#details {
    text-align: left;
    font-size: 0.875rem;
}

#please-join {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    font-size: var(--text-small);
}

#please-join > label {
    font-weight: bold;
}

#please-join > div {
    display: flex;
    align-items: stretch;
    gap: 0.5rem;
}

#invite-to-follow {
    font-family: var(--cursive);
    font-size: var(--text-medium);
}

#error {
    text-align: center;
}

