/* ============================================================
   DRONOPTIK — Feuille de style principale (site public)
   Direction visuelle : premium, minimaliste, inspiration Apple
   (grands titres, espaces généreux, cartes, défilement doux),
   charte DRONOPTIK strictement respectée (navy/blanc dominants,
   dégradé thermique en touches ponctuelles).
   Toutes les classes utilisées par le formulaire de devis, le
   contact et l'admin sont conservées à l'identique.
   ============================================================ */
:root{
  --navy:#101C37;
  --navy-2:#0A1428;
  --blanc:#F8F6F6;
  --orange:#EF652C;
  --magenta:#AC2477;
  --gris:#5B6478;
  --carte:#FFFFFF;
  --degrade:linear-gradient(90deg,var(--magenta),var(--orange));
  --radius:28px;
  --radius-sm:16px;
  --radius-lg:32px;
  --espace-section:min(11vw,120px);
  --duree:.7s;
  --easing:cubic-bezier(.16,1,.3,1);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  background:var(--blanc);
  color:var(--navy);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}

/* ---------- NAVIGATION ---------- */
nav{
  position:sticky;top:0;z-index:200;
  background:transparent;
  border-bottom:1px solid transparent;
  transition:background .35s var(--easing),border-color .35s var(--easing),box-shadow .35s var(--easing);
}
nav.nav-scrolled{
  background:rgba(248,246,246,.86);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid rgba(16,28,55,.08);
  box-shadow:0 8px 30px -20px rgba(16,28,55,.25);
}
.nav-inner{
  max-width:1240px;margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 28px;
}
.logo{display:flex;align-items:center;gap:10px;}
.logo-img{height:34px;width:auto;display:block;}
.nav-links{display:flex;gap:8px;align-items:center;font-size:.92rem;}
.nav-links > a:not(.btn){color:var(--navy);opacity:.75;transition:opacity .2s;padding:10px 14px;border-radius:999px;}
.nav-links > a:not(.btn):hover{opacity:1;background:rgba(16,28,55,.05);}
.btn{
  display:inline-block;
  background:var(--navy);color:#fff;
  padding:13px 28px;border-radius:999px;
  font-weight:600;font-size:.95rem;
  border:none;cursor:pointer;
  transition:transform .3s var(--easing),box-shadow .3s var(--easing),background .3s;
}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(16,28,55,.22);}
.btn-degrade{background:var(--degrade);}
.btn-blanc{background:#fff;color:var(--navy);}
.btn-outline{background:transparent;color:var(--navy);border:1px solid rgba(16,28,55,.25);}
.btn-sm{padding:9px 20px;font-size:.85rem;}
.nav-links .btn{padding:10px 22px;margin-left:6px;}

/* Menu déroulant "Prestations" */
.nav-item-dropdown{position:relative;}
.nav-dropdown-bouton{
  cursor:pointer;display:inline-flex;align-items:center;gap:5px;
  color:var(--navy);opacity:.75;padding:10px 14px;border-radius:999px;
  background:none;border:none;font-family:inherit;font-size:.92rem;
  transition:opacity .2s;
}
.nav-dropdown-bouton[aria-expanded="true"]{opacity:1;background:rgba(16,28,55,.05);}
.nav-dropdown-bouton:focus-visible{outline:2px solid var(--orange);outline-offset:2px;}
.nav-item-dropdown .chevron{width:9px;height:9px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .25s;}
.nav-dropdown-bouton[aria-expanded="true"] .chevron{transform:rotate(225deg) translateY(2px);}
.nav-dropdown-panel{
  position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(6px);
  background:#fff;border-radius:20px;box-shadow:0 24px 60px -20px rgba(16,28,55,.28);
  padding:10px;min-width:280px;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .22s var(--easing),transform .22s var(--easing),visibility .22s;
}
/* Zone tampon invisible qui comble le vide entre le bouton et le panneau,
   pour que le survol reste continu pendant la traversée de cet espace
   (en complément de la temporisation de fermeture gérée en JS). */
.nav-dropdown-panel::before{content:"";position:absolute;top:-14px;left:0;right:0;height:14px;}
.nav-dropdown-bouton[aria-expanded="true"] + .nav-dropdown-panel{
  opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);
}
.nav-dropdown-panel a{display:block;padding:12px 16px;border-radius:14px;font-size:.9rem;color:var(--navy);transition:background .15s;}
.nav-dropdown-panel a:hover,.nav-dropdown-panel a:focus-visible{background:rgba(16,28,55,.05);outline:none;}
.nav-dropdown-panel a .sous{display:block;font-size:.78rem;color:var(--gris);margin-top:2px;font-weight:400;}
.nav-dropdown-panel a span:first-child{font-weight:600;}

