/*
Theme Name: Foo Seng
Theme URI: https://fooseng.com
Author: Foo Seng
Description: Thème sur mesure Foo Seng — marque premium de produits asiatiques. Reproduit le prototype validé (Foo Seng.dc.html). Catalogue en CPT + ACF, prêt pour WPML (11 langues, RTL arabe).
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 8.1
License: Propriétaire
Text Domain: fooseng
*/

/* ============================================================
   1. TOKENS
   ============================================================ */
:root{
  --fs-red:#BF0000;
  --fs-red-deep:#960006;
  --fs-gold:#F3BE5E;
  --fs-ink:#141210;
  --fs-ink-soft:#211c17;
  --fs-cream:#F7F3EC;
  --fs-cream-2:#FBF6EE;
  --fs-line:#eee5d6;
  --fs-line-2:#ece4d6;
  --fs-body:#5a5044;
  --fs-muted:#8a8275;
  --fs-muted-2:#a89c86;
  --fs-green:#1F8A4C;
  --fs-orange:#E8912D;
  --fs-radius:20px;
  --fs-radius-lg:24px;
  --fs-pill:999px;
  --fs-header-h:86px;
  --fs-header-h-scrolled:64px;
  --fs-promo-h:22px;
  --fs-font:'Hanken Grotesk',system-ui,-apple-system,sans-serif;
}

/* ============================================================
   2. RESET
   ============================================================ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--fs-font);color:var(--fs-ink);background:#fff;-webkit-font-smoothing:antialiased;text-wrap:pretty}
h1,h2,h3,h4,p,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}
img,svg{max-width:100%}
::selection{background:var(--fs-red);color:#fff}
a{color:inherit;text-decoration:none}
a:hover{color:var(--fs-red)}
footer a:hover,.fs-dark a:hover{color:var(--fs-gold)}
button{font-family:inherit;cursor:pointer;border:none;background:none}
input,textarea,select{font-family:inherit}
.fs-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.fs-wrap{max-width:1180px;margin:0 auto}
.fs-wrap-sm{max-width:1080px;margin:0 auto}
.fs-sec{padding:clamp(48px,6vw,86px) clamp(18px,5vw,80px)}
.fs-cream{background:var(--fs-cream)}
.fs-dark{background:var(--fs-ink);color:#fff}

/* ============================================================
   3. ANIMATIONS (identiques au prototype)
   ============================================================ */
