
    :root {
        --text: #3a3a3a;
--links: #000091;
--titles: #161616;
--page-background: #ffffff;
--highlight: #000091;
--boxes-background: #FFFFFF;
--boxes-border: #dddddd;
--section-titles: #FFFFFF;
--section-titles-background: #2C3F56;
--header-background: #ffffff;
--header-links: #FFFFFF;
--footer-background: #2C3F56;
--footer-links: #FFFFFF;
--titles-font-family: "Marianne", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
--titles-h1-font-size: 2.8571rem;
--titles-h1-font-weight: 700;
--titles-h1-color: #161616;
--titles-h2-font-size: 2.2857rem;
--titles-h2-font-weight: 700;
--titles-h2-color: #161616;
--titles-h3-font-size: 2.0000rem;
--titles-h3-font-weight: 700;
--titles-h3-color: #161616;
--texts-font-family: "Marianne", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
--texts-primary-font-size: 1.1429rem;
--texts-primary-color: #3a3a3a;
--texts-secondary-font-size: 0.8571rem;
--texts-secondary-color: #666666;
--texts-link-color: #000091;
    }
    
:root { --react-body-font-family: "Marianne", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; }

/* ============================================================
   FEUILLE DE STYLE data.enseignementsup-recherche.gouv.fr
   Version harmonisée.

   Modifications par rapport à la version précédente :
   - Breakpoints du "pivot menu" unifiés :
       desktop = min-width: 993px   (aligné sur ODS breakpoint="993")
       mobile  = max-width: 992px
     (remplace les anciennes valeurs 981 / 982 / 991 / 61.939em / 62em)
   - Accolade orpheline finale supprimée
   - Les deux blocs :root fusionnés en un seul
   - Breakpoints à rôle distinct conservés tels quels :
       768, 600, 580, 550, 480, 370, 369, 350, 1200, 1400, 78em
   ============================================================ */


/* ============================================================
   VARIABLES (:root fusionné)
   ============================================================ */
:root {
    --text-title-grey: #161616;
    --text-mention-grey: #666;
    --text-action-high-blue-france: #000091;
    --text-active-blue-france: #000091;
    --background-raised-grey: #fff;
    --border-default-grey: #ddd;
    --shadow-color: rgba(0, 0, 18, 0.16);
    --raised-shadow: 0 1px 3px var(--shadow-color);
}


/* ============================================================
   CHAMP DE RECHERCHE — règles de base (héritées)
   NB : le style DSFR complet est plus bas.
   ============================================================ */
.rods-search-filter__wrapper {
    border-radius: unset !important;
    background-color: var(--grey-light);
}

