.image_slider {
    cursor: pointer;
    position: relative;
    height: 250px;
    border-radius: 10px;
    behavior: url('/styles/PIE.htc');
}

.diapo_texte {
    font-family: 'klavika_regular';
    color: #FFF;
    /*font-weight: bold;*/
    font-size: 20px;
    text-align: left;
}

.diapo_commentaire {
    font-family: 'klavika_regular';
    color: #FFF;
    /*font-weight: bold;*/
    font-size: 14px;
    text-align: left;
    margin-top: 4px;
}

#bloc_secondaire {
    width: 1000px;
    height: auto;
    margin-left: auto;
    margin-right: auto;
}

#bloc_fil_info {
    margin: 10px;
    z-index: 1;
    height: 64px;
    overflow: hidden;
}


.bloc_fil_info {
    width: 100%;
}

.fil_info {
    display: block;
    width: 620px;
    height: auto;
    background: #FFF;
    border-bottom: 5px solid #CC0000;
    font-family: klavika_regular;
    font-size: 14px;
}

.titre_fil_info {
    font-family: 'klavika_bold';
    text-transform: uppercase;
    color: #CE151A; /*font-weight: bold;*/
    font-size: 17px;
}

.texte_fil_info {
    padding-top: 10px;
    padding-bottom: 10px;
    color: #9D9D9D;
    font-family: 'klavika_regular';
}

#bloc_fil_info_admin {
    position: relative;
}

.home_layout {
    margin: 0 auto;
    width: 1000px;
}

.home_layout table {
    border-collapse: collapse;
}

.home_layout table td {
    vertical-align: top;
}

.home_content .bloc_en_un_clic_container {
    margin-top: 87px;
}

#bloc_recherche {
    margin-bottom: 30px;
    height: 250px;
    border: 1px solid lightgray;
    background: white;
    float: left;
    width: 100%;
}

#bloc_recherche label {
    padding-left: 20px;
    display: block;
}

#bloc_recherche select {
    margin-left: 20px;
    display: block;
    border: 1px solid #BCCE00;
    padding: 6px;
    width: 87%;
    border-radius: 5px;
    behavior: url('/styles/PIE.htc');
}

#rechercher_date_depart {
    float: left;
    width: 48%;
}

#rechercher_date_fin {
    float: left;
    width: 48%;
}

#bloc_recherche input {
    width: 80%;
    border: 1px solid #BCCE00;
    height: 25px;
    border-radius: 5px;
    margin-left: 20px;
    behavior: url('/styles/PIE.htc');
}

#img_rechercher {
    background-image: url('/images/rechercher.png');
    height: 59px;
    width: 147px;
    left: 10px;
    position: relative;
    top: -18px;
}

#img_rechercher span {
    font-family: 'klavika_med_capsmedium';
    color: white;
    top: 12px;
    left: 13px;
    position: relative;
    font-size: 21px;
    /*font-weight: bold;*/
}

#bloc_actu {
    background: white;
    margin: 10px 0 0 0;
}

#bloc_actu #entete_actu span {
    font-family: 'klavika_light';
    font-size: 25px;
    color: #9B9B9B;
    position: relative;
    top: -4px;
}

#bloc_actu_img {
    background-position: 160px 5px;
    height: 30px;
    width: 30px;
}

.actu {
    display: inline-block;
    width: 100%;
    margin: 10px 0;
    position: relative;
    left: 0;
}

.actu:last-child {
    display: inline-block;
    width: 100%;
}

.actu a {
    color: black;
}

.actu_image {
    float: left;
    width: 179px;
    height: 108px;
    margin-right: 20px;
    overflow: hidden;
    position: relative;
    border-right: 1px solid #898989;
    border-top: 1px solid #898989;
    border-bottom: 1px solid #898989;
}

.actu_image img {
    float: left;
    width: 179px;
    height: 108px;
}

.actu_img_gauche, .add_actu_img_gauche {
    width: 20px;
    height: 110px;
    float: left;
    position: relative;
    z-index: 1000;
}

.actu_texte {
    float: none;
    overflow: hidden;
    margin-top: 5px;
    border-bottom: 1px dashed #ccc;
}

.titre_actu {
    font-family: 'klavika_bold'; /*font-weight: bold;*/
    text-transform: uppercase;
    font-size: 18px;
    margin-bottom: 5px;
    border: 0;
    padding: 0;
}

