@charset "UTF-8";

html, body {
    line-height: 1.55;
}

h1, h2, h3, h4, h5, p {
    margin: 0;
}

h1, h2, h3, h4, h5 {
    font-weight: var(--brand-font-lght);
    color: var(--brand-primary-dark);
    line-height: 1.25;
    ul + &, p + & {
        padding-top: 0.75rem;
    }
}

h1 {
    font-size: clamp(1.875rem, calc(1.0096rem + 2.4038vw), 2.5rem);
    margin-bottom: 2.25rem;
    letter-spacing: -1px;
    text-transform: uppercase;
    color: var(--brand-primary-color);
    &:has(+ h2) {
        margin-bottom: 0.25rem;
    }
}

h2 {
    font-size: clamp(1.375rem, calc(0.6827rem + 1.9231vw), 1.875rem);
    margin-bottom: 1.75rem;
    h1 + & {
        padding-top: 0;
        color: var(--brand-gray-color);
        text-transform: none;
    }
    p + &, ul + &, ol + & {
        margin-top: 2.25rem;
    }
    &:has(+ h3.subheadline) {
        margin-bottom: 0.5rem;
    }
}

h3 {
    font-size: clamp(1.25rem, calc(0.9038rem + 0.9615vw), 1.5rem);
    margin-bottom: 1.25rem;
    p + &, ul + &, ol + & {
        margin-top: 1.75rem;
    }
    &:has(+ h1) {
        margin-bottom: 0.5rem;
        color: var(--brand-gray-color);
    }
    &.subheadline {
        color: var(--brand-gray-color);
    }
}

h4 {
    font-size: clamp(1rem, calc(0.6538rem + 0.9615vw), 1.25rem);
    margin-bottom: 1rem;
    h3 + & {
        padding-top: 0.5rem;
    }
    p + &, ul + &, ol + & {
        margin-top: 1.25rem;
    }
}

h5 {
    margin-bottom: 0.25rem;
    h4 + & {
        padding-top: 0.5rem;
    }
    p + &, ul + &, ol + & {
        margin-top: 0.5rem;
    }
}

p {
    hyphens: auto;
    hyphenate-limit-chars: auto 4;
    hyphenate-limit-lines: 2;
    -ms-hyphenate-limit-lines: 2;
    -webkit-hyphenate-limit-lines: 2;

    font-size: clamp(0.875rem, calc(0.7019rem + 0.4808vw), 1rem);
    margin-bottom: 0.75rem;
    &:last-child {
        margin-bottom: 0;
    }
    &.intro-text {
        font-weight: var(--brand-font-lght);
        font-size: clamp(1rem, calc(0.6538rem + 0.9615vw), 1.25rem);
    }
}

a:not(.glightbox) {
    transition: 0.25s ease;
    text-decoration: underline;
    color: var(--brand-primary-color);
    &:hover {
        color: var(--brand-primary-dark);
    }

    &.cta-btn {
        display: inline-block;
        font-size: clamp(1rem, calc(0.6538rem + 0.9615vw), 1.25rem);
        text-transform: uppercase;
        text-decoration: none;
        padding: 0.525rem 1.375rem 0.375rem;
        background: var(--brand-primary-color);
        color: var(--brand-light-color);
        border-radius: 5rem;
        &:hover {
            background: var(--brand-primary-dark);
        }
    }
}

ol, ul {
    margin: 0;
    font-size: clamp(0.875rem, calc(0.7019rem + 0.4808vw), 1rem);
    padding-bottom: 0.75rem;
    padding-left: 1.375rem;

    li {
        padding-bottom: 0.5rem;
        &:last-child {
            padding-bottom: 0;
        }

        &:has(h2) {
            font-size: clamp(1.375rem, calc(0.6827rem + 1.9231vw), 1.875rem);

            h2 {
                display: inline-block;
                margin-top: 0.2em;
            }
        }
    }
}


ol {
    --level-1-gap: 2.25rem;
    list-style: none;
    counter-reset: item;
    padding-left: var(--level-1-gap);

    @media screen and (min-width: 768px) {
        --level-1-gap: 2.5rem;
    }

    @media screen and (min-width: 992px) {
        --level-1-gap: 3rem;
    }

    li {
        position: relative;
        display: block;

        &::before {
            position: absolute;
            color: var(--brand-primary-color);
            content: counters(item, ".") " ";
            counter-increment: item;
        }
    }

    > li::before {
        left: calc(var(--level-1-gap) * -1);
    }

    & > ol {
        margin-left: calc(var(--level-1-gap) * -1);

        li {
            &::before {
                font-weight: var(--brand-font-rglr);
            }
        }
    }
    & > ol:not(:last-child) {
        margin-bottom: 2.5rem;
    }
}

.address {
    font-weight: var(--brand-font-lght);
    margin: 0 0 0.5rem 0;
}

.text-align-center {
    text-align: center;
}

.petit {
    font-size: clamp(0.675rem, calc(0.3981rem + 0.7692vw), 0.875rem);
    font-weight: var(--brand-font-lght);
}

strong, .bold {
    font-weight: var(--brand-font-bld);
}

.color-primary {
    text-transform: uppercase;
    color: var(--brand-primary-color);
}