.rods-search-filter__wrapper .rods-search-filter__icon {
    color: var(--white) !important;
    inset-inline-end: 0;
    width: 65px;
    background-color: var(--blue-france);
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rods-search-filter__wrapper label {
    color: #757575 !important;
}


/* ============================================================
   FONT MARIANNE
   ============================================================ */
/* Marianne Light (300) */
@font-face {
    font-family: 'Marianne';
    src: url('/assets/theme_font/Marianne-Light.woff2') format('Web Open Font Format 2');
    font-weight: 300;
    font-style: normal;
}

/* Marianne Regular (400) */
@font-face {
    font-family: 'Marianne';
    src: url('/assets/theme_font/Marianne-Regular.woff2') format('Web Open Font Format 2');
    font-weight: 400;
    font-style: normal;
}

/* Marianne Bold (700) */
@font-face {
    font-family: 'Marianne';
    src: url('/assets/theme_font/Marianne-Bold.woff2') format('Web Open Font Format 2');
    font-weight: 700;
    font-style: normal;
}

/* Marianne ExtraBold (800) */
@font-face {
    font-family: 'Marianne';
    src: url('/assets/theme_font/Marianne-ExtraBold.woff2') format('Web Open Font Format 2');
    font-weight: 800;
    font-style: normal;
}


/* ============================================================
   IMPRESSION
   ============================================================ */
@media print {
    .no-print, .no-print * {
        display: none !important;
    }
}


/* ============================================================
   STYLES DE BASE
   ============================================================ */
body {
    font-family: "Marianne", arial, sans-serif; /* Police officielle de l'administration */
    margin: 0;
    padding: 0;
    color: #3a3a3a;
}

h2 {
    margin-top: 1.2rem;
}

/* NB : la règle `main` (marges + cadrage 1200px) est centralisée
   dans le bloc "CONTENEURS — largeur unifiée DSFR" en fin de feuille. */


/* ============================================================
   HEADER — masquages responsive (brand referens / RTN)
   ============================================================ */
@media (max-width: 992px) {
    .mesr-header__brand-marianne-referens {
        margin-left: 10px;
    }
}

.mesr-header__brand-RTN {
    display: none;
}

@media screen and (max-width: 768px) {
    .mesr-header__brand-RTN {
        display: inline-block;
    }
    .mesr-header__brand-RTN a {
        font-size: 11px;
    }
    .mesr-header__brand-opendata {
        position: absolute;
        top: 28px;
        right: 10px;
    }
    .mesr-header__brand-opendata-referens {
        position: absolute;
        top: 10px;
        right: 10px;
    }
}


/* ============================================================
   FOOTER / FILTRES / CATALOGUE (styles legacy)
   ============================================================ */
.ods-front-footer {
    border: none;
}

.ods-filters {
    background-color: #fff;
    padding: 20px;
    opacity: 0.9;
}

.ods-dataset-visualization {
    background-color: #fff;
    padding: 20px;
    opacity: 0.9;
}

.ods-tabs {
    background-color: #fff;
    opacity: 0.9;
}

.ods-app-explore-catalog .ods-filters-placeholder {
    width: 300px;
}

.ods-app-explore-catalog .ods-filters {
    width: 300px;
}

.ods-app-explore-catalog .ods-result-list {
    margin-left: 320px;
}

.ods-filters__count {
    background-color: transparent;
    color: inherit;
}

.ods-filters__count-number {
    color: #000091;
    font-weight: bold;
}

.ods-filters__filters,
.ods-filters__export-catalog-title,
.odswidget-facet__facet-title {
    background-color: #000091;
    margin-left: -40px;
    color: white;
    padding-left: 1rem;
    font-weight: normal;
    border-radius: 0;
}

.mesr-catalog-card__angle {
    color: #000091;
    font-size: 1.67rem;
    position: absolute;
    top: 1rem;
    left: 1.33rem;
    font-weight: bold;
}

.ods-catalog-card__keyword {
    background-color: #337ab7;
}

.ods-catalog-card__keyword:hover {
    background-color: #c24468;
}

.ods-catalog-card__visualization:hover {
    color: #c24468;
}

.ods-dataset-visualization__social-button {
    background-color: #000091;
}

.ods-catalog-card {
    opacity: 0.9;
}

@media (min-width: 1200px) {
    .ods-catalog-card__wrapper {
        width: calc(100% - (20px / 2));
    }
}

.ods-collapsible__help-text {
    font-size: .9rem;
    font-style: italic;
    font-weight: 400;
    opacity: 1;
    color: #111;
}

.footer {
    color: #FFFFFF;
    background-color: #2c3f56;
}

.footer a {
    color: #FFFFFF;
    text-decoration: none;
    font-weight: 700;
}


/* ============================================================
   CLASSES D'AFFICHAGE RESPONSIVE (.court* / .long*)
   ============================================================ */
.court {
    display: none;
}
.long {
    display: block;
}
.court2 {
    display: none;
}
.long2 {
    display: inline-block;
}
.long3 {
    display: inline-block;
}

@media screen and (max-width: 768px) {
    .court {
        display: block;
    }
    .long {
        display: none;
    }
    .court2 {
        display: inline-block;
    }
    .long2 {
        display: none;
    }
}

@media screen and (max-width: 350px) {
    .court3 {
        display: none;
    }
}

@media screen and (max-width: 600px) {
    .court4 {
        display: none;
    }
}

@media screen and (max-width: 550px) {
    .court5 {
        display: none;
    }
}

@media screen and (max-width: 370px) {
    .court6 {
        display: none;
    }
}

@media screen and (min-width: 369px) {
    .court7 {
        display: none;
    }
}

.court8 {
    display: block;
}
.court9 {
    display: none;
}

@media (max-width: 580px) {
    .court8 {
        display: none;
    }
    .court9 {
        display: block;
    }
}

.court10 {
    display: none;
}

@media screen and (min-width: 1400px) {
    .court10 {
        display: inline-block;
    }
}


/* ============================================================
   DIVERS (boutons, icônes, collapsible, searchbox legacy)
   ============================================================ */
.fa-ban:before {
    content: "\f057";
}

.ods-collapsible {
    border-left: 3px solid #000091;
    padding-left: 1rem;
}

.ods-button {
    color: #fff;
    background-color: #000091;
    border-color: #000091;
}

.ods-button:not([disabled]):hover,
.ods-page-legacy .btn:not([disabled]):hover {
    text-decoration: none;
    background-color: #000091;
    color: #fff;
}

.ods-dataset-subscription__icon-unsubscribe {
    color: #fff;
}

.ods-dataset-subscription__icon-subscribed {
    color: #fff;
}

.searchbox__container2 {
}

.searchbox__content2 {
    position: relative;
}

.searchbox__box2 {
    width: 100%;
    font-size: 1.1rem;
    padding: 0.4rem;
    background-color: rgba(255, 255, 255, 0.9);
}

.searchbox__button2 {
    position: absolute;
    top: 0px;
    right: 0px;
    font-size: 1.3rem;
    padding: 0.25rem 0.35rem;
    border: medium none;
    background: none repeat scroll 0px 0px transparent;
    color: #666666;
}

.sommaire {
    margin-top: 7px;
}

.print, .print * {
    display: none !important;
}

@media print {
    .print, .print * {
        display: inline-block !important;
    }
}

.footerrf {
    color: #ffffff;
    background-color: #1c1c1c;
}

.footerrf a {
    color: #ffffff;
    text-decoration: none;
    font-weight: 700;
}

.pipe {
    color: #fc3d53;
}

.licence_ouverte {
    background-image: url("https://images.enseignementsup-recherche.pro/OD/licence_ouverte.svg");
    padding: 8px 0px 8px 15px;
    background-repeat: no-repeat;
    background-position: 0 0.4em;
    text-decoration: none;
    color: #616263;
    overflow: hidden;
    font-weight: normal;
    font-size: 110%;
}

.leaflet-control img {
    width: 16px;
}


/* ============================================================
   HEADER — logo, marque, service
   ============================================================ */
.fr-logo {
    display: inline-block;
    font-weight: 700;
    line-height: 1.03em;
    text-transform: uppercase;
    font-size: 1.05rem;
    color: var(--text-title-grey);
    margin: 0;
}

.fr-logo::before {
    content: "";
    display: block;
    width: 2.75rem;
    height: 1rem;
    margin-bottom: 0.33rem;
    background-repeat: no-repeat;
    background-image: linear-gradient(90deg, #000091 0%, #000091 50%, #e1000f 50%, #e1000f 100%);
}

.tools-mobile {
    display: none;
}

/* Adaptation écrans desktop (> 992px) */
@media (min-width: 993px) {
    .tools-desktop {
        display: flex;
        margin-left: auto;
    }
}


/* ============================================================
   HEADER (ENTETE NEW)
   ============================================================ */
.ods-front-header {
    height: 100%;
    padding: 0;
}

.ods-front-header__management-menu {
    position: unset;
    display: flex;
    align-items: stretch;
    flex-wrap: wrap;
}

li.ods-front-header__menu-item.ods-front-header__menu-item--active {
    box-shadow: inset 0 -2px 0 0 var(--text-active-blue-france);
    color: var(--text-active-blue-france);
}

a.ods-front-header__menu-item-link.ods-front-header__menu-item-link--active {
    color: var(--text-active-blue-france);
    background-color: #E3E3FD;
}

.ods-front-header__management-menu-item--backoffice {
    background-color: transparent;
}

.ods-front-header__management-menu-item-link {
    padding-bottom: 0;
}

.fr-header__tools-links a {
    gap: 8px;
}

.ods-front-header__management-menu-item {
    margin: 0;
    display: flex;
}

a.rods-button.ybl7ANO1XeIyJ5nmBDM3 {
    border-radius: unset;
    background-color: var(--text-active-blue-france) !important;
    color: #fff !important;
    fill: #fff !important;
}

a.rods-button.ybl7ANO1XeIyJ5nmBDM3 .rods-icon svg {
    fill: #fff !important;
}

.ods-responsive-menu-placeholder__toggle {
    color: var(--text-active-blue-france);
}

.fr-header__service a {
    color: inherit;
}

.fr-header__service a:hover {
    text-decoration: none;
}

ul.dropdown-menu-submenu.mobile.ng-scope.dropdown-menu-submenu__active {
    border-top: none;
}

/* --- STRUCTURE EN-TÊTE --- */
.fr-header {
    width: 100%;
    position: relative;
    background-color: #FFF;
}

.fr-header__body-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    margin: 0;
    width: 100%;
    justify-content: space-between;
    padding: 24px 0;
}

/* Conteneur DSFR — même largeur partout, y compris accueil */
.fr-container,
.fr-py-8w .fr-container,
[class*="fr-py"] .fr-container {
    width: 100%;
    max-width: 1200px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 1.5rem !important;   /* padding DSFR cohérent (comme l'accueil) */
    padding-right: 1.5rem !important;
    box-sizing: border-box;
}

/* --- LOGO ET IDENTITÉ --- */
.fr-header__brand {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    width: 100%;
    background-color: #fff;
}

.fr-header__service {
    padding: 0;
    width: 100%;
    box-shadow: inset 0 1px 0 0 var(--border-default-grey);
}

.fr-header__service-title {
    font-weight: 700;
    font-size: 1.25rem;
    margin: 0;
    line-height: 1.75rem;
}

/* --- MENU PRINCIPAL (##menu##) --- */
.fr-header__menu ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column; /* Par défaut : liste verticale pour mobile */
}

