/*
Theme Name: Town Hall Child
Template: town-hall
*/
@import url("../town-hall/style.css");

/* ===================================================
   Header hero section consistency fixes
   rgb(13, 60, 76) = couleur de reference
   =================================================== */

.elementor-element-111adb5 {
    background-color: rgb(13, 60, 76) !important;
    padding: 154px 40px 0px !important;
    flex-direction: column !important;
    justify-content: normal !important;
    align-items: normal !important;
}

.elementor-element-hvtose7 {
    background-color: rgb(13, 60, 76) !important;
}

.elementor-element.elementor-element-de522de {
    max-width: 1280px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0px !important;
    padding-right: 0px !important;
}

.elementor-element-ihkkl7a,
.elementor-element-a4jqg1u {
    display: none !important;
}

/* ===================================================
   /mairie-demarches/ Horaires d ouverture
   =================================================== */

.elementor-element-02cd34c {
    padding-top: 80px !important;
    padding-bottom: 80px !important;
}

.elementor-element-1bfa516 {
    display: flex !important;
    justify-content: center !important;
}

.elementor-element-1bfa516 table {
    width: auto !important;
    min-width: 560px !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    box-shadow: 0 4px 24px rgba(13, 60, 76, 0.14) !important;
    font-size: 15px !important;
}

.elementor-element-1bfa516 table th {
    background-color: rgb(13, 60, 76) !important;
    color: rgb(246, 214, 119) !important;
    padding: 14px 48px !important;
    font-weight: 700 !important;
    letter-spacing: 0.7px !important;
    text-transform: uppercase !important;
    font-size: 12px !important;
    border: none !important;
}

.elementor-element-1bfa516 table th:first-child {
    border-right: 1px solid rgba(246, 214, 119, 0.25) !important;
}

.elementor-element-1bfa516 table td {
    padding: 13px 48px !important;
    background-color: #ffffff !important;
    border: none !important;
    border-bottom: 1px solid rgba(13, 60, 76, 0.07) !important;
}

.elementor-element-1bfa516 table tr:nth-child(even) td {
    background-color: rgb(244, 249, 251) !important;
}

.elementor-element-1bfa516 table tr:last-child td {
    border-bottom: none !important;
}

.elementor-element-1bfa516 table td:first-child {
    border-right: 1px solid rgba(13, 60, 76, 0.09) !important;
}

/* ===================================================
   Navbar - centrage du logo + menu
   =================================================== */

.elementor-element-1825e150 {
    justify-content: center !important;
    gap: 60px !important;
}

/* ===================================================
   WPFront Notification Bar - style coherent avec theme
   =================================================== */

#wpfront-notification-bar {
    font-family: inherit !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    letter-spacing: 0.2px !important;
}

/* Accès rapides 4-column cards row */
.elementor-element.elementor-element-fl3ef4q {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
}
.elementor-element.elementor-element-tz5elny,
.elementor-element.elementor-element-ekdmr7e,
.elementor-element.elementor-element-o3hiixv,
.elementor-element.elementor-element-9e6uzin {
    width: calc(25% - 18px) !important;
    min-width: 200px !important;
    flex: 1 1 200px !important;
}

/* Mayor photo placeholder - teal background box */
.elementor-element.elementor-element-h8z4tuh {
    background-color: rgb(13, 60, 76) !important;
    border-radius: 16px !important;
    min-height: 260px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 48px 32px !important;
}
.elementor-element.elementor-element-9nr4sbj .elementor-heading-title,
.elementor-element.elementor-element-xts28xt .elementor-heading-title {
    color: rgb(246, 214, 119) !important;
}
.elementor-element.elementor-element-kcdkby5 p {
    color: rgba(255,255,255,0.6) !important;
    font-size: 13px !important;
    text-align: center !important;
}
/* Mayor right column gap */
.elementor-element.elementor-element-xvvm3b3 {
    gap: 20px !important;
}

/* ── Bandeau alerte + navbar ──────────────────────── */

/* Décale le header sous la barre de notification WPFront (46px) */
/* header top set dynamically by JS in functions.php */
body.admin-bar header.elementor {
    top: 32px; /* fallback: admin-bar only, JS overrides */
}
body:not(.admin-bar) header.elementor {
    top: 0px; /* fallback: no bars, JS overrides */
}

/* Centre le bloc logo+nav et empêche le wrapping */
.elementor-element-1825e150 {
    justify-content: center !important;
    gap: 32px !important;
}