@keyframes kb{from{transform:scale(1.04)}to{transform:scale(1.16)}}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(7px)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes growBar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes sheen{0%{background-position:180% 0}55%{background-position:74% 0}100%{background-position:-60% 0}}
@keyframes siteIn{from{opacity:0}to{opacity:1}}
@keyframes dropIn{from{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:none}}
@keyframes twinkle{0%,100%{opacity:0;transform:scale(.5)}50%{opacity:1;transform:scale(1)}}
@keyframes pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.4);opacity:.5}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes glow{0%{transform:translateX(0) scale(1);opacity:.85}50%{transform:translateX(150%) scale(1.3);opacity:1}100%{transform:translateX(0) scale(1);opacity:.85}}
@keyframes gmove{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
@keyframes blob{0%{transform:translate(0,0) scale(1)}33%{transform:translate(26%,-18%) scale(1.25)}66%{transform:translate(-20%,16%) scale(.85)}100%{transform:translate(0,0) scale(1)}}
@keyframes ripple{0%{transform:translate(-50%,-50%) scale(.45);opacity:.5}80%{opacity:0}100%{transform:translate(-50%,-50%) scale(2);opacity:0}}
@keyframes logoReveal{0%{opacity:0;transform:scale(1.32) translateY(10px);filter:blur(22px)}55%{opacity:1;filter:blur(0)}100%{opacity:1;transform:scale(1) translateY(0);filter:blur(0)}}
@keyframes logoShine{0%{background-position:-160% 0;opacity:0}14%{opacity:1}100%{background-position:240% 0;opacity:0}}
@keyframes haloGold{0%,100%{opacity:.7;transform:translate(-50%,-50%) scale(1.06)}50%{opacity:0;transform:translate(-50%,-50%) scale(.9)}}
@keyframes haloRed{0%,100%{opacity:0;transform:translate(-50%,-50%) scale(.9)}50%{opacity:.6;transform:translate(-50%,-50%) scale(1.06)}}
@keyframes heroUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
body{animation:siteIn .55s ease both}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* ============================================================
   4. BOUTONS
   ============================================================ */
.fs-btn{display:inline-flex;align-items:center;gap:10px;font-size:15px;font-weight:800;padding:15px 30px;border-radius:var(--fs-pill);transition:gap .3s ease,transform .3s ease,background .3s ease}
.fs-btn:hover{gap:16px;transform:translateY(-2px)}
.fs-btn svg{flex:0 0 auto}
.fs-btn--red{background:var(--fs-red);color:#fff}
.fs-btn--red:hover{color:#fff}
.fs-btn--white{background:#fff;color:var(--fs-red)}
.fs-btn--ghost{border:1px solid var(--fs-line-2);color:var(--fs-ink);background:#fff}
.fs-btn--onDark{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:#fff;font-weight:700;padding:13px 24px;font-size:14px}
.fs-btn--onDark:hover{background:rgba(255,255,255,.14);color:#fff}
.fs-link-arrow{display:inline-flex;align-items:center;gap:8px;color:var(--fs-red);font-size:13.5px;font-weight:800;transition:gap .3s ease}
.fs-link-arrow:hover{gap:12px}

/* ============================================================
   5. TYPO UTILITAIRES
   ============================================================ */
.fs-kicker{font-size:12.5px;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:var(--fs-red)}
.fs-kicker--gold{color:var(--fs-gold)}
.fs-h1{font-size:clamp(40px,6.6vw,86px);font-weight:800;letter-spacing:-.03em;line-height:1.02;text-wrap:balance}
.fs-h2{font-size:clamp(28px,3.8vw,52px);font-weight:800;letter-spacing:-.02em;line-height:1.05;text-wrap:balance}
.fs-h3{font-size:clamp(20px,2.4vw,28px);font-weight:800;letter-spacing:-.01em;line-height:1.15}
.fs-lead{font-size:clamp(15px,1.8vw,20px);font-weight:500;line-height:1.55;color:var(--fs-body)}
.fs-body{font-size:clamp(15px,1.7vw,18px);font-weight:500;line-height:1.6;color:var(--fs-body)}

/* ============================================================
   6. HEADER
   ============================================================ */
.fs-header{position:fixed;top:0;left:0;right:0;z-index:120;display:flex;align-items:center;justify-content:space-between;height:var(--fs-header-h);padding:0 clamp(16px,3.5vw,46px);background:linear-gradient(180deg,rgba(140,0,0,.42) 0%,rgba(140,0,0,.14) 58%,rgba(140,0,0,0) 100%);backdrop-filter:blur(10px) saturate(1.1);-webkit-backdrop-filter:blur(10px) saturate(1.1);border-bottom:1px solid transparent;transition:height .4s cubic-bezier(.4,0,.2,1),background .4s ease,border-color .4s ease,box-shadow .4s ease,top .36s cubic-bezier(.4,0,.2,1)}
.fs-header.is-promo{top:var(--fs-promo-h)}
.fs-header.is-scrolled{height:var(--fs-header-h-scrolled);background:rgba(247,243,236,.92);backdrop-filter:blur(14px) saturate(1.15);-webkit-backdrop-filter:blur(14px) saturate(1.15);border-bottom-color:rgba(243,190,94,.55);box-shadow:0 4px 24px -14px rgba(0,0,0,.35)}
.fs-header__logo img{height:54px;width:auto;display:block;transition:height .4s cubic-bezier(.4,0,.2,1)}
.fs-header.is-scrolled .fs-header__logo img{height:40px}
.fs-nav{display:flex;align-items:center;gap:clamp(14px,2vw,30px)}
.fs-nav a,.fs-nav span.fsnav{font-size:12.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#fff;padding-bottom:6px}
.fs-header.is-scrolled .fs-nav a,.fs-header.is-scrolled .fs-nav span.fsnav{color:var(--fs-ink)}
/* Pages dont le haut est clair (Le Mag…) : header lisible dès le chargement */
body.fs-light-top .fs-header{background:rgba(247,243,236,.86);backdrop-filter:blur(14px) saturate(1.15);-webkit-backdrop-filter:blur(14px) saturate(1.15);border-bottom-color:rgba(243,190,94,.35)}
body.fs-light-top .fs-nav a,body.fs-light-top .fs-nav span.fsnav{color:var(--fs-ink)}
body.fs-light-top .fs-lang__btn{border-color:rgba(20,19,16,.2);color:var(--fs-ink)}
body.fs-light-top .fs-burger span{background:var(--fs-ink)}
.fsnav{position:relative;isolation:isolate;background-image:linear-gradient(var(--fs-red),var(--fs-red));background-repeat:no-repeat;background-position:left 100%;background-size:0 2px;transition:background-size .55s cubic-bezier(.22,1,.36,1),color .3s ease,transform .3s ease}
.fsnav:hover{background-size:100% 2px;color:var(--fs-red)}
.fsnav.is-current{background-size:100% 2px}
.fsnav::before{content:"";position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);width:230%;height:320%;background:radial-gradient(ellipse at center,rgba(191,0,0,.42) 0%,rgba(191,0,0,0) 70%);opacity:0;transition:opacity .7s ease;pointer-events:none;z-index:-1}
.fs-header:not(.is-scrolled) .fsnav:hover::before{opacity:1}
.fs-nav__live{display:inline-flex;align-items:center;gap:7px}
.fs-nav__live-dot{width:7px;height:7px;border-radius:50%;background:var(--fs-red);animation:pulse 1.8s ease-out infinite}
.fs-nav__pro{position:relative;opacity:.55;cursor:default}
.fs-nav__pro-badge{position:absolute;bottom:calc(100% + 4px);right:0;background:var(--fs-gold);color:var(--fs-ink);font-size:9px;font-weight:800;letter-spacing:.08em;padding:3px 7px;border-radius:6px;white-space:nowrap;transition:opacity .35s ease}
.fs-header.is-scrolled .fs-nav__pro-badge{opacity:0}

/* Sélecteur de langue */
.fs-lang{position:relative}
.fs-lang__btn{display:flex;align-items:center;gap:6px;border:1.5px solid rgba(255,255,255,.5);color:#fff;font-size:12px;font-weight:800;letter-spacing:.08em;padding:7px 12px;border-radius:var(--fs-pill);transition:border-color .3s,color .3s}
.fs-header.is-scrolled .fs-lang__btn{border-color:rgba(20,19,16,.2);color:var(--fs-ink)}
.fs-lang__menu{position:absolute;top:calc(100% + 10px);inset-inline-end:0;z-index:130;min-width:210px;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--fs-line);border-radius:16px;box-shadow:0 26px 54px -30px rgba(0,0,0,.42);padding:8px;display:none}
.fs-lang.is-open .fs-lang__menu{display:block}
.fs-lang__item{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;text-align:start;font-size:14px;font-weight:600;color:var(--fs-ink);padding:9px 12px;border-radius:10px;transition:background .2s}
.fs-lang__item:hover{background:var(--fs-cream)}
.fs-lang__item.is-current{background:var(--fs-red);color:#fff}
.fs-lang__code{font-size:11px;font-weight:800;letter-spacing:.1em;color:var(--fs-muted-2)}
.fs-lang__item.is-current .fs-lang__code{color:rgba(255,255,255,.8)}

/* Burger + menu mobile */
.fs-burger{display:none;flex-direction:column;gap:5px;padding:8px}
.fs-burger span{display:block;width:24px;height:2px;background:#fff;transition:background .3s}
.fs-header.is-scrolled .fs-burger span{background:var(--fs-ink)}
.fs-mobile{position:fixed;inset:0;z-index:140;background:linear-gradient(165deg,#BF0000 0%,#a30206 55%,#7d0206 100%);color:#fff;padding:18px clamp(20px,6vw,40px) 30px;display:none;flex-direction:column;overflow-y:auto}
.fs-mobile.is-open{display:flex;animation:siteIn .3s ease both}
.fs-mobile::before{content:"";position:absolute;top:-18%;right:-24%;width:80%;height:60%;background:radial-gradient(circle,rgba(243,190,94,.2) 0%,rgba(243,190,94,0) 66%);pointer-events:none}
.fs-mobile__top{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;margin-bottom:clamp(24px,6vw,42px)}
.fs-mobile__logo img{height:52px;width:auto;display:block}
.fs-mobile__close{width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.24);color:#fff;display:flex;align-items:center;justify-content:center;transition:background .25s}
.fs-mobile__close:hover{background:rgba(255,255,255,.2)}
.fs-mobile__nav{position:relative;z-index:1;display:flex;flex-direction:column}
.fs-mobile__item{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:16px 2px;border-bottom:1px solid rgba(255,255,255,.16);font-size:clamp(22px,6vw,30px);font-weight:800;letter-spacing:-.02em;color:#fff;transition:padding-inline-start .3s ease,color .3s ease}
.fs-mobile__item svg{opacity:.55;flex:0 0 auto;transition:opacity .3s ease,transform .3s ease}
.fs-mobile__item:hover,.fs-mobile__item:active{color:var(--fs-gold);padding-inline-start:8px}
.fs-mobile__item:hover svg{opacity:1;transform:translateX(4px)}
.fs-mobile__item.is-current{color:var(--fs-gold)}
.fs-mobile__item .fs-nav__live-dot{margin-inline-end:-4px}
.fs-mobile__item--off{color:rgba(255,255,255,.45);justify-content:flex-start;gap:10px}
.fs-mobile__item--off em{font-style:normal;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;background:var(--fs-gold);color:var(--fs-ink);padding:4px 9px;border-radius:6px}
.fs-mobile__langs{position:relative;z-index:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:6px;margin-top:auto;padding-top:26px}
.fs-mobile__langs button{display:flex;align-items:center;justify-content:space-between;gap:10px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:12px;color:#fff;font-size:14px;font-weight:700;padding:12px 14px;transition:background .25s}
.fs-mobile__langs button:hover{background:rgba(255,255,255,.2)}
@media (max-width:899px){
  .fs-nav,.fs-lang{display:none}
  .fs-burger{display:flex}
}

/* ============================================================
   7. BANDEAU PROMO
   ============================================================ */
.fs-promo{position:fixed;top:0;left:0;right:0;z-index:70;height:var(--fs-promo-h);background:linear-gradient(90deg,rgba(150,0,6,.8),rgba(200,22,22,.8) 50%,rgba(150,0,6,.8));backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);overflow:hidden;display:none;align-items:center;justify-content:center;box-shadow:0 1px 10px -5px rgba(0,0,0,.4);animation:dropIn .5s ease both;transition:height .36s cubic-bezier(.4,0,.2,1),transform .36s cubic-bezier(.4,0,.2,1),opacity .28s ease}
.fs-promo.is-visible{display:flex}
.fs-promo.is-closing{height:0!important;transform:translateY(-100%);opacity:0;pointer-events:none}
.fs-promo__text{position:relative;z-index:1;font-size:10.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#fff;display:inline-flex;align-items:center;gap:7px}
.fs-promo__sheen{position:absolute;inset:0;background:linear-gradient(100deg,transparent 0%,rgba(243,190,94,0) 34%,rgba(243,190,94,.55) 50%,rgba(243,190,94,0) 66%,transparent 100%);background-size:260% 100%;animation:sheen 4.2s cubic-bezier(.5,0,.3,1) 1s both;pointer-events:none}
.fs-promo__close{position:absolute;inset-inline-end:10px;top:50%;transform:translateY(-50%);color:rgba(255,255,255,.85);font-size:15px;line-height:1;z-index:2}
.fs-promo__close:hover{color:#fff}

/* ============================================================
   8. HERO ACCUEIL
   ============================================================ */
.fs-hero{position:relative;width:100%;height:100svh;min-height:600px;overflow:hidden;background:#0c0c0c;display:flex;align-items:center;justify-content:center;text-align:center}
.fs-hero__slide{position:absolute;inset:0;background-size:cover;background-position:center;animation:kb 14s ease-in-out infinite alternate;opacity:0;transition:opacity 1.3s ease}
.fs-hero__slide.is-active{opacity:1}
.fs-hero__veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,8,6,.42) 0%,rgba(10,8,6,.3) 45%,rgba(10,8,6,.66) 100%)}
.fs-hero__inner{position:relative;z-index:2;padding:90px clamp(22px,6vw,60px) 40px;max-width:1000px}
.fs-hero__logo-wrap{position:relative;display:inline-block}
.heroLogo{animation:logoReveal 2.4s cubic-bezier(.16,.84,.3,1) .3s both;position:relative;z-index:2;width:clamp(240px,42vw,520px);height:auto;display:block}
.heroShine{position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(100deg,transparent 40%,rgba(255,250,235,.95) 50%,transparent 60%);background-size:250% 100%;-webkit-mask-image:var(--fs-logo-mask);mask-image:var(--fs-logo-mask);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;animation:logoShine 3.4s ease-in-out 2.4s both}
.heroHaloGold,.heroHaloRed{position:absolute;top:50%;left:50%;width:122%;height:155%;transform:translate(-50%,-50%);pointer-events:none;z-index:1}
.heroHaloGold{background:radial-gradient(ellipse at center,rgba(243,190,94,.55) 0%,rgba(243,190,94,0) 68%);animation:haloGold 8s ease-in-out infinite}
.heroHaloRed{background:radial-gradient(ellipse at center,rgba(191,0,0,.5) 0%,rgba(191,0,0,0) 68%);animation:haloRed 8s ease-in-out infinite}
.heroK{animation:heroUp 1.1s ease .15s both;font-size:13px;font-weight:800;letter-spacing:.34em;text-transform:uppercase;color:var(--fs-gold);margin-bottom:22px}
.heroSub{animation:heroUp 1.2s ease 1.7s both;margin-top:26px;font-size:clamp(15px,1.9vw,21px);font-weight:500;line-height:1.5;color:rgba(255,255,255,.94);white-space:pre-line}
.heroBtns{animation:heroUp 1.2s ease 2s both;display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:38px}
.fs-hero__scroll{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:8px;color:rgba(255,255,255,.8);font-size:10.5px;font-weight:800;letter-spacing:.24em;text-transform:uppercase}
.fs-hero__scroll svg{animation:bob 1.8s ease-in-out infinite}

/* ============================================================
   9. STORIES
   ============================================================ */
.fs-stories{position:relative;overflow:hidden;background:linear-gradient(140deg,#0b0a09 0%,#1b0605 42%,#5e0208 78%,#8d0409 100%);background-size:180% 180%;animation:gmove 22s ease-in-out infinite;color:#fff;padding:clamp(30px,4vw,46px) 0}
.fs-stories__blob{position:absolute;border-radius:50%;filter:blur(60px);pointer-events:none}
.fs-stories__blob--red{top:-40%;left:-10%;width:60%;height:180%;background:radial-gradient(circle at center,rgba(191,0,0,.5) 0%,rgba(191,0,0,0) 66%);animation:blob 26s ease-in-out infinite}
.fs-stories__blob--gold{bottom:-50%;right:-8%;width:46%;height:170%;background:radial-gradient(circle at center,rgba(243,190,94,.22) 0%,rgba(243,190,94,0) 66%);animation:blob 32s ease-in-out infinite reverse}
.fs-stories__head{position:relative;z-index:1;display:flex;align-items:center;gap:12px;padding:0 clamp(18px,5vw,80px);margin-bottom:clamp(18px,2.4vw,26px)}
.fs-stories__label{font-size:11px;font-weight:800;letter-spacing:.26em;text-transform:uppercase;color:rgba(255,255,255,.72)}
.fs-stories__rail{position:relative;z-index:1;display:flex;gap:clamp(14px,2vw,22px);padding:4px clamp(18px,5vw,80px);overflow-x:auto;scrollbar-width:none;cursor:grab;-webkit-overflow-scrolling:touch}
.fs-stories__rail::-webkit-scrollbar{display:none}
.fs-stories__rail.is-dragging{cursor:grabbing}
.fs-story{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:9px;width:clamp(74px,9vw,96px)}
.fs-story__ring{position:relative;width:clamp(68px,8.5vw,88px);height:clamp(68px,8.5vw,88px);border-radius:50%;padding:3px;background:conic-gradient(from 160deg,var(--fs-gold),#e8562a,var(--fs-red),#8d0409,#e8562a,var(--fs-gold));display:flex;align-items:center;justify-content:center;transition:transform .35s cubic-bezier(.22,1,.36,1)}
.fs-story:hover .fs-story__ring--new::after{animation-duration:9s}
.fs-story:hover .fs-story__ring{transform:scale(1.06)}
/* Anneau « nouveauté » : vert plein façon Instagram */
.fs-story__ring--new{background:linear-gradient(155deg,#5BE584 0%,#22C55E 45%,#12A150 100%);padding:3.5px}
.fs-story__ring--new::before{content:"";position:absolute;inset:-10px;border-radius:50%;background:radial-gradient(circle,rgba(34,197,94,.28) 0%,rgba(34,197,94,0) 66%);pointer-events:none;transition:opacity .35s ease}
.fs-story:hover .fs-story__ring--new::before{opacity:.7}
.fs-story__ring--new.is-seen{background:rgba(255,255,255,.28)}
.fs-story__ring--new.is-seen::before{opacity:0}
.fs-story__ring.is-seen{background:rgba(255,255,255,.28)}
.fs-story__img{width:100%;height:100%;border-radius:50%;object-fit:cover;border:2px solid #0b0a09;background:#241a16}
.fs-story__label{font-size:11.5px;font-weight:700;color:rgba(255,255,255,.86);text-align:center;line-height:1.25}

/* Lecteur stories (format iPhone) */
.fs-viewer{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.94);display:none;align-items:center;justify-content:center;padding:14px;animation:fadeUp .3s ease}
.fs-viewer.is-open{display:flex}
.fs-viewer__card{position:relative;width:min(420px,94vw);aspect-ratio:9/16;max-height:92vh;border-radius:28px;overflow:hidden;background:#111;box-shadow:0 40px 90px -30px rgba(0,0,0,.9)}
.fs-viewer__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fs-viewer__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.55) 0%,transparent 26%,transparent 62%,rgba(0,0,0,.8) 100%)}
.fs-viewer__bars{position:absolute;top:14px;left:14px;right:14px;z-index:3;display:flex;gap:5px}
.fs-viewer__bar{flex:1;height:3px;border-radius:3px;background:rgba(255,255,255,.32);overflow:hidden}
.fs-viewer__bar i{display:block;height:100%;background:#fff;width:0}
.fs-viewer__bar.is-done i{width:100%}
.fs-viewer__meta{position:absolute;left:0;right:0;bottom:28px;z-index:3;padding:0 22px;color:#fff}
.fs-viewer__title{font-size:22px;font-weight:800;letter-spacing:-.01em}
.fs-viewer__caption{margin-top:8px;font-size:14px;font-weight:500;color:rgba(255,255,255,.86);line-height:1.5}
.fs-viewer__close{position:absolute;top:14px;inset-inline-end:14px;z-index:4;width:34px;height:34px;border-radius:50%;background:rgba(0,0,0,.45);color:#fff;font-size:17px;display:flex;align-items:center;justify-content:center}
.fs-viewer__nav{position:absolute;top:0;bottom:0;width:34%;z-index:3}
.fs-viewer__nav--prev{inset-inline-start:0}
.fs-viewer__nav--next{inset-inline-end:0}

/* ============================================================
   10. BLOC FRESH
   ============================================================ */
.fs-fresh{background:var(--fs-cream);padding:clamp(54px,7vw,100px) clamp(18px,5vw,80px)}
.fs-fresh__card{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));border-radius:28px;overflow:hidden;box-shadow:0 40px 80px -52px rgba(0,0,0,.45)}
.fs-fresh__left{position:relative;overflow:hidden;background:linear-gradient(115deg,#F4A02C 0%,#EE7338 34%,#e8567f 62%,#2AA7B9 100%);background-size:220% 220%;animation:gmove 18s ease-in-out infinite;color:#fff;padding:clamp(34px,4.4vw,60px);display:flex;flex-direction:column;justify-content:center;gap:18px}
.fs-fresh__halo{position:absolute;border-radius:50%;filter:blur(50px);pointer-events:none}
.fs-fresh__halo--y{top:-30%;left:-12%;width:60%;height:150%;background:radial-gradient(circle,rgba(255,226,120,.5),transparent 68%);animation:blob 24s ease-in-out infinite}
.fs-fresh__halo--c{bottom:-40%;right:-10%;width:56%;height:150%;background:radial-gradient(circle,rgba(120,226,236,.42),transparent 68%);animation:blob 30s ease-in-out infinite reverse}
.fs-fresh__badge{position:relative;z-index:1;align-self:flex-start;display:inline-flex;align-items:center;gap:7px;background:#fff;color:var(--fs-red);font-size:13px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;padding:8px 17px;border-radius:var(--fs-pill);box-shadow:0 8px 20px -8px rgba(0,0,0,.4)}
.fs-fresh__title{position:relative;z-index:1;font-size:clamp(28px,3.6vw,46px);font-weight:800;line-height:1.06;letter-spacing:-.02em;text-wrap:balance}
.fs-fresh__desc{position:relative;z-index:1;font-size:clamp(15px,1.7vw,19px);font-weight:500;line-height:1.5;color:rgba(255,255,255,.94);max-width:460px}
.fs-fresh__tags{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:10px}
.fs-fresh__tag{background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.4);color:#fff;font-size:13px;font-weight:700;padding:7px 14px;border-radius:var(--fs-pill)}
.fs-fresh__right{background:#fff;display:flex;align-items:center;justify-content:center;padding:clamp(20px,3vw,40px);min-height:clamp(260px,34vw,420px)}
.fs-fresh__right img{max-height:380px;object-fit:contain}

/* ============================================================
   11. GALERIE / CITATION / TEASER UNIVERS
   ============================================================ */
.fs-gal{display:grid;gap:clamp(12px,1.6vw,20px);grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(165px,17vw,225px)}
.fs-gal__cell{position:relative;overflow:hidden;border-radius:var(--fs-radius);background:var(--fs-cream-2)}
.fs-gal__cell img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.fs-gal__cell:hover img{transform:scale(1.05)}
.fs-gal__cell--lg{grid-column:span 2;grid-row:span 2}
.fs-gal__quote{grid-column:span 2;grid-row:span 2;border-radius:var(--fs-radius);background:linear-gradient(135deg,var(--fs-red),#8d0409);color:#fff;display:flex;flex-direction:column;justify-content:center;gap:14px;padding:clamp(24px,3vw,38px)}
.fs-gal__quote *{color:#fff}
.fs-gal__quote p{font-size:clamp(20px,2.3vw,30px);font-weight:700;line-height:1.22;letter-spacing:-.01em;text-wrap:balance}
@media (max-width:899px){.fs-gal{grid-template-columns:repeat(2,1fr);grid-auto-rows:clamp(140px,38vw,190px)}.fs-gal__cell--lg,.fs-gal__quote{grid-column:span 2}.fs-gal__quote{grid-row:span 1}}

.fs-univ{position:relative;overflow:hidden;background:var(--fs-ink);color:#fff;padding:clamp(64px,9vw,120px) clamp(18px,5vw,80px)}
.fs-univ__blob{position:absolute;border-radius:50%;filter:blur(70px);pointer-events:none}
.fs-univ__blob--red{top:-30%;left:-10%;width:56%;height:160%;background:radial-gradient(circle,rgba(191,0,0,.42),transparent 66%);animation:blob 28s ease-in-out infinite}
.fs-univ__blob--gold{bottom:-40%;right:-6%;width:44%;height:150%;background:radial-gradient(circle,rgba(243,190,94,.2),transparent 66%);animation:blob 34s ease-in-out infinite reverse}
.fs-univ__grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:clamp(16px,2vw,26px)}
.fs-gamme-card{position:relative;text-align:start;border-radius:var(--fs-radius-lg);overflow:hidden;min-height:clamp(360px,42vw,460px);display:flex;flex-direction:column;justify-content:flex-end;color:#fff;transition:transform .4s ease,box-shadow .4s ease}
.fs-gamme-card:hover{transform:translateY(-7px);box-shadow:0 34px 60px -38px rgba(0,0,0,.7);color:#fff}
.fs-gamme-card h3,.fs-gamme-card:hover h3{color:#fff}
.fs-gamme-card .fs-chip-line span,.fs-gamme-card:hover .fs-chip-line span{color:#fff}
.fs-gamme-card:hover .fs-gamme-card__body,.fs-gamme-card:hover .fs-gamme-card__body *{color:inherit}
.fs-gamme-card__bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .6s ease}
.fs-gamme-card:hover .fs-gamme-card__bg{transform:scale(1.06)}
.fs-gamme-card__veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,8,6,.05) 0%,rgba(10,8,6,.55) 55%,rgba(10,8,6,.9) 100%)}
.fs-gamme-card__body{position:relative;z-index:2;padding:clamp(22px,2.6vw,32px)}
.fs-chip-line{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.fs-chip-line span{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);font-size:11.5px;font-weight:600;padding:5px 11px;border-radius:var(--fs-pill)}

/* ============================================================
   12. PAGE HERO GÉNÉRIQUE
   ============================================================ */
.fs-phero{position:relative;overflow:hidden;display:flex;align-items:flex-end;min-height:clamp(340px,52vh,560px)}
.fs-phero__bg{position:absolute;inset:0;background-size:cover;background-position:center}
.fs-phero__veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,8,6,.2) 0%,rgba(10,8,6,.4) 50%,rgba(10,8,6,.82) 100%)}
.fs-phero__inner{position:relative;z-index:2;width:100%;max-width:1180px;margin:0 auto;padding:120px clamp(22px,6vw,80px) clamp(38px,5vw,60px);color:#fff}
.fs-phero--dark{background:var(--fs-ink);color:#fff;padding:clamp(104px,13vw,150px) clamp(22px,6vw,80px) clamp(50px,6vw,72px);align-items:center}
.fs-halo-gold{position:absolute;top:-30%;right:-8%;width:44%;height:150%;background:radial-gradient(circle at center,rgba(243,190,94,.16) 0%,rgba(243,190,94,0) 62%);filter:blur(34px);animation:glow 16s ease-in-out infinite;pointer-events:none}

/* ============================================================
   13. CATALOGUE
   ============================================================ */
.fs-tabs{background:#fff;padding:clamp(20px,2.6vw,28px) clamp(18px,5vw,80px);position:sticky;top:var(--fs-header-h-scrolled);z-index:20;border-bottom:1px solid #f0e8da}
.fs-tabs__row{max-width:1180px;margin:0 auto;display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.fs-tab{display:inline-flex;align-items:center;gap:8px;background:transparent;color:var(--fs-ink);border:2px solid rgba(20,19,16,.16);font-size:14px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:11px 22px;border-radius:var(--fs-pill);transition:background .25s ease,color .25s ease,border-color .25s ease}
.fs-tab:hover{border-color:var(--fs-red)}
.fs-tab.is-active{background:var(--fs-red);border-color:var(--fs-red);color:#fff}
.fs-tab__new{font-size:9.5px;font-weight:800;letter-spacing:.08em;background:var(--fs-gold);color:var(--fs-ink);padding:2px 6px;border-radius:5px}
.fs-band{color:#fff;padding:clamp(44px,6vw,76px) clamp(22px,6vw,80px)}
.fs-band h2{font-size:clamp(34px,5vw,62px);font-weight:800;letter-spacing:-.02em;text-transform:uppercase}
.fs-band__tag{margin-top:14px;font-size:clamp(17px,2.1vw,24px);font-weight:700;color:var(--fs-gold)}
.fs-band__desc{margin-top:18px;max-width:760px;font-size:clamp(14.5px,1.6vw,18px);font-weight:500;line-height:1.6;color:rgba(255,255,255,.82)}

/* Filtres */
.fs-filters{background:var(--fs-cream);padding:clamp(30px,4vw,50px) clamp(18px,5vw,80px) 0}
.fs-filters__card{max-width:1180px;margin:0 auto;background:#fff;border:1px solid #efe6d6;border-radius:22px;box-shadow:0 26px 56px -42px rgba(0,0,0,.34);padding:clamp(18px,2.4vw,26px) clamp(20px,3vw,32px)}
.fs-filters__rows{display:flex;flex-wrap:wrap;gap:clamp(18px,3vw,42px);align-items:flex-start}
.fs-filters__group{flex:1 1 300px;min-width:240px}
.fs-filters__group--sm{flex:0 0 auto}
.fs-filters__label{font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--fs-muted-2)}
.fs-filters__chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px}
.fs-chip{display:inline-flex;align-items:center;gap:8px;background:#fff;color:#4a443c;border:1px solid #e6dccb;font-size:13.5px;font-weight:700;padding:9px 15px;border-radius:var(--fs-pill);transition:background .25s,color .25s,border-color .25s,transform .25s}
.fs-chip:hover{transform:translateY(-2px)}
.fs-chip.is-active{background:var(--fs-red);color:#fff;border-color:var(--fs-red)}
.fs-chip__n{background:#F3EDE1;color:var(--fs-muted-2);font-size:11px;font-weight:800;min-width:18px;text-align:center;padding:1px 6px;border-radius:var(--fs-pill)}
.fs-chip.is-active .fs-chip__n{background:rgba(255,255,255,.22);color:#fff}
.fs-filters__foot{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:clamp(16px,2vw,22px);padding-top:clamp(14px,1.8vw,18px);border-top:1px solid #f0e8da}
.fs-filters__count{font-size:13.5px;font-weight:700;color:var(--fs-muted)}
.fs-filters__count b{color:var(--fs-red)}
.fs-filters__reset{display:inline-flex;align-items:center;gap:7px;color:var(--fs-red);font-size:13px;font-weight:800}

/* Produits */
.fs-cat{background:var(--fs-cream);padding:clamp(48px,6vw,86px) clamp(18px,5vw,80px) clamp(64px,9vw,120px)}
.fs-cat__inner{max-width:1180px;margin:0 auto;display:flex;flex-direction:column;gap:clamp(44px,5vw,70px)}
.fs-fam__head{display:flex;align-items:baseline;gap:14px;margin-bottom:24px;flex-wrap:wrap}
.fs-fam__head h3{font-size:clamp(22px,2.6vw,30px);font-weight:800;letter-spacing:-.01em}
.fs-fam__head span{font-size:13px;font-weight:600;color:var(--fs-muted-2)}
.fs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:clamp(16px,2vw,26px)}
.fs-prod{text-align:start;background:#fff;border:1px solid var(--fs-line-2);border-radius:var(--fs-radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.fs-prod:hover{transform:translateY(-5px);box-shadow:0 24px 44px -30px rgba(0,0,0,.4);border-color:var(--fs-gold)}
.fs-prod__media{position:relative;aspect-ratio:4/3;background:linear-gradient(135deg,#fbeae7,#f6efe6);display:flex;align-items:center;justify-content:center;overflow:hidden}
.fs-prod__media img{width:100%;height:100%;object-fit:contain;padding:12px}
.fs-prod__ph{display:flex;flex-direction:column;align-items:center;gap:9px;opacity:.55}
.fs-prod__ph span{font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--fs-red)}
.fs-prod__soon{position:absolute;top:11px;inset-inline-start:11px;background:var(--fs-ink);color:#fff;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:5px 10px;border-radius:var(--fs-pill)}
.fs-prod__body{padding:16px 16px 18px;display:flex;flex-direction:column;gap:11px;flex:1}
.fs-prod__body h4{font-size:18px;font-weight:800;letter-spacing:-.01em;line-height:1.15}
.fs-badges{display:flex;flex-wrap:wrap;gap:5px}
.fs-badge{font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:4px 9px;border-radius:var(--fs-pill)}
.fs-badge--culte{background:var(--fs-gold);color:var(--fs-ink)}
.fs-badge--nouveau{background:var(--fs-red);color:#fff}
.fs-badge--halal,.fs-badge--halal-hqc{background:var(--fs-green);color:#fff}
.fs-badge--zero{background:#F1E7D4;color:#8a5a12}
.fs-badge--vegan{background:#3C9A3C;color:#fff}
.fs-badge--soon{background:#6B7280;color:#fff}
.fs-badge--tiktok{background:var(--fs-ink);color:#fff}
.fs-formats{display:flex;flex-wrap:wrap;gap:7px;margin-top:auto}
.fs-formats span{display:inline-flex;align-items:center;gap:5px;background:var(--fs-cream);font-size:12px;font-weight:700;color:#5a5346;padding:5px 10px;border-radius:8px}
.fs-formats i{color:#b9ad97;font-weight:600;font-style:normal}
.fs-empty{text-align:center;padding:clamp(40px,7vw,90px) 0}
.fs-empty p{font-size:clamp(16px,2vw,19px);font-weight:600;color:var(--fs-muted)}

/* Fiche produit */
.fs-pd{background:#fff;padding:clamp(34px,5vw,64px) clamp(22px,6vw,80px) clamp(70px,9vw,120px)}
.fs-pd__grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:minmax(280px,42%) 1fr;gap:clamp(28px,4vw,56px);align-items:start}
@media (max-width:899px){.fs-pd__grid{grid-template-columns:1fr}}
.fs-pd__media{position:sticky;top:calc(var(--fs-header-h-scrolled) + 20px);background:#faf6f0;border-radius:var(--fs-radius-lg);display:flex;align-items:center;justify-content:center;padding:clamp(20px,3vw,40px);min-height:clamp(260px,30vw,380px)}
.fs-pd__ph{background:linear-gradient(135deg,#fce4e2,#f9d9dd);border-radius:var(--fs-radius-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:clamp(40px,7vw,90px);min-height:clamp(240px,28vw,340px)}
.fs-pd__ph span{font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--fs-red)}
.fs-card{background:#fff;border:1px solid var(--fs-line);border-radius:var(--fs-radius);padding:clamp(22px,3vw,32px)}
.fs-card__label{font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--fs-red);margin-bottom:18px}
.fs-format-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:#faf6ef;border-radius:14px;padding:14px 18px}
.fs-format-row__ref{background:#fff;border:1px solid #eadcc4;color:var(--fs-red);font-size:12.5px;font-weight:800;letter-spacing:.04em;padding:7px 13px;border-radius:8px}
.fs-format-row__w{font-size:20px;font-weight:800}
.fs-format-row__pack{margin-inline-start:auto;font-size:13px;font-weight:600;color:var(--fs-muted)}
.fs-cook{background:var(--fs-ink);color:#fff;border-radius:var(--fs-radius);padding:clamp(22px,3vw,30px)}
.fs-cook__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}
@media (max-width:600px){.fs-cook__grid{grid-template-columns:1fr}}
.fs-cook__tile{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:18px 14px;text-align:center;transition:background .3s,transform .3s}
.fs-cook__tile:hover{background:rgba(255,255,255,.1);transform:translateY(-3px)}
.fs-cook__tile p{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.7);margin-top:10px}
.fs-cook__min{font-size:22px;font-weight:800;color:var(--fs-gold);margin-top:6px;display:block}
.fs-nutri-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid #f0e8da;font-size:14.5px;font-weight:700}
.fs-nutri-row span:last-child{color:#cfc4b0}
.fs-soon-pill{display:inline-flex;align-items:center;gap:8px;background:var(--fs-ink);color:#fff;font-size:13px;font-weight:800;padding:11px 18px;border-radius:var(--fs-pill)}
.fs-tag-soft{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#9b8f7a;border:1px solid #e6dccb;padding:7px 13px;border-radius:var(--fs-pill)}

/* ============================================================
   14. BLOCS ÉDITORIAUX (Qualité / Halal / Production / Univers)
   ============================================================ */
.fs-bubbles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:clamp(16px,2.2vw,28px)}
.fs-bubble{background:var(--fs-cream-2);border:1px solid #f0e6d4;border-radius:22px;padding:clamp(28px,3vw,40px);display:flex;flex-direction:column;align-items:center;text-align:center;gap:18px;transition:transform .35s ease,box-shadow .35s ease}
.fs-bubble:hover{transform:translateY(-6px);box-shadow:0 28px 54px -34px rgba(191,0,0,.32)}
.fs-bubble__icon{width:64px;height:64px;border-radius:50%;background:#FBE9E9;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.fs-bubble p{font-size:clamp(16px,1.7vw,19px);font-weight:600;line-height:1.45;text-wrap:balance}
.fs-commit{max-width:760px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:clamp(40px,5vw,64px)}
.fs-commit__item{text-align:center;max-width:560px}
.fs-commit__num{width:44px;height:44px;border-radius:50%;background:var(--fs-red);color:#fff;font-size:16px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;margin-bottom:16px}
.fs-commit__tag{font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--fs-red);margin-bottom:10px}
.fs-commit__lead{font-size:clamp(20px,2.6vw,30px);font-weight:800;letter-spacing:-.015em;line-height:1.15;margin-bottom:12px}
.fs-certs{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(18px,2.4vw,30px);margin-top:clamp(36px,4.5vw,56px)}
.fs-cert{position:relative;background:#fff;border-radius:var(--fs-radius);padding:clamp(22px,2.6vw,32px);width:clamp(190px,24vw,250px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;transition:transform .35s ease,box-shadow .35s ease}
.fs-cert:hover{transform:translateY(-6px);box-shadow:0 30px 56px -34px rgba(0,0,0,.6)}
.fs-cert img{height:clamp(100px,13vw,140px);object-fit:contain}
.fs-cert span{font-size:12.5px;font-weight:700;color:#5a5346;text-align:center}
.fs-cert__new{position:absolute;top:12px;inset-inline-end:12px;background:var(--fs-red);color:#fff;font-size:10px;font-weight:800;letter-spacing:.1em;padding:3px 9px;border-radius:var(--fs-pill)}
.fs-stats{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:clamp(28px,4vw,56px)}
.fs-stat{text-align:center}
.fs-stat__n{font-size:clamp(44px,6vw,80px);font-weight:800;letter-spacing:-.03em;color:var(--fs-red);line-height:1}
.fs-stat__t{margin-top:14px;font-size:clamp(15px,1.7vw,19px);font-weight:500;line-height:1.5}
.fs-split{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:center;gap:clamp(28px,4vw,60px)}
.fs-split__media{border-radius:var(--fs-radius-lg);overflow:hidden;box-shadow:0 40px 70px -44px rgba(0,0,0,.5)}
.fs-split__media img{width:100%;height:clamp(280px,34vw,440px);object-fit:cover;display:block}
.fs-qr{position:relative;overflow:hidden;background:linear-gradient(135deg,#0d3d24,#155c36 55%,#0d3d24);background-size:200% 200%;animation:gmove 20s ease-in-out infinite;color:#fff;border-radius:var(--fs-radius-lg);padding:clamp(30px,4vw,52px);display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:clamp(24px,3vw,44px);align-items:center}
.fs-qr__img{background:#fff;border-radius:18px;padding:16px;width:min(220px,60vw);justify-self:center}

/* ============================================================
   15. LE MAG
   ============================================================ */
.fs-mag-hero{position:relative;overflow:hidden;background:var(--fs-cream);padding:clamp(104px,13vw,150px) clamp(22px,6vw,80px) clamp(28px,4vw,44px)}
.fs-ring{position:absolute;top:50%;left:50%;border-radius:50%;border:1px solid rgba(191,0,0,.3);transform:translate(-50%,-50%);animation:ripple 7s ease-out infinite;pointer-events:none}
.fs-ring--2{animation-delay:2.3s}
.fs-ring--3{animation-delay:4.6s}
.fs-mag-hero__halo-r{position:absolute;top:-30%;left:-6%;width:52%;height:170%;background:radial-gradient(circle,rgba(191,0,0,.36),transparent 62%);filter:blur(40px);animation:blob 26s ease-in-out infinite;pointer-events:none}
.fs-mag-hero__halo-g{position:absolute;bottom:-40%;right:-6%;width:46%;height:160%;background:radial-gradient(circle,rgba(243,190,94,.55),transparent 62%);filter:blur(40px);animation:blob 32s ease-in-out infinite reverse;pointer-events:none}
.fs-feature{position:relative;overflow:hidden;border-radius:var(--fs-radius-lg);min-height:clamp(380px,48vw,540px);display:flex;align-items:flex-end;color:#fff;box-shadow:0 40px 80px -50px rgba(0,0,0,.6)}
.fs-feature__bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .8s ease}
.fs-feature:hover .fs-feature__bg{transform:scale(1.04)}
.fs-feature__veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,8,6,.08) 0%,rgba(10,8,6,.5) 52%,rgba(10,8,6,.9) 100%)}
.fs-feature__body{position:relative;z-index:2;padding:clamp(24px,3.4vw,44px)}
.fs-next-live{display:inline-flex;align-items:center;gap:12px;border:1.5px solid rgba(255,255,255,.5);border-radius:16px;padding:13px 18px;font-size:13px;font-weight:700}
.fs-bento{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:clamp(16px,2vw,24px)}
.fs-bento__lead{grid-column:span 2}
@media (max-width:700px){.fs-bento__lead{grid-column:span 1}}
.fs-article{display:flex;flex-direction:column;background:#fff;border:1px solid var(--fs-line-2);border-radius:var(--fs-radius);overflow:hidden;transition:transform .3s ease,box-shadow .3s ease}
.fs-article:hover{transform:translateY(-5px);box-shadow:0 26px 48px -32px rgba(0,0,0,.4)}
.fs-article__media{aspect-ratio:16/10;background:var(--fs-cream-2);overflow:hidden}
.fs-article__media img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.fs-article:hover .fs-article__media img{transform:scale(1.05)}
.fs-article__body{padding:18px 18px 22px;display:flex;flex-direction:column;gap:9px;flex:1}
.fs-article__cat{font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--fs-red)}
.fs-article__body h3{font-size:19px;font-weight:800;letter-spacing:-.01em;line-height:1.2}
.fs-article__body p{font-size:14px;font-weight:500;line-height:1.55;color:var(--fs-body)}
.fs-events{display:flex;flex-direction:column;gap:12px}
.fs-event{display:flex;align-items:center;gap:18px;flex-wrap:wrap;background:#fff;border:1px solid var(--fs-line-2);border-radius:16px;padding:18px 22px;transition:border-color .3s,transform .3s}
.fs-event:hover{border-color:var(--fs-gold);transform:translateX(4px)}
.fs-event__date{background:var(--fs-red);color:#fff;font-size:12.5px;font-weight:800;letter-spacing:.04em;padding:8px 14px;border-radius:10px;white-space:nowrap}
.fs-event__name{font-size:17px;font-weight:800;letter-spacing:-.01em}
.fs-event__place{margin-inline-start:auto;font-size:13.5px;font-weight:600;color:var(--fs-muted)}

/* ============================================================
   16. CONTACT
   ============================================================ */
.fs-contact{background:radial-gradient(120% 90% at 50% 0%,#fdf1ef 0%,var(--fs-cream) 55%);padding:clamp(48px,6vw,90px) clamp(18px,5vw,80px) clamp(64px,8vw,110px)}
.fs-contact__card{max-width:1140px;margin:0 auto;background:#fff;border-radius:26px;border-top:4px solid var(--fs-gold);box-shadow:0 34px 70px -46px rgba(0,0,0,.36);padding:clamp(26px,3.4vw,44px)}
.fs-segs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:clamp(22px,3vw,32px)}
.fs-seg{border:1px solid #e6dccb;background:#fff;color:#4a443c;font-size:13.5px;font-weight:700;padding:11px 18px;border-radius:var(--fs-pill);transition:background .25s,color .25s,border-color .25s}
.fs-seg.is-active{background:var(--fs-red);border-color:var(--fs-red);color:#fff}
.fs-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.fs-form label{display:flex;flex-direction:column;gap:7px;font-size:12.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--fs-muted)}
.fs-form input,.fs-form textarea,.fs-form select{background:#faf6ef;border:1px solid var(--fs-line);border-radius:12px;padding:13px 15px;font-size:15px;font-weight:500;color:var(--fs-ink);transition:border-color .25s,background .25s}
.fs-form input:focus,.fs-form textarea:focus{outline:none;border-color:var(--fs-red);background:#fff}
.fs-form .fs-full{grid-column:1 / -1}
.fs-contact__cards{max-width:1140px;margin:clamp(22px,3vw,38px) auto 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(16px,2vw,24px);align-items:stretch}
.fs-mini{display:flex;flex-direction:column;background:#fff;border:1px solid var(--fs-line-2);border-radius:18px;padding:clamp(22px,2.6vw,30px);transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.fs-mini:hover{transform:translateY(-3px);box-shadow:0 20px 44px -28px rgba(0,0,0,.35);border-color:var(--fs-gold)}
.fs-mini--dark{background:var(--fs-ink);color:#fff;border-color:transparent}
.fs-mini--fsr{border-top:3px solid var(--fs-gold)}
.fs-mini h3{font-size:19px;font-weight:800;letter-spacing:-.01em;margin-top:8px}
.fs-mini p{margin-top:8px;font-size:14px;font-weight:500;line-height:1.55;color:var(--fs-body)}
.fs-mini--dark p{color:rgba(255,255,255,.78)}
.fs-mini__label{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--fs-red)}
.fs-mini--dark .fs-mini__label{color:var(--fs-gold)}
.fs-mini__foot{margin-top:auto;padding-top:16px}
.fs-map{border-radius:18px;overflow:hidden;border:1px solid var(--fs-line-2);box-shadow:0 16px 36px -28px rgba(0,0,0,.35);display:flex;flex-direction:column}
.fs-map iframe{width:100%;flex:1;min-height:200px;border:0;display:block;filter:saturate(.92)}
.fs-map__foot{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--fs-cream);padding:13px 16px;font-size:12.5px;font-weight:700;color:var(--fs-red)}

/* ============================================================
   17. RESEARCH
   ============================================================ */
.fs-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:clamp(20px,2.6vw,32px)}
.fs-metric{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:clamp(22px,2.6vw,30px)}
.fs-metric__n{font-size:clamp(36px,5vw,62px);font-weight:800;letter-spacing:-.03em;color:var(--fs-gold);line-height:1}
.fs-metric__t{margin-top:12px;font-size:14.5px;font-weight:500;line-height:1.5;color:rgba(255,255,255,.78)}
.fs-gauge{display:flex;flex-direction:column;gap:9px}
.fs-gauge__track{height:10px;border-radius:6px;background:#ece2d0;overflow:hidden}
.fs-gauge__fill{height:100%;border-radius:6px;background:var(--fs-red);transform-origin:left;animation:growBar 1.4s cubic-bezier(.22,1,.36,1) both}

/* ============================================================
   18. INDEX ÉGALITÉ
   ============================================================ */
.fs-score{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(32px,5vw,64px);align-items:center;max-width:1080px;margin:0 auto}
.fs-score__dial{position:relative;width:clamp(220px,26vw,280px);height:clamp(220px,26vw,280px);margin:0 auto}
.fs-score__dial svg{width:100%;height:100%;transform:rotate(-90deg)}
.fs-score__val{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.fs-score__val b{font-size:clamp(52px,7vw,76px);font-weight:800;letter-spacing:-.03em;color:var(--fs-orange);line-height:1}
.fs-score__val span{font-size:15px;font-weight:700;color:var(--fs-muted-2)}
.fs-ind{background:var(--fs-cream-2);border:1px solid #f0e6d4;border-radius:var(--fs-radius);padding:clamp(22px,2.6vw,30px);display:flex;flex-direction:column}
.fs-ind__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.fs-ind__head h3{font-size:16.5px;font-weight:800;letter-spacing:-.01em;line-height:1.25;max-width:70%}
.fs-ind__pts{font-size:clamp(24px,3vw,32px);font-weight:800;white-space:nowrap}
.fs-ind__pts small{font-size:15px;color:var(--fs-muted-2);font-weight:700}
.fs-ind__pts--green{color:var(--fs-green)}
.fs-ind__pts--red{color:var(--fs-red)}
.fs-ind__pts--neutral{color:var(--fs-ink)}
.fs-ind p{margin-top:12px;font-size:14px;font-weight:500;line-height:1.55;color:var(--fs-body);flex:1}
.fs-ind__bar{margin-top:16px;height:8px;border-radius:6px;background:#ece2d0;overflow:hidden}
.fs-ind__bar i{display:block;height:100%;border-radius:6px}
.fs-goal{background:#fff;border:1px solid var(--fs-line-2);border-top:3px solid var(--fs-red);border-radius:18px;padding:clamp(22px,2.6vw,30px)}
.fs-goal__label{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--fs-red);margin-bottom:12px}
.fs-goal p{font-size:14.5px;font-weight:500;line-height:1.6;color:#3a352d}

/* ============================================================
   19. FOOTER
   ============================================================ */
.fs-footer{background:var(--fs-red);color:#fff}
.fs-footer__inner{max-width:1280px;margin:0 auto;padding:clamp(48px,6vw,86px) clamp(22px,5vw,60px) clamp(30px,4vw,44px)}
.fs-footer__cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:clamp(30px,4vw,54px)}
.fs-footer h4{font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--fs-gold);margin-bottom:16px}
.fs-footer li{margin-bottom:9px;font-size:14.5px;font-weight:500;color:rgba(255,255,255,.9)}
.fs-footer__news{display:flex;gap:8px;margin-top:14px;max-width:320px}
.fs-footer__news input{flex:1;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);border-radius:var(--fs-pill);padding:11px 16px;color:#fff;font-size:14px}
.fs-footer__news input::placeholder{color:rgba(255,255,255,.6)}
.fs-footer__news button{background:#fff;color:var(--fs-red);font-size:13.5px;font-weight:800;padding:11px 20px;border-radius:var(--fs-pill)}
.fs-footer__logo{height:54px;width:auto;display:block;margin-bottom:20px}
.fs-footer__bottom{margin-top:clamp(36px,5vw,56px);padding-top:22px;border-top:1px solid rgba(255,255,255,.22);display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.fs-alma{position:relative;display:inline-block}
.fs-alma img{height:45px;width:auto;display:block;opacity:.92}
.fs-alma__halo{position:absolute;top:-10px;inset-inline-end:-9px;width:40px;height:40px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.95) 0%,rgba(255,255,255,.32) 38%,rgba(255,255,255,0) 72%);animation:twinkle 10s ease-in-out infinite;pointer-events:none}
.fs-footer__legal{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:13px;font-weight:500;color:rgba(255,255,255,.8)}
.fs-footer__index{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:rgba(255,255,255,.86);transition:color .25s}
.fs-footer__index:hover{color:var(--fs-gold)}
.fs-footer__index b{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.32);font-size:12px;font-weight:800;padding:2px 8px;border-radius:var(--fs-pill)}

/* ============================================================
   20. RTL (arabe)
   ============================================================ */
html[dir="rtl"] .fs-hero__scroll{transform:translateX(50%)}
html[dir="rtl"] .fsnav{background-position:right 100%}
html[dir="rtl"] .fs-event:hover{transform:translateX(-4px)}
html[dir="rtl"] .fs-score__dial svg{transform:rotate(-90deg) scaleY(-1)}

/* ============================================================
   21. BANDEAU COOKIES
   ============================================================ */
@keyframes ckIn{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}
.fs-cookie{position:fixed;inset-inline-start:clamp(12px,3vw,26px);bottom:clamp(12px,3vw,26px);z-index:190;width:min(400px,calc(100vw - 24px));background:rgba(20,18,16,.94);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(243,190,94,.28);border-radius:20px;box-shadow:0 34px 70px -34px rgba(0,0,0,.75);padding:clamp(20px,2.6vw,26px);color:#fff;animation:ckIn .5s cubic-bezier(.22,1,.36,1) both;transition:opacity .38s ease,transform .38s cubic-bezier(.4,0,.2,1)}
.fs-cookie[hidden]{display:none}
.fs-cookie.is-out{opacity:0;transform:translateY(22px) scale(.97);pointer-events:none}
.fs-cookie__head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.fs-cookie__head p{font-size:15.5px;font-weight:800;letter-spacing:-.01em}
.fs-cookie__icon{width:30px;height:30px;border-radius:50%;background:rgba(243,190,94,.16);display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.fs-cookie__text{font-size:13.5px;font-weight:500;line-height:1.6;color:rgba(255,255,255,.76)}
.fs-cookie__actions{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-top:16px}
.fs-cookie__accept{background:var(--fs-red);color:#fff;font-size:13.5px;font-weight:800;padding:11px 20px;border-radius:var(--fs-pill);transition:transform .3s ease}
.fs-cookie__accept:hover{transform:translateY(-2px)}
.fs-cookie__refuse{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);color:#fff;font-size:13.5px;font-weight:700;padding:11px 20px;border-radius:var(--fs-pill);transition:background .3s ease}
.fs-cookie__refuse:hover{background:rgba(255,255,255,.18)}
.fs-cookie__more{margin-inline-start:auto;font-size:12.5px;font-weight:700;color:var(--fs-gold);text-decoration:underline;text-underline-offset:3px}
.fs-cookie__more:hover{color:var(--fs-gold)}

/* ============================================================
   22. PAGES LÉGALES
   ============================================================ */
.fs-legal{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:clamp(30px,4vw,46px)}
.fs-legal h2{font-size:clamp(20px,2.4vw,26px);font-weight:800;letter-spacing:-.01em;color:var(--fs-ink);margin-bottom:14px}
.fs-legal p,.fs-legal li{font-size:15.5px;font-weight:500;line-height:1.7;color:var(--fs-body)}
.fs-legal ul{list-style:disc;padding-inline-start:20px}
.fs-legal a{color:var(--fs-red);font-weight:700}
.fs-legal__note{background:var(--fs-cream-2);border:1px solid #f0e6d4;border-inline-start:3px solid var(--fs-gold);border-radius:16px;padding:20px 24px}
.fs-legal__card{background:var(--fs-cream-2);border:1px solid #f0e6d4;border-radius:16px;padding:18px 22px}
.fs-legal__card p:first-child{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--fs-red);margin-bottom:8px}
