/* Layout vitrine : priorité sur style.css (main / page-wrapper) */
main.home-page,
main.services-page,
main.contact-page,
main.dg-page,
main.compliance-page,
main.compliance-docs-page,
main.clients-page,
main.news-page {
  margin-top: 0;
  padding: 0;
  animation: none;
}

/* Neutralise les regles globales style.css (section/main) sur la vitrine */
.compliance-page .compliance-card h3,
.compliance-docs-page .compliance-card h3,
.news-page .compliance-card h3 {
  border-left: none;
  padding-left: 0;
}

/* === _snapshot_accueil_online.html === */
.home-page{background:#f0f2f5;min-height:calc(100vh - 200px);padding:0;overflow-x:hidden}

/* ===== HERO SLIDER ===== */
.hero-slider{
  position:relative;
  width:100%;
  height:clamp(400px, 60vh, 700px);
  overflow:hidden;
  background:#0b2a4a;
}

.hero-slide{
  position:absolute;
  inset:0;
  opacity:0;
  transition:opacity 1s ease, transform 1s ease;
  transform:scale(1.05);
  z-index:0;
}

.hero-slide.active{
  opacity:1;
  transform:scale(1);
  z-index:1;
}

.hero-slide img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.hero-slide::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, rgba(11,42,74,0.85) 0%, rgba(31,78,121,0.7) 50%, rgba(42,168,74,0.4) 100%);
  z-index:1;
}

.hero-slide-content{
  position:absolute;
  inset:0;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:20px;
}

.hero-slide-content h1{
  color:#fff;
  font-size:clamp(32px, 5vw, 56px);
  font-weight:900;
  margin:0 0 12px;
  text-shadow:0 4px 30px rgba(0,0,0,0.3);
  animation:slideUp 0.8s ease both;
}

.hero-slide-content p{
  color:rgba(255,255,255,0.92);
  font-size:clamp(15px, 2.2vw, 20px);
  max-width:700px;
  margin:0 0 30px;
  line-height:1.7;
  text-shadow:0 2px 15px rgba(0,0,0,0.3);
  animation:slideUp 0.8s 0.15s ease both;
}

.hero-btn-group{
  display:flex;
  gap:16px;
  flex-wrap:wrap;
  justify-content:center;
  animation:slideUp 0.8s 0.3s ease both;
}

.hero-btn-primary, .hero-btn-secondary{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:14px 32px;
  font-weight:700;
  font-size:15px;
  text-decoration:none;
  border-radius:50px;
  transition:transform .25s ease,box-shadow .25s ease;
}

.hero-btn-primary{
  background:#fff;
  color:#1f4e79;
  box-shadow:0 8px 30px rgba(0,0,0,.18);
}

.hero-btn-primary:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 40px rgba(0,0,0,.25);
}

.hero-btn-secondary{
  background:rgba(255,255,255,.15);
  color:#fff;
  border:1px solid rgba(255,255,255,.3);
  backdrop-filter:blur(6px);
}

.hero-btn-secondary:hover{
  background:rgba(255,255,255,.25);
  transform:translateY(-3px);
}

@keyframes slideUp{
  from{opacity:0;transform:translateY(30px)}
  to{opacity:1;transform:translateY(0)}
}

/* Dots navigation */
.hero-dots{
  position:absolute;
  bottom:30px;
  left:50%;
  transform:translateX(-50%);
  z-index:3;
  display:flex;
  gap:12px;
}

.hero-dot{
  width:12px;
  height:12px;
  border-radius:50%;
  border:2px solid rgba(255,255,255,0.7);
  background:transparent;
  cursor:pointer;
  transition:all 0.3s ease;
  padding:0;
}

.hero-dot.active{
  background:#fff;
  border-color:#fff;
  transform:scale(1.3);
}

.hero-dot:hover{
  background:rgba(255,255,255,0.4);
}

/* Arrows */
.hero-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:3;
  background:rgba(255,255,255,0.12);
  border:1px solid rgba(255,255,255,0.2);
  color:#fff;
  width:48px;
  height:48px;
  border-radius:50%;
  cursor:pointer;
  font-size:22px;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:all 0.3s ease;
  backdrop-filter:blur(6px);
}

.hero-arrow:hover{
  background:rgba(255,255,255,0.25);
  transform:translateY(-50%) scale(1.1);
}

.hero-arrow.prev{left:20px}
.hero-arrow.next{right:20px}

@media(max-width:768px){
  .hero-slider{height:clamp(350px, 50vh, 500px)}
  .hero-arrow{width:36px;height:36px;font-size:16px}
  .hero-arrow.prev{left:10px}
  .hero-arrow.next{right:10px}
} 
.hero-btn svg{width:18px;height:18px}
.hero-btn.secondary:hover svg{transform:translateX(4px);transition:transform .2s ease}

