
/* ==================================================================
   WIAPRO-SOLAR V33 STABLE — composants communs uniquement
   ================================================================== */
:root{
  --blue:#1A9DF1;
  --blue-dark:#087BC1;
  --blue-deep:#0B4A75;
  --blue-soft:#EAF6FE;
  --yellow:#FFE451;
  --yellow-dark:#F5CE19;
  --text:#17212B;
  --muted:#667684;
  --line:#E4EDF3;
  --bg:#F7FAFC;
  --font:"Poppins","Segoe UI",Arial,sans-serif;
}
html{scroll-behavior:smooth}
body,button,input,textarea,select{font-family:var(--font)!important}
body{overflow-x:hidden}
img,svg,video{max-width:100%}

/* Reveal: never leave content invisible if JS is unavailable. */
.reveal{opacity:1!important;transform:none!important}
html.has-js .reveal{
  opacity:0!important;
  transform:translateY(18px)!important;
  transition:opacity .5s ease,transform .5s ease!important;
}
html.has-js .reveal.visible{
  opacity:1!important;
  transform:none!important;
}

/* Header */
.header{
  position:sticky!important;
  top:0!important;
  z-index:5000!important;
  background:rgba(255,255,255,.97)!important;
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(11,74,117,.07)!important;
}
.header-inner{min-height:76px!important}
.logo{display:flex;align-items:center}
.logo img{height:52px!important;width:auto!important}

/* Navigation desktop */
.site-nav{
  display:flex!important;
  align-items:center!important;
  gap:18px!important;
}
.nav-item{position:relative}
.nav-parent{display:flex;align-items:center;gap:2px}
.nav-parent>a,.site-nav>a:not(.btn){
  color:#263B49!important;
  font-size:.9rem!important;
  font-weight:700!important;
  text-decoration:none!important;
}
.submenu-toggle{
  display:grid;
  place-items:center;
  width:24px;height:24px;
  padding:0;border:0;
  border-radius:6px;
  background:transparent;
  color:#7B8D99;
  cursor:pointer;
  font:inherit;
}
.submenu-toggle:hover{background:var(--blue-soft);color:var(--blue-dark)}
.submenu{
  position:absolute;
  top:calc(100% + 14px);
  left:-16px;
  z-index:5200;
  width:305px;
  display:grid;
  gap:2px;
  padding:12px;
  border:1px solid rgba(28,156,244,.14);
  border-radius:18px;
  background:#fff;
  box-shadow:0 20px 48px rgba(17,72,108,.14);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(7px);
  transition:.2s ease;
}
.submenu-small{width:260px}
.submenu::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.submenu a{
  display:block!important;
  margin:0!important;
  padding:9px 11px!important;
  border-radius:11px;
  color:#3E5665!important;
  font-size:.82rem!important;
  font-weight:600!important;
  line-height:1.3!important;
  text-decoration:none!important;
}
.submenu a:hover{background:var(--blue-soft)!important;color:var(--blue-dark)!important}
@media(min-width:981px){
  .burger{display:none!important}
  .has-submenu:hover>.submenu,
  .has-submenu:focus-within>.submenu,
  .has-submenu.submenu-open>.submenu{
    opacity:1;visibility:visible;pointer-events:auto;transform:none
  }
}

