
:root{--blue:#244A96;--navy:#061530;--gold:#D6A743;--sky:#eaf2ff;--text:#142033;--muted:#667085;--line:#dfe6f2;--soft:#f5f7fb;--white:#fff;--shadow:0 28px 85px rgba(9,30,66,.20);--radius:30px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--text);background:white}a{text-decoration:none;color:inherit}img{max-width:100%;display:block}p{line-height:1.7;color:#536075}h1,h2,h3{margin:0 0 18px;line-height:1.04;color:#071a3a}h1{font-size:clamp(42px,6vw,82px);letter-spacing:-.06em}h2{font-size:clamp(32px,4vw,56px);letter-spacing:-.045em}h3{font-size:22px}.container{width:min(1180px,92vw);margin:auto}.topbar{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border-bottom:1px solid rgba(223,230,242,.8)}.nav{height:92px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;min-width:260px}.brand img{width:310px;height:auto;filter:drop-shadow(0 12px 24px rgba(9,30,66,.10))}.menu{display:flex;align-items:center;gap:24px;font-weight:800;font-size:14px}.menu a:not(.btn){color:#1d2a44}.menu a:hover{color:var(--blue)}.btn{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--blue),#16326d);color:white!important;border-radius:999px;padding:14px 22px;font-weight:900;box-shadow:0 14px 30px rgba(36,74,150,.25);border:0}.btn.light{background:white;color:var(--blue)!important}.btn.secondary{background:white;color:var(--blue)!important;border:1px solid rgba(36,74,150,.18);box-shadow:none}.burger{display:none;flex-direction:column;gap:5px;background:var(--blue);border:0;border-radius:14px;padding:13px;cursor:pointer}.burger span{display:block;width:24px;height:2px;background:white;border-radius:9px;transition:.25s}.nav.open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav.open .burger span:nth-child(2){opacity:0}.nav.open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.hero{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(90deg,rgba(4,13,31,.94),rgba(36,74,150,.58)),var(--hero);background-size:cover;background-position:center;min-height:760px;color:white}.hero h1,.hero p{color:white}.hero:after{content:"";position:absolute;inset:auto -10% -35% 42%;height:600px;background:rgba(255,255,255,.08);border-radius:60% 0 0 0;transform:rotate(-10deg);z-index:-1}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:55px;align-items:center;min-height:760px;padding:80px 0}.eyebrow{display:inline-flex;align-items:center;gap:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:950;color:var(--blue);font-size:12px;margin-bottom:18px}.hero .eyebrow{color:#fff}.hero .eyebrow:before,.page-hero .eyebrow:before{content:"";width:34px;height:2px;background:var(--gold);display:inline-block}.page-hero .eyebrow{color:#fff}.lead{font-size:20px;max-width:780px}.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}.hero-card{background:rgba(255,255,255,.95);border-radius:34px;padding:14px;box-shadow:var(--shadow);transform:rotate(1.5deg);animation:float 7s ease-in-out infinite}.hero-card img,.visual img,.card img,.case-img img{width:100%;height:100%;object-fit:cover;border-radius:24px}.hero-card .caption{padding:18px 20px;color:#071a3a;font-weight:900}.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:16px}.kpis div{background:white;color:#536075;border-radius:22px;padding:20px;box-shadow:0 14px 40px rgba(9,30,66,.08)}.kpis strong{display:block;color:var(--blue);font-size:34px}.section{padding:100px 0}.soft{background:var(--soft)}.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}.big{font-size:18px}.visual{height:470px;border-radius:34px;overflow:hidden;box-shadow:var(--shadow);background:#dfe6f2}.list{display:grid;gap:14px;padding:0;margin:24px 0;list-style:none}.list li{position:relative;padding-left:28px;color:#48556b;line-height:1.6}.list li:before{content:"";position:absolute;left:0;top:10px;width:10px;height:10px;background:var(--blue);border-radius:50%}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;margin-top:34px}.card{background:white;border:1px solid var(--line);border-radius:30px;overflow:hidden;box-shadow:0 18px 60px rgba(9,30,66,.08);transition:.35s}.card:hover{transform:translateY(-8px);box-shadow:var(--shadow)}.card img,.sector img,.visual img,.case-img img{filter:saturate(1.08) contrast(1.04)}.card img{height:230px;border-radius:0}.card h3,.card p{padding:0 24px}.card h3{padding-top:24px}.card p{padding-bottom:26px}.band{display:flex;justify-content:space-between;align-items:center;gap:30px;background:linear-gradient(135deg,#102d66,#061530);border:1px solid rgba(214,167,67,.28);color:white;border-radius:38px;padding:48px;overflow:hidden}.band h2,.band p,.band .eyebrow{color:white}.page-hero{padding:132px 0 104px;color:white;background:linear-gradient(90deg,rgba(4,13,31,.95),rgba(36,74,150,.54)),var(--pageimg);background-size:cover;background-position:center}.page-hero h1,.page-hero p,.page-hero .eyebrow{color:white}.page-hero p{max-width:850px;font-size:19px}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.fact,.process-step,.sector,.contact-box,.logo-tile{background:white;border:1px solid var(--line);border-radius:26px;padding:28px;box-shadow:0 14px 44px rgba(9,30,66,.06)}.process{counter-reset:step;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:30px}.process-step:before{counter-increment:step;content:"0" counter(step);display:block;font-weight:950;font-size:36px;color:var(--blue);margin-bottom:18px}.case{display:grid;grid-template-columns:.95fr 1.05fr;gap:34px;align-items:center;background:white;border:1px solid var(--line);border-radius:34px;padding:24px;box-shadow:0 18px 60px rgba(9,30,66,.08);margin:30px 0}.case:nth-child(even){grid-template-columns:1.05fr .95fr}.case:nth-child(even) .case-img{order:2}.case-img{height:390px}.tags{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.tag{font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:var(--blue);background:#eaf2ff;border:1px solid #d5e5ff;border-radius:999px;padding:8px 10px}.case-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}.mini{background:#f8fbff;border:1px solid var(--line);border-radius:16px;padding:14px;font-size:14px}.mini b{display:block;color:var(--blue);margin-bottom:4px}.logo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:34px}.logo-tile{height:120px;display:flex;align-items:center;justify-content:center;padding:18px;filter:grayscale(1);transition:.3s}.logo-tile:hover{filter:grayscale(0);transform:translateY(-4px)}.logo-tile img{max-height:76px;max-width:90%;object-fit:contain}.sector img{height:210px;width:100%;object-fit:cover;border-radius:20px;margin-bottom:18px}.contact-box{padding:34px}.form{display:grid;gap:14px}.form input,.form textarea,.form select{width:100%;border:1px solid var(--line);border-radius:16px;padding:15px 16px;font:inherit}.form textarea{min-height:150px}.footer{background:#061530;color:#dce9ff;padding:64px 0 28px}.footer-grid{display:grid;grid-template-columns:1.3fr repeat(3,1fr);gap:34px}.footer img{width:280px}.footer p{color:#b9c9e5}.footer a{color:white;font-weight:800}.small{margin-top:38px;padding-top:22px;border-top:1px solid rgba(255,255,255,.12);font-size:13px;color:#96aacd}.mobile-cta{display:none}.reveal{opacity:0;transform:translateY(28px);transition:.75s ease}.reveal.visible{opacity:1;transform:translateY(0)}@keyframes float{50%{transform:translateY(-12px) rotate(-1deg)}}@media(max-width:980px){.nav{height:auto;min-height:82px}.brand{min-width:0}.brand img{width:220px}.burger{display:flex}.menu{display:none;position:absolute;left:4vw;right:4vw;top:86px;background:white;border:1px solid var(--line);border-radius:24px;padding:18px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch}.nav.open .menu{display:flex}.menu a{padding:12px 14px;border-radius:12px}.menu .btn{width:100%;text-align:center}.hero,.hero-grid{min-height:auto}.hero-grid,.split,.grid-2,.case,.case:nth-child(even){grid-template-columns:1fr}.case:nth-child(even) .case-img{order:0}.cards,.process,.grid-4,.footer-grid,.case-grid,.logo-grid{grid-template-columns:1fr}.hero-grid{padding:70px 0}.hero-card{transform:none}.hero-card img{height:320px}.kpis{grid-template-columns:1fr}.band{display:block;padding:30px}.section{padding:68px 0}.page-hero{padding:90px 0 76px}.visual,.case-img{height:310px}.mobile-cta{display:flex;position:fixed;z-index:60;left:14px;right:14px;bottom:14px;justify-content:center;background:var(--blue);color:white;border-radius:18px;padding:15px;font-weight:950;box-shadow:var(--shadow)}.footer{padding-bottom:90px}}@media(max-width:520px){.brand img{width:180px}h1{font-size:38px}.hero-actions .btn{width:100%}.logo-tile{height:105px}}

/* V10 premium fixes: cartes visuelles sans texte coupé */
.solution-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:42px;align-items:stretch}.solution-card{position:relative;background:#fff;border:1px solid rgba(223,230,242,.95);border-radius:30px;overflow:hidden;box-shadow:0 22px 70px rgba(9,30,66,.10);transition:transform .35s ease,box-shadow .35s ease}.solution-card:hover{transform:translateY(-8px);box-shadow:0 34px 90px rgba(9,30,66,.20)}.solution-card figure{position:relative;margin:0;height:410px;overflow:hidden;background:#0b1d3b}.solution-card figure:after{content:"";position:absolute;inset:38% 0 0;background:linear-gradient(180deg,rgba(3,10,24,0),rgba(3,10,24,.88) 65%,rgba(3,10,24,.96));pointer-events:none}.solution-card img{width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(1.08) contrast(1.06)}.solution-label{position:absolute;left:24px;right:24px;top:270px;z-index:2;color:#fff;text-shadow:0 3px 12px rgba(0,0,0,.55)}.solution-label span{display:block;margin-bottom:8px;font-size:14px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#f6d277;line-height:1.25}.solution-label h3{margin:0;color:#fff;font-size:clamp(22px,1.65vw,30px);line-height:1.04;letter-spacing:-.03em;text-transform:uppercase;max-width:100%;overflow:visible}.solution-card p{margin:0;padding:24px 24px 28px;min-height:148px;color:#526076;line-height:1.62}.solution-cards .solution-card:nth-child(5){grid-column:span 2}.page-hero{background-position:center center}.hero{background-position:center center}.cards .card{display:flex;flex-direction:column}.cards .card img{height:260px;object-fit:cover}.cards .card h3{font-size:22px;line-height:1.12}.sector{overflow:hidden}.sector img{height:250px;border-radius:22px;object-fit:cover}.sector h3{font-size:24px;line-height:1.1}.sector p{margin-bottom:0}.logo-grid{position:relative}.logo-tile{background:rgba(255,255,255,.94);box-shadow:0 18px 54px rgba(9,30,66,.08)}
@media(max-width:1180px){.solution-cards{grid-template-columns:repeat(2,1fr)}.solution-cards .solution-card:nth-child(5){grid-column:span 2}.solution-card figure{height:390px}.solution-label{top:255px}}
@media(max-width:680px){.solution-cards{grid-template-columns:1fr}.solution-cards .solution-card:nth-child(5){grid-column:auto}.solution-card figure{height:360px}.solution-label{top:230px;left:20px;right:20px}.solution-label h3{font-size:25px}.solution-card p{min-height:auto;padding:20px}.grid-4{grid-template-columns:1fr}.sector img{height:230px}}

/* V10.1 — recalibrage précis des visuels accueil, solutions et marchés */
.hero{
  min-height:720px;
  background-position:center 56% !important;
}
.hero-grid{
  min-height:720px;
  grid-template-columns:1fr minmax(420px,520px);
}
.hero-card{
  max-width:520px;
  justify-self:end;
  transform:none;
  animation:none;
  overflow:hidden;
}
.hero-card>img{
  height:355px !important;
  width:100%;
  object-fit:cover;
  object-position:center 54%;
  border-radius:24px;
}
.hero-card .caption{font-size:15px;line-height:1.35}.kpis{margin:0 14px 16px}.kpis div{padding:16px}.kpis strong{font-size:28px}
.cards{align-items:stretch}.cards .card{height:100%}.cards .card img{height:auto !important;aspect-ratio:16/10;object-fit:cover;object-position:center center}.cards .card h3{min-height:54px}
.visual img,.case-img img{object-position:center center}.visual{min-height:430px}
.page-hero{background-position:center 55% !important}.page-hero h1{max-width:980px}.page-hero p{max-width:900px}
.solution-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:26px}.solution-card{display:flex;flex-direction:column}.solution-card figure{height:360px !important}.solution-card figure:after{inset:35% 0 0;background:linear-gradient(180deg,rgba(3,10,24,0),rgba(3,10,24,.80) 62%,rgba(3,10,24,.96))}.solution-card img{object-fit:cover;object-position:center 55%}.solution-card img[src*="flowfresh"]{object-position:center 58%}.solution-card img[src*="monile"]{object-position:center 54%}.solution-card img[src*="flowfast-v10"]{object-position:center 52%}.solution-card img[src*="peran"]{object-position:center 58%}.solution-label{top:auto !important;bottom:24px;left:22px;right:22px}.solution-label span{font-size:12px;margin-bottom:9px}.solution-label h3{font-size:clamp(19px,1.35vw,25px);line-height:1.06;letter-spacing:-.025em}.solution-card p{flex:1;min-height:132px;padding:22px 22px 26px;font-size:15px}.solution-cards .solution-card:nth-child(5){grid-column:span 4;display:grid;grid-template-columns:.75fr 1fr}.solution-cards .solution-card:nth-child(5) figure{height:310px !important}.solution-cards .solution-card:nth-child(5) p{display:flex;align-items:center;font-size:17px;padding:36px}
.grid-2{align-items:stretch}.sector{height:100%;display:flex;flex-direction:column}.sector img{height:auto !important;aspect-ratio:16/9;width:100%;object-fit:cover;object-position:center 55%;margin:-4px 0 22px}.sector h3{min-height:32px}.sector p:last-child{margin-top:auto}.sector img[src*="carnes"]{object-position:center 56%}.sector img[src*="laitiers"]{object-position:center 52%}.sector img[src*="legumes"]{object-position:center 54%}.sector img[src*="mer"]{object-position:center 55%}.sector img[src*="patisserie"]{object-position:center 58%}.sector img[src*="industrie-logistique"]{object-position:center 56%}
@media(max-width:1180px){.hero-grid{grid-template-columns:1fr;gap:34px}.hero-card{justify-self:start;max-width:680px}.solution-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.solution-cards .solution-card:nth-child(5){grid-column:span 2;display:flex}.solution-cards .solution-card:nth-child(5) figure{height:340px !important}.grid-2{grid-template-columns:1fr 1fr}.solution-card figure{height:345px !important}}
@media(max-width:760px){.hero{min-height:auto;background-position:center center !important}.hero-grid{min-height:auto}.hero-card>img{height:300px !important}.grid-2,.solution-cards{grid-template-columns:1fr}.solution-cards .solution-card:nth-child(5){grid-column:auto}.solution-card figure,.solution-cards .solution-card:nth-child(5) figure{height:320px !important}.solution-card p,.solution-cards .solution-card:nth-child(5) p{min-height:auto;padding:20px 22px 24px;font-size:15px}.sector img{aspect-ratio:16/10}.visual{min-height:300px}}

