/* B'Mousse — ajouts : bandeau défilant, popup de réservation.
   Chargé après le CSS du thème : ne touche à aucune règle existante. */

/* L'en-tête Elementor a une hauteur écrasée (20 px) alors que son contenu
   en fait 80 : le bandeau placé après passait dessous. On rétablit la hauteur. */
.elementor-location-header {
    height: auto !important;
    min-height: 100px;
    overflow: visible !important;
}

/* La popup Elementor d'origine (id 2016) s'ouvre au chargement et recouvre
   tout le site d'un voile gris : on la neutralise, la popup maison la remplace. */
#elementor-popup-modal-2016 { display: none !important; }

.bm-dispo {
    margin: 4px 0 0;
    padding: 9px 12px;
    background: #f4f8f2;
    border-radius: 7px;
    font-size: 13px;
    color: #2f5d2a;
    grid-column: 1 / -1;
}
.bm-dispo.est-complet { background: #fdf0ef; color: #8c1d15; }

.bm-popup__tel {
    margin: -8px 0 18px;
    padding: 10px 12px;
    background: #fdf7ec;
    border-left: 3px solid #dd9933;
    border-radius: 6px;
    font-size: 13px;
    line-height: 1.5;
    color: #5c4a2e;
}
.bm-popup__tel a { color: #8a5200; font-weight: 600; text-decoration: underline; }

.bm-telnote {
    margin: 8px 0 0;
    font-size: 12px;
    color: #6a6a6a;
    text-align: center;
}
.bm-telnote a { color: #b8791f; font-weight: 600; }

/* ---------- Calendrier Loca'Mousse ---------- */
.bm-salle {
    width: 100%;
    max-width: min(780px, 100%);
    margin: 0 auto;
    padding: 10px 0 30px;
    font-family: 'Work Sans', Arial, sans-serif;
    box-sizing: border-box;
}
.bm-salle__titre {
    margin: 0 0 8px;
    font-family: 'Sora', 'Work Sans', Arial, sans-serif;
    font-size: clamp(22px, 3vw, 30px);
    font-weight: 600;
    text-align: center;
    color: #1b1b1b;
}
.bm-salle__intro { margin: 0 auto 24px; max-width: 60ch; text-align: center; color: #5f5f5f; font-size: 15px; }

.bm-cal {
    width: 100%; box-sizing: border-box;
    background: #fff; border: 1px solid #ece8e2; border-radius: 12px; padding: 14px;
}
.bm-cal__tete { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.bm-cal__mois { margin: 0; font-family: 'Sora', sans-serif; font-size: 17px; font-weight: 600; text-transform: capitalize; }
.bm-cal__nav {
    display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%;
    background: #f4f1ec; color: #333; text-decoration: none; font-size: 20px; line-height: 1;
}
.bm-cal__nav:hover { background: #e9e4dc; }
.bm-cal__grille { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.bm-cal__jour-nom {
    text-align: center; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: #8a8a8a; padding-bottom: 4px;
}
.bm-cal__case {
    position: relative; display: grid; place-items: center;
    min-width: 0; padding: 9px 0;
    border: 1px solid #ece8e2; border-radius: 8px; background: #fff; color: #2b2b2b;
    font-family: inherit; font-size: 14px; text-decoration: none; cursor: default;
}
.bm-cal__case--vide { border: 0; background: transparent; }
.bm-cal__case--libre {
    background: #eaf7ec; border-color: #b6e0bd; color: #1f6b2a; cursor: pointer;
}
.bm-cal__case--libre:hover { border-color: #2f8f3f; box-shadow: 0 0 0 2px rgba(47,143,63,.18); }
.bm-cal__case--attente { background: #fff1da; border-color: #f0bf75; color: #8a5200; cursor: pointer; }
.bm-cal__case--reserve { background: #fde7e4; border-color: #efb0a8; color: #a4271c; cursor: not-allowed; }
.bm-cal__case--passe { background: #f7f6f3; color: #b9b4ac; }
.bm-cal__case.est-choisi {
    background: #dd9933; border-color: #c8892b; color: #fff; font-weight: 600;
    box-shadow: 0 6px 14px -6px rgba(221, 153, 51, .8);
}
.bm-salle__jours { display: none; }
.bm-cal__legende { display: flex; flex-wrap: wrap; gap: 16px; margin: 14px 0 0; font-size: 12.5px; color: #6a6a6a; }
.bm-cal__legende span { display: inline-flex; align-items: center; gap: 6px; }
.bm-pastille { width: 11px; height: 11px; border-radius: 3px; display: inline-block; border: 1px solid #ddd; }
.bm-pastille--libre { background: #eaf7ec; border-color: #b6e0bd; }
.bm-pastille--attente { background: #fff1da; border-color: #f0bf75; }
.bm-pastille--reserve { background: #fde7e4; border-color: #efb0a8; }
.bm-pastille--passe { background: #f7f6f3; border-color: #ddd9d2; }

.bm-salle__form {
    margin-top: 22px; padding: 20px; background: #fbfaf7; border: 1px solid #ece8e2; border-radius: 12px;
}
.bm-salle__choix { margin: 0 0 14px; font-size: 14px; color: #6a6a6a; font-weight: 500; }
.bm-salle__choix.est-choisi { color: #1b1b1b; }

/* ---------- Bandeau défilant ---------- */
/* Le bandeau doit être bridé à la largeur de l'écran : le texte qui défile
   est en « max-content » et étirait sinon toute la page (débordement mobile). */
.bm-bandeau {
    position: relative;
    z-index: 9;
    width: 100vw;
    max-width: 100vw;
    overflow: hidden;
    background: #dd9933;
    color: #fff;
    border-top: 1px solid rgba(0, 0, 0, .08);
    border-bottom: 1px solid rgba(0, 0, 0, .08);
    padding: 9px 0;
}
.bm-bandeau__piste {
    display: flex;
    width: max-content;
    animation: bm-defiler 38s linear infinite;
}
.bm-bandeau__piste span {
    display: block;
    white-space: nowrap;
    padding-right: 0;
    font-family: 'Sora', 'Work Sans', Arial, sans-serif;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
}
@keyframes bm-defiler {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
    .bm-bandeau__piste { animation: none; }
}

/* Hero en pleine largeur : le conteneur d'accueil est « boxed » à 1200 px.
   On l'ouvre bord à bord, sans toucher aux autres sections. */
.elementor-element-2c2cf014 {
    padding-left: 0 !important;
    padding-right: 0 !important;
}
.elementor-element-2c2cf014 > .e-con-inner {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    /* le padding vertical de 10 px laissait deux bandes sombres autour du hero */
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Le conteneur qui ne contenait que l'espaceur masqué gardait 30 px de haut. */
.elementor-element-78da2b2 > .e-con-inner {
    min-height: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    row-gap: 0 !important;
}

/* Les puces du carrousel occupaient une bande de 30 px au-dessus du hero. */
.elementor-element-46fff7b2 .swiper-pagination { display: none !important; }

/* Hero collé au bandeau : on supprime l'espaceur de 59 px placé au-dessus,
   et on donne plus de hauteur au carrousel. */
.elementor-element-c19945c { display: none !important; }
.elementor-element-2c2cf014 { padding-top: 0 !important; }
/* On ne touche qu'à la hauteur du widget : Swiper gère lui-même la taille des
   diapositives (forcer .swiper/.swiper-slide cassait le bouclage du carrousel). */
.elementor-element-46fff7b2,
.elementor-element-46fff7b2 .swiper,
.elementor-element-46fff7b2 .swiper-wrapper,
.elementor-element-46fff7b2 .swiper-slide {
    height: clamp(420px, 42vw, 560px) !important;
}

/* Page Événements : le pied de page était imbriqué dans le conteneur de
   l'en-tête (10 px de marge). On le remet bord à bord. */
.elementor-element-5e1a25c > .elementor-location-footer,
.elementor-element-5e1a25c > footer {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

/* Aucun espace blanc entre le carrousel et la zone orange suivante, sur tous
   les écrans (la grille du conteneur appliquait un « row-gap »). */
.elementor-element-2c2cf014 > .e-con-inner { row-gap: 0 !important; }

/* Mobile : un peu d'air au-dessus de « Suivez nous sur Facebook ! »
   (le row-gap global supprimé collait les blocs). */
@media (max-width: 768px) {
    .elementor-element-4adbda75 { margin-top: 28px !important; }
}

/* Remise de dernière minute : pastille sur la case du jour. */
.bm-cal__case { position: relative; }
.bm-cal__remise {
    position: absolute;
    top: 3px;
    right: 4px;
    padding: 1px 5px;
    border-radius: 10px;
    background: #e4572e;
    color: #fff;
    font-size: 9.5px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0;
}
.bm-cal__case--remise { border-color: #e4572e; }
.bm-cal__legende .bm-cal__remise { position: static; display: inline-block; }

/* Calendrier de la salle : plus généreux sur ordinateur. */
@media (min-width: 900px) {
    .bm-salle { max-width: min(760px, 100%); }
    .bm-cal { padding: 22px; }
    .bm-cal__mois { font-size: 22px; }
    .bm-cal__nav { width: 42px; height: 42px; font-size: 24px; }
    .bm-cal__jour-nom { font-size: 12.5px; letter-spacing: .1em; }
    .bm-cal__case { padding: 17px 0; font-size: 17px; }
    .bm-cal__legende { font-size: 13.5px; }
    .bm-salle__titre { font-size: 34px; }
    .bm-salle__form { padding: 26px; }
}

/* Le changement de mois ramène au calendrier, sous l'en-tête fixe. */
#calendrier { scroll-margin-top: 110px; }

/* ---------- Articles : méta et commentaires ---------- */
/* Les icônes du bloc date/commentaires n'avaient pas de taille : elles
   s'affichaient en 167 px de large (taille par défaut d'un SVG). */
.elementor-widget-post-info .e-font-icon-svg,
.elementor-post-info svg {
    width: 18px !important;
    height: 18px !important;
    flex: 0 0 18px;
}
.elementor-widget-post-info .elementor-icon-list-icon { width: 18px; }

/* une seule ligne discrète : date + icône alignées, sans hauteur parasite */
.elementor-widget-post-info .elementor-icon-list-items {
    display: flex !important;
    align-items: center;
    gap: 7px;
    margin: 0 !important;
    padding: 0 !important;
}
.elementor-widget-post-info .elementor-icon-list-item {
    margin: 0 !important;
    padding: 0 !important;
    display: inline-flex;
    align-items: center;
}
.elementor-widget-post-info .elementor-post-info__item { font-size: 15px !important; }
.elementor-widget-post-info .elementor-widget-container { margin: 6px 0 14px; }

/* Plus d'icône ni de compteur de commentaires */
.elementor-icon-list-item[itemprop="commentCount"] { display: none !important; }

/* Plus de formulaire de commentaires sous les articles */
.elementor-widget-post-comments,
#comments, .comment-respond, .comment-form { display: none !important; }

/* ---------- Menu sur une seule ligne (ordinateur) ---------- */
@media (min-width: 1025px) {
    .elementor-nav-menu,
    .elementor-nav-menu--main .elementor-nav-menu {
        flex-wrap: nowrap !important;
        white-space: nowrap !important;
    }
    .elementor-nav-menu > li > a {
        font-size: 16px !important;
        padding-left: 6px !important;
        padding-right: 6px !important;
        letter-spacing: 0 !important;
        white-space: nowrap;
    }
    .elementor-nav-menu > li { margin: 0 1px !important; }
    .elementor-nav-menu { max-width: 100% !important; }
    /* les icônes sociales ne doivent plus passer sous « Contact » */
    .elementor-nav-menu { padding-right: 96px !important; }

    /* les sous-menus ont la même taille que les entrées principales */
    .elementor-nav-menu .elementor-sub-item,
    .elementor-nav-menu .sub-menu a {
        font-size: 16px !important;
        padding: 6px 12px !important;
        letter-spacing: 0 !important;
    }
}
@media (min-width: 1025px) and (max-width: 1366px) {
    .elementor-nav-menu { padding-right: 58px !important; }
    .elementor-nav-menu .elementor-sub-item,
    .elementor-nav-menu .sub-menu a { font-size: 14.5px !important; padding: 6px 9px !important; }
    .elementor-nav-menu > li > a {
        font-size: 14.5px !important;
        padding-left: 4px !important;
        padding-right: 4px !important;
    }
}

/* ---------- Ajustements de mise en page demandés ---------- */
/* 1. moins d'espace au-dessus de « Suivez nous sur Facebook ! » */
.elementor-element-5715a43,
.elementor-element-b25492c,
.elementor-element-6e729b88 {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-top: 0 !important;
    row-gap: 0 !important;
}
.elementor-element-4adbda75 h2 { margin: 0 !important; }
.elementor-element-4d9f9c2a { margin: 6px 0 !important; }

/* 1 bis. on resserre aussi sous le titre (le diviseur laissait 93 px) */
.elementor-element-b25492c { margin-top: -34px !important; }

/* 2. vignette Facebook centrée (desktop et mobile) */
/* La section était en colonnes flex : le widget partait à droite à grande largeur. */
.elementor-element-5715a43,
.elementor-element-b25492c,
.elementor-element-5715a43 > .e-con-inner,
.elementor-element-b25492c > .e-con-inner {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
.elementor-widget-facebook-page { width: 100% !important; margin: 0 auto !important; }
.elementor-widget-facebook-page .bm-fb {
    width: 100% !important;
    margin: 0 auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    justify-content: center !important;
}
/* le conteneur Elementor ajoutait 40 px de décalage à gauche */
.elementor-widget-facebook-page .elementor-widget-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
}
.elementor-widget-facebook-page .bm-fb__carte { margin-left: auto !important; margin-right: auto !important; }

/* 5. restauration : suppression des motifs (vagues décoratives) au-dessus de
   « Encore une petite faim ? » */
.e-con:has(.elementor-element-1b25ce5b) .elementor-shape,
.elementor-element-1b25ce5b ~ .elementor-shape { display: none !important; }

/* 3. moins d'espace au-dessus des titres de Loca'Mousse et de Location de matériel */
.elementor-element-caf28e3,
.elementor-element-b9a7cac { --spacer-size: 24px !important; height: 24px !important; }

/* 4. restauration : pas d'espace entre l'en-tête et le texte d'introduction */
.elementor-element-ab83ca9 { --spacer-size: 0px !important; height: 0 !important; }

/* 6 bis. distributeurs : bloc « Donnez-nous votre avis ! » supprimé
   (titre, texte, bouton « Cliquez ici » et son filet de séparation) */
.elementor-element-d63f048,
.elementor-element-43349bb,
.elementor-element-48e359f,
.elementor-element-e40792a { display: none !important; }

/* 6. distributeurs : titre « NOS DISTRIBUTEURS » supprimé */
.elementor-element-a0c3786 { display: none !important; }

/* 7. distributeurs : bandeau orange (images + texte) au-dessus de « Vous pourrez retrouver… » */
.elementor-element-90957fb { display: none !important; }

/* 8. popup : croix parfaitement centrée dans la pastille orange */
.bm-popup__fermer {
    width: 36px !important;
    height: 36px !important;
    padding: 0 !important;
    display: grid !important;
    place-items: center !important;
    line-height: 1 !important;
}
.bm-popup__fermer svg { display: block; margin: 0; }

/* Bouton « retour en haut » du thème : supprimé. */
#to_top_scrollup, .to_top_scrollup { display: none !important; }

/* Le carrousel doit rogner ses diapositives hors écran (sinon débordement mobile). */
.elementor-widget-slides .swiper {
    overflow: hidden !important;
    max-width: 100% !important;
}
.elementor-widget-slides .swiper-slide-bg {
    max-width: 100%;
}
html, body { overflow-x: hidden; }
.ast-container, #content, .site-content, .content-area, #primary { min-width: 0; max-width: 100%; }

/* Le calque image des diapositives Elementor n'a pas de hauteur :
   le carrousel d'accueil restait blanc. */
.elementor-widget-slides .swiper-slide-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
}

/* ---------- Fil Facebook ---------- */
/* Facebook n'autorise pas l'intégration de cette page : bloc de renvoi. */
.bm-fb {
    display: flex;
    justify-content: center;
    align-items: center;
    height: auto !important;
    min-height: 0 !important;
    padding: 10px 16px 34px;
}
.bm-fb__logo {
    display: block;
    width: 186px;
    max-width: 100%;
    height: auto;
    margin: 0 auto 16px;
    border-radius: 4px;
}
.bm-fb__carte {
    width: 100%;
    max-width: 640px;
    margin: 0 auto;
    padding: clamp(22px, 3vw, 34px);
    background: #fff;
    border: 1px solid #ece8e2;
    border-radius: 14px;
    box-shadow: 0 18px 40px -34px rgba(0, 0, 0, .35);
    text-align: center;
    font-family: 'Work Sans', Arial, sans-serif;
}
.bm-fb__surtitre {
    margin: 0 0 8px;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: #dd9933;
}
.bm-fb__titre {
    margin: 0 0 10px;
    font-family: 'Sora', 'Work Sans', Arial, sans-serif;
    font-size: clamp(19px, 2.4vw, 24px);
    font-weight: 600;
    color: #1b1b1b;
}
.bm-fb__texte { margin: 0 auto 20px; max-width: 46ch; font-size: 15px; line-height: 1.6; color: #5f5f5f; }
.bm-fb__bouton {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 13px 22px;
    border-radius: 6px;
    background: #dd9933;
    color: #fff !important;
    font-family: 'Sora', 'Work Sans', Arial, sans-serif;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background-color .2s;
}
.bm-fb__bouton:hover { background: #c8892b; }
.bm-fb .fb-page,
.bm-fb .fb-page > span,
.bm-fb .fb-page iframe {
    display: block;
    width: 100% !important;
    max-width: 500px;
}
.bm-fb .fb-page {
    height: 640px !important;
    min-height: 640px;
}
.bm-fb .fb-page iframe {
    height: 640px !important;
    border: 0;
    overflow: hidden;
}

/* ---------- Bouton flottant ---------- */
.bm-resa-bouton {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 9998;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 13px 20px;
    border: 0;
    border-radius: 40px;
    background: #2f8f3f;
    color: #fff;
    font-family: 'Sora', 'Work Sans', Arial, sans-serif;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    cursor: pointer;
    box-shadow: 0 10px 24px rgba(0, 0, 0, .22);
    transition: transform .2s, background-color .2s;
}
.bm-resa-bouton:hover,
.bm-resa-bouton:focus,
.bm-resa-bouton:focus-visible,
.bm-resa-bouton:active,
.bm-resa-bouton:visited {
    background: #2f8f3f !important;
    border-color: #2f8f3f !important;
    color: #fff !important;
    outline: none;
}
.bm-resa-bouton:hover { background: #26732f !important; transform: translateY(-2px); }
/* l'attribut hidden doit gagner contre display:inline-flex */
.bm-resa-bouton[hidden],
.bm-popup[hidden] { display: none !important; }

/* ---------- Panneau de réservation (posé en bas à droite, ouvert par défaut) ---------- */
.bm-popup {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 9999;
    display: block;
    padding: 0;
    width: 366px;
    max-width: calc(100vw - 32px);
}
.bm-popup[hidden] { display: none; }
.bm-popup,
.bm-popup * { box-sizing: border-box; }
.bm-popup__voile { display: none; }
.bm-popup__boite {
    position: relative;
    width: 100%;
    max-height: min(76vh, 660px);
    overflow-y: auto;
    padding: 22px 20px 20px;
    background: #fff;
    border-top: 4px solid #f5a700;
    border-radius: 14px;
    box-shadow: 0 24px 60px -18px rgba(0, 0, 0, .45);
    font-family: 'Work Sans', Arial, sans-serif;
    color: #2b2b2b;
    animation: bm-apparait .22s ease-out;
}
@keyframes bm-apparait {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: none; }
}
.bm-popup__fermer {
    position: absolute;
    top: 12px;
    right: 12px;
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 50%;
    background: #f3f1ee;
    color: #333;
    cursor: pointer;
}
.bm-popup__fermer:hover { background: #e7e3dd; }
.bm-popup__titre {
    margin: 0 0 4px;
    padding-right: 34px;
    font-family: 'Sora', 'Work Sans', Arial, sans-serif;
    font-size: clamp(21px, 2.6vw, 26px);
    font-weight: 600;
    color: #1b1b1b;
}
.bm-popup__sous {
    margin: 0 0 12px;
    font-size: 13.5px;
    color: #666;
}

/* ---------- Panneau compact : tout tient sans faire défiler ---------- */
.bm-popup__boite {
    padding: 16px;
    max-height: calc(100dvh - 32px);
}
.bm-popup__titre {
    font-size: 20px;
    margin: 0 0 2px;
    padding-right: 38px;
}
.bm-popup__fermer { top: 10px; right: 10px; width: 32px; height: 32px; }
.bm-popup__tel {
    margin: 0 0 11px;
    padding: 7px 10px;
    font-size: 12px;
    line-height: 1.4;
}
.bm-popup .bm-champs { grid-template-columns: 1fr 1fr; gap: 9px 10px; }
.bm-popup .bm-champ { gap: 3px; font-size: 10px; letter-spacing: .07em; }
.bm-popup .bm-champ input,
.bm-popup .bm-champ select { padding: 8px 10px; font-size: 13.5px; }
.bm-popup .bm-dispo { margin: 0; padding: 7px 10px; font-size: 12px; }
.bm-popup .bm-envoyer { margin-top: 10px; padding: 11px 16px; font-size: 12.5px; }
.bm-plus { border-top: 1px dashed #e3ded6; padding-top: 8px; }
.bm-plus summary {
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
    color: #7a6a52;
    list-style: none;
}
.bm-plus summary::-webkit-details-marker { display: none; }
.bm-plus summary::before { content: '+ '; }
.bm-plus[open] summary::before { content: '– '; }
.bm-plus textarea {
    width: 100%;
    margin-top: 6px;
    padding: 8px 10px;
    border: 1px solid #d9d4cc;
    border-radius: 7px;
    background: #fdfcfa;
    font-family: 'Work Sans', Arial, sans-serif;
    font-size: 13.5px;
    color: #222;
}

.bm-onglets {
    display: flex;
    gap: 6px;
    padding: 5px;
    margin-bottom: 18px;
    background: #f4f1ec;
    border-radius: 10px;
}
.bm-onglet {
    flex: 1;
    padding: 10px 12px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: #6a6a6a;
    font-family: inherit;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .09em;
    text-transform: uppercase;
    cursor: pointer;
}
.bm-onglet.est-actif {
    background: #fff;
    color: #1b1b1b;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .1);
}

.bm-form.est-cache { display: none; }
.bm-champs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
.bm-champ {
    display: flex;
    flex-direction: column;
    gap: 5px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: #555;
}
.bm-champ--large { grid-column: 1 / -1; }
.bm-champ input,
.bm-champ select,
.bm-champ textarea {
    width: 100%;
    padding: 10px 11px;
    border: 1px solid #d9d4cc;
    border-radius: 7px;
    background: #fdfcfa;
    color: #222;
    font-family: 'Work Sans', Arial, sans-serif;
    font-size: 14px;
    letter-spacing: 0;
    text-transform: none;
    font-weight: 400;
}
.bm-champ input:focus,
.bm-champ select:focus,
.bm-champ textarea:focus {
    outline: none;
    border-color: #dd9933;
    box-shadow: 0 0 0 3px rgba(221, 153, 51, .18);
}
.bm-champ .bm-aide,
.bm-champ em.bm-aide {
    font-style: italic;
    text-transform: none;
    letter-spacing: 0;
    font-weight: 500;
    color: #8a6a2f;
    font-size: 11.5px;
}
.bm-champ em {
    font-style: normal;
    text-transform: none;
    letter-spacing: 0;
    font-weight: 500;
    color: #b3261e;
    font-size: 12px;
}
.bm-consentement {
    display: flex;
    gap: 9px;
    align-items: flex-start;
    margin: 14px 0 16px;
    font-size: 12.5px;
    line-height: 1.45;
    color: #5c5c5c;
}
.bm-consentement input {
    width: 17px;
    height: 17px;
    margin-top: 1px;
    accent-color: #dd9933;
    flex: 0 0 auto;
}
.bm-erreur { margin: 0 0 10px; color: #b3261e; font-size: 12.5px; }
.bm-envoyer {
    width: 100%;
    padding: 13px 18px;
    border: 0;
    border-radius: 7px;
    background: #dd9933;
    color: #fff;
    font-family: 'Sora', 'Work Sans', Arial, sans-serif;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color .2s;
}
.bm-envoyer:hover { background: #c8892b; }
.bm-nota {
    margin: 10px 0 0;
    font-size: 11.5px;
    color: #7a7a7a;
    text-align: center;
}
.bm-alerte {
    margin-bottom: 16px;
    padding: 12px 14px;
    border-left: 4px solid;
    border-radius: 6px;
    font-size: 13.5px;
}
.bm-alerte strong { display: block; margin-bottom: 2px; }
.bm-alerte--succes { background: #eef7ec; border-color: #3f7d3a; color: #22421f; }
.bm-alerte--erreur { background: #fdf0ef; border-color: #b3261e; color: #64150f; }
.bm-leurre {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}
body.bm-popup-ouvert { overflow: hidden; }

@media (max-width: 640px) {
    .bm-champs { grid-template-columns: 1fr; }
    .bm-popup {
        right: 8px;
        bottom: 8px;
        left: 8px;
        width: auto;
        max-width: none;
    }
    .bm-popup__boite {
        width: 100%;
        max-height: calc(100dvh - 20px);
        border-radius: 14px;
        padding: 14px;
        animation: bm-monte .24s ease-out;
    }
    .bm-popup .bm-champ input,
    .bm-popup .bm-champ select { padding: 7px 8px; font-size: 13px; }
    .bm-popup__titre { font-size: 18px; }
    @keyframes bm-monte {
        from { transform: translateY(30px); opacity: .6; }
        to   { transform: none; opacity: 1; }
    }
    .bm-resa-bouton { right: 12px; bottom: 12px; padding: 11px 16px; font-size: 12px; }
}
