.flm-bm{position:relative;z-index:900;width:100%;background:var(--flm-bar-bg);font-size:var(--flm-fs);line-height:1.4}
.flm-bm__wrap{position:relative;max-width:var(--flm-maxw);margin:0 auto}
.flm-bm,.flm-bm *{box-sizing:border-box}
.flm-bm__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:var(--flm-justify)}
.flm-bm__item{margin:0;padding:0;list-style:none;position:static}
.flm-bm__row{display:flex;align-items:center}
.flm-bm .flm-bm__link{display:block;padding:var(--flm-py) var(--flm-px);color:var(--flm-link);font-weight:600;text-decoration:none}
.flm-bm__item.has-panel>.flm-bm__row>.flm-bm__link{padding-right:4px}
.flm-bm .flm-bm__link:hover,.flm-bm .flm-bm__link:focus-visible,.flm-bm__item.is-open>.flm-bm__row .flm-bm__link{color:var(--flm-link-h)}

.flm-bm__caret{background:none;border:0;box-shadow:none;cursor:pointer;padding:8px var(--flm-px) 8px 4px;color:var(--flm-link);line-height:1}
.flm-bm__caret span{display:block;width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s}
.flm-bm__item.is-open>.flm-bm__row .flm-bm__caret{color:var(--flm-link-h)}
.flm-bm__item.is-open>.flm-bm__row .flm-bm__caret span{transform:rotate(225deg)}

/* Panneau */
.flm-bm__panel{position:absolute;top:100%;z-index:9999;width:min(var(--flm-pw),100%);background:var(--flm-panel-bg);color:var(--flm-panel-text);border:1px solid var(--flm-border);border-top:3px solid var(--flm-accent);border-radius:var(--flm-pr);box-shadow:0 14px 32px rgba(0,0,0,.12);opacity:0;visibility:hidden;transition:opacity .2s ease,transform .2s ease,visibility .2s}
.flm-bm--full .flm-bm__panel{width:100%}
.flm-bm--pa-left .flm-bm__panel{left:0}
.flm-bm--pa-right .flm-bm__panel{right:0}
.flm-bm--pa-center .flm-bm__panel{left:0;right:0;margin:0 auto}
.flm-bm--anim-slide .flm-bm__panel{transform:translateY(10px)}
.flm-bm--anim-none .flm-bm__panel{transition:none}
.flm-bm__item.is-open>.flm-bm__panel{opacity:1;visibility:visible;transform:none}

.flm-bm__inner{display:flex;gap:calc(var(--flm-gap) * 1.5);align-items:flex-start;padding:var(--flm-pp)}

/* Bloc d'introduction (élément de 1er niveau) */
.flm-bm__intro{flex:0 0 var(--flm-iw);width:var(--flm-iw);max-width:100%}
.flm-bm__intro .flm-bm__media{margin:0 0 12px}
.flm-bm .flm-bm__img{display:block;width:100%;height:var(--flm-ih);max-width:100%;object-fit:cover;border-radius:var(--flm-ir)}
.flm-bm__intro--solo{flex:1 1 auto;width:auto;display:flex;gap:var(--flm-gap);align-items:flex-start}
.flm-bm__intro--solo .flm-bm__media{flex:0 0 var(--flm-iw);margin:0}
.flm-bm__text{flex:1 1 auto;min-width:0}
.flm-bm .flm-bm__title{margin:0 0 .4em;font-size:var(--flm-ts);font-weight:700;line-height:1.25;color:var(--flm-panel-text)}
.flm-bm .flm-bm__desc{margin:0 0 .8em;font-size:var(--flm-xs);line-height:1.55}
.flm-bm .flm-bm__btn{display:inline-block;padding:.5em 1em;background:var(--flm-accent);color:#fff;border-radius:4px;font-size:var(--flm-xs);font-weight:600;text-decoration:none}
.flm-bm .flm-bm__btn:hover,.flm-bm .flm-bm__btn:focus-visible{filter:brightness(.9);color:#fff}

/* Cartes (sous-éléments) */
.flm-bm__cards{list-style:none;margin:0;padding:0;flex:1 1 auto;min-width:0;display:grid;grid-template-columns:repeat(var(--flm-cols),minmax(0,1fr));gap:var(--flm-gap)}
.flm-bm__card{display:flex;gap:12px;align-items:flex-start;margin:0;padding:0;list-style:none}
.flm-bm--card-top .flm-bm__card{flex-direction:column;gap:8px}
.flm-bm .flm-bm__card-media{flex:0 0 auto;display:block}
.flm-bm .flm-bm__cimg{display:block;width:var(--flm-cw);height:var(--flm-ch);max-width:none;object-fit:cover;border-radius:var(--flm-ir)}
.flm-bm--card-top .flm-bm__card-media{width:100%}
.flm-bm--card-top .flm-bm__cimg{width:100%}
.flm-bm__card-body{flex:1 1 auto;min-width:0}
.flm-bm .flm-bm__card-title{display:block;font-size:var(--flm-cts);font-weight:700;line-height:1.3;color:var(--flm-panel-text);text-decoration:none}
.flm-bm .flm-bm__card-title:hover,.flm-bm .flm-bm__card-title:focus-visible{color:var(--flm-link-h)}
.flm-bm .flm-bm__card-text{margin:.3em 0 0;font-size:var(--flm-xs);line-height:1.45}
.flm-bm__sub{list-style:none;margin:.5em 0 0;padding:0}
.flm-bm__sub li{margin:0 0 .2em;padding:0;list-style:none}
.flm-bm .flm-bm__sub a{font-size:var(--flm-xs);color:var(--flm-panel-text);text-decoration:none;opacity:.85}
.flm-bm .flm-bm__sub a:hover,.flm-bm .flm-bm__sub a:focus-visible{color:var(--flm-link-h);opacity:1}

/* Bouton menu mobile */
.flm-bm__toggle{display:none;align-items:center;gap:10px;width:100%;padding:12px var(--flm-px);background:none;border:0;box-shadow:none;cursor:pointer;color:var(--flm-link);font-size:var(--flm-fs);font-weight:600}
.flm-bm__burger,.flm-bm__burger::before,.flm-bm__burger::after{display:block;width:22px;height:2px;background:currentColor;content:"";position:relative}
.flm-bm__burger::before{position:absolute;top:-7px}
.flm-bm__burger::after{position:absolute;top:7px}

@media (prefers-reduced-motion:reduce){.flm-bm__panel,.flm-bm__caret span{transition:none}}

/* Mode « dans l'en-tête » (élément HTML du Header Builder d'Astra) */
.flm-bm--inheader{position:static;z-index:auto;width:auto;background:transparent}
.flm-bm--inheader .flm-bm__wrap{position:static;max-width:none}
.flm-bm--inheader .flm-bm__panel{right:auto}
