/* FOBAK V129.6.50 — identité visuelle globale, filigrane institutionnel et défilement premium */
:root{--fobak-scrollbar:#176b9d;--fobak-scrollbar-track:#eaf1f6;--fobak-reading-surface:rgba(255,255,255,.965)}
html{scroll-behavior:smooth;scroll-padding-top:128px;overflow-x:hidden;scrollbar-color:var(--fobak-scrollbar) var(--fobak-scrollbar-track);scrollbar-width:thin}
body{overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:auto;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
body::-webkit-scrollbar,.side-menu::-webkit-scrollbar,.public-nav::-webkit-scrollbar{width:10px;height:10px}
body::-webkit-scrollbar-track,.side-menu::-webkit-scrollbar-track,.public-nav::-webkit-scrollbar-track{background:var(--fobak-scrollbar-track)}
body::-webkit-scrollbar-thumb,.side-menu::-webkit-scrollbar-thumb,.public-nav::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--fobak-header-start,#0d4f87),var(--fobak-header-end,#18afe2));border:2px solid var(--fobak-scrollbar-track);border-radius:999px}
body::-webkit-scrollbar-thumb:hover{background:var(--fobak-header-start,#0d4f87)}

/* L'ancien pseudo-filigrane a été neutralisé dans plusieurs anciennes couches CSS. V129.6.50 utilise un calque dédié, plus prévisible. */
body.has-watermark:before{display:none!important}
.fobak-global-watermark{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;display:grid;place-items:center;isolation:isolate}
.fobak-global-watermark:before,.fobak-global-watermark:after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.fobak-global-watermark:before{width:min(72vw,880px);height:min(72vw,880px);background:radial-gradient(circle,rgba(23,95,157,.035),rgba(23,95,157,0) 68%)}
.fobak-global-watermark:after{right:-8vw;bottom:-12vw;width:min(38vw,520px);height:min(38vw,520px);border:1px solid rgba(23,95,157,.055);box-shadow:0 0 0 42px rgba(23,95,157,.018),0 0 0 88px rgba(243,213,28,.012)}
.fobak-global-watermark img{width:min(31vw,390px);max-height:46vh;object-fit:contain;opacity:.026;filter:saturate(.72) contrast(.92);transform:translate3d(0,0,0)}
body.public-layout .fobak-global-watermark img{width:min(38vw,470px);opacity:.034}
body.admin-layout .fobak-global-watermark img{opacity:.019;width:min(28vw,350px)}
body> :not(.fobak-global-watermark):not(.fobak-scroll-progress){position:relative;z-index:1}

/* Les textes restent sur une surface lisible : le logo doit signer la page, jamais concurrencer le contenu. */
body.public-layout{background:linear-gradient(180deg,#f7fafc 0,#f2f7fa 46%,#f8fafc 100%)!important;color:#17384c}
body.public-layout .public-content{position:relative;isolation:isolate}
body.public-layout .public-content>:where(.card,.form-card,.panel-card,.public-search-form,.public-project-card,.public-transparency-band,.public-empty-state){background-color:var(--fobak-reading-surface);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
body.public-layout .public-content p,body.public-layout .public-content li,body.public-layout .public-content small{font-weight:450}
body.public-layout .public-content h1,body.public-layout .public-content h2,body.public-layout .public-content h3,body.public-layout .public-content strong{letter-spacing:-.012em}
body.public-layout .public-content a:not(.btn):not(.activity-read-link){text-underline-offset:3px}

/* Signature visuelle discrète sur les grands espaces publics sans modifier leurs contenus. */
body.public-layout .public-content>section,body.public-layout .public-content>.section,body.public-layout .public-content>.card{scroll-margin-top:132px}
body.public-layout .public-content>section:not(.hero):not(.hero-fullwidth){position:relative}
body.public-layout .public-content>section:not(.hero):not(.hero-fullwidth):after{content:"";position:absolute;left:50%;bottom:-1px;width:min(92%,1040px);height:1px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,rgba(23,95,157,.12),rgba(243,213,28,.16),transparent);pointer-events:none}
.public-header,.public-nav-professional{backdrop-filter:saturate(1.12) blur(12px);-webkit-backdrop-filter:saturate(1.12) blur(12px)}
.public-nav-professional{box-shadow:0 8px 26px rgba(4,42,67,.075)}

/* Progression de lecture + retour en haut */
.fobak-scroll-progress{position:fixed!important;left:0;right:0;top:0;height:3px;z-index:10050!important;background:transparent;pointer-events:none}
.fobak-scroll-progress span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--fobak-header-start,#0d4f87),var(--fobak-yellow,#f3d51c),var(--fobak-red,#ec2e39));box-shadow:0 1px 6px rgba(23,95,157,.18);transition:width .08s linear}
.fobak-back-to-top{position:fixed!important;right:20px;bottom:88px;z-index:2100!important;width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.75);background:linear-gradient(145deg,var(--fobak-header-start,#0d4f87),var(--fobak-header-end,#18afe2));color:#fff;box-shadow:0 12px 28px rgba(6,58,91,.24);display:grid;place-items:center;font-size:1.28rem;font-weight:900;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(10px) scale(.94);transition:opacity .2s ease,transform .2s ease,visibility .2s}
.fobak-back-to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
.fobak-back-to-top:hover{transform:translateY(-2px) scale(1.03)}
.fobak-back-to-top:focus-visible{outline:3px solid var(--fobak-yellow,#f3d51c);outline-offset:3px}

/* Défilement horizontal plus tactile et prévisible dans les carrousels publics. */
body.public-layout :where(.home-activity-carousel,.gallery-strip,.public-gallery-grid,.video-strip){-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;scrollbar-width:thin;scrollbar-color:rgba(23,95,157,.55) transparent}
body.public-layout .home-activity-carousel{scroll-behavior:smooth;scroll-snap-type:x proximity;scroll-padding-inline:8px}
body.public-layout .home-activity-card{scroll-snap-align:start;scroll-snap-stop:normal}

/* Stabilité visuelle lors des chargements : images et vidéos ne doivent pas provoquer de sauts de page. */
body.public-layout img{max-width:100%;height:auto}
body.public-layout iframe,body.public-layout video{max-width:100%}
body.public-layout :where(.activity-card-media,.home-video-preview,.leader-gallery-card figure){contain:layout paint}

@media(max-width:760px){
 html{scroll-padding-top:82px}
 .fobak-global-watermark img{width:min(62vw,330px)!important;opacity:.025!important}
 body.public-layout .fobak-global-watermark img{opacity:.031!important}
 .fobak-global-watermark:after{right:-28vw;bottom:6vh;width:72vw;height:72vw}
 .fobak-back-to-top{right:14px;bottom:82px;width:44px;height:44px}
 body.public-layout .public-content>section,body.public-layout .public-content>.section,body.public-layout .public-content>.card{scroll-margin-top:86px}
 body.public-layout .public-content{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.fobak-scroll-progress span,.fobak-back-to-top{transition:none!important}.home-activity-carousel{scroll-behavior:auto!important}}
@media print{.fobak-global-watermark,.fobak-scroll-progress,.fobak-back-to-top{display:none!important}}