/* V10.2 — contrôle complet des textes au survol et des calibrages visuels
   Objectif : aucun titre/caption coupé sur Accueil, Solutions, Marchés,
   Flowcrete, Réalisations, Entreprise, Références et Contact. */
.card,
.solution-card,
.sector,
.case,
.fact,
.process-step,
.contact-box,
.logo-tile{
  overflow:visible;
  isolation:isolate;
}
.card img,
.sector img,
.case-img,
.visual,
.solution-card figure,
.logo-tile{
  overflow:hidden;
}
.card:hover,
.solution-card:hover,
.sector:hover,
.logo-tile:hover{
  transform:translateY(-5px);
}
.card h3,
.sector h3,
.solution-label h3,
.case h2,
.fact h3,
.process-step h3{
  overflow-wrap:anywhere;
  hyphens:auto;
  max-width:100%;
}

/* Accueil + Flowcrete : cartes génériques mieux tenues */
.cards{
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
}
.cards .card{
  min-height:100%;
}
.cards .card img{
  aspect-ratio:16/10;
  height:auto !important;
  width:100%;
  object-fit:cover;
}
.cards .card h3{
  min-height:auto !important;
  padding:24px 24px 0;
  margin-bottom:10px;
  font-size:clamp(21px,1.5vw,25px);
  line-height:1.12;
}
.cards .card p{
  padding:0 24px 28px;
  margin-top:0;
}

