/* =========================================================================
   EMA — ÉliseMénage et Accompagnement
   Design system v3 — direction "agence tech" moderne, rouge / blanc / noir
   ========================================================================= */

:root{
  /* ---- Couleurs ---- */
  --rouge:#C81E2E;
  --rouge-dark:#821320;
  --rouge-vif:#E8394A;
  --rouge-teinte: rgba(200,30,46,0.08);
  --noir:#0B0B0C;
  --noir-soft:#18171A;
  --blanc:#FFFFFF;
  --fond:#FAFAF9;
  --gris-900:#1A1A1C;
  --gris-700:#4B4B4E;
  --gris-400:#8C8C90;
  --gris-dark-300:#C8C4C1;
  --gris-dark-500:#8E8B89;
  --ligne: rgba(11,11,12,0.09);
  --ligne-forte: rgba(11,11,12,0.16);
  --ligne-dark: rgba(255,255,255,0.10);
  --ligne-dark-forte: rgba(255,255,255,0.18);

  /* ---- Ombres ---- */
  --ombre-sm: 0 2px 10px rgba(11,11,12,0.06);
  --ombre-md: 0 10px 28px rgba(11,11,12,0.09);
  --ombre-lg: 0 26px 56px rgba(11,11,12,0.14);
  --ombre-rouge: 0 14px 32px rgba(200,30,46,0.30);

  /* ---- Rayons ---- */
  --r-sm: 10px;
  --r-md: 18px;
  --r-lg: 28px;
  --r-pill: 999px;

  /* ---- Espacement ---- */
  --sp-1: 8px; --sp-2: 14px; --sp-3: 22px; --sp-4: 34px;
  --sp-5: 52px; --sp-6: 84px; --sp-7: 120px;

  --ease: cubic-bezier(.4,0,.2,1);
  --t-fast:.18s; --t-med:.34s;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; font-family:'Inter', -apple-system, sans-serif;
  color:var(--noir); background:var(--fond); line-height:1.65; font-size:16px;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
h1,h2,h3{
  font-family:'Space Grotesk', 'Inter', sans-serif;
  font-weight:700; line-height:1.08; letter-spacing:-0.025em;
  margin:0 0 .5em 0; color:var(--noir);
}
h1{font-weight:700;}
p{margin:0 0 1em 0;}
a{color:inherit;}
img{max-width:100%; display:block;}
.wrap{max-width:1180px; margin:0 auto; padding:0 28px;}
:focus-visible{outline:2.5px solid var(--rouge); outline-offset:3px; border-radius:4px;}
::selection{background:var(--rouge); color:#fff;}

/* ---------- reveal au scroll ---------- */
.reveal{opacity:0; transform:translateY(20px); transition:opacity .7s var(--ease), transform .7s var(--ease);}
.reveal.in{opacity:1; transform:translateY(0);}
.reveal-stagger > *{opacity:0; transform:translateY(16px); transition:opacity .6s var(--ease), transform .6s var(--ease);}
.reveal-stagger.in > *{opacity:1; transform:translateY(0);}
.reveal-stagger.in > *:nth-child(1){transition-delay:.03s;}
.reveal-stagger.in > *:nth-child(2){transition-delay:.09s;}
.reveal-stagger.in > *:nth-child(3){transition-delay:.15s;}
.reveal-stagger.in > *:nth-child(4){transition-delay:.21s;}
.reveal-stagger.in > *:nth-child(5){transition-delay:.27s;}
.reveal-stagger.in > *:nth-child(6){transition-delay:.33s;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .reveal, .reveal-stagger > *{opacity:1 !important; transform:none !important; transition:none !important;}
  *{animation:none !important;}
}

/* ---------- badge pill ---------- */
.badge-pill{
  display:inline-flex; align-items:center; gap:9px;
  font-family:'Inter',sans-serif; font-size:.76rem; font-weight:700;
  letter-spacing:.09em; text-transform:uppercase;
  padding:8px 16px 8px 12px; border-radius:var(--r-pill);
  margin-bottom:22px;
}
.badge-pill .dot{width:7px; height:7px; border-radius:50%; flex-shrink:0;}
.badge-pill.on-light{background:var(--rouge-teinte); color:var(--rouge);}
.badge-pill.on-light .dot{background:var(--rouge);}
.badge-pill.on-dark{background:rgba(255,255,255,0.07); color:#fff; border:1px solid var(--ligne-dark);}
.badge-pill.on-dark .dot{background:#3ECF6C; box-shadow:0 0 0 3px rgba(62,207,108,0.18);}

/* ---------- header ---------- */
header{
  position:sticky; top:0; z-index:100;
  background:rgba(250,250,249,0.85);
  backdrop-filter:blur(14px) saturate(160%);
  -webkit-backdrop-filter:blur(14px) saturate(160%);
  border-bottom:1px solid transparent;
  transition:border-color var(--t-med) var(--ease), box-shadow var(--t-med) var(--ease);
}
header.scrolled{border-bottom-color:var(--ligne); box-shadow:var(--ombre-sm);}
.nav{display:flex; align-items:center; justify-content:space-between; padding:15px 28px; max-width:1180px; margin:0 auto; gap:20px;}
.brand{display:flex; align-items:center; gap:11px; text-decoration:none; color:inherit; flex-shrink:0;}
.brand img{height:38px; width:auto;}
.brand-text{font-family:'Space Grotesk', sans-serif; font-weight:700; font-size:1rem; line-height:1.15;}
.brand-text small{display:block; font-family:'Inter',sans-serif; font-weight:700; font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; color:var(--rouge); margin-top:2px;}

nav.links{display:flex; gap:4px; font-weight:600; font-size:.9rem;}
nav.links a{
  text-decoration:none; padding:9px 14px; border-radius:var(--r-sm); color:var(--gris-700);
  transition:color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);
}
nav.links a:hover{color:var(--noir); background:rgba(11,11,12,0.045);}
nav.links a.active{color:var(--rouge); background:var(--rouge-teinte);}

.call-btn{
  display:inline-flex; align-items:center; gap:8px;
  background:linear-gradient(135deg, var(--rouge) 0%, var(--rouge-vif) 100%);
  color:#fff; padding:11px 20px; border-radius:var(--r-pill);
  text-decoration:none; font-weight:700; font-size:.88rem;
  box-shadow:var(--ombre-rouge); border:1px solid transparent;
  transition:transform var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease), filter var(--t-fast) var(--ease);
  cursor:pointer; white-space:nowrap;
}
.call-btn:hover{transform:translateY(-2px); box-shadow:0 18px 36px rgba(200,30,46,0.36); filter:brightness(1.04);}
.call-btn:active{transform:translateY(0) scale(.97); box-shadow:var(--ombre-sm);}
.call-btn.dark{background:var(--noir); box-shadow:var(--ombre-md);}
.call-btn.dark:hover{background:var(--gris-900); box-shadow:var(--ombre-lg);}

.btn-outline{
  display:inline-flex; align-items:center; gap:8px;
  padding:10.5px 20px; border-radius:var(--r-pill);
  border:1.5px solid var(--ligne-forte); text-decoration:none;
  font-weight:700; font-size:.88rem; color:var(--noir); background:transparent;
  transition:all var(--t-fast) var(--ease);
}
.btn-outline:hover{background:var(--noir); color:#fff; border-color:var(--noir); transform:translateY(-2px);}
.btn-outline:active{transform:translateY(0) scale(.97);}
.btn-outline.on-dark{border-color:var(--ligne-dark-forte); color:#fff;}
.btn-outline.on-dark:hover{background:#fff; color:var(--noir); border-color:#fff;}

.menu-toggle{
  display:none; background:var(--blanc); border:1px solid var(--ligne-forte);
  border-radius:var(--r-sm); width:42px; height:42px; cursor:pointer; color:var(--noir);
  align-items:center; justify-content:center; flex-shrink:0; position:relative;
}
.menu-toggle span, .menu-toggle span::before, .menu-toggle span::after{
  content:""; position:absolute; width:18px; height:2px; background:var(--noir);
  transition:transform var(--t-fast) var(--ease), opacity var(--t-fast) var(--ease);
}
.menu-toggle span::before{transform:translateY(-6px);}
.menu-toggle span::after{transform:translateY(6px);}
.menu-toggle.open span{background:transparent;}
.menu-toggle.open span::before{transform:rotate(45deg);}
.menu-toggle.open span::after{transform:rotate(-45deg);}

.mobile-links{
  display:flex; flex-direction:column; gap:2px; padding:0 28px; background:var(--fond);
  border-top:1px solid var(--ligne); max-height:0; overflow:hidden;
  transition:max-height var(--t-med) var(--ease), padding var(--t-med) var(--ease);
}
.mobile-links.open{max-height:320px; padding:10px 28px 20px 28px;}
.mobile-links a{padding:13px 4px; text-decoration:none; font-weight:600; border-bottom:1px solid var(--ligne); color:var(--gris-700);}
.mobile-links a.active{color:var(--rouge);}

/* ---------- page hero (sous-pages) ---------- */
.page-hero{background:var(--fond); padding:var(--sp-6) 0 var(--sp-5) 0;}
.page-hero h1{font-size:clamp(2.1rem,3.8vw,3rem); max-width:18ch;}
.page-hero p{max-width:56ch; color:var(--gris-700); font-size:1.06rem;}
.breadcrumb{font-size:.82rem; color:var(--gris-400); margin-bottom:20px; font-weight:600;}
.breadcrumb a{text-decoration:none;}
.breadcrumb a:hover{color:var(--rouge);}

/* ---------- hero (accueil) ---------- */
.hero{background:var(--fond); padding:var(--sp-6) 0 var(--sp-7) 0; position:relative; overflow:hidden;}
.hero-inner{display:grid; grid-template-columns:1.02fr .98fr; gap:64px; align-items:center; position:relative;}
.hero h1{font-size:clamp(2.5rem, 4.1vw, 3.6rem); color:var(--noir); max-width:13ch;}
.hero h1 .accent{color:var(--rouge);}
.hero p.desc{max-width:47ch; color:var(--gris-700); font-size:1.06rem; margin-top:18px;}
.hero-ctas{display:flex; gap:14px; margin-top:32px; flex-wrap:wrap;}
.hero-stats{display:flex; gap:0; margin-top:48px; flex-wrap:wrap; border-top:1px solid var(--ligne); padding-top:28px;}
.hero-stat{font-size:.85rem; color:var(--gris-400); padding-right:32px; margin-right:32px; border-right:1px solid var(--ligne);}
.hero-stat:last-child{border-right:none; margin-right:0; padding-right:0;}
.hero-stat strong{display:block; font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:1.55rem; color:var(--noir); letter-spacing:-0.02em;}

/* ---- composition photo signature : cadre décalé rouge ---- */
.photo-frame{position:relative;}
.photo-frame::before{
  content:""; position:absolute; top:14px; right:-14px; bottom:-14px; left:14px;
  background:linear-gradient(150deg, var(--rouge) 0%, var(--rouge-dark) 100%);
  border-radius:var(--r-lg); z-index:0;
}
.photo-frame-img{
  position:relative; z-index:1; border-radius:var(--r-lg); overflow:hidden;
  box-shadow:var(--ombre-lg); border:6px solid var(--blanc);
}
.photo-frame-img img{width:100%; height:380px; object-fit:cover; object-position:center 20%; transition:transform .6s var(--ease);}
.photo-frame-img:hover img{transform:scale(1.035);}
.photo-tag{
  position:absolute; top:22px; left:-14px; z-index:2;
  background:var(--noir); color:#fff;
  padding:9px 16px; border-radius:var(--r-sm);
  font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:.74rem;
  letter-spacing:.06em; text-transform:uppercase;
  box-shadow:var(--ombre-md);
}
.photo-badge{
  position:absolute; bottom:-18px; right:-18px; z-index:2;
  width:70px; height:70px; border-radius:50%;
  background:var(--rouge); color:#fff;
  display:flex; align-items:center; justify-content:center; flex-direction:column;
  box-shadow:var(--ombre-rouge); border:4px solid var(--blanc);
  font-family:'Space Grotesk',sans-serif; font-weight:700; text-align:center; line-height:1.1;
}
.photo-badge strong{font-size:1.15rem;}
.photo-badge span{font-size:.5rem; text-transform:uppercase; letter-spacing:.05em; opacity:.9;}

/* ---------- stats strip ---------- */
.stats-strip{background:var(--blanc); border-top:1px solid var(--ligne); border-bottom:1px solid var(--ligne); padding:var(--sp-4) 0;}
.stats-strip-inner{display:flex; align-items:center; gap:14px; min-width:0;}
.stats-strip-label{
  flex-shrink:0; font-size:.76rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase;
  color:var(--gris-400); padding-right:28px; border-right:1px solid var(--ligne); margin-right:8px;
  display:flex; align-items:center; gap:8px;
}
.stats-strip-label .dot{width:6px; height:6px; border-radius:50%; background:var(--rouge);}
.stats-cards{display:flex; gap:14px; flex:1; min-width:0; overflow-x:auto; scrollbar-width:none;}
.stats-cards::-webkit-scrollbar{display:none;}
.stats-card{
  flex:0 0 auto; display:flex; align-items:center; gap:12px;
  border:1px solid var(--ligne); border-radius:var(--r-md); padding:14px 20px;
  background:var(--fond); white-space:nowrap;
}
.stats-card .ic{font-size:1.15rem;}
.stats-card strong{font-family:'Space Grotesk',sans-serif; font-size:1.02rem; display:block;}
.stats-card span{font-size:.78rem; color:var(--gris-400);}

/* ---------- services ---------- */
.services{padding:var(--sp-6) 0; background:var(--fond);}
.section-head{max-width:640px; margin-bottom:var(--sp-5);}
.section-head h2{font-size:clamp(1.8rem,2.7vw,2.5rem);}
.section-head p{color:var(--gris-700); font-size:1.03rem; margin-top:10px;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}

.service-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
.service-card{
  background:var(--blanc); border-radius:var(--r-lg); padding:38px 34px;
  box-shadow:var(--ombre-sm); border:1px solid var(--ligne);
  transition:transform var(--t-med) var(--ease), box-shadow var(--t-med) var(--ease), border-color var(--t-med) var(--ease);
}
.service-card:hover{transform:translateY(-6px); box-shadow:var(--ombre-lg); border-color:var(--ligne-forte);}
.service-card h3{font-size:1.32rem; display:flex; align-items:center; gap:14px;}
.service-icon{
  width:48px; height:48px; border-radius:var(--r-sm);
  background:var(--noir); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:1.3rem; flex-shrink:0;
}
.service-card.alt .service-icon{background:var(--rouge);}
.service-card ul{list-style:none; margin:22px 0 0 0; padding:0;}
.service-card li{padding:12px 0; border-bottom:1px solid var(--ligne); display:flex; align-items:flex-start; gap:11px; font-size:.98rem;}
.service-card li:last-child{border-bottom:none;}
.service-card li::before{
  content:"✓"; color:#fff; font-weight:700; font-size:.66rem; line-height:1;
  background:var(--rouge); width:18px; height:18px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:3px;
}
.service-card p.note{margin:20px 0 0 0; font-size:.9rem; color:var(--gris-400);}

/* ---------- process steps ---------- */
.process{padding:0 0 var(--sp-6) 0; background:var(--fond);}
.process-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
.process-step{
  background:var(--blanc); border-radius:var(--r-md); padding:28px 24px;
  box-shadow:var(--ombre-sm); border:1px solid var(--ligne);
  transition:transform var(--t-med) var(--ease), box-shadow var(--t-med) var(--ease);
}
.process-step:hover{transform:translateY(-4px); box-shadow:var(--ombre-md);}
.process-step .num{
  font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:1.7rem;
  color:transparent; -webkit-text-stroke:1.4px var(--rouge); margin-bottom:10px;
}
.process-step h3{font-size:1.03rem; margin-bottom:6px;}
.process-step p{font-size:.9rem; color:var(--gris-700); margin:0;}

/* ---------- section sombre (why / cta) ---------- */
.section-dark{background:var(--noir); color:#F1EFEE; padding:var(--sp-6) 0; position:relative; overflow:hidden;}
.section-dark::before{
  content:""; position:absolute; top:-160px; right:-160px; width:460px; height:460px;
  background:radial-gradient(circle, rgba(200,30,46,0.22) 0%, rgba(200,30,46,0) 70%);
  pointer-events:none;
}
.why-inner{display:grid; grid-template-columns:.85fr 1.15fr; gap:60px; align-items:start; padding-top:6px; position:relative;}
.section-dark h2{color:#fff;}
.why h2{color:#fff; font-size:clamp(1.9rem,2.7vw,2.4rem);}
.why-quote{
  font-family:'Space Grotesk', sans-serif; font-weight:700; font-style:italic;
  font-size:clamp(1.2rem,1.8vw,1.4rem); color:var(--gris-dark-300);
  margin-top:20px; line-height:1.4; border-left:3px solid var(--rouge); padding-left:18px;
}
.why-mini-stats{display:flex; gap:36px; margin-top:34px; padding-top:26px; border-top:1px solid var(--ligne-dark);}
.why-mini-stats div{display:flex; flex-direction:column; gap:2px;}
.why-mini-stats strong{font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:1.7rem; color:#fff; letter-spacing:-0.02em;}
.why-mini-stats span{font-size:.82rem; color:var(--gris-dark-300);}
.why-list{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.why-list li:last-child{grid-column:1 / -1;}
.why-list li{
  display:flex; align-items:center; gap:16px; background:rgba(255,255,255,0.045);
  border:1px solid var(--ligne-dark); padding:18px 22px; border-radius:var(--r-md);
  font-size:1.02rem; font-weight:500;
  transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);
}
.why-list li:hover{background:rgba(255,255,255,0.08); border-color:var(--ligne-dark-forte); transform:translateX(4px);}
.why-list li .check{
  width:32px; height:32px; border-radius:50%; background:var(--rouge); color:#fff;
  display:flex; align-items:center; justify-content:center; font-weight:700; flex-shrink:0; font-size:.85rem;
}

/* ---------- CTA orbite (signature graphique) ---------- */
.cta-orbit{display:grid; grid-template-columns:1.1fr .9fr; gap:60px; align-items:center; position:relative;}
.cta-orbit-copy h2{font-size:clamp(1.7rem,2.6vw,2.3rem); max-width:16ch;}
.cta-orbit-copy p{color:var(--gris-dark-300); font-size:1.04rem; max-width:48ch;}
.orbit-wrap{position:relative; width:100%; height:min(360px, 90vw); aspect-ratio:1/1; max-width:360px; margin:0 auto;}
.orbit-ring{
  position:absolute; inset:0; border:1.5px dashed var(--ligne-dark-forte); border-radius:50%;
}
.orbit-ring.r2{inset:14%; border-style:solid; border-color:var(--ligne-dark);}
.orbit-core{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:38%; height:38%; border-radius:50%;
  background:linear-gradient(150deg, var(--rouge) 0%, var(--rouge-dark) 100%);
  display:flex; align-items:center; justify-content:center; flex-direction:column;
  box-shadow:0 0 0 10px rgba(200,30,46,0.10), var(--ombre-lg);
  color:#fff; text-align:center; padding:8px;
}
.orbit-core strong{font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:1.05rem; letter-spacing:-0.01em;}
.orbit-core span{font-size:.6rem; text-transform:uppercase; letter-spacing:.08em; opacity:.85; margin-top:2px;}
.orbit-badge{
  position:absolute; display:flex; align-items:center; gap:7px;
  background:var(--noir-soft); border:1px solid var(--ligne-dark-forte);
  padding:9px 14px; border-radius:var(--r-pill); font-size:.78rem; font-weight:700; color:#fff;
  box-shadow:var(--ombre-md); white-space:nowrap;
  animation:float 5s ease-in-out infinite;
}
.orbit-badge .dot{width:6px; height:6px; border-radius:50%; background:var(--rouge);}
.orbit-badge.b1{top:6%; left:-4%; animation-delay:0s;}
.orbit-badge.b2{bottom:10%; right:-8%; animation-delay:1.6s;}
.orbit-dot{position:absolute; width:9px; height:9px; border-radius:50%; background:var(--rouge);}
.orbit-dot.d1{top:8%; right:20%; box-shadow:0 0 0 4px rgba(200,30,46,0.18);}
.orbit-dot.d2{bottom:14%; left:14%; background:#fff;}
@keyframes float{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-9px);}
}
@media (prefers-reduced-motion: reduce){
  .orbit-badge{animation:none;}
}

/* ---------- photo band ---------- */
.photo-band{background:var(--fond); padding:var(--sp-6) 0;}
.photo-band-inner{display:grid; grid-template-columns:.85fr 1.15fr; gap:70px; align-items:center;}
.photo-band-inner.reverse{grid-template-columns:1.15fr .85fr;}
.photo-band-inner.reverse .photo-frame{order:2;}
.photo-band .photo-frame-img img{height:320px;}
.photo-band h2{font-size:clamp(1.8rem,2.5vw,2.3rem);}
.photo-band p{color:var(--gris-700); max-width:50ch; font-size:1.02rem;}

/* ---------- valeurs (à propos) ---------- */
.valeurs{padding:var(--sp-6) 0; background:var(--fond);}
.valeurs-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.valeur-card{
  background:var(--blanc); border-radius:var(--r-md); padding:30px 26px;
  box-shadow:var(--ombre-sm); border:1px solid var(--ligne); text-align:left;
  transition:transform var(--t-med) var(--ease), box-shadow var(--t-med) var(--ease);
}
.valeur-card:hover{transform:translateY(-5px); box-shadow:var(--ombre-md); border-color:var(--ligne-forte);}
.valeur-card .ic{
  font-size:1.35rem; margin-bottom:14px; width:44px; height:44px; border-radius:var(--r-sm);
  background:var(--noir); color:#fff; display:flex; align-items:center; justify-content:center;
}
.valeur-card h3{font-size:1.08rem;}
.valeur-card p{font-size:.93rem; color:var(--gris-700); margin:0;}

/* ---------- formules (services) ---------- */
.formules{padding:var(--sp-6) 0; background:var(--fond);}
.formule-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; align-items:stretch;}
.formule-card{
  background:var(--blanc); border:1px solid var(--ligne); border-radius:var(--r-lg);
  padding:36px 30px; display:flex; flex-direction:column;
  transition:transform var(--t-med) var(--ease), box-shadow var(--t-med) var(--ease);
  box-shadow:var(--ombre-sm);
}
.formule-card:hover{transform:translateY(-6px); box-shadow:var(--ombre-lg);}
.formule-card.signature{
  background:linear-gradient(165deg, var(--noir) 0%, var(--gris-900) 60%, var(--rouge-dark) 130%);
  color:#fff; border-color:transparent; position:relative; overflow:hidden;
}
.formule-card.signature::before{
  content:"Recommandé"; position:absolute; top:16px; right:-34px; transform:rotate(45deg);
  background:var(--rouge); color:#fff; font-size:.68rem; font-weight:700; letter-spacing:.06em;
  text-transform:uppercase; padding:5px 40px;
}
.formule-eyebrow{font-size:.76rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--rouge);}
.formule-card.signature .formule-eyebrow{color:var(--gris-dark-300);}
.formule-card h3{font-size:1.35rem; margin-top:6px;}
.formule-card .formule-sub{font-size:.92rem; color:var(--gris-400); margin-bottom:18px;}
.formule-card.signature .formule-sub{color:var(--gris-dark-300);}
.formule-card .formule-devis{
  font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:1.55rem;
  padding:16px 0; border-top:1px solid var(--ligne); border-bottom:1px solid var(--ligne); margin-bottom:20px;
}
.formule-card.signature .formule-devis{border-color:var(--ligne-dark);}
.formule-card .formule-devis span{display:block; font-family:'Inter',sans-serif; font-weight:500; font-size:.78rem; color:var(--gris-400); margin-top:4px;}
.formule-card.signature .formule-devis span{color:var(--gris-dark-300);}
.formule-list{list-style:none; margin:0 0 26px 0; padding:0; flex:1;}
.formule-list li{display:flex; align-items:flex-start; gap:10px; padding:8px 0; font-size:.94rem;}
.formule-list li::before{
  content:"✓"; color:#fff; font-weight:700; font-size:.62rem; line-height:1;
  background:var(--rouge); width:17px; height:17px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:3px;
}
.formule-card .btn-outline, .formule-card .call-btn{width:100%; justify-content:center;}

/* ---------- promise ---------- */
.promise{
  background:linear-gradient(135deg, var(--rouge) 0%, var(--rouge-dark) 100%);
  color:#fff; text-align:center; padding:var(--sp-6) 28px; position:relative; overflow:hidden;
}
.promise::before{content:""; position:absolute; inset:0; background:radial-gradient(circle at 20% 20%, rgba(255,255,255,0.10) 0%, rgba(255,255,255,0) 45%);}
.promise .headline{
  font-family:'Space Grotesk', sans-serif; font-weight:700; font-size:clamp(1.9rem, 3.4vw, 2.7rem);
  display:block; position:relative; letter-spacing:-0.02em;
}
.promise p{font-family:'Inter',sans-serif; opacity:.9; margin-top:12px; font-size:1.02rem; position:relative;}

/* ---------- contact ---------- */
.contact{padding:var(--sp-6) 0 var(--sp-7) 0; background:var(--fond);}
.contact-inner{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start;}
.contact-inner > *{min-width:0;}
.contact-card{background:var(--blanc); border-radius:var(--r-lg); padding:38px; box-shadow:var(--ombre-sm); border:1px solid var(--ligne);}
.contact-card h2{font-size:1.55rem;}
.contact-item{display:flex; gap:16px; margin-top:24px; align-items:flex-start;}
.contact-item .ic{
  width:44px; height:44px; border-radius:var(--r-sm); background:var(--noir); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:1.1rem; flex-shrink:0;
}
.contact-item strong{display:block; font-size:.98rem; font-weight:700; margin-bottom:2px;}
.contact-item span, .contact-item a{font-size:.94rem; color:var(--gris-700); text-decoration:none;}
.contact-item a:hover{color:var(--rouge);}
.map-frame{border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--ombre-sm); border:1px solid var(--ligne); min-height:300px; filter:grayscale(.15) contrast(1.05);}
.map-frame iframe{width:100%; height:100%; min-height:300px; border:0; display:block;}

/* ---------- formulaire contact ---------- */
.form-card{background:var(--blanc); border-radius:var(--r-lg); padding:38px; box-shadow:var(--ombre-sm); border:1px solid var(--ligne);}
.form-card h2{font-size:1.55rem;}
.form-card > p{color:var(--gris-700); font-size:.95rem; margin-top:6px;}
.form-row{margin-top:20px; display:flex; flex-direction:column; gap:7px;}
.form-row label{font-size:.85rem; font-weight:700; color:var(--gris-700);}
.form-row input, .form-row textarea{
  font-family:'Inter',sans-serif; font-size:.96rem; padding:13px 15px; border-radius:var(--r-sm);
  border:1.5px solid var(--ligne-forte); background:var(--fond); color:var(--noir);
  transition:border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);
}
.form-row textarea{resize:vertical; min-height:120px; font-family:'Inter',sans-serif;}
.form-row input:focus, .form-row textarea:focus{border-color:var(--rouge); outline:none; box-shadow:0 0 0 4px var(--rouge-teinte);}
.form-submit{
  margin-top:24px; border:none; cursor:pointer;
  background:linear-gradient(135deg, var(--rouge) 0%, var(--rouge-vif) 100%);
  color:#fff; font-weight:700; font-size:.96rem; padding:14px 28px; border-radius:var(--r-pill);
  display:inline-flex; align-items:center; gap:8px; box-shadow:var(--ombre-rouge);
  transition:transform var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease), filter var(--t-fast) var(--ease);
}
.form-submit:hover{transform:translateY(-2px); box-shadow:0 18px 36px rgba(200,30,46,0.36); filter:brightness(1.04);}
.form-submit:active{transform:translateY(0) scale(.97);}
.form-note{font-size:.82rem; color:var(--gris-400); margin-top:16px;}

/* ---------- CTA final ---------- */
.cta-final{padding:var(--sp-6) 0; background:var(--fond); text-align:center;}
.cta-final h2{font-size:clamp(1.7rem,2.5vw,2.2rem);}
.cta-final p{max-width:50ch; margin:12px auto 30px auto; color:var(--gris-700); font-size:1.02rem;}

/* ---------- footer ---------- */
footer{background:var(--noir); color:var(--gris-dark-300); padding:var(--sp-6) 0 0 0; text-align:left; font-size:.9rem; position:relative; overflow:hidden;}
.footer-top{display:grid; grid-template-columns:1.3fr .8fr .8fr 1fr; gap:40px; padding-bottom:var(--sp-5);}
.footer-brand{display:flex; align-items:center; gap:10px; margin-bottom:16px;}
.footer-brand img{height:30px; width:auto; background:#fff; padding:6px 8px; border-radius:10px;}
.footer-brand strong{font-family:'Space Grotesk',sans-serif; font-weight:700; color:#fff; font-size:1.02rem;}
footer .desc{max-width:32ch; font-size:.9rem; line-height:1.6;}
.footer-col-num{font-size:.7rem; font-weight:700; color:var(--rouge); letter-spacing:.08em; margin-bottom:6px; display:block;}
.footer-col h4{color:#fff; font-family:'Space Grotesk',sans-serif; font-size:.92rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; margin-bottom:16px;}
.footer-col a, .footer-col span{display:block; text-decoration:none; color:var(--gris-dark-300); padding:6px 0; font-size:.9rem;}
.footer-col a:hover{color:#fff;}
.footer-bottom{
  border-top:1px solid var(--ligne-dark); padding:22px 0; display:flex; justify-content:space-between;
  align-items:center; flex-wrap:wrap; gap:10px; font-size:.82rem; color:var(--gris-dark-500);
}
.footer-bottom a{text-decoration:none; color:var(--gris-dark-500);}
.footer-bottom a:hover{color:#fff;}
.footer-wordmark{
  font-family:'Space Grotesk',sans-serif; font-weight:700;
  font-size:clamp(4rem, 14vw, 11rem); line-height:1.1; text-align:center;
  background:linear-gradient(180deg, rgba(200,30,46,0.32) 0%, rgba(200,30,46,0) 88%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  letter-spacing:-0.03em; user-select:none; pointer-events:none;
  margin-top:10px; padding-bottom:6px; overflow:hidden; white-space:nowrap;
}

/* ---------- responsive ---------- */
@media (max-width:960px){
  .process-grid{grid-template-columns:1fr 1fr;}
  .footer-top{grid-template-columns:1fr 1fr; gap:32px;}
}
@media (max-width:1010px){
  nav.links{gap:2px; font-size:.86rem;}
  nav.links a{padding:9px 9px; white-space:nowrap;}
}
@media (max-width:880px){
  nav.links{display:none;}
  .menu-toggle{display:flex;}
  .hero-inner, .why-inner, .photo-band-inner, .photo-band-inner.reverse, .contact-inner, .cta-orbit{grid-template-columns:1fr;}
  .photo-band-inner.reverse .photo-frame{order:0;}
  .cta-orbit{gap:44px;}
  .hero{padding-top:var(--sp-5);}
  .hero h1{max-width:none;}
  .service-grid{grid-template-columns:1fr;}
  .valeurs-grid{grid-template-columns:1fr;}
  .formule-grid{grid-template-columns:1fr;}
  .hero-stats{gap:0;}
  .hero-stat{padding-right:20px; margin-right:20px;}
  .nav > .call-btn .txt{display:none;}
  .nav > .call-btn{padding:11px 13px;}
  .photo-frame{margin-top:12px;}
  .stats-strip-label{border-right:none; padding-right:0; margin-right:0; margin-bottom:10px;}
  .stats-strip-inner{flex-direction:column; align-items:stretch;}
  .stats-cards{width:100%; max-width:100%; flex:none;}
}
@media (max-width:420px){
  .brand-text{display:none;}
  .orbit-badge{font-size:.7rem; padding:7px 11px;}
  .orbit-badge.b1{left:0;}
  .orbit-badge.b2{right:0;}
  .orbit-wrap{max-width:290px;}
}
@media (max-width:600px){
  .wrap{padding:0 20px;}
  .process-grid{grid-template-columns:1fr;}
  .hero-stat{flex:1 1 40%; border-right:none !important; margin-right:0 !important; padding-right:0 !important;}
  .service-card, .contact-card, .form-card, .formule-card{padding:28px 24px;}
  .footer-top{grid-template-columns:1fr;}
}

/* ---------- équipe ---------- */
.equipe{padding:var(--sp-6) 0; background:var(--fond);}
.equipe-grid{display:grid; grid-template-columns:repeat(4, 1fr); gap:22px;}
.membre-card{
  background:var(--blanc); border:1px solid var(--ligne); border-radius:var(--r-lg);
  padding:28px 22px; text-align:center;
  box-shadow:var(--ombre-sm);
  transition:transform var(--t-med) var(--ease), box-shadow var(--t-med) var(--ease);
}
.membre-card:hover{transform:translateY(-6px); box-shadow:var(--ombre-lg);}
.membre-card.pdg{
  background:linear-gradient(165deg, var(--noir) 0%, var(--gris-900) 70%, var(--rouge-dark) 140%);
  border-color:transparent;
}
.membre-photo{
  width:104px; height:104px; border-radius:50%; overflow:hidden; margin:0 auto 18px auto;
  border:3px solid var(--rouge); box-shadow:var(--ombre-md);
}
.membre-photo img{width:100%; height:100%; object-fit:cover;}
.membre-card h3{font-size:1.05rem; margin-bottom:4px;}
.membre-card.pdg h3{color:#fff;}
.membre-role{
  font-size:.8rem; font-weight:600; color:var(--rouge);
  letter-spacing:.01em; line-height:1.4;
}
.membre-card.pdg .membre-role{color:var(--gris-dark-300);}
.membre-badge{
  display:inline-block; margin-top:10px; font-size:.68rem; font-weight:700; letter-spacing:.08em;
  text-transform:uppercase; color:#fff; background:var(--rouge); padding:4px 12px; border-radius:var(--r-pill);
}

@media (max-width:960px){
  .equipe-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:520px){
  .equipe-grid{grid-template-columns:1fr;}
}

/* ---------- efficacité (page équipe) ---------- */
.efficacite{padding:var(--sp-6) 0; background:var(--fond);}
.efficacite-grid{display:grid; grid-template-columns:repeat(4, 1fr); gap:22px;}
.efficacite-card{
  background:var(--blanc); border:1px solid var(--ligne); border-radius:var(--r-lg);
  padding:30px 26px; box-shadow:var(--ombre-sm);
  transition:transform var(--t-med) var(--ease), box-shadow var(--t-med) var(--ease);
}
.efficacite-card:hover{transform:translateY(-6px); box-shadow:var(--ombre-lg);}
.efficacite-card .ic{
  width:46px; height:46px; border-radius:var(--r-sm); background:var(--noir); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:1.25rem; margin-bottom:16px;
}
.efficacite-card h3{font-size:1.05rem;}
.efficacite-card p{font-size:.92rem; color:var(--gris-700); margin:0;}

@media (max-width:960px){
  .efficacite-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:520px){
  .efficacite-grid{grid-template-columns:1fr;}
}

.gallery{padding:var(--sp-6) 0; background:var(--fond);}
.gallery-grid{
  display:grid; grid-template-columns:repeat(4, 1fr); grid-auto-rows:200px;
  grid-auto-flow:dense; gap:16px;
}
.gallery-item{
  position:relative; grid-column:span 1; grid-row:span 1;
  border-radius:var(--r-md); overflow:hidden; cursor:pointer;
  border:1px solid var(--ligne); box-shadow:var(--ombre-sm);
  background:none; padding:0; display:block; width:100%; height:100%;
  transition:box-shadow var(--t-med) var(--ease);
}
.gallery-item.tall{grid-row:span 2;}
.gallery-item.wide{grid-column:span 2;}
.gallery-item img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--ease);}
.gallery-item:hover{box-shadow:var(--ombre-lg);}
.gallery-item:hover img{transform:scale(1.06);}
.gallery-item::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(11,11,12,0) 55%, rgba(11,11,12,0.55) 100%);
  opacity:0; transition:opacity var(--t-fast) var(--ease);
}
.gallery-item:hover::after{opacity:1;}
.gallery-item .cap{
  position:absolute; left:14px; right:14px; bottom:12px; color:#fff;
  font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:.86rem;
  opacity:0; transform:translateY(6px); transition:opacity var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);
  text-align:left;
}
.gallery-item:hover .cap{opacity:1; transform:translateY(0);}
.gallery-item .zoom-ic{
  position:absolute; top:12px; right:12px; width:32px; height:32px; border-radius:50%;
  background:rgba(255,255,255,0.92); color:var(--noir);
  display:flex; align-items:center; justify-content:center; font-size:.85rem;
  opacity:0; transform:scale(.8); transition:opacity var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);
}
.gallery-item:hover .zoom-ic{opacity:1; transform:scale(1);}

/* ---------- lightbox ---------- */
.lightbox{
  position:fixed; inset:0; z-index:1000; background:rgba(11,11,12,0.92);
  display:flex; align-items:center; justify-content:center; padding:5vh 5vw;
  opacity:0; visibility:hidden; transition:opacity var(--t-med) var(--ease);
}
.lightbox.open{opacity:1; visibility:visible;}
.lightbox img{
  max-width:100%; max-height:88vh; border-radius:var(--r-md); box-shadow:var(--ombre-lg);
  transform:scale(.96); transition:transform var(--t-med) var(--ease);
}
.lightbox.open img{transform:scale(1);}
.lightbox-close{
  position:absolute; top:20px; right:20px; width:44px; height:44px; border-radius:50%;
  background:rgba(255,255,255,0.1); border:1px solid var(--ligne-dark-forte); color:#fff;
  font-size:1.2rem; cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:background var(--t-fast) var(--ease);
}
.lightbox-close:hover{background:rgba(255,255,255,0.2);}
.lightbox-cap{
  position:absolute; bottom:24px; left:0; right:0; text-align:center; color:#fff;
  font-size:.9rem; font-weight:600; padding:0 20px;
}

@media (max-width:960px){
  .gallery-grid{grid-template-columns:repeat(3,1fr); grid-auto-rows:170px;}
}
@media (max-width:640px){
  .gallery-grid{grid-template-columns:repeat(2,1fr); grid-auto-rows:150px; gap:10px;}
  .gallery-item.wide{grid-column:span 2;}
  .gallery-item.tall{grid-row:span 1;}
  .why-list{grid-template-columns:1fr;}
  .why-list li:last-child{grid-column:auto;}
  .why-mini-stats{gap:28px;}
}

