:root{
  --bg:#050505;
  --ink:#f4f3ee;
  --muted:rgba(255,255,255,.64);
  --line:rgba(255,255,255,.16);
  --header-h:88px;
}
*{box-sizing:border-box}
html{background:var(--bg);scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{color:inherit}

.scene{
  position:fixed;
  inset:0;
  z-index:0;
  overflow:hidden;
  background:#050505;
  contain:strict;
}
.scene__poster,
.scene__video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  transform:translateZ(0);
  image-rendering:auto;
  will-change:opacity;
}
.scene__poster{
  z-index:0;
  opacity:1;
  transition:opacity .55s ease;
}
.scene__poster.is-hidden{opacity:0}
.scene__video{
  z-index:1;
  opacity:0;
  transition:opacity .45s ease;
  backface-visibility:hidden;
  -webkit-transform:translateZ(0);
}
.scene__video.is-ready{opacity:1}

.scene__shade,
.scene__edge,
.scene__grain{
  position:absolute;
  inset:0;
  z-index:3;
  pointer-events:none;
}
.scene__shade{
  background:
    linear-gradient(90deg,rgba(0,0,0,.44) 0%,rgba(0,0,0,.13) 31%,rgba(0,0,0,.02) 58%,rgba(0,0,0,.15) 100%);
  will-change:opacity,background;
}
.scene__edge{
  background:
    linear-gradient(to bottom,rgba(0,0,0,.42) 0%,transparent 18%,transparent 76%,rgba(0,0,0,.30) 100%),
    radial-gradient(ellipse at center,transparent 48%,rgba(0,0,0,.24) 76%,rgba(0,0,0,.58) 112%);
}
.scene__grain{
  opacity:.012;
  mix-blend-mode:soft-light;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 150 150' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");
}

.header{
  position:fixed;
  inset:0 0 auto 0;
  z-index:20;
  height:var(--header-h);
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  padding:0 4.2vw;
  border-bottom:1px solid rgba(255,255,255,.055);
  background:linear-gradient(to bottom,rgba(0,0,0,.58),rgba(0,0,0,.14) 68%,transparent);
}
.brand{
  width:max-content;
  display:flex;
  flex-direction:column;
  text-decoration:none;
}
.brand__name{
  font-size:26px;
  line-height:1;
  font-weight:300;
  letter-spacing:.25em;
}
.brand__sub{
  margin-top:5px;
  font:400 7px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:.14em;
  opacity:.62;
  text-align:center;
  align-self:center;
}
.nav{display:flex;gap:30px}
.nav a,
.header__cta{
  font:400 9px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:.12em;
  text-transform:uppercase;
  text-decoration:none;
  opacity:.72;
  transition:opacity .22s ease,background .22s ease,color .22s ease;
}
.nav a:hover,.header__cta:hover{opacity:1}
.header__cta{
  justify-self:end;
  border:1px solid rgba(255,255,255,.34);
  padding:12px 14px;
  display:flex;
  align-items:center;
  gap:23px;
}
.header__cta b{font-size:13px;font-weight:400}

.rail{
  position:fixed;
  z-index:18;
  right:3vw;
  top:50%;
  transform:translateY(-50%);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:13px;
}
.rail__count{
  display:flex;
  gap:3px;
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  font:400 8px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  opacity:.72;
}
.rail__count b{font-weight:400}
.rail__track{
  width:1px;
  height:138px;
  background:rgba(255,255,255,.18);
  position:relative;
  overflow:hidden;
}
.rail__track i{
  position:absolute;
  inset:0 auto auto 0;
  width:1px;
  height:0;
  background:#fff;
  box-shadow:0 0 8px rgba(255,255,255,.45);
}
.rail__dots{display:flex;flex-direction:column;gap:9px}
.rail__dots i{
  width:3px;height:3px;border-radius:50%;
  background:rgba(255,255,255,.22);
  transition:transform .24s ease,background .24s ease,box-shadow .24s ease;
}
.rail__dots i.active{
  transform:scale(1.35);
  background:#fff;
  box-shadow:0 0 9px rgba(255,255,255,.8);
}

.status{
  position:fixed;
  z-index:18;
  left:4.2vw;
  bottom:4.4vh;
  display:flex;
  align-items:center;
  gap:8px;
  font:400 7px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:.16em;
  opacity:.46;
  pointer-events:none;
}
.status__dot{
  width:4px;height:4px;border-radius:50%;background:#fff;
  box-shadow:0 0 8px rgba(255,255,255,.6);
}

.hud{
  position:fixed;
  inset:0;
  z-index:10;
  pointer-events:none;
}
.panel{
  position:absolute;
  width:min(570px,43vw);
  opacity:0;
  visibility:hidden;
  transform:translate3d(0,22px,0);
  transition:opacity .42s ease,transform .42s ease,visibility .42s;
  filter:drop-shadow(0 7px 24px rgba(0,0,0,.56));
}
.panel.active{
  opacity:1;
  visibility:visible;
  transform:translate3d(0,0,0);
  pointer-events:auto;
}
.panel--hero{left:7vw;top:23vh}
.panel--left{left:7vw;top:29vh}
.panel--high{top:24vh}
.panel--burner{top:27vh}
.panel--fire{left:7vw;top:27vh;--fire-exit:0;transform:translate3d(0,calc(var(--fire-exit) * -38vh),0);opacity:calc(1 - var(--fire-exit));transition:opacity .18s linear,visibility .18s,transform .18s linear}
.panel--fire.active{transform:translate3d(0,calc(var(--fire-exit) * -38vh),0);opacity:calc(1 - var(--fire-exit))}
.panel--statement{width:min(650px,48vw)}

.eyebrow{
  margin:0 0 20px;
  color:rgba(255,255,255,.67);
  font:400 9px/1.3 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:.19em;
}
h1,h2{
  margin:0;
  font-weight:300;
  letter-spacing:-.052em;
  line-height:.91;
  text-wrap:balance;
}
h1{font-size:clamp(30px,3.15vw,54px);line-height:1.08;letter-spacing:-.035em}
h2{font-size:clamp(44px,5.25vw,90px)}
h1 strong,h2 strong{font-weight:510}

