*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--color-background);
    color: var(--color-text);
    font-family: var(--font-body);
    font-size: 18px;
    line-height: 1.6;
}

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

h1,
h2,
h3 {
    margin-top: 0;
    color: var(--color-heading);
    font-family: var(--font-heading);
    font-weight: 500;
    line-height: 1.1;
}

a {
    color: var(--color-primary);
}

.site-header,
.site-footer {
    width: min(100% - (2 * var(--page-gutter)), var(--content-width));
    margin-inline: auto;
}

main > section {
    padding-block: var(--section-spacing);
}

/*
 * Fond bord à bord + contenu centré.
 * La section extérieure porte toujours le fond ; ce conteneur ne porte
 * que la largeur de lecture et les marges internes du contenu.
 */
.wb-fullbleed {
    width: 100vw;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
}

.wb-section-inner {
    width: 100%;
    max-width: 1280px;
    margin-inline: auto;
    padding-inline: clamp(24px, 4vw, 40px);
}
