:root{
      --brand:#F26522; --brand-700:#d9571f;
      --ink:#0f172a; --text:#1f2937; --muted:#6b7280;
      --soft:#f7f8fa; --soft-2:#eef1f7;
      --dark:#0b0f1a; --dark-2:#121826;
      --radius:16px; --shadow:0 10px 30px rgba(0,0,0,.10);
      --max:1120px;
      --header-h:72px;

      /* Nouveau : variante très douce d’orange pour les lavis */
      --brand-soft:#fff2ea;
    }
    /* Accessible skip-link helpers: hidden visually but visible on keyboard focus */
    .sr-only{position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0}
    .sr-only-focusable:focus, .sr-only-focusable:active{position: static !important; width: auto; height: auto; margin: 0; overflow: visible; clip: auto; white-space: normal}

    *{box-sizing:border-box}
    html,body{max-width:100%;overflow-x:hidden}
    html{scroll-behavior:smooth}
    body{
      margin:0;color:var(--text);
      font-family:system-ui,-apple-system,Segoe UI,Inter,Roboto,Arial,sans-serif;
      line-height:1.6;-webkit-font-smoothing:antialiased;
      /* Orange un peu plus présent dans le fond global */
      background:
        radial-gradient(1200px 600px at -20% -10%, #ffe6d9 0%, transparent 62%),
        radial-gradient(1000px 600px at 120% 10%, #e7f0ff 0%, transparent 55%),
        linear-gradient(#ffffff, #fbfbfd);
      position:relative;
      padding-top:var(--header-h); /* espace sous header FIXE */
    }

    /* sera ajouté/retiré en JS pour éviter la bande blanche */
    body.sticky-active{ padding-bottom:calc(92px + env(safe-area-inset-bottom)); }

    /* Décor discret (+ orange) */
    .page-decor::before,.page-decor::after{
      content:""; position:fixed; z-index:-1; pointer-events:none;
      width:54vw; height:54vw; filter:blur(60px); opacity:.34; /* .28 -> .34 */
      background:radial-gradient(circle at 30% 30%, #ffd0b8 0 30%, transparent 60%);
      border-radius:50%; animation:float 18s ease-in-out infinite;
    }
    .page-decor::after{top:10vh; right:-20vw; background:radial-gradient(circle at 70% 70%, #c7d7ff 0 35%, transparent 60%); animation-duration:22s}
    @keyframes float{0%,100%{transform:translate3d(0,0,0)} 50%{transform:translate3d(0,-20px,0)}}
    @media (prefers-reduced-motion: reduce){.page-decor::before,.page-decor::after{animation:none}}

    img{max-width:100%;height:auto;display:block}
    a{color:var(--brand);text-decoration:none}
    a:hover{filter:brightness(.97)}
    a:focus-visible{outline:3px solid #ffd3c0; outline-offset:2px; border-radius:6px}
    .container{max-width:var(--max);margin:auto;padding-inline:20px}
    .section{padding:64px 20px; position:relative; scroll-margin-top:calc(var(--header-h) + 12px)}
    .alt{background:var(--soft)}
    .alt-mid{background:linear-gradient(180deg,#f6f7fb, #eef1f7)}
    .alt-dark{background:radial-gradient(80% 80% at 100% 0%, #182033, transparent 70%), var(--dark); color:#e5e7eb}
    .alt-dark .muted{color:#aab0bd}
    .alt-dark a{color:#ffb088; text-decoration:underline}
    .alt-dark a:hover{opacity:.9; filter:none}

    h1,h2,h3{line-height:1.2;margin:0 0 12px}
    h1{font-size:clamp(28px,5vw,44px)}
    h2{font-size:clamp(24px,3.2vw,34px)}
    h3{font-size:20px}
    p{margin:0 0 10px}
    ul{margin:0;padding-left:22px}
    .grid{display:grid;gap:24px}
    .card{background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:20px;border:1px solid #eef0f5}
    .muted{color:var(--muted)}

    /* Boutons */
    .btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 18px;border-radius:12px;font-weight:700;cursor:pointer;transition:.25s;border:0;min-height:44px}
    .btn-primary{background:linear-gradient(135deg,var(--brand),#ff7e3f);color:#fff}
    .btn-primary:hover{filter:brightness(.98); transform:translateY(-1px)}
    .btn-outline{background:#fff;border:1px solid #d1d5db;color:var(--ink)}
    .btn:focus-visible{outline:3px solid #ffd3c0; outline-offset:2px}

    /* HEADER (fixed + glass + menu) */
    .site-header{
      position:fixed; top:0; left:0; right:0; z-index:100;
      height:var(--header-h);
    }
    .site-header.glass{
      background:rgba(255,255,255,.55);
      -webkit-backdrop-filter:saturate(160%) blur(14px);
      backdrop-filter:saturate(160%) blur(14px);
      border-bottom:1px solid rgba(255,255,255,.35);
      transition:background .25s ease, box-shadow .25s ease, border-color .25s ease;
    }
    .site-header.is-scrolled{
      background:rgba(255,255,255,.78);
      border-color:rgba(0,0,0,.06);
      box-shadow:0 6px 20px rgba(0,0,0,.06);
    }
    .nav{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:var(--header-h);padding:10px 0}
    .brand{display:flex;align-items:center;gap:12px}
    .brand img{height:60px;width:auto}

    /* Nav desktop */
    .nav-links{display:flex; align-items:center; gap:18px}
    .nav-links a{color:var(--ink); font-weight:600}
    .nav-links a.btn-primary{color:#fff}
    .nav-links a:hover{opacity:.85}

    /* Hamburger (3 barres centrées, animation X) */
    .nav-toggle{
      display:inline-flex; /* visible <=1024px (hidden again on desktop via media query below) */
      width:44px; height:44px;
      border:1px solid #e5e7eb;
      background:rgba(255,255,255,.7);
      border-radius:10px;
      box-shadow:0 1px 2px rgba(0,0,0,.04);
      line-height:0; padding:0; margin:0;
      align-items:center; justify-content:center;
    }
    @media(min-width:1025px){ .nav-toggle{ display:none !important; } }
    .nav-toggle:hover{background:rgba(255,255,255,.9)}
    .nav-toggle:focus-visible{outline:3px solid #ffd3c0; outline-offset:2px}

    /* Responsive header: mobile menu only under 1025px */
    @media (max-width:1024px){
      .nav-links{ display:none; }
    }
    @media (min-width:1025px){
      .mobile-menu{ display:none !important; }
    }

    .burger{
      position:relative; display:block;
      width:26px; height:3px;
      background:var(--ink); border-radius:3px;
      transition:transform .2s ease, background .2s ease;
      transform-origin:center;
    }
    .burger::before,.burger::after{
      content:""; position:absolute; left:0; right:0;
      height:3px; background:var(--ink); border-radius:3px;
      transition:transform .2s ease, opacity .2s ease, background .2s ease;
    }
    .burger::before{ transform:translateY(-7px); }
    .burger::after{  transform:translateY(7px); }

    .nav-toggle.is-open .burger{ transform:rotate(45deg); }
    .nav-toggle.is-open .burger::before{ opacity:0; }
    .nav-toggle.is-open .burger::after{ transform:translateY(0) rotate(-90deg); }
    .site-header.is-scrolled .nav-toggle{ background:rgba(255,255,255,.85); }

    /* Menu mobile (slide) */
    .mobile-menu{
      position:fixed; top:var(--header-h); left:0; right:0;
      /* Fond semi-transparent requis pour que backdrop-filter soit perceptible */
      background:rgba(255,255,255,.22);
      -webkit-backdrop-filter:saturate(180%) blur(0px);
      backdrop-filter:saturate(180%) blur(0px);
      border-bottom:1px solid rgba(255,255,255,.35);
      box-shadow:0 10px 30px rgba(0,0,0,.08);
      transform:translateY(-8px);
      opacity:0; pointer-events:none;
      will-change:opacity, transform, -webkit-backdrop-filter, backdrop-filter;
      transition:opacity .2s ease, transform .2s ease, backdrop-filter .2s ease, -webkit-backdrop-filter .2s ease;
      padding:10px 16px calc(10px + env(safe-area-inset-bottom));
      z-index:99;
    }
    .mobile-menu.open{
      opacity:1; transform:translateY(0); pointer-events:auto;
      background:rgba(255,255,255,.58);
      -webkit-backdrop-filter:saturate(180%) blur(20px);
      backdrop-filter:saturate(180%) blur(20px);
    }
    /* Fallback for browsers without backdrop-filter */
    @supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
      .mobile-menu{ background:rgba(255,255,255,.92); }
    }
    .mobile-menu-inner{display:grid; gap:10px}
    .mobile-menu-inner a{padding:12px 10px; border-radius:10px; font-weight:600; color:var(--ink)}
    .mobile-menu-inner a.btn-primary{color:#fff}
    .mobile-menu-inner a:hover{background:rgba(0,0,0,.04)}

    /* HERO */
    .hero{display:grid;gap:28px;align-items:center}
    .hero-cta{display:flex;gap:12px;flex-wrap:wrap}
    .hero-media{border-radius:18px;overflow:hidden; box-shadow:var(--shadow)}
    .hero-media img, .hero-media video{width:100%;max-height:440px;object-fit:cover;display:block}

    /* Nouveau — voile orangé discret pour le hero */
    .hero-orange{ position:relative; }
    .hero-orange::before{
      content:""; position:absolute; inset:-24px 0 -8px; z-index:-1;
      background:
        radial-gradient(900px 420px at 10% 18%, rgba(242,101,34,.10) 0%, transparent 60%),
        radial-gradient(700px 380px at 95% 8%, rgba(242,101,34,.08) 0%, transparent 60%);
      pointer-events:none;
    }

    /* Nouveau — lavis doux d’orange pour sections claires ciblées */
    .brand-wash{ position:relative; }
    .brand-wash::before{
      content:""; position:absolute; inset:0; z-index:0;
      background:linear-gradient(180deg, rgba(242,101,34,.05), rgba(242,101,34,.03));
      pointer-events:none;
    }
    .brand-wash > *{ position:relative; z-index:1; }

    /* Services */
    .services{grid-template-columns:repeat(3,1fr)}

  /* Hero stacked variant: image centered above text */
  .hero-stack{display:flex;flex-direction:column;gap:18px;align-items:center;text-align:center}
  .hero-stack .hero-media{width:100%;max-width:1100px}
  .hero-stack .hero-media img{width:100%;height:auto;border-radius:16px;object-fit:cover}
  .hero-stack .hero-text{max-width:920px}

  /* Ensure hero-stack takes precedence over any desktop 2-col rules */
  .hero-stack{grid-column:1/-1}

  /* CTA in the dark card on about page: keep orange background with white text */
  .alt-dark .card a.btn.btn-primary{background:linear-gradient(135deg,var(--brand),#ff7e3f);color:#fff;border-radius:12px;padding:10px 16px;box-shadow:0 8px 28px rgba(242,101,34,.12);text-decoration:none}
  .alt-dark .card a.btn.btn-primary:hover{filter:brightness(.98);transform:translateY(-1px)}
    .service{display:flex;gap:12px;align-items:flex-start;transition:.25s}
    .service i{font-style:normal;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--soft);border:1px solid #ececec;border-radius:12px;min-width:44px}
    .service:hover{transform:translateY(-2px)}

    /* Galerie + vidéo */
    .gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
    .gallery .shot{border-radius:14px;overflow:hidden;box-shadow:var(--shadow);transition:transform .25s}
    .gallery .shot:hover{transform:translateY(-3px)}

    /* Before/After slider (gallery) */
    .compare{position:relative;width:100%;aspect-ratio:3/2;overflow:hidden;background:#fff;cursor:ew-resize;user-select:none;touch-action:pan-y}
    .compare.is-dragging{cursor:grabbing}
    .compare img{display:block}
    .compare > img,
    .compare__before img{position:absolute !important;inset:0;width:100%;height:100%;object-fit:cover}
    /* Keep the before image fixed: clip the layer instead of resizing it */
    .compare__before{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;clip-path:inset(0 calc(100% - var(--compare-pos, 50%)) 0 0)}

    /* Fallback for older browsers without clip-path */
    @supports not (clip-path: inset(0 0 0 0)){
      .compare__before{clip-path:none;width:var(--compare-pos, 50%)}
    }
    .compare__range{
      position:absolute !important;
      inset:0;
      width:100%;
      height:100%;
      opacity:0 !important;
      cursor:ew-resize;
      -webkit-appearance:none;
      appearance:none;
      background:transparent;
      border:0;
      padding:0;
      margin:0;
    }
    .compare__handle{position:absolute;top:0;bottom:0;left:var(--compare-pos, 50%);transform:translateX(-50%);width:2px;background:rgba(255,255,255,.9);box-shadow:0 0 0 1px rgba(0,0,0,.18);pointer-events:none}
    .compare__handle::before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:34px;height:34px;border-radius:999px;background:#fff;border:2px solid var(--brand);box-shadow:0 10px 30px rgba(0,0,0,.16)}

    @media (max-width:767px){
      .compare{aspect-ratio:4/3}
      .compare__handle::before{width:30px;height:30px}
    }
    .video-wrap{aspect-ratio:16/9;position:relative;border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}
    .video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

    /* Section vidéo (portrait 720x900 => 4/5) */
    .video-split{display:grid;gap:24px;align-items:center;grid-template-columns:1.15fr .85fr}
    .portrait-video{width:100%;max-width:420px;margin-left:auto;border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}
    .portrait-video .hero-video-trigger video{width:100%;height:auto;display:block;aspect-ratio:4/5;object-fit:cover}

    /* Villes */
    .cities{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
    .city{background:#fff;border:1px solid #eee;border-radius:12px;padding:12px;min-height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;user-select:none}

    /* Témoignages */
    .tms{display:grid;gap:18px;grid-template-columns:repeat(3,1fr)}
    .tm{
      position:relative;
      background:linear-gradient(#0f1423,#0f1423) padding-box, linear-gradient(135deg,#ff8a4c,#7c3aed) border-box;
      border:1px solid transparent;border-radius:16px;padding:20px; box-shadow:var(--shadow);
      transition:transform .25s, box-shadow .25s; color:#eef2ff;
    }
    .tm::before{content:"“"; position:absolute; left:14px; top:-6px; font-size:52px; line-height:1; color:#ff8e55; opacity:.28}
    .tm:hover{transform:translateY(-3px); box-shadow:0 14px 38px rgba(0,0,0,.12)}
    .tm p{color:#f3f4f6}

    /* Variante de cartes "tm" pour contenu image (utilisée pour le test Avant/Après) */
    .tm.tm-image{padding:0; overflow:hidden}
    .tm.tm-image::before{content:none}
    .tm.tm-image img{width:100%; height:240px; object-fit:cover; display:block}

    /* Reveal fade-in (used by IntersectionObserver in site.js) */
    .reveal{opacity:0; transform:translateY(8px); transition:opacity .6s ease, transform .6s ease}
    .reveal.active{opacity:1; transform:translateY(0)}

    /* Hero buttons: center under text and improve spacing */
    .hero-stack .hero-cta{justify-content:center; margin-top:18px}
    .hero-stack .hero-cta .btn{min-width:220px}
    .hero-stack .hero-cta .btn + .btn{margin-left:12px}

    /* Contact */
    .contact-grid{
      display:grid;
      grid-template-columns:1fr 1fr;
      grid-template-rows:auto auto;
      grid-template-areas:
        "info form"
        "gap  form";
      column-gap:24px; row-gap:24px;
    }
    .info-card{grid-area:info; align-self:start;}
    .form-card{grid-area:form;}
    .card.compact{padding:16px}
    .card.compact ul{margin:0}
    .card.compact p{margin:0 0 8px}

    /* Improvements for contact page visuals */
    /* Make the info card text more readable and the map prominent */
    .info-card{padding:22px; border-radius:20px; background:linear-gradient(180deg,#ffffff,#fbfbfd);}
    .info-card h2{font-size:20px;margin-bottom:6px}
    .info-card address ul{margin:8px 0 0;padding-left:18px;color:var(--text)}
    .info-card li{margin:6px 0}

    /* Map container: ensure consistent aspect ratio and soft border */
  .info-card iframe{width:100%;height:220px;border-radius:12px;border:1px solid rgba(14,20,32,.06);box-shadow:0 8px 24px rgba(15,23,42,.06);object-fit:cover;display:block}
  .map-card{padding:14px 18px}
  .map-wrap{position:relative;overflow:hidden;border-radius:12px;height:220px}
  .map-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

    /* Form card styling: use slightly stronger elevation and clearer inputs */
  .form-card{padding:18px;border-radius:18px;background:linear-gradient(180deg,#ffffff,#ffffff);box-shadow:0 14px 36px rgba(12,18,28,.06);border:1px solid #eef1f6}
    .form-card h2{margin-bottom:8px}
    form{gap:14px}
    .form-row{display:block}
    input,textarea,select{padding:14px;border-radius:12px;border:1px solid #e6e9ef;background:linear-gradient(180deg,#fff,#fbfbfd)}
    input:focus,textarea:focus,select:focus{box-shadow:0 6px 18px rgba(15,23,42,.06);border-color:var(--brand-700);outline:none}

    /* Make primary button wider and friendlier */
    .btn-primary{padding:12px 20px;border-radius:999px;font-size:15px;box-shadow:0 8px 28px rgba(242,101,34,.12)}
    .btn-primary:active{transform:translateY(0)}

    /* Success message visible after form submit (we'll toggle .visible in JS) */
    .success{display:none;margin-top:12px;border:1px solid #d9f3e7;background:#f3fcf8;color:#0a6b3e;border-radius:12px;padding:14px}
    .success.visible{display:block}

    /* Smaller labels and helper micro-spacing */
  label{display:block;font-weight:700;font-size:14px;margin-bottom:6px}
    .form-consent{grid-template-columns:24px 1fr;gap:12px}

    /* mobile tweaks for contact page */
    @media(max-width:767px){
      .info-card iframe{height:180px}
      .btn-primary{width:100%}
      .form-card{padding:18px}
      .section{padding:28px 14px}
    }

    /* Dynamic two-column contact layout */
    .contact-grid{display:grid;grid-template-columns:1fr;gap:28px}
    .contact-left,.contact-right{width:100%}

    @media(min-width:768px){
      .contact-grid{grid-template-columns:1fr 460px;align-items:start}
      .contact-left{padding-right:8px}
      .contact-right{padding-left:8px}
    }

    /* Sticky form on desktop for quick submission */
    .sticky-form{position:relative}
    @media(min-width:1025px){
      .sticky-form{position:sticky;top:96px}
      .contact-grid{grid-template-columns:1fr 420px}
      .form-card{width:100%}
    }

/* Strong override: ensure hero-stack ALWAYS stacks image above text (fixes Chrome desktop layout) */
.hero.hero-stack{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  text-align:center !important;
}
.hero.hero-stack .hero-media{order:0;width:100% !important;max-width:1100px}
.hero.hero-stack .hero-text{order:1;width:100% !important;}

    form{display:grid;gap:12px}
    .form-row{width:100%}
    label{font-weight:600}
    input,textarea,select{width:100%;padding:12px;border:1px solid #ddd;border-radius:10px;background:#fff}
    input:not([type="checkbox"]):not([type="radio"]):focus,
    textarea:focus, select:focus{outline:2px solid var(--brand);border-color:var(--brand)}
    input[type="checkbox"]{accent-color:var(--brand)}
    .success{display:none;margin-top:12px;border:1px solid #d9f3e7;background:#f3fcf8;color:#0a6b3e;border-radius:12px;padding:14px}

    .form-consent{
      display:grid; grid-template-columns:20px 1fr; gap:10px; align-items:start; width:100%;
    }
    .form-consent input[type="checkbox"]{margin-top:3px}
    .form-consent label{margin:0; font-weight:400; color:var(--muted); line-height:1.4; overflow-wrap:anywhere}

    /* === Footer revisité === */
    footer{
      background:
        radial-gradient(120% 120% at 80% -10%, #1f2a44 0%, rgba(18,24,38,0) 60%),
        linear-gradient(180deg,#101623 0%, #0c1220 100%);
      color:#cbd5e1;
      border-top:1px solid rgba(255,255,255,.06);
    }
    .footer-grid{
      display:grid; gap:24px;
      grid-template-columns:2fr 1fr 1.2fr;
      align-items:start;
    }
    .foot-brand{display:flex; align-items:center; gap:14px}
    .foot-brand .title{font-weight:800; font-size:18px; color:#e5e7eb}
    .foot-text{color:#9aa4b2; margin-top:6px}
    .foot-links, .foot-contact{list-style:none; padding:0; margin:0}
    .foot-links li, .foot-contact li{margin:8px 0}
    .foot-links a{color:#e5e7eb}
    .foot-links a:hover{opacity:.92}
    .chips{display:flex; flex-wrap:wrap; gap:8px; margin-top:8px}
    .chip{
      padding:6px 10px; border-radius:999px; font-size:13px;
      color:#d6e0ea; border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.04);
    }
    .foot-bottom{
      margin-top:28px; padding-top:16px;
      border-top:1px dashed rgba(255,255,255,.12);
      display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
    }
    .made-by{
      display:inline-flex; align-items:center; gap:8px;
      padding:8px 12px; border-radius:999px; font-weight:700; color:#0c1220;
      background:
        linear-gradient(#ffffff,#ffffff) padding-box,
        linear-gradient(90deg, #ff9a5a, #ffd28f, #7ab8ff, #b994ff, #ff9a5a) border-box;
      border:2px solid transparent;
      position:relative;
    }
    .made-by span{
      background:linear-gradient(90deg,#0c1220,#334155,#0c1220);
      -webkit-background-clip:text;background-clip:text;
      color:transparent; background-size:200% 100%;
      animation:shimmer 3.8s ease-in-out infinite;
    }
    @keyframes shimmer{0%{background-position:0% 0}50%{background-position:100% 0}100%{background-position:0% 0}}
    .made-by a{color:inherit; text-decoration:none}
    .made-by a:hover{opacity:.9}
    .to-top{color:#9fb4ff; text-decoration:none; font-weight:700}
    .to-top:hover{opacity:.9}

    /* RESPONSIVE */
    @media (max-width:1024px){
      .footer-grid{grid-template-columns:1fr 1fr}
      .nav-links{display:none}
      .nav-toggle{display:inline-flex;}
      .services{grid-template-columns:1fr 1fr}
      .gallery{grid-template-columns:1fr 1fr}
      .cities{grid-template-columns:1fr 1fr}
      .video-split{grid-template-columns:1fr}
      .portrait-video{margin:10px auto 0}
      .contact-grid{
        grid-template-columns:1fr;
        grid-template-rows:auto auto;
        grid-template-areas:
          "info"
          "form";
      }
    }
    @media(min-width:768px){.hero{grid-template-columns:1.15fr .85fr}}
    @media (max-width:767px){
      .section{padding:40px 16px}
      .footer-grid{grid-template-columns:1fr}
      header .container{
        padding-left: calc(16px + env(safe-area-inset-left));
        padding-right: calc(16px + env(safe-area-inset-right));
      }
      .nav{min-height:64px}
      .brand img{height:46px}            /* logo plus compact */
      .hero{grid-template-columns:1fr}
      h1{font-size:26px}
      h2{font-size:22px}
      .hero-cta .btn{width:100%}
      .nav .btn{padding:8px 12px;font-size:14px;border-radius:8px}
      .services,.gallery,.cities,.tms{grid-template-columns:1fr}
      input,select,textarea{font-size:16px}
    }

    /* ===== Sticky CTA (corrigée) ===== */
    .stickybar{
      position:fixed;
      left:12px; right:12px;
      bottom:calc(12px + env(safe-area-inset-bottom));
      background:#ffffffee;
      backdrop-filter:blur(6px);
      border:1px solid #eceff3;
      box-shadow:0 12px 30px rgba(0,0,0,.16);
      border-radius:14px;
      display:none;        /* desktop: off */
      gap:10px; padding:10px;
      z-index:1000;
      transform:translateY(0);
      transition:transform .25s ease, opacity .25s ease;
    }
    .stickybar .btn{flex:1}
    .stickybar.off{ transform:translateY(140%); opacity:0; pointer-events:none; }
    @media (max-width:767px){
      .stickybar{
        display:flex;
        left:10px; right:10px;
        bottom:calc(10px + env(safe-area-inset-bottom));
        padding:8px;
        gap:8px;
        border-radius:12px;
      }
      .stickybar .btn{padding:10px 12px; font-size:14px; border-radius:10px; min-height:42px; text-align:center; line-height:1.15}
    }

    /* ===== Cookie consent ===== */
    .cookie-consent[hidden],
    .cookie-consent.is-hidden{
      display:none !important;
    }
    .cookie-consent{
      position:fixed;
      left:12px;
      right:12px;
      bottom:calc(12px + env(safe-area-inset-bottom));
      z-index:1100;
    }

    @media (min-width:768px){
      /* card centered, not full width (template-like) */
      .cookie-consent{
        left:50%;
        right:auto;
        width:min(520px, calc(100vw - 24px));
        transform:translateX(-50%);
      }
    }
    .cookie-consent__inner{
      position:relative;
      overflow:hidden;
      padding:0;
      border-radius:14px;
      border:1px solid #eceff3;
      background:#ffffffee;
      backdrop-filter:blur(6px);
      box-shadow:0 12px 30px rgba(0,0,0,.16);
    }

    .cookie-consent__top{
      height:72px;
      background:linear-gradient(135deg,var(--brand),#ff7e3f);
    }

    .cookie-consent__body{
      padding:14px 16px 16px;
      text-align:center;
    }
    .cookie-consent__icon{
      width:112px;
      height:112px;
      margin:-58px auto 10px;
      border-radius:999px;
      display:flex;
      align-items:center;
      justify-content:center;
      background:#fff;
      border:1px solid #eceff3;
      box-shadow:0 12px 30px rgba(0,0,0,.16);
    }
    .cookie-consent__icon img{width:96px; height:96px; object-fit:contain; display:block}
    .cookie-consent__title{display:block; font-size:18px}
    .cookie-consent__body p{margin:8px 0 0}

    .cookie-consent__actions{display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin-top:14px}

    /* (options removed — only accept/reject buttons remain) */

    @media (max-width:767px){
      /* mobile: centered modal-like overlay; click outside to dismiss */
      .cookie-consent{
        left:0;
        right:0;
        top:0;
        bottom:0;
        padding:18px;
        display:flex;
        align-items:center;
        justify-content:center;
        background:rgba(0,0,0,.35);
      }
      .cookie-consent__inner{width:min(520px, 100%)}
      .cookie-consent__actions{flex-wrap:nowrap}
      .cookie-consent__actions .btn{width:auto; flex:1; min-width:0}
      .cookie-consent__actions [data-cookie-action="accept-all"]{order:0}
      .cookie-consent__actions [data-cookie-action="reject-all"]{order:1}
    }

/* === A PROPOS ADDITIONS === */
:root{
      --brand:#F26522; --brand-700:#d9571f;
      --ink:#0f172a; --text:#1f2937; --muted:#6b7280;
      --soft:#f7f8fa; --soft-2:#eef1f7;
      --dark:#0b0f1a; --dark-2:#121826;
      --radius:16px; --shadow:0 10px 30px rgba(0,0,0,.10);
      --max:1120px;
      --header-h:72px;
      --brand-soft:#fff2ea;
    }
    *{box-sizing:border-box}
    html,body{max-width:100%;overflow-x:hidden}
    html{scroll-behavior:smooth}
    body{
      margin:0;color:var(--text);
      font-family:system-ui,-apple-system,Segoe UI,Inter,Roboto,Arial,sans-serif;
      line-height:1.6;-webkit-font-smoothing:antialiased;
      background:
        radial-gradient(1200px 600px at -20% -10%, #ffe6d9 0%, transparent 62%),
        radial-gradient(1000px 600px at 120% 10%, #e7f0ff 0%, transparent 55%),
        linear-gradient(#ffffff, #fbfbfd);
      position:relative;
      padding-top:var(--header-h);
    }
    .page-decor::before,.page-decor::after{
      content:""; position:fixed; z-index:-1; pointer-events:none;
      width:54vw; height:54vw; filter:blur(60px); opacity:.34;
      background:radial-gradient(circle at 30% 30%, #ffd0b8 0 30%, transparent 60%);
      border-radius:50%; animation:float 18s ease-in-out infinite;
    }
    .page-decor::after{top:10vh; right:-20vw; background:radial-gradient(circle at 70% 70%, #c7d7ff 0 35%, transparent 60%); animation-duration:22s}
    @keyframes float{0%,100%{transform:translate3d(0,0,0)} 50%{transform:translate3d(0,-20px,0)}}
    @media (prefers-reduced-motion: reduce){.page-decor::before,.page-decor::after{animation:none}}

    img{max-width:100%;height:auto;display:block}
    a{color:var(--brand);text-decoration:none}
    a:hover{filter:brightness(.97)}
    a:focus-visible{outline:3px solid #ffd3c0; outline-offset:2px; border-radius:6px}
    .container{max-width:var(--max);margin:auto;padding-inline:20px}
    .section{padding:64px 20px; position:relative; scroll-margin-top:calc(var(--header-h) + 12px)}
    .alt{background:var(--soft)}
    .alt-mid{background:linear-gradient(180deg,#f6f7fb, #eef1f7)}
    .alt-dark{background:radial-gradient(80% 80% at 100% 0%, #182033, transparent 70%), var(--dark); color:#e5e7eb}
    .alt-dark .muted{color:#aab0bd}
    .alt-dark a{color:#ffb088; text-decoration:underline}
    .alt-dark a:hover{opacity:.9; filter:none}

    h1,h2,h3{line-height:1.2;margin:0 0 12px}
    h1{font-size:clamp(28px,5vw,44px)}
    h2{font-size:clamp(24px,3.2vw,34px)}
    h3{font-size:20px}
    p{margin:0 0 10px}
    ul{margin:0;padding-left:22px}
    .grid{display:grid;gap:24px}
    .card{background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:20px;border:1px solid #eef0f5}
    .muted{color:var(--muted)}

    .btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 18px;border-radius:12px;font-weight:700;cursor:pointer;transition:.25s;border:0;min-height:44px}
    .btn-primary{background:linear-gradient(135deg,var(--brand),#ff7e3f);color:#fff}
    .btn-primary:hover{filter:brightness(.98); transform:translateY(-1px)}
    .btn-outline{background:#fff;border:1px solid #d1d5db;color:var(--ink)}
    .btn:focus-visible{outline:3px solid #ffd3c0; outline-offset:2px}

    /* Header */
    .site-header{position:fixed; top:0; left:0; right:0; z-index:100; height:var(--header-h)}
    .site-header.glass{background:rgba(255,255,255,.55); -webkit-backdrop-filter:saturate(160%) blur(14px); backdrop-filter:saturate(160%) blur(14px); border-bottom:1px solid rgba(255,255,255,.35)}
    .site-header.is-scrolled{background:rgba(255,255,255,.78); border-color:rgba(0,0,0,.06); box-shadow:0 6px 20px rgba(0,0,0,.06)}
    .nav{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:var(--header-h);padding:10px 0}
    .brand{display:flex;align-items:center;gap:12px}
    .brand img{height:60px;width:auto}
    .nav-links{display:flex; align-items:center; gap:18px}
    .nav-links a{color:var(--ink); font-weight:600}
    .nav-links a.btn-primary{color:#fff}
    .nav-links a:hover{opacity:.85}

    /* Mobile nav button (hamburger) */
    .nav-toggle{
      display:inline-flex;
      width:44px; height:44px;
      border:1px solid #e5e7eb;
      background:rgba(255,255,255,.7);
      border-radius:10px;
      box-shadow:0 1px 2px rgba(0,0,0,.04);
      line-height:0; padding:0; margin:0;
      align-items:center; justify-content:center;
    }
    @media(min-width:1025px){ .nav-toggle{ display:none !important; } }

    @media (max-width:1024px){
      .nav-links{ display:none; }
    }
    @media (min-width:1025px){
      .mobile-menu{ display:none !important; }
    }

    /* Hero local */
    .hero{display:grid;gap:28px;align-items:center}
    .hero-cta{display:flex;gap:12px;flex-wrap:wrap}
    .hero-media{border-radius:18px;overflow:hidden; box-shadow:var(--shadow)}
    .hero-media img, .hero-media video{width:100%;max-height:520px;object-fit:cover;display:block}

    /* Overlays orange réutilisés */
    .hero-orange{ position:relative; }
    .hero-orange::before{
      content:""; position:absolute; inset:-24px 0 -8px; z-index:-1;
      background:
        radial-gradient(900px 420px at 10% 18%, rgba(242,101,34,.10) 0%, transparent 60%),
        radial-gradient(700px 380px at 95% 8%, rgba(242,101,34,.08) 0%, transparent 60%);
      pointer-events:none;
    }
    .brand-wash{ position:relative; }
    .brand-wash::before{
      content:""; position:absolute; inset:0; z-index:0;
      background:linear-gradient(180deg, rgba(242,101,34,.05), rgba(242,101,34,.03));
      pointer-events:none;
    }
    .brand-wash > *{ position:relative; z-index:1; }

    /* Sections spécifiques */
    .about-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:24px; align-items:center}
    .values{display:grid; grid-template-columns:repeat(4,1fr); gap:14px}
    .value{background:#fff; border:1px solid #eef0f5; border-radius:16px; padding:16px; box-shadow:var(--shadow)}
    .value h3{margin-bottom:6px; font-size:18px}

    .why{display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:center}
    .why .card{height:100%}

    footer{
      background:
        radial-gradient(120% 120% at 80% -10%, #1f2a44 0%, rgba(18,24,38,0) 60%),
        linear-gradient(180deg,#101623 0%, #0c1220 100%); color:#cbd5e1; border-top:1px solid rgba(255,255,255,.06)
    }
    .footer-grid{display:grid; gap:24px; grid-template-columns:2fr 1fr 1.2fr; align-items:start}
    .foot-brand .title{font-weight:800; font-size:18px; color:#e5e7eb}
    .foot-text{color:#9aa4b2; margin-top:6px}
    .chips{display:flex; flex-wrap:wrap; gap:8px; margin-top:8px}
    .chip{padding:6px 10px; border-radius:999px; font-size:13px; color:#d6e0ea; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.04)}
    .foot-bottom{margin-top:28px; padding-top:16px; border-top:1px dashed rgba(255,255,255,.12); display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap}
    .made-by{display:inline-flex; align-items:center; gap:8px; padding:8px 12px; border-radius:999px; font-weight:700; color:#0c1220; background:linear-gradient(#ffffff,#ffffff) padding-box, linear-gradient(90deg, #ff9a5a, #ffd28f, #7ab8ff, #b994ff, #ff9a5a) border-box; border:2px solid transparent}

    /* Responsive */
    @media(max-width:1024px){
      .about-grid{grid-template-columns:1fr}
      .why{grid-template-columns:1fr}
      .values{grid-template-columns:1fr 1fr}
      .nav-links{gap:14px; display:none}
    }
    @media(max-width:767px){
      .section{padding:40px 16px}
      h1{font-size:26px} h2{font-size:22px}
      .values{grid-template-columns:1fr}
      .hero-media img, .hero-media video{max-height:360px}
      .footer-grid{grid-template-columns:1fr}
      .brand img{height:46px}
      .foot-bottom{justify-content:center}
      .made-by{margin-inline:auto}
    }

    /* Homepage hero media: force 16:9 (1280x720)
       Placed at the end to avoid being overridden by later duplicated .hero-media rules. */
    .hero-media.hero-media-16x9{aspect-ratio:16/9}
    .hero-media.hero-media-16x9 > img,
    .hero-media.hero-media-16x9 > video{height:100%; max-height:none !important}

    /* Hero video lightbox (home) */
    .hero-video-trigger{
      display:block;
      width:100%;
      height:100%;
      padding:0;
      border:0;
      background:transparent;
      cursor:pointer;
    }
    .hero-video-trigger:focus-visible{outline:3px solid #ffd3c0; outline-offset:3px; border-radius:18px}
    .hero-video-trigger video{width:100%; height:100%; display:block; object-fit:cover}

    /* In dark sections, keep primary buttons readable (white text, no underline) */
    .alt-dark a.btn.btn-primary{color:#fff; text-decoration:none}
    .alt-dark a.btn.btn-primary:hover{opacity:1}

    .video-modal[hidden]{display:none}
    .video-modal{
      position:fixed;
      inset:0;
      z-index:1000;
      display:grid;
      place-items:center;
      padding:16px;
    }
    .video-modal-backdrop{
      position:absolute;
      inset:0;
      background:color-mix(in srgb, var(--dark) 72%, transparent);
    }
    .video-modal-panel{
      position:relative;
      width:min(980px, 100%);
      border-radius:var(--radius);
      overflow:hidden;
      box-shadow:var(--shadow);
      background:#fff;
      border:1px solid rgba(0,0,0,.06);
    }
    .video-modal-panel video{position:relative; z-index:1; width:100%; height:auto; aspect-ratio:var(--video-aspect, 16/9); display:block; background:#000}
    .video-modal-panel.is-portrait{width:min(520px, 100%); --video-aspect:4/5}
    .video-modal-close{
      position:absolute;
      top:10px;
      right:10px;
      z-index:2;
      width:44px;
      height:44px;
      border-radius:12px;
      border:1px solid rgba(0,0,0,.10);
      background:rgba(255,255,255,.78);
      color:var(--ink);
      font-size:26px;
      line-height:1;
      cursor:pointer;
    }
    .video-modal-close:hover{background:rgba(255,255,255,.92)}