html,
body {
    font-family: "Lexend", sans-serif;
}

.bg-gradient-primary {
    background-color: #0d6efd !important;
    background-image: linear-gradient(135deg, #0d6efd 0%, #6610f2 100%) !important;
}

label.required::after,
.required-marker::after {
    content: "*";
    color: var(--bs-danger);
    font-size: 0.75em;
    vertical-align: super;
    margin-left: 0.5em;
}

.no-required-marker label.required::after {
    content: none;
}

/* Même surface de rendu dans la page, le canvas et la bibliothèque. */
.site-render-surface {
    font-family: "Lexend", sans-serif;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: var(--bs-body-color);
    text-align: start;
    overflow-wrap: anywhere;
}

.site-block-scope {
    display: contents;
    --site-block-can-overlap: 0;
}

.site-block-scope[data-site-block-type="hero"] + .site-block-scope,
.site-block-scope[data-site-block-type="hero_paysage"] + .site-block-scope,
.site-block-scope[data-site-block-type="emergency_hero"] + .site-block-scope {
    --site-block-can-overlap: 1;
}

.site-render-surface .container,
.site-render-surface .container-fluid {
    padding-left: 0;
    padding-right: 0;
}

@media (max-width: 1199.98px) {
    .site-render-surface {
        --quill-indent-step: clamp(0.25rem, 1vw, 0.5rem);
    }

    .site-render-surface .container,
    .site-render-surface .container-fluid {
        padding-inline: 1.5rem;
    }

    .site-render-surface :where(.row, .d-flex, .d-inline-flex) > * {
        min-width: 0;
    }

    .site-render-surface :where(img, video, iframe, .form-control, .form-select) {
        max-width: 100%;
    }

    .site-render-surface :where(a, button) {
        max-width: 100%;
    }

    .site-render-surface .btn {
        min-height: 44px;
        max-width: 100%;
        white-space: normal;
    }

    .site-render-surface .badge {
        max-width: 100%;
        white-space: normal;
    }
}

@media (max-width: 991.98px) {
    .site-render-surface .navbar-brand {
        flex: 1 1 0;
        max-width: calc(100% - 3.5rem);
        white-space: normal;
    }

    .site-render-surface .navbar-toggler {
        flex-shrink: 0;
        min-width: 44px;
        min-height: 44px;
    }

    .site-render-surface .navbar-collapse .dropdown-item {
        white-space: normal;
    }

    .site-render-surface .navbar-collapse .nav-link {
        display: flex;
        align-items: center;
        min-height: 44px;
    }
}

/* --- Composant menu réutilisable (_partial/_macros/_nav_menu.html.twig) --- */
/* Sous-menus déroulants imbriqués : Bootstrap 5 ne gère nativement qu'un seul niveau de dropdown */
.site-render-surface .dropdown-submenu {
    position: relative;
}
.site-render-surface .dropdown-submenu > .dropdown-menu {
    top: 0;
    left: 100%;
    margin-top: -1px;
}
.site-render-surface .dropdown-submenu > a.dropdown-toggle::after {
    transform: rotate(-90deg);
}
@media (max-width: 992px) {
    .site-render-surface .dropdown-submenu > .dropdown-menu {
        position: static;
        left: auto;
        top: auto;
        margin-left: 1rem;
        border: none;
        box-shadow: none;
    }
    .site-render-surface .dropdown-submenu > a.dropdown-toggle::after {
        transform: none;
    }
}