.sous_titre_actu {
    color: #666;
    font-family: 'klavika_bold'; /*font-weight: bold;*/
    text-transform: uppercase;
    font-size: 13px;
}

.detail_texte_actu {
    color: #898989;
    height: 55px;
    line-height: 14px;
    font-family: 'klavika_light';
    font-size: 14px;
    text-align: justify;
    margin: 5px 0;
    overflow: hidden;
}

.actu_hr {
    width: 100%;
}

#bloc_actu.width-3 .actu_texte {
    height: 104px;
}

#bloc_actu.width-2 .actu_texte {
    height: 104px;
}

.bloc_en_un_clic_container {
    margin: 10px;
}

.bloc_en_un_clic_container.largeFormat {
    margin: 0;
}


.bloc_pub {
    margin: 10px;
    overflow: hidden;
    position: relative;
}

#actu img {
    width: 135px;
    height: 100px;
}

#lieu {
    font-family: 'klavika_med_capsmedium';
    /*font-weight: bold;*/
    text-transform: uppercase;
    padding-top: 5px;
    padding-bottom: 5px;
    font-size: 12px;
}


#actu_bouton {
    background-image: url('/images/voir_plus_actu.png');
    height: 49px;
    width: 162px;
    float: right;
}

#actu {
    border-bottom: 1px dashed #9D9D9D;
    display: inline-block;
    width: 100%;
}

#actu a {
    color: black;
}

#actu img {
    width: 135px;
    height: 100px;
}


a {
    text-decoration: none;
}

.titre_compte {
    color: #666666;
    font-family: 'klavika_light';
    font-size: 25px;
    text-transform: uppercase;
}


input[type="text"] {
    color: #B6B6B6;
    font-family: 'klavika_light';
    font-size: 14px;
    margin: 3px;
    padding: 2px;
}

.class_etat_civil {
    color: #7D8A92;
    cursor: pointer;
    font-family: 'klavika_regular';
    font-size: 12px;
    /*font-weight: bold;*/
    margin: 5px;
}

.class_txt {
    color: #7D8A92;
    font-family: 'klavika_regular';
    font-size: 14px;
    margin: 10px;
    text-align: center;
    /*font-weight: bold;*/
}

/* Demande nouveau mot de passe */

#bloc_formulaire {
    margin: 20px auto auto;
    width: 320px;
}

#header_new_mdp {
    width: 320px;
    text-align: center;
    margin: 0 auto 5px;
}

#formulaire_demande_mot_passe {
    background: none repeat scroll 0 0 #EEEEEE;
    border: 1px solid #DDDDDD;
    border-radius: 3px;
    padding: 20px 20px 0;
}

#formulaire_nouveau_mot_passe {
    text-align: center;
    font-family: 'klavika_light';
    font-size: 13px;
    background: none repeat scroll 0 0 #EEEEEE;
    border: 1px solid #DDDDDD;
    border-radius: 3px;
    padding: 20px 20px 0;
}

#title_h2 {
    text-align: center;
    border-bottom: 1px solid #DDDDDD;
    font-family: 'klavika_regular';
    font-size: 18px;
    font-weight: normal;
    margin-bottom: 10px;
    padding-bottom: 10px;
}

#title_h2_center {
    text-align: center;
    border-bottom: 1px solid #DDDDDD;
    font-family: 'klavika_regular';
    font-size: 18px;
    font-weight: normal;
    margin-bottom: 10px;
    padding-bottom: 10px;
}

#input_email {
    margin-bottom: 20px;
}

#input_mdp {
    margin-top: 30px;
    margin-bottom: 20px;
}

#email {
    color: #000 !important;
    background: none repeat scroll 0 0 #FFFFFF;
    border: 1px solid #DDDDDD;
    border-radius: 3px;
    height: 30px;
    padding: 6px;
    width: 260px;
}

#beneficiaire_password {
    color: #000 !important;
    background: none repeat scroll 0 0 #FFFFFF;
    border: 1px solid #DDDDDD;
    border-radius: 3px;
    height: 30px;
    padding: 6px;
    width: 260px;
}

