.fbh_module{box-sizing:border-box}
.fbh_module *,.fbh_module *::before,.fbh_module *::after{box-sizing:inherit}

/* === TABS — base === */
.fbh_tabs{width:100%;position:relative}
.fbh_tabs-inner{display:flex;flex-wrap:wrap;position:relative;gap:4px}
.fbh_tabs--horizontal .fbh_tabs-inner{flex-direction:row}
.fbh_tabs--vertical .fbh_tabs-inner{flex-direction:column;gap:2px}
.fbh_tabs--align-left .fbh_tabs-inner{justify-content:flex-start}
.fbh_tabs--align-center .fbh_tabs-inner{justify-content:center}
.fbh_tabs--align-right .fbh_tabs-inner{justify-content:flex-end}

.fbh_tab{display:flex;flex-direction:column;cursor:pointer;padding:12px 20px;outline:none;position:relative;transition:all var(--fbh-tabs-trans-duration,300ms) ease}
.fbh_tab:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.fbh_tab-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fbh_tab--icon-top .fbh_tab-header{flex-direction:column;text-align:center}
.fbh_tab--icon-right .fbh_tab-header{flex-direction:row-reverse;justify-content:flex-end}
.fbh_tab--icon-only .fbh_tab-title{display:none}
.fbh_tab-sr-only{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.fbh_tab-icon{width:24px;height:24px;object-fit:contain}
.fbh_tab-title{font-weight:600}
.fbh_tab-panel{display:none;padding:24px 0;width:100%;flex-basis:100%}
.fbh_tab[aria-selected="true"] .fbh_tab-panel{display:block}
.fbh_tab-panel-body{font-size:1rem;line-height:1.6}

/* Panel grid 2 colonnes (quand content image présente) */
.fbh_tab-panel-grid{display:grid;gap:32px;align-items:center;grid-template-columns:var(--fbh-tabs-img-ratio,40%) 1fr}
.fbh_tab-panel-image img{width:100%;height:auto;display:block;border-radius:6px}
.fbh_tabs--panel-image-right .fbh_tab-panel-grid{grid-template-columns:1fr var(--fbh-tabs-img-ratio,40%)}
.fbh_tabs--panel-image-right .fbh_tab-panel-image{order:2}
.fbh_tabs--panel-stacked .fbh_tab-panel-grid{display:block}
.fbh_tabs--panel-stacked .fbh_tab-panel-image{margin-bottom:20px;max-width:600px}

@media (max-width:768px){
    .fbh_tab-panel-grid{grid-template-columns:1fr !important;gap:20px}
    .fbh_tabs--panel-image-right .fbh_tab-panel-image{order:0}
}
.fbh_tab--disabled{opacity:.45;cursor:not-allowed;pointer-events:none}

/* Badge */
.fbh_tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 6px;border-radius:9px;font-size:.7em;font-weight:700;line-height:1;margin-left:auto}

/* === Tab styles === */
/* Default — propre, neutre */
.fbh_tabs--style-default .fbh_tab{border-bottom:2px solid transparent}
.fbh_tabs--style-default .fbh_tab[aria-selected="true"]{border-bottom-color:currentColor}

/* Pills — boutons arrondis */
.fbh_tabs--style-pills .fbh_tab{border-radius:999px;background:rgba(0,0,0,.04);transition:background var(--fbh-tabs-trans-duration,300ms) ease,color var(--fbh-tabs-trans-duration,300ms) ease}
.fbh_tabs--style-pills .fbh_tab:hover{background:rgba(0,0,0,.08)}
.fbh_tabs--style-pills .fbh_tab[aria-selected="true"]{background:currentColor}
.fbh_tabs--style-pills .fbh_tab[aria-selected="true"] .fbh_tab-title,.fbh_tabs--style-pills .fbh_tab[aria-selected="true"] .fbh_tab-icon{filter:invert(1)}

/* Underline — barre sous l'onglet actif */
.fbh_tabs--style-underline .fbh_tab{border-bottom:3px solid transparent;padding-bottom:10px}
.fbh_tabs--style-underline .fbh_tab[aria-selected="true"]{border-bottom-color:currentColor}

/* Bordered — cadre */
.fbh_tabs--style-bordered .fbh_tab{border:1px solid rgba(0,0,0,.15);border-radius:6px;background:#fff}
.fbh_tabs--style-bordered .fbh_tab[aria-selected="true"]{border-color:currentColor;background:rgba(0,0,0,.03)}

/* Cards — cartes séparées avec ombre */
.fbh_tabs--style-cards{gap:12px}
.fbh_tabs--style-cards .fbh_tabs-inner{gap:12px}
.fbh_tabs--style-cards .fbh_tab{border-radius:8px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.08);padding:16px 24px}
.fbh_tabs--style-cards .fbh_tab:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.12)}
.fbh_tabs--style-cards .fbh_tab[aria-selected="true"]{box-shadow:0 6px 20px rgba(0,0,0,.15);transform:translateY(-2px)}

