:root {
  --navy:    #1E3A5F;
  --navy2:   #153050;
  --teal:    #2D7A6E;
  --teal2:   #1a5a4a;
  --teal-l:  #C8EDE7;
  --teal-ll: #E8F8F5;
  --blue-l:  #D6E8F7;
  --blue-ll: #EEF5FC;
  --cream:   #FAFAF7;
  --gold:    #C8973A;
  --gold-l:  #F5E6CC;
  --dark:    #0F1E33;
  --gray:    #374151;
  --white:   #FFFFFF;
  --grad-stripe: linear-gradient(90deg, transparent 0%, var(--navy) 15%, var(--teal) 50%, var(--gold) 85%, transparent 100%);
  --grad-stripe-v: linear-gradient(180deg, transparent 0%, var(--navy) 15%, var(--teal) 50%, var(--gold) 85%, transparent 100%);
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h, 80px) + 12px);}
body{
  font-family:'Nunito',sans-serif;
  color:var(--dark);
  overflow-x:hidden;
  background:linear-gradient(135deg,
    var(--blue-l)   0%,
    var(--blue-ll) 25%,
    #fff           45%,
    var(--teal-ll) 70%,
    var(--gold-l)  100%
  );
  background-attachment:fixed;
}


/* ═══════════════════════════════
   ACCESSIBILITÉ RGAA
═══════════════════════════════ */
/* Lien d'évitement */
.skip-link{
  position:absolute;top:-100px;left:1rem;z-index:9999;
  background:var(--navy);color:white;
  padding:0.75rem 1.5rem;border-radius:0 0 8px 8px;
  font-weight:800;font-size:0.9rem;text-decoration:none;
  transition:top 0.2s;
}
.skip-link:focus{top:0;}

/* Focus visible sur tous les éléments interactifs */
:focus-visible{
  outline:3px solid var(--teal);
  outline-offset:3px;
  border-radius:4px;
}
/* Annuler l'outline sur les éléments qui ont leur propre style focus */
button:focus:not(:focus-visible),
a:focus:not(:focus-visible){outline:none;}

/* Contraste renforcé pour les liens de navigation */
.nav-links a:focus-visible{color:var(--teal);}
.pub-btn:focus-visible .pub-circle,
.public-item:focus-visible .public-circle{
  outline:3px solid var(--teal);
  outline-offset:3px;
}
::-webkit-scrollbar{width:5px;}
::-webkit-scrollbar-thumb{background:linear-gradient(var(--teal),var(--navy));border-radius:3px;}

/* ═══════════════════════════════
   NAV
═══════════════════════════════ */
nav{
  position:fixed;top:0;left:0;right:0;z-index:200;
  padding:0.8rem 2.5rem;
  display:flex;align-items:center;justify-content:space-between;
  background:linear-gradient(90deg,
    rgba(214,232,247,0.97) 0%,
    rgba(255,255,255,0.97) 40%,
    rgba(200,237,231,0.96) 75%,
    rgba(245,230,204,0.95) 100%
  );
  backdrop-filter:blur(20px);
  border-bottom:2px solid transparent;
  border-image:var(--grad-stripe) 1;
  box-shadow:0 2px 24px rgba(30,58,95,0.08);
  transition:all 0.3s;
}
.nav-logo{display:flex;align-items:center;gap:0.9rem;}
.nav-brand-wrap{display:flex;flex-direction:column;gap:0.1rem;}
.nav-brand-actions{display:flex;align-items:center;gap:0.5rem;}
.nav-ham-label{display:none;}
/* Icône « contraste » dessinée en CSS (rendu identique Firefox/Chrome,
   contrairement au caractère ◐ que Chrome affichait en emoji) */