#beneficiaire_comparaison_password {
    color: #000 !important;
    background: none repeat scroll 0 0 #FFFFFF;
    border: 1px solid #DDDDDD;
    border-radius: 3px;
    height: 30px;
    padding: 6px;
    width: 260px;
}

#envoi_email {
    margin: 0 0 20px;
    text-align: center;
    cursor: pointer;
}

#envoi_email_new_mdp {
    margin: 0 0 20px;
    text-align: center;
    cursor: pointer;
}

#bouton_envoi_email {
    background-color: #3399FF;
    border: 2px solid #3399FF;
    color: #FFFFFF;
    font-family: klavika_light;
    font-size: 15px;
    height: 25px;
    margin: 0 auto;
    padding-top: 10px;
    width: 190px;
}

#bouton_envoi_email:hover {
    background-color: #EEE;
    border: 2px solid #3399FF;
    color: #3399FF;
    font-family: klavika_light;
    font-size: 15px;
    height: 25px;
    margin: 0 auto;
    padding-top: 10px;
    width: 190px;
}

#demande_nouveau_password {
    background-color: #3399FF;
    border: 2px solid #3399FF;
    color: #FFFFFF;
    font-family: klavika_light;
    font-size: 15px;
    height: 30px;
    margin: 0 auto;
    padding-top: 10px;
    width: 200px;
}

#demande_nouveau_password:hover {
    background-color: #EEE;
    border: 2px solid #3399FF;
    color: #3399FF;
    font-family: klavika_light;
    font-size: 15px;
    height: 30px;
    margin: 0 auto;
    padding-top: 10px;
    width: 200px;
}

#remember {
    border-color: #CCCCCC;
    border-style: solid;
    border-width: 1px 0 0;
    color: #666666;
    font-size: 11px;
    margin-bottom: 10px;
    padding-bottom: 10px;
    padding-top: 10px;
    text-align: center;
}

#remember a {
    background: none repeat scroll 0 0 rgba(0, 0, 0, 0);
    font-family: 'klavika_light';
    font-size: 14px;
    margin: 0;
    padding: 0;
    vertical-align: baseline;
}

/* ==========================================================================
   PEG-4721 — Responsive page d'accueil (mobile)
   Portee: HP uniquement (body.home + viewport emis par Home::index).
   Additif : ne modifie aucune regle desktop existante.
   Increment 1 : reflow du contenu CMS. Menu mobile : increment suivant.
   ========================================================================== */
@media (max-width: 768px) {
    body.home {
        overflow-x: hidden;
    }

    body.home img {
        max-width: 100%;
        height: auto;
    }

    /* Fluidifier les conteneurs a largeur fixe (chrome 1000/1020px) */
    body.home .subBody,
    body.home #bloc_principal,
    body.home #content,
    body.home #vue,
    body.home .home_layout,
    body.home #bloc_actu,
    body.home #draggable_actu,
    body.home #bloc_diapo,
    body.home .bloc_diapo,
    body.home .diaporama,
    body.home .diapoSlider,
    body.home #slider,
    body.home .carrousel,
    body.home .ui-carousel,
    body.home .wrapper {
        width: auto !important;
        max-width: 100% !important;
        float: none !important;
        left: auto !important;
    }

    /* Layout CMS (table 3 colonnes en px) -> colonnes empilees */
    body.home .home_layout table,
    body.home #content table {
        width: 100% !important;
        max-width: 100% !important;
        table-layout: fixed !important;
    }
    body.home .home_layout table,
    body.home .home_layout thead,
    body.home .home_layout tbody,
    body.home .home_layout tr,
    body.home .home_layout td,
    body.home #content table,
    body.home #content thead,
    body.home #content tbody,
    body.home #content tr,
    body.home #content td {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* Actualites -> cartes empilees (image au-dessus, texte lisible) */
    body.home #bloc_actu,
    body.home #draggable_actu {
        padding: 0 12px !important;
    }
    body.home .actu {
        display: block !important;
        width: auto !important;
        max-width: 100% !important;
        float: none !important;
        background: #fff;
        border-radius: 12px;
        overflow: hidden;
        box-shadow: 0 2px 10px rgba(0, 0, 0, .10);
        margin: 0 0 16px !important;
    }
    body.home .actu > a {
        display: block;
    }
    body.home .actu_img_gauche,
    body.home .add_actu_img_gauche {
        width: 100% !important;
        height: 6px !important;
        float: none !important;
    }
    body.home .actu_image {
        float: none !important;
        width: 100% !important;
        height: auto !important;
        margin: 0 !important;
        border: 0 !important;
    }
    body.home .actu_image img {
        float: none !important;
        width: 100% !important;
        height: auto !important;
        display: block;
    }
    body.home .actu_texte {
        width: auto !important;
        float: none !important;
        margin: 0 !important;
        padding: 14px 16px 18px !important;
    }
    body.home .actu_texte,
    body.home #bloc_actu.width-1 .actu_texte,
    body.home #bloc_actu.width-2 .actu_texte,
    body.home #bloc_actu.width-3 .actu_texte,
    body.home .detail_texte_actu {
        height: auto !important;
    }

    /* Carousel hero -> pleine largeur (scintillement JS traite en increment suivant) */
    body.home #slider {
        overflow: hidden !important;
    }
    body.home #slider .wrapper,
    body.home #slider .bloc_diapo {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
    }
    body.home #slider img {
        width: 100% !important;
        height: auto !important;
        display: block;
    }
}