.fr-header__menu ul li a {
    display: block;
    padding: 0.75rem 1rem;
    color: var(--text-title-grey);
    text-decoration: none;
    font-weight: 400;
}

.fr-header__menu ul li a:hover {
    background-color: #E3E3FD;
    color: var(--text-active-blue-france);
}

.fr-header__menu ul li.dropdown-menu-submenu-item a {
    color: var(--text-title-grey);
    padding: 12px 28px;
}

.fr-header__menu ul li.dropdown-menu-submenu-item a:hover {
    background-color: #ebebeb;
}

.ods-front-header__menu-item-link {
    font-size: 14px;
    line-height: 1.5rem;
    opacity: 1;
}

/* --- MENU SECONDAIRE (##secondary-menu##) --- */
.fr-header__tools-links ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 1rem;
}

.fr-header__tools-links a {
    font-size: 0.875rem;
    color: var(--text-active-blue-france);
    text-decoration: none;
    display: flex;
    align-items: center;
}

/* --- ADAPTATION ÉCRANS LARGES (ORDINATEURS, > 992px) --- */
@media (min-width: 993px) {
    .fr-header__brand {
        width: auto;
        flex-wrap: nowrap;
        box-shadow: none;
    }
    .fr-header__service {
        width: auto;
        box-shadow: none;
        margin-left: 1rem;
    }
    .tools-mobile {
        display: none;
    }
    .fr-header__menu ul {
        flex-direction: row; /* Ligne horizontale sous le logo */
    }
    .fr-header__menu {
        width: 100%;
    }
    .fr-header__menu ul li a {
        border-bottom: none;
        padding: 16px;
    }
}