/* STATS */
.stats-bar{max-width:960px;margin:-55px auto 0;position:relative;z-index:2;border-radius:16px;box-shadow:0 12px 40px rgba(0,0,0,.1);overflow:hidden;background:#fff}
.stats-bar--legacy{display:grid;grid-template-columns:repeat(4,1fr);gap:0;align-items:stretch}
.stats-bar--legacy .stat-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  padding:16px 12px 14px;
  text-align:center;
  border-right:1px solid #f0f2f5;
  transition:background .2s ease;
  position:relative;
  min-width:0;
}
.stats-bar--legacy .stat-item:last-child{border-right:none}
.stats-bar--legacy .stat-item--engagement{background:linear-gradient(180deg,#f4f8fc 0%,#fff 72%)}
.stats-bar--legacy .stat-item--performance{background:linear-gradient(180deg,#eef8f1 0%,#fff 72%)}
.stat-tag{
  display:block;
  flex-shrink:0;
  margin:0 0 8px;
  padding:3px 10px;
  border-radius:999px;
  font-size:10px;
  font-weight:800;
  letter-spacing:.07em;
  text-transform:uppercase;
  line-height:1.25;
  white-space:nowrap;
}
.stat-tag--engagement{color:#1f4e79;background:#e8f0f8;border:1px solid #c9d9ea}
.stat-tag--performance{color:#1b6b34;background:#e8f6ec;border:1px solid #c9e8d2}
.stat-item:hover{background:#f7fafc}
.stats-bar--legacy .stat-item--engagement:hover{background:linear-gradient(180deg,#edf3f9 0%,#f9fbfd 72%)}
.stats-bar--legacy .stat-item--performance:hover{background:linear-gradient(180deg,#e5f4ea 0%,#f8fcf9 72%)}
.stats-bar--legacy .stat-item{z-index:1}
.stat-number{display:block;font-size:clamp(26px,4vw,36px);font-weight:800;background:linear-gradient(135deg,#1f4e79,#2aa84a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.1;margin:0}
.stats-bar--legacy .stat-number{
  display:flex;
  align-items:baseline;
  justify-content:center;
  width:100%;
  margin:0 0 5px;
  flex-shrink:0;
}
.stat-number--plus{display:flex;align-items:baseline;justify-content:center;gap:.2em;background:none;-webkit-text-fill-color:unset;background-clip:unset}
.stat-number--plus .stat-plus,.stat-number--plus .stat-value,.stat-number--suffix .stat-value,.stat-number--suffix .stat-suffix{display:inline;font-size:clamp(26px,4vw,36px);font-weight:800;background:linear-gradient(135deg,#1f4e79,#2aa84a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.1}
.stat-number--suffix{display:inline-flex;align-items:baseline;justify-content:center;gap:.08em;background:none;-webkit-text-fill-color:unset;background-clip:unset}
.stat-number--suffix .stat-suffix{font-size:clamp(18px,2.8vw,24px)}
.stat-label{display:block;font-size:12px;color:#6b7b8c;font-weight:600;margin-top:4px;text-transform:uppercase;letter-spacing:.5px}
.stats-bar--legacy .stat-label{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:2.15em;
  margin:0 0 3px;
  padding:0 2px;
  font-size:10.5px;
  font-weight:700;
  color:#0b2a4a;
  text-transform:none;
  letter-spacing:0;
  line-height:1.25;
}
.stats-bar--legacy .stat-hint{
  display:flex;
  align-items:flex-start;
  justify-content:center;
  width:100%;
  min-height:2.1em;
  margin:0;
  padding:0 2px;
  font-size:9.5px;
  color:#8a97a8;
  line-height:1.25;
  font-weight:500;
}
.stats-bar--legacy .stat-number--suffix .stat-suffix,.stats-bar--legacy .stat-number--plus .stat-suffix{font-size:clamp(16px,2.4vw,22px)}

/* Flux continu gauche → droite (engagements → performances) */
.stats-bar--legacy.has-flow-motion::after{
  content:'';
  position:absolute;
  top:0;
  bottom:0;
  left:0;
  width:38%;
  pointer-events:none;
  z-index:2;
  background:linear-gradient(90deg,transparent 0%,rgba(42,168,74,.05) 42%,rgba(31,78,121,.08) 58%,transparent 100%);
  transform:translateX(-130%);
  animation:stats-bar-sweep 6s linear infinite;
}
.stats-bar--legacy.has-flow-motion .stat-item--engagement{
  animation:stats-flow-engagement 6s linear infinite;
}
.stats-bar--legacy.has-flow-motion .stat-item:nth-child(1){animation-delay:0s}
.stats-bar--legacy.has-flow-motion .stat-item:nth-child(2){animation-delay:1.5s}
.stats-bar--legacy.has-flow-motion .stat-item:nth-child(3){animation-delay:3s}
.stats-bar--legacy.has-flow-motion .stat-item--performance{
  animation:stats-flow-performance 6s linear infinite;
  animation-delay:4.5s;
}
@keyframes stats-bar-sweep{
  0%{transform:translateX(-130%)}
  100%{transform:translateX(320%)}
}
/* Chaque carte reste allumée 25 % du cycle : enchaînement sans pause entre cartes */
@keyframes stats-flow-engagement{
  0%,24.9%{
    background:linear-gradient(180deg,#e3edf7 0%,#f2f7fb 72%);
    box-shadow:inset 0 0 0 1px rgba(31,78,121,.14);
  }
  25%,100%{
    background:linear-gradient(180deg,#f4f8fc 0%,#fff 72%);
    box-shadow:none;
  }
}
@keyframes stats-flow-performance{
  0%,24.9%{
    background:linear-gradient(180deg,#d9eedf 0%,#eff9f2 72%);
    box-shadow:inset 0 0 0 1px rgba(27,107,52,.18),inset 0 -2px 0 rgba(42,168,74,.28);
  }
  25%,100%{
    background:linear-gradient(180deg,#eef8f1 0%,#fff 72%);
    box-shadow:none;
  }
}
@media (prefers-reduced-motion:reduce){
  .stats-bar--legacy.has-flow-motion::after{animation:none;opacity:0}
  .stats-bar--legacy.has-flow-motion .stat-item--engagement,
  .stats-bar--legacy.has-flow-motion .stat-item--performance{animation:none}
}

/* STATS v2 — proposition lisibilité */
.stats-section--v2{margin:0;padding:0}
.stats-bar--v2{display:block;padding:22px 24px 8px}
.stats-bar--v2 .stats-bar-head{text-align:center;padding:0 8px 18px;border-bottom:1px solid #edf2f7}
.stats-bar-eyebrow{margin:0 0 4px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#2aa84a}
.stats-bar-intro{margin:0;font-size:14px;color:#5b6b7a;line-height:1.45}
.stats-bar--v2 .stats-bar-grid{display:grid;grid-template-columns:minmax(0,2.35fr) minmax(0,1fr);gap:0}
.stats-bar--v2 .stats-bar-group{padding:18px 0 14px}
.stats-bar--v2 .stats-bar-group--engagements{padding-right:12px;border-right:1px solid #edf2f7}
.stats-bar--v2 .stats-bar-group--performance{padding-left:18px;background:linear-gradient(180deg,#f8fcf9 0%,#fff 100%)}
.stats-group-label{margin:0 0 12px;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#94a3b8;text-align:center}
.stats-group-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.stats-bar--v2 .stat-item{border-right:none;padding:16px 10px 14px;border-radius:12px}
.stats-bar--v2 .stat-item--engagement{background:#fafcfd;border:1px solid #edf2f7}
.stats-bar--v2 .stat-item--highlight{background:linear-gradient(180deg,#eef8f1 0%,#fff 100%);border:1px solid #cfe8d6;box-shadow:inset 0 0 0 1px rgba(42,168,74,.06);min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:22px 14px}
.stat-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;margin:0 auto 10px;border-radius:10px;color:#1f4e79;background:#e8f0f8;border:1px solid #d4e2ef}
.stat-icon svg{width:18px;height:18px}
.stat-icon--performance{color:#1b6b34;background:#e8f6ec;border-color:#c9e8d2}
.stats-bar--v2 .stat-label{margin:6px 0 0;font-size:13px;font-weight:700;color:#0b2a4a;text-transform:none;letter-spacing:0;line-height:1.3}
.stat-hint{margin:4px 0 0;font-size:11px;color:#6b7b8c;line-height:1.35;font-weight:500}
.stats-bar--v2 .stat-number--plus .stat-suffix,.stats-bar--v2 .stat-number--suffix .stat-suffix{font-size:clamp(20px,3vw,28px)}

/* ABOUT */
.about-section{max-width:960px;margin:0 auto;padding:70px 20px 40px}
.about-card{background:#fff;border-radius:20px;padding:50px 40px;box-shadow:0 4px 16px rgba(0,0,0,.05);border:1px solid #f0f2f5;position:relative;overflow:hidden;opacity:0;transform:translateY(30px);transition:opacity .6s ease,transform .6s ease}
.about-card.visible{opacity:1;transform:translateY(0)}
.about-card::before{content:'';position:absolute;width:250px;height:250px;border-radius:50%;background:linear-gradient(135deg,rgba(42,168,74,.06),rgba(31,78,121,.04));top:-80px;right:-80px}
.about-card h2{font-size:clamp(22px,4vw,30px);font-weight:800;color:#0b2a4a;margin:0 0 20px;border:none;padding:0;position:relative;z-index:1}
.about-card p{font-size:16px;color:#4a5568;line-height:1.8;margin:0 0 16px;position:relative;z-index:1}

/* EXPERTISE */
.expertise-section{max-width:960px;margin:0 auto;padding:40px 20px 40px}
.section-header{text-align:center;margin-bottom:48px}
.section-header h2{font-size:clamp(22px,4vw,32px);font-weight:800;color:#0b2a4a;margin:0 0 8px;border:none;padding:0}
.section-header p{color:#6b7b8c;font-size:15px;max-width:500px;margin:0 auto}
.expertise-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.expertise-card{background:#fff;border-radius:20px;padding:36px 28px;box-shadow:0 4px 16px rgba(0,0,0,.05);border:1px solid #f0f2f5;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;opacity:0;transform:translateY(30px);position:relative;overflow:hidden;text-decoration:none;color:inherit;display:block}
.expertise-card.visible{opacity:1;transform:translateY(0);transition:opacity .5s ease,transform .5s ease,box-shadow .3s ease,border-color .3s ease}
.expertise-card:nth-child(1){transition-delay:.05s}
.expertise-card:nth-child(2){transition-delay:.15s}
.expertise-card:nth-child(3){transition-delay:.25s}
.expertise-card:nth-child(4){transition-delay:.35s}
.expertise-card:hover{transform:translateY(-8px);box-shadow:0 16px 40px rgba(0,0,0,.1);border-color:#d0e8f7}
.expertise-card::before{content:'';position:absolute;width:150px;height:150px;border-radius:50%;top:-40px;right:-40px;opacity:.5}
.expertise-card:nth-child(1)::before{background:linear-gradient(135deg,rgba(31,78,121,.08),rgba(31,78,121,.03))}
.expertise-card:nth-child(2)::before{background:linear-gradient(135deg,rgba(42,168,74,.08),rgba(42,168,74,.03))}
.expertise-card:nth-child(3)::before{background:linear-gradient(135deg,rgba(255,152,0,.08),rgba(255,152,0,.03))}
.expertise-card:nth-child(4)::before{background:linear-gradient(135deg,rgba(156,39,176,.08),rgba(156,39,176,.03))}
.expertise-icon{width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:26px;margin-bottom:18px;position:relative;z-index:1}
.expertise-icon.e1{background:linear-gradient(135deg,#e8f4fd,#c5e5f8)}
.expertise-icon.e2{background:linear-gradient(135deg,#e6f9ee,#b8f0cd)}
.expertise-icon.e3{background:linear-gradient(135deg,#fff3e0,#ffe0b2)}
.expertise-icon.e4{background:linear-gradient(135deg,#f3e8fd,#ddb8f8)}
.expertise-card h3{font-size:18px;font-weight:700;color:#0b2a4a;margin:0 0 8px;position:relative;z-index:1}
.expertise-card p{font-size:14px;color:#6b7b8c;line-height:1.7;margin:0;position:relative;z-index:1}

/* DG CARD */
.dg-preview{max-width:960px;margin:0 auto;padding:0 20px 40px}
.dg-card{background:linear-gradient(135deg,#0b2a4a,#1f4e79);border-radius:20px;padding:50px 40px;position:relative;overflow:hidden;opacity:0;transform:translateY(30px);transition:opacity .6s ease,transform .6s ease}
.dg-card.visible{opacity:1;transform:translateY(0)}
.dg-card::before{content:'';position:absolute;width:300px;height:300px;border-radius:50%;background:rgba(42,168,74,.12);top:-100px;right:-80px}
.dg-card::after{content:'';position:absolute;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,.04);bottom:-60px;left:-40px}
.dg-card blockquote{font-size:clamp(16px,2.5vw,20px);color:rgba(255,255,255,.9);font-style:italic;line-height:1.8;margin:0 0 24px;position:relative;z-index:1;padding-left:20px;border-left:4px solid #2aa84a}
.dg-card .cta-btn{position:relative;z-index:1}

/* CTA */
.cta-section{max-width:960px;margin:0 auto;padding:0 20px 80px}
.cta-card{background:#fff;border-radius:20px;padding:50px 30px;text-align:center;box-shadow:0 4px 16px rgba(0,0,0,.05);border:1px solid #f0f2f5;position:relative;overflow:hidden}
.cta-card h2{font-size:clamp(22px,4vw,30px);font-weight:800;color:#0b2a4a;margin:0 0 12px;border:none;padding:0}
.cta-card>p{color:#6b7b8c;font-size:15px;margin:0 0 30px}
.cta-btn{display:inline-flex;align-items:center;gap:10px;padding:16px 40px;background:linear-gradient(135deg,#2aa84a,#1dd056);color:#fff;font-weight:700;font-size:16px;text-decoration:none;border-radius:50px;transition:transform .25s ease,box-shadow .25s ease;box-shadow:0 8px 25px rgba(42,168,74,.35)}
.cta-btn:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 14px 35px rgba(42,168,74,.45)}
.cta-btn svg{width:20px;height:20px;transition:transform .2s ease}
.cta-btn:hover svg{transform:translateX(4px)}

@media(max-width:900px){
  .stats-bar--legacy{grid-template-columns:repeat(2,1fr);margin:-40px 20px 0}
  .stats-bar--legacy .stat-item:nth-child(2){border-right:none}
  .stats-bar--v2{margin:-40px 20px 0;padding:18px 16px 6px}
  .stats-bar--v2 .stats-bar-grid{grid-template-columns:1fr}
  .stats-bar--v2 .stats-bar-group--engagements{padding-right:0;border-right:none;border-bottom:1px solid #edf2f7;padding-bottom:16px}
  .stats-bar--v2 .stats-bar-group--performance{padding-left:0;background:none}
  .stats-group-items{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .expertise-grid{grid-template-columns:1fr}
}
@media(max-width:640px){
  .home-hero{padding:50px 16px 70px}
  .hero-buttons{flex-direction:column;align-items:center}
  .hero-btn{width:100%;justify-content:center;max-width:300px}
  .about-card,.dg-card,.cta-card{padding:30px 20px}
  .stats-bar--legacy .stat-item{padding:14px 10px 12px}
  .stats-bar--legacy .stat-label,.stats-bar--legacy .stat-hint{min-height:0}
  .stats-group-items{grid-template-columns:1fr}
  .stats-bar--v2 .stat-item--engagement,.stats-bar--v2 .stat-item--highlight{text-align:center}
}
@media(max-width:400px){
  .stats-bar--legacy{grid-template-columns:1fr}
  .stats-bar--legacy .stat-item{border-right:none;border-bottom:1px solid #f0f2f5}
  .stats-bar--legacy .stat-item:last-child{border-bottom:none}
}

/* === _snapshot_actualites.php.html === */
.news-page{background:#f0f2f5;min-height:calc(100vh - 200px);padding:0;overflow-x:hidden}
.news-hero{position:relative;background:linear-gradient(135deg,#0b2a4a 0%,#1f4e79 50%,#2aa84a 100%);padding:80px 20px 100px;text-align:center;overflow:hidden}
.hero-bg-shapes{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.hero-shape{position:absolute;border-radius:50%;opacity:.07;background:#fff;animation:float 8s ease-in-out infinite}
.hero-shape:nth-child(1){width:320px;height:320px;top:-60px;left:-80px;animation-delay:0s}
.hero-shape:nth-child(2){width:200px;height:200px;top:20%;right:-40px;animation-delay:1.5s;animation-duration:10s}
.hero-shape:nth-child(3){width:140px;height:140px;bottom:10%;left:15%;animation-delay:3s;animation-duration:12s}
.hero-shape:nth-child(4){width:90px;height:90px;top:10%;left:40%;animation-delay:2s;animation-duration:9s}
.hero-shape:nth-child(5){width:180px;height:180px;bottom:-40px;right:20%;animation-delay:4s;animation-duration:11s}
@keyframes float{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-30px) scale(1.05)}}
.hero-badge{display:inline-block;background:rgba(255,255,255,.15);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.25);padding:6px 18px;border-radius:30px;color:#fff;font-size:13px;font-weight:600;letter-spacing:.5px;margin-bottom:20px;animation:fadeDown .6s ease both}
.news-hero h1{color:#fff;font-size:clamp(28px,5vw,48px);font-weight:800;margin:0 0 12px;animation:fadeDown .6s .15s ease both}
.news-hero h1 span{background:linear-gradient(90deg,#5dd879,#a0f0b0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.news-hero .subtitle{color:rgba(255,255,255,.85);font-size:clamp(15px,2.5vw,18px);max-width:640px;margin:0 auto 32px;line-height:1.7;animation:fadeDown .6s .3s ease both}
@keyframes fadeDown{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}

/* INTRO */
.intro-section{max-width:900px;margin:0 auto;padding:50px 20px 0}
.intro-card{background:#fff;border-radius:20px;padding:36px;box-shadow:0 4px 16px rgba(0,0,0,.05);border:1px solid #f0f2f5;text-align:center;opacity:0;transform:translateY(30px);transition:opacity .6s ease,transform .6s ease}
.intro-card.visible{opacity:1;transform:translateY(0)}
.intro-card p{font-size:16px;color:#4a5568;line-height:1.8;margin:0}

/* CTA */
.cta-section{max-width:960px;margin:0 auto;padding:0 20px 80px}
.cta-card{background:linear-gradient(135deg,#0b2a4a,#1f4e79);border-radius:20px;padding:50px 30px;text-align:center;position:relative;overflow:hidden}
.cta-card::before{content:'';position:absolute;width:300px;height:300px;border-radius:50%;background:rgba(42,168,74,.15);top:-100px;right:-80px}
.cta-card::after{content:'';position:absolute;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,.05);bottom:-60px;left:-40px}
.cta-card h2{font-size:clamp(22px,4vw,30px);font-weight:800;color:#fff;margin:0 0 12px;border:none;padding:0;position:relative;z-index:1}
.cta-card>p{color:rgba(255,255,255,.8);font-size:15px;margin:0 0 30px;position:relative;z-index:1}
.cta-btn{display:inline-flex;align-items:center;gap:10px;padding:16px 40px;background:linear-gradient(135deg,#2aa84a,#1dd056);color:#fff;font-weight:700;font-size:16px;text-decoration:none;border-radius:50px;transition:transform .25s ease,box-shadow .25s ease;box-shadow:0 8px 25px rgba(42,168,74,.35);position:relative;z-index:1}
.cta-btn:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 14px 35px rgba(42,168,74,.45)}
.cta-btn svg{width:20px;height:20px;transition:transform .2s ease}
.cta-btn:hover svg{transform:translateX(4px)}

@media(max-width:640px){.news-hero{padding:50px 16px 70px}.intro-card{padding:28px 20px}.cta-card{padding:36px 20px}}

/* === _snapshot_clients.php.html === */
.clients-page{background:#f0f2f5;min-height:calc(100vh - 200px);padding:0;overflow-x:hidden}
.clients-hero{position:relative;background:linear-gradient(135deg,#0b2a4a 0%,#1f4e79 50%,#2aa84a 100%);padding:80px 20px 100px;text-align:center;overflow:hidden}
.hero-bg-shapes{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.hero-shape{position:absolute;border-radius:50%;opacity:.07;background:#fff;animation:float 8s ease-in-out infinite}
.hero-shape:nth-child(1){width:320px;height:320px;top:-60px;left:-80px;animation-delay:0s}
.hero-shape:nth-child(2){width:200px;height:200px;top:20%;right:-40px;animation-delay:1.5s;animation-duration:10s}
.hero-shape:nth-child(3){width:140px;height:140px;bottom:10%;left:15%;animation-delay:3s;animation-duration:12s}
.hero-shape:nth-child(4){width:90px;height:90px;top:10%;left:40%;animation-delay:2s;animation-duration:9s}
.hero-shape:nth-child(5){width:180px;height:180px;bottom:-40px;right:20%;animation-delay:4s;animation-duration:11s}
@keyframes float{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-30px) scale(1.05)}}
.hero-badge{display:inline-block;background:rgba(255,255,255,.15);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.25);padding:6px 18px;border-radius:30px;color:#fff;font-size:13px;font-weight:600;letter-spacing:.5px;margin-bottom:20px;animation:fadeDown .6s ease both}
.clients-hero h1{color:#fff;font-size:clamp(28px,5vw,48px);font-weight:800;margin:0 0 12px;animation:fadeDown .6s .15s ease both}
.clients-hero h1 span{background:linear-gradient(90deg,#5dd879,#a0f0b0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.clients-hero .subtitle{color:rgba(255,255,255,.85);font-size:clamp(15px,2.5vw,18px);max-width:640px;margin:0 auto 32px;line-height:1.7;animation:fadeDown .6s .3s ease both}
@keyframes fadeDown{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}

/* ACCÈS CLIENTS — carte connexion compacte */
.clients-page .info-section{max-width:960px;margin:0 auto;padding:28px 20px 8px}
.clients-page .info-card{background:#fff;border-radius:16px;padding:28px 32px 32px;box-shadow:0 4px 16px rgba(0,0,0,.05);border:1px solid #f0f2f5;position:relative;overflow:hidden;text-align:center;opacity:0;transform:translateY(30px);transition:opacity .6s ease,transform .6s ease;max-width:640px;margin:0 auto}
.clients-page .info-card.visible{opacity:1;transform:translateY(0)}
.clients-page .info-card::before{content:'';position:absolute;width:180px;height:180px;border-radius:50%;background:linear-gradient(135deg,rgba(42,168,74,.06),rgba(31,78,121,.04));top:-60px;right:-60px}
.clients-page .info-icon{font-size:40px;margin-bottom:10px;line-height:1;position:relative;z-index:1}
.clients-page .info-card h2{font-size:clamp(20px,3vw,24px);font-weight:800;color:#1f4e79;margin:0 0 8px;border:none;padding:0;position:relative;z-index:1}
.clients-page .info-card p{font-size:15px;color:#6b7b8c;line-height:1.55;margin:0 auto 14px;position:relative;z-index:1;max-width:480px}
.clients-page .info-card .clients-portal-btn{margin-top:0;padding:14px 32px;font-size:15px}
.clients-page .clients-below-hint{margin:14px 0 0;font-size:13px;font-weight:600;color:#6b7b8c;position:relative;z-index:1}

/* FEATURES */
.clients-page .features-section{max-width:960px;margin:0 auto;padding:36px 20px 40px}
.features-section{max-width:960px;margin:0 auto;padding:60px 20px 40px}
.section-header{text-align:center;margin-bottom:48px}
.section-header h2{font-size:clamp(22px,4vw,32px);font-weight:800;color:#0b2a4a;margin:0 0 8px;border:none;padding:0}
.section-header p{color:#6b7b8c;font-size:15px;max-width:500px;margin:0 auto}
.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.feature-card{background:#fff;border-radius:16px;padding:32px 24px;text-align:center;box-shadow:0 4px 16px rgba(0,0,0,.05);border:1px solid #f0f2f5;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;opacity:0;transform:translateY(30px)}
.feature-card.visible{opacity:1;transform:translateY(0);transition:opacity .5s ease,transform .5s ease,box-shadow .3s ease,border-color .3s ease}
.feature-card:nth-child(1){transition-delay:.05s}
.feature-card:nth-child(2){transition-delay:.15s}
.feature-card:nth-child(3){transition-delay:.25s}
.feature-card:hover{transform:translateY(-8px);box-shadow:0 16px 40px rgba(0,0,0,.1);border-color:#d0e8f7}
.feature-icon{width:64px;height:64px;margin:0 auto 18px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:28px}
.feature-icon.f1{background:linear-gradient(135deg,#e8f4fd,#c5e5f8)}
.feature-icon.f2{background:linear-gradient(135deg,#e6f9ee,#b8f0cd)}
.feature-icon.f3{background:linear-gradient(135deg,#fff3e0,#ffe0b2)}
.feature-card h3{font-size:16px;font-weight:700;color:#0b2a4a;margin:0 0 8px}
.feature-card p{font-size:14px;color:#6b7b8c;line-height:1.6;margin:0}

/* CTA */
.cta-section{max-width:960px;margin:0 auto;padding:0 20px 80px}
.cta-card{background:linear-gradient(135deg,#0b2a4a,#1f4e79);border-radius:20px;padding:50px 30px;text-align:center;position:relative;overflow:hidden}
.cta-card::before{content:'';position:absolute;width:300px;height:300px;border-radius:50%;background:rgba(42,168,74,.15);top:-100px;right:-80px}
.cta-card::after{content:'';position:absolute;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,.05);bottom:-60px;left:-40px}
.cta-card h2{font-size:clamp(22px,4vw,30px);font-weight:800;color:#fff;margin:0 0 12px;border:none;padding:0;position:relative;z-index:1}
.cta-card>p{color:rgba(255,255,255,.8);font-size:15px;margin:0 0 30px;position:relative;z-index:1}
.cta-btn{display:inline-flex;align-items:center;gap:10px;padding:16px 40px;background:linear-gradient(135deg,#2aa84a,#1dd056);color:#fff;font-weight:700;font-size:16px;text-decoration:none;border-radius:50px;transition:transform .25s ease,box-shadow .25s ease;box-shadow:0 8px 25px rgba(42,168,74,.35);position:relative;z-index:1}
.cta-btn:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 14px 35px rgba(42,168,74,.45)}
.cta-btn svg{width:20px;height:20px;transition:transform .2s ease}
.cta-btn:hover svg{transform:translateX(4px)}

@media(max-width:900px){.features-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.clients-page .info-section{padding:20px 16px 4px}.clients-page .info-card{padding:22px 20px 24px}.clients-page .features-section{padding:28px 16px 32px}.features-grid{grid-template-columns:1fr}.cta-card{padding:36px 20px}}

/* === _snapshot_conformite.php.html === */
.compliance-page{background:#f0f2f5;min-height:calc(100vh - 200px);padding:0;overflow-x:hidden}
.compliance-hero{position:relative;background:linear-gradient(135deg,#0b2a4a 0%,#1f4e79 50%,#2aa84a 100%);padding:80px 20px 100px;text-align:center;overflow:hidden}
.hero-bg-shapes{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.hero-shape{position:absolute;border-radius:50%;opacity:.07;background:#fff;animation:float 8s ease-in-out infinite}
.hero-shape:nth-child(1){width:320px;height:320px;top:-60px;left:-80px;animation-delay:0s}
.hero-shape:nth-child(2){width:200px;height:200px;top:20%;right:-40px;animation-delay:1.5s;animation-duration:10s}
.hero-shape:nth-child(3){width:140px;height:140px;bottom:10%;left:15%;animation-delay:3s;animation-duration:12s}
.hero-shape:nth-child(4){width:90px;height:90px;top:10%;left:40%;animation-delay:2s;animation-duration:9s}
.hero-shape:nth-child(5){width:180px;height:180px;bottom:-40px;right:20%;animation-delay:4s;animation-duration:11s}
@keyframes float{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-30px) scale(1.05)}}
.hero-badge{display:inline-block;background:rgba(255,255,255,.15);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.25);padding:6px 18px;border-radius:30px;color:#fff;font-size:13px;font-weight:600;letter-spacing:.5px;margin-bottom:20px;animation:fadeDown .6s ease both}
.compliance-hero h1{color:#fff;font-size:clamp(28px,5vw,48px);font-weight:800;margin:0 0 12px;animation:fadeDown .6s .15s ease both}
.compliance-hero h1 span{background:linear-gradient(90deg,#5dd879,#a0f0b0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.compliance-hero .subtitle{color:rgba(255,255,255,.85);font-size:clamp(15px,2.5vw,18px);max-width:640px;margin:0 auto 32px;line-height:1.7;animation:fadeDown .6s .3s ease both}
@keyframes fadeDown{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}

/* INTRO */
.intro-section{max-width:900px;margin:0 auto;padding:50px 20px 0}
.intro-card{background:#fff;border-radius:20px;padding:40px;box-shadow:0 4px 16px rgba(0,0,0,.05);border:1px solid #f0f2f5;position:relative;overflow:hidden;text-align:center;opacity:0;transform:translateY(30px);transition:opacity .6s ease,transform .6s ease}
.intro-card.visible{opacity:1;transform:translateY(0)}
.intro-card::before{content:'';position:absolute;width:250px;height:250px;border-radius:50%;background:linear-gradient(135deg,rgba(42,168,74,.06),rgba(31,78,121,.04));top:-80px;right:-80px}
.intro-card p{font-size:16px;color:#4a5568;line-height:1.8;margin:0;position:relative;z-index:1;max-width:700px;margin:0 auto}
.intro-icon{font-size:48px;margin-bottom:16px;position:relative;z-index:1}

/* CARDS GRID — Engagement & Conformité uniquement (Actualités : conformite-public.css) */
.compliance-page .compliance-grid,
.compliance-docs-page .compliance-grid{max-width:960px;margin:0 auto;padding:50px 20px 40px}
.compliance-page .section-header,
.compliance-docs-page .section-header{text-align:center;margin-bottom:48px}
.compliance-page .section-header h2,
.compliance-docs-page .section-header h2{font-size:clamp(22px,4vw,32px);font-weight:800;color:#0b2a4a;margin:0 0 8px;border:none;padding:0}
.compliance-page .section-header p,
.compliance-docs-page .section-header p{color:#6b7b8c;font-size:15px;max-width:500px;margin:0 auto}
.compliance-page .compliance-cards,
.compliance-docs-page .compliance-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.compliance-page .compliance-card,
.compliance-docs-page .compliance-card{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 4px 16px rgba(0,0,0,.05);border:1px solid #f0f2f5;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;opacity:1;transform:none;text-decoration:none;color:inherit;display:block;position:relative}
.compliance-page .compliance-card.visible,
.compliance-docs-page .compliance-card.visible{opacity:1;transform:none}
.intro-card{opacity:1!important;transform:none!important}
.compliance-page .compliance-card:nth-child(1),
.compliance-docs-page .compliance-card:nth-child(1){transition-delay:.05s}
.compliance-page .compliance-card:nth-child(2),
.compliance-docs-page .compliance-card:nth-child(2){transition-delay:.15s}
.compliance-page .compliance-card:nth-child(3),
.compliance-docs-page .compliance-card:nth-child(3){transition-delay:.25s}
.compliance-page .compliance-card:nth-child(4),
.compliance-docs-page .compliance-card:nth-child(4){transition-delay:.35s}
.compliance-page .compliance-card:hover,
.compliance-docs-page .compliance-card:hover{transform:translateY(-8px);box-shadow:0 16px 40px rgba(0,0,0,.1);border-color:#d0e8f7}
.compliance-page .compliance-card-top,
.compliance-docs-page .compliance-card-top{height:6px}
.compliance-page .compliance-card:nth-child(1) .compliance-card-top,
.compliance-docs-page .compliance-card:nth-child(1) .compliance-card-top{background:linear-gradient(90deg,#1f4e79,#2aa84a)}
.compliance-page .compliance-card:nth-child(2) .compliance-card-top,
.compliance-docs-page .compliance-card:nth-child(2) .compliance-card-top{background:linear-gradient(90deg,#2aa84a,#1dd056)}
.compliance-page .compliance-card:nth-child(3) .compliance-card-top,
.compliance-docs-page .compliance-card:nth-child(3) .compliance-card-top{background:linear-gradient(90deg,#ff9800,#ffb74d)}
.compliance-page .compliance-card:nth-child(4) .compliance-card-top,
.compliance-docs-page .compliance-card:nth-child(4) .compliance-card-top{background:linear-gradient(90deg,#9c27b0,#ba68c8)}
.compliance-page .compliance-card-body,
.compliance-docs-page .compliance-card-body{padding:30px 28px}
.compliance-page .compliance-card-icon,
.compliance-docs-page .compliance-card-icon{width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:26px;margin-bottom:18px}
.compliance-page .compliance-card:nth-child(1) .compliance-card-icon,
.compliance-docs-page .compliance-card:nth-child(1) .compliance-card-icon{background:linear-gradient(135deg,#e8f4fd,#c5e5f8)}
.compliance-page .compliance-card:nth-child(2) .compliance-card-icon,
.compliance-docs-page .compliance-card:nth-child(2) .compliance-card-icon{background:linear-gradient(135deg,#e6f9ee,#b8f0cd)}
.compliance-page .compliance-card:nth-child(3) .compliance-card-icon,
.compliance-docs-page .compliance-card:nth-child(3) .compliance-card-icon{background:linear-gradient(135deg,#fff3e0,#ffe0b2)}
.compliance-page .compliance-card:nth-child(4) .compliance-card-icon,
.compliance-docs-page .compliance-card:nth-child(4) .compliance-card-icon{background:linear-gradient(135deg,#f3e8fd,#ddb8f8)}
.compliance-page .compliance-card h3,
.compliance-docs-page .compliance-card h3{font-size:18px;font-weight:700;color:#0b2a4a;margin:0 0 10px}
.compliance-page .compliance-card p,
.compliance-docs-page .compliance-card p{font-size:14px;color:#6b7b8c;line-height:1.7;margin:0 0 16px}
.compliance-page .compliance-card-link,
.compliance-docs-page .compliance-card-link{display:inline-flex;align-items:center;gap:6px;color:#1f4e79;font-weight:600;font-size:14px}
.compliance-page .compliance-card-link svg,
.compliance-docs-page .compliance-card-link svg{width:16px;height:16px;transition:transform .2s ease}
.compliance-page .compliance-card:hover .compliance-card-link svg,
.compliance-docs-page .compliance-card:hover .compliance-card-link svg{transform:translateX(4px)}
.compliance-page .compliance-card-count,
.compliance-docs-page .compliance-card-count{margin:0 0 10px;font-size:13px;font-weight:700;color:#2aa84a}

.compliance-docs-page .compliance-hero--compact{padding:56px 20px 48px}
.compliance-docs-back{margin:12px 0 0}
.compliance-docs-back a{color:rgba(255,255,255,.92);font-weight:600;text-decoration:none;font-size:14px}
.compliance-docs-back a:hover{text-decoration:underline}
.compliance-docs-panel-wrap{max-width:960px;margin:0 auto;padding:32px 20px 72px;box-sizing:border-box}
.compliance-docs-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.compliance-docs-tab{
  display:inline-flex;align-items:center;justify-content:center;
  padding:10px 16px;border-radius:999px;font-size:13px;font-weight:700;text-decoration:none;
  color:#1f4e79;background:#fff;border:1px solid #d0e8f7;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.compliance-docs-tab:hover{background:#eef6fc;border-color:#9db3cc}
.compliance-docs-tab.is-active{background:linear-gradient(135deg,#1f4e79,#2aa84a);color:#fff;border-color:transparent}
.compliance-docs-panel{
  background:#fff;border-radius:20px;padding:24px;
  box-shadow:0 4px 16px rgba(0,0,0,.05);border:1px solid #f0f2f5;
  box-sizing:border-box;
}
.compliance-docs-hint,.compliance-docs-empty{color:#6b7b8c;font-size:15px;line-height:1.6;margin:0}
.compliance-docs-list{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-direction:column;gap:8px}
.compliance-doc-pick{
  width:100%;text-align:left;padding:12px 14px;border-radius:12px;border:1px solid #e2e8f0;
  background:#f8fafc;cursor:pointer;font:inherit;color:#0b2a4a;
  transition:border-color .2s ease,background .2s ease;
}
.compliance-doc-pick:hover{background:#eef6fc;border-color:#c5d9eb}
.compliance-doc-pick.is-active{
  border-color:#2aa84a;background:#e8f8ee;
  box-shadow:0 0 0 2px rgba(42,168,74,.15);
}
.compliance-doc-pick-label{display:block;font-weight:700;font-size:14px}
.compliance-doc-pick-warn{display:block;margin-top:4px;font-size:12px;color:#b45309;font-weight:600}
.compliance-docs-page .docs-nav{
  display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:10px;
  margin:0 0 14px;
}
.compliance-docs-page .docs-meta{
  text-align:center;font-size:14px;font-weight:600;color:#1f4e79;line-height:1.4;
  word-break:break-word;
}
.compliance-docs-page .docs-meta-sep{opacity:.5;margin:0 4px}
.compliance-docs-page .nav-arrow{
  width:44px;height:44px;border-radius:12px;border:1px solid #cfd9e4;background:#fff;
  color:#1f4e79;font-size:22px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;padding:0;
}
.compliance-docs-page .nav-arrow:hover:not(:disabled){background:#eef6fc;border-color:#9db3cc}
.compliance-docs-page .nav-arrow:disabled{opacity:.35;cursor:not-allowed}
.compliance-pdf-frame{
  width:100%;max-width:100%;margin:0 auto;
  border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;
  background:#f4f6f9;aspect-ratio:4/3;max-height:min(72vh,720px);min-height:320px;
}
.compliance-pdf-iframe{display:block;width:100%;height:100%;min-height:320px;border:0}
.compliance-docs-open{margin:16px 0 0;text-align:center}
.compliance-docs-open a{display:inline-flex;align-items:center;gap:8px;color:#1f4e79;font-weight:700;text-decoration:none;font-size:14px}
.compliance-docs-open a:hover{text-decoration:underline}
.compliance-docs-open svg{width:18px;height:18px}

@media(max-width:640px){
  .compliance-docs-page .compliance-hero--compact{padding:44px 16px 36px}
  .compliance-docs-panel{padding:18px 16px}
  .compliance-docs-tab{font-size:12px;padding:8px 12px}
  .compliance-pdf-frame{min-height:260px;max-height:60vh}
}

/* CTA */
.cta-section{max-width:960px;margin:0 auto;padding:0 20px 80px}
.cta-card{background:linear-gradient(135deg,#0b2a4a,#1f4e79);border-radius:20px;padding:50px 30px;text-align:center;position:relative;overflow:hidden}
.cta-card::before{content:'';position:absolute;width:300px;height:300px;border-radius:50%;background:rgba(42,168,74,.15);top:-100px;right:-80px}
.cta-card::after{content:'';position:absolute;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,.05);bottom:-60px;left:-40px}
.cta-card h2{font-size:clamp(22px,4vw,30px);font-weight:800;color:#fff;margin:0 0 12px;border:none;padding:0;position:relative;z-index:1}
.cta-card>p{color:rgba(255,255,255,.8);font-size:15px;margin:0 0 30px;position:relative;z-index:1}
.cta-btn{display:inline-flex;align-items:center;gap:10px;padding:16px 40px;background:linear-gradient(135deg,#2aa84a,#1dd056);color:#fff;font-weight:700;font-size:16px;text-decoration:none;border-radius:50px;transition:transform .25s ease,box-shadow .25s ease;box-shadow:0 8px 25px rgba(42,168,74,.35);position:relative;z-index:1}
.cta-btn:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 14px 35px rgba(42,168,74,.45)}
.cta-btn svg{width:20px;height:20px;transition:transform .2s ease}
.cta-btn:hover svg{transform:translateX(4px)}

@media(max-width:900px){
  .compliance-page .compliance-cards,
  .compliance-docs-page .compliance-cards{grid-template-columns:1fr}
}
@media(max-width:640px){.compliance-hero{padding:50px 16px 70px}.compliance-card-body{padding:24px 20px}.intro-card{padding:28px 20px}.cta-card{padding:36px 20px}}

/* === _snapshot_contact_online.html === */
.contact-page{background:#f0f2f5;min-height:calc(100vh - 200px);padding:0;overflow-x:hidden}
.contact-hero{position:relative;background:linear-gradient(135deg,#0b2a4a 0%,#1f4e79 50%,#2aa84a 100%);padding:80px 20px 100px;text-align:center;overflow:hidden}
.hero-bg-shapes{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.hero-shape{position:absolute;border-radius:50%;opacity:.07;background:#fff;animation:float 8s ease-in-out infinite}
.hero-shape:nth-child(1){width:320px;height:320px;top:-60px;left:-80px;animation-delay:0s}
.hero-shape:nth-child(2){width:200px;height:200px;top:20%;right:-40px;animation-delay:1.5s;animation-duration:10s}
.hero-shape:nth-child(3){width:140px;height:140px;bottom:10%;left:15%;animation-delay:3s;animation-duration:12s}
.hero-shape:nth-child(4){width:90px;height:90px;top:10%;left:40%;animation-delay:2s;animation-duration:9s}
.hero-shape:nth-child(5){width:180px;height:180px;bottom:-40px;right:20%;animation-delay:4s;animation-duration:11s}
@keyframes float{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-30px) scale(1.05)}}
.hero-badge{display:inline-block;background:rgba(255,255,255,.15);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.25);padding:6px 18px;border-radius:30px;color:#fff;font-size:13px;font-weight:600;letter-spacing:.5px;margin-bottom:20px;animation:fadeDown .6s ease both}
.contact-hero h1{color:#fff;font-size:clamp(28px,5vw,48px);font-weight:800;margin:0 0 12px;animation:fadeDown .6s .15s ease both}
.contact-hero h1 span{background:linear-gradient(90deg,#5dd879,#a0f0b0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.contact-hero .subtitle{color:rgba(255,255,255,.85);font-size:clamp(15px,2.5vw,18px);max-width:640px;margin:0 auto 32px;line-height:1.7;animation:fadeDown .6s .3s ease both}
@keyframes fadeDown{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}
.contacts-section{max-width:960px;margin:0 auto;padding:60px 20px 40px}
.section-header{text-align:center;margin-bottom:48px}
.section-header h2{font-size:clamp(22px,4vw,32px);font-weight:800;color:#0b2a4a;margin:0 0 8px;border:none;padding:0}
.section-header p{color:#6b7b8c;font-size:15px;max-width:500px;margin:0 auto}
.contacts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.contact-card{background:#fff;border-radius:20px;padding:36px 30px;box-shadow:0 4px 16px rgba(0,0,0,.05);border:1px solid #f0f2f5;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;opacity:0;transform:translateY(30px);position:relative;overflow:hidden}
.contact-card.visible{opacity:1;transform:translateY(0);transition:opacity .5s ease,transform .5s ease,box-shadow .3s ease,border-color .3s ease}
.contact-card:nth-child(1){transition-delay:.05s}
.contact-card:nth-child(2){transition-delay:.15s}
.contact-card:hover{transform:translateY(-8px);box-shadow:0 16px 40px rgba(0,0,0,.1);border-color:#d0e8f7}
.contact-card::before{content:'';position:absolute;width:150px;height:150px;border-radius:50%;background:linear-gradient(135deg,rgba(42,168,74,.06),rgba(31,78,121,.04));top:-40px;right:-40px}
.contact-card-header{display:flex;align-items:center;gap:16px;margin-bottom:24px;position:relative;z-index:1}
.contact-avatar{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#1f4e79,#2aa84a);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:18px;flex-shrink:0}
.contact-card h3{font-size:16px;font-weight:700;color:#0b2a4a;margin:0;line-height:1.3}
.contact-role{font-size:12px;color:#6b7b8c;font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.contact-details{display:flex;flex-direction:column;gap:14px;position:relative;z-index:1}
.contact-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#f7fafc;border-radius:12px;transition:background .2s ease}
.contact-item:hover{background:#eef3f8}
.contact-item-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.contact-item-icon.phone{background:linear-gradient(135deg,#e6f9ee,#b8f0cd)}
.contact-item-icon.email{background:linear-gradient(135deg,#e8f4fd,#c5e5f8)}
.contact-item-icon svg{width:18px;height:18px;fill:#2aa84a}
.contact-item-text{display:flex;flex-direction:column}
.contact-item-label{font-size:11px;color:#9aa5b4;font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.contact-item-value{font-size:14px;color:#0b2a4a;font-weight:600}
.contact-page .info-section{max-width:960px;margin:0 auto;padding:0 20px 80px}
.contact-page .info-card{background:linear-gradient(135deg,#0b2a4a,#1f4e79);border-radius:20px;padding:50px 30px;text-align:center;position:relative;overflow:hidden}
.contact-page .info-card::before{content:'';position:absolute;width:300px;height:300px;border-radius:50%;background:rgba(42,168,74,.15);top:-100px;right:-80px}
.contact-page .info-card::after{content:'';position:absolute;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,.05);bottom:-60px;left:-40px}
.contact-page .info-card h2{font-size:clamp(22px,4vw,30px);font-weight:800;color:#fff;margin:0 0 12px;border:none;padding:0;position:relative;z-index:1}
.contact-page .info-card p{color:rgba(255,255,255,.8);font-size:15px;margin:0 0 8px;position:relative;z-index:1}
.contact-page .info-address{color:#fff;font-size:16px;font-weight:600;margin-top:20px;position:relative;z-index:1}
@media(max-width:900px){.contacts-grid{grid-template-columns:1fr}}
@media(max-width:640px){.contact-hero{padding:50px 16px 70px}.contact-card{padding:24px 20px}.contact-page .info-card{padding:36px 20px}}

/* === _snapshot_dg.php.html === */
.dg-page{background:#f0f2f5;min-height:calc(100vh - 200px);padding:0;overflow-x:hidden}
.dg-hero{position:relative;background:linear-gradient(135deg,#0b2a4a 0%,#1f4e79 50%,#2aa84a 100%);padding:80px 20px 80px;text-align:center;overflow:hidden}
.hero-bg-shapes{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.hero-shape{position:absolute;border-radius:50%;opacity:.07;background:#fff;animation:float 8s ease-in-out infinite}
.hero-shape:nth-child(1){width:320px;height:320px;top:-60px;left:-80px;animation-delay:0s}
.hero-shape:nth-child(2){width:200px;height:200px;top:20%;right:-40px;animation-delay:1.5s;animation-duration:10s}
.hero-shape:nth-child(3){width:140px;height:140px;bottom:10%;left:15%;animation-delay:3s;animation-duration:12s}
.hero-shape:nth-child(4){width:90px;height:90px;top:10%;left:40%;animation-delay:2s;animation-duration:9s}
.hero-shape:nth-child(5){width:180px;height:180px;bottom:-40px;right:20%;animation-delay:4s;animation-duration:11s}
@keyframes float{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-30px) scale(1.05)}}
.hero-badge{display:inline-block;background:rgba(255,255,255,.15);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.25);padding:6px 18px;border-radius:30px;color:#fff;font-size:13px;font-weight:600;letter-spacing:.5px;margin-bottom:20px;animation:fadeDown .6s ease both}
.dg-hero h1{color:#fff;font-size:clamp(26px,5vw,42px);font-weight:800;margin:0 0 12px;animation:fadeDown .6s .15s ease both}
.dg-hero .subtitle{color:rgba(255,255,255,.85);font-size:clamp(14px,2.5vw,17px);max-width:550px;margin:0 auto;line-height:1.7;animation:fadeDown .6s .3s ease both}
@keyframes fadeDown{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}
.message-section{max-width:900px;margin:0 auto;padding:60px 20px 40px}
.message-card{background:#fff;border-radius:20px;padding:50px 40px;box-shadow:0 4px 16px rgba(0,0,0,.05);border:1px solid #f0f2f5;position:relative;overflow:hidden;opacity:0;transform:translateY(30px);transition:opacity .6s ease,transform .6s ease}
.message-card.visible{opacity:1;transform:translateY(0)}
.message-card::before{content:'';position:absolute;width:250px;height:250px;border-radius:50%;background:linear-gradient(135deg,rgba(42,168,74,.06),rgba(31,78,121,.04));top:-80px;right:-80px}
.message-card .lead{font-size:clamp(17px,2.5vw,20px);color:#1f4e79;font-weight:600;line-height:1.8;margin:0 0 28px;padding-left:20px;border-left:4px solid #2aa84a}
.message-card p{font-size:16px;color:#333;line-height:1.9;margin:0 0 20px}
.message-card .signature-block{margin-top:40px;padding-top:28px;border-top:2px solid #f0f2f5;position:relative;z-index:1}
.message-card .signature-block .role{font-size:14px;color:#6b7b8c;margin:0}
.message-card .signature-block .name{font-size:20px;font-weight:800;color:#0b2a4a;margin:6px 0 0}
.values-section{max-width:960px;margin:0 auto;padding:0 20px 80px}
.section-header{text-align:center;margin-bottom:48px}
.section-header h2{font-size:clamp(22px,4vw,32px);font-weight:800;color:#0b2a4a;margin:0 0 8px;border:none;padding:0}
.section-header p{color:#6b7b8c;font-size:15px;max-width:500px;margin:0 auto}
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.value-card{background:#fff;border-radius:16px;padding:32px 24px;text-align:center;box-shadow:0 4px 16px rgba(0,0,0,.05);border:1px solid #f0f2f5;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;opacity:0;transform:translateY(30px)}
.value-card.visible{opacity:1;transform:translateY(0);transition:opacity .5s ease,transform .5s ease,box-shadow .3s ease,border-color .3s ease}
.value-card:nth-child(1){transition-delay:.05s}
.value-card:nth-child(2){transition-delay:.15s}
.value-card:nth-child(3){transition-delay:.25s}
.value-card:hover{transform:translateY(-8px);box-shadow:0 16px 40px rgba(0,0,0,.1);border-color:#d0e8f7}
.value-icon{width:64px;height:64px;margin:0 auto 16px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:28px}
.value-icon.v1{background:linear-gradient(135deg,#e8f4fd,#c5e5f8)}
.value-icon.v2{background:linear-gradient(135deg,#e6f9ee,#b8f0cd)}
.value-icon.v3{background:linear-gradient(135deg,#fff3e0,#ffe0b2)}
.value-card h3{font-size:16px;font-weight:700;color:#0b2a4a;margin:0 0 8px}
.value-card p{font-size:14px;color:#6b7b8c;line-height:1.6;margin:0}
@media(max-width:900px){.values-grid{grid-template-columns:1fr}.message-card{padding:30px 24px}}
@media(max-width:640px){.dg-hero{padding:50px 16px 60px}.message-card{padding:24px 18px}}

/* === _snapshot_services_online.html === */
.services-page{background:#f0f2f5;min-height:calc(100vh - 200px);padding:0;overflow-x:hidden}
.services-hero{position:relative;background:linear-gradient(135deg,#0b2a4a 0%,#1f4e79 50%,#2aa84a 100%);padding:80px 20px 100px;text-align:center;overflow:hidden}
.hero-bg-shapes{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.hero-shape{position:absolute;border-radius:50%;opacity:.07;background:#fff;animation:float 8s ease-in-out infinite}
.hero-shape:nth-child(1){width:320px;height:320px;top:-60px;left:-80px;animation-delay:0s}
.hero-shape:nth-child(2){width:200px;height:200px;top:20%;right:-40px;animation-delay:1.5s;animation-duration:10s}
.hero-shape:nth-child(3){width:140px;height:140px;bottom:10%;left:15%;animation-delay:3s;animation-duration:12s}
.hero-shape:nth-child(4){width:90px;height:90px;top:10%;left:40%;animation-delay:2s;animation-duration:9s}
.hero-shape:nth-child(5){width:180px;height:180px;bottom:-40px;right:20%;animation-delay:4s;animation-duration:11s}
@keyframes float{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-30px) scale(1.05)}}
.hero-badge{display:inline-block;background:rgba(255,255,255,.15);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.25);padding:6px 18px;border-radius:30px;color:#fff;font-size:13px;font-weight:600;letter-spacing:.5px;margin-bottom:20px;animation:fadeDown .6s ease both}
.services-hero h1{color:#fff;font-size:clamp(28px,5vw,48px);font-weight:800;margin:0 0 12px;animation:fadeDown .6s .15s ease both}
.services-hero h1 span{background:linear-gradient(90deg,#5dd879,#a0f0b0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.services-hero .subtitle{color:rgba(255,255,255,.85);font-size:clamp(15px,2.5vw,18px);max-width:640px;margin:0 auto 32px;line-height:1.7;animation:fadeDown .6s .3s ease both}
@keyframes fadeDown{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}
.services-section{max-width:960px;margin:0 auto;padding:60px 20px 40px}
.section-header{text-align:center;margin-bottom:48px}
.section-header h2{font-size:clamp(22px,4vw,32px);font-weight:800;color:#0b2a4a;margin:0 0 8px;border:none;padding:0}
.section-header p{color:#6b7b8c;font-size:15px;max-width:550px;margin:0 auto}
.services-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.service-card{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 4px 16px rgba(0,0,0,.05);border:1px solid #f0f2f5;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;opacity:0;transform:translateY(30px);text-decoration:none;color:inherit;display:block}
.service-card.visible{opacity:1;transform:translateY(0);transition:opacity .5s ease,transform .5s ease,box-shadow .3s ease,border-color .3s ease}
.service-card:nth-child(1){transition-delay:.05s}
.service-card:nth-child(2){transition-delay:.15s}
.service-card:nth-child(3){transition-delay:.25s}
.service-card:nth-child(4){transition-delay:.35s}
.service-card:hover{transform:translateY(-8px);box-shadow:0 16px 40px rgba(0,0,0,.1);border-color:#d0e8f7}
.service-card-header{padding:30px 28px 0;display:flex;align-items:center;gap:16px}
.service-icon{width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:26px;flex-shrink:0}
.service-icon.s1{background:linear-gradient(135deg,#e8f4fd,#c5e5f8)}
.service-icon.s2{background:linear-gradient(135deg,#fff3e0,#ffe0b2)}
.service-icon.s3{background:linear-gradient(135deg,#e6f9ee,#b8f0cd)}
.service-icon.s4{background:linear-gradient(135deg,#fde8e8,#f8b4b4)}
.service-card-body{padding:16px 28px 28px}
.service-card h3{font-size:20px;font-weight:700;color:#0b2a4a;margin:0 0 8px}
.service-card p{font-size:14px;color:#6b7b8c;line-height:1.7;margin:0 0 16px}
.service-link{display:inline-flex;align-items:center;gap:6px;color:#1f4e79;font-weight:600;font-size:14px}
.service-link svg{width:16px;height:16px;transition:transform .2s ease}
.service-card:hover .service-link svg{transform:translateX(4px)}
.cta-section{max-width:960px;margin:0 auto;padding:0 20px 80px}
.cta-card{background:linear-gradient(135deg,#0b2a4a,#1f4e79);border-radius:20px;padding:50px 30px;text-align:center;position:relative;overflow:hidden}
.cta-card::before{content:'';position:absolute;width:300px;height:300px;border-radius:50%;background:rgba(42,168,74,.15);top:-100px;right:-80px}
.cta-card::after{content:'';position:absolute;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,.05);bottom:-60px;left:-40px}
.cta-card h2{font-size:clamp(22px,4vw,30px);font-weight:800;color:#fff;margin:0 0 12px;border:none;padding:0;position:relative;z-index:1}
.cta-card>p{color:rgba(255,255,255,.8);font-size:15px;margin:0 0 30px;position:relative;z-index:1}
.cta-btn{display:inline-flex;align-items:center;gap:10px;padding:16px 40px;background:linear-gradient(135deg,#2aa84a,#1dd056);color:#fff;font-weight:700;font-size:16px;text-decoration:none;border-radius:50px;transition:transform .25s ease,box-shadow .25s ease;box-shadow:0 8px 25px rgba(42,168,74,.35);position:relative;z-index:1}
.cta-btn:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 14px 35px rgba(42,168,74,.45)}
.cta-btn svg{width:20px;height:20px;transition:transform .2s ease}
.cta-btn:hover svg{transform:translateX(4px)}
@media(max-width:900px){.services-grid{grid-template-columns:1fr}}
@media(max-width:640px){.services-hero{padding:50px 16px 70px}.cta-card{padding:36px 20px}}

/* Mot du DG — portrait à droite du texte */
.message-card--with-portrait .dg-message-layout {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: 2rem 2.25rem;
  position: relative;
  z-index: 1;
}

.message-card--with-portrait .dg-message-body {
  flex: 1 1 0;
  min-width: 0;
}

.message-card--with-portrait .dg-message-prose {
  text-align: justify;
  hyphens: auto;
}

.message-card--with-portrait .dg-message-prose .lead {
  text-align: left;
}

.message-card--with-portrait .signature-block {
  text-align: right;
}

.message-card--with-portrait .dg-message-photo {
  flex: 0 0 auto;
  width: clamp(200px, 28vw, 280px);
  max-width: 280px;
}

.message-card--with-portrait .dg-message-photo img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 14px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.12);
  object-fit: cover;
}

@media (max-width: 520px) {
  .message-card--with-portrait .dg-message-layout {
    flex-direction: column;
    flex-wrap: wrap;
    align-items: stretch;
  }

  .message-card--with-portrait .dg-message-photo {
    width: min(260px, 100%);
    max-width: 100%;
    margin: 0 auto;
  }

  .message-card--with-portrait .signature-block {
    text-align: left;
  }
}

