/*
   Variantes visuelles globales du site public.
   Le thème Classique ne surcharge volontairement rien : il correspond exactement
   au rendu historique défini par les feuilles de style des composants.
*/

/* MODERNE ---------------------------------------------------------------- */
.site-shell.site-theme--moderne {
    --site-radius: 0.95rem;
    background:
        radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--theme-primary) 7%, transparent), transparent 28rem),
        #f4f7fb;
    color: #172033;
}

.site-theme--moderne .site-header {
    position: relative;
    z-index: 5;
    background: linear-gradient(125deg,
        color-mix(in srgb, var(--theme-primary) 88%, #0f172a),
        var(--theme-primary) 58%,
        color-mix(in srgb, var(--theme-primary) 86%, #ffffff));
    box-shadow: 0 0.65rem 1.8rem rgba(15, 23, 42, 0.18);
}

.site-theme--moderne .site-identity__mark {
    border-radius: 0.9rem;
    background: color-mix(in srgb, var(--theme-primary-contrast) 9%, transparent);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--theme-primary-contrast) 12%, transparent);
}

.site-theme--moderne .site-account__link {
    border-color: color-mix(in srgb, currentColor 58%, transparent);
    border-radius: 999px;
    background: color-mix(in srgb, currentColor 7%, transparent);
}

.site-theme--moderne .site-navigation {
    border-top-color: color-mix(in srgb, var(--theme-primary-contrast) 16%, transparent);
    background: color-mix(in srgb, var(--theme-primary) 74%, #0f172a);
    box-shadow: 0 0.4rem 1rem rgba(15, 23, 42, 0.12);
}

.site-theme--moderne .site-navigation__link {
    min-height: 2.55rem;
    align-self: center;
    margin-block: 0.32rem;
    border-radius: 0.65rem;
}

.site-theme--moderne .site-navigation__link--active {
    background: color-mix(in srgb, var(--theme-primary-contrast) 18%, transparent);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--theme-primary-contrast) 8%, transparent);
}

.site-theme--moderne .site-navigation__link--active::after {
    display: none;
}

.site-theme--moderne .site-global-search {
    border-color: color-mix(in srgb, var(--theme-primary-contrast) 36%, transparent);
    border-radius: 999px;
    box-shadow: 0 0.25rem 0.8rem rgba(15, 23, 42, 0.1);
}

.site-theme--moderne .site-main:not(.site-main--accueil):not(.site-main--presentation) {
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--theme-primary) 3%, #f7f9fc), #f7f9fc 18rem);
}