/* --- ADAPTATION ÉCRANS MOBILES (<= 992px) --- */
@media (max-width: 992px) {
    .tools-desktop {
        display: none;
    }
    .tools-mobile {
        display: block;
        border-bottom: 1px solid var(--border-default-grey);
    }
    .fr-header__brand-top {
        width: 100%;
    }
}

@media (min-width: 993px) {
    a.ods-front-header__menu-item-link {
        padding: 1rem;
        margin: 0;
        width: auto;
        min-height: 3.5rem;
        font-weight: normal;
        font-size: 14px;
        line-height: 1.5rem;
    }
    .fr-footer__content {
        flex-basis: 50%;
        margin-left: auto;
    }
    .fr-footer__body {
        flex-wrap: nowrap;
    }
}


/* ============================================================
   DESKTOP SPECIFICS — HEADER ODS
   ============================================================ */
.ods-responsive-menu-collapsible__content {
    box-shadow: 0 2px 6px 0 rgba(0, 0, 18, 0.07);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}

.ods-front-header__portal-brand {
    display: flex;
    height: 40px;
    position: relative;
    top: 0;
}


/* ============================================================
   DESKTOP SPECIFICS — DROPDOWN MENU
   ============================================================ */
.ods-front-header__menu-item {
    position: relative;
}