/* === Style presets === */
/* Corporate — sobre, gris foncé */
.fbh_tabs--preset-corporate{color:#1a2942}
.fbh_tabs--preset-corporate .fbh_tab-title{font-family:Georgia,serif;letter-spacing:.01em}
/* Marketing — accent chaleureux + gradient hover */
.fbh_tabs--preset-marketing{color:#E09900}
.fbh_tabs--preset-marketing .fbh_tab[aria-selected="true"]{background-image:linear-gradient(135deg,rgba(224,153,0,.08),rgba(224,153,0,.02))}
/* Minimal — épuré, texte uniquement */
.fbh_tabs--preset-minimal .fbh_tab{padding:8px 12px;border:none !important;background:transparent !important;box-shadow:none !important}
.fbh_tabs--preset-minimal .fbh_tab-title{font-weight:400;opacity:.6;transition:opacity var(--fbh-tabs-trans-duration,300ms) ease}
.fbh_tabs--preset-minimal .fbh_tab[aria-selected="true"] .fbh_tab-title{opacity:1;font-weight:600}

/* FB Histoire — timeline avec pins/épingles (s'utilise idéalement avec mode=timeline + marker=icon) */
.fbh_tabs--preset-fb-histoire{background:rgba(162,169,173,0.07);padding:40px 20px;border-radius:4px;font-family:Lato,Arial,sans-serif;color:#292929}
.fbh_tabs--preset-fb-histoire .fbh_tab{background:transparent !important;border:none !important;box-shadow:none !important;padding:15px 8px 10px 5px;border-radius:5px}
.fbh_tabs--preset-fb-histoire .fbh_tab-title{font-weight:300;letter-spacing:.02em}
.fbh_tabs--preset-fb-histoire .fbh_tab[aria-selected="true"]{background:rgba(255,255,255,.6) !important}
.fbh_tabs--preset-fb-histoire .fbh_tab-icon{width:auto;height:auto;max-width:120px;max-height:90px}
.fbh_tabs--preset-fb-histoire.fbh_tabs--mode-timeline .fbh_tabs-inner::before{background:rgba(41,41,41,.12)}
.fbh_tabs--preset-fb-histoire.fbh_tabs--mode-timeline.fbh_tabs--tl-marker-icon .fbh_tab-icon{padding:0;background:transparent;border:none}
.fbh_tabs--preset-fb-histoire.fbh_tabs--mode-timeline.fbh_tabs--tl-marker-icon .fbh_tab[aria-selected="true"] .fbh_tab-icon{transform:scale(1.1);filter:drop-shadow(0 2px 8px rgba(0,0,0,.15))}

/* HK Classique — cards bordeaux avec accent marque */
.fbh_tabs--preset-hk-classique{font-family:Inter,Arial,sans-serif;color:#101612}
.fbh_tabs--preset-hk-classique .fbh_tab{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:8px;padding:18px 24px;box-shadow:0 1px 3px rgba(0,0,0,.06);transition:all var(--fbh-tabs-trans-duration,300ms) ease}
.fbh_tabs--preset-hk-classique .fbh_tab:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.1);border-color:rgba(157,34,53,.3)}
.fbh_tabs--preset-hk-classique .fbh_tab[aria-selected="true"]{border-color:#9D2235;border-left-width:4px;box-shadow:0 6px 20px rgba(157,34,53,.18)}
.fbh_tabs--preset-hk-classique .fbh_tab-title{font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#9D2235}
.fbh_tabs--preset-hk-classique .fbh_tab[aria-selected="true"] .fbh_tab-title{color:#9D2235}

/* === Indicateur actif === */
.fbh_tabs-indicator{position:absolute;background:currentColor;border-radius:2px;pointer-events:none;z-index:1}
.fbh_tabs--indicator-bar .fbh_tabs-indicator,.fbh_tabs--indicator-slide .fbh_tabs-indicator{height:3px;bottom:0;left:0;width:0;transition:none}
.fbh_tabs--indicator-slide .fbh_tabs-indicator{transition:transform var(--fbh-tabs-trans-duration,300ms) ease,width var(--fbh-tabs-trans-duration,300ms) ease}
.fbh_tabs--vertical.fbh_tabs--indicator-bar .fbh_tabs-indicator,.fbh_tabs--vertical.fbh_tabs--indicator-slide .fbh_tabs-indicator{width:3px;height:0;top:0;bottom:auto;left:0}

/* === Transitions panel === */
.fbh_tab[aria-selected="true"] .fbh_tab-panel{animation-duration:var(--fbh-tabs-trans-duration,300ms);animation-fill-mode:both}
.fbh_tabs--trans-fade .fbh_tab[aria-selected="true"] .fbh_tab-panel{animation-name:fbh-fade-in}
.fbh_tabs--trans-slide .fbh_tab[aria-selected="true"] .fbh_tab-panel{animation-name:fbh-slide-in}
.fbh_tabs--trans-zoom .fbh_tab[aria-selected="true"] .fbh_tab-panel{animation-name:fbh-zoom-in}
@keyframes fbh-fade-in{from{opacity:0}to{opacity:1}}
@keyframes fbh-slide-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes fbh-zoom-in{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}

/* === Reduced motion === */
.fbh_tabs--reduced-motion *{animation:none !important;transition:none !important}
@media (prefers-reduced-motion:reduce){.fbh_tabs--reduced-motion *{animation:none !important;transition:none !important}}

/* === Timeline mode (amélioré) === */
.fbh_tabs--mode-timeline .fbh_tabs-inner{position:relative;padding:40px 0;gap:0;flex-wrap:wrap}
/* Le panel actif en mode timeline horizontale prend toute la largeur sous la rangée d'onglets */
.fbh_tabs--mode-timeline.fbh_tabs--tl-horizontal .fbh_tab[aria-selected="true"] .fbh_tab-panel{flex-basis:100%;width:100%;order:99;margin-top:30px;padding:30px;background:rgba(255,255,255,.6);border-radius:8px}
.fbh_tabs--mode-timeline.fbh_tabs--tl-horizontal .fbh_tabs-inner::before{content:"";position:absolute;left:5%;right:5%;top:60px;height:2px;background:var(--fbh-tl-line-color,rgba(0,0,0,.15));z-index:0}
.fbh_tabs--mode-timeline.fbh_tabs--tl-vertical .fbh_tabs-inner{flex-direction:column;padding:20px 0 20px 40px}
.fbh_tabs--mode-timeline.fbh_tabs--tl-vertical .fbh_tabs-inner::before{content:"";position:absolute;left:20px;top:0;bottom:0;width:2px;background:var(--fbh-tl-line-color,rgba(0,0,0,.15));z-index:0}
.fbh_tabs--mode-timeline .fbh_tab{position:relative;text-align:center;flex:1;padding-top:50px;background:transparent;border:none;box-shadow:none}
.fbh_tabs--mode-timeline .fbh_tab-title{font-size:1.05em;margin-top:6px}
.fbh_tabs--mode-timeline .fbh_tab-header{justify-content:center;flex-direction:column;align-items:center}
/* Marker */
.fbh_tabs--mode-timeline .fbh_tab::before{content:"";position:absolute;top:18px;left:50%;transform:translateX(-50%);width:22px;height:22px;border-radius:50%;background:#fff;border:3px solid var(--fbh-tl-line-color,rgba(0,0,0,.15));z-index:1;transition:all var(--fbh-tabs-trans-duration,300ms) ease}
.fbh_tabs--mode-timeline .fbh_tab[aria-selected="true"]::before{background:var(--fbh-tl-active-color,#E09900);border-color:var(--fbh-tl-active-color,#E09900);transform:translateX(-50%) scale(1.2)}
/* Marker = number */
.fbh_tabs--mode-timeline.fbh_tabs--tl-marker-number .fbh_tab::before{counter-increment:fbh-tl-counter;content:counter(fbh-tl-counter);width:30px;height:30px;font-size:.85em;font-weight:700;color:#666;display:flex;align-items:center;justify-content:center;line-height:1}
.fbh_tabs--mode-timeline.fbh_tabs--tl-marker-number .fbh_tabs-inner{counter-reset:fbh-tl-counter}
.fbh_tabs--mode-timeline.fbh_tabs--tl-marker-number .fbh_tab[aria-selected="true"]::before{color:#fff}
/* Marker = icon (l'image est déjà dans .fbh_tab-icon) */
.fbh_tabs--mode-timeline.fbh_tabs--tl-marker-icon .fbh_tab::before{display:none}
.fbh_tabs--mode-timeline.fbh_tabs--tl-marker-icon .fbh_tab-icon{width:32px;height:32px;padding:4px;background:#fff;border-radius:50%;border:3px solid var(--fbh-tl-line-color,rgba(0,0,0,.15));position:relative;z-index:1}
.fbh_tabs--mode-timeline.fbh_tabs--tl-marker-icon .fbh_tab[aria-selected="true"] .fbh_tab-icon{border-color:var(--fbh-tl-active-color,#E09900);transform:scale(1.1)}
/* Vertical timeline overrides */
.fbh_tabs--mode-timeline.fbh_tabs--tl-vertical .fbh_tab{padding:14px 0 14px 40px;text-align:left;flex:0 0 auto}
.fbh_tabs--mode-timeline.fbh_tabs--tl-vertical .fbh_tab::before{top:50%;left:-20px;transform:translate(-50%,-50%)}
.fbh_tabs--mode-timeline.fbh_tabs--tl-vertical .fbh_tab[aria-selected="true"]::before{transform:translate(-50%,-50%) scale(1.2)}
.fbh_tabs--mode-timeline.fbh_tabs--tl-vertical .fbh_tab-header{flex-direction:row;align-items:center}

/* === Responsive — mobile modes === */
.fbh_tabs-mobile-select{display:none;width:100%;padding:12px;font-size:1em;border:1px solid rgba(0,0,0,.15);border-radius:6px;margin-bottom:16px;background:#fff}
/* Dropdown : par défaut, le breakpoint est appliqué via JS qui ajoute la classe fbh_tabs--is-mobile */
.fbh_tabs--mobile-dropdown.fbh_tabs--is-mobile .fbh_tabs-inner{display:none}
.fbh_tabs--mobile-dropdown.fbh_tabs--is-mobile .fbh_tabs-mobile-select{display:block}
.fbh_tabs--mobile-dropdown.fbh_tabs--is-mobile .fbh_tab-panel{display:none;padding:16px 0}
.fbh_tabs--mobile-dropdown.fbh_tabs--is-mobile .fbh_tab[aria-selected="true"] .fbh_tab-panel{display:block;animation:fbh-fade-in var(--fbh-tabs-trans-duration,300ms) both}

/* Accordion mobile */
.fbh_tabs--mobile-accordion.fbh_tabs--is-mobile .fbh_tabs-inner{flex-direction:column;gap:8px}
.fbh_tabs--mobile-accordion.fbh_tabs--is-mobile .fbh_tab{flex-direction:column;border:1px solid rgba(0,0,0,.1);border-radius:6px}
.fbh_tabs--mobile-accordion.fbh_tabs--is-mobile .fbh_tab-header::after{content:"+";margin-left:auto;font-size:1.4em;line-height:1;transition:transform var(--fbh-tabs-trans-duration,300ms) ease}
.fbh_tabs--mobile-accordion.fbh_tabs--is-mobile .fbh_tab[aria-selected="true"] .fbh_tab-header::after{content:"−"}
.fbh_tabs--mobile-accordion.fbh_tabs--is-mobile .fbh_tab-panel{padding:0 16px 16px}

/* Swipe mobile (carousel) */
.fbh_tabs--mobile-swipe.fbh_tabs--is-mobile{overflow:hidden}
.fbh_tabs--mobile-swipe.fbh_tabs--is-mobile .fbh_tabs-inner{flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.fbh_tabs--mobile-swipe.fbh_tabs--is-mobile .fbh_tabs-inner::-webkit-scrollbar{display:none}
.fbh_tabs--mobile-swipe.fbh_tabs--is-mobile .fbh_tab{flex:0 0 100%;scroll-snap-align:start}

/* === GRID — base === */
.fbh_grid-inner{display:grid;grid-template-columns:repeat(var(--fbh-grid-cols,3),1fr);gap:var(--fbh-grid-gap,20px)}
.fbh_grid--equal-yes .fbh_grid-item{display:flex;flex-direction:column;height:100%}

.fbh_grid-item{
    padding:var(--fbh-grid-item-padding,20px);
    text-decoration:none;
    color:var(--fbh-grid-item-text,inherit);
    background:var(--fbh-grid-item-bg,transparent);
    border:var(--fbh-grid-item-bw,0px) solid var(--fbh-grid-item-border,transparent);
    border-radius:var(--fbh-grid-item-radius,4px);
    transition:all var(--fbh-grid-hover-dur,300ms) ease;
    position:relative;
    overflow:hidden;
}
.fbh_grid-item--link{display:block;cursor:pointer}

.fbh_grid-item-img-wrap{overflow:hidden;border-radius:inherit}
.fbh_grid-item-img{width:100%;height:auto;display:block;transition:transform var(--fbh-grid-hover-dur,300ms) ease}
.fbh_grid-item-title{margin:10px 0;font-size:1.2em;color:var(--fbh-grid-item-title,inherit)}
.fbh_grid-item-body{font-size:.95em;line-height:1.5}

/* === Aspect ratios === */
.fbh_grid--aspect-1-1 .fbh_grid-item-img-wrap{aspect-ratio:1/1}
.fbh_grid--aspect-4-3 .fbh_grid-item-img-wrap{aspect-ratio:4/3}
.fbh_grid--aspect-16-9 .fbh_grid-item-img-wrap{aspect-ratio:16/9}
.fbh_grid--aspect-3-4 .fbh_grid-item-img-wrap{aspect-ratio:3/4}
.fbh_grid--aspect-1-1 .fbh_grid-item-img,.fbh_grid--aspect-4-3 .fbh_grid-item-img,.fbh_grid--aspect-16-9 .fbh_grid-item-img,.fbh_grid--aspect-3-4 .fbh_grid-item-img{width:100%;height:100%;object-fit:cover}

/* === Item layouts === */
/* image-top : par défaut, ordre image > title > body */
/* title-only : pas d'image (déjà géré par absence d'img) */
.fbh_grid--layout-title-only .fbh_grid-item{text-align:left}

/* fact-sheet : layout label/valeur empilé verticalement */
.fbh_grid--layout-fact-sheet .fbh_grid-item-title{font-size:.85em;text-transform:uppercase;letter-spacing:.05em;font-weight:700;opacity:.7;margin:0 0 6px}
.fbh_grid--layout-fact-sheet .fbh_grid-item-body{font-size:1.1em;font-weight:500}

/* image-overlay : titre superposé sur image */
.fbh_grid--layout-image-overlay .fbh_grid-item{padding:0;position:relative}
.fbh_grid--layout-image-overlay .fbh_grid-item-img-wrap{height:100%;min-height:200px}
.fbh_grid--layout-image-overlay .fbh_grid-item-img{height:100%;object-fit:cover}
.fbh_grid--layout-image-overlay .fbh_grid-item-title{position:absolute;left:0;right:0;bottom:0;margin:0;padding:24px;background:linear-gradient(transparent,rgba(0,0,0,.8));color:#fff;font-size:1.4em}
.fbh_grid--layout-image-overlay .fbh_grid-item-body{position:absolute;left:0;right:0;bottom:60px;padding:0 24px;color:#fff;opacity:0;transform:translateY(20px);transition:all var(--fbh-grid-hover-dur,300ms) ease}

/* === Hover effects === */
.fbh_grid--hover-lift .fbh_grid-item:hover{transform:translateY(-4px);box-shadow:0 6px 20px rgba(0,0,0,.1)}
.fbh_grid--hover-zoom .fbh_grid-item:hover .fbh_grid-item-img{transform:scale(1.06)}
.fbh_grid--hover-shadow .fbh_grid-item:hover{box-shadow:0 8px 24px rgba(0,0,0,.12)}
.fbh_grid--hover-reveal.fbh_grid--layout-image-overlay .fbh_grid-item:hover .fbh_grid-item-body{opacity:1;transform:translateY(0)}
.fbh_grid--hover-reveal.fbh_grid--layout-image-overlay .fbh_grid-item:hover .fbh_grid-item-title{bottom:60px}
.fbh_grid--hover-none .fbh_grid-item{transition:none}

/* === Style presets === */
/* Default — pas de styles spécifiques additionnels */

/* FB Vignettes — fond clair, ombre subtile, hover lift */
.fbh_grid--preset-fb-vignettes{font-family:Lato,Arial,sans-serif}
.fbh_grid--preset-fb-vignettes .fbh_grid-item{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.06);border-radius:6px}
.fbh_grid--preset-fb-vignettes .fbh_grid-item-title{color:#292929;font-weight:300;letter-spacing:.01em}
.fbh_grid--preset-fb-vignettes .fbh_grid-item:hover{box-shadow:0 6px 18px rgba(0,0,0,.1)}

/* HK Fiche produit — beige clair / fact-sheet layout par défaut */
.fbh_grid--preset-hk-fiche-produit{font-family:Inter,Arial,sans-serif;color:#101612}
.fbh_grid--preset-hk-fiche-produit .fbh_grid-item{background:#F5F4F0;padding:30px;border-radius:0}
.fbh_grid--preset-hk-fiche-produit .fbh_grid-item-title{font-size:.8em;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:#9D2235;margin:0 0 8px;opacity:1}
.fbh_grid--preset-hk-fiche-produit .fbh_grid-item-body{font-size:1.05em;font-weight:500}

/* HK Marques — cartes contrastées (bg bleu marine ou autre couleur via override) */
.fbh_grid--preset-hk-marques{font-family:Inter,Arial,sans-serif}
.fbh_grid--preset-hk-marques .fbh_grid-item{background:#002B49;color:#fff;padding:40px 30px;border-radius:8px;text-align:center}
.fbh_grid--preset-hk-marques .fbh_grid-item-title{color:#fff;font-size:1.4em;font-weight:900;text-transform:uppercase;letter-spacing:.04em;margin:16px 0 8px}
.fbh_grid--preset-hk-marques .fbh_grid-item:hover{transform:translateY(-4px);box-shadow:0 10px 30px rgba(0,0,0,.2)}

@media (max-width:980px){
    .fbh_grid--cols-3 .fbh_grid-inner,.fbh_grid--cols-4 .fbh_grid-inner,.fbh_grid--cols-5 .fbh_grid-inner,.fbh_grid--cols-6 .fbh_grid-inner{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:600px){
    .fbh_grid-inner{grid-template-columns:1fr !important}
}

/* === HOTSPOTS === */
.fbh_hotspots-stage{position:relative;display:inline-block;max-width:100%}
.fbh_hotspots-img{display:block;max-width:100%;height:auto}

.fbh_hotspot{position:absolute;transform:translate(-50%,-50%);z-index:2}
.fbh_hotspot-btn{appearance:none;border:none;background:transparent;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;text-decoration:none;color:inherit;transition:transform .25s cubic-bezier(.34,1.56,.64,1)}
.fbh_hotspot-btn:focus-visible{outline:2px solid var(--fbh-hotspot-color);outline-offset:4px;border-radius:50%}
.fbh_hotspot-btn:hover{transform:scale(1.12)}

/* Sizes */
.fbh_hotspot-btn--size-small{width:20px;height:20px}
.fbh_hotspot-btn--size-medium{width:32px;height:32px}
.fbh_hotspot-btn--size-large{width:44px;height:44px}

/* Dot + label */
.fbh_hotspot-dot,.fbh_hotspot-label{display:flex;align-items:center;justify-content:center;background:var(--fbh-hotspot-color,#E09900);box-shadow:0 0 0 4px rgba(255,255,255,.4),0 2px 6px rgba(0,0,0,.25);color:var(--fbh-label-color,#fff);font-weight:700;line-height:1}
.fbh_hotspot-btn--size-small .fbh_hotspot-dot,.fbh_hotspot-btn--size-small .fbh_hotspot-label{width:14px;height:14px;font-size:.7em}
.fbh_hotspot-btn--size-medium .fbh_hotspot-dot,.fbh_hotspot-btn--size-medium .fbh_hotspot-label{width:24px;height:24px;font-size:.85em}
.fbh_hotspot-btn--size-large .fbh_hotspot-dot,.fbh_hotspot-btn--size-large .fbh_hotspot-label{width:36px;height:36px;font-size:1em}

/* Shapes */
.fbh_hotspot-btn--shape-circle .fbh_hotspot-dot,.fbh_hotspot-btn--shape-circle .fbh_hotspot-label{border-radius:50%}
.fbh_hotspot-btn--shape-square-rounded .fbh_hotspot-dot,.fbh_hotspot-btn--shape-square-rounded .fbh_hotspot-label{border-radius:6px}
.fbh_hotspot-btn--shape-pin{position:relative}
.fbh_hotspot-btn--shape-pin .fbh_hotspot-dot,.fbh_hotspot-btn--shape-pin .fbh_hotspot-label{border-radius:50% 50% 50% 0;transform:rotate(-45deg)}
.fbh_hotspot-btn--shape-pin .fbh_hotspot-label{transform:rotate(-45deg);text-align:center}
.fbh_hotspot-btn--shape-pin .fbh_hotspot-label > *{display:inline-block;transform:rotate(45deg)}

/* Pulse animations */
.fbh_hotspots--pulse-subtle .fbh_hotspot-btn::before,.fbh_hotspots--pulse-strong .fbh_hotspot-btn::before{content:"";position:absolute;inset:0;border-radius:50%;background:var(--fbh-hotspot-color,#E09900);opacity:.5;animation:fbh-hotspot-pulse 2s ease-out infinite;pointer-events:none}
.fbh_hotspots--pulse-strong .fbh_hotspot-btn::before{animation-duration:1.5s;opacity:.7}
@keyframes fbh-hotspot-pulse{0%{transform:scale(1);opacity:.6}100%{transform:scale(2.5);opacity:0}}

/* Tooltip */
.fbh_hotspot-tooltip{position:absolute;width:var(--fbh-tooltip-width,300px);background:var(--fbh-tooltip-bg,#fff);color:var(--fbh-tooltip-text,#222);padding:14px 18px;border-radius:6px;box-shadow:0 4px 16px rgba(0,0,0,.15);z-index:10;text-align:left}
.fbh_hotspot-tooltip[hidden]{display:none}
.fbh_hotspot-tooltip-img{display:block;width:100%;height:auto;border-radius:4px;margin-bottom:10px;max-height:160px;object-fit:cover}
.fbh_hotspot-title{margin:0 0 6px;font-size:1em;font-weight:600;color:inherit}
.fbh_hotspot-body{font-size:.9em;line-height:1.4}

.fbh_hotspot--top .fbh_hotspot-tooltip{bottom:calc(100% + 14px);left:50%;transform:translateX(-50%)}
.fbh_hotspot--bottom .fbh_hotspot-tooltip{top:calc(100% + 14px);left:50%;transform:translateX(-50%)}
.fbh_hotspot--left .fbh_hotspot-tooltip{right:calc(100% + 14px);top:50%;transform:translateY(-50%)}
.fbh_hotspot--right .fbh_hotspot-tooltip{left:calc(100% + 14px);top:50%;transform:translateY(-50%)}

.fbh_hotspot--arrow-yes .fbh_hotspot-tooltip::after{content:"";position:absolute;width:0;height:0;border:8px solid transparent}
.fbh_hotspot--top.fbh_hotspot--arrow-yes .fbh_hotspot-tooltip::after{top:100%;left:50%;transform:translateX(-50%);border-top-color:var(--fbh-arrow-color)}
.fbh_hotspot--bottom.fbh_hotspot--arrow-yes .fbh_hotspot-tooltip::after{bottom:100%;left:50%;transform:translateX(-50%);border-bottom-color:var(--fbh-arrow-color)}
.fbh_hotspot--left.fbh_hotspot--arrow-yes .fbh_hotspot-tooltip::after{left:100%;top:50%;transform:translateY(-50%);border-left-color:var(--fbh-arrow-color)}
.fbh_hotspot--right.fbh_hotspot--arrow-yes .fbh_hotspot-tooltip::after{right:100%;top:50%;transform:translateY(-50%);border-right-color:var(--fbh-arrow-color)}

/* Tooltip animations */
.fbh_hotspots--tooltip-anim-fade .fbh_hotspot-tooltip{animation:fbh-fade-in .25s ease}
.fbh_hotspots--tooltip-anim-slide .fbh_hotspot--top .fbh_hotspot-tooltip{animation:fbh-tt-slide-up .25s ease}
.fbh_hotspots--tooltip-anim-slide .fbh_hotspot--bottom .fbh_hotspot-tooltip{animation:fbh-tt-slide-down .25s ease}
.fbh_hotspots--tooltip-anim-zoom .fbh_hotspot-tooltip{animation:fbh-zoom-in .25s ease}
@keyframes fbh-tt-slide-up{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes fbh-tt-slide-down{from{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%,0)}}

/* === Style presets === */
/* FB Carte régions — accent vert sobre */
.fbh_hotspots--preset-fb-carte-regions .fbh_hotspot-dot,.fbh_hotspots--preset-fb-carte-regions .fbh_hotspot-label{background:#4A7C3E}
.fbh_hotspots--preset-fb-carte-regions .fbh_hotspot-tooltip{font-family:Lato,Arial,sans-serif;border-left:3px solid #4A7C3E}

/* HK Produit — accent bordeaux + label uppercase */
.fbh_hotspots--preset-hk-produit .fbh_hotspot-dot,.fbh_hotspots--preset-hk-produit .fbh_hotspot-label{background:#9D2235}
.fbh_hotspots--preset-hk-produit .fbh_hotspot-tooltip{font-family:Inter,Arial,sans-serif}
.fbh_hotspots--preset-hk-produit .fbh_hotspot-title{text-transform:uppercase;letter-spacing:.04em;color:#9D2235}

/* === Responsive — list / grid mobile === */
.fbh_hotspots-mobile-list{display:none;margin-top:20px}
.fbh_hotspots-mobile-list .fbh_hotspot{position:static;transform:none;display:flex;align-items:flex-start;gap:14px;padding:14px;border-bottom:1px solid rgba(0,0,0,.08)}
.fbh_hotspots-mobile-list .fbh_hotspot:last-child{border-bottom:none}
.fbh_hotspots-mobile-list .fbh_hotspot-btn{position:relative;flex:0 0 auto}
.fbh_hotspots-mobile-list .fbh_hotspot-tooltip{position:static;transform:none;display:block !important;width:auto;flex:1;background:transparent;box-shadow:none;padding:0;border:none}
.fbh_hotspots-mobile-list .fbh_hotspot-tooltip[hidden]{display:block !important}
.fbh_hotspots-mobile-list .fbh_hotspot-tooltip::after{display:none}
.fbh_hotspots-mobile-list .fbh_hotspots--pulse-subtle .fbh_hotspot-btn::before,.fbh_hotspots-mobile-list .fbh_hotspot-btn::before{display:none}

.fbh_hotspots--mobile-list .fbh_hotspots-mobile-list{display:block}
.fbh_hotspots--mobile-grid .fbh_hotspots-mobile-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.fbh_hotspots--mobile-grid .fbh_hotspots-mobile-list .fbh_hotspot{border:1px solid rgba(0,0,0,.08);border-radius:6px;border-bottom:1px solid rgba(0,0,0,.08)}

@media (max-width:768px){
    .fbh_hotspots--mobile-list .fbh_hotspots-stage .fbh_hotspot,.fbh_hotspots--mobile-grid .fbh_hotspots-stage .fbh_hotspot{display:none}
}
@media (min-width:769px){
    .fbh_hotspots-mobile-list{display:none !important}
}

/* === GALLERY === */
.fbh_gallery-inner{display:grid;grid-template-columns:repeat(var(--fbh-gallery-cols,3),1fr);gap:var(--fbh-gallery-gap,10px)}
.fbh_gallery-item{display:block;overflow:hidden;border-radius:4px}
.fbh_gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.fbh_gallery-item:hover img{transform:scale(1.04)}
.fbh_gallery-item--placeholder{background:#f0f0f0;border:1px dashed #999;padding:30px;text-align:center;font-style:italic}

.fbh_lightbox{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:99999;display:flex;align-items:center;justify-content:center}
.fbh_lightbox[hidden]{display:none}
.fbh_lightbox-img{max-width:92%;max-height:88%;display:block;box-shadow:0 6px 30px rgba(0,0,0,.6)}
.fbh_lightbox-close,.fbh_lightbox-prev,.fbh_lightbox-next{position:absolute;background:none;border:none;color:#fff;font-size:2em;cursor:pointer;padding:10px;z-index:1}
.fbh_lightbox-close{top:20px;right:20px}
.fbh_lightbox-prev{left:20px;top:50%;transform:translateY(-50%)}
.fbh_lightbox-next{right:20px;top:50%;transform:translateY(-50%)}
.fbh_lightbox-close:focus-visible,.fbh_lightbox-prev:focus-visible,.fbh_lightbox-next:focus-visible{outline:2px solid #fff;outline-offset:2px}

@media (max-width:980px){
    .fbh_gallery--cols-3 .fbh_gallery-inner,.fbh_gallery--cols-4 .fbh_gallery-inner,.fbh_gallery--cols-5 .fbh_gallery-inner,.fbh_gallery--cols-6 .fbh_gallery-inner{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:600px){
    .fbh_gallery-inner{grid-template-columns:1fr !important}
}

/* === HISTORY (frise chronologique simplifiée) === */
.fbh_history{background:var(--fbh-history-bg,rgba(162,169,173,0.07));padding:48px 24px;border-radius:4px;position:relative;font-family:Lato,Arial,sans-serif;color:var(--fbh-history-text,#292929)}
.fbh_history-years{display:flex;justify-content:space-around;align-items:center;flex-wrap:nowrap;gap:8px;margin-bottom:18px;position:relative;z-index:2}
.fbh_history-year{flex:1;text-align:center;background:transparent;border:none;cursor:pointer;padding:6px 8px;font-size:1.1em;font-weight:600;color:var(--fbh-history-text,#292929);letter-spacing:.02em;font-family:inherit;position:relative;transition:all .3s ease;outline:none}
.fbh_history-year:focus-visible{outline:2px solid var(--fbh-history-accent,#292929);outline-offset:2px;border-radius:4px}
.fbh_history-year:hover{opacity:.7}
.fbh_history-year[aria-selected="true"]{background:rgba(255,255,255,.6);border-radius:4px;color:var(--fbh-history-accent,#292929)}
/* Petit chevron sous l'année active */
.fbh_history-year[aria-selected="true"]::after{content:"";position:absolute;left:50%;bottom:-10px;transform:translateX(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid var(--fbh-history-accent,#292929);z-index:3}

/* Ligne fine horizontale sous les années */
.fbh_history-line{height:1px;background:var(--fbh-history-accent,#292929);opacity:.15;margin:6px 0 32px;position:relative}
/* Point sur la ligne au-dessous de l'année active */
.fbh_history-line::before{content:"";position:absolute;top:50%;left:var(--fbh-history-dot-pos,0);transform:translate(-50%,-50%);width:8px;height:8px;border-radius:50%;background:var(--fbh-history-accent,#292929);transition:left .35s cubic-bezier(.4,0,.2,1);opacity:1}

/* Zone des panels */
.fbh_history-panels{position:relative;min-height:280px}
.fbh_history-item{display:none;grid-template-columns:var(--fbh-history-img-pct,35%) 1fr;gap:32px;align-items:start}
.fbh_history-item[aria-hidden="false"]{display:grid;animation:fbh-history-fade .35s ease both}
.fbh_history-item-image img{width:100%;height:auto;display:block;border-radius:6px}
.fbh_history-item-text{padding-top:8px}
.fbh_history-item-title{margin:0 0 12px;font-size:1.45em;font-weight:700;color:var(--fbh-history-title,#292929);text-transform:uppercase;letter-spacing:.02em;line-height:1.2}
.fbh_history-item-title a{color:inherit;text-decoration:none}
.fbh_history-item-title a:hover{text-decoration:underline}
.fbh_history-item-subtitle{margin:0 0 16px;font-size:1rem;line-height:1.5;color:var(--fbh-history-text,#292929);opacity:.85;font-weight:500}
.fbh_history-item-body{font-size:1rem;line-height:1.6;color:var(--fbh-history-text,#292929)}

/* VB : afficher tous les items empilés en édition (le composant React met aria-hidden=false) */
.fbh_history--vb .fbh_history-item{display:grid;margin-bottom:32px;padding:16px;border:1px dashed rgba(0,0,0,.1);border-radius:4px;position:relative}
.fbh_history--vb .fbh_history-item::before{content:"Year: " attr(data-year);position:absolute;top:-12px;left:12px;background:#fff;padding:0 8px;font-size:.75em;font-weight:700;color:var(--fbh-history-accent,#292929);letter-spacing:.05em;text-transform:uppercase;border-radius:3px}
@keyframes fbh-history-fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* Responsive */
@media (max-width:768px){
    .fbh_history{padding:32px 16px}
    .fbh_history-years{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;justify-content:flex-start;scrollbar-width:none}
    .fbh_history-years::-webkit-scrollbar{display:none}
    .fbh_history-year{flex:0 0 auto;scroll-snap-align:center;min-width:100px}
    .fbh_history-item{grid-template-columns:1fr;gap:16px}
}

/* === POPUP === */
.fbh_popup{position:fixed;inset:0;z-index:99998;display:flex;padding:20px}
.fbh_popup[hidden]{display:none}
.fbh_popup-overlay{position:absolute;inset:0;background:var(--fbh-popup-overlay,rgba(0,0,0,0.7))}
.fbh_popup--blur .fbh_popup-overlay{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}

.fbh_popup-content{position:relative;background:var(--fbh-popup-bg,#fff);color:var(--fbh-popup-text,#222);border-radius:8px;width:100%;max-height:90vh;overflow:auto;box-shadow:0 10px 40px rgba(0,0,0,.3);padding:30px;z-index:1}
.fbh_popup-close{position:absolute;top:10px;right:10px;background:none;border:none;font-size:1.8em;cursor:pointer;line-height:1;padding:5px 10px;color:inherit}
.fbh_popup-close:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.fbh_popup--no-close .fbh_popup-close{display:none}
.fbh_popup-title{margin:0 0 8px;font-size:1.5em;font-weight:700;color:var(--fbh-popup-title,inherit)}
.fbh_popup-subtitle{margin:0 0 16px;font-size:1rem;line-height:1.5;opacity:.85;font-weight:500}
.fbh_popup-body{font-size:1rem;line-height:1.5}

/* === Sizes === */
.fbh_popup--size-small .fbh_popup-content{max-width:400px}
.fbh_popup--size-medium .fbh_popup-content{max-width:600px}
.fbh_popup--size-large .fbh_popup-content{max-width:900px}
.fbh_popup--size-fullscreen{padding:0}
.fbh_popup--size-fullscreen .fbh_popup-content{max-width:100%;width:100%;height:100vh;max-height:100vh;border-radius:0}
/* max_width override */
.fbh_popup[style*="--fbh-popup-max-width"] .fbh_popup-content{max-width:var(--fbh-popup-max-width)}

/* === Position === */
.fbh_popup--position-center{align-items:center;justify-content:center}
.fbh_popup--position-top{align-items:flex-start;justify-content:center;padding-top:60px}
.fbh_popup--position-bottom{align-items:flex-end;justify-content:center;padding-bottom:60px}
.fbh_popup--position-bottom-right{align-items:flex-end;justify-content:flex-end;padding:20px}
.fbh_popup--position-bottom-right .fbh_popup-content{max-width:380px}

/* === Animation In === */
.fbh_popup:not([hidden]) .fbh_popup-content{animation-duration:.35s;animation-fill-mode:both;animation-timing-function:cubic-bezier(.34,1.3,.64,1)}
.fbh_popup--anim-fade:not([hidden]) .fbh_popup-content{animation-name:fbh-popup-fade}
.fbh_popup--anim-slide-up:not([hidden]) .fbh_popup-content{animation-name:fbh-popup-slide-up}
.fbh_popup--anim-slide-down:not([hidden]) .fbh_popup-content{animation-name:fbh-popup-slide-down}
.fbh_popup--anim-zoom:not([hidden]) .fbh_popup-content{animation-name:fbh-popup-zoom}
@keyframes fbh-popup-fade{from{opacity:0}to{opacity:1}}
@keyframes fbh-popup-slide-up{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}
@keyframes fbh-popup-slide-down{from{opacity:0;transform:translateY(-40px)}to{opacity:1;transform:translateY(0)}}
@keyframes fbh-popup-zoom{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}

/* === Style presets === */
/* FB Newsletter — fond clair Lato, accent vert sobre */
.fbh_popup--preset-fb-newsletter .fbh_popup-content{font-family:Lato,Arial,sans-serif;border-top:4px solid #4A7C3E}
.fbh_popup--preset-fb-newsletter .fbh_popup-title{color:#1a2942;font-weight:300;letter-spacing:.01em}

/* HK Promo — fond contrasté, bordeaux + uppercase */
.fbh_popup--preset-hk-promo .fbh_popup-content{font-family:Inter,Arial,sans-serif}
.fbh_popup--preset-hk-promo .fbh_popup-title{color:#9D2235;text-transform:uppercase;letter-spacing:.04em;font-weight:900}
.fbh_popup--preset-hk-promo .fbh_popup-subtitle{color:#101612}

/* === VB preview (popup ouvert sans overlay pour édition) === */
.fbh_popup--vb{position:relative;inset:auto;display:block;padding:0;z-index:auto}
.fbh_popup--vb .fbh_popup-overlay{display:none}
.fbh_popup--vb .fbh_popup-content{margin:20px auto;max-height:none;overflow:visible}
.fbh_popup-vb-banner{background:#1a2942;color:#fff;padding:8px 16px;font-size:.85em;border-radius:4px 4px 0 0;display:flex;flex-wrap:wrap;gap:4px}
.fbh_popup-vb-banner strong{margin-right:4px}
.fbh_popup-vb-banner em{opacity:.7}