/* Mobile navigation */
@media(max-width:980px){
  .header-inner{position:relative!important}
  .burger{
    display:block!important;
    width:44px!important;height:44px!important;
    border:0!important;background:transparent!important;
    position:relative!important;z-index:5300!important;
    cursor:pointer!important;padding:4px!important;
  }
  .burger span{
    display:block!important;
    width:31px!important;height:3px!important;
    margin:5px auto!important;
    border-radius:99px!important;
    background:#17212B!important;
    transition:.22s ease!important;
  }
  .burger.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  .burger.open span:nth-child(2){opacity:0}
  .burger.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

  .site-nav{
    position:fixed!important;
    top:76px!important;
    left:0!important;right:0!important;
    width:100%!important;
    max-height:calc(100dvh - 76px)!important;
    overflow-y:auto!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:3px!important;
    padding:14px 5vw 24px!important;
    background:#fff!important;
    border-top:1px solid #E7EEF2!important;
    box-shadow:0 18px 42px rgba(17,72,108,.14)!important;
    transform:translateY(-120%)!important;
    opacity:0!important;visibility:hidden!important;pointer-events:none!important;
    transition:transform .25s ease,opacity .25s ease,visibility .25s ease!important;
    z-index:5200!important;
  }
  .site-nav.open{
    transform:translateY(0)!important;
    opacity:1!important;visibility:visible!important;pointer-events:auto!important;
  }
  .nav-item{display:block!important;width:100%!important}
  .nav-parent{
    display:grid!important;
    grid-template-columns:1fr 44px!important;
    align-items:center!important;
    width:100%!important;
    border-bottom:1px solid #EDF2F5;
  }
  .nav-parent>a,.site-nav>a:not(.nav-cta){
    display:block!important;width:100%!important;
    padding:12px 0!important;
    color:#263B49!important;
    font-size:.92rem!important;font-weight:700!important;
  }
  .submenu-toggle{width:44px!important;height:44px!important;justify-self:end;font-size:1rem!important}
  .has-submenu.submenu-open .submenu-toggle{transform:rotate(180deg)}
  .submenu,.submenu-small{
    position:static!important;
    width:100%!important;
    display:none!important;
    opacity:1!important;visibility:visible!important;pointer-events:auto!important;
    transform:none!important;
    margin:0!important;padding:6px 0 9px 12px!important;
    border:0!important;border-left:2px solid #D9ECF8!important;
    border-radius:0!important;box-shadow:none!important;background:#fff!important;
  }
  .has-submenu.submenu-open>.submenu{display:grid!important}
  .submenu a{padding:8px 9px!important;font-size:.81rem!important}
  .nav-cta{width:100%!important;margin-top:10px!important}
}
@media(max-width:640px){
  .header-inner{min-height:70px!important}
  .logo img{height:46px!important}
  .site-nav{top:70px!important;max-height:calc(100dvh - 70px)!important}
}

/* Prevent legacy floating CTA duplication */
.mobile-sticky-cta,.mobile-cta,.sticky-cta,.floating-cta,[class*="mobile-sticky"]{
  display:none!important;
}
body{padding-bottom:0!important}