.bodycopy{
  max-width:440px;
  margin:24px 0 0;
  color:var(--muted);
  font-size:13px;
  line-height:1.76;
}
.bodycopy--hero{max-width:475px;font-size:14px}
.hero-actions{
  margin-top:34px;
  display:flex;
  align-items:center;
  gap:22px;
}
.button{
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:34px;
  padding:14px 16px;
  color:inherit;
  text-decoration:none;
  text-transform:uppercase;
  font:400 9px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:.12em;
  pointer-events:auto;
  transition:background .22s ease,color .22s ease,border-color .22s ease;
}
.button--light{background:#f4f4f0;color:#090909}
.button--light:hover{background:#dadad6}
.button--ghost{
  margin-top:32px;
  border:1px solid rgba(255,255,255,.42);
}
.button--ghost:hover{background:#fff;color:#080808}
.scroll-hint{
  color:rgba(255,255,255,.45);
  font:400 8px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:.15em;
}

main{position:relative;z-index:5}
.experience{
  position:relative;
  height:720vh;
  min-height:4200px;
}
.anchor{
  position:absolute;
  left:0;
  width:1px;height:1px;
  pointer-events:none;
  scroll-margin-top:var(--header-h);
}
.anchor--commandes{top:20%}
.anchor--cuisson{top:44%}
.anchor--bruleur{top:68%}
.anchor--feu{top:83%}

.end-hint{
  position:absolute;
  left:50%;
  bottom:2.8vh;
  transform:translateX(-50%);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  color:rgba(255,255,255,.45);
  font:400 7px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:.16em;
}
.end-hint i{
  width:1px;height:30px;
  background:linear-gradient(to bottom,#fff,transparent);
}

.contact{
  position:relative;
  z-index:14;
  min-height:100vh;
  background:#050505;
  padding:15vh 8vw 4vh;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.contact__inner{width:100%;max-width:1500px;margin:auto}
.contact__head h2{font-size:clamp(52px,7vw,118px);max-width:1250px}
.contact__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10vw;
  margin-top:8vh;
  padding-top:29px;
  border-top:1px solid var(--line);
}
.contact__intro>p{
  max-width:560px;
  margin:0;
  color:var(--muted);
  font-size:13px;
  line-height:1.82;
}
.contact__tags{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:28px;
}
.contact__tags span{
  border:1px solid rgba(255,255,255,.14);
  padding:8px 9px;
  color:rgba(255,255,255,.48);
  font:400 7px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:.12em;
}
.contact__card{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:13px;
}
.contact__label{
  margin:0 0 8px;
  color:rgba(255,255,255,.44);
  font:400 8px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:.17em;
}
.contact__card a{
  min-width:min(430px,100%);
  display:flex;
  justify-content:space-between;
  gap:24px;
  color:#fff;
  text-decoration:none;
  font-size:18px;
  padding:0 0 8px;
  border-bottom:1px solid rgba(255,255,255,.18);
}
.contact__card a span{font-size:13px;opacity:.6}
footer{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding-top:4vh;
  border-top:1px solid rgba(255,255,255,.1);
  color:rgba(255,255,255,.45);
  font:400 8px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:.14em;
}
.noscript{
  position:fixed;z-index:999;left:20px;right:20px;bottom:20px;
  padding:14px;background:#111;color:#fff;
}

@media(max-width:900px){
  :root{--header-h:72px}
  .header{
    height:var(--header-h);
    padding:0 20px;
    grid-template-columns:1fr auto;
  }
  .nav{display:none}
  .brand__name{font-size:20px}
  .header__cta{padding:10px 11px;font-size:8px;gap:12px}
  .rail{right:16px}
  .status{left:20px;bottom:21px}
  .panel,
  .panel--hero,
  .panel--left,
  .panel--high,
  .panel--burner,
  .panel--fire{
    left:24px;
    right:auto;
    top:22vh;
    width:calc(100vw - 74px);
  }
  .panel--left{top:28vh}
  .panel--high{top:24vh}
  .panel--burner{top:26vh}
  .panel--fire{top:25vh}
  h1{font-size:clamp(28px,7.2vw,40px);line-height:1.08}
  h2{font-size:clamp(40px,11.1vw,68px)}
  .bodycopy{max-width:390px}
  .hero-actions{align-items:flex-start;flex-direction:column}
  .experience{height:610vh;min-height:3600px}
  .contact{padding:14vh 24px 3vh}
  .contact__grid{grid-template-columns:1fr;gap:36px}
  footer{flex-wrap:wrap}
  .scene__poster,.scene__video{
    inset:0;
    width:100%;
    height:100%;
  }
}
@media(max-width:560px){
  .header__cta span{display:none}
  .header__cta{width:38px;height:36px;justify-content:center}
  .panel{filter:drop-shadow(0 5px 18px rgba(0,0,0,.62))}
  .eyebrow{font-size:8px}
  .bodycopy{font-size:12px;line-height:1.7}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .panel,.scene__video,.scene__poster{transition:none}
}



/* 4K60 QUALITY ENGINE --------------------------------------------------- */
.scene__poster,
.scene__video{
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  transform:none !important;
  filter:none !important;
  image-rendering:auto;
}
.scene__video--scrub{z-index:1;opacity:0;transition:opacity .12s linear}
.scene__video--scrub.is-ready{opacity:1}
.scene__video--master{z-index:2;opacity:0;transition:opacity .09s linear;pointer-events:none}
.scene__video--master.is-refined{opacity:1}
.scene__shade{z-index:3;opacity:1;background:linear-gradient(90deg,rgba(0,0,0,.26),rgba(0,0,0,.08) 38%,rgba(0,0,0,.02) 62%,rgba(0,0,0,.10)) !important}
.scene__edge{z-index:4;background:linear-gradient(to bottom,rgba(0,0,0,.20),transparent 17%,transparent 82%,rgba(0,0,0,.16)) !important}
.scene__grain{display:none !important}
/* No backdrop-filter and no CSS scaling: both soften 4K video during compositing. */


/* -----------------------------------------------------------------------
   D.PETRILLO — CINEMATIC CONTRAST PASS
   Pure transparent overlays only: no blur, no image scaling, no video filter.
   ----------------------------------------------------------------------- */

/* 1) Slightly darker overall image to hide small source imperfections on large displays.
      This is a compositing layer, NOT a brightness filter on the 4K video. */
.scene__edge{
  z-index:4 !important;
  background:
    linear-gradient(rgba(0,0,0,.075),rgba(0,0,0,.075)),
    linear-gradient(to bottom,
      rgba(0,0,0,.18) 0%,
      rgba(0,0,0,.03) 18%,
      rgba(0,0,0,.03) 78%,
      rgba(0,0,0,.18) 100%
    ) !important;
}

/* 2) Global ~10% transparent veil over the video.
      A tiny horizontal gradient remains for text readability while the centre stays visible. */
.scene__shade{
  z-index:3 !important;
  opacity:1 !important;
  background:
    linear-gradient(rgba(0,0,0,.10),rgba(0,0,0,.10)),
    linear-gradient(90deg,
      rgba(0,0,0,.12) 0%,
      rgba(0,0,0,.045) 31%,
      rgba(0,0,0,.00) 58%,
      rgba(0,0,0,.055) 100%
    ) !important;
}

/* Keep the 4K layers absolutely untouched. */
.scene__poster,
.scene__video{
  filter:none !important;
  opacity:inherit;
  transform:none !important;
}

/* Restore the quality-engine opacity behaviour after the generic rule above. */
.scene__poster{opacity:1}
.scene__poster.is-hidden{opacity:0}
.scene__video--scrub{opacity:0}
.scene__video--scrub.is-ready{opacity:1}
.scene__video--master{opacity:0}
.scene__video--master.is-refined{opacity:1}

/* 3) Header gets a clearly stronger transparent treatment than the general page overlay.
      No backdrop blur: the underlying 4K frame remains crisp and GPU load stays low. */
.header{
  background:
    linear-gradient(to bottom,
      rgba(4,4,4,.76) 0%,
      rgba(4,4,4,.66) 62%,
      rgba(4,4,4,.58) 100%
    ) !important;
  border-bottom:1px solid rgba(255,255,255,.13) !important;
  box-shadow:
    0 12px 35px rgba(0,0,0,.22),
    inset 0 -1px 0 rgba(255,255,255,.025);
}

/* Slightly improve header contrast without making it visually heavy. */
.header .brand,
.header .nav,
.header .header__cta{
  position:relative;
  z-index:1;
}
.header__cta{
  background:rgba(255,255,255,.035);
  border-color:rgba(255,255,255,.42);
}

/* Mobile: keep the separation obvious despite the smaller 72px header. */
@media(max-width:900px){
  .header{
    background:
      linear-gradient(to bottom,
        rgba(4,4,4,.80) 0%,
        rgba(4,4,4,.69) 100%
      ) !important;
    box-shadow:0 10px 28px rgba(0,0,0,.25);
  }
}


/* -----------------------------------------------------------------------
   D.PETRILLO — DARKER CINEMATIC PASS V2
   Important: compositing overlays only.
   No filter(), blur, resampling, zoom or modification of the 4K masters.
   ----------------------------------------------------------------------- */

/* Global uniform veil: stronger than the previous ~10%, while keeping the
   background scene clearly readable. */
.scene__shade{
  z-index:3 !important;
  opacity:1 !important;
  background:
    linear-gradient(rgba(0,0,0,.18), rgba(0,0,0,.18)),
    linear-gradient(90deg,
      rgba(0,0,0,.13) 0%,
      rgba(0,0,0,.055) 31%,
      rgba(0,0,0,.018) 58%,
      rgba(0,0,0,.075) 100%
    ) !important;
}

/* Second very light cinematic darkening pass.
   It mainly hides small source imperfections on large displays. */
.scene__edge{
  z-index:4 !important;
  background:
    linear-gradient(rgba(0,0,0,.11), rgba(0,0,0,.11)),
    linear-gradient(to bottom,
      rgba(0,0,0,.20) 0%,
      rgba(0,0,0,.045) 19%,
      rgba(0,0,0,.045) 76%,
      rgba(0,0,0,.22) 100%
    ),
    radial-gradient(ellipse at center,
      transparent 54%,
      rgba(0,0,0,.10) 84%,
      rgba(0,0,0,.24) 118%
    ) !important;
}

/* Header remains intentionally more separated from the general veil. */
.header{
  background:
    linear-gradient(to bottom,
      rgba(3,3,3,.82) 0%,
      rgba(3,3,3,.73) 62%,
      rgba(3,3,3,.66) 100%
    ) !important;
  border-bottom:1px solid rgba(255,255,255,.14) !important;
  box-shadow:
    0 14px 38px rgba(0,0,0,.28),
    inset 0 -1px 0 rgba(255,255,255,.025) !important;
}

/* Absolutely preserve the source image. */
.scene__video,
.scene__poster{
  filter:none !important;
  transform:none !important;
  image-rendering:auto !important;
}

/* Keep artificial grain virtually invisible so it cannot be mistaken
   for compression or pixelation. */
.scene__grain{
  opacity:.006 !important;
}

@media(max-width:900px){
  .scene__shade{
    background:
      linear-gradient(rgba(0,0,0,.16), rgba(0,0,0,.16)),
      linear-gradient(90deg,
        rgba(0,0,0,.10) 0%,
        rgba(0,0,0,.035) 45%,
        rgba(0,0,0,.055) 100%
      ) !important;
  }
  .scene__edge{
    background:
      linear-gradient(rgba(0,0,0,.09), rgba(0,0,0,.09)),
      linear-gradient(to bottom,
        rgba(0,0,0,.16) 0%,
        rgba(0,0,0,.03) 20%,
        rgba(0,0,0,.03) 76%,
        rgba(0,0,0,.18) 100%
      ) !important;
  }
  .header{
    background:
      linear-gradient(to bottom,
        rgba(3,3,3,.85) 0%,
        rgba(3,3,3,.75) 100%
      ) !important;
  }
}


/* ======================================================================
   D.PETRILLO — POST-BURNER EXPERIENCE
   ====================================================================== */

.afterfire,
.expertise,
.sectors,
.about,
.contact{
  position:relative;
  z-index:14;
  background:#060606;
  color:#f4f3ee;
}

.afterfire{
  min-height:180vh;
  padding:17vh 8vw 12vh;
  background:
    radial-gradient(circle at 72% 12%,rgba(255,255,255,.035),transparent 26%),
    #060606;
}

.afterfire__intro{
  max-width:1120px;
  margin-bottom:13vh;
}

.afterfire__intro h2,
.expertise__head h2,
.sectors__intro h2,
.about__copy h2,
.contact__head h2{
  margin:0;
  font-weight:300;
  line-height:.94;
  letter-spacing:-.052em;
  font-size:clamp(48px,6.6vw,112px);
}

.afterfire__intro h2 strong,
.expertise__head h2 strong,
.sectors__intro h2 strong,
.about__copy h2 strong,
.contact__head h2 strong{
  font-weight:530;
}

.afterfire__lead{
  max-width:660px;
  margin:30px 0 0;
  color:rgba(255,255,255,.62);
  font-size:15px;
  line-height:1.85;
}

.process{
  border-top:1px solid rgba(255,255,255,.14);
}

.process__item{
  min-height:32vh;
  display:grid;
  grid-template-columns:120px 1fr;
  gap:3vw;
  align-items:center;
  padding:5.5vh 0;
  border-bottom:1px solid rgba(255,255,255,.12);
  transition:background .35s ease,padding .35s ease;
}

.process__item:hover{
  background:rgba(255,255,255,.018);
  padding-left:1.1vw;
  padding-right:1.1vw;
}

.process__num,
.process__kicker,
.expertise__grid article>span,
.sector>span{
  font:400 9px/1.2 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:.16em;
  color:rgba(255,255,255,.42);
}

.process__item h3{
  margin:8px 0 12px;
  font-size:clamp(30px,3.5vw,58px);
  font-weight:300;
  line-height:1.04;
  letter-spacing:-.035em;
}

.process__item p:last-child{
  max-width:620px;
  margin:0;
  color:rgba(255,255,255,.58);
  font-size:13px;
  line-height:1.75;
}

.expertise{
  padding:15vh 8vw;
  background:#0a0a0a;
  border-top:1px solid rgba(255,255,255,.05);
}

.expertise__head{
  max-width:1200px;
  margin-bottom:10vh;
}

.expertise__grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid rgba(255,255,255,.14);
  border-left:1px solid rgba(255,255,255,.14);
}

.expertise__grid article{
  min-height:330px;
  padding:30px 28px;
  border-right:1px solid rgba(255,255,255,.14);
  border-bottom:1px solid rgba(255,255,255,.14);
  display:flex;
  flex-direction:column;
}

.expertise__grid h3{
  margin:auto 0 13px;
  font-size:30px;
  font-weight:350;
  letter-spacing:-.035em;
}

.expertise__grid p{
  margin:0;
  color:rgba(255,255,255,.56);
  font-size:12px;
  line-height:1.75;
}

.sectors{
  min-height:120vh;
  padding:15vh 8vw;
  background:
    linear-gradient(135deg,rgba(255,255,255,.018),transparent 38%),
    #060606;
}

.sectors__intro{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  column-gap:10vw;
  align-items:end;
  margin-bottom:10vh;
}

.sectors__intro .eyebrow{grid-column:1/-1}
.sectors__intro>p:last-child{
  max-width:500px;
  margin:0 0 9px;
  color:rgba(255,255,255,.58);
  font-size:13px;
  line-height:1.8;
}

.sectors__list{
  border-top:1px solid rgba(255,255,255,.16);
}

.sector{
  min-height:105px;
  display:grid;
  grid-template-columns:80px 1fr auto;
  align-items:center;
  border-bottom:1px solid rgba(255,255,255,.13);
  transition:padding .3s ease,background .3s ease;
}

.sector:hover{
  padding:0 18px;
  background:rgba(255,255,255,.02);
}

.sector h3{
  margin:0;
  font-size:clamp(24px,3vw,46px);
  font-weight:300;
  letter-spacing:-.035em;
}

.sector i{
  font-style:normal;
  font-size:18px;
  color:rgba(255,255,255,.52);
}

.about{
  min-height:105vh;
  padding:15vh 8vw;
  display:grid;
  grid-template-columns:1.25fr .75fr;
  gap:10vw;
  align-items:center;
  background:#0b0b0b;
  overflow:hidden;
}

.about__copy{
  max-width:860px;
}

.about__copy>p:last-child{
  max-width:650px;
  margin:34px 0 0;
  color:rgba(255,255,255,.62);
  font-size:14px;
  line-height:1.9;
}

.about__statement{
  min-height:500px;
  border:1px solid rgba(255,255,255,.12);
  padding:34px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  background:
    linear-gradient(145deg,rgba(255,255,255,.035),transparent 58%);
}

.about__statement>span{
  font-size:clamp(90px,12vw,190px);
  line-height:.8;
  font-weight:600;
  letter-spacing:-.09em;
  color:rgba(255,255,255,.075);
}

.about__statement p{
  margin:0;
  font-size:clamp(19px,2.1vw,31px);
  font-weight:350;
  line-height:1.16;
  letter-spacing:-.025em;
}

.contact{
  min-height:100vh;
  padding:15vh 8vw 4vh;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  background:#050505;
}

.contact__inner{width:100%;max-width:1500px;margin:auto}
.contact__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10vw;
  margin-top:9vh;
  padding-top:32px;
  border-top:1px solid rgba(255,255,255,.15);
}

.contact__intro>p{
  max-width:560px;
  margin:0;
  color:rgba(255,255,255,.61);
  font-size:13px;
  line-height:1.85;
}

.contact__tags{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:28px;
}

.contact__tags span{
  border:1px solid rgba(255,255,255,.14);
  padding:8px 9px;
  color:rgba(255,255,255,.48);
  font:400 7px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:.12em;
}

.contact__card{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:14px;
}

.contact__label{
  margin:0 0 9px;
  color:rgba(255,255,255,.44);
  font:400 8px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:.17em;
}

.contact__card a{
  width:min(520px,100%);
  display:flex;
  justify-content:space-between;
  gap:24px;
  color:#fff;
  text-decoration:none;
  font-size:clamp(16px,1.5vw,21px);
  padding:0 0 9px;
  border-bottom:1px solid rgba(255,255,255,.18);
}

.contact__card a span{font-size:13px;opacity:.58}

footer{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding-top:4vh;
  border-top:1px solid rgba(255,255,255,.1);
  color:rgba(255,255,255,.42);
  font:400 8px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:.14em;
}

@media(max-width:1000px){
  .afterfire,
  .expertise,
  .sectors,
  .about,
  .contact{
    padding-left:24px;
    padding-right:24px;
  }

  .process__item{
    grid-template-columns:55px 1fr;
    min-height:27vh;
  }

  .expertise__grid{
    grid-template-columns:1fr 1fr;
  }

  .expertise__grid article{min-height:250px}

  .sectors__intro{
    grid-template-columns:1fr;
    gap:28px;
  }

  .about{
    grid-template-columns:1fr;
    gap:8vh;
  }

  .about__statement{min-height:340px}

  .contact__grid{
    grid-template-columns:1fr;
    gap:42px;
  }
}

@media(max-width:620px){
  .afterfire{padding-top:13vh}
  .afterfire__intro,
  .expertise__head{margin-bottom:8vh}

  .afterfire__intro h2,
  .expertise__head h2,
  .sectors__intro h2,
  .about__copy h2,
  .contact__head h2{
    font-size:clamp(40px,11vw,62px);
  }

  .process__item{
    grid-template-columns:1fr;
    gap:16px;
    padding:4.5vh 0;
  }

  .process__item h3{
    font-size:34px;
  }

  .expertise__grid{
    grid-template-columns:1fr;
  }

  .expertise__grid article{
    min-height:220px;
  }

  .sector{
    grid-template-columns:46px 1fr auto;
    min-height:90px;
  }

  .sector h3{font-size:24px}

  .about__statement{min-height:290px}

  footer{flex-wrap:wrap}
}


/* =====================================================================
   D.PETRILLO — SERVICES / REALISATIONS V2
   ===================================================================== */
.realisations,.service,.about-new,.final-cta{position:relative;z-index:14;background:#070707;color:#f3f2ed}
.realisations{padding:15vh 0 12vh;overflow:hidden;background:#060606}
.section-head{padding:0 8vw}.section-head--split{display:grid;grid-template-columns:1.15fr .85fr;gap:9vw;align-items:end;margin-bottom:7vh}
.section-head h2,.service__intro h2,.about-new__copy h2,.final-cta h2{margin:0;font-weight:300;line-height:.94;letter-spacing:-.052em;font-size:clamp(48px,6vw,102px)}
.section-head h2 strong,.service__intro h2 strong,.about-new__copy h2 strong,.final-cta h2 strong{font-weight:530}
.section-head--split>p{max-width:520px;margin:0 0 8px;color:rgba(255,255,255,.56);font-size:13px;line-height:1.8}
.projects{position:relative}.projects__track{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:0 8vw 24px;overscroll-behavior-inline:contain}.projects__track::-webkit-scrollbar{display:none}
.project-card{flex:0 0 min(74vw,1120px);margin:0;scroll-snap-align:center;position:relative;background:#101010;overflow:hidden}.project-card img{display:block;width:100%;height:min(68vh,720px);object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}.project-card:hover img{transform:scale(1.015)}
.project-card figcaption{display:grid;grid-template-columns:55px 1fr;gap:18px;padding:21px 24px 24px;border-top:1px solid rgba(255,255,255,.1)}.project-card figcaption>span{font:400 8px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.16em;color:rgba(255,255,255,.42);padding-top:4px}.project-card strong{display:block;font-size:20px;font-weight:400;letter-spacing:-.02em}.project-card small{display:block;margin-top:6px;color:rgba(255,255,255,.48);font-size:11px}
.projects__controls{display:flex;justify-content:space-between;align-items:center;padding:10px 8vw 0}.projects__counter{font:400 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.15em;color:rgba(255,255,255,.48)}.projects__counter b{color:#fff;font-weight:400}.projects__controls>div{display:flex;gap:8px}.projects__controls button{width:48px;height:48px;border:1px solid rgba(255,255,255,.2);background:transparent;color:#fff;font-size:18px;cursor:pointer;transition:.2s}.projects__controls button:hover{background:#fff;color:#090909}

.service{min-height:105vh;padding:15vh 8vw;display:grid;grid-template-columns:.92fr 1.08fr;gap:9vw;align-items:start;border-top:1px solid rgba(255,255,255,.08)}.service--alt{background:#0b0b0b}.service__intro{position:sticky;top:17vh}.service__intro>p:not(.eyebrow){max-width:570px;margin:30px 0 0;color:rgba(255,255,255,.59);font-size:13px;line-height:1.85}.service__chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:30px}.service__chips span{padding:8px 9px;border:1px solid rgba(255,255,255,.14);font:400 7px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;color:rgba(255,255,255,.48)}
.request-form{padding:30px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.018)}.form-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:24px;margin-bottom:28px;border-bottom:1px solid rgba(255,255,255,.12)}.form-head span{font:400 8px/1 ui-monospace,SFMono-Regular,Menlo,monospace;color:rgba(255,255,255,.42);letter-spacing:.16em}.form-head strong{font-size:20px;font-weight:400}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px 18px}.form-grid label{display:flex;flex-direction:column;gap:9px}.form-grid label>span{font:400 8px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;color:rgba(255,255,255,.48)}.form-full{grid-column:1/-1}.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:0;border-bottom:1px solid rgba(255,255,255,.2);border-radius:0;background:transparent;color:#fff;padding:12px 1px;font:400 14px/1.4 inherit;outline:none;transition:border-color .2s}.form-grid textarea{resize:vertical;min-height:120px}.form-grid select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#aaa 50%),linear-gradient(135deg,#aaa 50%,transparent 50%);background-position:calc(100% - 13px) 50%,calc(100% - 8px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}.form-grid option{background:#111;color:#fff}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:rgba(255,255,255,.72)}.form-submit{width:100%;margin-top:28px;padding:16px 18px;display:flex;justify-content:space-between;align-items:center;border:0;background:#f1f1ed;color:#080808;text-transform:uppercase;font:400 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.13em;cursor:pointer}.form-submit b{font-size:15px;font-weight:400}.form-note{margin:12px 0 0;color:rgba(255,255,255,.34);font-size:10px;line-height:1.5}
.service__placeholder,.before-after-placeholder{margin-top:42px;border:1px solid rgba(255,255,255,.13);min-height:250px;padding:28px;background:linear-gradient(145deg,rgba(255,255,255,.035),transparent)}.service__placeholder{display:flex;flex-direction:column;justify-content:flex-end}.service__placeholder span,.before-after-placeholder span{font:400 8px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.16em;color:rgba(255,255,255,.45)}.service__placeholder p{margin:12px 0 0!important;font-size:12px!important;line-height:1.6!important}.before-after-placeholder{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:center;position:relative}.before-after-placeholder>div{height:150px;border:1px dashed rgba(255,255,255,.18);display:grid;place-items:center}.before-after-placeholder i{font-style:normal;color:rgba(255,255,255,.35)}.before-after-placeholder>p{position:absolute;left:28px;right:28px;bottom:18px;margin:0!important;font-size:10px!important;color:rgba(255,255,255,.34)!important}

.about-new{min-height:110vh;display:grid;grid-template-columns:1.05fr .95fr;background:#0a0a0a}.about-new__image{position:relative;min-height:100%;overflow:hidden}.about-new__image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.about-new__image:after{content:"";position:absolute;inset:0;background:linear-gradient(to right,transparent 60%,rgba(10,10,10,.42))}.about-new__image>span{position:absolute;z-index:2;left:28px;bottom:28px;padding:9px 10px;background:rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.18);font:400 7px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.15em}.about-new__copy{padding:14vh 7vw}.about-new__copy>p:not(.eyebrow){margin:30px 0 0;color:rgba(255,255,255,.6);font-size:13px;line-height:1.9;max-width:600px}.about-new__values{margin-top:55px;border-top:1px solid rgba(255,255,255,.14)}.about-new__values>div{display:grid;grid-template-columns:45px 110px 1fr;gap:15px;padding:22px 0;border-bottom:1px solid rgba(255,255,255,.11);align-items:start}.about-new__values span{font:400 8px/1 ui-monospace,SFMono-Regular,Menlo,monospace;color:rgba(255,255,255,.38)}.about-new__values strong{font-size:13px;font-weight:450}.about-new__values p{margin:0!important;font-size:11px!important;line-height:1.65!important;color:rgba(255,255,255,.45)!important}.about-new__contact{margin-top:36px;display:flex;flex-direction:column;gap:8px}.about-new__contact a{width:max-content;color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.18);padding-bottom:4px;font-size:15px}

.final-cta{min-height:88vh;padding:15vh 8vw 4vh;display:flex;flex-direction:column;justify-content:center;background:#050505}.final-cta h2{font-size:clamp(58px,8vw,136px)}.final-cta__links{display:grid;grid-template-columns:1fr 1fr;margin-top:9vh;border-top:1px solid rgba(255,255,255,.14)}.final-cta__links a{display:flex;justify-content:space-between;color:#fff;text-decoration:none;padding:25px 4px;border-bottom:1px solid rgba(255,255,255,.13);font-size:18px}.final-cta__links a:first-child{margin-right:4vw}.final-cta footer{margin-top:auto}

/* Hide obsolete post-burner sections from inherited V1 if any remain. */
.afterfire,.expertise,.sectors,.about{display:none!important}

@media(max-width:1000px){.section-head{padding:0 24px}.section-head--split{grid-template-columns:1fr;gap:28px}.projects__track{padding-left:24px;padding-right:24px}.project-card{flex-basis:86vw}.projects__controls{padding-left:24px;padding-right:24px}.service{padding:13vh 24px;grid-template-columns:1fr;gap:7vh}.service__intro{position:static}.about-new{grid-template-columns:1fr}.about-new__image{min-height:62vh}.about-new__copy{padding:11vh 24px}.final-cta{padding:13vh 24px 3vh}.final-cta__links{grid-template-columns:1fr}.final-cta__links a:first-child{margin-right:0}.project-card img{height:55vh}}
@media(max-width:620px){.section-head h2,.service__intro h2,.about-new__copy h2{font-size:clamp(40px,11vw,62px)}.realisations{padding-top:12vh}.project-card{flex-basis:88vw}.project-card img{height:46vh}.project-card figcaption{grid-template-columns:35px 1fr;padding:16px}.request-form{padding:22px 18px}.form-grid{grid-template-columns:1fr}.form-full{grid-column:1}.before-after-placeholder{grid-template-columns:1fr;gap:8px}.before-after-placeholder i{transform:rotate(90deg);justify-self:center}.about-new__values>div{grid-template-columns:32px 1fr}.about-new__values p{grid-column:2}.final-cta__links a{font-size:15px}}


/* ===== Update V3: burn phrase / realisations / who we are image ===== */
.panel--fire{width:min(760px,58vw)}
.panel--fire h2{font-size:clamp(42px,5vw,84px);line-height:.95}

.realisations{padding-top:15vh;padding-bottom:14vh;background:#070707}
.section-head--plan{position:relative;overflow:hidden;min-height:320px;border:1px solid rgba(255,255,255,.08);margin:0 8vw 42px;background:rgba(255,255,255,.015)}
.section-head__plan-bg{position:absolute;inset:0;background:url('assets/plan-bg.png') center 62%/cover no-repeat;opacity:.28;filter:none}
.section-head__plan-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,4,4,.35),rgba(4,4,4,.56));}
.section-head__content{position:relative;z-index:1;padding:40px 44px 30px;display:flex;flex-direction:column;justify-content:flex-end;min-height:320px}
.section-head--plan h2{font-size:clamp(44px,5.4vw,88px);line-height:.96;margin:0;letter-spacing:-.05em}
.section-head--plan p{max-width:760px;margin:18px 0 0;color:rgba(255,255,255,.68);font-size:13px;line-height:1.8}
.projects__track{touch-action:pan-x;-webkit-overflow-scrolling:touch;cursor:grab}
.projects__track:active{cursor:grabbing}
.project-card{scroll-snap-align:center}

.about-new__image--contain{background:#111;display:flex;align-items:center;justify-content:center;padding:40px}
.about-new__image--contain img{position:relative !important;inset:auto !important;width:100%;height:100%;max-width:100%;max-height:78vh;object-fit:contain;background:#121212}
.about-new__image--contain:after{content:'';position:absolute;inset:0;background:linear-gradient(to right,rgba(10,10,10,.08),rgba(10,10,10,.42));pointer-events:none}
.about-new__image--contain > span{z-index:2}

@media(max-width:1000px){
  .section-head--plan{margin-left:24px;margin-right:24px;min-height:280px}
  .section-head__content{padding:26px 24px 24px;min-height:280px}
  .section-head--plan h2{font-size:clamp(36px,8vw,56px)}
  .projects__track{padding-left:24px;padding-right:24px}
  .about-new__image--contain{min-height:58vh;padding:24px}
  .about-new__image--contain img{max-height:52vh}
}
@media(max-width:620px){
  .panel--fire{width:min(92vw,760px)}
  .section-head--plan{margin-bottom:26px}
  .section-head__content{padding:22px 18px 20px;min-height:240px}
  .section-head--plan p{font-size:12px;line-height:1.65}
  .projects__controls{padding-left:24px;padding-right:24px}
  .projects__controls button{min-width:48px;min-height:48px}
  .about-new__image--contain{padding:18px}
  .about-new__image--contain img{max-height:46vh}
}


/* ===== Update V4: section realisations / image framing / who-we-are cleanup ===== */
.section-head__content{
  padding: 36px 34px 26px 30px;
}
.section-head--plan h2{
  font-size: clamp(36px, 4.5vw, 68px);
  letter-spacing: -.042em;
}
.section-head--plan p{
  max-width: 820px;
}
.section-head__plan-bg{
  background: url('assets/plan-bg.png') center center / contain no-repeat !important;
  opacity: .36;
}
.section-head--plan{
  background-color: #080808;
}

/* Show more of the cold-room shelving image, including the top evaporator */
.project-card:nth-child(6) img{
  object-fit: contain;
  object-position: center center;
  background: #0a0a0a;
  padding: 10px;
}

/* Make the “Qui nous sommes” image zone fully homogeneous and dark */
.about-new__image--contain{
  background: #0a0a0a !important;
}
.about-new__image--contain img{
  background: #0a0a0a !important;
}
.about-new__image--contain:after{
  content: none !important;
  background: none !important;
}

@media(max-width:1000px){
  .section-head__content{
    padding: 26px 22px 22px 20px;
  }
  .section-head--plan h2{
    font-size: clamp(32px, 7vw, 52px);
  }
  .section-head__plan-bg{
    background-size: contain !important;
  }
}

@media(max-width:620px){
  .section-head__content{
    padding: 22px 16px 18px 16px;
  }
  .section-head--plan h2{
    font-size: clamp(30px, 8.5vw, 42px);
  }
  .project-card:nth-child(6) img{
    padding: 6px;
  }
}


/* ===== Update V5: realisations header / controls / caption cleanup ===== */
.section-head--plan{
  border: none !important;
  margin-bottom: 28px;
  overflow: hidden;
}
.section-head__content{
  padding: 30px 28px 22px 22px !important;
}
.section-head--plan h2{
  font-size: clamp(32px, 4vw, 58px) !important;
  letter-spacing: -.038em;
}
.section-head--plan p{
  display: none !important;
}
/* Show the actual plan strip larger while keeping the whole plan content visible */
.section-head__plan-bg{
  background: url('assets/plan-bg.png') center bottom / 100% auto no-repeat !important;
  opacity: .40 !important;
}
.section-head__plan-bg::after{
  background: linear-gradient(180deg, rgba(4,4,4,.18), rgba(4,4,4,.42)) !important;
}

/* Remove the darker framed card feeling under the captions */
.project-card{
  background: transparent !important;
}
.project-card figcaption{
  background: transparent !important;
  border-top: none !important;
  padding: 14px 0 0 !important;
}
.project-card figcaption > span{
  padding-top: 2px;
}
.project-card strong{
  font-size: 18px;
}
.project-card small{
  font-size: 10px;
  margin-top: 5px;
}

/* Last cold-room image: reveal upper evaporator and less floor */
.project-card:nth-child(6) img{
  object-fit: contain !important;
  object-position: center top !important;
  background: #0a0a0a;
  padding: 0 !important;
}

/* Put navigation controls directly under the images, bottom-right */
.projects__controls{
  justify-content: flex-end !important;
  align-items: center;
  gap: 14px;
  padding: 8px 8vw 0 !important;
}
.projects__counter{
  order: 1;
}
.projects__controls > div{
  order: 2;
}

@media(max-width:1000px){
  .section-head__content{
    padding: 24px 20px 18px 18px !important;
  }
  .section-head--plan h2{
    font-size: clamp(30px, 6.2vw, 46px) !important;
  }
  .section-head__plan-bg{
    background-size: 112% auto !important;
    background-position: center bottom !important;
  }
  .projects__controls{
    padding: 8px 24px 0 !important;
  }
}

@media(max-width:620px){
  .section-head__content{
    padding: 20px 16px 14px 14px !important;
  }
  .section-head--plan h2{
    font-size: clamp(28px, 8vw, 38px) !important;
  }
  .section-head__plan-bg{
    background-size: 120% auto !important;
  }
  .project-card figcaption{
    grid-template-columns: 30px 1fr;
    gap: 12px;
    padding-top: 12px !important;
  }
  .projects__controls{
    gap: 12px;
    padding: 8px 24px 0 !important;
  }
}


/* ======================================================================
   V6 — RÉALISATIONS : PLAN RÉEL EN FOND + LÉGENDE/FLÈCHES SUR LA MÊME LIGNE
   ====================================================================== */

.realisations{
  padding:14vh 0 12vh !important;
  background:#060606 !important;
}

.realisations-hero{
  position:relative;
  height:clamp(320px,35vw,560px);
  margin:0 8vw 34px;
  overflow:hidden;
  background:#050505;
}

.realisations-hero__plan{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center center;
  opacity:.82;
}

.realisations-hero__veil{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,
      rgba(5,5,5,.82) 0%,
      rgba(5,5,5,.46) 27%,
      rgba(5,5,5,.08) 58%,
      rgba(5,5,5,.12) 100%),
    linear-gradient(to bottom,
      rgba(5,5,5,.12),
      transparent 50%,
      rgba(5,5,5,.20));
  pointer-events:none;
}

.realisations-hero h2{
  position:absolute;
  z-index:2;
  left:32px;
  bottom:28px;
  margin:0;
  font-size:clamp(32px,4vw,58px);
  line-height:.95;
  font-weight:420;
  letter-spacing:-.04em;
}

.projects__track{
  display:flex;
  gap:22px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  padding:0 8vw;
  overscroll-behavior-inline:contain;
  touch-action:pan-x;
  -webkit-overflow-scrolling:touch;
}
.projects__track::-webkit-scrollbar{display:none}

.project-card{
  flex:0 0 min(74vw,1120px);
  margin:0;
  scroll-snap-align:center;
  background:transparent !important;
  overflow:hidden;
}

.project-card img{
  display:block;
  width:100%;
  height:min(68vh,720px);
  object-fit:cover;
  background:#080808;
}

.project-card:nth-child(6) img{
  object-fit:contain !important;
  object-position:center top !important;
  background:#080808 !important;
  padding:0 !important;
}

/* Une seule ligne sous la photo : description à gauche, flèches à droite */
.projects__meta{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:24px;
  margin:0 8vw;
  padding:15px 0 0;
}

.projects__caption{
  min-width:0;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:18px;
}

.projects__counter{
  white-space:nowrap;
  font:400 9px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:.14em;
  color:rgba(255,255,255,.45);
}
.projects__counter b{
  color:#fff;
  font-weight:400;
}

.projects__caption-text{
  min-width:0;
}
.projects__caption-text strong{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:18px;
  font-weight:420;
  letter-spacing:-.02em;
}
.projects__caption-text small{
  display:block;
  margin-top:4px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:rgba(255,255,255,.48);
  font-size:10px;
}

.projects__controls{
  display:flex !important;
  align-items:center;
  gap:8px;
  padding:0 !important;
}

.projects__controls button{
  width:48px;
  height:48px;
  border:1px solid rgba(255,255,255,.22);
  background:transparent;
  color:#fff;
  font-size:18px;
  cursor:pointer;
}
.projects__controls button:hover{
  background:#fff;
  color:#080808;
}

@media(max-width:1000px){
  .realisations-hero{
    height:clamp(300px,52vw,480px);
    margin-left:24px;
    margin-right:24px;
  }
  .realisations-hero h2{
    left:22px;
    bottom:22px;
    font-size:clamp(30px,7vw,48px);
  }
  .projects__track{
    padding-left:24px;
    padding-right:24px;
  }
  .project-card{
    flex-basis:86vw;
  }
  .project-card img{
    height:55vh;
  }
  .projects__meta{
    margin-left:24px;
    margin-right:24px;
  }
}

@media(max-width:620px){
  .realisations{
    padding-top:12vh !important;
  }
  .realisations-hero{
    height:330px;
    margin-bottom:24px;
  }
  .realisations-hero__plan{
    object-fit:contain;
  }
  .realisations-hero__veil{
    background:
      linear-gradient(90deg,
        rgba(5,5,5,.72) 0%,
        rgba(5,5,5,.24) 46%,
        rgba(5,5,5,.05) 100%);
  }
  .realisations-hero h2{
    left:16px;
    bottom:16px;
    font-size:clamp(28px,8.2vw,38px);
  }
  .project-card{
    flex-basis:88vw;
  }
  .project-card img{
    height:46vh;
  }
  .projects__meta{
    grid-template-columns:minmax(0,1fr) auto;
    gap:10px;
    padding-top:12px;
  }
  .projects__caption{
    gap:10px;
  }
  .projects__caption-text strong{
    font-size:14px;
  }
  .projects__caption-text small{
    font-size:9px;
  }
  .projects__counter{
    font-size:8px;
  }
  .projects__controls{
    gap:6px;
  }
  .projects__controls button{
    width:44px;
    height:44px;
    font-size:17px;
  }
}


/* ======================================================================
   V7 — RÉALISATIONS SIMPLIFIÉES
   ====================================================================== */

/* Supprime définitivement le plan et son ancien cadre */
.realisations{
  position:relative;
  padding:14vh 0 12vh !important;
  background:#060606 !important;
  overflow:hidden;
}

.realisations-title{
  margin:0 8vw 34px;
}

.realisations-title h2{
  display:flex;
  align-items:center;
  gap:12px;
  margin:0;
  font-size:clamp(34px,4.2vw,62px);
  line-height:.95;
  font-weight:420;
  letter-spacing:-.042em;
}

.realisations-title h2::after{
  content:"";
  width:5px;
  height:5px;
  border-radius:50%;
  background:rgba(255,255,255,.72);
  box-shadow:11px 0 0 rgba(255,255,255,.32);
  flex:0 0 auto;
  margin-top:4px;
}

.realisations-hero,
.section-head--plan,
.section-head__plan-bg,
.section-head__content{
  display:none !important;
}

.projects{
  position:relative;
}

.projects__track{
  display:flex;
  gap:22px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  padding:0 8vw;
  touch-action:pan-x;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-inline:contain;
}

.projects__track::-webkit-scrollbar{
  display:none;
}

.project-card{
  flex:0 0 min(74vw,1120px);
  margin:0;
  scroll-snap-align:center;
  background:transparent !important;
}

.project-card img{
  display:block;
  width:100%;
  height:min(68vh,720px);
  object-fit:cover;
  object-position:center center;
  background:#080808;
}

/* Même format que les autres, mais cadrage haut pour conserver les évaporateurs */
.project-card--cold img,
.project-card:nth-child(6) img{
  object-fit:cover !important;
  object-position:center 12% !important;
  padding:0 !important;
  background:#080808 !important;
}

/* La légende appartient de nouveau à chaque photo :
   elle reste donc toujours parfaitement alignée sur son bord gauche. */
.project-card figcaption{
  display:grid !important;
  grid-template-columns:38px minmax(0,1fr);
  gap:14px;
  align-items:start;
  padding:14px 0 0 !important;
  margin:0;
  background:transparent !important;
  border:none !important;
}

.project-card figcaption > span{
  padding-top:3px;
  color:rgba(255,255,255,.42);
  font:400 8px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:.15em;
}

.project-card figcaption strong{
  display:block;
  font-size:18px;
  font-weight:420;
  letter-spacing:-.02em;
}

.project-card figcaption small{
  display:block;
  margin-top:5px;
  color:rgba(255,255,255,.48);
  font-size:10px;
}

/* Ancien bloc inférieur totalement supprimé */
.projects__meta,
.projects__controls,
.projects__counter{
  display:none !important;
}

/* Flèches directement sur les côtés de la photo */
.projects__arrow{
  position:absolute;
  z-index:6;
  top:calc(min(68vh,720px) / 2);
  transform:translateY(-50%);
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.28);
  background:rgba(7,7,7,.30);
  color:#fff;
  font-size:18px;
  cursor:pointer;
  transition:
    background .2s ease,
    border-color .2s ease,
    transform .2s ease;
}

.projects__arrow:hover{
  background:rgba(255,255,255,.94);
  color:#090909;
  border-color:#fff;
}

.projects__arrow--prev{
  left:calc(8vw + 14px);
}

.projects__arrow--next{
  right:calc(8vw + 14px);
}

@media(max-width:1000px){
  .realisations-title{
    margin-left:24px;
    margin-right:24px;
    margin-bottom:26px;
  }

  .realisations-title h2{
    font-size:clamp(30px,6.5vw,48px);
  }

  .projects__track{
    padding-left:24px;
    padding-right:24px;
  }

  .project-card{
    flex-basis:86vw;
  }

  .project-card img{
    height:55vh;
  }

  .projects__arrow{
    top:calc(55vh / 2);
  }

  .projects__arrow--prev{
    left:34px;
  }

  .projects__arrow--next{
    right:34px;
  }
}

@media(max-width:620px){
  .realisations{
    padding-top:12vh !important;
  }

  .realisations-title{
    margin-bottom:22px;
  }

  .realisations-title h2{
    font-size:clamp(28px,8vw,38px);
    gap:10px;
  }

  .realisations-title h2::after{
    width:4px;
    height:4px;
    box-shadow:9px 0 0 rgba(255,255,255,.32);
  }

  .project-card{
    flex-basis:88vw;
  }

  .project-card img{
    height:46vh;
  }

  .project-card figcaption{
    grid-template-columns:30px minmax(0,1fr);
    gap:10px;
    padding-top:12px !important;
  }

  .project-card figcaption strong{
    font-size:14px;
  }

  .project-card figcaption small{
    font-size:9px;
  }

  .projects__arrow{
    top:calc(46vh / 2);
    width:42px;
    height:42px;
    background:rgba(7,7,7,.38);
  }

  .projects__arrow--prev{
    left:32px;
  }

  .projects__arrow--next{
    right:32px;
  }
}


/* ======================================================================
   V8 — Réalisations / rail / entretien avant-après
   ====================================================================== */

/* La barre verticale de progression est définitivement retirée. */
.rail{
  display:none !important;
}

/* Le titre utilise un vrai ":" et aucun point décoratif généré. */
.realisations-title h2::after{
  display:none !important;
  content:none !important;
}

/* Les descriptions commencent exactement au bord gauche de la photo. */
.project-card figcaption{
  display:block !important;
  padding:14px 0 0 !important;
  margin:0 !important;
  background:transparent !important;
  border:none !important;
}
.project-card figcaption > div{
  margin:0 !important;
  padding:0 !important;
}
.project-card figcaption strong{
  display:block;
  margin:0;
  padding:0;
  font-size:18px;
  font-weight:420;
  letter-spacing:-.02em;
}
.project-card figcaption small{
  display:block;
  margin-top:5px;
  padding:0;
  color:rgba(255,255,255,.48);
  font-size:10px;
}

/* La nouvelle photo de stockage réfrigéré garde exactement le format
   des autres cartes, tout en privilégiant la partie haute de l'image. */
.project-card--cold img,
.project-card:nth-child(6) img{
  width:100%;
  height:min(68vh,720px);
  object-fit:cover !important;
  object-position:center 22% !important;
  padding:0 !important;
  background:#080808 !important;
}

/* Les flèches sont calées contre les bords de la photo centrée. */
.projects__arrow--prev{
  left:calc(50% - min(37vw,560px) + 12px) !important;
}
.projects__arrow--next{
  right:calc(50% - min(37vw,560px) + 12px) !important;
}

/* Entretien : vrai avant / après */
.before-after{
  margin-top:42px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  gap:14px;
  align-items:center;
}

.before-after__item{
  margin:0;
  min-width:0;
}

.before-after__media{
  position:relative;
  height:320px;
  overflow:hidden;
  background:#0a0a0a;
}

.before-after__media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
}

.before-after__media span{
  position:absolute;
  left:12px;
  bottom:12px;
  padding:8px 9px;
  background:rgba(0,0,0,.62);
  border:1px solid rgba(255,255,255,.18);
  color:#fff;
  font:400 8px/1 ui-monospace,SFMono-Regular,Menlo,monospace;
  letter-spacing:.15em;
}

.before-after__arrow{
  color:rgba(255,255,255,.44);
  font-size:22px;
}

/* L'ancien placeholder ne doit plus prendre de place. */
.before-after-placeholder{
  display:none !important;
}

@media(max-width:1000px){
  .project-card--cold img,
  .project-card:nth-child(6) img{
    height:55vh;
  }

  .projects__arrow--prev{
    left:calc(7vw + 4px) !important;
  }
  .projects__arrow--next{
    right:calc(7vw + 4px) !important;
  }

  .before-after__media{
    height:300px;
  }
}

@media(max-width:620px){
  .project-card figcaption strong{
    font-size:14px;
  }
  .project-card figcaption small{
    font-size:9px;
  }

  .project-card--cold img,
  .project-card:nth-child(6) img{
    height:46vh;
    object-position:center 20% !important;
  }

  .projects__arrow--prev{
    left:6.5vw !important;
  }
  .projects__arrow--next{
    right:6.5vw !important;
  }

  .before-after{
    grid-template-columns:1fr;
    gap:10px;
  }
  .before-after__arrow{
    transform:rotate(90deg);
    justify-self:center;
  }
  .before-after__media{
    height:360px;
  }
}


/* ======================================================================
   V9 — Alignment / forms / about copy
   ====================================================================== */

/* “FILM INTERACTIF” removed from markup, keep hidden as fallback. */
.status{display:none !important;}

/* Keep every card truly centered, including the first and the last one.
   This makes the side arrows align identically on every slide. */
.projects{
  --card-w:min(74vw,1120px);
  --side-gap:calc((100vw - var(--card-w)) / 2);
}
.projects__track{
  padding-left:var(--side-gap) !important;
  padding-right:var(--side-gap) !important;
}
.project-card{
  flex-basis:var(--card-w) !important;
}
.projects__arrow--prev{
  left:calc(var(--side-gap) + 12px) !important;
}
.projects__arrow--next{
  right:calc(var(--side-gap) + 12px) !important;
}

/* Form headings: centred and without the old step numbers. */
.form-head{
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  text-align:center;
}
.form-head > span{
  display:none !important;
}
.form-head strong{
  width:100%;
  text-align:center;
}

/* New “Qui nous sommes” story copy. */
.about-new__story{
  margin-top:30px;
  max-width:650px;
}
.about-new__story p{
  margin:0 0 18px !important;
  color:rgba(255,255,255,.62) !important;
  font-size:13px !important;
  line-height:1.9 !important;
}
.about-new__story p:last-child{
  margin-bottom:0 !important;
}

@media(max-width:1000px){
  .projects{
    --card-w:86vw;
    --side-gap:7vw;
  }
}

@media(max-width:620px){
  .projects{
    --card-w:88vw;
    --side-gap:6vw;
  }
  .projects__arrow--prev{
    left:calc(var(--side-gap) + 6px) !important;
  }
  .projects__arrow--next{
    right:calc(var(--side-gap) + 6px) !important;
  }
  .about-new__story p{
    font-size:12px !important;
    line-height:1.8 !important;
  }
}


/* ===== V10 — trust logos + fire text + depannage field ===== */
.panel--fire{left:4.8vw;top:22vh;width:min(430px,31vw)}
.panel--fire h2{font-size:clamp(40px,4.5vw,72px);line-height:.92;max-width:7.2ch}
.panel--fire h2 strong{display:block}

.service__chips{display:none !important}

/* Trust section replaces old final CTA */
.trust{position:relative;z-index:14;background:#050505;color:#f3f2ed;padding:14vh 8vw 5vh}
.trust__intro{max-width:900px;margin-bottom:44px}
.trust__intro .eyebrow{margin:0 0 14px;font:400 8px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.18em;color:rgba(255,255,255,.42)}
.trust__intro h2{margin:0;font-weight:300;line-height:.94;letter-spacing:-.052em;font-size:clamp(54px,7vw,116px)}
.trust__intro h2 strong{font-weight:530}
.trust__intro p:not(.eyebrow){max-width:720px;margin:26px 0 0;color:rgba(255,255,255,.58);font-size:13px;line-height:1.85}
.trust__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:5vh}
.trust__card{background:#ececea;border:1px solid rgba(255,255,255,.09);min-height:160px;display:flex;align-items:center;justify-content:center;padding:22px;overflow:hidden}
.trust__card img{display:block;width:100%;height:100%;max-height:102px;object-fit:contain;mix-blend-mode:normal}
.trust__card--wide{grid-column:span 2}
.trust__contact{display:flex;gap:18px;flex-wrap:wrap;margin-top:6vh;padding-top:18px;border-top:1px solid rgba(255,255,255,.12)}
.trust__contact a{color:#fff;text-decoration:none;padding-bottom:3px;border-bottom:1px solid rgba(255,255,255,.18)}
.trust__footer{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:24px;padding-top:22px;border-top:1px solid rgba(255,255,255,.08);color:rgba(255,255,255,.44);font-size:10px;letter-spacing:.12em;text-transform:uppercase}

@media(max-width:1000px){
  .panel--fire{left:24px;top:23vh;width:min(360px,72vw)}
  .panel--fire h2{font-size:clamp(38px,7vw,62px);max-width:7.5ch}
  .trust{padding:13vh 24px 4vh}
  .trust__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .trust__card--wide{grid-column:span 2}
}
@media(max-width:620px){
  .panel--fire{top:25vh;width:min(300px,68vw)}
  .panel--fire h2{font-size:clamp(34px,9vw,48px);line-height:.94}
  .trust__intro h2{font-size:clamp(42px,11vw,62px)}
  .trust__grid{grid-template-columns:1fr;gap:12px}
  .trust__card,.trust__card--wide{grid-column:auto;min-height:132px;padding:18px}
  .trust__card img{max-height:86px}
  .trust__contact{flex-direction:column;gap:10px}
  .trust__footer{flex-direction:column;gap:8px}
}


/* ======================================================================
   V11 — LOGOS TRANSPARENTS / MARQUEE 3 COLONNES / ALIGNEMENT RÉALISATIONS
   ====================================================================== */

/* The title uses the exact same left boundary as the centred project cards. */
.realisations-title{
  margin-left:calc((100vw - min(74vw,1120px)) / 2) !important;
  margin-right:calc((100vw - min(74vw,1120px)) / 2) !important;
}

/* Trust intro: no explanatory paragraph. */
.trust__intro{
  margin-bottom:42px !important;
}
.trust__intro > p:not(.eyebrow){
  display:none !important;
}

/* Old static grid is no longer used. */
.trust__grid,
.trust__card{
  display:none !important;
}

/* Exactly three logo slots fit in the viewport.
   The track is duplicated by JS and slides continuously. */
.trust{
  --trust-gap:18px;
}

.trust__viewport{
  width:100%;
  overflow:hidden;
  margin-top:5vh;
  padding:18px 0;
  border-top:1px solid rgba(255,255,255,.10);
  border-bottom:1px solid rgba(255,255,255,.10);
}

.trust__track{
  display:flex;
  align-items:center;
  gap:var(--trust-gap);
  width:max-content;
  will-change:transform;
}

.trust__logo{
  flex:0 0 calc((84vw - (2 * var(--trust-gap))) / 3);
  width:calc((84vw - (2 * var(--trust-gap))) / 3);
  height:190px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px 28px;
  background:transparent;
}

.trust__logo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  background:transparent !important;
  image-rendering:auto;
}

/* No white cards or panels around the supplied brand marks. */
.trust__logo,
.trust__logo img{
  border:0 !important;
  box-shadow:none !important;
}

/* Stop the marquee only for users who explicitly request reduced motion. */
@media(prefers-reduced-motion:reduce){
  .trust__track{
    transform:none !important;
  }
  .trust__viewport{
    overflow-x:auto;
  }
}

@media(max-width:1000px){
  .realisations-title{
    margin-left:7vw !important;
    margin-right:7vw !important;
  }

  .trust{
    --trust-gap:12px;
  }

  .trust__logo{
    flex-basis:calc((100vw - 48px - (2 * var(--trust-gap))) / 3);
    width:calc((100vw - 48px - (2 * var(--trust-gap))) / 3);
    height:154px;
    padding:16px 18px;
  }
}

@media(max-width:620px){
  .realisations-title{
    margin-left:6vw !important;
    margin-right:6vw !important;
  }

  .trust{
    --trust-gap:8px;
  }

  .trust__viewport{
    padding:12px 0;
  }

  /* Still three logos visible as requested, including on mobile. */
  .trust__logo{
    flex-basis:calc((100vw - 48px - (2 * var(--trust-gap))) / 3);
    width:calc((100vw - 48px - (2 * var(--trust-gap))) / 3);
    height:112px;
    padding:10px 8px;
  }
}


/* ======================================================================
   V14 — LOSSLESS SEGMENTED 4K60 SCRUB ENGINE
   Both scrub layers use the exact H264 All-I packets from the local master.
   ====================================================================== */

.scene__video--scrub{
  opacity:0 !important;
  z-index:1 !important;
  transition:none !important;
  pointer-events:none;
}

.scene__video--scrub.is-ready.is-active{
  opacity:1 !important;
}

.scene__video--scrub.is-ready:not(.is-active){
  opacity:0 !important;
}

.scene__video--master{
  z-index:2 !important;
  opacity:0 !important;
  transition:opacity .08s linear !important;
}

.scene__video--master.is-refined{
  opacity:1 !important;
}

/* Keep the original poster until a real 4K frame is genuinely ready. */
.scene__poster{
  transition:opacity .10s linear !important;
}


/* ======================================================================
   V16 — SIMPLE SINGLE-FILE SCRUB LAYER
   ====================================================================== */
.scene__video--scrub{
  transition:opacity .08s linear !important;
}
.scene__video--scrub.is-ready.is-active{
  opacity:1 !important;
}
