/* Réserve la gouttière de scrollbar en permanence : évite le décalage de layout
   quand la scrollbar apparaît (chargement) ou disparaît (ouverture du menu). */
html{scrollbar-gutter:stable}

/* Forme — optimisations : full-bleed + navbar blur progressif (couche override) */
.fm-layout-max,.navbar-v3,.navbar-v4,.full-screen-menu,.topmenu{max-width:none!important}
.navbar-v3,.navbar-v4{background-color:transparent!important}

/* Blur progressif du header : 6 couches, progression régulière, bas totalement estompé */
.fm-blur{position:fixed;top:0;left:0;right:0;height:72px;z-index:15;pointer-events:none}
.fm-blur>div{position:absolute;inset:0}
.fm-blur .tint{background:linear-gradient(to bottom,rgba(255,255,255,.42) 0%,rgba(255,255,255,.26) 35%,rgba(255,255,255,.08) 70%,rgba(255,255,255,0) 100%)}
.fm-blur .l1{backdrop-filter:blur(.5px);-webkit-backdrop-filter:blur(.5px);-webkit-mask:linear-gradient(to bottom,#000 0%,#000 55%,transparent 100%);mask:linear-gradient(to bottom,#000 0%,#000 55%,transparent 100%)}
.fm-blur .l2{backdrop-filter:blur(1px);-webkit-backdrop-filter:blur(1px);-webkit-mask:linear-gradient(to bottom,#000 0%,#000 44%,transparent 82%);mask:linear-gradient(to bottom,#000 0%,#000 44%,transparent 82%)}
.fm-blur .l3{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);-webkit-mask:linear-gradient(to bottom,#000 0%,#000 34%,transparent 66%);mask:linear-gradient(to bottom,#000 0%,#000 34%,transparent 66%)}
.fm-blur .l4{backdrop-filter:blur(3.5px);-webkit-backdrop-filter:blur(3.5px);-webkit-mask:linear-gradient(to bottom,#000 0%,#000 25%,transparent 52%);mask:linear-gradient(to bottom,#000 0%,#000 25%,transparent 52%)}
.fm-blur .l5{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);-webkit-mask:linear-gradient(to bottom,#000 0%,#000 16%,transparent 40%);mask:linear-gradient(to bottom,#000 0%,#000 16%,transparent 40%)}
.fm-blur .l6{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);-webkit-mask:linear-gradient(to bottom,#000 0%,#000 8%,transparent 28%);mask:linear-gradient(to bottom,#000 0%,#000 8%,transparent 28%)}

/* case study intro 2-col */
.fm-case-intro{display:grid;grid-template-columns:1fr 1fr;grid-column-gap:32px;grid-row-gap:32px;width:100%;padding-bottom:20px}
@media(max-width:767px){.fm-case-intro{grid-template-columns:1fr}}

/* Rayon d'arrondi unifié via token — images & tuiles (masonry, hero/galerie projets,
   carte contact, embeds, cartes). Une seule valeur a changer pour tout le site. */
:root{--fm-radius:8px}
.fm-tile-media,
.fm-map-wrap,
.fm-embed,
.card,
.lead-block,
.footer-2{border-radius:var(--fm-radius)!important}

/* « Voir aussi » : grille responsive alignée sur la masonry — 4 / 3 / 2 / 1 projets */
.fm-related{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-column-gap:8px;grid-row-gap:8px;width:100%}
.fm-related-item{display:block;text-decoration:none;color:inherit}
.fm-related-item .fm-media{width:100%;display:block}
.fm-related-cap{margin-top:6px;margin-bottom:24px;display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.fm-related-cap .fm-tags{display:flex;flex-wrap:wrap;gap:4px}
@media (max-width:1279px){.fm-related{grid-template-columns:repeat(3,1fr)}.fm-related-item:nth-child(n+4){display:none}}
@media (max-width:767px){.fm-related{grid-template-columns:repeat(2,1fr)}.fm-related-item:nth-child(n+3){display:none}}
@media (max-width:479px){.fm-related{grid-template-columns:1fr}.fm-related-item:nth-child(n+2){display:none}}

/* Page Logos : grille de tuiles carrées (sans filet) + légende Aeonik Mono caps sous la tuile */
.fm-logos{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-column-gap:12px;grid-row-gap:26px;width:100%}
.fm-logo-tilewrap{position:relative}.fm-logo-tile{aspect-ratio:1/1;background:#fff;border-radius:var(--fm-radius);overflow:hidden}.fm-logo-proj{position:absolute;left:0;bottom:0;margin:0}
.fm-logo-tile img{width:100%;height:100%;object-fit:contain;display:block}
.fm-logo-cap{margin-top:9px;font-family:Aeonikmono,sans-serif;text-transform:uppercase;color:#000;letter-spacing:.3px;line-height:1.35;text-align:left}
.fm-logo-name{font-weight:400;font-size:11px;overflow-wrap:anywhere}
.fm-logo-sub{font-family:Aeonikmono,sans-serif;font-weight:400;font-size:11px;text-transform:uppercase;color:#000;letter-spacing:.3px;line-height:1.35;overflow-wrap:anywhere}
/* apparition au scroll (comme la home) */
.fm-logos.fm-reveal .fm-logo-item{opacity:0;transform:translateY(20px);transition:opacity .55s ease,transform .55s cubic-bezier(.2,.6,.2,1)}
.fm-logos.fm-reveal .fm-logo-item.fm-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.fm-logos.fm-reveal .fm-logo-item{opacity:1;transform:none;transition:none}}
@media (max-width:1100px){.fm-logos{grid-template-columns:repeat(4,1fr)}}
@media (max-width:767px){.fm-logos{grid-template-columns:repeat(2,1fr)}}
@media (max-width:479px){.fm-logos{grid-template-columns:repeat(1,1fr)}}

/* ── Tags maison (remplace item-tag-v3/item-text-v3/wrapper-tags-v3/collection-list-3/flex-h-v-gap6) ── */
.fm-tags{display:flex;flex-wrap:wrap;align-content:flex-start;gap:2px}
.fm-tags--svc{gap:6px;align-content:normal}
.fm-tags--cap{max-width:840px}
.fm-tag{align-self:flex-start;display:flex;align-items:center;background:#f5f5f5;border-radius:8px;padding:5px 7px;color:var(--grey-secondary-brand-color);font-family:Aeonikmono,sans-serif;font-size:14px;line-height:14px;letter-spacing:.25px;text-transform:uppercase}.fm-tag--sm{font-size:11px;line-height:1;padding:3px 6px;letter-spacing:.3px;border-radius:4px}

/* Meta / label (remplace item-text-v3 hors pilule : roles equipe, etc.) */
.fm-meta{display:block;color:var(--grey-secondary-brand-color);font-family:Aeonikmono,sans-serif;font-size:14px;line-height:14px;letter-spacing:.25px;text-transform:uppercase}

/* Titres maison (remplacent h1-v3/h2-v3/masonry-media-title-v3/p-lead-v3) */
.fm-h1{margin-bottom:0;font-family:Aeonikmono,sans-serif;font-size:18px;font-weight:500;line-height:18px;text-transform:uppercase}
.fm-h2{margin-bottom:0;font-family:Aeonikmono,sans-serif;font-size:14px;line-height:14px;letter-spacing:.25px;text-transform:uppercase}
.fm-card-title{display:block;margin:0;padding:0;color:var(--primary-brand-color);font-family:Aeonik,sans-serif;font-size:16px;font-weight:400;line-height:16px}.fm-card-sub{display:block;margin:0;padding:0;color:var(--grey-secondary-brand-color);font-family:Aeonik,sans-serif;font-size:16px;font-weight:400;line-height:16px}
.fm-lead{max-width:840px;margin-bottom:0;font-size:28px;line-height:28px}
@media screen and (max-width:479px){.fm-h1{font-size:16px;line-height:16px}}
@media screen and (min-width:1920px){.fm-h2{line-height:18px}}

/* Media projet (fusionne img-ratio-2-1/img-ratio-3-2/image-project) + galerie */
.fm-media{aspect-ratio:auto;object-fit:cover;border:0 solid #000;border-radius:var(--fm-radius);width:100%;margin-bottom:0;overflow:hidden}
.fm-media--3-2{aspect-ratio:3/2}
.fm-media-wide{aspect-ratio:2;object-fit:cover;border-radius:var(--fm-radius);width:100%;height:98%}
.fm-gallery{margin-left:0;margin-right:0;display:block}
.fm-grid-2{grid-column-gap:8px;grid-row-gap:8px;flex-wrap:nowrap;grid-template-rows:auto auto;grid-template-columns:1fr 1fr;grid-auto-columns:1fr;grid-auto-flow:dense;display:grid}
@media screen and (max-width:479px){.fm-media-wide{aspect-ratio:16/9}}
@media screen and (max-width:479px){.fm-grid-2{grid-template-columns:1fr;grid-column-gap:10px;grid-row-gap:10px}}

/* Layout utilities maison (ex .flex-v-gap4/8/16, .flex-h-gap6, .grid-3col) */
.fm-stack-4{grid-column-gap:4px;grid-row-gap:4px;flex-direction:column;align-self:auto;width:100.073%;margin-top:0;align-items:flex-start;display:flex}
.fm-stack-8{grid-column-gap:8px;grid-row-gap:8px;flex-direction:column;align-self:auto;width:100.073%;margin-top:0;display:flex}
.fm-stack-16{grid-column-gap:16px;grid-row-gap:16px;flex-direction:column;align-self:auto;width:100.073%;margin-top:0;display:flex}
.fm-row-6{grid-column-gap:6px;grid-row-gap:6px;grid-template-rows:auto auto;grid-template-columns:1fr 1fr 1fr 1fr;grid-auto-columns:1fr;margin-top:0;margin-bottom:0;align-items:flex-start;display:flex}
.fm-grid-3{grid-column-gap:16px;grid-row-gap:16px;grid-template-rows:auto auto;grid-template-columns:1fr 1fr 1fr;grid-auto-columns:1fr;margin-top:0;margin-bottom:40px;display:grid}
@media screen and (max-width:991px){.fm-grid-3,.fm-row-6{grid-column-gap:16px;grid-row-gap:16px;grid-template-columns:1fr 1fr;margin-top:16px}}
@media screen and (max-width:767px){.fm-stack-4,.fm-stack-8,.fm-stack-16{margin-top:10px}.fm-grid-3,.fm-row-6{grid-template-columns:1fr 1fr}}
@media screen and (max-width:479px){.fm-row-6{grid-column-gap:6px;grid-row-gap:6px;grid-template-columns:1fr;margin-top:0}.fm-grid-3{grid-column-gap:10px;grid-row-gap:10px;grid-template-columns:1fr 1fr}}

/* Section wrapper maison (ex .section-v3) */
.fm-section{grid-column-gap:16px;grid-row-gap:16px;flex-flow:column;flex:0 auto;width:100%;margin-bottom:32px;padding:16px;display:flex}
@media screen and (max-width:479px){.fm-section{margin-bottom:16px;padding:10px}}

/* Utilitaires maison (ex aeonik-mono-12, team-member-photo, p-ratio__66, contact-info__wrap, image-14) */
.fm-ratio-66{width:100%;padding-top:0%;position:relative}
.fm-contact-info{margin-top:0;margin-bottom:0}
.fm-mono-12{color:#000;align-self:auto;padding-left:0;padding-right:0;font-family:Aeonikmono,sans-serif;font-size:11px;font-weight:400;line-height:14px;letter-spacing:.3px;text-transform:uppercase;text-decoration:none;position:static}
.fm-img-14{height:18px}
.fm-team-photo{border-radius:120px;margin-bottom:8px}
@media screen and (min-width:1280px){.fm-mono-12{line-height:12px}}
@media screen and (max-width:479px){.fm-team-photo{aspect-ratio:1;width:60px;height:60px}}

/* Page wrapper maison (ex .layout-1920px-max ; max-width neutralise par override !important) */
.fm-layout-max{flex-direction:column;justify-content:space-between;width:100%;max-width:1920px;min-height:auto}


/* --- lot1: migres verbatim du min.css --- */
.fm-map-wrap{filter:saturate(0%);border-radius:8px;height:500px;margin-top:0;overflow:hidden}
.fm-page{flex-flow:column;justify-content:flex-start;align-items:center;padding-top:72px;display:flex}
@media screen and (min-width:1920px){.fm-page{grid-template-rows:auto auto;grid-template-columns:1fr 1fr;grid-auto-columns:1fr}}


/* --- lot3: team/award/collection -> fm-* (migres verbatim du min.css) --- */
.fm-team-item{flex-direction:column;align-items:flex-start;margin-bottom:16px;display:flex}
.fm-award{grid-column-gap:8px;grid-row-gap:8px;flex-flow:row;justify-content:flex-start;align-self:auto;align-items:center;display:flex}
@media screen and (max-width:479px){.fm-award{flex-flow:column;justify-content:flex-start;align-items:flex-start;width:100%}}
.fm-award-list{grid-column-gap:16px;grid-row-gap:16px;flex-flow:wrap;display:flex}

/* Lot1 : quick-stack-2/cell/wf-layout-layout -> fm-* (relocalises verbatim, render-neutre) */
.fm-layout-grid{grid-row-gap:20px;grid-column-gap:20px;grid-auto-columns:1fr;justify-content:center;display:grid}
.fm-quick-stack{margin-bottom:48px;padding:0}
.fm-cell{grid-column-gap:16px;grid-row-gap:16px;flex-flow:column;align-items:flex-start;display:flex}
@media screen and (max-width:991px){.fm-quick-stack{margin-bottom:30px}}
@media screen and (max-width:767px){.fm-quick-stack{margin-bottom:0;padding-bottom:30px}}
@media screen and (max-width:479px){.fm-quick-stack{margin-bottom:0;padding-bottom:0}}
@media screen and (max-width:479px){.fm-cell{padding-bottom:16px}}

/* Lot html-embed/button-v3/h2 -> fm-* (relocalises verbatim depuis min.css, render-neutre) */
.fm-embed{border-radius:8px;width:auto;height:100%;display:block}
.fm-button{background-color:var(--color);color:var(--primary-brand-color);letter-spacing:.25px;text-transform:uppercase;border:1px solid #000;border-radius:8px;align-self:flex-start;padding:5px 7px;font-family:Aeonikmono,sans-serif;font-size:14px;line-height:14px;cursor:pointer;text-decoration:none;display:inline-block}
.fm-button:hover{background-color:var(--primary-brand-color);color:var(--white);-webkit-text-stroke-color:var(--white)}
.fm-button.center{align-self:auto}
.fm-richtext-h2{font-size:28px;line-height:28px}.fm-richtext h6{font-size:11px;letter-spacing:.3px}

/* Lot footer -> fm-footer (relocalise verbatim ; JS querySelector + reveal footer-ready mis a jour) */
.fm-footer{z-index:10;grid-column-gap:12px;grid-row-gap:12px;background-color:var(--color);object-fit:fill;border-radius:0;flex-flow:column;justify-content:flex-start;align-items:flex-start;width:100%;height:auto;margin:48px 0;padding:0;display:flex;position:static;inset:0%}
@media screen and (min-width:1920px){.fm-footer{border-radius:12px}}
@media screen and (max-width:991px){.fm-footer{height:300px}}
@media screen and (max-width:767px){.fm-footer{height:auto;margin-top:40px;padding-top:40px;padding-bottom:40px}}
@media screen and (max-width:479px){.fm-footer{margin:10px 0 40px;padding:0}}

/* Lot clients-logos -> fm-clients-logos (marquee /forme). Regles grid du min MORTES (style inline .fm-clients-logos{display:flex!important;gap:...} domine) -> seul height conserve. */
.fm-clients-logos{height:140px}

/* Lot link-block/fade-page-on-click -> fm-link/fm-fade (relocalise verbatim ; runtime Webflow retire = plus de JS) */
.fm-link.fm-fade{align-self:auto;width:auto;height:auto;max-width:100%;display:inline-block}
.fm-link.fm-fade.fm-current{height:32px}
@media screen and (max-width:991px){.fm-link.fm-fade{height:auto}}
@media screen and (max-width:767px){.fm-link.fm-fade{height:auto}}
@media screen and (max-width:479px){.fm-link{flex:none}}
@media screen and (max-width:479px){.fm-link.fm-fade,.fm-link.fm-fade.fm-current{height:auto}}

/* Lot masonry-caption -> fm-caption (relocalise verbatim ; gagne flex-flow:column sur w-layout-hflex comme avant, optims3 apres min) */
.fm-caption{grid-column-gap:8px;grid-row-gap:2px;flex-flow:column;align-items:flex-start;display:flex;margin-top:6px;margin-bottom:24px}
/* Lot masonry-media -> fm-tile-media (relocalise ; position:static DROPPE = mort, l'inline home_pre position:relative reste gagnant) */
.fm-tile-media{border-radius:8px;flex-flow:column;width:100%;padding:0;display:block;overflow:hidden}

/* w-layout-cell strip: cellule flex-col sans gouttiere/padding (ex [slug] fm-case-intro) */
.fm-cell-plain{align-items:flex-start;flex-direction:column;display:flex}

/* w-richtext strip: seules regles vivantes (clearfix) renommees ; les blocs figure/ol/ul/video etaient inertes (wrappers = 1 titre) */
.fm-richtext:before,.fm-richtext:after{content:" ";grid-area:1/1/2/2;display:table}.fm-richtext:after{clear:both}

/* migration .h1 (contact) -> .fm-h1-txt (evite collision .fm-h1 mono) */
.fm-h1-txt{padding-right:24px}
@media screen and (max-width:991px){.fm-h1-txt{font-size:34px}}
@media screen and (max-width:767px){.fm-h1-txt{font-size:30px}}
@media screen and (max-width:479px){.fm-h1-txt{font-size:24px}}
/* migration .margin--left (contact tel/mail) -> .fm-mgl */
.fm-mgl{margin-left:24px;max-width:100%;display:inline-block}
@media screen and (max-width:767px){.fm-mgl{margin-left:16px}}
@media screen and (max-width:479px){.fm-mgl{margin-left:10px}}

/* migration grille /forme #w-node -> .fm-forme-grid (verbatim) */
.fm-forme-grid{grid-template-rows:auto;grid-template-columns:1fr 1fr 1fr}
@media screen and (max-width:991px){.fm-forme-grid{grid-template-rows:auto;grid-template-columns:1fr 1fr}}
@media screen and (max-width:767px){.fm-forme-grid{grid-template-rows:auto;grid-template-columns:1fr 1fr}}
@media screen and (max-width:479px){.fm-forme-grid{grid-template-rows:auto;grid-template-columns:1fr}}
/* migration clients-logo item/img -> fm-* (marquee /forme) */
.fm-clients-logo-item{width:auto}
.fm-clients-logo-img{width:240px}