.site-theme--moderne .site-footer {
    background: linear-gradient(130deg,
        color-mix(in srgb, var(--theme-primary) 30%, #111827),
        #111827 72%);
}

.site-theme--moderne .module-header__icon {
    border-color: transparent;
    border-radius: 1rem;
    background: linear-gradient(145deg,
        color-mix(in srgb, var(--theme-primary) 94%, #ffffff),
        color-mix(in srgb, var(--theme-primary) 78%, #0f172a));
    color: var(--theme-primary-contrast);
    box-shadow: 0 0.55rem 1.25rem color-mix(in srgb, var(--theme-primary) 24%, transparent);
}

.site-theme--moderne .module-header__copy h2 {
    font-weight: 780;
    letter-spacing: -0.026em;
}

.site-theme--moderne .module-header__accent {
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg,
        color-mix(in srgb, var(--theme-primary) 32%, #d7dde5),
        #e3e8ee 60%, transparent);
}

.site-theme--moderne .module-header__accent::before {
    top: -1px;
    width: 7rem;
    height: 4px;
    box-shadow: 0 0.25rem 0.7rem color-mix(in srgb, var(--theme-primary) 22%, transparent);
}

.site-theme--moderne .home-article-card,
.site-theme--moderne .home-agenda-datecard,
.site-theme--moderne .home-agenda-poster,
.site-theme--moderne .numero-utile-card,
.site-theme--moderne .association-card,
.site-theme--moderne .conseil-seance-card,
.site-theme--moderne .document-public-card,
.site-theme--moderne .site-search-result,
.site-theme--moderne .contact-public__coordinates,
.site-theme--moderne .contact-public__form-card {
    border-color: color-mix(in srgb, var(--theme-primary) 12%, #dfe5eb);
    border-radius: calc(var(--site-radius) + 0.08rem);
    box-shadow: 0 0.65rem 1.8rem rgba(15, 23, 42, 0.075);
}

.site-theme--moderne .home-article-card:hover,
.site-theme--moderne .home-agenda-datecard:hover,
.site-theme--moderne .home-agenda-poster:hover,
.site-theme--moderne .numero-utile-card:hover,
.site-theme--moderne .association-card:hover,
.site-theme--moderne .document-public-card:hover,
.site-theme--moderne .site-search-result:hover {
    border-color: color-mix(in srgb, var(--theme-primary) 42%, #dfe5eb);
    box-shadow: 0 1rem 2.2rem rgba(15, 23, 42, 0.12);
    transform: translateY(-3px);
}

.site-theme--moderne .numero-utile-card__icon,
.site-theme--moderne .document-public-card__icon {
    border-radius: 0.9rem;
    background: color-mix(in srgb, var(--theme-primary) 12%, white);
}

.site-theme--moderne .contact-public__card-heading {
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--theme-primary) 9%, white),
        color-mix(in srgb, var(--theme-primary) 3%, white));
}

/* INSTITUTIONNEL --------------------------------------------------------- */
.site-shell.site-theme--institutionnel {
    --site-radius: 0.25rem;
    background: #f5f4f0;
    color: #202a36;
}

.site-theme--institutionnel .site-header {
    border-top: 0.42rem solid var(--theme-primary);
    border-bottom: 1px solid #d9dde2;
    background: #ffffff;
    color: #202a36;
    box-shadow: none;
}

.site-theme--institutionnel .site-identity__mark {
    border-color: var(--theme-primary);
    border-radius: 0.1rem;
    color: var(--theme-primary);
}

.site-theme--institutionnel .site-identity__text strong {
    color: color-mix(in srgb, var(--theme-primary) 62%, #172033);
}

.site-theme--institutionnel .site-contact small {
    color: #667281;
    opacity: 1;
}

.site-theme--institutionnel .site-account__link {
    border-color: var(--theme-primary);
    border-radius: 0.15rem;
    color: var(--theme-primary);
}

.site-theme--institutionnel .site-account__link:hover {
    background: color-mix(in srgb, var(--theme-primary) 7%, #ffffff);
    color: var(--theme-primary);
}

.site-theme--institutionnel .site-navigation {
    border-top: 0;
    background: var(--theme-primary);
    box-shadow: inset 0 -1px 0 color-mix(in srgb, var(--theme-primary-contrast) 15%, transparent);
}

.site-theme--institutionnel .site-navigation__link {
    font-weight: 720;
    letter-spacing: 0.01em;
}

.site-theme--institutionnel .site-navigation__link--active {
    background: color-mix(in srgb, var(--theme-primary-contrast) 14%, transparent);
}

.site-theme--institutionnel .site-navigation__link--active::after {
    right: 1rem;
    left: 1rem;
    height: 4px;
    border-radius: 0;
}

.site-theme--institutionnel .site-global-search {
    border-radius: 0.15rem;
}

.site-theme--institutionnel .site-main:not(.site-main--accueil):not(.site-main--presentation) {
    background: #f5f4f0;
}

.site-theme--institutionnel .site-footer {
    border-top: 0.35rem solid var(--theme-primary);
    background: #252d36;
}

.site-theme--institutionnel .module-header__leading {
    gap: 0.85rem;
}

.site-theme--institutionnel .module-header__icon {
    width: 2.8rem;
    height: 2.8rem;
    flex-basis: 2.8rem;
    border: 0;
    border-radius: 0.08rem;
    background: var(--theme-primary);
    color: var(--theme-primary-contrast);
    box-shadow: none;
}

.site-theme--institutionnel .module-header__copy h2 {
    color: #202a36;
    font-weight: 760;
    letter-spacing: -0.01em;
}

.site-theme--institutionnel .module-header__accent {
    background: #cfd5dc;
}

.site-theme--institutionnel .module-header__accent::before {
    width: 4rem;
    height: 4px;
    border-radius: 0;
}

.site-theme--institutionnel .home-article-card,
.site-theme--institutionnel .home-agenda-datecard,
.site-theme--institutionnel .home-agenda-poster,
.site-theme--institutionnel .numero-utile-card,
.site-theme--institutionnel .association-card,
.site-theme--institutionnel .conseil-seance-card,
.site-theme--institutionnel .document-public-card,
.site-theme--institutionnel .site-search-result,
.site-theme--institutionnel .contact-public__coordinates,
.site-theme--institutionnel .contact-public__form-card {
    border: 1px solid #d7dce1;
    border-top: 3px solid color-mix(in srgb, var(--theme-primary) 80%, #ffffff);
    border-radius: 0.12rem;
    box-shadow: none;
}

.site-theme--institutionnel .home-article-card:hover,
.site-theme--institutionnel .home-agenda-datecard:hover,
.site-theme--institutionnel .home-agenda-poster:hover,
.site-theme--institutionnel .numero-utile-card:hover,
.site-theme--institutionnel .association-card:hover,
.site-theme--institutionnel .document-public-card:hover,
.site-theme--institutionnel .site-search-result:hover {
    border-color: color-mix(in srgb, var(--theme-primary) 38%, #d7dce1);
    border-top-color: var(--theme-primary);
    box-shadow: 0 0.35rem 0.9rem rgba(15, 23, 42, 0.055);
    transform: none;
}

.site-theme--institutionnel .home-agenda-datecard__date,
.site-theme--institutionnel .home-agenda-poster__date {
    border-radius: 0;
    background: var(--theme-primary);
}

.site-theme--institutionnel .contact-public__card-heading {
    border-bottom-color: #d7dce1;
    background: #f2f1ec;
}

@media (prefers-reduced-motion: reduce) {
    .site-theme--moderne .home-article-card,
    .site-theme--moderne .home-agenda-datecard,
    .site-theme--moderne .home-agenda-poster,
    .site-theme--moderne .numero-utile-card,
    .site-theme--moderne .association-card,
    .site-theme--moderne .document-public-card,
    .site-theme--moderne .site-search-result {
        transition: none;
    }
}
