:root {
    --header_color: white;
    --header_background_color: oklch(0.378 0.0926 266.69);
    --background_color: oklch(0.98 0 0);
    --color: black;
    --gap: 1rem;
    --border-radius-lg: 1.25rem;
    --border-radius-sm: 0.5rem;

    font-family: Calibri, sans-serif;
    font-size: 1.1rem;
    line-height: 1.55;
}

*, *:before, *:after{
    box-sizing: border-box;
}

body {
    margin: 0;
    background-color: var(--background_color);
    color: var(--color);
}

.container {
    max-width: 80rem;
    margin-inline: auto;
    padding: 1rem;
}

header {
    background-color: var(--header_background_color);
    .brand {
        font-size: 2.2rem;
        font-weight: 600;
        color: var(--header_color);
        text-decoration: none;
    }
    nav {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column;

        ul {
            list-style: none;
            display: flex;
            flex-direction: column;
            gap: var(--gap);
            padding: 0;
            margin: 0;

            li a {
                display: inline-block;
                padding: 0.5rem 0.9rem;
                border-radius: var(--border-radius-sm);
                color: white;
                text-decoration: none;
                font-size: 1.2rem;
                transition:
                        background-color 0.2s ease-in-out,
                        color 0.2s ease-in-out,
                        transform 0.15s ease-in-out;

                &:hover {
                    background-color: var(--header_color);
                    color: var(--header_background_color);
                    transform: translateY(-2px);
                }
            }
        }
        @media (min-width: 53rem){
            flex-direction: row;
            justify-content: space-between;

            ul {
                flex-direction: row;
            }
        }
    }
}

.side-by-side {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-evenly;
    gap: var(--gap);
    margin-block: 2rem;

    div {
        max-width: 35rem;

        h1 {
            font-size: 2.4rem;
            margin-bottom: 0.5rem;
        }

        p {
            font-size: 1.25rem;
            opacity: 0.85;
        }
    }

    img {
        width: 100%;
        max-width: 30rem;
        border-radius: var(--border-radius-lg);
        box-shadow: 0 1rem 2rem oklch(0 0 0 / 0.15);
    }
}

.exercises ol {
    display: flex;
    flex-direction: row;
    justify-content: space-evenly;
    flex-wrap: wrap;
    padding: 0;
    gap: var(--gap);

    li {
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
        width: 100%;
        height: auto;
        max-width: 25rem;
        padding: 1rem;
        border-radius: 2rem;
        border: solid 0.1rem;
        position: relative;
        transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;

        &:hover {
            transform: translateY(-4px);
            box-shadow: 0 1rem 2rem oklch(0 0 0 / 0.18);
        }

        div{
            order: -1;
            height: 100%;
            width: auto;
            img {
                border-radius: 1rem;
                width: 100%;
                height: auto;
            }
        }

        a:not(.overlay_link) {
            align-self: flex-end;
            color: var(--color);
            text-decoration: none;
            z-index: 1;
            &:hover {
                text-decoration: underline;
            }
        }
    }

    .overlay_link{
        position: absolute;
        inset: 0;
        text-indent: 100%;
        white-space: nowrap;
        overflow: hidden;
    }

}

.socials ul {
    list-style: none;
    display: flex;
    justify-content: center;
    gap: 1.2rem;
    padding: 0;

    li a {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0.3rem;
        max-width: 5rem;
        text-decoration: none;
        color: var(--color);
        transition: transform 0.15s ease;

        &:hover {
            transform: scale(1.05);
        }

        img {
            width: 100%;
            order: -1;
            border-radius: var(--border-radius-sm);
        }
    }
}

.reflection div{
    display: flex;
    flex-direction: row;
    gap: var(--gap);
    flex-wrap: wrap;
    justify-content: space-around;

    section {
        display: flex;
        flex-direction: column;
    }
}


.button {
    padding: 1rem;
    font-size: 1.5rem;
    color: var(--color);
    text-decoration: none;
    border: solid var(--color) 0.1rem;
    transition: all 0.2s ease-in-out 0s;
    &:hover {
        background-color: var(--color);
        color: var(--background_color);
    }
}

.contact-container{
    display: flex;
    align-items: center;
    flex-direction: column;
    padding: 2rem;
}

.contact{
    gap: var(--gap);
    display: flex;
    flex-direction: column;
    font-size: 1.25rem;
    font-weight: bold;
    align-items: flex-start;
    max-width: 30rem;
    width: 100%;

    > div:not(.actions) {
        display: flex;
        flex-direction: column;
        width: 100%;
        input {
            height: 2rem;
            border: solid black 0.1rem;
            border-radius: 0.5rem;
            padding: 0.5rem;
        }
    }
    textarea {
        resize: none;
        height: 6rem;
        padding: 0.5rem;
    }
    textarea, fieldset {
        width: 100%;
        border: solid black 0.1rem;
        border-radius: 0.5rem;
    }
    .actions {
        display: flex;
        flex-direction: row;
        width: 100%;
        justify-content: space-between;

        input {
            font-size: 1rem;
            cursor: pointer;
            padding: 0.7rem;
            border-radius: 0.5rem;
			font-weight: 700;
            font-size: 1.1rem;
			
            &[type="submit"] {
                background-color: var(--header_background_color);
                border: solid 0.1rem var(--header_background_color);
                color: white;
                transition: all 0.2s ease-in-out 0s;

                &:hover {
                    background-color: white;
                    color: var(--header_background_color);
                }
            }
            &[type="reset"] {
                background-color: red;
                border: solid 0.1rem red;
                color: white;
                transition: all 0.2s ease-in-out 0s;

                &:hover {
                    background-color: white;
                    color: red;
                }
            }

        }

    }
    .error {
        color: red;
    }
}

footer {
    background-color: var(--header_background_color);
    color: var(--header_color);
    font-size: 1.2rem;
}