/* Solutions : overlay toujours contenu dans l’image */
.solution-cards{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.solution-card figure{
  height:390px !important;
  border-radius:30px 30px 0 0;
}
.solution-card figure:after{
  inset:22% 0 0 !important;
  background:linear-gradient(180deg,rgba(3,10,24,0),rgba(3,10,24,.74) 50%,rgba(3,10,24,.98) 100%) !important;
}
.solution-label{
  top:auto !important;
  bottom:22px !important;
  left:20px !important;
  right:20px !important;
  display:block;
  max-height:42%;
}
.solution-label span{
  font-size:11.5px !important;
  line-height:1.22 !important;
  margin-bottom:8px !important;
}
.solution-label h3{
  font-size:clamp(18px,1.25vw,24px) !important;
  line-height:1.08 !important;
  margin:0 !important;
}
.solution-card p{
  min-height:auto !important;
  padding:22px 22px 28px !important;
  font-size:15px;
}
.solution-cards .solution-card:nth-child(5){
  grid-column:1 / -1 !important;
  display:grid;
  grid-template-columns:minmax(320px,.72fr) 1fr;
  align-items:stretch;
}
.solution-cards .solution-card:nth-child(5) figure{
  height:330px !important;
  border-radius:30px 0 0 30px;
}
.solution-cards .solution-card:nth-child(5) p{
  padding:34px !important;
  display:flex;
  align-items:center;
  font-size:17px;
}

/* Marchés : les textes ne sont plus contraints par une hauteur artificielle */
.grid-2{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.sector{
  min-height:100%;
  padding:24px 24px 28px;
}
.sector img{
  margin:0 0 22px !important;
  border-radius:22px;
  aspect-ratio:16/9;
}
.sector h3{
  min-height:auto !important;
  margin-bottom:12px;
  font-size:clamp(23px,1.7vw,28px);
  line-height:1.1;
}
.sector p{
  margin:0 0 10px;
}
.sector p:last-child{
  margin-bottom:0;
  margin-top:0 !important;
}

/* Réalisations : images et blocs stabilisés */
.case{
  overflow:visible;
}
.case-img{
  border-radius:26px;
  min-height:360px;
}
.case h2{
  line-height:1.08;
}
.case-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.mini{
  min-width:0;
}

/* Responsive : on évite les cartes trop étroites avec texte long */
@media(max-width:1320px){
  .solution-cards{grid-template-columns:repeat(2,minmax(0,1fr));}
  .solution-card figure{height:370px !important;}
  .solution-cards .solution-card:nth-child(5){grid-column:1 / -1 !important;}
}
@media(max-width:980px){
  .grid-2,
  .case,
  .case:nth-child(even){grid-template-columns:1fr !important;}
  .case:nth-child(even) .case-img{order:0 !important;}
  .case-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .solution-cards .solution-card:nth-child(5){display:flex;}
  .solution-cards .solution-card:nth-child(5) figure{border-radius:30px 30px 0 0;}
}
@media(max-width:720px){
  .solution-cards,
  .cards,
  .grid-2,
  .case-grid,
  .logo-grid{
    grid-template-columns:1fr !important;
  }
  .solution-card figure,
  .solution-cards .solution-card:nth-child(5) figure{
    height:340px !important;
  }
  .solution-label{
    bottom:20px !important;
    max-height:none;
  }
  .solution-label h3{font-size:24px !important;}
  .sector{padding:20px;}
  .case-img{min-height:300px;height:300px;}
  .hero-card .caption{padding:18px 18px 10px;}
}
@media(max-width:430px){
  .solution-card figure,
  .solution-cards .solution-card:nth-child(5) figure{height:320px !important;}
  .solution-label h3{font-size:22px !important;}
  .solution-label span{font-size:11px !important;}
  .cards .card h3,.sector h3{font-size:22px;}
}

/* V10.3 — correction finale demandée : suppression des textes incrustés et stabilisation Réalisations */
.solution-card figure,
.case-img,
.visual,
.card img,
.sector img{
  background:#eef3f8;
}
.solution-card img{
  object-fit:cover !important;
  object-position:center center !important;
}
.solution-label{
  pointer-events:none;
}
.solution-label h3,
.solution-label span{
  text-shadow:0 4px 18px rgba(0,0,0,.72);
}

/* Réalisations : plus de chevauchement des textes dans les mini-blocs */
.case{
  grid-template-columns:minmax(360px,.85fr) minmax(0,1.15fr) !important;
  align-items:stretch !important;
  gap:30px !important;
}
.case:nth-child(even){
  grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr) !important;
}
.case-img{
  height:auto !important;
  min-height:420px !important;
  aspect-ratio:4/3;
  overflow:hidden;
}
.case-img img{
  width:100%;
  height:100%;
  object-fit:cover !important;
  object-position:center center !important;
  border-radius:26px !important;
}
.case-grid{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:14px !important;
}
.mini{
  font-size:14px !important;
  line-height:1.55 !important;
  min-height:132px;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
}
.mini b{
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.tags{
  margin-top:0 !important;
}
.tag{
  white-space:normal;
  line-height:1.2;
}

@media(max-width:1120px){
  .case,
  .case:nth-child(even){
    grid-template-columns:1fr !important;
  }
  .case:nth-child(even) .case-img{order:0 !important;}
  .case-img{min-height:360px !important;}
}
@media(max-width:640px){
  .case-grid{grid-template-columns:1fr !important;}
  .mini{min-height:auto;}
  .case-img{min-height:280px !important;aspect-ratio:16/10;}
}

/* V10.4 — correction Réalisations : suppression définitive des débordements image/texte */
body.realisations-page .case,
.case{
  position:relative !important;
}
body.realisations-page .case{
  display:grid !important;
  grid-template-columns:minmax(300px, 40%) minmax(0, 1fr) !important;
  align-items:start !important;
  gap:32px !important;
  overflow:hidden !important;
  padding:24px !important;
}
body.realisations-page .case .case-img{
  grid-column:1 !important;
  grid-row:1 !important;
  order:0 !important;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  aspect-ratio:16 / 11 !important;
  align-self:start !important;
  position:relative !important;
  overflow:hidden !important;
  border-radius:26px !important;
  z-index:0 !important;
}
body.realisations-page .case .case-img img{
  position:static !important;
  display:block !important;
  width:100% !important;
  height:100% !important;
  max-width:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  border-radius:26px !important;
  transform:none !important;
}
body.realisations-page .case > div:not(.case-img){
  grid-column:2 !important;
  grid-row:1 !important;
  min-width:0 !important;
  position:relative !important;
  z-index:2 !important;
  background:#fff !important;
}
body.realisations-page .case:nth-child(even){
  grid-template-columns:minmax(0, 1fr) minmax(300px, 40%) !important;
}
body.realisations-page .case:nth-child(even) .case-img{
  grid-column:2 !important;
  grid-row:1 !important;
}
body.realisations-page .case:nth-child(even) > div:not(.case-img){
  grid-column:1 !important;
  grid-row:1 !important;
}
body.realisations-page .case-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:14px !important;
}
body.realisations-page .mini{
  min-height:auto !important;
  height:auto !important;
}
@media(max-width:980px){
  body.realisations-page .case,
  body.realisations-page .case:nth-child(even){
    grid-template-columns:1fr !important;
  }
  body.realisations-page .case .case-img,
  body.realisations-page .case:nth-child(even) .case-img,
  body.realisations-page .case > div:not(.case-img),
  body.realisations-page .case:nth-child(even) > div:not(.case-img){
    grid-column:1 !important;
    grid-row:auto !important;
  }
  body.realisations-page .case .case-img{aspect-ratio:16 / 9 !important;}
}
@media(max-width:640px){
  body.realisations-page .case-grid{grid-template-columns:1fr !important;}
  body.realisations-page .case{padding:18px !important;gap:20px !important;}
}


/* ==========================================================
   V11 — intégration des nouveaux visuels, textes recalés
   et rendu photographique plus lumineux
   ========================================================== */

/* Photos plus lumineuses, sans voile sombre artificiel */
.card img,
.visual img,
.case-img img,
.sector-media img,
.solution-card img,
.hero-card img,
.logo-tile img{
  filter:brightness(1.075) saturate(1.07) contrast(1.025) !important;
}
.hero{
  background:
    linear-gradient(90deg,rgba(4,13,31,.80),rgba(36,74,150,.25)),
    var(--hero) !important;
}
.page-hero{
  background:
    linear-gradient(90deg,rgba(4,13,31,.82),rgba(36,74,150,.25)),
    var(--pageimg) !important;
}

/* SOLUTIONS : le titre appartient désormais réellement à la photo */
.solution-card{
  display:flex !important;
  flex-direction:column !important;
  overflow:hidden !important;
}
.solution-card figure{
  position:relative !important;
  overflow:hidden !important;
  flex:0 0 auto !important;
  margin:0 !important;
  background:#eef3f8 !important;
}
.solution-card figure::after{
  display:none !important;
}
.solution-card figure > img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  transition:transform .45s ease,filter .45s ease !important;
}
.solution-card:hover figure > img{
  transform:scale(1.025) !important;
  filter:brightness(1.10) saturate(1.09) contrast(1.025) !important;
}
.solution-card figure > .solution-label{
  position:absolute !important;
  z-index:3 !important;
  left:0 !important;
  right:0 !important;
  top:auto !important;
  bottom:0 !important;
  max-height:none !important;
  padding:78px 23px 23px !important;
  margin:0 !important;
  background:linear-gradient(180deg,rgba(3,10,24,0),rgba(3,10,24,.78) 55%,rgba(3,10,24,.94)) !important;
  pointer-events:none !important;
}
.solution-card figure > .solution-label span{
  display:block !important;
  margin:0 0 7px !important;
  color:#f5cf70 !important;
  font-size:12px !important;
  line-height:1.2 !important;
  font-weight:850 !important;
  letter-spacing:.065em !important;
  text-transform:uppercase !important;
}
.solution-card figure > .solution-label h3{
  margin:0 !important;
  color:#fff !important;
  font-size:clamp(20px,1.35vw,25px) !important;
  line-height:1.06 !important;
  letter-spacing:-.02em !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
  text-shadow:0 3px 15px rgba(0,0,0,.58) !important;
}
.solution-card > p{
  position:relative !important;
  z-index:4 !important;
  flex:1 1 auto !important;
  margin:0 !important;
  background:#fff !important;
  padding:23px 23px 28px !important;
  min-height:0 !important;
}
.solution-card img[src*="flowfast-v11"]{object-position:center 55% !important;}
.solution-card img[src*="bc-kitchen"]{object-position:center 54% !important;}
.solution-cards .solution-card:nth-child(5){
  grid-column:1 / -1 !important;
  display:grid !important;
  grid-template-columns:minmax(360px,.9fr) minmax(0,1.1fr) !important;
}
.solution-cards .solution-card:nth-child(5) figure{
  height:350px !important;
  border-radius:30px 0 0 30px !important;
}
.solution-cards .solution-card:nth-child(5) > p{
  display:flex !important;
  align-items:center !important;
  padding:38px !important;
  font-size:17px !important;
}