/* Menu mobile */
.mobile-menu-btn{display:none;background:none;border:none;cursor:pointer;padding:8px;width:40px;height:40px;align-items:center;justify-content:center;}
.mobile-menu-btn span,.mobile-menu-btn span::before,.mobile-menu-btn span::after{
  content:"";display:block;width:20px;height:2px;background:var(--navy);position:relative;transition:transform .25s,opacity .25s;
}
.mobile-menu-btn span::before{position:absolute;top:-6px;width:20px;}
.mobile-menu-btn span::after{position:absolute;top:6px;width:20px;}
.mobile-menu-btn.ouvert span{background:transparent;}
.mobile-menu-btn.ouvert span::before{transform:translateY(6px) rotate(45deg);}
.mobile-menu-btn.ouvert span::after{transform:translateY(-6px) rotate(-45deg);}

.mobile-menu{
  display:none;position:fixed;inset:0;z-index:190;background:var(--blanc);
  padding:96px 28px 40px;overflow-y:auto;
}
.mobile-menu.ouvert{display:block;}
.mobile-menu a{display:block;padding:16px 4px;font-size:1.3rem;font-weight:700;color:var(--navy);border-bottom:1px solid rgba(16,28,55,.08);}
.mobile-menu .mobile-sous-liste{padding-left:14px;}
.mobile-menu .mobile-sous-liste a{font-size:1rem;font-weight:500;color:var(--gris);padding:12px 4px;border-bottom:none;}
.mobile-menu .btn{margin-top:24px;display:block;text-align:center;}