.ods-front-header__menu-item-link--active {
    border-bottom: 0px solid;
    color: #FFF;
    opacity: 1;
}

li.dropdown-menu i {
    font-size: 1.2em;
    margin-left: 13.5px;
}

/* Desktop (> 992px) : sous-menu déroulant horizontal */
@media (min-width: 993px) {
    ul.dropdown-menu-submenu.desktop {
        display: none;
        margin: 0;
        padding: 22px 10%;
        list-style: none;
        background-color: #ffffff;
    }
    ul.dropdown-menu-submenu.desktop.dropdown-menu-submenu__active {
        display: flex;
        flex-direction: column;
        border-top: 1px solid var(--light-decisions-border-border-open-blue-france, #E3E3FD);
    }
    ul.dropdown-menu-submenu.mobile {
        display: none;
    }
    ul.dropdown-menu-submenu.mobile.dropdown-menu-submenu__active {
        display: none;
    }
}

/* Mobile (<= 992px) : sous-menu déroulant vertical */
@media (max-width: 992px) {
    ul.dropdown-menu-submenu.mobile {
        display: none;
        margin: 0;
        padding: 22px 10%;
        list-style: none;
        background-color: #ffffff;
    }
    ul.dropdown-menu-submenu.mobile.dropdown-menu-submenu__active {
        display: flex;
        flex-direction: column;
        border-top: 1px solid var(--light-decisions-border-border-open-blue-france, #E3E3FD);
    }
    ul.dropdown-menu-submenu.desktop {
        display: none;
    }
    ul.dropdown-menu-submenu.desktop.dropdown-menu-submenu__active {
        display: none;
    }
}

.dropdown-menu-submenu__close {
    display: flex;
    justify-content: end;
    align-items: center;
    gap: 8px;
    padding: 4px 8px 4px 12px;
    font-size: 14px;
    font-weight: 500;
    color: var(--text-active-blue-france);
}

.dropdown-menu-submenu__content {
    display: grid;
    gap: 0;
    grid-template-columns: 1fr 1fr 1fr 1fr;
}

li.dropdown-menu-submenu-item {
}

li.dropdown-menu-submenu-item:last-child {
    margin-bottom: inherit;
}

.ods-responsive-menu-collapsible:not(.ods-responsive-menu-collapsible--collapsed) ul.ods-front-header__menu {
    display: flex;
    align-items: center;
}

.ods-responsive-menu-collapsible:not(.ods-responsive-menu-collapsible--collapsed) ul.dropdown-menu-submenu {
    width: 100%;
    z-index: 1001;
}

.ods-responsive-menu-collapsible:not(.ods-responsive-menu-collapsible--collapsed) .ods-front-header__menu .custom-menu-item-submenu {
    width: 100%;
    padding: 20px !important;
    filter: drop-shadow(0px 0px 8px rgba(37, 48, 59, 0.2)) !important;
}

.ods-responsive-menu-collapsible:not(.ods-responsive-menu-collapsible--collapsed) .ods-front-header__menu .dropdown-menu-submenu a {
    white-space: nowrap;
}


/* ============================================================
   MOBILE SPECIFICS — HEADER ODS
   ============================================================ */
.ods-responsive-menu-placeholder.ods-responsive-menu-placeholder--active {
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}

.ods-responsive-menu--collapsed .ods-responsive-menu-collapsible__content {
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
}

.ods-responsive-menu-collapsible--collapsed .ods-front-header__logo {
    display: none;
}

.ods-responsive-menu-collapsible--collapsed .ods-front-header__menu,
.ods-responsive-menu-collapsible--collapsed .ods-front-header__management-menu {
    width: 100%;
}


/* ============================================================
   FOOTER
   ============================================================ */
.fr-footer {
    width: 100%;
    box-shadow: 0 -2px 0 0 var(--text-action-high-blue-france);
    border-top: 1px solid var(--border-default-grey);
}

.fr-footer a:hover {
    text-decoration: none;
}

.fr-footer__bg {
    background: #F6F6F6;
    padding: 30px;
}

.fr-footer__body {
    display: flex;
    justify-content: space-between;
    flex-direction: row;
    align-items: center;
    padding-top: 1rem;
}

.fr-footer__content {
    display: flex;
    flex-wrap: wrap;
}

.fr-footer__content-desc {
    --underline-img: linear-gradient(0deg, currentColor, currentColor);
    --text-spacing: 0 0 0.5rem 0;
    width: 100%;
    font-size: 0.875rem;
    line-height: 1.5rem;
    text-align: left;
}

.fr-footer__content-list, .fr-footer__bottom-list {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    list-style-type: none;
    margin: 0;
    padding: 0;
}

.fr-footer__content-item {
    margin-left: 1rem;
    margin-bottom: 0.5rem;
}

li.fr-footer__content-item:first-child {
    margin: 0;
    padding: 0;
}

.fr-footer__bottom-item {
    margin-left: 1rem;
    margin-bottom: 0.5rem;
    padding-left: 1rem;
    color: var(--text-mention-grey);
    border-left: 1px solid var(--text-mention-grey);
}

.ods-front-footer__language, ods-manage-cookies-preferences {
    margin-left: 1rem;
    margin-bottom: 0.5rem;
    padding-left: 1rem;
    color: var(--text-mention-grey);
    border-left: 1px solid var(--text-mention-grey);
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--text-title-grey);
}

li.ods-front-footer__language:first-child {
    margin: 0;
    padding: 0;
    border: none;
}

.ods-front-footer__link--active {
    font-weight: 700 !important;
}

.ods-manage-cookies-preferences__show-button {
    padding: 0;
}

.ods-front-footer__link {
    color: var(--text-title-grey);
    font-weight: 400;
}

.fr-footer__content-link, .fr-footer__bottom-link {
    display: flex;
    gap: 4px;
    align-items: baseline;
    font-size: 0.875rem;
    color: var(--text-title-grey);
    text-decoration: none;
}

.fr-footer__content-link {
    font-weight: 700;
}

.fr-footer__bottom-link {
    font-weight: 400;
}

.fr-footer__bottom {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border-default-grey);
}