/* MARCHÉS : titre de chaque marché superposé à l'image, jamais au texte descriptif */
.sector{
  display:flex !important;
  flex-direction:column !important;
  overflow:hidden !important;
  padding:22px 22px 27px !important;
}
.sector-media{
  position:relative !important;
  overflow:hidden !important;
  width:100% !important;
  aspect-ratio:16 / 9 !important;
  border-radius:21px !important;
  margin:0 0 22px !important;
  background:#e9eef5 !important;
  isolation:isolate !important;
}
.sector-media::after{
  content:"";
  position:absolute;
  z-index:1;
  inset:38% 0 0;
  background:linear-gradient(180deg,rgba(3,10,24,0),rgba(3,10,24,.76) 62%,rgba(3,10,24,.91));
  pointer-events:none;
}
.sector-media img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  aspect-ratio:auto !important;
  object-fit:cover !important;
  object-position:center 54% !important;
  border-radius:0 !important;
  margin:0 !important;
  transition:transform .45s ease,filter .45s ease !important;
}
.sector:hover .sector-media img{
  transform:scale(1.025) !important;
  filter:brightness(1.10) saturate(1.09) contrast(1.025) !important;
}
.sector-media h3{
  position:absolute !important;
  z-index:2 !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  margin:0 !important;
  padding:70px 21px 19px !important;
  min-height:0 !important;
  color:#fff !important;
  font-size:clamp(22px,1.6vw,27px) !important;
  line-height:1.08 !important;
  text-shadow:0 3px 14px rgba(0,0,0,.65) !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
}
.sector > p{
  margin:0 0 10px !important;
}
.sector > p:last-child{
  margin-bottom:0 !important;
}
.sector-media img[src*="cuisine-centrale"]{object-position:center 50% !important;}