/* ==========================================================================
   PEG-4721 — Responsive HP, increment 2 : specifique page d'accueil —
   carousel swipe, modale cookies, fil info. Le header/menu/footer mobiles sont
   globaux a tout le FO (styles/mobile/nav.css + scripts/mobile/nav.js).
   ========================================================================== */
@media (max-width: 768px) {
    /* --- Carousel mobile : swipe natif (scroll-snap) sur les 4 slides ---
       jrcarousel est neutralise en mobile (home.js) car il lazy-load ses slides
       et n'a pas d'API responsive. On garde les .bloc_diapo natives et on en fait
       un carousel horizontal a defilement natif (swipe) + autoplay JS. */
    body.home #slider.m-slider {
        display: flex !important;
        flex-wrap: nowrap !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        margin: 0 !important;
        left: 0 !important;
        transform: none !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    body.home #slider.m-slider::-webkit-scrollbar {
        display: none;
    }
    body.home #slider.m-slider .bloc_diapo {
        flex: 0 0 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        margin: 0 !important;
        position: relative !important;
        scroll-snap-align: center;
    }
    body.home #slider.m-slider .bloc_diapo > a,
    body.home #slider.m-slider .image_slider {
        display: block !important;
        width: 100% !important;
        height: auto !important;
    }
    body.home #slider.m-slider img {
        display: block !important;
        width: 100% !important;
        height: auto !important;
        border-radius: 0 !important;
    }
    /* legende de slide : overlay lisible en bas, contenue dans la slide
       (fond sombre + texte qui wrappe, ne deborde plus du cartouche) */
    body.home #slider.m-slider .bloc_diapo_detail {
        position: absolute !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        top: auto !important;
        width: auto !important;
        max-width: 100% !important;
        height: auto !important;
        max-height: 100% !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
        padding: 6px 12px !important;
        background: rgba(0, 0, 0, .45) !important;
    }
    body.home #slider.m-slider .bloc_diapo_detail,
    body.home #slider.m-slider .bloc_diapo_detail * {
        color: #fff !important;
        font-size: 12px !important;
        line-height: 1.35 !important;
        white-space: normal !important;
        text-align: left !important;
        width: auto !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    /* le conteneur du carousel a une hauteur fixe (400px desktop) inline ->
       auto en mobile pour eviter un grand blanc autour du hero */
    body.home .diaporama,
    body.home .diapoSlider,
    body.home #bloc_diapo,
    body.home .bloc_diaporama {
        height: auto !important;
        min-height: 0 !important;
    }

    /* --- Dialogs jQuery UI (ex. modale cookies #cookie-inform-and-ask) fixes
       a 700px -> responsive en mobile --- */
    body.home .ui-dialog {
        max-width: 94vw !important;
        left: 3vw !important;
        box-sizing: border-box !important;
    }
    body.home .ui-dialog .ui-dialog-content,
    body.home #cookie-inform-and-ask,
    body.home #cookie-inform-and-ask .titre_popin,
    body.home #cookie-inform-and-ask .corps_popin,
    body.home #cookie-inform-and-ask .cookie-dialog {
        width: auto !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    body.home #cookie-inform-and-ask img,
    body.home #cookie-inform-and-ask table {
        max-width: 100% !important;
        height: auto !important;
    }

    /* --- Fil info : rotation conservee (home.js ajuste la hauteur au message),
       mais le texte wrappe en entier au lieu d'etre tronque en une ligne + [..] --- */
    body.home #bloc_fil_info {
        overflow: visible !important;
    }
    body.home .fil_info {
        width: auto !important;
        max-width: 100% !important;
    }
    body.home .texte_fil_info,
    body.home .texte_fil_info.ellipsis {
        white-space: normal !important;
        overflow: visible !important;
        text-overflow: clip !important;
    }
}