.fr-footer__bottom-copy {
    color: var(--text-mention-grey);
    font-size: 0.75rem;
    margin-top: 0.5rem;
}

.umami-footer {
    display: flex;
    width: 100%;
    flex-wrap: wrap;
}

.fr-footer__bg .fr-container {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
}

.fr-logo-container, .fr-site-container, .fr-theme-container, .fr-poi-container {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    flex: 1;
}

.fr-logo-box {
    display: flex;
    flex-wrap: wrap;
}

.footer-container__title {
    display: flex;
    height: 20px;
    font-weight: 700;
}

.footer-container__list {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
}

.footer-container__list a {
    line-height: 20px;
    text-align: left;
    color: unset;
}


/* ============================================================
   CORRECTIFS RESPONSIVE MOBILE (<= 992px)
   ============================================================ */
@media (max-width: 992px) {

    /* 1. Padding latéral sur tous les conteneurs de contenu.
       Le contenu ODS (214, Catalogue, recherche) n'est pas dans
       .fr-container → sans ça il colle aux bords de l'écran. */
    .fr-container,
    .fr-container-sm,
    .fr-container-md,
    .fr-container-lg,
    main,
    main > *,
    .ods-app,
    .ods-app-home,
    [class*="ods-app"],
    .ods-dataset-page,
    .ods-catalog-page {
        padding-left: 1rem;
        padding-right: 1rem;
        box-sizing: border-box;
    }

    /* Éviter le double padding (conteneur imbriqué) */
    main .fr-container,
    .fr-container .fr-container {
        padding-left: 0;
        padding-right: 0;
    }

    /* 2. Garde-fou anti-débordement horizontal */
    html, body {
        overflow-x: hidden;
        max-width: 100%;
    }

    /* 3. Titres : pas de coupure au milieu des mots ("Catalog/ue").
       Le thème ODS impose word-break:break-all + max-width:50%. */
    h1, h2, h3,
    .rods-typography-h1,
    .rods-typography-h2,
    .rods-typography-h3,
    [class*="rods-typography-h"],
    .fr-header__service-title {
        word-break: normal !important;
        overflow-wrap: break-word !important;
        hyphens: none !important;
        -webkit-hyphens: none !important;
        max-width: 100% !important;
    }

    /* 4. Champs de recherche : pas de débordement */
    input[type="text"],
    input[type="search"],
    .searchbox__box2,
    [class*="searchbox"] input {
        max-width: 100%;
        box-sizing: border-box;
    }

    /* 5. Logo Marianne : réduire la hauteur imposée en inline (115px) */
    .mesr-header__brand-marianne-img {
        height: 68px !important;
        width: auto !important;
    }

    /* 6. Header : compacter */
    .fr-header__body-row {
        padding: 8px 0;
        align-items: center;
    }
    .ods-front-header {
        height: auto;
    }

    /* 7. Footer : liens légaux empilés proprement */
    .fr-footer__bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.25rem;
    }
    .fr-footer__bottom-item,
    .ods-front-footer__language,
    ods-manage-cookies-preferences {
        margin-left: 0;
        padding-left: 0;
        border-left: none;
    }
    .fr-footer__bg .fr-container {
        flex-direction: column;
        gap: 1.5rem;
    }

    /* 8. Tableaux de données : scroll horizontal propre */
    .ods-dataset-visualization,
    .ods-tabs {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}

