/* =====================================================
   CSS CRITIQUE - CHARGEMENT INSTANTANÉ
   ===================================================== */

/* Reset et base (critique) */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font:16px/1.55 "Inter",Arial,sans-serif;color:#1a1a1a;background:#fff;opacity:1!important}

/* Hero - Chargement prioritaire */
.hero{
  position:relative;
  min-height:820px;
  background-size:cover;
  background-position:center;
  background-color:#2c3e50; /* Fallback pendant chargement image */
}
.hero::before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.35);z-index:-1}
.hero__inner{max-width:720px;margin-left:1.5rem;padding-top:210px;color:#fff}
.hero__inner h1{font-size:clamp(2.8rem,5vw + 1rem,5.3rem);line-height:1.08;margin-bottom:2rem;color:#fff;text-align:left;white-space:normal;transition:none!important;transform:translateY(0)!important;opacity:1!important}
.hero__inner h1 span{white-space:nowrap}
.hero__inner p{font-size:1.25rem;margin-bottom:3rem;color:#fff;text-align:left;transition:none!important;transform:translateY(0)!important;opacity:1!important}

/* Navigation critique */
.nav{position:absolute;top:1.75rem;right:1.5rem;z-index:30}
.nav__wrapper{display:flex;align-items:center;gap:2.4rem}
.nav__links{display:flex;gap:2.4rem;font-weight:600;letter-spacing:.04em;font-size:1rem;list-style:none}
.nav__links a{color:#fff;text-decoration:none}
.nav__links a:hover{opacity:.75}

/* Boutons critiques */
.btn{display:inline-block;padding:1rem 2.8rem;border-radius:4rem;font-weight:600;transition:var(--transition);text-align:center;border:none;cursor:pointer;background:#f4c63d;color:#000;text-decoration:none}
.btn:hover{filter:brightness(1.1)}
.btn--large{padding:1.2rem 3.5rem;font-size:1.2rem}

/* Burger menu */
.burger{display:none;cursor:pointer;background:none;border:0;padding:0;flex-direction:column;gap:.25rem}
.burger span{width:26px;height:3px;background:#fff;display:block}

/* Responsive critique */
@media(max-width:768px){
  .hero{min-height:540px}
  .hero__inner{margin-left:0;padding-top:120px;text-align:center}
  .hero__inner h1{font-size:clamp(2rem,6vw,3rem);line-height:1.2;margin-bottom:1.5rem}
  .hero__inner p{font-size:1rem;margin-bottom:2rem}
  .burger{display:flex}
  .nav__wrapper{position:relative;justify-content:space-between;padding:0 1.5rem}
  .nav{left:0;right:0;width:100%}
  .burger{order:1}
  .nav__contact{order:3}
  .nav__links{position:fixed;top:0;right:0;height:100vh;width:75%;max-width:280px;background:#0e2143;border-radius:16px;box-shadow:-6px 0 20px rgba(0,0,0,.3);display:none;flex-direction:column;gap:1.8rem;padding:4rem 1.5rem;z-index:1000;transform:translateX(100%);transition:transform .35s ease}
  .nav__wrapper.open .nav__links{display:flex;transform:translateX(0)}
  .nav__wrapper.open::before {
    content: "";
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.4);
    z-index: 900;
    pointer-events: auto;
  }
  .nav__links a{color:#fff;font-size:1.25rem;font-weight:600}
  .nav__links a:hover{opacity:.8}
}

/* =====================================================
   CSS VARIABLES ET UTILITAIRES
   ===================================================== */

:root{
  --clr-primary:#f4c63d;
  --clr-accent:#7c3aed;
  --clr-gradient:linear-gradient(135deg,#060097 0%,#8204ff 64%,#c10fff 98%);
  --space-section:5.5rem;
  --container-width:1200px;
  --border-radius:8px;
  --transition:all .2s ease;
  --shadow:0 6px 18px rgba(0,0,0,.08)
}

/* =====================================================
   RESTE DU CSS EXISTANT (styles non-critiques)
   ===================================================== */

img{max-width:100%;display:block;height:auto}
a{text-decoration:none;color:inherit}
ul{list-style:none}

.container{max-width:var(--container-width);margin:auto;padding:0 1.5rem}
.grid-2{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:3rem}
.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:3rem}
.grid-4{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:3.2rem 2.4rem}
.center{text-align:center}
.bg-light{background:#f8f9fa}
.btn{display:inline-block;padding:1rem 2.8rem;border-radius:4rem;font-weight:600;transition:var(--transition);text-align:center;border:none;cursor:pointer}
.btn--primary{background:var(--clr-primary);color:#000}
.btn--primary:hover{filter:brightness(1.1)}
.btn--large{padding:1.2rem 3.5rem;font-size:1.2rem}
.nav{position:absolute;top:1.75rem;right:1.5rem;z-index:30}
.nav__wrapper{display:flex;align-items:center;gap:2.4rem}
.nav__links{display:flex;gap:2.4rem;font-weight:600;letter-spacing:.04em;font-size:1rem}
.nav__links a{color:#fff}
.nav__links a:hover{opacity:.75}
.burger{display:none;cursor:pointer;background:none;border:0;padding:0;flex-direction:column;gap:.25rem}
.burger span{width:26px;height:3px;background:#fff;display:block}
.legal-header{position:relative;z-index:1000;background:var(--clr-gradient);padding:1rem 0;min-height:120px;display:flex;align-items:center;box-shadow:0 2px 8px rgba(0,0,0,.03)}
.legal-header__container{width:100%;display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem}
.legal-header__logo{font-family:'Inter',Arial,sans-serif;font-weight:700;font-size:1.35rem;color:#fff;letter-spacing:.5px}
.legal-header__nav{display:flex;align-items:center;gap:2rem;background:none;box-shadow:none;position:static;padding:0}
.legal-header__nav a{color:#fff;font-size:1.05rem;font-family:'Inter',Arial,sans-serif;font-weight:bold;transition:var(--transition)}
.legal-header__nav a:hover{color:#e0e0e0}
.legal-header__nav .btn{padding:.75rem 1.5rem;font-size:.95rem}
.legal-header__nav a.btn--primary{color:#000;margin-left:2rem}
.legal-header .burger{display:none}
.hero{position:relative;min-height:820px;background-size:cover;background-position:center}
.hero::before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.35);z-index:-1}
.hero__inner{max-width:720px;margin-left:1.5rem;padding-top:210px}
.hero__inner h1{font-size:clamp(2.8rem,5vw + 1rem,5.3rem);line-height:1.08;margin-bottom:2rem;color:#fff;text-align:left;white-space:normal}
.hero__inner h1 span{white-space:nowrap}
.hero__inner p{font-size:1.25rem;margin-bottom:3rem;color:#fff;text-align:left}
.hero--contact{min-height:700px}
.hero--contact .hero__inner{text-align:center;margin:0 auto}
.hero--contact .hero__inner p{text-align:center}
.hero--contact .hero__inner h1{white-space:nowrap;text-align:center;font-size:clamp(3rem,6vw,4rem);margin-bottom:1rem}
.section{padding:var(--space-section) 0}
.section--services{padding:calc(var(--space-section) - 1rem) 0 4.2rem}
.section--services .container h2{text-align:center;margin-bottom:2.5rem}
.service img{margin-bottom:1rem}
.service h3{margin-top:1.5rem;margin-bottom:.45rem}#about{padding-top:3rem}#about h2{font-size:clamp(2.6rem,4vw + 1rem,4.2rem);line-height:1.1;margin-bottom:2rem}#whyus{padding:4rem 0 3rem}#whyus h2{margin-bottom:3rem;text-align:center}.pillar{text-align:center}.pillar img{display:block;margin:0 auto 1rem}.pillar h3{margin-bottom:.45rem}.cta-gradient{background:var(--clr-gradient);padding:6rem 1rem;color:#fff;text-align:center}.cta-gradient .btn{margin-top:2.2rem}.section--contact{padding:var(--space-section) 0}.contact-form{background:#fff;padding:2.5rem 2rem;border-radius:var(--border-radius);box-shadow:var(--shadow);max-width:560px;margin:-350px auto 4rem;display:grid;gap:1.5rem;position:relative;z-index:10}.contact-form label{display:flex;flex-direction:column;font-weight:600;font-size:.95rem}.contact-form input,.contact-form textarea{margin-top:.4rem;padding:.85rem 1rem;border:2px solid #e2e8f0;border-radius:6px;font:inherit;transition:var(--transition)}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--clr-primary)}.contact-form input:invalid:focus,.contact-form textarea:invalid:focus{border-color:#e63946}.contact-form .btn{width:max-content;align-self:center}.form-status{font-size:.9rem;text-align:center;margin-top:.8rem;transition:var(--transition)}.form-status.error{color:#e63946}.form-status.success{color:#2e7d32}.contact-cards{gap:2.5rem;text-align:center;border:1px solid #ccc;background-color:#f5f5f5;padding:1.5rem;border-radius:var(--border-radius);box-shadow:0 4px 6px rgba(0,0,0,.1)}.contact-cards article img{margin:0 auto 1rem}.contact-cards h3{margin-bottom:.3rem}.legal-title{text-align:center;width:100%;display:flex;justify-content:center;margin-top:40px}.legal-title h1{margin:0;padding:0;color:#333;font-size:2.5rem;font-weight:800;line-height:1.2;text-align:center;width:100%}.container.legal{background-color:#f5f5f5;padding:2rem;border-radius:var(--border-radius);box-shadow:0 4px 6px rgba(0,0,0,.1);max-width:800px;margin:2rem auto}.container.legal h2{font-size:1.5rem;margin:2rem 0 1rem 0;text-align:center}.container.legal p{margin-bottom:1.5rem;text-align:justify}footer{border-top:2px solid var(--clr-primary);padding:1.2rem;text-align:center;font-size:.9rem}footer a{color:#473cfd}@media(max-width:900px){.grid-2{grid-template-columns:1fr}}@media(max-width:768px){.hero{min-height:540px}.hero__inner{margin-left:0;padding-top:160px;text-align:center}.hero__inner h1{font-size:clamp(2rem,6vw,3rem);line-height:1.2;margin-bottom:1.5rem}.hero__inner p{font-size:1rem;margin-bottom:2rem}.hero--contact .hero__inner{padding-top:200px}.burger{display:flex}.nav__wrapper{position:relative}.nav{left:0;right:0;width:100%}.nav__wrapper{justify-content:space-between;padding:0 1.5rem}.burger{order:1}.nav__contact{order:3}.nav__links{position:fixed;top:0;right:0;height:100vh;width:75%;max-width:280px;background:#0e2143;border-radius:16px;box-shadow:-6px 0 20px rgba(0,0,0,.3);display:none;flex-direction:column;gap:1.8rem;padding:4rem 1.5rem;z-index:1000;transform:translateX(100%);transition:transform .35s ease}.nav__wrapper.open .nav__links{display:flex;transform:translateX(0)}.nav__wrapper.open::before{content:"";position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:900}.nav__links a{color:#fff;font-size:1.25rem;font-weight:600}.nav__links a:hover{opacity:.8}.legal-header__container{position:relative}.legal-header .burger{display:flex;flex-direction:column;gap:4px;background:none;border:none;padding:.5rem;cursor:pointer}.legal-header .burger span{width:24px;height:3px;background:#fff;display:block}.legal-header__nav{display:none;flex-direction:column;gap:1.5rem;background:#111;position:absolute;top:100%;right:0;width:100%;padding:2rem 1.5rem;box-sizing:border-box;z-index:1000}.legal-header__container.open .legal-header__nav{display:flex}.legal-header__container.open::before{content:"";position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:900}.contact-form{margin:-140px auto 4rem;padding:2rem 1.5rem}}@media(max-width:480px){.hero__inner{padding-top:180px!important}.hero__inner h1{font-size:clamp(1.6rem,8vw,2.5rem)}.hero__inner h1 span{white-space:normal}.container{padding:0 1rem}.hero--contact .hero__inner{padding-top:200px!important}}@media(min-width:769px){.legal-header__nav{display:flex!important}.legal-header .burger{display:none!important}}