/* ---------- HERO PREMIUM (texte + panneau image carré) ---------- */
.hero-full{
  position:relative;overflow:hidden;background:var(--navy);
  border-radius:0 0 var(--radius-lg) var(--radius-lg);
  margin-top:-1px;padding:0 0 0;
}
.hero-full .hero-fond{
  position:absolute;inset:0;
  background:
    radial-gradient(ellipse 60% 50% at 82% 15%, rgba(172,36,119,.16), transparent 65%),
    linear-gradient(160deg,#16244a 0%,#0A1428 70%);
}
.hero-split{
  position:relative;z-index:1;max-width:1240px;margin:0 auto;
  display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;
  padding:76px 28px 76px;
}
.hero-texte{color:#fff;}
.hero-full .eyebrow-clair{font-size:.82rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.75);}
.hero-full h1{font-size:clamp(2.3rem,4.6vw,3.6rem);font-weight:800;letter-spacing:-.03em;line-height:1.06;margin-top:14px;}
.hero-full p.sous{margin:22px 0 0;max-width:520px;font-size:clamp(1.02rem,1.4vw,1.18rem);color:rgba(255,255,255,.8);}
.hero-full .actions{margin-top:36px;display:flex;gap:14px;flex-wrap:wrap;}

/* Panneau image : carré, masque doux qui fond les bords dans le fond navy —
   aucun bord ou rectangle disgracieux, le drone reste entièrement visible. */
.hero-panneau{
  position:relative;aspect-ratio:1/1;border-radius:36px;overflow:hidden;
  box-shadow:0 50px 90px -30px rgba(0,0,0,.55);
}
.hero-panneau img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.hero-panneau-masque{
  position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(circle at center, transparent 58%, rgba(10,20,40,.5) 100%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
}

/* Fallback hero simple si pas d'image (rare, l'admin peut toujours ajouter) */
.hero{max-width:1100px;margin:0 auto;padding:100px 24px 70px;text-align:center;}
.hero h1{font-size:clamp(2.4rem,6vw,4.2rem);font-weight:800;letter-spacing:-.03em;line-height:1.1;}
.hero h1 .accent,.accent-degrade{
  background:var(--degrade);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero p.sous{margin:24px auto 0;max-width:620px;font-size:clamp(1.02rem,2vw,1.25rem);color:var(--gris);}
.hero .actions{margin-top:36px;display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}
.hero .actions .secondaire{color:var(--orange);font-weight:600;padding:12px 10px;font-size:.95rem;}

/* Page hero simple (pages prestations, à propos, etc.) */
.page-hero{max-width:1100px;margin:0 auto;padding:calc(var(--espace-section) * .7) 24px 20px;}
.page-hero .eyebrow{margin-bottom:6px;}
.page-hero h1{font-size:clamp(2.1rem,4.8vw,3.6rem);font-weight:800;letter-spacing:-.025em;}
.page-hero p{margin-top:18px;max-width:640px;color:var(--gris);font-size:1.15rem;}

/* ---------- PHRASE DE POSITIONNEMENT ---------- */
.positionnement{padding:calc(var(--espace-section) * .6) 24px;text-align:center;}
.positionnement p{
  max-width:920px;margin:0 auto;font-size:clamp(1.6rem,4.2vw,2.7rem);font-weight:700;letter-spacing:-.02em;
  line-height:1.25;color:var(--navy);
}
.positionnement p .accent{background:var(--degrade);-webkit-background-clip:text;background-clip:text;color:transparent;}

/* ---------- SECTIONS ---------- */
section{padding:var(--espace-section) 24px;}
.section-navy{background:var(--navy);color:#fff;}
.section-navy h2,.section-navy .h2{color:#fff;}
.inner{max-width:1180px;margin:0 auto;}
.eyebrow{font-size:.82rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  background:var(--degrade);-webkit-background-clip:text;background-clip:text;color:transparent;}
h2{font-size:clamp(1.9rem,4.2vw,2.9rem);font-weight:800;letter-spacing:-.025em;line-height:1.12;margin-top:10px;}
h3{font-weight:700;}
.section-intro{margin-top:18px;max-width:640px;color:var(--gris);font-size:1.1rem;}
.section-navy .section-intro{color:rgba(255,255,255,.68);}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:20px;}

/* ---------- Galerie horizontale premium (accueil) ---------- */
.galerie-conteneur{position:relative;margin-top:48px;padding:0 60px;}
.galerie-fleches{position:absolute;inset:0;pointer-events:none;}
.galerie-fleche{
  position:absolute;top:50%;transform:translateY(-50%);
  width:48px;height:48px;border-radius:50%;border:1px solid rgba(16,28,55,.18);
  background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 20px -6px rgba(16,28,55,.2);
  pointer-events:auto;
  transition:background .2s,border-color .2s,transform .2s,opacity .2s,box-shadow .2s;
}
.galerie-fleche-prec{left:0;}
.galerie-fleche-suiv{right:0;}
.galerie-fleche:hover{background:var(--blanc);border-color:var(--navy);box-shadow:0 10px 26px -6px rgba(16,28,55,.28);}
.galerie-fleche:hover:not(:disabled){transform:translateY(-50%) scale(1.06);}
.galerie-fleche:disabled{opacity:.3;cursor:default;}
.galerie-fleche span{width:11px;height:11px;border-right:2px solid var(--navy);border-bottom:2px solid var(--navy);display:block;}
.galerie-fleche-prec span{transform:rotate(135deg);margin-left:4px;}
.galerie-fleche-suiv span{transform:rotate(-45deg);margin-right:4px;}

.galerie-prestations{
  display:flex;gap:24px;
  overflow-x:auto;
  overflow-y:hidden; /* uniquement sur ce conteneur, jamais sur html/body */
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-x:contain; /* empêche le geste de "remonter" à la page */
  touch-action:auto; /* le défilement horizontal reste géré par overflow-x + scroll-snap ;
     "auto" (plutôt que pan-x) garantit qu'un geste vertical démarré sur la
     galerie continue de faire défiler la page normalement sur Safari iOS. */
  padding:8px 4px 24px;
  scrollbar-width:none;
}
.galerie-prestations::-webkit-scrollbar{display:none;}
.galerie-prestations:focus-visible{outline:2px solid var(--orange);outline-offset:4px;border-radius:var(--radius);}
/* Chaque carte occupe ~46% de la largeur : une partie de la suivante reste visible */
.galerie-carte{
  scroll-snap-align:start;flex:0 0 46%;max-width:520px;
  background:var(--carte);border-radius:var(--radius);overflow:hidden;
  box-shadow:0 2px 14px rgba(16,28,55,.06);
  transition:transform .45s var(--easing),box-shadow .45s var(--easing);
  display:flex;flex-direction:column;
}
/* Le survol (déplacement vertical de la carte + zoom de l'image) n'est activé
   que sur les pointeurs à survol réel (souris/trackpad). Sur tactile
   (hover:none), ces transformations restent désactivées pour qu'aucun
   mouvement vertical ne parasite le geste de défilement horizontal. */
@media (hover:hover) and (pointer:fine){
  .galerie-carte:hover{transform:translateY(-8px);box-shadow:0 30px 60px -20px rgba(16,28,55,.18);}
  .galerie-carte:hover .visuel img{transform:scale(1.06);}
  .galerie-carte:hover .lien{gap:10px;}
}
.galerie-carte .visuel{aspect-ratio:3/2;background:var(--navy);position:relative;overflow:hidden;}
.galerie-carte .visuel svg,.galerie-carte .visuel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--easing);}
.galerie-carte .contenu{padding:30px 30px 34px;}
.galerie-carte h3{font-size:1.4rem;letter-spacing:-.015em;}
.galerie-carte p{margin-top:12px;color:var(--gris);font-size:1rem;}
.galerie-carte .lien{display:inline-flex;align-items:center;gap:6px;margin-top:20px;font-weight:600;color:var(--orange);font-size:.95rem;transition:gap .25s;}
@media (prefers-reduced-motion:reduce){
  .galerie-prestations{scroll-behavior:auto;}
  .galerie-carte,.galerie-carte .visuel img{transition:none !important;}
}

/* ---------- Cartes services (grille — page /services/) ---------- */
.services{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:52px;}
.carte{background:var(--carte);border-radius:var(--radius);overflow:hidden;
  box-shadow:0 2px 14px rgba(16,28,55,.06);transition:transform .45s var(--easing),box-shadow .45s var(--easing);
  display:flex;flex-direction:column;}
.carte:hover{transform:translateY(-8px);box-shadow:0 30px 60px -20px rgba(16,28,55,.18);}
.carte .visuel{aspect-ratio:3/2;background:var(--navy);position:relative;overflow:hidden;}
.carte .visuel svg,.carte .visuel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--easing);}
.carte:hover .visuel img{transform:scale(1.06);}
.carte .contenu{padding:32px 32px 36px;}
.carte h3{font-size:1.4rem;letter-spacing:-.015em;}
.carte p{margin-top:12px;color:var(--gris);font-size:1rem;}
.carte .lien{display:inline-flex;align-items:center;gap:6px;margin-top:20px;font-weight:600;color:var(--orange);font-size:.95rem;}
.carte .lien:hover{gap:10px;}
.carte .lien{transition:gap .25s;}