/* Empêche les liens de nav de sauter à la ligne */
.elementor-element-7158753f ul {
    flex-wrap: nowrap !important;
}
.elementor-element-7158753f ul > li {
    padding-left: 10px !important;
    padding-right: 10px !important;
    white-space: nowrap !important;
}
/* ─────────────────────────────────────────────────── */


/* ── Fond teal pleine largeur sur tout le header ──────────────────────────── */
header.elementor,
.elementor-element-2c6abbd1 {
    background-color: rgb(13, 60, 76) !important;
}
/* ── Header : contraindre rangées à la largeur de leur conteneur ────────────── */
.elementor-element-7da64e9e,
.elementor-element.elementor-element-1825e150 {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}
.elementor-element-7158753f {
    flex-grow: 0 !important;
    width: auto !important;
}
/* ──────────────────────────────────────────────────────────────────────────── */

/* ── Accès rapides : style thème (fond clair, cartes blanches) ─────────────── */
/* Section background : blanc/crème comme les sections du thème */
.elementor-element-e98fa3e {
    background: #ffffff !important;
    background-image: none !important;
}
/* Titre de section : couleur teal du thème */
.elementor-element-e98fa3e .elementor-element-2194069 .elementor-heading-title {
    color: rgb(13, 60, 76) !important;
}
.elementor-element-e98fa3e .elementor-element-d1fd194 .elementor-heading-title {
    color: #555 !important;
    font-size: 18px !important;
    font-weight: 400 !important;
}
/* Cartes : fond blanc, ombre légère, hover */
.elementor-element-tz5elny,
.elementor-element-ekdmr7e,
.elementor-element-o3hiixv,
.elementor-element-9e6uzin {
    background-color: #ffffff !important;
    border: 1px solid #e8e0d5 !important;
    border-radius: 12px !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07) !important;
    cursor: pointer !important;
    transition: box-shadow 0.25s ease, transform 0.2s ease !important;
}
.elementor-element-tz5elny:hover,
.elementor-element-ekdmr7e:hover,
.elementor-element-o3hiixv:hover,
.elementor-element-9e6uzin:hover {
    box-shadow: 0 8px 28px rgba(13,60,76,0.15) !important;
    transform: translateY(-4px) !important;
}
/* Icônes : taille gérée par le thème */
/* Titres des cartes : couleur teal, taille réduite */
.elementor-element-sitwjw2 .elementor-heading-title,
.elementor-element-md2z5fb .elementor-heading-title,
.elementor-element-hpitsp8 .elementor-heading-title,
.elementor-element-w67qom7 .elementor-heading-title {
    color: rgb(13, 60, 76) !important;
    font-size: 20px !important;
    font-weight: 700 !important;
}
/* Sous-titres/descriptions des cartes : gris */
.elementor-element-5vd3ygz p,
.elementor-element-xgff6aw p,
.elementor-element-1a4seun p,
.elementor-element-9ofj07d p {
    color: #666666 !important;
    font-size: 14px !important;
}
/* Supprimer les anciens CSS qui forcent bg semi-transparent */
/* ──────────────────────────────────────────────────────────────────────────── */

/* Accès rapides : description visible (était blanc sur blanc) */
.elementor-element-tz5elny .elementor-text-editor p,
.elementor-element-tz5elny .elementor-text-editor,
.elementor-element-ekdmr7e .elementor-text-editor p,
.elementor-element-ekdmr7e .elementor-text-editor,
.elementor-element-o3hiixv .elementor-text-editor p,
.elementor-element-o3hiixv .elementor-text-editor,
.elementor-element-9e6uzin .elementor-text-editor p,
.elementor-element-9e6uzin .elementor-text-editor {
    color: #555555 !important;
    font-size: 14px !important;
}
/* ── Dropdown menu : largeur auto pour textes longs ──────────────────────── */
.elementor-widget-cmsmasters-nav-menu .sub-menu {
    width: auto !important;
    min-width: 240px !important;
    white-space: normal !important;
    word-break: break-word !important;
}


/* Masquer le bouton scroll-to-top orange */
.elementor-element-6949186e {
    display: none !important;
}

/* Header position fixe — override CMSMasters absolute */
[data-elementor-type="cmsmasters_header"].cmsmasters-header-position-absolute-yes {
    position: fixed !important;
    top: 0 !important;
    width: 100% !important;
    z-index: 9999 !important;
}
.admin-bar [data-elementor-type="cmsmasters_header"].cmsmasters-header-position-absolute-yes {
    top: 32px !important;
}

/* Masquer "Posts not found!" dans la section Actualités */
.elementor-element-50b67dc .elementor-alert.elementor-alert-warning {
    display: none !important;
}

