/* M²+ V13 RESPONSIVE CORE */
:root{--m2-mobile-header:76px;--m2-mobile-gutter:20px}
html{-webkit-text-size-adjust:100%}body{overflow-x:hidden}img{max-width:100%;height:auto}button,a{-webkit-tap-highlight-color:transparent}main{min-width:0}
@media(max-width:900px){
header,.home-v21 header,.values-page header{position:sticky!important;top:0!important;z-index:1000!important;background:#080808!important;background-image:none!important;border-bottom:1px solid rgba(255,255,255,.12)!important;backdrop-filter:none!important;overflow:visible!important}
header::before,header::after,.home-v21 header::before,.home-v21 header::after{content:none!important;display:none!important}
.nav,.home-v21 header .nav{position:relative!important;width:calc(100% - 28px)!important;height:var(--m2-mobile-header)!important;min-height:var(--m2-mobile-header)!important;margin:0 auto!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:14px!important}
.brand-official,.home-v21 header .brand-official{width:min(270px,calc(100vw - 90px))!important;max-width:min(270px,calc(100vw - 90px))!important;height:var(--m2-mobile-header)!important;flex:0 1 auto!important;display:flex!important;align-items:center!important;overflow:hidden!important;background:transparent!important}
.brand-official img,.home-v21 header .brand-official img{width:auto!important;max-width:100%!important;height:58px!important;max-height:58px!important;object-fit:contain!important;object-position:left center!important}
.menu-btn,.home-v21 .menu-btn{display:grid!important;place-items:center!important;flex:0 0 48px!important;width:48px!important;height:48px!important;padding:0!important;border:0!important;background:transparent!important;color:#fff!important;font-size:34px!important;line-height:1!important;cursor:pointer!important;z-index:1002!important}
header nav,.home-v21 header nav,.values-page header nav{position:absolute!important;top:100%!important;left:-14px!important;right:-14px!important;width:auto!important;max-height:calc(100dvh - var(--m2-mobile-header))!important;overflow-y:auto!important;display:none!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;gap:0!important;margin:0!important;padding:8px 20px 22px!important;background:#080808!important;border-top:1px solid rgba(255,255,255,.10)!important;box-shadow:0 18px 34px rgba(0,0,0,.28)!important;font-size:14px!important;letter-spacing:.06em!important;white-space:normal!important;z-index:1001!important}
header nav.open,.home-v21 header nav.open,.values-page header nav.open{display:flex!important}
header nav a,.home-v21 header nav a,.values-page header nav a{display:flex!important;align-items:center!important;width:100%!important;min-height:54px!important;padding:14px 4px!important;color:#fff!important;opacity:1!important;border-bottom:1px solid rgba(255,255,255,.10)!important;line-height:1.25!important;white-space:normal!important}
header nav a.active,.home-v21 header nav a.active,.values-page header nav a.active{color:var(--orange)!important}
header nav .nav-cta,.home-v21 header nav .nav-cta,.values-page header nav .nav-cta{margin:14px 0 4px!important;min-height:52px!important;padding:15px 18px!important;justify-content:center!important;border:0!important;border-radius:999px!important;background:var(--orange)!important;color:#111!important;font-weight:800!important}
body.menu-open{overflow:hidden!important}
.home-v21 .home-hero{--m2-photo-h:clamp(265px,58vw,365px);position:relative!important;display:block!important;min-height:0!important;height:auto!important;overflow:hidden!important;background:#080808!important;color:#fff!important}
.home-v21 .home-hero-media{position:absolute!important;inset:0!important;z-index:0!important;background:#080808!important;overflow:hidden!important}
.home-v21 .home-hero-media::before{content:""!important;display:block!important;position:absolute!important;z-index:1!important;left:0!important;right:0!important;top:0!important;width:100%!important;height:var(--m2-photo-h)!important;background-image:url('assets/home-hero-extension-v9.jpg')!important;background-size:cover!important;background-position:center center!important;background-repeat:no-repeat!important;-webkit-mask-image:none!important;mask-image:none!important}
.home-v21 .home-hero-media::after{content:""!important;display:block!important;position:absolute!important;z-index:2!important;left:0!important;right:0!important;top:calc(var(--m2-photo-h) - 1px)!important;bottom:0!important;width:100%!important;height:auto!important;background:linear-gradient(180deg,rgba(8,8,8,.18) 0%,rgba(8,8,8,.88) 52px,#080808 175px),url('assets/bardage-noir-transparent-v8.png') left top/auto 100% no-repeat!important;opacity:1!important;pointer-events:none!important}
.home-v21 .home-hero-inner{position:relative!important;z-index:5!important;display:block!important;width:calc(100% - 36px)!important;min-height:0!important;margin:0 auto!important;padding:calc(var(--m2-photo-h) + 34px) 0 0!important}
.home-v21 .home-hero-copy{max-width:none!important;padding:0 0 34px!important}.home-v21 .home-hero-copy .kicker{font-size:11px!important;line-height:1.45!important;letter-spacing:.13em!important;margin-bottom:10px!important}.home-v21 .home-hero-copy h1{max-width:100%!important;margin:0 0 18px!important;font-size:clamp(48px,13.8vw,66px)!important;line-height:.93!important;letter-spacing:-.055em!important}.home-v21 .home-hero-copy .lead{max-width:100%!important;margin:0 0 24px!important;font-size:18px!important;line-height:1.45!important}.home-v21 .home-hero-copy .actions{display:grid!important;grid-template-columns:1fr!important;gap:12px!important;margin-top:0!important}.home-v21 .home-hero-copy .btn{width:100%!important;min-height:50px!important;padding:14px 18px!important;text-align:center!important}
.home-v21 .home-proofbar{position:relative!important;z-index:6!important;width:calc(100% + 36px)!important;margin-left:-18px!important;display:grid!important;grid-template-columns:1fr 1fr!important;background:#0b0b0b!important;border-top:1px solid rgba(255,255,255,.16)!important}.home-v21 .home-proofbar>div{min-height:92px!important;padding:18px 16px!important;display:flex!important;align-items:center!important;gap:11px!important;border-right:1px solid rgba(255,255,255,.14)!important;border-bottom:1px solid rgba(255,255,255,.14)!important}.home-v21 .home-proofbar>div:nth-child(2n){border-right:0!important}.home-v21 .home-proofbar>div:nth-last-child(-n+2){border-bottom:0!important}.home-v21 .home-proofbar span{font-size:25px!important}.home-v21 .home-proofbar strong{font-size:13px!important;line-height:1.25!important}
.container{width:calc(100% - 36px)!important}.section{padding:72px 0!important}.grid-3,.grid-2,.project-grid,.project-hub,.link-grid,.home-project-grid,.home-why-grid,.contact-wrap,.footer-grid{grid-template-columns:1fr!important}.home-projects{padding:24px 0 58px!important}.home-project-card img{height:auto!important;aspect-ratio:16/10!important;object-fit:cover!important}.home-project-card>div{padding:22px!important}.home-story,.home-realisation{grid-template-columns:1fr!important}.home-story-image img,.home-realisation img{max-height:390px!important;object-fit:cover!important}.home-story-copy,.home-realisation-copy{padding:48px 24px!important}.home-why-grid article{border-right:0!important;border-bottom:1px solid #ded8cf!important;padding:26px 18px!important}.home-why-grid article:last-child{border-bottom:0!important}.page-hero{min-height:0!important;padding-top:82px!important;padding-bottom:64px!important}.page-hero h1{font-size:clamp(46px,13vw,66px)!important}.footer-grid{gap:34px!important}
}
@media(max-width:430px){:root{--m2-mobile-header:72px}.brand-official,.home-v21 header .brand-official{width:min(245px,calc(100vw - 82px))!important;max-width:min(245px,calc(100vw - 82px))!important}.brand-official img,.home-v21 header .brand-official img{height:52px!important;max-height:52px!important}.home-v21 .home-hero{--m2-photo-h:clamp(250px,67vw,320px)}.home-v21 .home-hero-copy h1{font-size:clamp(45px,14vw,58px)!important}.home-v21 .home-proofbar>div{padding:16px 12px!important}}
@media(min-width:700px) and (max-width:900px){.home-project-grid{grid-template-columns:1fr 1fr!important}.home-project-card:last-child{grid-column:1/-1!important}.footer-grid{grid-template-columns:1fr 1fr!important}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}


/* ============================================================
   M²+ — V14 : MENU MOBILE FIABILISÉ
   Le panneau devient un overlay fixe sous le header.
   Il ne dépend plus de la hauteur/overflow du conteneur .nav.
   ============================================================ */
@media (max-width:900px){

  header,
  .home-v21 header,
  .values-page header{
    overflow:visible!important;
    isolation:isolate!important;
  }

  header nav,
  .home-v21 header nav,
  .values-page header nav{
    position:fixed!important;
    top:var(--m2-mobile-header)!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    width:100vw!important;
    height:calc(100dvh - var(--m2-mobile-header))!important;
    max-height:none!important;
    margin:0!important;
    padding:18px 22px max(28px,env(safe-area-inset-bottom))!important;

    display:none!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    gap:0!important;

    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;

    background:#080808!important;
    border:0!important;
    box-shadow:none!important;
    z-index:9998!important;

    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:translateY(-8px)!important;
  }

  header nav.open,
  .home-v21 header nav.open,
  .values-page header nav.open{
    display:flex!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:none!important;
  }

  header nav a,
  .home-v21 header nav a,
  .values-page header nav a{
    flex:0 0 auto!important;
    display:flex!important;
    align-items:center!important;
    width:100%!important;
    min-height:58px!important;
    padding:16px 6px!important;

    color:#fff!important;
    font-size:16px!important;
    font-weight:650!important;
    line-height:1.25!important;
    text-transform:uppercase!important;
    letter-spacing:.045em!important;
    text-decoration:none!important;

    border-bottom:1px solid rgba(255,255,255,.11)!important;
    opacity:1!important;
    visibility:visible!important;
  }

  header nav a.active,
  .home-v21 header nav a.active,
  .values-page header nav a.active{
    color:var(--orange)!important;
  }

  header nav .nav-cta,
  .home-v21 header nav .nav-cta,
  .values-page header nav .nav-cta{
    display:flex!important;
    justify-content:center!important;
    margin:18px 0 6px!important;
    padding:16px 20px!important;
    min-height:56px!important;
    background:var(--orange)!important;
    color:#111!important;
    border:0!important;
    border-radius:999px!important;
    font-weight:850!important;
  }

  .menu-btn,
  .home-v21 .menu-btn{
    position:relative!important;
    z-index:9999!important;
  }

  body.menu-open{
    overflow:hidden!important;
    touch-action:none!important;
  }

  /* Garantit que le Hero ne puisse jamais recouvrir le menu ouvert */
  body.menu-open main,
  body.menu-open footer{
    pointer-events:none!important;
  }
}

/* iPhone compacts : header un peu plus bas mais toujours cohérent */
@media (max-width:430px){
  header nav,
  .home-v21 header nav,
  .values-page header nav{
    top:var(--m2-mobile-header)!important;
    height:calc(100dvh - var(--m2-mobile-header))!important;
    padding-left:18px!important;
    padding-right:18px!important;
  }
}