/* Galerie : responsive — cartes plus larges sur mobile, une partie de la suivante visible */
@media (max-width:860px){
  .galerie-conteneur{padding:0;}
  .galerie-carte{flex:0 0 82%;}
  .galerie-fleches{display:none;}
}

/* Avantages navy */
.avantages{background:var(--navy);color:#fff;}
.avantages h2{color:#fff;}
.avantages .grille{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:48px;}
.avantage{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:26px 22px;transition:background .3s,border-color .3s;}
.avantage:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);}
.avantage .icone{width:44px;height:44px;border-radius:12px;background:var(--degrade);
  display:flex;align-items:center;justify-content:center;font-size:1.2rem;margin-bottom:14px;color:#fff;font-weight:700;}
.avantage h3{font-size:1.02rem;}
.avantage p{margin-top:8px;font-size:.9rem;color:rgba(255,255,255,.65);}

/* ---------- Comparatif thermique ---------- */
.thermo-compare{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:16/9;max-width:900px;margin:44px auto 0;
  box-shadow:0 30px 70px -30px rgba(16,28,55,.35);cursor:ew-resize;user-select:none;background:var(--navy);}
.thermo-compare .calque{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.thermo-compare .calque-thermique{clip-path:inset(0 0 0 50%);}
.thermo-compare .curseur{position:absolute;top:0;bottom:0;left:50%;width:0;pointer-events:none;}
.thermo-compare .curseur::before{content:"";position:absolute;top:0;bottom:0;left:-1px;width:2px;background:#fff;box-shadow:0 0 12px rgba(0,0,0,.3);}
.thermo-compare .curseur::after{content:"↔";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:46px;height:46px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;
  font-size:1.1rem;color:var(--navy);box-shadow:0 6px 18px rgba(0,0,0,.25);}
.thermo-compare .etiquette{position:absolute;bottom:16px;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:#fff;background:rgba(16,28,55,.55);padding:6px 12px;border-radius:999px;backdrop-filter:blur(6px);}
.thermo-compare .etiquette-visible{left:16px;}
.thermo-compare .etiquette-thermique{right:16px;}
.thermo-note{max-width:560px;margin:20px auto 0;text-align:center;font-size:.88rem;color:var(--gris);}

/* ---------- Livrables (cartes illustrées) ---------- */
.livrables-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:48px;}
.livrable-carte{background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 2px 12px rgba(16,28,55,.06);transition:transform .3s var(--easing),box-shadow .3s var(--easing);}
@media (hover:hover) and (pointer:fine){
  .livrable-carte:hover{transform:translateY(-5px);box-shadow:0 20px 40px -16px rgba(16,28,55,.16);}
  .livrable-carte:hover .livrable-visuel img{transform:scale(1.06);}
}
.livrable-visuel{aspect-ratio:4/3;background:var(--navy);position:relative;overflow:hidden;}
.livrable-visuel img,.livrable-visuel svg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--easing);}
.livrable-corps{padding:16px 18px 20px;display:flex;flex-direction:column;gap:4px;}
.livrable-titre{font-size:.92rem;font-weight:700;color:var(--navy);}
.livrable-texte{font-size:.8rem;color:var(--gris);line-height:1.4;}

/* Étapes / mission */
.etapes{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:48px;}
.etape{background:var(--carte);border-radius:20px;padding:30px 24px;box-shadow:0 2px 10px rgba(16,28,55,.05);transition:transform .3s var(--easing);}
.etape:hover{transform:translateY(-5px);}
.etape .num{font-size:2rem;font-weight:800;background:var(--degrade);
  -webkit-background-clip:text;background-clip:text;color:transparent;}
.etape h3{font-size:1.05rem;margin-top:8px;}
.etape p{margin-top:8px;font-size:.9rem;color:var(--gris);}
.note-delai{margin-top:32px;background:#FDF1EA;border-radius:20px;padding:24px 28px;font-size:.95rem;color:var(--navy);}
.note-delai strong{color:var(--orange);}

/* Pilote / équipe */
.a-propos-materiel{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.pilote-section{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:center;}
.pilote-visuel{border-radius:var(--radius);overflow:hidden;aspect-ratio:4/5;background:var(--navy);}
.pilote-visuel img{width:100%;height:100%;object-fit:cover;}

/* Blocs texte simples (pages prestations, légales) */
.bloc-texte{max-width:760px;}
.bloc-texte h2{margin-top:36px;}
.bloc-texte p{margin-top:14px;color:var(--gris);font-size:1.05rem;}
.bloc-texte ul{margin-top:14px;padding-left:4px;color:var(--gris);}
.bloc-texte ul li{position:relative;padding-left:26px;margin-top:10px;}
.bloc-texte ul li::before{content:"";position:absolute;left:0;top:9px;width:14px;height:2px;background:var(--degrade);border-radius:2px;}
.bloc-texte li{margin-top:6px;}
.limites{margin-top:36px;background:#F3F1EC;border-radius:20px;padding:24px 28px;font-size:.95rem;color:var(--gris);}
.limites strong{color:var(--navy);}

/* Badges */
.badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;}
.badge{border:1px solid rgba(16,28,55,.15);border-radius:999px;padding:8px 18px;font-size:.85rem;font-weight:600;}

/* CTA finale */
.cta-finale{background:var(--navy);color:#fff;text-align:center;position:relative;overflow:hidden;}
.cta-finale::before{content:"";position:absolute;top:-40%;left:50%;width:900px;height:900px;transform:translateX(-50%);
  background:radial-gradient(circle,rgba(239,101,44,.18) 0%,transparent 65%);pointer-events:none;}
.cta-finale h2{color:#fff;position:relative;}
.cta-finale p{margin:18px auto 0;max-width:560px;color:rgba(255,255,255,.7);font-size:1.05rem;position:relative;}
.cta-finale .actions{margin-top:34px;display:flex;gap:16px;justify-content:center;flex-wrap:wrap;position:relative;}
.cta-finale .contact-ligne{margin-top:30px;font-size:.95rem;color:rgba(255,255,255,.55);position:relative;}
.cta-finale .contact-ligne a{color:var(--orange);font-weight:600;}

/* Footer */
footer{padding:48px 24px;font-size:.85rem;color:var(--gris);}
.footer-inner-logo{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;align-items:center;}
.footer-logo{display:flex;align-items:center;gap:12px;}
.logo-img-footer{height:26px;width:auto;opacity:.85;}
footer .liens-legaux{display:flex;gap:16px;flex-wrap:wrap;align-items:center;}

/* ============================================================
   FORMULAIRE DE DEVIS (inchangé fonctionnellement)
   ============================================================ */
.devis-shell{max-width:720px;margin:0 auto;padding:60px 24px 100px;}
.devis-progression{display:flex;gap:8px;margin-bottom:36px;}
.devis-progression .segment{flex:1;height:5px;border-radius:99px;background:rgba(16,28,55,.1);}
.devis-progression .segment.actif{background:var(--degrade);}

.devis-etape{display:block;padding-bottom:28px;margin-bottom:28px;border-bottom:1px solid rgba(16,28,55,.08);}
.devis-etape:last-of-type{border-bottom:none;}
.devis-etape.active{animation:fadein .3s ease;}
@keyframes fadein{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}

.js-only{display:none;}
.groupe-titre{font-size:.85rem;font-weight:700;color:var(--orange);text-transform:uppercase;letter-spacing:.05em;margin-bottom:14px;}

.prestations-choix{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px;}
.prestation-carte{
  border:2px solid rgba(16,28,55,.1);border-radius:20px;padding:22px;cursor:pointer;
  background:#fff;transition:border-color .2s,transform .2s;
}
.prestation-carte:hover{transform:translateY(-3px);}
.prestation-carte.selectionnee{border-color:var(--orange);box-shadow:0 6px 20px rgba(239,101,44,.15);}
.prestation-carte h3{font-size:1.05rem;}
.prestation-carte input{position:absolute;opacity:0;pointer-events:none;}

.champ{margin-top:22px;}
.champ label{display:block;font-weight:600;font-size:.92rem;margin-bottom:8px;}
.champ .facultatif{font-weight:400;color:var(--gris);font-size:.85rem;}
.champ input[type=text],.champ input[type=email],.champ input[type=tel],
.champ select,.champ textarea{
  width:100%;padding:13px 16px;border-radius:12px;border:1px solid rgba(16,28,55,.18);
  font-size:.98rem;font-family:inherit;background:#fff;color:var(--navy);
}
.champ input:focus,.champ select:focus,.champ textarea:focus{outline:2px solid var(--orange);outline-offset:1px;}
.champ textarea{min-height:100px;resize:vertical;}
.champ-aide{margin-top:6px;font-size:.82rem;color:var(--gris);}
.champ-autre{margin-top:10px;}

.consentement{display:flex;gap:10px;align-items:flex-start;margin-top:26px;font-size:.9rem;color:var(--gris);}
.consentement input{margin-top:4px;}

.recap{background:#fff;border-radius:20px;padding:24px;margin-top:18px;box-shadow:0 2px 10px rgba(16,28,55,.05);}
.recap dl{display:grid;grid-template-columns:1fr 1.4fr;gap:8px 16px;font-size:.92rem;}
.recap dt{color:var(--gris);}
.recap dd{font-weight:600;}

.devis-nav{display:flex;justify-content:space-between;margin-top:32px;gap:12px;}

.upload-zone{border:2px dashed rgba(16,28,55,.2);border-radius:16px;padding:22px;text-align:center;margin-top:8px;}
.upload-liste{margin-top:10px;font-size:.85rem;color:var(--gris);}

.message-erreur{background:#FDECEC;border:1px solid #E9B7B7;color:#8A2A2A;padding:14px 18px;border-radius:14px;margin-top:18px;font-size:.9rem;}
.message-succes{background:#E9F7EE;border:1px solid #B7E3C4;color:#1E6B3A;padding:14px 18px;border-radius:14px;margin-top:18px;font-size:.9rem;}

/* ---------- Réalisations / Avis (structure prête, Phase 2) ---------- */
.grille-cartes{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:40px;}
.mini-carte{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 2px 10px rgba(16,28,55,.05);}
.mini-carte .contenu{padding:20px;}
.mini-carte h3{font-size:1.05rem;}
.mini-carte p{margin-top:8px;font-size:.9rem;color:var(--gris);}
.etoiles{color:var(--orange);letter-spacing:2px;}

/* ---------- Révélations au défilement ---------- */
.reveal{opacity:0;transform:translateY(32px);transition:opacity var(--duree) var(--easing),transform var(--duree) var(--easing);}
.reveal.visible{opacity:1;transform:none;}
.reveal-zoom{opacity:0;transform:scale(1.06);transition:opacity var(--duree) var(--easing),transform 1.1s var(--easing);}
.reveal-zoom.visible{opacity:1;transform:none;}
.reveal[data-delai="1"]{transition-delay:.08s;}
.reveal[data-delai="2"]{transition-delay:.16s;}
.reveal[data-delai="3"]{transition-delay:.24s;}
.reveal[data-delai="4"]{transition-delay:.32s;}
@media (prefers-reduced-motion:reduce){
  .reveal,.reveal-zoom{opacity:1 !important;transform:none !important;transition:none !important;}
  html{scroll-behavior:auto;}
  .carte,.carte .visuel img,.avantage,.etape,.livrable-carte,.livrable-visuel img,.btn{transition:none !important;}
}

/* Responsive */
@media (max-width:1000px){
  .a-propos-materiel{grid-template-columns:1fr;gap:32px;}
  .pilote-section{grid-template-columns:1fr;}
  .pilote-visuel{aspect-ratio:16/9;max-width:440px;}
  .livrables-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:860px){
  .services{grid-template-columns:1fr;}
  .avantages .grille{grid-template-columns:1fr 1fr;}
  .etapes{grid-template-columns:1fr 1fr;}
  .nav-links{display:none;}
  .mobile-menu-btn{display:flex;}
  section{padding:64px 24px;}
  .hero-full{border-radius:0 0 var(--radius) var(--radius);}
  .hero-split{grid-template-columns:1fr;padding:56px 24px 48px;gap:36px;}
  .hero-panneau{max-width:420px;margin:0 auto;width:100%;}
  .prestations-choix{grid-template-columns:1fr;}
  .recap dl{grid-template-columns:1fr;}
  .grille-cartes{grid-template-columns:1fr 1fr;}
}
@media (max-width:520px){
  .avantages .grille{grid-template-columns:1fr;}
  .etapes{grid-template-columns:1fr;}
  .grille-cartes{grid-template-columns:1fr;}
  .livrables-grid{
    display:flex;grid-template-columns:none;overflow-x:auto;overflow-y:hidden;
    scroll-snap-type:x mandatory;overscroll-behavior-x:contain;touch-action:auto;
    -webkit-overflow-scrolling:touch;padding-bottom:8px;scrollbar-width:none;
  }
  .livrables-grid::-webkit-scrollbar{display:none;}
  .livrable-carte{flex:0 0 72%;scroll-snap-align:start;}
  .devis-nav{flex-direction:column-reverse;}
  .devis-nav .btn{width:100%;text-align:center;}
  .hero-full .actions .btn{width:100%;text-align:center;}
}

/* ---------- Impression (page CGV) ---------- */
@media print{
  nav,footer,.mobile-menu,.cgv-actions-impression,.cta-finale{display:none !important;}
  body{background:#fff;}
  section{padding:12px 0;}
  a[href]::after{content:"";}
}

/* ---------- Coordonnées mises en avant (page Contact) ---------- */
.carte-contact-coordonnees{background:var(--blanc);border:1px solid rgba(16,28,55,.08);border-radius:20px;padding:28px 30px;}
.coordonnee-ligne{display:block;color:var(--navy);font-size:1.15rem;text-decoration:none;padding:6px 0;transition:color .2s;}
.coordonnee-ligne:hover{color:var(--orange);}
.coordonnee-ligne strong{font-weight:700;}

/* ---------- Contact rapide dans le hero ---------- */
.hero-contact-rapide{margin-top:22px;font-size:.95rem;color:rgba(255,255,255,.85);}
.hero-contact-rapide a{color:#fff;font-weight:600;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35);}
.hero-contact-rapide a:hover{border-color:#fff;}
.hero-contact-rapide .separateur{margin:0 10px;color:rgba(255,255,255,.4);}

/* ---------- Bloc "Pour qui / Zone d'intervention" ---------- */
.pour-qui-grille{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.pour-qui-carte{background:var(--blanc);border:1px solid rgba(16,28,55,.08);border-radius:20px;padding:26px 28px;}
.pour-qui-carte p{margin-top:10px;color:var(--gris);font-size:.98rem;line-height:1.6;}
@media (max-width:860px){
  .pour-qui-grille{grid-template-columns:1fr;}
}

/* ---------- Galerie de photos complémentaires (fiche réalisation publique) ---------- */
.mini-galerie-photos{
  display:flex;gap:8px;padding:8px 12px;
  overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x mandatory;overscroll-behavior-x:contain;touch-action:auto;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;
}
.mini-galerie-photos::-webkit-scrollbar{display:none;}
.mini-galerie-photos img{
  flex:0 0 auto;width:84px;height:64px;object-fit:cover;border-radius:10px;
  scroll-snap-align:start;
}