.ico-contrast{
  display:inline-block;
  width:1.05em;height:1.05em;
  border-radius:50%;
  border:1.6px solid currentColor;
  background:linear-gradient(90deg,currentColor 0 50%,transparent 50% 100%);
  box-sizing:border-box;
  vertical-align:-0.15em;
}
/* Groupe accessibilité mobile — caché sur desktop */
.nav-modes-mobile{display:none;}
.nav-logo-svg{
  width:50px;height:50px;border-radius:50%;
  background:white;border:2px solid var(--teal-l);
  overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 14px rgba(30,58,95,0.28);flex-shrink:0;
  overflow:hidden;
}
.nav-logo-svg svg{width:36px;height:36px;}
.nav-brand strong{font-size:1rem;font-weight:900;color:var(--navy);display:block;line-height:1.1;}
.nav-brand span{font-size:0.68rem;color:var(--gray);font-weight:400;}
.nav-cafme{
  display:inline-block;margin-top:0.3rem;
  background:linear-gradient(135deg,var(--teal) 0%,#2AA198 100%);
  color:#fff !important;
  font-size:0.58rem;font-weight:800;letter-spacing:0.04em;
  padding:0.18rem 0.6rem;border-radius:20px;
  white-space:nowrap;line-height:1.4;
  box-shadow:0 2px 6px rgba(45,122,110,0.30);
  max-width:100%;
}
.nav-links{display:flex;gap:1.8rem;align-items:center;}
.nav-links a{font-size:0.84rem;font-weight:700;color:#374151;text-decoration:none;transition:color 0.2s, transform 0.2s;position:relative;display:inline-block;}
.nav-links a:hover{color:var(--teal);transform:scale(1.12);}
.nav-cta{
  background:linear-gradient(135deg, var(--navy) 0%, var(--teal) 60%, #4ECDC4 100%);
  color:white!important;padding:0.55rem 1.4rem;border-radius:50px;
  font-weight:800!important;
  transition:transform 0.22s ease, box-shadow 0.22s ease !important;
  animation:pill-shadow-float 2.8s ease-in-out infinite;
}
.nav-cta:hover{
  transform:translateY(-4px) !important;
  box-shadow:0 14px 28px rgba(30,58,95,0.28), 0 4px 8px rgba(30,58,95,0.14) !important;
  animation-play-state:paused !important;
}

/* ═══════════════════════════════
   HERO
═══════════════════════════════ */
.hero{
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  padding:calc(var(--nav-h, 76px) + 1rem) 5% 3.5rem;
  position:relative;overflow:hidden;
  background:linear-gradient(135deg,var(--navy) 0%,var(--teal2) 100%);
}
.hero::before{
  content:'';
  position:absolute;inset:0;
  background:linear-gradient(135deg,var(--navy) 0%,var(--teal2) 100%);
  z-index:0;
}
/* Dégradé fond - masqué car hero a son propre dégradé */
.hero-bg{ display:none; }
/* Cercle déco teal */
.hero-circle{display:none;}
/* Cercle déco or */
.hero-circle-gold{
  position:absolute;top:-60px;right:-60px;
  width:320px;height:320px;border-radius:50%;
  background:radial-gradient(circle,rgba(200,151,58,0.09) 0%,transparent 70%);
  z-index:0;
}
.hero-layout{
  display:grid;
  grid-template-columns:65% 35%;
  align-items:center;
  width:100%;max-width:1200px;position:relative;z-index:1;
}
.hero-left{position:relative;z-index:1;}
.hero-right{
  display:flex;align-items:center;justify-content:center;
  padding-left:0;
  margin-left:0;
  position:relative;z-index:1;
}
.hero-logo-img{
  width:100%;
  max-width:420px;
  height:auto;
  object-fit:contain;
  mix-blend-mode:multiply;
  clip-path:inset(12% 0 0 0 round 24px);
}

/* Badge */
.hero-badge{
  display:inline-flex;align-items:center;gap:0.5rem;
  background:rgba(255,255,255,0.15);color:#fff;
  padding:0.45rem 1.1rem;border-radius:50px;
  font-size:0.75rem;font-weight:800;letter-spacing:0.05em;
  margin-bottom:1.4rem;
  opacity:0;transform:translateY(18px);
  border:1px solid rgba(255,255,255,0.25);
}
.badge-dot{width:7px;height:7px;background:#fff;border-radius:50%;animation:blink 2s infinite;}
.hero-dispo{
  display:inline-flex;align-items:center;gap:0.5rem;
  background:rgba(200,151,58,0.2);color:#fff;
  padding:0.4rem 1rem;border-radius:50px;
  font-size:0.75rem;font-weight:600;letter-spacing:0.03em;
  margin-bottom:1.2rem;
  border:1px solid rgba(200,151,58,0.5);
}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0.4}}

.hero-title{
  font-family:'Playfair Display',serif;
  font-size:clamp(2.2rem,3.8vw,3.5rem);
  line-height:1.15;
  margin-bottom:0.9rem;
  opacity:0;transform:translateY(28px);
}
.hero-title{color:#fff;}
.hero-title .grad{
  background:none;
  -webkit-text-fill-color:#fff;color:#fff;
}
.hero-title em{color:var(--teal-l);font-style:italic;-webkit-text-fill-color:var(--teal-l);}

.hero-sub{color:rgba(255,255,255,0.85)!important;
  font-size:1rem;line-height:1.78;
  max-width:460px;margin-bottom:0.6rem;
  opacity:0;transform:translateY(18px);
}
.hero-italic{
  font-style:italic;color:var(--teal-l);font-weight:700;font-size:1.08rem;
  margin-bottom:2rem;
  opacity:0;transform:translateY(18px);
}

.hero-pills{display:flex;gap:0.3rem;flex-wrap:nowrap;justify-content:flex-start;margin-bottom:2.2rem;opacity:0;transform:translateY(18px);}
.pill{
  background:rgba(255,255,255,0.15);border:2px solid rgba(255,255,255,0.3);
  color:#fff;padding:0.35rem 0.6rem;
  border-radius:50px;font-size:0.7rem;font-weight:800;
  box-shadow:0 2px 8px rgba(0,0,0,0.1);
  text-decoration:none;white-space:nowrap;
}
.pill-link{
  cursor:pointer;
  transition:transform 0.22s ease,box-shadow 0.22s ease,border-color 0.22s ease,background 0.22s ease;
}
.pill-link:hover{
  border-color:rgba(255,255,255,0.6);
  background:rgba(255,255,255,0.25);
  transform:translateY(-4px);
  box-shadow:0 14px 28px rgba(0,0,0,0.2);
  animation-play-state:paused;
}
@keyframes pill-shadow-float{
  0%,100%{
    transform:translateY(0);
    box-shadow:0 2px 5px rgba(30,58,95,0.08), 0 1px 2px rgba(0,0,0,0.05);
  }
  50%{
    transform:translateY(-3px);
    box-shadow:0 10px 22px rgba(30,58,95,0.18), 0 3px 6px rgba(0,0,0,0.08);
  }
}

.hero-btns{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;opacity:0;transform:translateY(18px);}
.btn-grad{
  background:linear-gradient(135deg, var(--navy) 0%, var(--teal) 60%, #4ECDC4 100%);
  color:white;padding:0.88rem 2rem;border-radius:50px;
  font-weight:800;font-size:0.9rem;text-decoration:none;
  display:inline-flex;align-items:center;gap:0.4rem;
  position:relative;overflow:hidden;
  transition:transform 0.3s ease, box-shadow 0.3s ease;
  animation:btn-shadow-soft 4s ease-in-out infinite;
}
.btn-grad::after{
  content:'';
  position:absolute;top:0;bottom:0;left:-90%;
  width:40%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,0.15),transparent);
  animation:btn-shine 4s ease-in-out infinite;
  pointer-events:none;
}
@keyframes btn-shine{
  0%,40%{left:-90%;}
  70%,100%{left:130%;}
}
.btn-grad:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 24px rgba(30,58,95,0.22), 0 3px 6px rgba(30,58,95,0.10);
  animation-play-state:paused;
}
@keyframes btn-shadow-soft{
  0%,100%{
    transform:translateY(0);
    box-shadow:0 2px 6px rgba(30,58,95,0.10);
  }
  50%{
    transform:translateY(-2px);
    box-shadow:0 7px 18px rgba(30,58,95,0.16), 0 2px 5px rgba(30,58,95,0.08);
  }
}
.btn-out{
  background:transparent;color:var(--navy);
  padding:0.88rem 2rem;border-radius:50px;
  font-weight:700;font-size:0.9rem;text-decoration:none;
  border:2px solid var(--navy);transition:all 0.3s;
}
.btn-out:hover{background:var(--blue-l);}

/* Carte profil hero */
.hero-card{
  border-top:5px solid transparent;
  background-image:linear-gradient(white,white),linear-gradient(90deg,var(--navy),var(--teal),var(--gold));
  background-clip:padding-box,border-box;
  background-origin:padding-box,border-box;
  border-radius:28px;padding:1.75rem;
  width:100%;max-width:375px;
  box-shadow:0 20px 60px rgba(30,58,95,0.13);
  position:relative;overflow:visible;
  opacity:0;transform:translateX(36px);
}
.hero-card::before{display:none;}
.hc-top{display:flex;align-items:center;gap:1rem;margin-bottom:1.2rem;}
.hc-av{
  width:68px;height:68px;border-radius:50%;flex-shrink:0;
  background:white;border:2px solid var(--blue-l);
  overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 18px rgba(30,58,95,0.22);overflow:hidden;
}
.hc-av svg{width:40px;height:40px;}
.hc-info h3{font-family:'Playfair Display',serif;font-size:1rem;color:var(--navy);}
.hc-info p{font-size:0.73rem;color:var(--gray);margin-top:1px;}
.hc-badge{display:inline-block;background:var(--teal-l);color:var(--teal);font-size:0.65rem;font-weight:800;padding:2px 7px;border-radius:4px;margin-top:3px;}
.hc-stats{display:grid;grid-template-columns:1fr 1fr;gap:0.6rem;margin-bottom:1.2rem;}
.hcs{background:var(--cream);border-radius:12px;padding:0.65rem;text-align:center;}
.hcs-n{font-family:'Playfair Display',serif;font-size:1.35rem;font-weight:700;color:var(--navy);}
.hcs-l{font-size:0.67rem;color:var(--gray);}
.hc-avail{background:var(--teal-l);border-radius:12px;padding:0.65rem 1rem;display:flex;align-items:center;gap:0.5rem;}
.hc-avail p{font-size:0.78rem;color:var(--teal);font-weight:700;}

/* ═══════════════════════════════
   COMMUN
═══════════════════════════════ */
.section{padding:5.5rem 5%;}
.s-divider{
  border:none;
  height:3px;
  background:var(--grad-stripe);
  margin:0 5%;
  border-radius:50px;
}
.s-inner{max-width:1200px;margin:0 auto;}
.s-tag{font-size:0.7rem;font-weight:800;letter-spacing:0.14em;text-transform:uppercase;color:var(--teal);display:block;margin-bottom:0.55rem;}
.s-tag-shine{
  display:inline-block;
  position:relative;
  overflow:hidden;
  background:var(--teal-ll);
  padding:0.3rem 0.9rem;
  border-radius:50px;
}
.s-tag-shine::after{
  content:'';
  position:absolute;
  top:0;bottom:0;
  left:-80%;
  width:55%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,0.75),transparent);
  animation:tag-shine 2.8s ease-in-out infinite;
}
@keyframes tag-shine{
  0%,55%{left:-80%;}
  75%,100%{left:130%;}
}
.s-tag-shine-light{
  background:rgba(255,255,255,0.12);
  color:var(--teal-l);
}
.s-title{font-family:'Playfair Display',serif;font-size:clamp(1.7rem,2.8vw,2.6rem);color:var(--navy);line-height:1.2;margin-bottom:0.7rem;}
.s-sub{font-size:0.95rem;color:#374151;line-height:1.78;max-width:580px;}
.reveal{opacity:0;transform:translateY(26px);}

/* ═══════════════════════════════
   AXES — 3 GRANDS AXES
═══════════════════════════════ */
.axes{background:linear-gradient(160deg,var(--navy) 0%,var(--navy2) 40%,var(--teal2) 100%);padding:5.5rem 5%;}
.axes-inner{max-width:1100px;margin:0 auto;}
.axes-head{text-align:center;margin-bottom:4rem;}
.axes-head .s-tag{color:var(--teal-l);}
.axes-head .s-title{color:white;}
.axes-head .s-sub{color:rgba(255,255,255,0.65);margin:0 auto;}
.axes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.75rem;}
.axe-card{
  background:rgba(255,255,255,0.07);
  border:1px solid rgba(255,255,255,0.13);
  border-radius:24px;padding:2rem 1.75rem;
  backdrop-filter:blur(10px);
  transition:all 0.35s;position:relative;overflow:hidden;
}
.axe-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  transition:opacity 0.3s;
}
.axe-card.a1::before,.axe-card.a2::before,.axe-card.a3::before{background:var(--grad-stripe);}
.axe-card:hover{background:rgba(255,255,255,0.12);transform:translateY(-6px);box-shadow:0 20px 50px rgba(0,0,0,0.2);}
.axe-num{
  width:42px;height:42px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:'Playfair Display',serif;font-size:1.2rem;font-weight:700;color:white;
  margin-bottom:1.25rem;
}
.a1 .axe-num{background:linear-gradient(135deg,var(--teal),#4ECDC4);}
.a2 .axe-num{background:linear-gradient(135deg,var(--gold),#F5A623);}
.a3 .axe-num{background:linear-gradient(135deg,#7B8FD4,var(--teal));}
.axe-title{font-family:'Playfair Display',serif;font-size:1.1rem;color:white;margin-bottom:0.4rem;line-height:1.3;}
.axe-obj{
  font-size:0.7rem;font-weight:800;letter-spacing:0.08em;text-transform:uppercase;
  padding:0.3rem 0.75rem;border-radius:20px;display:inline-block;margin-bottom:0.9rem;
}
.a1 .axe-obj{background:rgba(45,122,110,0.3);color:#A8F0EB;}
.a2 .axe-obj{background:rgba(200,151,58,0.3);color:#FAD97A;}
.a3 .axe-obj{background:rgba(123,143,212,0.3);color:#BFCBEE;}
.axe-list{list-style:none;display:flex;flex-direction:column;gap:0.45rem;}
.axe-list li{font-size:0.85rem;color:rgba(255,255,255,0.9);display:flex;align-items:flex-start;gap:0.5rem;line-height:1.45;}
.axe-list li::before{content:'→';color:rgba(255,255,255,0.4);flex-shrink:0;font-size:0.75rem;margin-top:1px;}

/* ═══════════════════════════════
   À PROPOS
═══════════════════════════════ */
.about{background:transparent;}
.about-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:5rem;align-items:center;}
.about-photo{position:relative;}
.about-photo-wrap{
  width:100%;aspect-ratio:3/4;border-radius:28px;overflow:hidden;
  box-shadow:0 20px 60px rgba(30,58,95,0.12);position:relative;
}
.about-photo-wrap img{width:100%;height:100%;object-fit:cover;display:block;}
.about-photo-wrap .ab-fallback{
  width:100%;height:100%;
  background:linear-gradient(160deg,var(--blue-l),var(--teal-l));
  display:flex;align-items:center;justify-content:center;font-size:2.8rem;
}
/* Déco gradient overlay bas */
.about-photo-wrap::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:35%;
  background:linear-gradient(to top,rgba(30,58,95,0.4),transparent);
  pointer-events:none;
}
.about-float{
  position:absolute;bottom:-1.5rem;right:-1.5rem;
  background:white;border-radius:18px;
  padding:1.2rem 1.25rem 1rem;max-width:200px;
  box-shadow:0 12px 36px rgba(0,0,0,0.1);
  overflow:hidden;
}
.about-float::before{
  content:'';position:absolute;top:0;bottom:0;left:0;width:4px;
  background:var(--grad-stripe-v);
}
.about-float p{font-family:'Playfair Display',serif;font-style:italic;font-size:1rem;color:var(--dark);line-height:1.55;}
.about-lead{
  font-family:'Playfair Display',serif;font-size:1.12rem;font-style:italic;
  color:var(--teal);line-height:1.65;margin-bottom:1.4rem;
  padding-left:1.2rem;border-left:3px solid transparent;border-image:var(--grad-stripe-v) 1;
}
.about-body{font-size:0.95rem;color:#374151;line-height:1.85;margin-bottom:1.2rem;}
.about-coming{
  margin-top:1.75rem;
  background:linear-gradient(135deg,var(--teal-ll),var(--blue-ll));
  border-radius:16px;padding:1.1rem 1.4rem;
  display:flex;align-items:flex-start;gap:0.75rem;
  border:1.5px solid rgba(45,122,110,0.18);
}
.about-coming-icon{font-size:1.4rem;flex-shrink:0;margin-top:2px;}
.about-coming strong{font-size:0.87rem;color:var(--navy);display:block;margin-bottom:2px;font-weight:800;}
.about-coming span{font-size:0.78rem;color:var(--teal);line-height:1.5;}

/* ═══════════════════════════════
   SERVICES
═══════════════════════════════ */
.services{background:transparent;}
.services .s-sub{max-width:100%;}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:3rem;align-items:stretch;}
.svc-card{
  background:white;border-radius:24px;
  overflow:hidden;
  display:grid;
  grid-template-rows:1fr auto;
  box-shadow:0 4px 20px rgba(0,0,0,0.07);
  transition:box-shadow 0.35s,transform 0.35s;
}
.svc-card:hover{
  transform:translateY(-4px);
  box-shadow:0 20px 55px rgba(30,58,95,0.18);
}
.svc-head{
  padding:2rem 2rem 1.5rem;
  position:relative;
  display:flex;flex-wrap:wrap;align-items:center;gap:0 0.75rem;
}

/* Bouton dépliage */
.svc-toggle{
  display:flex; align-items:center; gap:0.5rem;
  margin-top:1rem;
  background:rgba(255,255,255,0.15);
  border:1px solid rgba(255,255,255,0.3);
  border-radius:50px;
  color:#fff; font-size:0.72rem; font-weight:800;
  padding:0.45rem 1rem;
  cursor:pointer;
  transition:background 0.2s;
  letter-spacing:0.04em;
  min-height:44px;
}
.svc-toggle:hover{ background:rgba(255,255,255,0.25); }
.svc-toggle:focus-visible{ outline:3px solid #fff; outline-offset:3px; }
.svc-toggle-arrow{
  display:inline-block;
  transition:transform 0.3s ease;
  font-style:normal;
}
.svc-card.open .svc-toggle-arrow{ transform:rotate(180deg); }
.svc-card.navy .svc-head,
.svc-card.teal .svc-head{background:linear-gradient(135deg,var(--navy),var(--teal));}

/* Tarifs intégrés dans l'en-tête de carte */
.svc-tarif{
  margin-top:1.1rem;
  display:flex; flex-direction:column; gap:0.45rem;
  border-top:1px solid rgba(255,255,255,0.18);
  padding-top:0.9rem;
}
.svc-tarif-row{
  display:flex; align-items:center; justify-content:space-between;
  background:rgba(255,255,255,0.1);
  border-radius:8px; padding:0.4rem 0.75rem;
  position:relative;
}
.svc-tarif-row--pref{
  background:rgba(255,255,255,0.18);
  border:1px solid rgba(255,255,255,0.35);
}
.svc-tarif-label{font-size:0.75rem;color:rgba(255,255,255,0.85);font-weight:600;}
.svc-tarif-price{font-size:0.92rem;font-weight:900;color:#fff;}
.svc-tarif-unit{font-size:0.65rem;font-weight:600;opacity:0.8;}
.svc-tarif-pref-badge{
  position:absolute; top:-10px; left:50%;
  transform:translateX(-50%);
  background:linear-gradient(135deg,#F59E0B,#FBBF24);
  color:#1E3A5F; font-size:0.58rem; font-weight:900;
  padding:0.15rem 0.6rem; border-radius:20px;
  white-space:nowrap; box-shadow:0 2px 6px rgba(0,0,0,0.2);
}
.svc-tarif-delai{
  font-size:0.72rem; color:rgba(255,255,255,0.9);
  background:rgba(255,255,255,0.12);
  border-radius:8px; padding:0.35rem 0.75rem;
  display:flex; align-items:center; gap:0.4rem;
}
.svc-tarif-delai strong{color:#fff;}
.svc-icon{font-size:2.2rem;margin-bottom:0;flex-shrink:0;line-height:1;}
.svc-title{font-family:'Playfair Display',serif;font-size:1.35rem;color:white;line-height:1.25;margin-bottom:0;flex:1;min-width:0;}
.svc-sub{font-size:0.76rem;color:rgba(255,255,255,0.68);line-height:1.5;flex:0 0 100%;margin-top:0.5rem;}
.svc-tarif-wrap,.svc-tarif{flex:0 0 100%;}
.svc-toggle{flex:0 0 auto;}
.svc-body{ display:none; }

/* ── Tiroir détail pleine largeur ── */
.svc-drawer{
  max-height:0;overflow:hidden;
  transition:max-height 0.45s ease;
  background:white;
  border-radius:0 0 24px 24px;
  box-shadow:0 16px 40px rgba(30,58,95,0.1);
  margin-top:0.5rem;
}
.svc-drawer.open{ max-height:1200px; }
.svc-drawer-inner{
  padding:2rem 2.5rem;
  border-top:3px solid transparent;
  border-image:var(--grad-stripe) 1;
}
.svc-list{list-style:none;display:flex;flex-direction:column;gap:0.55rem;}
.svc-list li{display:flex;align-items:flex-start;gap:0.55rem;font-size:0.88rem;color:#374151;line-height:1.55;}
.svc-list li::before{content:'→';color:var(--teal);font-weight:800;flex-shrink:0;}
.svc-card.teal .svc-list li::before{color:#2563EB;}
.svc-card.navy .svc-list li::before{color:var(--navy);}
/* ── Carte ateliers de groupe ── */
.svc-card--groupe{
  grid-column:auto;
}
.svc-head--groupe{
  background:linear-gradient(135deg,#1E3A5F 0%,#2D7A6E 60%,#27AE60 100%) !important;
  padding:1.75rem 2rem;
}
.svc-groupe-header{
  display:flex; align-items:center; gap:1rem;
  margin-bottom:1rem;
}
.svc-card--groupe.open .svc-body{
  max-height:900px;
}
.svc-groupe-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:1.5rem;
}
.svc-groupe-col{ display:flex; flex-direction:column; gap:0.85rem; }
.svc-groupe-section-title{
  font-size:0.72rem; font-weight:800; text-transform:uppercase;
  letter-spacing:0.1em; color:var(--teal);
  display:flex; align-items:center; gap:0.4rem;
}
.svc-groupe-list{
  list-style:none; padding:0; margin:0;
  display:flex; flex-direction:column; gap:0.5rem;
}
.svc-groupe-list li{
  font-size:0.84rem; color:#374151;
  padding:0.45rem 0.75rem 0.45rem 1.8rem;
  position:relative;
  background:rgba(45,122,110,0.05);
  border-radius:8px; line-height:1.45;
}
.svc-groupe-list li::before{
  content:'→'; position:absolute; left:0.6rem;
  color:var(--teal); font-weight:900; font-size:0.75rem;
}
.svc-groupe-list--gold li{
  background:rgba(200,151,58,0.07);
}
.svc-groupe-list--gold li::before{ color:var(--gold); }
.svc-groupe-renouvel{
  font-size:0.75rem; color:#6B7280; font-style:italic;
  background:rgba(45,122,110,0.07); border-radius:8px;
  padding:0.45rem 0.75rem;
  display:flex; align-items:center; gap:0.4rem; margin:0;
  line-height:1.45;
}
.svc-groupe-places{
  display:flex; align-items:center; gap:0.6rem;
  background:linear-gradient(135deg,var(--navy),var(--teal));
  color:#fff; font-size:0.82rem;
  padding:0.65rem 1.1rem; border-radius:50px;
  box-shadow:0 4px 16px rgba(30,58,95,0.2);
  align-self:flex-start;
}
.svc-groupe-places strong{ color:#fff; }

.svc-chip{display:inline-block;background:var(--teal-l);color:var(--teal);font-size:0.7rem;font-weight:800;padding:3px 10px;border-radius:20px;margin-top:1.2rem;}
.svc-card.navy .svc-chip{background:var(--blue-l);color:var(--navy);}

/* ═══════════════════════════════
   PHOTOS ATELIERS — grille riche
═══════════════════════════════ */
.ateliers{background:transparent;}
.ateliers .s-sub{max-width:100%;}
/* ─ Groupes ateliers */
.atelier-groups{ display:flex; flex-direction:column; gap:2rem; margin-top:2.5rem; }
.ag{
  background:rgba(255,255,255,0.88);
  border-radius:20px; overflow:hidden;
  box-shadow:0 3px 18px rgba(30,58,95,0.08);
  transition:transform 0.28s, box-shadow 0.28s;
}
.ag:hover{ transform:translateY(-3px); box-shadow:0 12px 32px rgba(30,58,95,0.13); }

/* En-tête : grande photo + texte intro */
.ag-header{
  display:grid; grid-template-columns:1fr 300px;
}
.ag-main-figure{ margin:0;order:2;flex-shrink:0;display:flex;flex-direction:column; }
.ag-main-img{ width:100%; height:260px; object-fit:cover; display:block; flex-shrink:0; order:2; }
.ag-main-caption{ font-size:0.7rem;color:var(--gray);text-align:center;padding:0.4rem 0.6rem;font-style:italic;background:#f7f9fb; }
.ag-intro{
  padding:1.75rem 2rem;
  display:flex; flex-direction:column; justify-content:center; gap:0.5rem;
  order:1;
}
.ag-intro .atelier-cat-label{ align-self:flex-start; }
.atelier-groups .ag:nth-child(1) .ag-main-img{ object-fit:contain; background:#fff; }
.atelier-groups .ag:nth-child(2) .ag-header{ grid-template-columns:300px 1fr; }
.atelier-groups .ag:nth-child(2) .ag-main-img{ order:1; }
.atelier-groups .ag:nth-child(2) .ag-main-figure{ order:1; }
.atelier-groups .ag:nth-child(2) .ag-intro{ order:2; }
.ag-title{
  font-family:'Playfair Display',serif;
  font-size:1.15rem; color:var(--navy); margin:0;
}
.ag-desc{ font-size:0.85rem; color:#4B5563; line-height:1.7; margin:0; }

/* Sous-activités */
.ag-items{
  display:grid; grid-template-columns:1fr 1fr;
  border-top:2px solid transparent;
  border-image:var(--grad-stripe) 1;
}
.ag-item{
  display:flex; align-items:center; gap:1rem;
  padding:1rem 1.5rem;
}
.ag-item:first-child{ border-right:1px solid var(--blue-l); }
.ag-item img{
  width:72px; height:72px; object-fit:cover;
  border-radius:10px; flex-shrink:0;
}
.ag-item-fallback{
  width:72px; height:72px; border-radius:10px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  font-size:1.8rem;
}
.ag-item-title{ font-size:0.82rem; font-weight:800; color:var(--navy); display:block; margin-bottom:0.2rem; }
.ag-item-desc{ font-size:0.75rem; color:var(--gray); line-height:1.45; margin:0; }
/* Séparateurs de catégories */
.atelier-cat{
  grid-column:1/-1;
  display:flex;align-items:center;gap:0.75rem;
  margin:1rem 0 0;
}
.atelier-cat-label{
  font-size:0.68rem;font-weight:800;text-transform:uppercase;
  letter-spacing:0.1em;color:var(--navy);
  background:rgba(255,255,255,0.7);
  padding:0.3rem 0.9rem;border-radius:20px;
  white-space:nowrap;border:1px solid var(--blue-l);
}
.atelier-cat-line{flex:1;height:1px;background:var(--grad-stripe);}
/* Cartes ateliers */
.photo-card{
  border-radius:16px;overflow:hidden;
  background:rgba(255,255,255,0.82);
  box-shadow:0 2px 14px rgba(30,58,95,0.07);
  transition:transform 0.3s,box-shadow 0.3s;
  display:flex;flex-direction:column;
}
.photo-card:hover{
  transform:translateY(-4px);
  box-shadow:0 10px 30px rgba(30,58,95,0.13);
}
.photo-card .ph-fallback{
  width:100%;height:190px;
  display:flex;align-items:center;justify-content:center;font-size:2.8rem;
  flex-direction:column;gap:0.4rem;
  flex-shrink:0;position:static;
}
.photo-card img{
  width:100%;height:190px;object-fit:cover;display:block;flex-shrink:0;
}
/* Texte dépliable au survol */
.photo-overlay{
  position:static;
  background:rgba(255,255,255,0.95);
  padding:0 1rem;
  max-height:0;
  overflow:hidden;
  transition:max-height 0.35s ease, padding 0.3s ease;
}
.photo-card:hover .photo-overlay,
.photo-card:focus-within .photo-overlay{
  max-height:120px;
  padding:0.7rem 1rem 0.85rem;
}
.ph-label{color:var(--navy);font-weight:800;font-size:0.82rem;line-height:1.35;}
.ph-sub{color:var(--gray);font-size:0.71rem;display:block;margin-top:3px;font-weight:400;}
.photo-card.tall,.photo-card.short{aspect-ratio:auto;}
/* Cache le fallback coloré quand une vraie photo est présente */
.photo-card img ~ .ph-fallback{display:none;}
/* Carte double (deux activités côte-à-côte) */
.photo-card-duo .ph-fallback{height:190px;justify-content:center;}
.photo-card-duo img{height:190px;}
.ph-placeholder{
  background:var(--blue-ll);color:var(--gray);font-size:0.8rem;font-weight:700;
  gap:0.6rem;border:2px dashed var(--blue-l);border-radius:16px;
}
.svc-photo-mini .ph-placeholder{position:static;min-height:120px;width:100%;border-radius:12px;}

/* ═══════════════════════════════
   PAIEMENTS
═══════════════════════════════ */
.paiements{
  background:linear-gradient(135deg,var(--navy) 0%,var(--teal2) 100%);
  padding:4.5rem 5%;
}
.pay-inner{max-width:1000px;margin:0 auto;}
.pay-head{text-align:center;margin-bottom:2.5rem;}
.pay-head .s-tag{color:var(--teal-l);}
.pay-head .s-title{color:white;}
.pay-head .s-sub{color:rgba(255,255,255,0.6);margin:0 auto;}
.pay-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;}
.pay-card{
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.14);
  border-radius:18px;padding:1.5rem 1rem;text-align:center;
  backdrop-filter:blur(10px);transition:all 0.3s;
}
.pay-card:hover{background:rgba(255,255,255,0.15);transform:translateY(-5px);border-color:rgba(255,255,255,0.25);box-shadow:0 16px 40px rgba(0,0,0,0.15);}
.pay-icon{font-size:2rem;margin-bottom:0.65rem;}
.pay-title{font-weight:800;font-size:0.85rem;color:white;margin-bottom:0.35rem;line-height:1.3;}
.pay-desc{font-size:0.73rem;color:rgba(255,255,255,0.6);line-height:1.5;}

/* ═══════════════════════════════
   TARIFS
═══════════════════════════════ */
.tarifs-s{ background:var(--cream); }

.tarif-grid{
  display:grid; grid-template-columns:1fr 1fr;
  gap:1.5rem; margin-top:2.5rem;
}
.tarif-card{
  background:#fff; border-radius:20px;
  padding:2rem 1.75rem;
  box-shadow:0 3px 18px rgba(30,58,95,0.08);
  display:flex; flex-direction:column; gap:1.25rem;
  transition:transform 0.28s, box-shadow 0.28s;
}
.tarif-card:hover{ transform:translateY(-4px); box-shadow:0 12px 32px rgba(30,58,95,0.13); }

.tarif-icon{
  font-size:2rem; width:56px; height:56px;
  background:linear-gradient(135deg,var(--teal-l),rgba(45,122,110,0.12));
  border-radius:14px;
  display:flex; align-items:center; justify-content:center;
}
.tarif-title{
  font-family:'Playfair Display',serif;
  font-size:1.1rem; color:var(--navy); margin:0;
}

.tarif-items{ display:flex; flex-direction:column; gap:0.85rem; }

.tarif-item{
  display:flex; align-items:center; justify-content:space-between;
  padding:0.85rem 1rem;
  background:var(--cream); border-radius:12px;
  flex-wrap:wrap; gap:0.4rem;
  position:relative;
}
.tarif-item--pref{
  border:2px solid var(--teal);
  background:linear-gradient(160deg,rgba(45,122,110,0.06),var(--cream));
}
.tarif-label{ font-size:0.88rem; font-weight:700; color:var(--navy); }
.tarif-price{
  font-size:1.35rem; font-weight:900;
  color:var(--teal); letter-spacing:-0.02em;
}
.tarif-pref-badge{
  position:absolute; top:-12px; left:50%;
  transform:translateX(-50%);
  background:linear-gradient(135deg,var(--teal),#27AE60);
  color:#fff; font-size:0.62rem; font-weight:800;
  padding:0.18rem 0.7rem; border-radius:20px;
  white-space:nowrap; box-shadow:0 2px 8px rgba(45,122,110,0.35);
}
.tarif-economy{
  width:100%; font-size:0.72rem; color:var(--teal);
  font-style:italic; text-align:right;
}

.tarif-example{
  background:linear-gradient(135deg,rgba(30,58,95,0.04),rgba(45,122,110,0.06));
  border-left:3px solid var(--teal);
  border-radius:0 10px 10px 0;
  padding:0.85rem 1rem;
  display:flex; flex-direction:column; gap:0.3rem;
}
.tarif-example-tag{
  font-size:0.62rem; font-weight:800; text-transform:uppercase;
  letter-spacing:0.1em; color:var(--teal);
}
.tarif-example-title{ font-size:0.92rem; font-weight:800; color:var(--navy); }
.tarif-example-desc{ font-size:0.78rem; color:#4B5563; margin:0; line-height:1.5; }

.tarif-min{
  font-size:0.78rem; font-weight:700; color:var(--navy);
  background:rgba(30,58,95,0.05); border-radius:8px;
  padding:0.5rem 0.85rem;
  display:flex; align-items:center; gap:0.5rem;
}
.tarif-card--collectif{
  grid-column:1 / -1;
  background:linear-gradient(135deg,rgba(30,58,95,0.04) 0%,rgba(45,122,110,0.06) 100%);
  border:1.5px solid rgba(45,122,110,0.2);
  flex-direction:column; gap:1.25rem;
}
.tarif-collectif-header{
  display:flex; align-items:center; gap:1rem; flex-wrap:wrap;
}
.tarif-collectif-sub{
  font-size:0.75rem; color:#6B7280; margin:0.25rem 0 0; line-height:1.5;
}
.tarif-collectif-body{
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:1rem;
}
.tarif-collectif-info{
  display:flex; align-items:flex-start; gap:0.85rem; flex:1 1 260px;
}
.tarif-collectif-badge{ font-size:1.5rem; flex-shrink:0; }
.tarif-collectif-info strong{ font-size:0.95rem; color:var(--navy); display:block; margin-bottom:0.25rem; }
.tarif-collectif-info p{ font-size:0.8rem; color:#4B5563; margin:0; line-height:1.55; }
.tarif-delai{
  display:flex; align-items:center; gap:0.6rem;
  background:linear-gradient(135deg,var(--navy),var(--teal));
  color:#fff; font-size:0.82rem;
  padding:0.65rem 1.25rem; border-radius:50px;
  white-space:nowrap;
  box-shadow:0 4px 16px rgba(30,58,95,0.25);
  flex-shrink:0;
}
.tarif-delai strong{ color:#fff; }

/* Tarif solidaire */
.svc-tarif-row--solidaire{
  background:rgba(231,76,60,0.12);
  border:1px solid rgba(231,76,60,0.3);
}
.svc-tarif-solidaire-badge{
  position:absolute; top:-10px; left:50%;
  transform:translateX(-50%);
  background:linear-gradient(135deg,#E74C3C,#C0392B);
  color:#fff; font-size:0.58rem; font-weight:900;
  padding:0.15rem 0.6rem; border-radius:20px;
  white-space:nowrap; box-shadow:0 2px 6px rgba(0,0,0,0.2);
}
.tarif-item--solidaire{
  border:1.5px solid rgba(231,76,60,0.35);
  background:linear-gradient(160deg,rgba(231,76,60,0.05),var(--cream));
  position:relative;
}
.tarif-solidaire-badge{
  position:absolute; top:-12px; left:50%;
  transform:translateX(-50%);
  background:linear-gradient(135deg,#E74C3C,#C0392B);
  color:#fff; font-size:0.62rem; font-weight:800;
  padding:0.18rem 0.7rem; border-radius:20px;
  white-space:nowrap; box-shadow:0 2px 8px rgba(231,76,60,0.35);
}
.tarif-solidaire-note{
  font-size:0.72rem; color:#6B7280; font-style:italic;
  text-align:center; line-height:1.5; margin:0;
  padding:0.4rem 0.5rem;
  border-left:3px solid rgba(231,76,60,0.4);
  background:rgba(231,76,60,0.04);
  border-radius:0 8px 8px 0;
}

.tarif-note{
  text-align:center; margin-top:1.75rem;
  font-size:0.78rem; color:#6B7280;
  background:rgba(45,122,110,0.07);
  border-radius:10px; padding:0.6rem 1.2rem;
  display:inline-block;
}

/* ═══════════════════════════════
   TÉMOIGNAGES
═══════════════════════════════ */
.temoignages{
  padding:5.5rem 5%;
  background:var(--cream);
}
.temo-inner{max-width:1200px;margin:0 auto;}
.temo-head{text-align:center;margin-bottom:2.5rem;}
.temo-head .s-tag{color:var(--teal);}
.temo-head .s-title{color:var(--teal2);}
.temo-head .s-sub{color:var(--teal);opacity:0.8;display:block;text-align:center;max-width:680px;margin:0 auto;}

.temo-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:1.25rem;
  align-items:stretch;
}

.temo-card{
  background:var(--teal-ll);
  border-radius:14px;
  padding:1.4rem 1.2rem 1.2rem;
  box-shadow:0 3px 16px rgba(45,122,110,0.1);
  border:1px solid var(--teal-l);
  position:relative;
  transition:transform 0.25s ease, box-shadow 0.25s ease;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.temo-card:hover{
  transform:translateY(-4px);
  box-shadow:0 10px 28px rgba(45,122,110,0.18);
}
.temo-card::before{
  content:'\201C';
  position:absolute;
  top:0.9rem; left:1.1rem;
  font-size:3.5rem;
  line-height:1;
  color:var(--teal);
  opacity:0.2;
  font-family:Georgia,serif;
  pointer-events:none;
}

.temo-realisation-head{
  display:flex;align-items:center;gap:0.5rem;
  margin-bottom:0.85rem;
}
.temo-realisation-icon{ font-size:1.4rem;line-height:1; }
.temo-realisation-titre{
  font-size:0.82rem;font-weight:800;
  color:var(--teal2);line-height:1.3;
}
.temo-label-what{
  font-size:0.68rem;font-weight:700;
  text-transform:uppercase;letter-spacing:0.06em;
  color:var(--teal);margin-bottom:0.3rem;
}
.temo-quote{
  margin:0 0 1rem;
  padding:0;
  border:none;
  flex:1;
}
.temo-quote p{
  font-size:0.8rem;
  line-height:1.65;
  color:var(--teal2);
  font-style:italic;
  margin:0;
}

.temo-author{
  display:flex;
  flex-direction:column;
  gap:0.15rem;
  padding-top:0.75rem;
  border-top:1px solid var(--teal-l);
  background:var(--teal-ll);
}
.temo-initials{
  font-weight:800;
  font-size:0.78rem;
  color:var(--teal2);
  letter-spacing:0.03em;
}
.temo-role{
  font-size:0.7rem;
  color:var(--teal);
  font-style:normal;
}

/* ═══════════════════════════════
   CONTACT
═══════════════════════════════ */
.contact-s{
  padding:6.5rem 5%;
  background:transparent;position:relative;overflow:hidden;
}
/* Dégradé déco */
.contact-s::before{
  content:'';position:absolute;top:-200px;right:-150px;
  width:550px;height:550px;border-radius:50%;
  background:radial-gradient(circle,rgba(45,122,110,0.09) 0%,transparent 70%);
  pointer-events:none;
}
.contact-s::after{
  content:'';position:absolute;bottom:-150px;left:-100px;
  width:400px;height:400px;border-radius:50%;
  background:radial-gradient(circle,rgba(30,58,95,0.06) 0%,transparent 70%);
  pointer-events:none;
}
.contact-inner{max-width:680px;margin:0 auto;text-align:center;position:relative;z-index:2;}
.contact-tag{
  display:inline-flex;align-items:center;gap:0.5rem;
  background:var(--teal-l);color:var(--teal);
  border:1.5px solid rgba(45,122,110,0.25);
  padding:0.4rem 1.1rem;border-radius:50px;
  font-size:0.73rem;font-weight:800;letter-spacing:0.07em;
  margin-bottom:1.5rem;
}
.contact-title{
  font-family:'Playfair Display',serif;
  font-size:clamp(1.9rem,3.5vw,3rem);
  color:var(--navy);line-height:1.2;margin-bottom:0.9rem;
}
.contact-title em{color:var(--teal);font-style:italic;}
.contact-text{font-size:0.95rem;color:var(--gray);line-height:1.75;margin-bottom:2.5rem;}

/* CTA BOX */
.cta-box{
  background:white;border-radius:28px;padding:2.5rem 2rem;
  box-shadow:0 16px 60px rgba(30,58,95,0.1);
  border:2px solid var(--blue-l);position:relative;overflow:hidden;
}
.cta-box::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--navy),var(--teal),var(--gold),var(--teal),var(--navy));
  background-size:300% 100%;animation:shimmer 4s ease infinite;
}
@keyframes shimmer{0%,100%{background-position:0%}50%{background-position:100%}}
.cta-methods{display:flex;justify-content:center;gap:1.2rem;flex-wrap:wrap;margin-bottom:2rem;padding-top:0.75rem;}
.cta-m{
  display:flex;flex-direction:column;align-items:center;gap:0.45rem;
  padding:1.2rem 1.4rem;
  background:var(--cream);border:2px solid var(--blue-l);
  border-radius:18px;text-decoration:none;min-width:125px;transition:all 0.3s;
}
.cta-m:hover{background:var(--teal-l);border-color:var(--teal);transform:translateY(-5px);box-shadow:0 12px 30px rgba(45,122,110,0.15);}
.cta-m-icon{font-size:1.75rem;}
.cta-m-label{font-size:0.8rem;font-weight:800;color:var(--navy);}
.cta-m-detail{font-size:0.68rem;color:var(--gray);text-align:center;}
.cta-big{
  display:inline-flex;align-items:center;gap:0.8rem;
  background:linear-gradient(135deg,var(--navy),var(--teal));
  color:white;padding:1.1rem 2.8rem;
  border-radius:50px;font-size:1rem;font-weight:900;
  text-decoration:none;
  box-shadow:0 16px 48px rgba(30,58,95,0.28);
  transition:all 0.35s;position:relative;overflow:hidden;
}
.cta-big::after{
  content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,0.18),transparent);
  transition:left 0.55s;
}
.cta-big:hover::after{left:100%;}
.cta-big:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 24px 60px rgba(30,58,95,0.38);}
.cta-arrow{font-size:1.2rem;transition:transform 0.3s;}
.cta-big:hover .cta-arrow{transform:translateX(5px);}
.cta-reassure{display:flex;justify-content:center;gap:1.75rem;flex-wrap:wrap;margin-top:1.5rem;}
.contact-dispo{text-align:center;margin-top:1.25rem;font-size:0.85rem;color:var(--navy);background:rgba(200,151,58,0.1);border:1px solid rgba(200,151,58,0.4);border-radius:30px;padding:0.5rem 1.25rem;display:inline-block;width:auto;}
.cta-item{display:flex;align-items:center;gap:0.4rem;font-size:0.76rem;color:var(--gray);}
.cta-check{color:var(--teal);font-weight:900;}

/* ── Préférence e-mail ─────────────────────────── */
.contact-pref-note{
  display:inline-block;margin-top:0.6rem;
  font-size:0.82rem;color:var(--navy);
  background:rgba(45,122,110,0.08);
  border:1px solid rgba(45,122,110,0.25);
  border-radius:8px;padding:0.35rem 0.75rem;
}
/* Carte téléphone : moins mise en avant */
.cta-m--phone{ opacity:0.78; }
.cta-m--phone:hover{ opacity:1; }
.cta-m-note{
  font-size:0.62rem;color:#E05A2A;font-style:italic;
  text-align:center;margin-top:0.1rem;
}
/* Cartes e-mail : badge + bordure teal */
.cta-m--pref{
  border-color:var(--teal);
  background:linear-gradient(160deg,rgba(45,122,110,0.06) 0%,var(--cream) 100%);
  position:relative;
}
.cta-m--pref:hover{
  background:var(--teal-l);border-color:var(--teal);
}
.cta-m-badge{
  position:absolute;top:-10px;left:50%;transform:translateX(-50%);
  background:linear-gradient(135deg,var(--teal),#27AE60);
  color:#fff;font-size:0.6rem;font-weight:800;
  padding:0.18rem 0.65rem;border-radius:20px;
  white-space:nowrap;letter-spacing:0.03em;
  box-shadow:0 2px 8px rgba(45,122,110,0.35);
}
/* Footer note */
.foot-pref-note{
  font-size:0.68rem;color:#E05A2A;font-style:italic;
}
.foot-pref-star{
  color:var(--teal);font-size:0.75rem;
  font-weight:900;vertical-align:middle;
}

/* ═══════════════════════════════
   BANDE DISPONIBILITÉS
═══════════════════════════════ */
.dispo-band{
  background:var(--teal-l);
  padding:1.25rem 5%;
  border-top:2px solid transparent;
  border-image:var(--grad-stripe) 1;
}
.dispo-inner{
  max-width:1100px;margin:0 auto;
  display:flex;align-items:center;justify-content:center;
  gap:1rem;flex-wrap:wrap;
}
.dispo-inner .badge-dot{
  width:10px;height:10px;background:var(--teal);
  border-radius:50%;animation:blink 2s infinite;flex-shrink:0;
}
.dispo-inner p{font-size:0.92rem;color:var(--teal);font-weight:600;text-align:center;}
.dispo-cta{
  background:var(--teal);color:white;
  padding:0.5rem 1.25rem;border-radius:50px;
  font-size:0.82rem;font-weight:800;text-decoration:none;
  white-space:nowrap;
  transition:background 0.2s;
}
.dispo-cta:hover{background:var(--teal2);}

/* ═══════════════════════════════
   FOOTER
═══════════════════════════════ */
footer{background:linear-gradient(135deg,var(--navy),var(--teal));padding:3.5rem 5%;}
.foot-inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr 1fr;gap:2.5rem;}
.foot-logo-block{display:flex;flex-direction:column;gap:0.75rem;}
.foot-logo-wrap{
  width:54px;height:54px;border-radius:50%;
  background:white;border:2px solid rgba(255,255,255,0.2);
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.foot-logo-wrap svg{width:38px;height:38px;}
.foot-name{font-family:'Playfair Display',serif;color:white;font-size:1rem;}
.foot-sub{font-size:0.75rem;color:rgba(255,255,255,0.8);}
.foot-siret{
  display:inline-block;background:rgba(255,255,255,0.15);
  color:#fff;font-size:0.75rem;font-weight:800;
  padding:4px 12px;border-radius:6px;margin-top:4px;
  border:1px solid rgba(255,255,255,0.3);
}
.foot-h{font-size:0.7rem;font-weight:800;text-transform:uppercase;letter-spacing:0.1em;color:rgba(255,255,255,0.65);margin-bottom:0.85rem;}
.foot-p{font-size:0.78rem;color:#fff;line-height:1.85;}
.foot-p a{color:#fff;text-decoration:none;transition:color 0.2s;}
.foot-p a:hover{color:var(--teal-l);}
.foot-legal{
  max-width:1200px;margin:2.5rem auto 0;
  padding-top:2rem;border-top:1px solid rgba(255,255,255,0.2);
}
.foot-legal-title{
  font-size:0.7rem;font-weight:800;text-transform:uppercase;letter-spacing:0.12em;
  color:rgba(255,255,255,0.5);margin-bottom:1.25rem;
}
.foot-legal-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;
}
.foot-legal-h3{
  font-size:0.68rem;font-weight:800;text-transform:uppercase;letter-spacing:0.08em;
  color:rgba(255,255,255,0.6);margin-bottom:0.5rem;
}
.foot-legal-p{
  font-size:0.72rem;color:rgba(255,255,255,0.8);line-height:1.7;margin:0;
}
.foot-legal-link{
  color:var(--teal-l);text-decoration:none;
}
.foot-legal-link:hover{text-decoration:underline;}

.foot-bottom{
  max-width:1200px;margin:2rem auto 0;
  padding-top:1.5rem;border-top:1px solid rgba(255,255,255,0.1);
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;
}
.foot-bottom p{font-size:0.72rem;color:rgba(255,255,255,0.7);}

/* ═══════════════════════════════
   RESPONSIVE
═══════════════════════════════ */
/* ─ BASE : hamburger et menu mobile cachés par défaut ─ */
.nav-ham{display:none;}
.nav-mobile{display:none;}

/* ═══════════════════════════════
   PALIER INTERMÉDIAIRE  901–1200 px
   (resserre la nav avant le menu burger)
═══════════════════════════════ */
@media(min-width:951px) and (max-width:1200px){
  nav{padding:0.7rem 1.2rem;}
  .nav-links{gap:1rem;}
  .nav-links a{font-size:0.8rem;white-space:nowrap;}
  .nav-cta{padding:0.5rem 1rem;}
  .nav-modes-group{gap:0.1rem;margin-left:0.3rem;padding:0.2rem 0.25rem;}
  .nav-modes-sep{margin:0 0.05rem;}
  .nav-modes-group .a11y-btn,
  .nav-modes-group .nav-dark-toggle{padding:0.25rem 0.4rem;}
}

/* ═══════════════════════════════
   TABLETTE / MOBILE  ≤ 900 px
═══════════════════════════════ */
/* ═══════════════════════════════
   TABLETTE + MOBILE  ≤ 900 px
═══════════════════════════════ */
@media(max-width:950px){

  /* ── Fond body : supprime le fixed qui casse sur mobile ── */
  body{
    background:var(--cream);
    background-attachment:scroll;
  }

  /* ── Nav ──────────────────────────────── */
  nav{padding:0.5rem 1.1rem;}
  .nav-cafme{max-width:210px;overflow:hidden;text-overflow:ellipsis;font-size:0.54rem;}
  .nav-links{display:none;}
  nav .nav-modes-group{display:none;}
  .nav-logo{align-items:flex-start;}
  .nav-brand-wrap{flex-direction:column;gap:0.2rem;}
  .nav-brand-actions{flex-wrap:wrap;gap:0.4rem;align-items:center;}
  /* Groupe accessibilité : visible sous le nom sur mobile */
  .nav-modes-mobile{
    display:flex;align-items:center;gap:0.15rem;
    background:rgba(255,255,255,0.45);
    border:1.5px solid rgba(30,58,95,0.12);
    border-radius:50px;
    padding:0.15rem 0.3rem;
  }
  .nav-modes-mobile .a11y-btn{
    background:none;border:none;cursor:pointer;
    width:30px;height:30px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    font-size:0.85rem;padding:0;
    transition:background 0.2s;
  }
  .nav-modes-mobile .a11y-btn:hover{background:rgba(30,58,95,0.1);}
  .nav-modes-mobile .a11y-btn[aria-pressed="true"]{background:rgba(45,122,110,0.18);}
  .nav-modes-mobile .nav-dark-toggle{
    background:none;border:none;cursor:pointer;
    width:30px;height:30px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    font-size:0.85rem;padding:0;
    transition:background 0.2s;margin-left:0;
  }
  .nav-ham{
    display:flex;flex-direction:row;align-items:center;gap:6px;
    background:none;border:none;cursor:pointer;
    padding:4px 0;border-radius:8px;transition:background 0.2s;
    z-index:210;
  }
  .nav-ham:hover{background:none;opacity:0.75;}
  .nav-ham:focus-visible{outline:3px solid var(--teal);outline-offset:2px;}
  .nav-ham-label{
    display:block;
    font-size:0.72rem;font-weight:800;
    color:var(--navy);text-transform:uppercase;letter-spacing:0.08em;
  }
  .nav-ham-bars{display:flex;flex-direction:column;gap:5px;}
  /* Masquer les traits du burger — seul le texte "Menu" reste visible */
  .nav-ham span:not(.nav-ham-label){display:none;}
  /* Indiquer l'état ouvert par le label uniquement */
  .nav-ham.open .nav-ham-label::before{content:'✕ ';}
  .nav-mobile{
    display:flex;flex-direction:column;
    position:fixed;top:74px;left:0;right:0;z-index:198;
    background:rgba(255,255,255,0.97);backdrop-filter:blur(20px);
    max-height:0;overflow:hidden;transition:max-height 0.35s ease;
  }
  /* Bordure et ombre seulement quand le menu est OUVERT (sinon un trait dégradé
     de 2px restait visible sous la nav en tablette) */
  .nav-mobile.open{
    max-height:600px;
    border-bottom:2px solid transparent;border-image:var(--grad-stripe) 1;
    box-shadow:0 8px 28px rgba(30,58,95,0.12);
  }
  .nav-mobile-link{
    padding:0.9rem 1.75rem;font-size:1rem;font-weight:700;color:#374151;
    text-decoration:none;border-bottom:1px solid rgba(30,58,95,0.07);
    transition:color 0.2s,background 0.2s;min-height:52px;display:flex;align-items:center;
  }
  .nav-mobile-link:hover{color:var(--teal);background:rgba(45,122,110,0.06);}
  .nav-mobile-link:focus-visible{outline:3px solid var(--teal);outline-offset:-3px;color:var(--teal);}
  .nav-mobile-cta{
    margin:0.6rem 1.5rem 1.1rem;border-radius:50px;
    background:linear-gradient(135deg,var(--navy) 0%,var(--teal) 100%);
    color:#fff !important;justify-content:center;border-bottom:none;min-height:48px;
  }
  .nav-mobile-cta:hover{opacity:0.9;color:#fff !important;}

  /* ── Section accessibilité dans le menu mobile ── */
  .nav-mobile-a11y{
    border-top:2px solid transparent;border-image:var(--grad-stripe) 1;
    padding:0.9rem 1.5rem 1.2rem;
    background:rgba(45,122,110,0.04);
  }
  .nav-mobile-a11y-title{
    font-size:0.68rem;font-weight:900;text-transform:uppercase;
    letter-spacing:0.1em;color:var(--teal);margin-bottom:0.75rem;
  }
  .nav-mobile-a11y-btns{
    display:grid;grid-template-columns:1fr 1fr;gap:0.5rem;
  }
  .nav-mobile-a11y-btn{
    display:flex;align-items:center;gap:0.45rem;
    padding:0.6rem 0.85rem;border-radius:10px;
    font-size:0.85rem;font-weight:700;
    background:rgba(30,58,95,0.06);
    border:1.5px solid rgba(30,58,95,0.12);
    color:#374151;cursor:pointer;min-height:44px;
    transition:background 0.2s,border-color 0.2s;
    width:100%;text-align:left;
  }
  .nav-mobile-a11y-btn:hover{background:rgba(30,58,95,0.1);}
  .nav-mobile-a11y-btn[aria-pressed="true"]{
    background:rgba(45,122,110,0.15);
    border-color:var(--teal);color:var(--teal);
  }
  .nav-mobile-dark-label{font-size:0.85rem;font-weight:700;}

  /* ── Hero ─────────────────────────────── */
  .hero{min-height:auto;padding:calc(var(--nav-h, 76px) + 1rem) 1.4rem 2.5rem;justify-content:flex-start;}
  .hero-layout{grid-template-columns:1fr;gap:0;}
  .hero-left{max-width:100%;display:flex;flex-direction:column;align-items:center;text-align:center;}
  .hero-right{display:none;}
  .hero-logo-img{width:220px;height:auto;mix-blend-mode:multiply;}
  .hero::before{background:linear-gradient(135deg,var(--navy) 0%,var(--teal) 100%);clip-path:polygon(0 0, 100% 0, 100% 62%, 0 72%);}
  .hero{background:linear-gradient(135deg,var(--navy) 0%,var(--teal) 100%);}
  .hero-sub{max-width:100%;font-size:0.96rem;text-align:center;}
  .hero-italic{text-align:center;font-size:1rem;margin-bottom:1.5rem;}
  .hero-badge{margin:0 auto 1.4rem;}
  .hero-pills{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:0.5rem;
    margin-bottom:1.5rem;
    width:100%;
    max-width:340px;
    margin-left:auto;
    margin-right:auto;
  }
  .hero-pills .pill{
    white-space:normal;
    text-align:center;
    justify-content:center;
    display:flex;
    align-items:center;
    gap:0.3rem;
    padding:0.55rem 0.6rem;
    font-size:0.72rem;
    line-height:1.2;
  }
  .hero-btns{flex-direction:column;align-items:stretch;gap:0.75rem;}
  .hero-btns a,.hero-btns button{text-align:center;justify-content:center;}

  /* ── Hero card publics ───────────────── */
  .hero-card{max-width:100%;}

  /* ── Sections ────────────────────────── */
  .section{padding:3.5rem 1.4rem;}
  .s-title{font-size:clamp(1.5rem,5vw,2.2rem);}

  /* ── About ───────────────────────────── */
  .about-grid{grid-template-columns:1fr;gap:2rem;}
  .about-photo-wrap{aspect-ratio:4/3;max-width:480px;margin:0 auto;}
  .about-float{display:none;}

  /* ── Services ────────────────────────── */
  .axes-grid{grid-template-columns:1fr;}
  .svc-grid{grid-template-columns:1fr;}
  .svc-card--groupe{grid-column:auto;}
  .svc-card{cursor:pointer;}

  /* ── Ateliers ────────────────────────── */
  .photos-grid{grid-template-columns:repeat(2,1fr);}
  .atelier-cat{grid-column:1/-1;}
  .ag-header{display:flex;flex-direction:column;}
  .ag-main-img{width:100%;height:260px;object-fit:cover;object-position:center top;display:block;}
  .atelier-groups .ag:nth-child(1) .ag-main-img{object-fit:contain;background:#fff;height:240px;}
  .ag-intro{padding:1.25rem 1.25rem;}
  .ag-desc{font-size:0.9rem;line-height:1.7;}
  .ag-items{grid-template-columns:1fr 1fr;}
  .ag-item:first-child{border-right:none;border-bottom:1px solid var(--blue-l);}
  .atelier-cat-label{white-space:normal;}
  .svc-groupe-grid{grid-template-columns:1fr;}

  /* ── Tarifs ──────────────────────────── */
  .tarif-grid{grid-template-columns:1fr;}

  /* ── Paiements ───────────────────────── */
  .pay-grid{grid-template-columns:1fr 1fr;}

  /* ── Réalisations ────────────────────── */
  .temo-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .temoignages{padding:3.5rem 1.4rem;}

  /* ── Contact ─────────────────────────── */
  .contact-s{padding:4rem 1.4rem;}
  .cta-methods{gap:0.75rem;flex-wrap:wrap;justify-content:center;}
  .cta-m{min-width:100px;padding:1rem;flex:1 1 130px;max-width:170px;}
  .cta-big{font-size:1rem;padding:1rem 1.5rem;}

  /* ── Footer ──────────────────────────── */
  .foot-inner{grid-template-columns:1fr;gap:1.75rem;}
  .foot-legal-grid{grid-template-columns:1fr 1fr;}

  /* ── Publics ─────────────────────────── */
  .publics-grid{flex-wrap:wrap;gap:1.25rem;justify-content:center;}
  .public-item{width:130px;}
  .public-circle{width:80px;height:80px;font-size:1.6rem;}

  /* ── Touch targets RGAA 44px ─────────── */
  .nav-links a,.btn-grad,.btn-out,.pill-link,.pub-btn,
  .svc-toggle,.svc-devis-btn{min-height:44px;}
}

/* ═══════════════════════════════
   TABLETTE UNIQUEMENT  601–900 px
═══════════════════════════════ */
@media(min-width:601px) and (max-width:950px){

  /* Nav tablette : burger « MENU » à gauche, accessibilité à DROITE.
     On réutilise le groupe desktop (.nav-modes-group) qui se place à droite
     via space-between, et on masque le groupe mobile empilé. */
  nav .nav-modes-group{display:flex;}
  .nav-modes-mobile{display:none;}

  /* Services : 2 cartes côte à côte */
  .svc-grid{grid-template-columns:repeat(2,1fr);}
  .svc-card--groupe{grid-column:1/-1;}

  /* Ateliers : image à côté du texte */
  .ag-header{display:grid;grid-template-columns:260px 1fr;}
  .ag-main-img{height:220px;}
  .atelier-groups .ag:nth-child(1) .ag-main-img{height:220px;}
  .atelier-groups .ag:nth-child(2) .ag-header{grid-template-columns:260px 1fr;}
  .ag-items{grid-template-columns:1fr 1fr;}

  /* Réalisations : 3 colonnes */
  .temo-grid{grid-template-columns:repeat(3,minmax(0,1fr));}

  /* Publics : 4 en ligne */
  .publics-grid{flex-wrap:nowrap;gap:1.5rem;}
  .public-item{width:140px;}
  .public-circle{width:85px;height:85px;font-size:1.8rem;}

  /* About : photo à droite */
  .about-grid{grid-template-columns:1fr 1fr;gap:2.5rem;}
  .about-photo-wrap{aspect-ratio:3/4;}

  /* Footer légal : 2 colonnes */
  .foot-legal-grid{grid-template-columns:1fr 1fr;}

  /* Paiements : 2 colonnes */
  .pay-grid{grid-template-columns:1fr 1fr;}

  /* Hero pills : flex horizontal sur tablette */
  .hero-pills{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:0.5rem;
    width:auto;
    max-width:100%;
  }
  .hero-pills .pill{
    white-space:nowrap;
    font-size:0.75rem;
    padding:0.45rem 0.9rem;
  }

}

/* ═══════════════════════════════
   SMARTPHONE  ≤ 600 px
═══════════════════════════════ */
@media(max-width:600px){
  html{scroll-padding-top:calc(var(--nav-h, 74px) + 10px);}

  /* Nav */
  .nav-cafme{max-width:160px;}

  /* Hero */
  .hero{padding:calc(var(--nav-h, 70px) + 0.9rem) 1rem 2rem;}
  .hero-title{font-size:clamp(1.65rem,8vw,2.4rem);}
  .hero-sub{font-size:0.9rem;}
  .hero-italic{font-size:0.9rem;}
  .hero-logo-img{width:180px;}
  .hero-pills{max-width:300px;}
  .hero-pills .pill{font-size:0.71rem;padding:0.5rem 0.5rem;}

  /* Sections */
  .section{padding:2.75rem 1rem;}
  .s-title{font-size:clamp(1.3rem,6vw,1.8rem);}
  .s-sub{font-size:0.88rem;}
  .about-text h2{font-size:1.35rem;}

  /* About */
  .about-photo-wrap{aspect-ratio:1/1;max-width:280px;}

  /* Services */
  .svc-grid{grid-template-columns:1fr;}
  .svc-tabs{gap:0.2rem;flex-wrap:wrap;}
  .svc-tab{font-size:0.7rem;padding:0.5rem 0.6rem;min-height:44px;flex:1 1 auto;}
  .svc-head{padding:1.5rem 1.25rem 1rem;}
  .svc-title{font-size:1.15rem;}

  /* Ateliers : photo pleine largeur, hauteur généreuse */
  .ag-header{display:flex;flex-direction:column;}
  .ag-main-img{height:240px;object-position:center center;}
  .atelier-groups .ag:nth-child(1) .ag-main-img{height:220px;object-fit:contain;background:#fff;}
  .ag-items{grid-template-columns:1fr;}
  .ag-item{padding:0.85rem 1rem;}
  .ag-item img{width:52px;height:52px;}
  .ag-item:first-child{border-right:none;border-bottom:1px solid var(--blue-l);}

  /* Paiements */
  .pay-grid{grid-template-columns:1fr;}
  .pay-card{padding:1.5rem 1rem;}

  /* Réalisations */
  .temo-grid{grid-template-columns:minmax(0,1fr);}
  .temo-card{padding:1.25rem;}
  .temo-quote p{font-size:0.85rem;}
  .temoignages{padding:2.75rem 1rem;}

  /* Publics : 2 colonnes × 2 lignes */
  .publics{padding:2.5rem 1rem;}
  .publics-grid{flex-wrap:wrap;gap:1rem;justify-content:center;}
  .public-item{width:calc(50% - 0.5rem);max-width:150px;align-items:center;}
  .public-circle{width:72px;height:72px;font-size:1.45rem;}
  .public-label{font-size:0.78rem;text-align:center;}

  /* Contact */
  .contact-s{padding:3rem 1rem;}
  .cta-box{padding:1.75rem 1.25rem;border-radius:20px;}
  .cta-methods{flex-direction:column;align-items:stretch;}
  .cta-m{max-width:100%;flex:1 1 100%;}
  .cta-big{width:100%;font-size:1rem;padding:1rem;}
  .cta-reassure{gap:0.75rem;}
  .cta-item{font-size:0.8rem;}

  /* Footer */
  .foot-inner{padding:2rem 1rem;}
  .foot-legal-grid{grid-template-columns:1fr;}

  /* ── Modales toutes ───────────────────── */
  .pub-modal-close,.modal-carte-close,.lightbox-close{width:44px;height:44px;font-size:1.1rem;}

  /* Bulles publics */
  .pub-modal-overlay{align-items:flex-end;padding:0;}
  .pub-modal{
    width:100%;max-width:100%;
    border-radius:24px 24px 0 0;
    padding:1.5rem 1.25rem 2rem;
    max-height:88vh;overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }
  .pub-modal-icon{font-size:2rem;margin-bottom:0.35rem;}
  .pub-modal-title{font-size:1.1rem;}
  .pub-modal-sub{font-size:0.82rem;margin-bottom:0.75rem;}
  .pub-modal-list li{font-size:0.88rem;}
  .pub-modal-close{top:0.9rem;right:0.9rem;}

  /* Carte Leaflet */
  .modal-carte-overlay{padding:0;align-items:flex-end;}
  .modal-carte-box{
    border-radius:16px 16px 0 0;
    width:100%;max-width:100%;
    max-height:92vh;
    display:flex;flex-direction:column;
  }
  .modal-carte-header{padding:0.9rem 1rem 0.7rem;}
  #map-leaflet{height:55vh;min-height:260px;flex:1;}

  /* Formulaire devis */
  .devis-overlay{padding:0;align-items:flex-end;}
  .devis-panel{
    border-radius:20px 20px 0 0;
    max-width:100%;width:100%;
    max-height:92vh;overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }
  .devis-captcha-wrap{padding:0.85rem 0.9rem;}
  .devis-submit{width:100%;justify-content:center;font-size:1rem;min-height:52px;}
  .devis-rgpd{font-size:0.75rem;}

  /* RGAA touch targets */
  .btn-grad,.btn-out,.nav-cta,.pub-btn,.pill-link{min-height:44px;}
}

/* ═══════════════════════════════
   TRÈS PETIT  ≤ 400 px
═══════════════════════════════ */
@media(max-width:400px){
  nav{padding:0.4rem 0.9rem;}
  .nav-cafme{display:none;}
  .hero{padding:calc(var(--nav-h, 66px) + 0.8rem) 0.9rem 1.8rem;}
  .hero-title{font-size:clamp(1.5rem,9vw,2rem);}
  .hero-logo-img{width:150px;}
  .ag-main-img{height:200px;}
  .ag-item img{width:44px;height:44px;}
  .public-circle{width:64px;height:64px;font-size:1.3rem;}
  .public-item{max-width:130px;}
  .temo-grid{grid-template-columns:minmax(0,1fr);}
}

/* ═══════════════════════════════
   ACCESSIBILITÉ : REDUCED MOTION
═══════════════════════════════ */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation:none !important;
    transition-duration:0.01ms !important;
    scroll-behavior:auto !important;
  }
}

/* ═══════════════════════════════
   PUBLICS — RONDS COLORÉS
═══════════════════════════════ */
.publics{background:transparent;padding:4rem 5%;}
.publics .hero-card{max-width:420px;}
.publics-inner{max-width:1100px;margin:0 auto;text-align:center;}
.publics-grid{
  display:flex;
  flex-wrap:nowrap;
  justify-content:center;
  align-items:start;
  gap:2rem;
  margin-top:3rem;
}
.public-item{
  display:flex;flex-direction:column;align-items:center;gap:0.85rem;
  width:140px;
}
.public-circle{
  width:90px;height:90px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 28px rgba(0,0,0,0.12);
  transition:all 0.35s;cursor:pointer;font-size:2rem;
  position:relative;overflow:hidden;
}
.public-circle::after{
  content:'';position:absolute;inset:0;border-radius:50%;
  background:rgba(255,255,255,0.15);
  transform:scale(0);transition:transform 0.3s;
}
.public-item:hover .public-circle{transform:scale(1.12);box-shadow:0 18px 45px rgba(0,0,0,0.18);}
.public-item:hover .public-circle::after{transform:scale(1);}
.pc-yellow{background:linear-gradient(135deg,#F5A623,#F7C45E);}
.pc-teal  {background:linear-gradient(135deg,#2D7A6E,#3EA89B);}
.pc-green {background:linear-gradient(135deg,#27AE60,#52C878);}
.pc-blue  {background:linear-gradient(135deg,#2E86C1,#5DADE2);}
.pc-purple{background:linear-gradient(135deg,#7D3C98,#A569BD);}
.pc-red   {background:linear-gradient(135deg,#C0392B,#E74C3C);}
.pc-gold  {background:linear-gradient(135deg,#C8973A,#E8B86D);}
.public-label{
  font-size:0.82rem;font-weight:800;color:var(--navy);
  text-align:center;line-height:1.3;
}
.public-sub{font-size:0.75rem;color:#4B5563;text-align:center;line-height:1.4;}

/* ── MINI AXES DANS CARTES SERVICES ── */
.svc-axes{display:flex;flex-direction:column;gap:0.75rem;margin-top:1.25rem;}
.svc-axe{
  border-radius:12px;padding:0.9rem 1rem;
  display:flex;align-items:flex-start;gap:0.75rem;
  border:1px solid rgba(0,0,0,0.06);
}
.svc-axe-num{
  width:28px;height:28px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:'Playfair Display',serif;font-size:0.85rem;font-weight:700;
  color:white;flex-shrink:0;
}
.svc-axe-content{}
.svc-axe-title{font-size:0.84rem;font-weight:800;color:var(--navy);line-height:1.2;margin-bottom:3px;}
.svc-axe-sub{font-size:0.74rem;color:#4B5563;line-height:1.4;}
/* Couleurs axes collectivités */
.navy-axes .svc-axe{background:#F0F5FF;}
.navy-axes .svc-axe:nth-child(1) .svc-axe-num{background:linear-gradient(135deg,var(--teal),#4ECDC4);}
.navy-axes .svc-axe:nth-child(2) .svc-axe-num{background:linear-gradient(135deg,var(--gold),#F5A623);}
.navy-axes .svc-axe:nth-child(3) .svc-axe-num{background:linear-gradient(135deg,#7B8FD4,var(--navy));}
/* Couleurs axes particuliers */
.blue-axes .svc-axe{background:#EFF6FF;}
.blue-axes .svc-axe:nth-child(1) .svc-axe-num{background:linear-gradient(135deg,#2563EB,#1E40AF);}
.blue-axes .svc-axe:nth-child(2) .svc-axe-num{background:linear-gradient(135deg,#7D3C98,#A569BD);}
.blue-axes .svc-axe:nth-child(3) .svc-axe-num{background:linear-gradient(135deg,#C8973A,#F5A623);}

/* ── PUBLICS HERO ── */
.hero-publics {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0.9rem;
  justify-items: center;
  margin-top: 1rem;
}
.pub-btn {
  display: flex; flex-direction: column; align-items: center; gap: 0.4rem;
  background: none; border: none; cursor: pointer;
  position: relative;
  width: 100%;
  transition: transform 0.2s ease;
}
.pub-btn:hover{
  transform: scale(1.15);
}
.pub-circle {
  width: 100%; max-width: 120px; aspect-ratio: 1; height: auto;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: clamp(1.6rem, 5vw, 2.7rem);
  box-shadow: 0 6px 20px rgba(0,0,0,0.14);
  position: relative;
  transition: box-shadow 0.2s;
}
.pub-btn:hover .pub-circle{
  box-shadow: 0 14px 28px rgba(0,0,0,0.22);
}
.pub-circle::after {
  content: ''; position: absolute; inset: -3px; border-radius: 50%;
  border: 2px solid transparent;
  transition: border-color 0.2s;
}
.pub-btn:hover .pub-circle::after { border-color: rgba(0,0,0,0.2); }
@keyframes pub-bounce{
  0%,100% { transform:translateY(0);   }
  18%     { transform:translateY(-8px);}
  34%     { transform:translateY(0);   }
  46%     { transform:translateY(-4px);}
  58%     { transform:translateY(0);   }
  66%     { transform:translateY(-2px);}
  74%     { transform:translateY(0);   }
}
.pub-label { font-size: 0.72rem; font-weight: 800; color: var(--navy); text-align: center; line-height: 1.2; }

/* ── Tooltip bulles publics ── */
.pub-btn::after {
  content: attr(data-tooltip);
  position: absolute;
  bottom: calc(100% + 10px);
  left: 50%;
  transform: translateX(-50%) translateY(6px);
  background: var(--navy);
  color: #fff;
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1.3;
  padding: 0.4rem 0.75rem;
  border-radius: 8px;
  white-space: nowrap;
  max-width: none;
  text-align: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
  z-index: 50;
  box-shadow: 0 4px 14px rgba(30,58,95,0.25);
}
.pub-btn::before {
  content: '';
  position: absolute;
  bottom: calc(100% + 4px);
  left: 50%;
  transform: translateX(-50%) translateY(6px);
  border: 5px solid transparent;
  border-top-color: var(--navy);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
  z-index: 50;
}
.pub-btn:hover::after,
.pub-btn:focus-visible::after {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
.pub-btn:hover::before,
.pub-btn:focus-visible::before {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* ── MODAL PUBLICS ── */
.pub-modal-overlay {
  display: none; position: fixed; inset: 0;
  background: rgba(15,30,51,0.6); z-index: 500;
  align-items: center; justify-content: center;
  backdrop-filter: blur(6px);
}
.pub-modal-overlay.active { display: flex; }
.pub-modal {
  background: white; border-radius: 24px;
  padding: 2rem; max-width: 420px; width: 90%;
  position: relative; animation: modalIn 0.3s ease;
  box-shadow: 0 24px 80px rgba(0,0,0,0.2);
  border-top: 5px solid var(--navy);
}
@keyframes modalIn { from{opacity:0;transform:scale(0.92)} to{opacity:1;transform:scale(1)} }
.pub-modal-close {
  position: absolute; top: 1rem; right: 1rem;
  background: var(--cream); border: none; width: 32px; height: 32px;
  border-radius: 50%; font-size: 1.1rem; cursor: pointer; display: flex;
  align-items: center; justify-content: center;
  transition: background 0.2s;
}
.pub-modal-close:hover { background: var(--blue-l); }
.pub-modal-icon { font-size: 2.5rem; margin-bottom: 0.5rem; }
.pub-modal-title { font-family: 'Playfair Display', serif; font-size: 1.25rem; color: var(--navy); margin-bottom: 0.5rem; }
.pub-modal-sub { font-size: 0.8rem; color: var(--gray); margin-bottom: 1rem; line-height: 1.5; }
.pub-modal-list { list-style: none; display: flex; flex-direction: column; gap: 0.4rem; }
.pub-modal-list li { display: flex; align-items: flex-start; gap: 0.5rem; font-size: 0.85rem; color: #374151; line-height: 1.45; }
.pub-modal-list li::before { content: '→'; color: var(--navy); font-weight: 800; flex-shrink: 0; }

/* ── PHOTO GRID ── */
.photo-card.my-photo img { position: relative; z-index: 1; display: block; opacity: 1; }

.svc-card.teal .svc-list li::before { color: var(--teal); }
.navy-axes .svc-axe { background: var(--blue-ll); }
.blue-axes  .svc-axe { background: var(--teal-ll); }
.navy-axes .svc-axe:nth-child(1) .svc-axe-num { background: linear-gradient(135deg, var(--teal), #4ECDC4); }
.navy-axes .svc-axe:nth-child(2) .svc-axe-num { background: linear-gradient(135deg, var(--gold), #F5A623); }
.navy-axes .svc-axe:nth-child(3) .svc-axe-num { background: linear-gradient(135deg, #7B8FD4, var(--navy)); }
.blue-axes .svc-axe:nth-child(1) .svc-axe-num  { background: linear-gradient(135deg, var(--teal), var(--teal2)); }
.blue-axes .svc-axe:nth-child(2) .svc-axe-num  { background: linear-gradient(135deg, var(--gold), #F5A623); }
.blue-axes .svc-axe:nth-child(3) .svc-axe-num  { background: linear-gradient(135deg, var(--navy), var(--navy2)); }

/* ── ONGLETS : bien visibles et cliquables ── */
.svc-tabs { display: flex; gap: 0.5rem; margin-bottom: 1.2rem; }
.svc-tab {
  flex: 1; padding: 0.6rem 0.5rem; border-radius: 10px;
  border: 2px solid var(--teal-l);
  background: white;
  font-size: 0.78rem; font-weight: 800; color: var(--navy);
  cursor: pointer; text-align: center;
  transition: all 0.2s;
  box-shadow: 0 2px 8px rgba(30,58,95,0.08);
}
.svc-tab:hover { background: var(--teal-ll); border-color: var(--teal); transform: translateY(-2px); box-shadow: 0 6px 16px rgba(30,58,95,0.12); }
.svc-tab.active {
  background: linear-gradient(160deg, #4A8FD0 0%, #2D6AA8 40%, var(--teal) 100%);
  color: white; border-color: transparent;
  box-shadow: 0 6px 18px rgba(45,106,168,0.3);
}
.svc-tab-content { display: none; }
.svc-tab-content.active { display: block; }

/* ── MINI PHOTOS ── */
.svc-photos-mini { display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem; margin-top: 1rem; }
.svc-photo-mini { border-radius: 10px; overflow: hidden; aspect-ratio: 4/3; position: relative; }
.svc-photo-mini img { width: 100%; height: 100%; object-fit: cover; display: block; }
.svc-photo-mini-label {
  position: absolute; bottom: 0; left: 0; right: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.65), transparent);
  color: white; font-size: 0.68rem; font-weight: 700;
  padding: 0.6rem 0.5rem 0.4rem;
}

/* ── MODAL CARTE ── */
.modal-carte-overlay{
  display:none;position:fixed;inset:0;z-index:1000;
  background:rgba(15,30,51,0.65);backdrop-filter:blur(6px);
  align-items:center;justify-content:center;padding:1.5rem;
}
.modal-carte-overlay.active{display:flex;}
.modal-carte-box{
  background:white;border-radius:24px;width:100%;max-width:620px;
  overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,0.25);
  position:relative;
}
.modal-carte-box::before{
  content:'';display:block;height:4px;
  background:var(--grad-stripe);
}
.modal-carte-close{
  position:absolute;top:0.9rem;right:1rem;z-index:10;
  background:var(--cream);border:none;border-radius:50%;
  width:32px;height:32px;font-size:1rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  color:var(--navy);transition:background 0.2s;
}
.modal-carte-close:hover{background:var(--blue-l);}
.modal-carte-header{
  display:flex;align-items:center;gap:0.9rem;
  padding:1.2rem 1.5rem 0.9rem;
}
.modal-carte-icon{font-size:1.8rem;}
.modal-carte-title{font-family:'Playfair Display',serif;font-size:1.1rem;color:var(--navy);margin:0;}
.modal-carte-sub{font-size:0.78rem;color:var(--gray);margin:0;}
#map-leaflet{height:560px;width:100%;}
#map-leaflet .leaflet-tile-error{visibility:hidden !important;opacity:0 !important;}
#map-leaflet .leaflet-control-attribution{font-size:0.6rem;}

/* ── Lightbox photos ateliers ── */
.lightbox{
  position:fixed;inset:0;z-index:9000;
  background:rgba(0,0,0,0.88);
  display:flex;align-items:center;justify-content:center;flex-direction:column;
  padding:1rem;
  opacity:0;transition:opacity 0.25s ease;
}
.lightbox.is-open{opacity:1;}
.lightbox[hidden]{display:none!important;}
.lightbox-img{
  max-width:90vw;max-height:80vh;
  object-fit:contain;
  border-radius:12px;
  box-shadow:0 20px 60px rgba(0,0,0,0.5);
  display:block;
}
.lightbox-caption{
  color:rgba(255,255,255,0.75);
  font-size:0.85rem;
  margin-top:0.9rem;
  text-align:center;
  max-width:600px;
}
.lightbox-close{
  position:fixed;top:1.2rem;right:1.2rem;
  background:rgba(255,255,255,0.15);border:2px solid rgba(255,255,255,0.25);
  color:#fff;font-size:1.4rem;width:48px;height:48px;
  border-radius:50%;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  line-height:1;transition:background 0.2s;
}
.lightbox-close:hover,.lightbox-close:focus{background:rgba(255,255,255,0.3);outline:none;}
.lightbox-trigger{cursor:zoom-in;}
@media(prefers-reduced-motion:reduce){.lightbox{transition:none;}}

/* ── Modale devis structures ── */
.svc-devis-btn{
  width:100%;background:none;border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;
  padding:0;text-align:left;
}
.svc-devis-btn:hover .svc-tarif-price{ color:#fff; }
.devis-clic{
  font-size:0.68rem;font-weight:700;
  background:rgba(255,255,255,0.2);
  border-radius:20px;padding:0.15rem 0.55rem;
  margin-left:0.4rem;vertical-align:middle;
  transition:background 0.2s;
}
.svc-devis-btn:hover .devis-clic{ background:rgba(255,255,255,0.35); }

.devis-overlay{
  position:fixed;inset:0;z-index:8000;
  background:rgba(15,30,55,0.7);backdrop-filter:blur(4px);
  display:flex;align-items:flex-start;justify-content:center;
  padding:2rem 1rem;overflow-y:auto;
  opacity:0;pointer-events:none;transition:opacity 0.25s ease;
}
.devis-overlay.open{ opacity:1;pointer-events:all; }
.devis-panel{
  background:#fff;border-radius:20px;
  width:100%;max-width:820px;
  box-shadow:0 32px 80px rgba(15,30,55,0.3);
  position:relative;overflow:hidden;
  transform:translateY(20px);transition:transform 0.3s ease;
}
.devis-overlay.open .devis-panel{ transform:translateY(0); }
.devis-close{
  position:absolute;top:1rem;right:1rem;
  background:var(--blue-l);border:none;
  width:36px;height:36px;border-radius:50%;
  font-size:1rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  color:var(--navy);transition:background 0.2s;z-index:1;
}
.devis-close:hover{ background:var(--teal-l); }
.devis-header{
  display:flex;align-items:center;gap:1rem;
  padding:1.75rem 2rem 1.25rem;
  background:linear-gradient(135deg,var(--navy),var(--teal));
  color:#fff;
}
.devis-header-icon{ font-size:2rem;flex-shrink:0; }
.devis-titre{ font-family:'Playfair Display',serif;font-size:1.2rem;color:#fff;margin:0 0 0.2rem; }
.devis-intro{ font-size:0.78rem;color:rgba(255,255,255,0.8);margin:0; }
.devis-form{ padding:1.5rem 2rem 2rem;display:flex;flex-direction:column;gap:1.25rem; }
.devis-fieldset{
  border:1.5px solid var(--blue-l);border-radius:12px;
  padding:1rem 1.25rem 1.25rem;
}
.devis-legend{
  font-size:0.78rem;font-weight:800;
  color:var(--navy);letter-spacing:0.04em;
  padding:0 0.5rem;
}
.devis-row{ display:grid;grid-template-columns:1fr 1fr;gap:0.9rem;margin-top:0.85rem; }
.devis-field{ display:flex;flex-direction:column;gap:0.3rem; }
.devis-field--full{ grid-column:1/-1; }
.devis-field label{ font-size:0.76rem;font-weight:700;color:var(--navy); }
.devis-field label span[aria-hidden]{ color:var(--teal);margin-left:2px; }
.devis-field input,.devis-field select,.devis-field textarea{
  border:1.5px solid #d1dae6;border-radius:8px;
  padding:0.55rem 0.75rem;font-size:0.82rem;
  color:var(--navy);background:#fff;
  transition:border-color 0.2s;
  font-family:inherit;
}
.devis-field input:focus,.devis-field select:focus,.devis-field textarea:focus{
  outline:none;border-color:var(--teal);
  box-shadow:0 0 0 3px rgba(45,122,110,0.15);
}
.devis-field input.invalid,.devis-field select.invalid,.devis-field textarea.invalid{
  border-color:#e55;
}
.devis-radios{ display:flex;flex-wrap:wrap;gap:0.5rem 1.25rem;margin-top:0.25rem; }
.devis-radio{ display:flex;align-items:center;gap:0.4rem;font-size:0.8rem;color:var(--navy);cursor:pointer; }
.devis-checks{ display:flex;flex-wrap:wrap;gap:0.45rem 1.25rem;margin-top:0.25rem; }
.devis-check{ display:flex;align-items:center;gap:0.4rem;font-size:0.8rem;color:var(--navy);cursor:pointer; }
/* ── CAPTCHA anti-spam ── */
.devis-captcha-wrap{
  background:var(--blue-ll);
  border:1.5px solid var(--blue-l);
  border-radius:14px;
  padding:1rem 1.25rem;
  margin-bottom:1.25rem;
}
.devis-captcha-label{
  display:block;
  font-size:0.82rem;font-weight:700;
  color:var(--navy);margin-bottom:0.6rem;
  line-height:1.4;
}
.devis-captcha-icon{margin-right:0.3rem;}
.devis-captcha-row{display:flex;align-items:center;gap:0.6rem;}
.devis-captcha-input{
  flex:1;max-width:140px;
  border:1.5px solid var(--blue-l);border-radius:8px;
  padding:0.55rem 0.75rem;
  font-size:1rem;font-weight:700;
  color:var(--navy);background:#fff;
  transition:border-color 0.2s;
  min-height:44px;
}
.devis-captcha-input:focus{border-color:var(--teal);outline:none;}
.devis-captcha-input.invalid{border-color:#e55;}
.devis-captcha-refresh{
  background:none;border:1.5px solid var(--blue-l);
  border-radius:8px;width:40px;height:40px;
  font-size:1.1rem;cursor:pointer;color:var(--navy);
  transition:background 0.2s,transform 0.2s;
  flex-shrink:0;
}
.devis-captcha-refresh:hover{background:var(--blue-l);transform:rotate(180deg);}
.devis-captcha-refresh:focus-visible{outline:3px solid var(--teal);outline-offset:2px;}
.devis-captcha-error{
  font-size:0.75rem;color:#c0392b;font-weight:700;
  margin-top:0.4rem;margin-bottom:0;
}

.devis-submit-wrap{ text-align:center;padding-top:0.5rem; }
.devis-rgpd{ font-size:0.68rem;color:var(--gray);margin-bottom:0.9rem;line-height:1.5; }
.devis-submit{
  display:inline-flex;align-items:center;gap:0.6rem;
  background:linear-gradient(135deg,var(--navy),var(--teal));
  color:#fff;border:none;border-radius:50px;
  padding:0.85rem 2.5rem;font-size:0.9rem;font-weight:700;
  cursor:pointer;transition:opacity 0.2s,transform 0.2s;
  letter-spacing:0.03em;
}
.devis-submit:hover{ opacity:0.9;transform:translateY(-2px); }
@media(max-width:600px){
  .devis-row{grid-template-columns:1fr;}
  .devis-form{padding:1rem 1rem 1.5rem;}
  .devis-header{padding:1.25rem 1rem 1rem;}
}

/* ═══════════════════════════════
   BULLES PUBLICS — RESPONSIVE
   (placé après les styles de base pour
   que les media queries l'emportent)
═══════════════════════════════ */
@media(max-width:950px){
  .hero-publics{
    grid-template-columns:repeat(3,1fr);
    gap:0.85rem;
  }
  .pub-btn{width:100%;}
  .pub-circle{max-width:74px;}
  .pub-label{font-size:0.7rem;}
}
@media(min-width:601px) and (max-width:950px){
  .hero-publics{
    grid-template-columns:repeat(6,1fr);
    gap:0.6rem;
  }
  .pub-btn{width:100%;}
  .pub-circle{max-width:82px;}
}
/* ── Bouton Google Avis ── */
.google-avis-wrap{
  margin-top:1.5rem;
  padding-top:1.5rem;
  border-top:1px solid var(--blue-l);
  text-align:center;
}
.google-avis-label{
  font-size:0.78rem;color:var(--gray);margin-bottom:0.75rem;
}
.google-avis-btn{
  display:inline-flex;align-items:center;gap:0.6rem;
  background:#fff;
  border:2px solid #e2e8f0;
  border-radius:50px;
  padding:0.65rem 1.4rem;
  font-size:0.85rem;font-weight:700;
  color:var(--navy);
  text-decoration:none;
  box-shadow:0 2px 12px rgba(0,0,0,0.08);
  transition:box-shadow 0.2s,transform 0.2s;
}
.google-avis-btn:hover{
  box-shadow:0 6px 20px rgba(0,0,0,0.14);
  transform:translateY(-2px);
}
.google-avis-btn:focus-visible{
  outline:3px solid var(--teal);outline-offset:3px;
}
.google-logo{flex-shrink:0;}
.google-avis-stars{
  color:#FBBC05;letter-spacing:1px;font-size:0.9rem;
}
.google-avis-inner{
  display:flex;align-items:center;justify-content:center;gap:1.5rem;flex-wrap:wrap;
}
.google-avis-qr{display:flex;flex-direction:column;align-items:center;gap:0.3rem;}
.google-avis-qr img{border-radius:8px;border:2px solid var(--blue-l);}
.google-avis-qr-label{font-size:0.65rem;color:var(--gray);text-align:center;}

@media(max-width:400px){
  .hero-publics{gap:0.6rem;}
  .pub-btn{width:100%;}
  .pub-circle{max-width:62px;}
  .pub-label{font-size:0.64rem;}
  .hero-pills{max-width:260px;}
  .hero-pills .pill{font-size:0.67rem;padding:0.45rem 0.4rem;}
}

/* ═══════════════════════════════
   CARTE & DEVIS — MOBILE
═══════════════════════════════ */
@media(max-width:950px){

  /* ── Modale carte ───────────────────── */
  .modal-carte-overlay{padding:0.75rem;}
  .modal-carte-box{
    border-radius:16px;
    width:100%;
    max-width:100%;
  }
  .modal-carte-header{padding:0.9rem 1rem 0.7rem;}
  .modal-carte-icon{font-size:1.4rem;}
  .modal-carte-title{font-size:0.95rem;}
  .modal-carte-sub{font-size:0.72rem;}
  .modal-carte-close{
    width:44px;height:44px;font-size:1.1rem;
    top:0.5rem;right:0.5rem;
  }
  #map-leaflet{height:320px;}

  /* ── Modale devis ───────────────────── */
  .devis-overlay{
    padding:0;
    align-items:flex-end;
  }
  .devis-panel{
    border-radius:20px 20px 0 0;
    max-width:100%;
    max-height:92vh;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }
  .devis-header{padding:1.25rem 1rem 1rem;gap:0.75rem;}
  .devis-header-icon{font-size:1.5rem;}
  .devis-titre{font-size:1rem;}
  .devis-intro{font-size:0.74rem;}
  .devis-close{
    width:44px;height:44px;font-size:1.1rem;
    top:0.75rem;right:0.75rem;
  }
  .devis-form{padding:1rem 1rem 1.5rem;gap:1rem;}
  .devis-fieldset{padding:0.75rem 0.9rem 1rem;}
  .devis-legend{font-size:0.74rem;}
  .devis-row{grid-template-columns:1fr;gap:0.75rem;}
  .devis-field label{font-size:0.74rem;}
  .devis-field input,.devis-field select,.devis-field textarea{
    font-size:1rem; /* évite le zoom auto iOS */
    padding:0.65rem 0.75rem;
  }
  .devis-radios,.devis-checks{flex-direction:column;gap:0.5rem;}
  .devis-radio,.devis-check{font-size:0.85rem;}
  .devis-submit{width:100%;justify-content:center;padding:0.9rem 1rem;}
}

/* ═══════════════════════════════
   BOUTON DARK MODE — NAV
═══════════════════════════════ */
.nav-dark-toggle{
  background:none;border:1.5px solid rgba(30,58,95,0.2);
  border-radius:50px;cursor:pointer;
  display:flex;align-items:center;gap:0.3rem;
  padding:0.3rem 0.65rem;
  font-size:0.95rem;
  transition:background 0.2s,border-color 0.2s;
  margin-left:0.5rem;flex-shrink:0;
}
.nav-dark-toggle:hover{background:var(--blue-l);}
.nav-dark-toggle:focus-visible{outline:3px solid var(--teal);outline-offset:2px;}
.dark-icon-moon{display:none;}
.dark-icon-sun{display:inline;}

/* ═══════════════════════════════
   MODE SOMBRE — VARIABLES
═══════════════════════════════ */
body.dark-mode{
  --navy:    #5B9BD5;
  --navy2:   #4A8BC4;
  --teal:    #4DB8A8;
  --teal2:   #3DA898;
  --teal-l:  #1a3a35;
  --teal-ll: #122a26;
  --blue-l:  #1e2d42;
  --blue-ll: #162236;
  --cream:   #0f1923;
  --gold:    #E8B86D;
  --gold-l:  #2a1f0a;
  --dark:    #E8EDF4;
  --gray:    #A0AEC0;
  --white:   #1a2535;
  background:#0f1923;
  color:#E8EDF4;
}

/* Fond body en dark */
body.dark-mode{
  background:#0f1923 !important;
}

/* Icônes inversées en dark mode */
body.dark-mode .dark-icon-sun{display:none;}
body.dark-mode .dark-icon-moon{display:inline;}
body.dark-mode .nav-dark-toggle{border-color:rgba(255,255,255,0.2);}
body.dark-mode .nav-dark-toggle:hover{background:rgba(255,255,255,0.08);}

/* Nav */
body.dark-mode nav{background:rgba(15,25,35,0.97);border-bottom-color:rgba(255,255,255,0.08);}
body.dark-mode .nav-brand strong{color:#E8EDF4;}
body.dark-mode .nav-ham span:not(.nav-ham-label){background:#A0AEC0;}
body.dark-mode .nav-ham-label{color:#A0AEC0;}
body.dark-mode .nav-modes-mobile{background:rgba(255,255,255,0.08);border-color:rgba(255,255,255,0.15);}
body.dark-mode .nav-modes-mobile .a11y-btn,
body.dark-mode .nav-modes-mobile .nav-dark-toggle{color:#A0AEC0;}
body.dark-mode .nav-modes-mobile .a11y-btn[aria-pressed="true"]{background:rgba(77,184,168,0.25);}
body.dark-mode .nav-mobile{background:rgba(15,25,35,0.98);}
body.dark-mode .nav-mobile-link{color:#A0AEC0;}
body.dark-mode .nav-mobile-link:hover{color:var(--teal);background:rgba(77,184,168,0.08);}
body.dark-mode .nav-mobile-link{border-bottom-color:rgba(255,255,255,0.06);}
body.dark-mode .nav-mobile-a11y{background:rgba(255,255,255,0.03);}
body.dark-mode .nav-mobile-a11y-title{color:var(--teal);}
body.dark-mode .nav-mobile-a11y-btn{background:rgba(255,255,255,0.06);border-color:rgba(255,255,255,0.1);color:#A0AEC0;}
body.dark-mode .nav-mobile-a11y-btn:hover{background:rgba(255,255,255,0.1);}
body.dark-mode .nav-mobile-a11y-btn[aria-pressed="true"]{background:rgba(77,184,168,0.2);border-color:var(--teal);color:var(--teal);}
body.dark-mode .nav-links a{color:#A0AEC0;}
body.dark-mode .nav-links a:hover{color:var(--teal);}
body.dark-mode .nav-cta{
  background:linear-gradient(135deg,#4DB8A8,#2D7A6E) !important;
  color:#fff !important;
  box-shadow:0 2px 12px rgba(77,184,168,0.3);
}

/* Hero */
body.dark-mode .hero{background:linear-gradient(135deg,#0d1e30 0%,#0f2a24 100%);}
body.dark-mode .hero::before{background:linear-gradient(135deg,#1a3a5f 0%,#1a4a3e 100%);}
body.dark-mode .hero-title{color:#E8EDF4;}
body.dark-mode .hero-title em{
  color:#7EDDD0 !important;
  -webkit-text-fill-color:#7EDDD0 !important;
}
body.dark-mode .hero-sub{color:#A0AEC0;}
body.dark-mode .hero-italic{color:var(--teal);}

/* Hero card publics */
body.dark-mode .hero-card{
  background-image:linear-gradient(#1a2535,#1a2535),linear-gradient(90deg,var(--navy),var(--teal),var(--gold));
  color:#E8EDF4;
}
body.dark-mode .pub-label{color:#E8EDF4;}

/* Sections */
body.dark-mode .section{background:transparent;}
body.dark-mode .s-title{color:#E8EDF4;}
body.dark-mode .s-sub{color:#A0AEC0;}
body.dark-mode .pay-head .s-sub{color:rgba(255,255,255,0.9) !important;}
/* Badges de section en mode sombre */
body.dark-mode .s-tag{
  color:#5FD4C4;
}
body.dark-mode .s-tag-shine{
  background:rgba(77,184,168,0.18);
  border:1.5px solid rgba(77,184,168,0.45);
  color:#5FD4C4;
}
body.dark-mode .s-tag-shine::after{
  background:linear-gradient(90deg,transparent,rgba(255,255,255,0.12),transparent);
}
/* Variante sur fond sombre (section paiements) */
body.dark-mode .s-tag-shine.s-tag-shine-light{
  background:rgba(255,255,255,0.1);
  border:1.5px solid rgba(255,255,255,0.25);
  color:#fff;
}
/* Badges catégorie ateliers */
body.dark-mode .atelier-cat-label{
  background:rgba(77,184,168,0.18);
  border:1.5px solid rgba(77,184,168,0.45);
  color:#5FD4C4;
}

/* About */
body.dark-mode .about-text h2{color:#E8EDF4;}
body.dark-mode .about-body{color:#A0AEC0;}
body.dark-mode .about-photo-wrap{border-color:#1e2d42;}
body.dark-mode .about-float{
  background:#1e2d42;
  box-shadow:0 12px 36px rgba(0,0,0,0.35);
}
body.dark-mode .about-float p{
  color:#E8EDF4;
}

/* Services */
body.dark-mode .svc-card{background:#1a2535;border-color:#1e2d42;}
body.dark-mode .svc-toggle{background:#1e2d42;color:#E8EDF4;border-color:#2a3d52;}
body.dark-mode .svc-toggle:hover{background:#253347;}
body.dark-mode .svc-drawer{background:#1a2535;box-shadow:0 16px 40px rgba(0,0,0,0.4);}
body.dark-mode .svc-drawer-inner{border-top-color:transparent;}

/* Tiroir — titres de colonnes */
body.dark-mode .svc-groupe-section-title{color:#5FD4C4;}

/* Tiroir — listes */
body.dark-mode .svc-groupe-list li{
  background:rgba(255,255,255,0.05);
  color:#C8D6E5;
  border-radius:8px;
}
body.dark-mode .svc-groupe-list li::before{color:#5FD4C4;}
body.dark-mode .svc-groupe-list--gold li{background:rgba(200,151,58,0.1);}
body.dark-mode .svc-groupe-list--gold li::before{color:var(--gold);}

/* Tiroir — note bas (convention, CESU…) */
body.dark-mode .svc-groupe-renouvel{
  background:rgba(255,255,255,0.06);
  color:#A0AEC0;
  border:1px solid rgba(255,255,255,0.1);
}

/* Tiroir — cartes axes numérotées */
body.dark-mode .navy-axes .svc-axe,
body.dark-mode .blue-axes  .svc-axe{
  background:#1e2d42;
  border-color:rgba(255,255,255,0.07);
}
body.dark-mode .svc-axe-title{color:#E8EDF4;}
body.dark-mode .svc-axe-sub{color:#8FA3BC;}

/* Tiroir — svc-list (liste simple avec →) */
body.dark-mode .svc-list li{color:#C8D6E5;}
body.dark-mode .svc-list li::before{color:#5FD4C4;}
body.dark-mode .svc-card.teal .svc-list li::before{color:#6EA8FF;}
body.dark-mode .svc-card.navy .svc-list li::before{color:#5FD4C4;}
/* Encadrés tarifaires dans les cartes */
body.dark-mode .svc-tarif-row{
  background:rgba(0,0,0,0.28);
  border:1px solid rgba(255,255,255,0.15);
}
body.dark-mode .svc-tarif-row--pref{
  background:rgba(0,0,0,0.35);
  border:1px solid rgba(255,255,255,0.28);
}
body.dark-mode .svc-tarif-label{color:#ffffff;}
body.dark-mode .svc-tarif-price{color:#ffffff;text-shadow:0 1px 4px rgba(0,0,0,0.3);}
body.dark-mode .svc-tarif-unit{color:rgba(255,255,255,0.85);}
body.dark-mode .svc-tarif-delai{
  background:rgba(0,0,0,0.28);
  color:#ffffff;
  border:1px solid rgba(255,255,255,0.15);
}
body.dark-mode .svc-tarif-delai strong{color:#ffffff;}
body.dark-mode .svc-chip{background:#1e2d42;color:#A0AEC0;}

/* Ateliers */
body.dark-mode .ag{background:#1a2535;border-color:#1e2d42;}
body.dark-mode .ag-title{color:#E8EDF4;}
body.dark-mode .ag-desc{color:#A0AEC0;}
body.dark-mode .ag-item{background:#1e2d42;}
body.dark-mode .ag-item-title{color:#E8EDF4;}
body.dark-mode .ag-item-desc{color:#A0AEC0;}

/* Réalisations */
body.dark-mode .temo-card{background:#1a2535;border-color:#1e2d42;}
body.dark-mode .temo-realisation-titre{color:var(--teal);}
body.dark-mode .temo-quote p{color:#A0AEC0;}
body.dark-mode .temo-role{color:#A0AEC0;}

/* Tarifs */
body.dark-mode .tarif-card{background:#1a2535;border-color:#1e2d42;}
body.dark-mode .tarif-price{color:#E8EDF4;}
body.dark-mode .tarif-label{color:#A0AEC0;}

/* Paiements */
body.dark-mode .pay-card{background:#1a2535;border-color:#1e2d42;}
body.dark-mode .pay-title{color:#E8EDF4;}
body.dark-mode .pay-desc{color:#A0AEC0;}

/* Contact */
body.dark-mode .contact-title{color:#E8EDF4;}
body.dark-mode .contact-text{color:#A0AEC0;}
body.dark-mode .cta-box{background:#1a2535;border-color:#1e2d42;}
body.dark-mode .cta-item{color:#A0AEC0;}
body.dark-mode .google-avis-btn{background:#1e2d42;border-color:#2a3d52;color:#E8EDF4;}
body.dark-mode .google-avis-label{color:#A0AEC0;}
body.dark-mode .google-avis-qr-label{color:#A0AEC0;}

/* Footer */
body.dark-mode footer{background:#080f18;}
body.dark-mode .foot-name{color:#E8EDF4;}
body.dark-mode .foot-sub{color:#A0AEC0;}
body.dark-mode .foot-p{color:#A0AEC0;}
body.dark-mode .foot-h{color:#E8EDF4;}
body.dark-mode .foot-legal-h3{color:#E8EDF4;}
body.dark-mode .foot-legal-p{color:#A0AEC0;}
body.dark-mode .foot-legal-link{color:var(--teal);}

/* Modales */
body.dark-mode .pub-modal{background:#1a2535;border-top-color:var(--teal);}
body.dark-mode .pub-modal-content{background:#1a2535;color:#E8EDF4;}
body.dark-mode .pub-modal-title{color:#E8EDF4;}
body.dark-mode .pub-modal-sub{color:#A0AEC0;}
body.dark-mode .pub-modal-body{color:#A0AEC0;}
body.dark-mode .pub-modal-list li{color:#C8D6E5;}
body.dark-mode .pub-modal-list li::before{color:var(--teal);}
body.dark-mode .pub-modal-close{background:#253347;color:#E8EDF4;}
body.dark-mode .devis-panel{background:#1a2535;}
body.dark-mode .devis-fieldset{border-color:#2a3d52;}
body.dark-mode .devis-legend{color:#E8EDF4;}
body.dark-mode .devis-field label{color:#E8EDF4;}
body.dark-mode .devis-field input,
body.dark-mode .devis-field select,
body.dark-mode .devis-field textarea{
  background:#0f1923;border-color:#2a3d52;color:#E8EDF4;
}
body.dark-mode .devis-radio,
body.dark-mode .devis-check{color:#E8EDF4;}
body.dark-mode .devis-rgpd{color:#A0AEC0;}
body.dark-mode .devis-captcha-wrap{background:#0f1923;border-color:#2a3d52;}
body.dark-mode .devis-captcha-label{color:#E8EDF4;}
body.dark-mode .devis-captcha-input{background:#1a2535;border-color:#2a3d52;color:#E8EDF4;}
body.dark-mode .devis-captcha-refresh{border-color:#2a3d52;color:#E8EDF4;}
body.dark-mode .devis-captcha-refresh:hover{background:#253347;}
body.dark-mode .modal-carte-box{background:#1a2535;}
body.dark-mode .modal-carte-title{color:#E8EDF4;}
body.dark-mode .modal-carte-sub{color:#A0AEC0;}

/* ═══════════════════════════════════════════════════════
   PANNEAU ACCESSIBILITÉ
═══════════════════════════════════════════════════════ */
/* ── Groupe de tous les boutons de mode (a11y + sombre) ── */
.nav-modes-group{
  display:flex;align-items:center;gap:0.2rem;
  background:rgba(255,255,255,0.45);
  border:1.5px solid rgba(30,58,95,0.12);
  border-radius:50px;
  padding:0.2rem 0.35rem;
  backdrop-filter:blur(8px);
  margin-left:0.5rem;
}
/* ── Tooltip sur les boutons de la nav (apparaît EN DESSOUS) ── */
nav{overflow:visible !important;}
.nav-modes-group{overflow:visible;}
.nav-tooltip{position:relative;}

.nav-tooltip::after{
  content:attr(data-tooltip);
  position:absolute;
  top:calc(100% + 10px);
  left:50%;
  transform:translateX(-50%) translateY(-4px);
  background:#1E3A5F;
  color:#fff;
  font-family:'Nunito',sans-serif;
  font-size:0.72rem;
  font-weight:700;
  white-space:nowrap;
  padding:0.35rem 0.75rem;
  border-radius:8px;
  box-shadow:0 6px 20px rgba(0,0,0,0.22);
  pointer-events:none;
  opacity:0;
  transition:opacity 0.2s ease, transform 0.2s ease;
  z-index:9999;
}
/* Petite flèche vers le haut */
.nav-tooltip::before{
  content:'';
  position:absolute;
  top:calc(100% + 4px);
  left:50%;
  transform:translateX(-50%) translateY(-4px);
  border:5px solid transparent;
  border-bottom-color:#1E3A5F;
  pointer-events:none;
  opacity:0;
  transition:opacity 0.2s ease, transform 0.2s ease;
  z-index:9999;
}
.nav-tooltip:hover::after,
.nav-tooltip:focus-visible::after{
  opacity:1;
  transform:translateX(-50%) translateY(0);
}
.nav-tooltip:hover::before,
.nav-tooltip:focus-visible::before{
  opacity:1;
  transform:translateX(-50%) translateY(0);
}
/* Bouton actif → couleur teal */
.nav-tooltip[aria-pressed="true"]::after{background:var(--teal);}
.nav-tooltip[aria-pressed="true"]::before{border-bottom-color:var(--teal);}

/* Dark mode */
body.dark-mode .nav-tooltip::after{background:#E8EDF4;color:#0f1923;}
body.dark-mode .nav-tooltip::before{border-bottom-color:#E8EDF4;}
body.dark-mode .nav-tooltip[aria-pressed="true"]::after{background:var(--teal);color:#fff;}
body.dark-mode .nav-tooltip[aria-pressed="true"]::before{border-bottom-color:var(--teal);}

.nav-modes-sep{
  width:1px;height:18px;
  background:rgba(30,58,95,0.18);
  margin:0 0.15rem;
  flex-shrink:0;
}
/* Adapter le dark toggle à l'intérieur du groupe */
.nav-modes-group .nav-dark-toggle{
  margin-left:0;
  border:none;
  background:none;
  padding:0.25rem 0.5rem;
}
.nav-modes-group .nav-dark-toggle:hover{
  background:var(--blue-l);
  border-radius:50px;
}
/* Adapter les boutons a11y dans le groupe */
.nav-modes-group .a11y-btn{
  border:none;
  background:none;
  border-radius:50px;
}
.nav-modes-group .a11y-btn:hover{
  background:var(--blue-l);
  border:none;
}
.nav-modes-group .a11y-btn[aria-pressed="true"]{
  background:var(--teal);
  border:none;
}

/* Mode sombre */
body.dark-mode .nav-modes-group{
  background:rgba(255,255,255,0.06);
  border-color:rgba(255,255,255,0.12);
}
body.dark-mode .nav-modes-sep{background:rgba(255,255,255,0.15);}
body.dark-mode .nav-modes-group .nav-dark-toggle:hover,
body.dark-mode .nav-modes-group .a11y-btn:hover{
  background:rgba(255,255,255,0.1);
}

/* ── Boutons accessibilité (styles communs) ── */
.a11y-inline{
  display:flex;align-items:center;gap:0.25rem;
  margin-left:0.1rem;
}
.a11y-btn{
  background:none;
  border:1.5px solid rgba(30,58,95,0.18);
  border-radius:50px;
  cursor:pointer;
  width:34px;height:34px;
  display:flex;align-items:center;justify-content:center;
  font-size:1rem;
  color:var(--navy);
  transition:background 0.18s,border-color 0.18s,transform 0.18s;
  flex-shrink:0;
}
.a11y-btn--text{
  width:auto;padding:0 0.6rem;
  font-size:0.78rem;font-weight:800;letter-spacing:0.02em;
}
.a11y-btn:hover{
  background:var(--blue-l);border-color:var(--teal);
  transform:scale(1.08);
}
.a11y-btn:focus-visible{outline:3px solid var(--teal);outline-offset:2px;}
.a11y-btn[aria-pressed="true"]{
  background:var(--teal);
  border-color:var(--teal2);
  color:#fff;
  box-shadow:0 2px 10px rgba(45,122,110,0.35);
}
/* Boutons accessibilité DANS LE MENU DÉROULANT MOBILE : pleine largeur, alignés
   à gauche. Sans cette spécificité supérieure, .a11y-btn (petit rond 34px défini
   plus bas) les écrasait en cercles. */
.nav-mobile-a11y-btns .nav-mobile-a11y-btn{
  width:100%;
  height:auto;
  margin:0;                              /* annule le margin-left du dark toggle */
  padding:0.6rem 0.85rem;                /* même padding que les 3 autres */
  border:1.5px solid rgba(30,58,95,0.12);/* même bordure */
  border-radius:10px;
  justify-content:center;
  text-align:center;
  gap:0.5rem;
  font-size:0.85rem;
  color:#374151;
}
.nav-mobile-a11y-btns .nav-mobile-a11y-btn[aria-pressed="true"]{
  background:rgba(45,122,110,0.15);
  border-color:var(--teal);
  color:var(--teal);
}
/* Survol identique pour les 4 boutons : juste un fond plus marqué, PAS de
   grossissement (le scale de .a11y-btn faisait chevaucher le bouton voisin). */
.nav-mobile-a11y-btns .nav-mobile-a11y-btn:hover{
  transform:none;
  background:rgba(30,58,95,0.1);
  border-color:rgba(30,58,95,0.12);
}

/* ── Lecteur audio (Web Speech) ── */
/* Bouton occupant toute la largeur du menu déroulant (le dernier de la liste) */
.a11y-full{ grid-column:1 / -1; }
/* Surlignage du passage en cours de lecture (visible sur fond clair ET foncé) */
.tts-reading{
  background:rgba(200,151,58,0.28);
  box-shadow:0 0 0 5px rgba(200,151,58,0.28);
  border-radius:5px;
}
body.high-contrast .tts-reading{
  background:#FFFF00 !important;
  box-shadow:0 0 0 5px #FFFF00 !important;
  color:#000 !important;
}

.a11y-btn--reset{
  width:auto;
  padding:0 0.7rem;
  font-size:0.7rem;
  font-weight:800;
  letter-spacing:0.02em;
  color:var(--navy);
  border-color:rgba(30,58,95,0.25);
  background:rgba(255,255,255,0.5);
  opacity:1;
  transition:background 0.18s,border-color 0.18s,color 0.18s,transform 0.18s;
}
.a11y-btn--reset:hover{
  background:var(--gold-l);
  border-color:var(--gold);
  color:var(--gold);
  transform:scale(1.05);
}
.a11y-btn--reset.has-active{
  background:var(--gold-l);
  border-color:var(--gold);
  color:var(--gold);
  font-weight:900;
}
body.dark-mode .a11y-btn--reset{
  color:#C8D6E5;
  border-color:rgba(255,255,255,0.2);
  background:rgba(255,255,255,0.06);
}
body.dark-mode .a11y-btn--reset:hover{background:rgba(200,151,58,0.15);border-color:var(--gold);color:var(--gold);}
body.dark-mode .a11y-btn--reset.has-active{background:rgba(200,151,58,0.18);border-color:var(--gold);color:var(--gold);}

/* ═══════════════════════════════════════════════════════
   MODE DYSLEXIE
   Police Lexend : formes de lettres claires,
   espacement optimisé pour la lisibilité
═══════════════════════════════════════════════════════ */
body.dyslexia,
body.dyslexia p,
body.dyslexia li,
body.dyslexia span,
body.dyslexia a,
body.dyslexia label,
body.dyslexia input,
body.dyslexia select,
body.dyslexia textarea,
body.dyslexia button{
  font-family:'Lexend',sans-serif !important;
}
body.dyslexia{
  letter-spacing:0.06em;
  word-spacing:0.22em;
  line-height:1.95;
}
body.dyslexia p,
body.dyslexia li{
  line-height:2;
  letter-spacing:0.06em;
  word-spacing:0.22em;
}
body.dyslexia .s-title,
body.dyslexia h2,body.dyslexia h3,body.dyslexia h4{
  font-family:'Lexend',sans-serif !important;
  letter-spacing:0.04em;
  line-height:1.5;
}

/* ═══════════════════════════════════════════════════════
   MODE CONTRASTE ÉLEVÉ — CLAIR
═══════════════════════════════════════════════════════ */
/* ═══════════════════════════════════════════════════════
   MODE CONTRASTE ÉLEVÉ — CLAIR
   Règle : fond blanc = texte noir | fond sombre = texte blanc
═══════════════════════════════════════════════════════ */
body.high-contrast{
  background:#fff !important;
  color:#000 !important;
}

/* Textes généraux sur fond blanc */
body.high-contrast p,
body.high-contrast li,
body.high-contrast span,
body.high-contrast .s-sub,
body.high-contrast .about-body,
body.high-contrast .svc-list li,
body.high-contrast .svc-groupe-list li,
body.high-contrast .svc-axe-sub,
body.high-contrast .ag-desc,
body.high-contrast .temo-quote p,
body.high-contrast .foot-p,
body.high-contrast .foot-sub{color:#000 !important;}

body.high-contrast .s-title,
body.high-contrast h2,
body.high-contrast h3,
body.high-contrast h4{color:#00006B !important;}

body.high-contrast a{color:#00006B !important;text-decoration:underline;}

/* Badges section */
body.high-contrast .s-tag,
body.high-contrast .s-tag-shine{
  background:#E0EDF8 !important;color:#00006B !important;
  border:1.5px solid #00006B !important;
}
body.high-contrast .atelier-cat-label{
  background:#E0EDF8 !important;color:#00006B !important;
  border:1.5px solid #00006B !important;
}

/* Nav */
body.high-contrast nav{background:#fff !important;border-bottom:2px solid #000 !important;}
body.high-contrast .nav-links a{color:#00006B !important;font-weight:800;}
body.high-contrast a.nav-cta,
body.high-contrast .nav-links a.nav-cta{
  background:#fff !important;
  color:#00006B !important;
  border:3px solid #00006B !important;
  font-weight:900 !important;
  text-decoration:none !important;
  box-shadow:none !important;
  animation:none !important;
  -webkit-text-fill-color:#00006B !important;
}
body.high-contrast a.nav-cta:hover{
  background:#00006B !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}
body.dark-mode.high-contrast a.nav-cta,
body.dark-mode.high-contrast .nav-links a.nav-cta{
  background:#FFFF00 !important;
  color:#000 !important;
  border:3px solid #000 !important;
  font-weight:900 !important;
  text-decoration:none !important;
  animation:none !important;
  -webkit-text-fill-color:#000 !important;
}
body.dark-mode.high-contrast a.nav-cta:hover{
  background:#fff !important;
  color:#000 !important;
  -webkit-text-fill-color:#000 !important;
}
body.high-contrast .nav-brand strong{color:#000 !important;}

/* Hero — fond sombre : tout en blanc */
body.high-contrast .hero{background:#00006B !important;}
body.high-contrast .hero-title,
body.high-contrast .hero-title .grad{color:#fff !important;-webkit-text-fill-color:#fff !important;}
body.high-contrast .hero-title em{color:#FFFF00 !important;-webkit-text-fill-color:#FFFF00 !important;}
body.high-contrast .hero-sub,
body.high-contrast .hero-italic,
body.high-contrast .hero-badge{color:#fff !important;}
body.high-contrast .hero-badge{background:rgba(255,255,255,0.2) !important;border-color:rgba(255,255,255,0.5) !important;}
body.high-contrast .pill{background:#fff !important;color:#00006B !important;border:2px solid #fff !important;font-weight:900;}

/* Section axes — fond sombre */
body.high-contrast .axes{background:#00006B !important;}
body.high-contrast .axes .s-title,
body.high-contrast .axes .s-sub,
body.high-contrast .axes .s-tag,
body.high-contrast .axe-card,
body.high-contrast .axe-card *{color:#fff !important;border-color:rgba(255,255,255,0.5) !important;}
body.high-contrast .axe-card{background:rgba(255,255,255,0.1) !important;border:2px solid rgba(255,255,255,0.6) !important;}

/* Cartes services — tête sur fond sombre */
body.high-contrast .svc-card{background:#fff !important;border:2px solid #000 !important;}
body.high-contrast .svc-head{background:#00006B !important;}
body.high-contrast .svc-title,
body.high-contrast .svc-sub{color:#fff !important;}
body.high-contrast .svc-tarif-label,
body.high-contrast .svc-tarif-price,
body.high-contrast .svc-tarif-unit,
body.high-contrast .svc-tarif-delai{color:#fff !important;}
body.high-contrast .svc-tarif-row{background:rgba(255,255,255,0.15) !important;border:1px solid rgba(255,255,255,0.4) !important;}
body.high-contrast .svc-toggle{background:rgba(255,255,255,0.15) !important;color:#fff !important;border:1.5px solid #fff !important;}
body.high-contrast .svc-axe-title{color:#00006B !important;}
body.high-contrast .svc-axe-sub{color:#000 !important;}
body.high-contrast .navy-axes .svc-axe,
body.high-contrast .blue-axes  .svc-axe{background:#E0EDF8 !important;border:1px solid #00006B !important;}
body.high-contrast .svc-groupe-section-title{color:#00006B !important;font-weight:900;}
body.high-contrast .svc-groupe-renouvel{color:#000 !important;background:#E0EDF8 !important;border:2px solid #000 !important;}
body.high-contrast .svc-groupe-places{background:#00006B !important;color:#fff !important;border:2px solid #000 !important;}
body.high-contrast .svc-groupe-places strong{color:#fff !important;}
body.high-contrast .svc-axe-num{background:#00006B !important;color:#fff !important;}

/* Tiroir services */
body.high-contrast .svc-drawer{background:#fff !important;border:2px solid #000 !important;}

/* Ateliers */
body.high-contrast .ag{background:#fff !important;border:2px solid #000 !important;}
body.high-contrast .ag-title{color:#00006B !important;}
body.high-contrast .ag-item{background:#E0EDF8 !important;border:1px solid #000 !important;}
body.high-contrast .ag-item-title{color:#00006B !important;}
body.high-contrast .ag-item-desc{color:#000 !important;}

/* Réalisations — mode contraste élevé clair */
body.high-contrast .temoignages{background:#fff !important;}
body.high-contrast .temo-head .s-title{color:#00006B !important;}
body.high-contrast .temo-head .s-sub{color:#000 !important;}
body.high-contrast .temo-card{background:#fff !important;border:2px solid #000 !important;}
body.high-contrast .temo-card::before{opacity:0.1 !important;}
body.high-contrast .temo-realisation-titre{color:#00006B !important;}
body.high-contrast .temo-label-what{
  color:#00006B !important;
  font-weight:900 !important;
  border-bottom:1px solid #00006B;
  padding-bottom:2px;
}
body.high-contrast .temo-quote p{color:#000 !important;}
body.high-contrast .temo-author{background:#E0EDF8 !important;border-top:2px solid #000 !important;}
body.high-contrast .temo-initials{color:#00006B !important;font-weight:900 !important;}
body.high-contrast .temo-role{color:#000 !important;}

/* Tarifs */
body.high-contrast .tarif-card{background:#fff !important;border:2px solid #000 !important;}
body.high-contrast .tarif-price{color:#000 !important;}
body.high-contrast .tarif-label{color:#000 !important;}

/* Paiements — fond sombre */
/* Paiements — mode contraste élevé clair */
body.high-contrast .paiements{background:#fff !important;}
body.high-contrast .pay-head .s-tag,
body.high-contrast .pay-head .s-tag-shine{background:#E0EDF8 !important;color:#00006B !important;border:1.5px solid #00006B !important;}
body.high-contrast .pay-head .s-title{color:#00006B !important;}
body.high-contrast .pay-head .s-sub{color:#000 !important;}
body.high-contrast .pay-card{
  background:#E0EDF8 !important;
  border:2px solid #00006B !important;
  box-shadow:0 2px 8px rgba(0,0,106,0.15) !important;
}
body.high-contrast .pay-card:hover{background:#B3C8E0 !important;}
body.high-contrast .pay-icon{filter:none;}
body.high-contrast .pay-title{color:#00006B !important;}
body.high-contrast .pay-desc{color:#000 !important;}

/* Contact */
body.high-contrast .contact-tag{color:#00006B !important;background:#E0EDF8 !important;border-color:#00006B !important;}
body.high-contrast .contact-title{color:#00006B !important;}
body.high-contrast .contact-title em{color:#00006B !important;-webkit-text-fill-color:#00006B !important;}
body.high-contrast .contact-text{color:#000 !important;}
body.high-contrast .cta-box{background:#E0EDF8 !important;border:2px solid #00006B !important;}
body.high-contrast .cta-m{background:#fff !important;border:2px solid #00006B !important;}
body.high-contrast .cta-m-badge{background:#00006B !important;color:#fff !important;}
body.high-contrast .cta-m-label{color:#00006B !important;}
body.high-contrast .cta-m-detail{color:#000 !important;}
body.high-contrast .cta-big{background:#00006B !important;color:#fff !important;border:2px solid #000 !important;-webkit-text-fill-color:#fff !important;}
body.high-contrast .cta-item{color:#000 !important;}
body.high-contrast .cta-check{color:#00006B !important;font-weight:900 !important;}
body.high-contrast .google-avis-label{color:#000 !important;}
body.high-contrast .google-avis-btn{background:#fff !important;color:#00006B !important;border:2px solid #00006B !important;}
body.high-contrast .google-avis-stars{color:#C8973A !important;}
body.high-contrast .google-avis-qr-label{color:#000 !important;}
body.high-contrast .google-avis-qr img{border-color:#000 !important;}
body.high-contrast .google-avis-wrap{border-top:2px solid #00006B !important;}

/* Formulaire */
body.high-contrast input,
body.high-contrast select,
body.high-contrast textarea{border:2px solid #000 !important;background:#fff !important;color:#000 !important;}
body.high-contrast label,
body.high-contrast .devis-legend,
body.high-contrast .devis-field label{color:#000 !important;}
/* Modales bulles — contraste élevé clair */
body.high-contrast .pub-modal{background:#fff !important;border:2px solid #000 !important;border-top:5px solid #00006B !important;}
body.high-contrast .pub-modal-title{color:#00006B !important;}
body.high-contrast .pub-modal-sub{color:#000 !important;}
body.high-contrast .pub-modal-list li{color:#000 !important;}
body.high-contrast .pub-modal-list li::before{color:#00006B !important;}
body.high-contrast .pub-modal-close{background:#E0EDF8 !important;color:#000 !important;border:2px solid #000 !important;}
body.high-contrast .modal-carte-box{background:#fff !important;border:2px solid #000 !important;}
body.high-contrast .modal-carte-title{color:#00006B !important;}
body.high-contrast .modal-carte-sub{color:#000 !important;}

body.high-contrast .devis-overlay{background:rgba(0,0,0,0.85) !important;}
body.high-contrast .devis-panel{background:#fff !important;border:2px solid #000 !important;}
body.high-contrast .devis-header{background:#00006B !important;border-bottom:2px solid #000 !important;}
body.high-contrast .devis-titre{color:#fff !important;}
body.high-contrast .devis-intro{color:rgba(255,255,255,0.9) !important;}
body.high-contrast .devis-fieldset{border:2px solid #000 !important;background:#F0F4FF !important;}
body.high-contrast .devis-legend{background:#00006B !important;color:#fff !important;padding:0.2rem 0.6rem;border-radius:4px;}
body.high-contrast .devis-field label{color:#000 !important;font-weight:700 !important;}
body.high-contrast .devis-radio,
body.high-contrast .devis-check{background:#E0EDF8 !important;border:2px solid #00006B !important;color:#000 !important;}
body.high-contrast .devis-radio input[type="radio"],
body.high-contrast .devis-check input[type="checkbox"]{accent-color:#00006B;}
body.high-contrast .devis-captcha-wrap{background:#E0EDF8 !important;border:2px solid #000 !important;}
body.high-contrast .devis-captcha-label{color:#000 !important;font-weight:700 !important;}
body.high-contrast .devis-captcha-input{border:2px solid #000 !important;background:#fff !important;color:#000 !important;}
body.high-contrast .devis-captcha-refresh{background:#00006B !important;color:#fff !important;border:2px solid #000 !important;}
body.high-contrast .devis-captcha-error{color:#CC0000 !important;font-weight:700 !important;}
body.high-contrast .devis-submit{background:#00006B !important;color:#fff !important;border:2px solid #000 !important;}
body.high-contrast .devis-submit:hover{background:#003399 !important;}
body.high-contrast .devis-rgpd{color:#000 !important;}
body.high-contrast .devis-rgpd a{color:#00006B !important;text-decoration:underline !important;}

/* Footer */
body.high-contrast footer{background:#00006B !important;}
body.high-contrast .foot-name,
body.high-contrast .foot-h,
body.high-contrast .foot-legal-h3{color:#fff !important;}
body.high-contrast .foot-p,
body.high-contrast .foot-sub,
body.high-contrast .foot-legal-p{color:#fff !important;}
body.high-contrast .foot-legal-link{color:#FFFF00 !important;}

/* ═══════════════════════════════════════════════════════
   MODE CONTRASTE ÉLEVÉ — SOMBRE
   Règle : fond noir | textes blancs | accents jaune #FFFF00
═══════════════════════════════════════════════════════ */
body.dark-mode.high-contrast{background:#000 !important;color:#fff !important;}

/* Textes généraux */
body.dark-mode.high-contrast p,
body.dark-mode.high-contrast li,
body.dark-mode.high-contrast span,
body.dark-mode.high-contrast .s-sub,
body.dark-mode.high-contrast .about-body,
body.dark-mode.high-contrast .ag-desc,
body.dark-mode.high-contrast .svc-axe-sub,
body.dark-mode.high-contrast .temo-quote p,
body.dark-mode.high-contrast .svc-groupe-renouvel{color:#fff !important;}

body.dark-mode.high-contrast .s-title,
body.dark-mode.high-contrast h2,
body.dark-mode.high-contrast h3,
body.dark-mode.high-contrast h4{color:#FFFF00 !important;}
body.dark-mode.high-contrast a{color:#FFFF00 !important;text-decoration:underline;}

/* Badges section */
body.dark-mode.high-contrast .s-tag,
body.dark-mode.high-contrast .s-tag-shine{background:#111 !important;color:#FFFF00 !important;border:1.5px solid #FFFF00 !important;}
body.dark-mode.high-contrast .atelier-cat-label{background:#111 !important;color:#FFFF00 !important;border:1.5px solid #FFFF00 !important;}

/* Nav */
body.dark-mode.high-contrast nav{background:#000 !important;border-bottom:2px solid #fff !important;}
body.dark-mode.high-contrast .nav-links a{color:#FFFF00 !important;font-weight:800;}
body.dark-mode.high-contrast .nav-brand strong{color:#fff !important;}

/* Hero */
body.dark-mode.high-contrast .hero{background:#000 !important;}
body.dark-mode.high-contrast .hero-title,
body.dark-mode.high-contrast .hero-title .grad{color:#fff !important;-webkit-text-fill-color:#fff !important;}
body.dark-mode.high-contrast .hero-title em{color:#FFFF00 !important;-webkit-text-fill-color:#FFFF00 !important;}
body.dark-mode.high-contrast .hero-sub,
body.dark-mode.high-contrast .hero-italic{color:#fff !important;}
body.dark-mode.high-contrast .pill{background:#000 !important;color:#FFFF00 !important;border:2px solid #FFFF00 !important;}

/* Cartes services */
body.dark-mode.high-contrast .svc-card{background:#000 !important;border:2px solid #fff !important;}
body.dark-mode.high-contrast .svc-head{background:#000 !important;border-bottom:2px solid #fff !important;}
body.dark-mode.high-contrast .svc-title{color:#FFFF00 !important;}
body.dark-mode.high-contrast .svc-sub{color:#fff !important;}
body.dark-mode.high-contrast .svc-tarif-label,
body.dark-mode.high-contrast .svc-tarif-price,
body.dark-mode.high-contrast .svc-tarif-unit,
body.dark-mode.high-contrast .svc-tarif-delai{color:#fff !important;}
body.dark-mode.high-contrast .svc-tarif-row{background:rgba(255,255,255,0.1) !important;border:1px solid #fff !important;}
body.dark-mode.high-contrast .svc-toggle{background:#111 !important;color:#FFFF00 !important;border:2px solid #fff !important;}
body.dark-mode.high-contrast .svc-drawer{background:#000 !important;border:2px solid #fff !important;}
body.dark-mode.high-contrast .svc-list li,
body.dark-mode.high-contrast .svc-groupe-list li{color:#fff !important;background:rgba(255,255,255,0.06) !important;}
body.dark-mode.high-contrast .svc-axe-title{color:#FFFF00 !important;}
body.dark-mode.high-contrast .svc-axe-sub{color:#fff !important;}
body.dark-mode.high-contrast .navy-axes .svc-axe,
body.dark-mode.high-contrast .blue-axes  .svc-axe{background:#111 !important;border:1px solid #fff !important;}
body.dark-mode.high-contrast .svc-groupe-section-title{color:#FFFF00 !important;}
body.dark-mode.high-contrast .svc-groupe-renouvel{color:#fff !important;background:#111 !important;border:2px solid #FFFF00 !important;}
body.dark-mode.high-contrast .svc-groupe-places{background:#000 !important;color:#fff !important;border:2px solid #FFFF00 !important;}
body.dark-mode.high-contrast .svc-groupe-places strong{color:#FFFF00 !important;}
body.dark-mode.high-contrast .svc-axe-num{background:#FFFF00 !important;color:#000 !important;}

/* Ateliers */
body.dark-mode.high-contrast .ag{background:#000 !important;border:2px solid #fff !important;}
body.dark-mode.high-contrast .ag-title{color:#FFFF00 !important;}
body.dark-mode.high-contrast .ag-item{background:#111 !important;border:1px solid #fff !important;}
body.dark-mode.high-contrast .ag-item-title{color:#FFFF00 !important;}
body.dark-mode.high-contrast .ag-item-desc{color:#fff !important;}

/* Réalisations */
body.dark-mode.high-contrast .temoignages{background:#000 !important;}
body.dark-mode.high-contrast .temo-head .s-title{color:#FFFF00 !important;}
body.dark-mode.high-contrast .temo-head .s-sub{color:#fff !important;}
body.dark-mode.high-contrast .temo-card{background:#000 !important;border:2px solid #fff !important;}
body.dark-mode.high-contrast .temo-realisation-titre{color:#FFFF00 !important;}
body.dark-mode.high-contrast .temo-label-what{
  color:#FFFF00 !important;
  font-weight:900 !important;
  border-bottom:1px solid #FFFF00;
  padding-bottom:2px;
}
body.dark-mode.high-contrast .temo-quote p{color:#fff !important;}
body.dark-mode.high-contrast .temo-author{background:#111 !important;border-top:2px solid #fff !important;}
body.dark-mode.high-contrast .temo-initials{color:#FFFF00 !important;font-weight:900 !important;}
body.dark-mode.high-contrast .temo-role{color:#fff !important;}

/* Tarifs & paiements */
body.dark-mode.high-contrast .tarif-card{background:#000 !important;border:2px solid #fff !important;}
body.dark-mode.high-contrast .tarif-price,
body.dark-mode.high-contrast .tarif-label{color:#fff !important;}
/* Paiements — mode contraste élevé sombre */
body.dark-mode.high-contrast .paiements{background:#000 !important;}
body.dark-mode.high-contrast .pay-head .s-title{color:#FFFF00 !important;}
body.dark-mode.high-contrast .pay-head .s-tag,
body.dark-mode.high-contrast .pay-head .s-tag-shine{background:#111 !important;color:#FFFF00 !important;border:1.5px solid #FFFF00 !important;}
body.dark-mode.high-contrast .pay-card{
  background:#111 !important;
  border:2px solid #fff !important;
}
body.dark-mode.high-contrast .pay-title{color:#FFFF00 !important;}
body.dark-mode.high-contrast .pay-desc{color:#fff !important;}

/* Formulaire */
body.dark-mode.high-contrast input,
body.dark-mode.high-contrast select,
body.dark-mode.high-contrast textarea{border:2px solid #fff !important;background:#000 !important;color:#fff !important;}
body.dark-mode.high-contrast label,
body.dark-mode.high-contrast .devis-legend,
body.dark-mode.high-contrast .devis-field label{color:#fff !important;}

/* Formulaire devis — contraste élevé sombre */
/* Modales bulles — contraste élevé sombre */
body.dark-mode.high-contrast .pub-modal{background:#000 !important;border:2px solid #fff !important;border-top:5px solid #FFFF00 !important;}
body.dark-mode.high-contrast .pub-modal-title{color:#FFFF00 !important;}
body.dark-mode.high-contrast .pub-modal-sub{color:#fff !important;}
body.dark-mode.high-contrast .pub-modal-list li{color:#fff !important;}
body.dark-mode.high-contrast .pub-modal-list li::before{color:#FFFF00 !important;}
body.dark-mode.high-contrast .pub-modal-close{background:#111 !important;color:#fff !important;border:2px solid #fff !important;}
body.dark-mode.high-contrast .modal-carte-box{background:#000 !important;border:2px solid #fff !important;}
body.dark-mode.high-contrast .modal-carte-title{color:#FFFF00 !important;}
body.dark-mode.high-contrast .modal-carte-sub{color:#fff !important;}

body.dark-mode.high-contrast .devis-overlay{background:rgba(0,0,0,0.95) !important;}
body.dark-mode.high-contrast .devis-panel{background:#000 !important;border:2px solid #fff !important;}
body.dark-mode.high-contrast .devis-header{background:#000 !important;border-bottom:2px solid #FFFF00 !important;}
body.dark-mode.high-contrast .devis-titre{color:#FFFF00 !important;-webkit-text-fill-color:#FFFF00 !important;}
body.dark-mode.high-contrast .devis-intro{color:#fff !important;}
body.dark-mode.high-contrast .devis-fieldset{border:2px solid #fff !important;background:#111 !important;}
body.dark-mode.high-contrast .devis-legend{background:#FFFF00 !important;color:#000 !important;padding:0.2rem 0.6rem;border-radius:4px;}
body.dark-mode.high-contrast .devis-field label{color:#fff !important;font-weight:700 !important;}
body.dark-mode.high-contrast .devis-radio,
body.dark-mode.high-contrast .devis-check{background:#111 !important;border:2px solid #FFFF00 !important;color:#fff !important;}
body.dark-mode.high-contrast .devis-radio input[type="radio"],
body.dark-mode.high-contrast .devis-check input[type="checkbox"]{accent-color:#FFFF00;}
body.dark-mode.high-contrast .devis-captcha-wrap{background:#111 !important;border:2px solid #FFFF00 !important;}
body.dark-mode.high-contrast .devis-captcha-label,
body.dark-mode.high-contrast .devis-captcha-label strong{color:#fff !important;font-weight:700 !important;}
body.dark-mode.high-contrast .devis-captcha-input{border:2px solid #fff !important;background:#000 !important;color:#fff !important;}
body.dark-mode.high-contrast .devis-captcha-refresh{background:#FFFF00 !important;color:#000 !important;border:2px solid #fff !important;font-weight:900 !important;}
body.dark-mode.high-contrast .devis-captcha-error{color:#FF6666 !important;font-weight:700 !important;}
body.dark-mode.high-contrast .devis-submit{background:#FFFF00 !important;color:#000 !important;border:2px solid #fff !important;font-weight:900 !important;}
body.dark-mode.high-contrast .devis-submit:hover{background:#fff !important;color:#000 !important;}
body.dark-mode.high-contrast .devis-rgpd{color:#fff !important;}
body.dark-mode.high-contrast .devis-rgpd a{color:#FFFF00 !important;text-decoration:underline !important;}

/* Contact */
body.dark-mode.high-contrast .contact-tag{color:#FFFF00 !important;background:#111 !important;border-color:#FFFF00 !important;}
body.dark-mode.high-contrast .contact-title{color:#FFFF00 !important;}
body.dark-mode.high-contrast .contact-title em{color:#FFFF00 !important;-webkit-text-fill-color:#FFFF00 !important;}
body.dark-mode.high-contrast .contact-text{color:#fff !important;}
body.dark-mode.high-contrast .cta-box{background:#111 !important;border:2px solid #FFFF00 !important;}
body.dark-mode.high-contrast .cta-m{background:#000 !important;border:2px solid #fff !important;}
body.dark-mode.high-contrast .cta-m-badge{background:#FFFF00 !important;color:#000 !important;}
body.dark-mode.high-contrast .cta-m-label{color:#FFFF00 !important;}
body.dark-mode.high-contrast .cta-m-detail{color:#fff !important;}
body.dark-mode.high-contrast .cta-big{background:#FFFF00 !important;color:#000 !important;border:2px solid #fff !important;-webkit-text-fill-color:#000 !important;}
body.dark-mode.high-contrast .cta-item{color:#fff !important;}
body.dark-mode.high-contrast .cta-check{color:#FFFF00 !important;font-weight:900 !important;}
body.dark-mode.high-contrast .google-avis-label{color:#fff !important;}
body.dark-mode.high-contrast .google-avis-btn{background:#000 !important;color:#FFFF00 !important;border:2px solid #fff !important;}
body.dark-mode.high-contrast .google-avis-stars{color:#FFFF00 !important;}
body.dark-mode.high-contrast .google-avis-qr-label{color:#fff !important;}
body.dark-mode.high-contrast .google-avis-qr img{border-color:#fff !important;}
body.dark-mode.high-contrast .google-avis-wrap{border-top:2px solid #fff !important;}

/* Footer */
body.dark-mode.high-contrast footer{background:#000 !important;}
body.dark-mode.high-contrast .foot-name,
body.dark-mode.high-contrast .foot-h,
body.dark-mode.high-contrast .foot-p,
body.dark-mode.high-contrast .foot-sub,
body.dark-mode.high-contrast .foot-legal-h3,
body.dark-mode.high-contrast .foot-legal-p{color:#fff !important;}
body.dark-mode.high-contrast .foot-legal-link{color:#FFFF00 !important;}

/* ═══════════════════════════════════════════════════════
   MODE GRANDE POLICE (+22%)
═══════════════════════════════════════════════════════ */
html.large-text{font-size:122%;}

/* Empêche le débordement sur mobile */
html.large-text .hero-pills{flex-wrap:wrap;}
html.large-text .svc-toggle{font-size:0.8rem;}
html.large-text .nav-links a{font-size:0.88rem;}
html.large-text .a11y-btn{font-size:0.75rem;}

/* ── Modes accessibilité : la nav reste compacte ET, si la place manque vraiment,
   elle passe sur 2 lignes (flex-wrap) au lieu de couper le groupe accessibilité
   hors écran. Ainsi les boutons (dont le retour à la normale) restent TOUJOURS
   atteignables. Le texte agrandi / dyslexie reste pleinement actif ailleurs. ── */

/* DYSLEXIE : on neutralise l'espacement élargi des lettres/mots dans la nav
   (c'est lui qui fait gonfler la largeur) et on resserre un peu. */
body.dyslexia nav{padding-left:1.2rem;padding-right:1.2rem;flex-wrap:wrap;row-gap:0.45rem;column-gap:1.2rem;}
body.dyslexia .nav-links{gap:0.85rem;}
body.dyslexia .nav-links a{white-space:nowrap;letter-spacing:normal;word-spacing:normal;}
body.dyslexia .nav-cta{padding:0.5rem 1rem;letter-spacing:normal;word-spacing:normal;}
body.dyslexia .nav-brand strong{letter-spacing:normal;word-spacing:normal;}
body.dyslexia .nav-modes-group{gap:0.1rem;margin-left:0;padding:0.2rem 0.25rem;}

/* GRANDE POLICE : la nav ne suit PAS le +22% global (sinon impossible de tout
   caser). Elle reste légèrement agrandie mais compacte. Placé après la dyslexie
   pour primer quand les deux modes sont activés ensemble. */
html.large-text nav{padding-left:1rem;padding-right:1rem;flex-wrap:wrap;row-gap:0.45rem;column-gap:1rem;}
html.large-text .nav-links{gap:0.6rem;}
html.large-text .nav-links a{font-size:0.74rem;white-space:nowrap;letter-spacing:normal;word-spacing:normal;}
html.large-text .nav-cta{font-size:0.8rem;padding:0.45rem 0.9rem;letter-spacing:normal;word-spacing:normal;}
html.large-text .nav-brand strong{letter-spacing:normal;word-spacing:normal;}
html.large-text .nav-modes-group{gap:0.05rem;margin-left:0;padding:0.15rem 0.2rem;}
html.large-text .nav-modes-group .a11y-btn,
html.large-text .nav-modes-group .nav-dark-toggle{padding:0.2rem 0.35rem;}

/* GRANDE POLICE + place limitée → header sur 2 niveaux :
   ligne 1 = logo (gauche) + accessibilité (droite, via space-between),
   ligne 2 = les liens centrés (flex-basis:100% les force sur leur propre ligne,
   order:1 les place après le logo et le groupe). */
@media(min-width:951px) and (max-width:1300px){
  html.large-text .nav-links{
    order:1;
    flex-basis:100%;
    width:100%;
    justify-content:center;
  }
}

/* Tous modes actifs : pills en grille 2×2 (ligne 1 : Structures + Suivi | ligne 2 : Ateliers + Chauny) */
html.large-text body.dyslexia .hero-pills{flex-wrap:wrap;}
html.large-text body.dyslexia .hero-pills .pill{flex:0 0 calc(50% - 0.15rem);}

/* Tous modes actifs : bouton "Demander un devis" agrandi et lisible */
html.large-text body.dyslexia .svc-devis-btn{
  flex-wrap:wrap;
  gap:0.4rem;
  padding:0.75rem 1rem;
  min-height:56px;
}
html.large-text body.dyslexia .svc-tarif-price{
  display:flex;align-items:center;flex-wrap:wrap;gap:0.3rem;
}
html.large-text body.dyslexia .devis-clic{
  font-size:0.8rem;
  padding:0.3rem 0.8rem;
  min-height:36px;
  display:inline-flex;align-items:center;
}

/* Modes accessibilité (dyslexie ET/OU grande police) : réalisations en 3 colonnes
   sur desktop. minmax(0,1fr) évite tout débordement quand le texte s'élargit.
   Borné à ≥901px pour ne pas écraser la mise en page 1 colonne du mobile. */
@media(min-width:951px){
  body.dyslexia .temo-grid,
  html.large-text .temo-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
body.dyslexia .temo-card,
html.large-text .temo-card{
  min-height:0;
}

/* ═══════════════════════════════════════════════════════
   PANNEAU A11Y — MODE SOMBRE
═══════════════════════════════════════════════════════ */
/* Boutons a11y inline — mode sombre */
body.dark-mode .a11y-btn{
  border-color:rgba(255,255,255,0.18);
  color:#E8EDF4;
}
body.dark-mode .a11y-btn:hover{background:rgba(255,255,255,0.08);border-color:var(--teal);}
body.dark-mode .a11y-btn[aria-pressed="true"]{
  background:var(--teal);border-color:var(--teal2);color:#fff;
}