/* Footer */
.site-footer{
  border-top:4px solid var(--yellow)!important;
  background:#F6F8F9!important;
  padding:50px 0 24px!important;
}
.site-footer .footer-grid{
  display:grid!important;
  grid-template-columns:1.25fr .95fr .95fr 1fr!important;
  gap:32px!important;
  align-items:start!important;
}
.site-footer .footer-brand img{height:64px!important;width:auto!important;margin-bottom:14px!important}
.site-footer p,.site-footer a{font-size:.87rem;color:#425663}
.site-footer h4{margin:0 0 11px;color:var(--blue);font-size:1.02rem}
.site-footer a{display:block;margin:8px 0;font-weight:620}
.site-footer .bullet::before{content:"•";color:var(--yellow-dark);margin-right:9px}
.qbe-wrap{margin-top:16px}
.qbe-title{display:block;margin-bottom:8px;color:#4A5E6B;font-size:.78rem;font-weight:750}
.qbe-logo-final{display:block;width:142px!important;height:auto!important;max-width:70%;margin:0!important}
.footer-cta{display:inline-flex!important;color:#fff!important}
.site-footer .footer-bottom{
  display:flex!important;align-items:center!important;justify-content:space-between!important;
  gap:18px!important;flex-wrap:wrap!important;
  margin-top:30px!important;padding-top:18px!important;
  border-top:1px solid #D7E1E8!important;
  color:#70818B!important;font-size:.82rem!important;
}
.site-footer .footer-bottom a{
  display:inline-flex!important;margin:0!important;padding:0!important;
  color:#4E6472!important;font-size:.82rem!important;font-weight:600!important;
  background:none!important;box-shadow:none!important;text-decoration:none!important;
}
.site-footer .footer-bottom a:hover{color:var(--blue-dark)!important;text-decoration:underline!important}
@media(max-width:980px){
  .site-footer .footer-grid{grid-template-columns:repeat(2,1fr)!important}
}
@media(max-width:640px){
  .site-footer{padding:42px 0 22px!important}
  .site-footer .footer-grid{grid-template-columns:1fr!important;gap:24px!important}
  .site-footer .footer-bottom{
    flex-direction:column!important;align-items:flex-start!important;gap:10px!important
  }
  .site-footer .footer-bottom span{width:100%!important}
}

/* Neutralize all old global experimental carousel classes/attributes. */
@media(max-width:640px){
  [data-mobile-carousel="1"]{
    display:revert!important;
    overflow:visible!important;
    scroll-snap-type:none!important;
    padding:0!important;
    margin:0!important;
  }
  [data-mobile-carousel="1"]>*{
    width:auto!important;
    max-width:none!important;
    flex:none!important;
    scroll-snap-align:none!important;
  }
  .wiapro-mobile-progress{display:none!important}
}

/* V34 stabilité: le contenu n'est jamais masqué par les animations */
html .reveal, html.has-js .reveal, html.has-js .reveal.visible{opacity:1!important;transform:none!important;transition:none!important}

/* ===== V34 visual QA fixes ===== */
*,*::before,*::after{box-sizing:border-box}
@media(max-width:980px){
  .site-nav{box-sizing:border-box!important}
}
/* Hero d'accueil: texte toujours visible sur la diapositive active, même si les animations sont désactivées */
.hero .slide.active .kicker,
.hero .slide.active h1,
.hero .slide.active p,
.hero .slide.active .hero-actions{
  opacity:1!important;
  transform:none!important;
}
@media(prefers-reduced-motion:reduce){
  .hero .slide.active .kicker,
  .hero .slide.active h1,
  .hero .slide.active p,
  .hero .slide.active .hero-actions{opacity:1!important;transform:none!important}
}


/* ===== V35 MENU UX ===== */
@media(min-width:981px){
  .nav-parent>a,
  .site-nav>a:not(.btn){
    position:relative;
    transition:color .18s ease, background .18s ease;
    padding:10px 8px;
    border-radius:10px;
  }
  .nav-parent>a:hover,
  .site-nav>a:not(.btn):hover,
  .has-submenu:hover>.nav-parent>a{
    color:var(--blue-dark)!important;
    background:var(--blue-soft)!important;
  }
  .submenu-toggle{display:none!important}
}
@media(max-width:980px){
  .submenu-toggle{display:none!important}
  .nav-parent{
    display:block!important;
    border-bottom:1px solid #EDF2F5!important;
  }
  .nav-parent>a{
    position:relative;
    padding-right:32px!important;
  }
  .nav-parent>a::after{
    content:"+";
    position:absolute;
    right:4px;
    top:50%;
    transform:translateY(-50%);
    width:24px;height:24px;
    display:grid;place-items:center;
    border-radius:50%;
    background:#EEF7FD;
    color:var(--blue-dark);
    font-weight:800;
  }
  .has-submenu.submenu-open>.nav-parent>a::after{content:"−"}
  .has-submenu.submenu-open>.nav-parent>a{
    color:var(--blue-dark)!important;
    background:var(--blue-soft)!important;
    border-radius:10px;
    padding-left:10px!important;
  }
}


/* ===== V43 MOBILE MENU — lisible et fonctionnel ===== */
@media(max-width:980px){
  .burger{
    width:88px!important;
    height:44px!important;
    display:block!important;
    padding:0!important;
  }
  .burger::before{
    content:"Menu";
    position:absolute;
    left:0;
    top:50%;
    transform:translateY(-50%);
    color:#17212B;
    font-size:.78rem;
    font-weight:800;
    letter-spacing:.01em;
    text-transform:uppercase;
  }
  .burger span{
    width:28px!important;
    margin:5px 0 5px 55px!important;
  }
  .burger.open::before{content:"Fermer";}
}


/* ===== V46 — MENU DESKTOP STABLE ===== */
@media(min-width:981px){
  .site-nav .has-submenu,
  .wiapro-nav .has-submenu{
    position:relative!important;
  }

  .site-nav .has-submenu:hover > .submenu,
  .site-nav .has-submenu:focus-within > .submenu,
  .wiapro-nav .has-submenu:hover > .submenu,
  .wiapro-nav .has-submenu:focus-within > .submenu{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:translateY(0)!important;
    display:grid!important;
  }

  .site-nav .has-submenu:hover > .nav-parent > a,
  .site-nav .has-submenu:focus-within > .nav-parent > a,
  .wiapro-nav .has-submenu:hover > .nav-parent > a,
  .wiapro-nav .has-submenu:focus-within > .nav-parent > a{
    color:var(--blue-dark)!important;
    background:var(--blue-soft)!important;
    border-radius:10px!important;
  }

  .site-nav .submenu,
  .wiapro-nav .submenu{
    display:grid!important;
  }

  .site-nav .submenu a:hover,
  .wiapro-nav .submenu a:hover{
    color:var(--blue-dark)!important;
    background:var(--blue-soft)!important;
  }

  .submenu-toggle{display:none!important;}
}


/* ===== V49 COHERENCE GLOBALE ===== */

/* Navigation desktop : survol = ouverture + coloration */
@media(min-width:981px){
  .site-nav .has-submenu:hover > .submenu,
  .site-nav .has-submenu:focus-within > .submenu,
  .wiapro-nav .has-submenu:hover > .submenu,
  .wiapro-nav .has-submenu:focus-within > .submenu{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:none!important;
    display:grid!important;
  }
  .site-nav .has-submenu:hover > .nav-parent > a,
  .site-nav .has-submenu:focus-within > .nav-parent > a,
  .wiapro-nav .has-submenu:hover > .nav-parent > a,
  .wiapro-nav .has-submenu:focus-within > .nav-parent > a{
    color:var(--blue-dark)!important;
    background:var(--blue-soft)!important;
    border-radius:10px!important;
  }
}

/* Pas de texte barré / souligné accidentel dans la navigation */
.site-nav a,.wiapro-nav a,.nav-parent a{
  text-decoration:none!important;
}

/* Même style de bouton jaune partout */
.btn-yellow{
  background:#FFE451!important;
  color:#242424!important;
  background-image:none!important;
  border-color:#FFE451!important;
}

/* Cohérence des sous-titres de sections : affichage léger, non gras */
.section-head > p,
.section-head .section-subtitle,
.section-head .subtitle{
  font-weight:400!important;
}

/* Empêche les anciens placeholders texte sur les images */
.photo-box::before,
.project::before,
.stats::after{
  content:""!important;
  display:none!important;
}


/* ===== V52 SUBMENU DESKTOP — OUVERTURE AU SURVOL PARTOUT ===== */
@media(min-width:981px){
  .site-nav .has-submenu{position:relative!important}
  .site-nav .submenu{
    display:grid!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:translateY(7px)!important;
  }
  .site-nav .has-submenu:hover > .submenu,
  .site-nav .has-submenu:focus-within > .submenu{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:none!important;
  }
  .site-nav .has-submenu:hover > .nav-parent > a,
  .site-nav .has-submenu:focus-within > .nav-parent > a{
    color:var(--blue-dark)!important;
    background:var(--blue-soft)!important;
    border-radius:10px!important;
  }
}

/* Public social profiles recovered from the original site. */
.footer .footer-social{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:18px;max-width:100%}
.footer .footer-social a{display:inline-flex;align-items:center;min-height:44px;margin:0;font-size:.85rem;line-height:1.4;text-decoration:underline;text-underline-offset:3px}
.footer .footer-social a:focus-visible{outline:2px solid var(--blue);outline-offset:4px;border-radius:2px}

/* Contact hover: retain the blue background without the inherited crossing line. */
.site-nav > a[href$="/contact/"]::after{display:none!important}