/* ==========================================================================
   PEG-4721 — Responsive HP, increment 3 : reordonnancement mobile des blocs.
   Retour client (Franck Berthet, 21/07) : sur mobile, les "blocs 1 clic"
   doivent passer AVANT les actualites, sinon ils sont empiles tout en bas et
   personne ne les voit. Layout CMS = table home_layout ; blocs et actus vivent
   dans deux <td> freres d'un meme <tr>. On flexe ce <tr> en colonne et on
   ordonne les cellules (order ne s'applique qu'aux enfants d'un conteneur
   flex/grid, jamais en display:block).
   Cible par CONTENU (:has) -> robuste si l'admin CMS inverse les colonnes.
   #bloc_actu vit dans une table imbriquee : le combinateur "> td" + la double
   condition garantissent qu'on ne cible que le <tr> parent commun, pas le <tr>
   interne de la table imbriquee. */
@media (max-width: 768px) {
    body.home .home_layout tr:has(> td .bloc_en_un_clic_container):has(> td #bloc_actu) {
        display: flex !important;
        flex-direction: column;
    }
    /* blocs 1 clic en premier */
    body.home .home_layout tr:has(> td .bloc_en_un_clic_container):has(> td #bloc_actu) > td:has(.bloc_en_un_clic_container) {
        order: 0 !important;
    }
    /* actualites ensuite */
    body.home .home_layout tr:has(> td .bloc_en_un_clic_container):has(> td #bloc_actu) > td:has(#bloc_actu) {
        order: 1 !important;
    }
}

/* ==========================================================================
   PEG-4721 — Responsive HP, increment 4 : espacements + typographie tactile.
   Retour client (04/08) : elements trop serres (zone de clic < 40px), texte
   trop petit (< 14px souhaite pour le confort de lecture).
   ========================================================================== */
@media (max-width: 768px) {
    /* Grille "en un clic" : zone de clic pleine tuile + marge de securite
       entre tuiles (au lieu du collage a 33% sans gouttiere). */
    body.home .bloc_en_un_clic_image {
        box-sizing: border-box;
        width: 33.333% !important;
        min-height: 44px;
        padding: 10px 4px 14px;
    }
    body.home .bloc_en_un_clic_image > a {
        display: block;
        min-height: 44px;
        padding: 4px 2px;
    }
    body.home .bloc_en_un_clic_image span {
        display: block;
        margin-top: 6px;
        font-size: 14px;
        line-height: 1.25;
    }

    /* Actualites : texte de description remonte au seuil de confort 14px */
    body.home .sous_titre_actu {
        font-size: 14px;
    }
}

/* ==========================================================================
   PEG-4721 — "Mot de passe oublié" / reinitialisation.
   Le style de carte/police/boutons/champs vit desormais dans UNE seule
   source partagee avec l'ecran de connexion : /styles/applicatif/auth-shared.css
   (linke directement par demandenouveaumotpasse.phtml et vuemodificationmotpasse.phtml).
   Il ne reste ici que le vrai probleme de LARGEUR, propre au markup de
   cette page : #bloc_secondaire est en 1000px fixe/margin:auto (desktop)
   -> deborde sous 768px. #bloc_secondaire est un id generique reutilise par
   d'autres pages (moncompte, contact...) -> scope via :has(#bloc_formulaire)
   pour ne cibler que cette famille d'ecrans.
   ========================================================================== */
@media (max-width: 768px) {
    #bloc_secondaire:has(#bloc_formulaire) {
        width: auto !important;
        padding: 0 16px;
        box-sizing: border-box;
    }
    #bloc_formulaire {
        width: auto !important;
    }
}