/* Très petits écrans (<= 480px) */
@media (max-width: 480px) {
    .mesr-header__brand-marianne-img {
        height: 56px !important;
    }
}


/* ============================================================
   CHAMP DE RECHERCHE — STYLE DSFR (final)
   Fond gris + trait bas 2px + loupe bleue pleine hauteur.
   Floating label natif préservé (centré au repos, remonté
   et visible à la saisie). Pas de contour parasite.

   Gestion du trait bas :
   - Trait porté par le wrapper → présent partout par défaut
     (catalogue OK, sans dépendre d'un <form>)
   - Retiré du wrapper sous .fr-search-bar (accueil), sur TOUS
     les états, car ce conteneur porte déjà son propre trait
   → un seul trait de 2px de chaque côté, jamais de doublon
     (y compris au hover/focus).
   ============================================================ */

/* --- WRAPPER : fond gris, trait bas 2px (partout), label centré au repos --- */
.rods-front-office-container .rods-search-filter__wrapper,
.rods-front-office-container .rods-search-filter__wrapper.rods-search-filter__wrapper--has-value,
.rods-front-office-container .rods-search-filter__wrapper:hover:not(.rods-search-filter__wrapper--disabled),
.rods-front-office-container .rods-search-filter__wrapper:focus-within:not(.rods-search-filter__wrapper--disabled),
.rods-front-office-container .rods-search-filter__wrapper:active:not(.rods-search-filter__wrapper--disabled) {
    border: none !important;
    border-bottom: 2px solid var(--blue-france, #000091) !important;
    outline: none !important;
    outline-color: transparent !important;
    box-shadow: none !important;
    background-color: var(--grey-light, #f6f6f6) !important;
    border-radius: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    height: 58px !important;
    min-height: 58px !important;
    overflow: hidden !important;
}

/* --- Retirer le trait du wrapper SOUS .fr-search-bar (accueil),
   sur TOUS les états, pour éviter le doublon (accueil a son propre trait). --- */
.fr-search-bar .rods-front-office-container .rods-search-filter__wrapper,
.fr-search-bar .rods-front-office-container .rods-search-filter__wrapper:hover:not(.rods-search-filter__wrapper--disabled),
.fr-search-bar .rods-front-office-container .rods-search-filter__wrapper:focus-within:not(.rods-search-filter__wrapper--disabled),
.fr-search-bar .rods-front-office-container .rods-search-filter__wrapper:active:not(.rods-search-filter__wrapper--disabled),
.rods-front-office-container .fr-search-bar .rods-search-filter__wrapper,
.rods-front-office-container .fr-search-bar .rods-search-filter__wrapper:hover:not(.rods-search-filter__wrapper--disabled),
.rods-front-office-container .fr-search-bar .rods-search-filter__wrapper:focus-within:not(.rods-search-filter__wrapper--disabled),
.rods-front-office-container .fr-search-bar .rods-search-filter__wrapper:active:not(.rods-search-filter__wrapper--disabled) {
    border-bottom: none !important;
}

/* --- INPUT : dénudé, place pour la loupe, texte aéré du label --- */
.rods-front-office-container .rods-search-filter__wrapper input {
    border: none !important;
    outline: none !important;
    background: transparent !important;
    padding-inline-end: 3.5rem !important;
    padding-top: 12px !important;
}

/* --- LABEL : couleur au repos uniquement (le floating label natif
   gère la remontée au focus) --- */
.rods-front-office-container .rods-search-filter__wrapper label {
    color: #757575 !important;
}

/* --- LOUPE : bloc bleu plein, pleine hauteur, à droite --- */
.rods-front-office-container .rods-search-filter__wrapper .rods-search-filter__icon {
    inset-inline-end: 0 !important;
    top: 0 !important;
    bottom: 0 !important;
    transform: none !important;
    width: 3.25rem !important;
    height: auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background-color: var(--blue-france, #000091) !important;
    color: #fff !important;
    border-radius: 0 !important;
}

.rods-front-office-container .rods-search-filter__wrapper .rods-search-filter__icon .rods-icon {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #fff !important;
}

.rods-front-office-container .rods-search-filter__wrapper .rods-search-filter__icon svg {
    fill: #fff !important;
    width: 20px !important;
    height: 20px !important;
    flex-shrink: 0 !important;
}


/* ============================================================
   HEADER — ALIGNEMENT DSFR (desktop >= 993px)
   Logo + nom de service alignés à gauche, centrés verticalement.
   PAS de séparateur vertical (le DSFR n'en a pas).
   ============================================================ */
@media (min-width: 993px) {

    .fr-header__body-row {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: space-between !important;
        padding: 1rem 0 !important;
    }

    /* Bloc-marque : logo + service centrés vert. sur la même ligne */
    .fr-header__brand {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        flex-wrap: nowrap !important;
        width: auto !important;
    }

    /* Chaîne du logo : tout centré, sans décalage résiduel */
    .fr-header__brand-top {
        display: flex !important;
        align-items: center !important;
        width: auto !important;
    }
    .fr-header__logo,
    .fr-header__logo a {
        display: flex !important;
        align-items: center !important;
    }

    /* Logo : override du height:115px inline, taille DSFR contenue */
    .mesr-header__brand-marianne-img {
        height: 80px !important;
        width: auto !important;
        display: block !important;
    }

    /* Service : centré vert. sur le logo, sans séparateur */
    .fr-header__service {
        width: auto !important;
        margin-left: 1.25rem !important;
        padding-left: 0 !important;
        box-shadow: none !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
        align-self: center !important;
    }
    .fr-header__service > a {
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
        text-decoration: none !important;
        color: inherit !important;
    }

    /* Typographie officielle DSFR (à préserver selon la spec) */
    .fr-header__service-title {
        font-weight: 700 !important;
        font-size: 1.25rem !important;
        line-height: 1.75rem !important;
        margin: 0 !important;
    }
    .fr-header__service-tagline {
        font-size: 0.875rem !important;
        line-height: 1.5rem !important;
        color: var(--text-mention-grey, #666) !important;
        margin: 0 !important;
    }

    /* Outils à droite (Back office / compte) : centrés verticalement */
    .fr-header__tools.tools-desktop {
        display: flex !important;
        align-items: center !important;
    }
}


/* ============================================================
   CONTENEURS — largeur unifiée DSFR (1200px)
   Aligne header, contenu accueil et contenu catalogue sur la
   MÊME boîte centrée → marge gauche identique partout.
   Remplace l'ancien @media (min-width: 78em){ max-width:78rem }.
   ============================================================ */

/* <main> cadré à 1200px, centré (pages sans conteneur interne) */
main {
    max-width: 1200px !important;
    margin-top: 5px !important;
    margin-bottom: 5px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    width: 100%;
    box-sizing: border-box;
}

/* Conteneur DSFR (header + accueil) */
.fr-container {
    width: 100%;
    max-width: 1200px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0;
    padding-right: 0;
    box-sizing: border-box;
}

/* Conteneurs de contenu ODS hashés (_grid / _header) */
[class*="_grid_"],
[class*="_header_"] {
    max-width: 1200px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    width: 100%;
    box-sizing: border-box;
}

/* Échappement : éléments qui doivent rester pleine largeur
   (cartes Leaflet, bandeaux, visualisations plein écran) */
main .leaflet-container,
main [class*="fullwidth"],
main [class*="full-width"] {
    max-width: none !important;
    width: 100% !important;
}

/* Mobile (<= 992px) : padding latéral pour ne pas coller aux bords */
@media (max-width: 992px) {
    main,
    .fr-container,
    [class*="_grid_"],
    [class*="_header_"] {
        padding-left: 1rem;
        padding-right: 1rem;
    }
}