@media(max-width:1180px){
  .solution-cards .solution-card:nth-child(5){
    grid-column:1 / -1 !important;
    display:grid !important;
  }
}
@media(max-width:760px){
  .solution-cards .solution-card:nth-child(5){
    display:flex !important;
    flex-direction:column !important;
  }
  .solution-cards .solution-card:nth-child(5) figure{
    height:330px !important;
    border-radius:30px 30px 0 0 !important;
  }
  .solution-cards .solution-card:nth-child(5) > p{
    display:block !important;
    padding:22px 22px 26px !important;
    font-size:15px !important;
  }
  .solution-card figure > .solution-label{
    padding:68px 20px 20px !important;
  }
  .sector-media{aspect-ratio:16 / 10 !important;}
}

/* ==========================================================
   V11.1 — Flowcrete sur une ligne + ajustements Réalisations
   ========================================================== */
body.flowcrete-page .flowcrete-solutions{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:18px !important;
  align-items:stretch !important;
}
body.flowcrete-page .flowcrete-solutions .card{
  min-width:0 !important;
  display:flex !important;
  flex-direction:column !important;
  height:100% !important;
}
body.flowcrete-page .flowcrete-solutions .card img{
  width:100% !important;
  height:auto !important;
  aspect-ratio:4 / 3 !important;
  object-fit:cover !important;
  object-position:center 55% !important;
}
body.flowcrete-page .flowcrete-solutions .card h3{
  padding:20px 19px 0 !important;
  font-size:clamp(18px,1.15vw,22px) !important;
  line-height:1.12 !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
}
body.flowcrete-page .flowcrete-solutions .card p{
  flex:1 1 auto !important;
  padding:0 19px 24px !important;
  font-size:14px !important;
  line-height:1.58 !important;
}
@media(max-width:1050px){
  body.flowcrete-page .flowcrete-solutions{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media(max-width:620px){
  body.flowcrete-page .flowcrete-solutions{
    grid-template-columns:1fr !important;
  }
}

/* Certifications */
.footer-certifications{margin-top:34px;padding:22px 0;border-top:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.12);display:flex;align-items:center;gap:28px;flex-wrap:wrap}.footer-certifications>span{font-weight:800;color:#fff;margin-right:auto}.footer-certifications a{background:#fff;border-radius:10px;min-height:76px;min-width:145px;padding:10px 18px;display:flex;align-items:center;justify-content:center}.footer-certifications img{display:block;max-height:58px;max-width:180px;width:auto}.cert-hero-card{background:rgba(255,255,255,.95);border-radius:22px;padding:32px;box-shadow:0 24px 70px rgba(0,0,0,.24);color:#102d57}.cert-logo-row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:center}.cert-logo-row img{max-width:100%;max-height:90px;margin:auto;object-fit:contain}.cert-hero-card p{text-align:center;font-weight:800;margin:24px 0 0}.cert-intro{max-width:900px}.cert-cards{display:grid;gap:24px;margin-top:38px}.cert-card{display:grid;grid-template-columns:260px 1fr;gap:36px;align-items:center;padding:34px;background:#fff;border:1px solid #e4eaf1;border-radius:20px;box-shadow:0 14px 40px rgba(16,45,87,.08)}.cert-card .cert-logo{min-height:180px;background:#f7f9fc;border-radius:16px;display:flex;align-items:center;justify-content:center;padding:28px}.cert-card .cert-logo img{max-width:160px;max-height:130px;object-fit:contain}.cert-card .cert-logo.wide img{max-width:220px}.cert-card h3{margin-top:6px}.cert-card p{line-height:1.7}.hero-certifications:before{background:linear-gradient(90deg,rgba(6,26,50,.91),rgba(6,26,50,.62),rgba(6,26,50,.35))}
@media(max-width:900px){.cert-card{grid-template-columns:1fr}.cert-card .cert-logo{min-height:130px}.cert-logo-row{grid-template-columns:1fr}.cert-logo-row img{max-height:72px}.footer-certifications{justify-content:center}.footer-certifications>span{width:100%;text-align:center;margin-right:0}.footer-certifications a{min-width:120px;flex:1}.footer-certifications img{max-width:150px}}