/* Header : logo original, top bar legerement ajuste */
.elementor-element-7da64e9e {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
}
/* Bouton En savoir plus : forcer affichage horizontal */
.elementor-element-0187fce .elementor-widget-cmsmasters-button__content-wrapper {
    width: auto !important;
    min-width: max-content !important;
}
.elementor-element-0187fce .cmsmasters-button-text {
    white-space: nowrap !important;
    display: inline-block !important;
}

/* Navbar : fond bleu etendu pleine largeur via pseudo-element */
.elementor-element-1825e150 {
    position: relative !important;
    background-color: transparent !important;
    overflow: visible !important;
}
.elementor-element-1825e150::before {
    content: "" !important;
    position: absolute !important;
    top: 0 !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: 100vw !important;
    height: 100% !important;
    background-color: rgb(21, 72, 89) !important;
    z-index: 0 !important;
}
.elementor-element-1825e150 > * {
    position: relative !important;
    z-index: 1 !important;
}


/* =====================================================
   RESPONSIVE - Navigation hamburger (tablette & mobile)
   ===================================================== */

/* Tablette (max 1180px) */
@media (max-width: 1180px) {
    /* 1. Afficher le widget nav malgre elementor-hidden-tablet */
    .elementor-element-7158753f {
        display: flex !important;
        align-items: center !important;
        width: auto !important;
        flex-grow: 1 !important;
        justify-content: flex-end !important;
    }
    /* 2. Cacher le menu horizontal */
    .elementor-element-7158753f .elementor-widget-cmsmasters-nav-menu__main {
        display: none !important;
    }
    /* 3. Afficher le bouton hamburger */
    .elementor-element-7158753f .elementor-widget-cmsmasters-nav-menu__toggle-container {
        display: flex !important;
        justify-content: flex-end !important;
    }
    /* 4. Style du hamburger */
    .elementor-element-7158753f .elementor-widget-cmsmasters-nav-menu__toggle {
        color: #fff !important;
        font-size: 22px !important;
        padding: 8px !important;
        cursor: pointer !important;
    }
    /* 5. Barre nav : logo a gauche, hamburger a droite */
    .elementor-element-1825e150 {
        justify-content: space-between !important;
        gap: 0 !important;
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
    /* 6. Bouton fermer fixe au-dessus de l'overlay */
    .elementor-element-7158753f.cmsmasters-menu-open .elementor-widget-cmsmasters-nav-menu__toggle-container {
        position: fixed !important;
        top: 20px !important;
        right: 20px !important;
        z-index: 100000 !important;
    }
    /* 7. Overlay plein ecran */
    .elementor-element-7158753f .elementor-widget-cmsmasters-nav-menu__main.cmsmasters-mobile-open {
        display: flex !important;
        flex-direction: column !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 100vw !important;
        max-height: 100vh !important;
        z-index: 99999 !important;
        background-color: rgb(21, 72, 89) !important;
        overflow-y: auto !important;
        padding: 80px 30px 40px !important;
        box-sizing: border-box !important;
    }
    /* 8. Items verticaux */
    .elementor-element-7158753f .elementor-widget-cmsmasters-nav-menu__main.cmsmasters-mobile-open > ul {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
        list-style: none !important;
    }
    .elementor-element-7158753f .elementor-widget-cmsmasters-nav-menu__main.cmsmasters-mobile-open > ul > li {
        width: 100% !important;
        border-bottom: 1px solid rgba(255,255,255,0.15) !important;
    }
    .elementor-element-7158753f .elementor-widget-cmsmasters-nav-menu__main.cmsmasters-mobile-open > ul > li > a {
        color: #fff !important;
        padding: 14px 0 !important;
        font-size: 17px !important;
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        text-decoration: none !important;
        width: 100% !important;
        background: none !important;
        border: none !important;
    }
    .elementor-element-7158753f .elementor-widget-cmsmasters-nav-menu__main.cmsmasters-mobile-open > ul > li > a:hover {
        color: rgba(255,255,255,0.8) !important;
    }
    /* 9. Indicateur sous-menu */
    .elementor-element-7158753f .elementor-widget-cmsmasters-nav-menu__main.cmsmasters-mobile-open > ul > li.menu-item-has-children > a::after {
        content: "\25BE" !important;
        font-size: 14px !important;
        color: rgba(255,255,255,0.6) !important;
        flex-shrink: 0 !important;
    }
    .elementor-element-7158753f .elementor-widget-cmsmasters-nav-menu__main.cmsmasters-mobile-open > ul > li.cmsmasters-submenu-open > a::after {
        content: "\25B4" !important;
    }
    /* 10. Sous-menus */
    .elementor-element-7158753f .elementor-widget-cmsmasters-nav-menu__main.cmsmasters-mobile-open .elementor-widget-cmsmasters-nav-menu__dropdown-submenu {
        position: static !important;
        display: none !important;
        background: rgba(0,0,0,0.2) !important;
        border: none !important;
        box-shadow: none !important;
        width: 100% !important;
        padding: 5px 0 5px 15px !important;
        margin: 0 !important;
        border-radius: 0 !important;
    }
    .elementor-element-7158753f .elementor-widget-cmsmasters-nav-menu__main.cmsmasters-mobile-open .elementor-widget-cmsmasters-nav-menu__dropdown-submenu.cmsmasters-submenu-open {
        display: block !important;
    }
    .elementor-element-7158753f .elementor-widget-cmsmasters-nav-menu__main.cmsmasters-mobile-open .elementor-widget-cmsmasters-nav-menu__dropdown-submenu > li > a {
        color: rgba(255,255,255,0.8) !important;
        padding: 10px 0 !important;
        font-size: 14px !important;
        display: block !important;
        text-decoration: none !important;
        background: none !important;
        border: none !important;
    }
    .elementor-element-7158753f .elementor-widget-cmsmasters-nav-menu__main.cmsmasters-mobile-open .elementor-widget-cmsmasters-nav-menu__dropdown-submenu > li > a:hover {
        color: #fff !important;
    }
}

/* Mobile portrait (max 767px) */
@media (max-width: 767px) {
    /* Override elementor-hidden-mobile */
    .elementor-element-7158753f {
        display: flex !important;
    }
    /* Padding lateral reduit */
    .elementor-element-1825e150 {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }
}


/* =====================================================
   RESPONSIVE - Autres pages : nav hamburger (e0d2680)
   ===================================================== */

@media (max-width: 1180px) {
    .elementor-element-e0d2680 {
        display: flex !important;
        align-items: center !important;
        width: auto !important;
        flex-grow: 1 !important;
        justify-content: flex-end !important;
    }
    .elementor-element-e0d2680 .elementor-widget-cmsmasters-nav-menu__main {
        display: none !important;
    }
    .elementor-element-e0d2680 .elementor-widget-cmsmasters-nav-menu__toggle-container {
        display: flex !important;
        justify-content: flex-end !important;
    }
    .elementor-element-e0d2680 .elementor-widget-cmsmasters-nav-menu__toggle {
        color: #fff !important;
        font-size: 22px !important;
        padding: 8px !important;
        cursor: pointer !important;
    }
    .elementor-element-57bfa6f8 {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
    .elementor-element-e0d2680.cmsmasters-menu-open .elementor-widget-cmsmasters-nav-menu__toggle-container {
        position: fixed !important;
        top: 20px !important;
        right: 20px !important;
        z-index: 100000 !important;
    }
    .elementor-element-e0d2680 .elementor-widget-cmsmasters-nav-menu__main.cmsmasters-mobile-open {
        display: flex !important;
        flex-direction: column !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 100vw !important;
        max-height: 100vh !important;
        z-index: 99999 !important;
        background-color: rgb(21, 72, 89) !important;
        overflow-y: auto !important;
        padding: 80px 30px 40px !important;
        box-sizing: border-box !important;
    }
    .elementor-element-e0d2680 .elementor-widget-cmsmasters-nav-menu__main.cmsmasters-mobile-open > ul {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
        list-style: none !important;
    }
    .elementor-element-e0d2680 .elementor-widget-cmsmasters-nav-menu__main.cmsmasters-mobile-open > ul > li {
        width: 100% !important;
        border-bottom: 1px solid rgba(255,255,255,0.15) !important;
    }
    .elementor-element-e0d2680 .elementor-widget-cmsmasters-nav-menu__main.cmsmasters-mobile-open > ul > li > a {
        color: #fff !important;
        padding: 14px 0 !important;
        font-size: 17px !important;
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        text-decoration: none !important;
        width: 100% !important;
        background: none !important;
        border: none !important;
    }
    .elementor-element-e0d2680 .elementor-widget-cmsmasters-nav-menu__main.cmsmasters-mobile-open > ul > li > a:hover {
        color: rgba(255,255,255,0.8) !important;
    }
    .elementor-element-e0d2680 .elementor-widget-cmsmasters-nav-menu__main.cmsmasters-mobile-open > ul > li.menu-item-has-children > a::after {
        content: "\25BE" !important;
        font-size: 14px !important;
        color: rgba(255,255,255,0.6) !important;
        flex-shrink: 0 !important;
    }
    .elementor-element-e0d2680 .elementor-widget-cmsmasters-nav-menu__main.cmsmasters-mobile-open > ul > li.cmsmasters-submenu-open > a::after {
        content: "\25B4" !important;
    }
    .elementor-element-e0d2680 .elementor-widget-cmsmasters-nav-menu__main.cmsmasters-mobile-open .elementor-widget-cmsmasters-nav-menu__dropdown-submenu {
        position: static !important;
        display: none !important;
        background: rgba(0,0,0,0.2) !important;
        border: none !important;
        box-shadow: none !important;
        width: 100% !important;
        padding: 5px 0 5px 15px !important;
        margin: 0 !important;
        border-radius: 0 !important;
    }
    .elementor-element-e0d2680 .elementor-widget-cmsmasters-nav-menu__main.cmsmasters-mobile-open .elementor-widget-cmsmasters-nav-menu__dropdown-submenu.cmsmasters-submenu-open {
        display: block !important;
    }
    .elementor-element-e0d2680 .elementor-widget-cmsmasters-nav-menu__main.cmsmasters-mobile-open .elementor-widget-cmsmasters-nav-menu__dropdown-submenu > li > a {
        color: rgba(255,255,255,0.8) !important;
        padding: 10px 0 !important;
        font-size: 14px !important;
        display: block !important;
        text-decoration: none !important;
        background: none !important;
        border: none !important;
    }
    .elementor-element-e0d2680 .elementor-widget-cmsmasters-nav-menu__main.cmsmasters-mobile-open .elementor-widget-cmsmasters-nav-menu__dropdown-submenu > li > a:hover {
        color: #fff !important;
    }
}

@media (max-width: 767px) {
    .elementor-element-e0d2680 {
        display: flex !important;
    }
    .elementor-element-57bfa6f8 {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }
}


/* =====================================================
   FIX 3 : Footer horaires - responsive mobile
   ===================================================== */
@media (max-width: 767px) {
    .elementor-element-6ebe9036 {
        flex-direction: column !important;
        flex-wrap: wrap !important;
    }
    .elementor-element-9020949,
    .elementor-element-6f5b4e3f,
    .elementor-element-1b0bf61,
    .elementor-element-1b2c8eb9 {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        flex-shrink: 1 !important;
    }
}

/* =====================================================
   FIX 4 : actualites-agenda - description centree
   ===================================================== */
.elementor-element-de522de {
    align-items: center !important;
    text-align: center !important;
}
.elementor-element-de522de .elementor-heading-title,
.elementor-element-d3290c3 h1 {
    text-align: center !important;
}
.elementor-element-95ac233,
.elementor-element-95ac233 p {
    text-align: center !important;
}
.elementor-element-111adb5 {
    text-align: center !important;
}


/* === BLOC 4 : Header & Horaires corrections === */

/* 4a : Supprimer la ligne fonce sous navbar + reduire espace au-dessus du clock/date (homepage) */
.elementor-element-2c6abbd1 .e-con-inner {
    padding-top: 10px !important;
    padding-bottom: 0 !important;
}

/* 4b : Logo trop grand sur les autres pages (elementor-130) - desktop */
.elementor-element-1b13b5a7 {
    --width: 90px !important;
}
.elementor-element-1b13b5a7 img {
    width: 90px !important;
    height: 90px !important;
    max-height: 90px !important;
}

/* 4c : Footer horaires - override CSS custom property --flex-direction + width */
@media (max-width: 767px) {
    .elementor-element-6ebe9036 {
        --flex-direction: column !important;
        flex-direction: column !important;
        --gap: 20px !important;
        gap: 20px !important;
        --width: 100% !important;
        width: 100% !important;
        flex-wrap: wrap !important;
    }
    .elementor-element-9020949,
    .elementor-element-6f5b4e3f,
    .elementor-element-1b0bf61,
    .elementor-element-1b2c8eb9 {
        --width: 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        flex-shrink: 1 !important;
    }

    /* 4d : Reduire hauteur header mobile - homepage */
    .elementor-element-2c6abbd1 .e-con-inner {
        padding-top: 5px !important;
    }
    .elementor-element-7da64e9e {
        padding-top: 5px !important;
        padding-bottom: 5px !important;
        padding-left: 15px !important;
        padding-right: 15px !important;
    }

    /* 4e : Logo homepage mobile */
    .elementor-element-f3b2536 {
        --width: 60px !important;
    }
    .elementor-element-f3b2536 img {
        width: 60px !important;
        height: 60px !important;
    }

    /* 4f : Logo autres pages mobile */
    .elementor-element-1b13b5a7 {
        --width: 55px !important;
    }
    .elementor-element-1b13b5a7 img {
        width: 55px !important;
        height: 55px !important;
        max-height: 55px !important;
    }

    /* 4g : Info bar autres pages mobile */
    .elementor-element-1abf617a {
        padding-top: 5px !important;
        padding-bottom: 5px !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
}


/* === BLOC 5 : Zones beige/bleue + form contact mobile + footer mobile + overscroll === */

/* 5a : Sections transparentes (Actualites, Evenements) -> fond bleu identique navbar */
/* 5a bg removed */
/* broken fragment removed */

/* 5b : Section contact+urgences (c70baa9) -> meme bleu que la navbar */
.elementor-element-c70baa9 {
    background-color: rgb(13, 60, 76) !important;
}

/* 5c : Footer colonnes mobiles - selecteur haute specificite pour overrider Elementor */
@media (max-width: 767px) {
    .elementor-66 .elementor-element.elementor-element-6ebe9036 {
        --flex-direction: column !important;
        flex-direction: column !important;
        --gap: 20px !important;
        gap: 20px !important;
        --width: 100% !important;
        width: 100% !important;
        overflow: hidden !important;
    }
    .elementor-66 .elementor-element.elementor-element-9020949,
    .elementor-66 .elementor-element.elementor-element-6f5b4e3f,
    .elementor-66 .elementor-element.elementor-element-1b0bf61,
    .elementor-66 .elementor-element.elementor-element-1b2c8eb9 {
        --width: 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        flex: 0 0 100% !important;
        --flex-shrink: 1 !important;
        flex-shrink: 1 !important;
        --flex-grow: 0 !important;
    }

    /* 5d : Formulaire contact Forminator -> responsive */
    .forminator-row {
        flex-wrap: wrap !important;
        flex-direction: column !important;
    }
    .forminator-col {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        flex: 0 0 100% !important;
        box-sizing: border-box !important;
    }
    .forminator-ui,
    .forminator-custom-form {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
    }
    .elementor-element-0f7ac6a,
    .elementor-element-601b513 {
        overflow: hidden !important;
        max-width: 100vw !important;
        box-sizing: border-box !important;
    }

    /* 5e : Empecher le scroll en dessous du footer */
    .wpfront-notification-bar-spacer {
        display: none !important;
        height: 0 !important;
    }
}


/* === BLOC 6 : Corrections (revert Bloc 5a/5b + vrais fixes) === */

/* 6a : Revert c70baa9 a sa couleur d'origine */
.elementor-element-c70baa9 {
    background-color: rgb(21, 72, 89) !important;
}

/* 6b : Revert couleurs texte b6e94da et 0e65a11 */
/* all b6e94da overrides removed */

/* 6c : Supprimer la ligne beige vide en bas de la homepage
         Le cmsmasters-main__outer depasse de 150px apres c70baa9.
         On lui donne le meme fond fonce que la navbar/footer. */
body.home .cmsmasters-main__outer {
    background-color: rgb(13, 60, 76) !important;
}
/* On preserve le fond d'origine des sections transparentes (beige intentionnel) */
body.home .elementor-element-e17afef,
body.home .elementor-element-b6e94da,
body.home .elementor-element-0e65a11 {
    /* bg override removed */
}
/* Et le fond blanc de la section acces rapides */
body.home .elementor-element-e98fa3e {
    background-color: rgb(255, 255, 255) !important;
}

/* 6d : Section Urgences (8f8f677) -> meme bleu que la navbar/header (rgb 13,60,76) */
.elementor-element-8f8f677 {
    background-color: rgb(13, 60, 76) !important;
}


/* === BLOC 7 : Corrections finales === */

/* 7a : Supprimer la marge inferieure de c70baa9 (source du gap de 150px) */
.elementor-element-c70baa9 {
    margin-bottom: 0 !important;
    --margin-bottom: 0px !important;
}

/* 7b : Supprimer le fond temporaire sur cmsmasters-main__outer (plus necessaire) */
body.home .cmsmasters-main__outer {
    background-color: transparent !important;
}

/* 7c bg removed */

/* 7d : Section Urgences -> bleu plus clair que footer */
.elementor-element-8f8f677 {
    background-color: rgb(26, 98, 120) !important;
}


/* === BLOC 8 : Grilles Actualités & Événements === */

.ramecourt-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 24px;
    width: 100%;
    max-width: 100%;
    padding: 24px 0 8px;
    box-sizing: border-box;
}

.ramecourt-card {
    background: #fff;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(13,60,76,0.13);
    transition: transform 0.25s, box-shadow 0.25s;
    display: flex;
    flex-direction: column;
}

.ramecourt-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 28px rgba(13,60,76,0.22);
}

.ramecourt-card__img-wrap {
    display: block; width: 100%; height: 180px;
    overflow: hidden; flex-shrink: 0;
}

.ramecourt-card__img-wrap img {
    width: 100%; height: 100%;
    object-fit: cover; display: block;
    transition: transform 0.3s;
}

.ramecourt-card:hover .ramecourt-card__img-wrap img { transform: scale(1.05); }

.ramecourt-card__img-wrap--placeholder {
    background: linear-gradient(135deg, rgb(21,72,89) 0%, rgb(13,60,76) 100%);
}

.ramecourt-card__body {
    padding: 16px 20px 20px;
    flex: 1; display: flex; flex-direction: column;
}

.ramecourt-card__date {
    display: block; font-size: 12px; font-weight: 600;
    color: rgb(13,60,76); text-transform: uppercase;
    letter-spacing: 0.5px; margin-bottom: 8px;
}

.ramecourt-card__venue {
    display: block; font-size: 12px; color: #777; margin-bottom: 6px;
}

.ramecourt-card__title {
    font-size: 16px; font-weight: 700; color: rgb(13,60,76);
    margin: 0 0 10px; line-height: 1.4;
}

.ramecourt-card__title a { color: inherit; text-decoration: none; }
.ramecourt-card__title a:hover { color: rgb(21,72,89); }

.ramecourt-card__excerpt {
    font-size: 14px; color: #555; line-height: 1.6;
    margin: 0 0 14px; flex: 1;
}

.ramecourt-card__btn {
    display: inline-block; font-size: 13px; font-weight: 600;
    color: rgb(13,60,76); text-decoration: none;
    border-bottom: 2px solid rgb(246,214,119);
    padding-bottom: 2px;
    transition: color 0.2s, border-color 0.2s;
    align-self: flex-start; margin-top: auto;
}

.ramecourt-card__btn:hover { color: rgb(21,72,89); border-color: rgb(13,60,76); }

/* Événements sur fond sombre (section homepage 0e65a11) */
.elementor-element-0e65a11 .ramecourt-card--event {
    background: rgba(255,255,255,0.1);
    border: 1px solid rgba(255,255,255,0.2);
    box-shadow: 0 4px 16px rgba(0,0,0,0.2);
}
.elementor-element-0e65a11 .ramecourt-card--event:hover {
    background: rgba(255,255,255,0.15);
    transform: translateY(-4px);
}
.elementor-element-0e65a11 .ramecourt-card__date { color: rgb(246,214,119); }
.elementor-element-0e65a11 .ramecourt-card__venue { color: rgba(255,255,255,0.7); }
.elementor-element-0e65a11 .ramecourt-card__title { color: #fff; }
.elementor-element-0e65a11 .ramecourt-card__title a { color: #fff; }
.elementor-element-0e65a11 .ramecourt-card__excerpt { color: rgba(255,255,255,0.82); }
.elementor-element-0e65a11 .ramecourt-card__btn { color: #fff; border-bottom-color: rgb(246,214,119); }
.elementor-element-0e65a11 .ramecourt-card__btn:hover { color: rgb(246,214,119); }

.ramecourt-no-content { text-align: center; padding: 20px; opacity: 0.7; }

@media (max-width: 767px) {
    .ramecourt-grid { grid-template-columns: 1fr; gap: 16px; }
    .ramecourt-card__img-wrap { height: 160px; }
}


/* === BLOC 9 : Fix carte unique + header evenement === */
.ramecourt-grid {
    grid-template-columns: repeat(auto-fill, minmax(260px, 380px));
    justify-content: center;
}
.elementor-200 .elementor-element.elementor-element-7d12b172 {
    height: 350px !important;
}


/* === BLOC 10 : Logo hauteur pages internes (navbar) === */
/* Sur toutes les pages hors homepage, le logo est contraint a 80px de haut */
.elementor-118 .elementor-element-6b6f26c2 img {
    height: 80px;
    width: auto;
    object-fit: contain;
}
/* Les page-id homepage ont deja height:180px !important qui prend le dessus */


/* === Centre verticalement les evenements === */
.elementor-element-7ed15a6 {
    display: none !important;
}
.elementor-element-ad2ef95 .ramecourt-events-grid {
    margin-bottom: 80px;
}


/* === Documents municipaux (Comptes rendus, Arretés, Bulletins) === */
.ramecourt-docs-liste {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 30px;
}
.ramecourt-doc-item {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 14px 20px;
    background: #f7f4ef;
    border-left: 4px solid #c8a96e;
    border-radius: 4px;
    transition: background 0.2s;
}
.ramecourt-doc-item:hover { background: #f0ebe1; }
.ramecourt-doc-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.ramecourt-doc-title { font-weight: 600; font-size: 15px; color: #333; }
.ramecourt-doc-date { font-size: 13px; color: #888; }
.ramecourt-doc-btn {
    display: inline-block;
    padding: 8px 18px;
    background: #c8a96e;
    color: #fff !important;
    border-radius: 4px;
    text-decoration: none !important;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    transition: background 0.2s;
}
.ramecourt-doc-btn:hover { background: #b8955a; color: #fff !important; }
.ramecourt-docs-vide { color: #999; font-style: italic; margin-top: 20px; }
@media (max-width: 600px) {
    .ramecourt-doc-item { flex-wrap: wrap; }
    .ramecourt-doc-btn { width: 100%; text-align: center; margin-top: 8px; }
}

/* === Harmoniser largeur Dernières actualités avec Événements à venir === */
.page-id-54228 .elementor-element-ef7bbe0 {
    padding: 60px 40px !important;
}
.page-id-54228 .elementor-element-b9dd2e7 {
    padding: 0 40px !important;
}

/* === WPFront Notification Bar — bouton fermeture + transition header === */
/* Bouton ✕ arrondi et esthétique */
#wpfront-notification-bar div.wpfront-close {
    width: 26px !important;
    height: 26px !important;
    border-radius: 50% !important;
    border: 1.5px solid rgba(255,255,255,0.6) !important;
    background: rgba(255,255,255,0.12) !important;
    color: #fff !important;
    font-size: 0 !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    right: 18px !important;
    padding: 0 !important;
    line-height: 26px !important;
    text-align: center !important;
    opacity: 0.85 !important;
    transition: all 0.2s ease !important;
    cursor: pointer !important;
}
#wpfront-notification-bar div.wpfront-close::before {
    content: '✕';
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: #fff;
}
#wpfront-notification-bar div.wpfront-close:hover {
    opacity: 1 !important;
    background: rgba(255,255,255,0.25) !important;
    border-color: rgba(255,255,255,0.9) !important;
    transform: translateY(-50%) scale(1.1) !important;
}
/* Transition fluide du header quand la barre apparaît/disparaît */
[data-elementor-type="cmsmasters_header"] {
    transition: top 0.3s ease !important;
}


/* === WPFront : décale le header sous la barre de notification === */
body.admin-bar.wpfront-bar-visible [data-elementor-type="cmsmasters_header"].cmsmasters-header-position-absolute-yes {
    top: 78px !important;
}
body:not(.admin-bar).wpfront-bar-visible [data-elementor-type="cmsmasters_header"].cmsmasters-header-position-absolute-yes {
    top: 46px !important;
}

/* === WPFront : décale le header sous la barre de notification === */
body.admin-bar.wpfront-bar-visible [data-elementor-type="cmsmasters_header"].cmsmasters-header-position-absolute-yes {
    top: 78px !important;
}
body:not(.admin-bar).wpfront-bar-visible [data-elementor-type="cmsmasters_header"].cmsmasters-header-position-absolute-yes {
    top: 46px !important;
}

/* === WPFront : décale le header sous la barre de notification === */
body.admin-bar.wpfront-bar-visible [data-elementor-type="cmsmasters_header"].cmsmasters-header-position-absolute-yes {
    top: 78px !important;
}
body:not(.admin-bar).wpfront-bar-visible [data-elementor-type="cmsmasters_header"].cmsmasters-header-position-absolute-yes {
    top: 46px !important;
}

/* === WPFront : décale le header sous la barre de notification === */
body.admin-bar.wpfront-bar-visible [data-elementor-type="cmsmasters_header"].cmsmasters-header-position-absolute-yes {
    top: 78px !important;
}
body:not(.admin-bar).wpfront-bar-visible [data-elementor-type="cmsmasters_header"].cmsmasters-header-position-absolute-yes {
    top: 46px !important;
}