:root {
    --spacing: 0.25rem;

    /* colors */
    --color-white: #fff;
    --color-black: #000;
    --color-darkblue: #101d6d;
    --color-lightgray: #e8e8e8;
    --color-blue: #0f3f86;
    --color-gray: #7f8083;
    --color-footer: #aaa;

    /* fonts */
    --default-font-family: "PT Sans", system-ui, sans-serif;
    --text-sm: 0.875rem;
    --text-sm-line-height: calc(1.25 / 0.875);
    --text-base: 1rem;
    --text-base-line-height: calc(1.5 / 1);
    --text-lg: 1.25rem;
    --text-lg-line-height: calc(1.75 / 1.125);

    /* breakpoints */
    --breakpoint-sm: 40rem;
    --breakpoint-md: 48rem;
    --breakpoint-lg: 64rem;
    --breakpoint-xl: 80rem;
    --breakpoint-2xl: 96rem;

    background-color: var(--color-white);
    font-size: var(--text-base);
    color: var(--color-darkblue);
}

/** start: generic rules **/
*,
::after,
::before,
::backdrop,
::file-selector-button {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border: 0 solid;
}

html {
    font-family: var(--default-font-family);
    scroll-behavior: smooth;
}

p {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border: 0 solid;
}

ul {
    list-style: none;
}

a {
    color: inherit;
    text-decoration: none;
}

body {
    display: none;
    min-height: 100vh;
    background-repeat: no-repeat;
    background-position: center;
    background-attachment: fixed;
    background-size: cover;
    margin: 0;
}

body.appear {
    display: flex;
    flex-direction: column;
}

header .header,
footer .footer {
    visibility: hidden;
}

header .header[data-block-status="loaded"],
footer .footer[data-block-status="loaded"] {
    visibility: visible;
}

/** end: generic rules **/

/** start: main rules **/
main{
    display: flex;
    flex: 1;
}

main, footer nav{
    margin-inline: auto;
    padding-inline: calc(var(--spacing) * 4);
}

.text-base {
    font-size: var(--text-base);
    line-height: var(--text-base-line-height);
}

.text-sm {
    font-size: var(--text-sm);
    line-height: var(--text-sm-line-height);
}

.text-lg {
    font-size: var(--text-lg);
    line-height: var(--text-lg-line-height);
}

.hidden{
    display: none;
}

/** end: main rules **/

/** start: homepage **/
body.homepage main {
    align-items: center;
}

.homepage-center {
    color: var(--color-blue);
    text-align: center;
    max-width: 48rem;
}

.homepage-center > div {
    margin-top: calc(var(--spacing) * 4);
}

.homepage-center a {
    font-weight: bold;
    text-decoration: none;
    color: var(--color-blue);
}

.homepage-center p {
    margin-bottom: calc(var(--spacing) * 4);
}

/** end: homepage **/

/** start: cookie policy **/
.cookie-declaration{
    max-width: 60rem;
}

/** end: cookie policy **/

/** media query **/
@media (width >= 40rem) {
    main, footer nav {
        max-width: var(--breakpoint-sm);
    }

    .homepage-center > div {
        font-size: var(--text-lg);
    }
}

@media (width >= 48rem) {
    body {
        background-position: top;
    }
    
    main, footer nav {
        max-width: var(--breakpoint-md);
    }
}

@media (width >= 64rem) {
    main, footer nav {
        max-width: var(--breakpoint-lg);
    }

    body.homepage main {
        align-items: flex-start;
    }

    .homepage-center {
        margin-top: calc(var(--spacing) * 30);
        font-size: var(--text-xl);
    }
}

@media (width >= 80rem) {
    main, footer nav {
        max-width: var(--breakpoint-xl);
    }
}

@media (width >= 96rem) {
    main, footer nav {
        max-width: var(--breakpoint-2xl);
    }
}
