body {
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-evenly;
    min-height: 100vh;
    font-family: Arial, sans-serif;
    text-align: center;
    color: white;
    background: url("/img/landing-bg.png") center center no-repeat, linear-gradient(to right, #2a7499, #0e3666);

    /* make the image cover the whole page without skewing */
    background-size: cover, /* image covers while keeping aspect ratio */ auto; /* gradient automatically fills */
}

.top-area {
    width: 84%;
    text-align: center;
}

h1 {
    font-size: 3rem;
    font-weight: 300;
}

.intro {
    font-size: 2rem;
    line-height: 1.25em;
}

img.logo {
    width: auto;
    height: 10vh;
}

.boxes {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-evenly;
    gap: 1rem;
    width: 100%;
}

.box {
    width: 15vh;
    height: 15vh;
    border: 0.2em solid white;
    background: linear-gradient(to right, #2a7499, #0e3666);
    text-align: center;
}

.box .logo-frame {
    height: 50%;
}

.box .logo-frame img {
    height: 60%;
    width: auto;
    margin-top: 8%;
}

.box .logo-frame.socofra img {
    height: 50%;
}

.box .flag-frame {
    height: 50%;
    text-align: center;
}

.box .flag-frame img {
    height: 78%;
}

/* Landscape orientation - boxes in a single row */
@media (orientation: landscape) {
    .boxes {
        flex-direction: row;
        width: 80vw;
    }

    .box {
        width: 15vw;
        height: 15vw;
    }

    h1 {
        margin-top: 0;
        font-size: 1.9rem;
    }

    img.logo {
        width: auto;
        height: 14vh;
    }

    .intro {
        margin: 1.2rem 8vw 0 8vw;
        font-size: 1.2rem;
        line-height: 1.25em;
    }
}
