
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --deep: #050b10; --mid: #081822;
  --teal: #16CED7; --white: #ffffff;
  --text-dim: rgba(255,255,255,0.55); --text-mid: rgba(255,255,255,0.75);
  --card-bg: #1a3243; --card-bg-hover: #204158;
}
html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body { font-family:'Poppins',sans-serif; color:var(--white); background:var(--deep); line-height:1.6; overflow-x:hidden; }

/* ── NAV ── */
nav {
  position:fixed; top:0; left:0; right:0; z-index:200;
  background:rgba(5,11,16,0.92); backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(22,206,215,0.1);
  padding:0 4%; height:76px;
  display:flex; align-items:center; justify-content:space-between;
}
.nav-logo img { height:30px; width:auto; display:block; }
.nav-links { display:flex; gap:0.25rem; list-style:none; align-items:center; }

/* items de premier niveau */
.nav-links > li { position:relative; }
.nav-links > li > a {
  text-decoration:none; color:var(--text-mid); font-size:0.82rem; font-weight:500;
  transition:color 0.2s; white-space:nowrap;
  padding:0.5rem 0.85rem; border-radius:6px; display:flex; align-items:center; gap:0.3rem;
}
.nav-links > li > a:hover { color:var(--teal); background:rgba(22,206,215,0.05); }
.nav-links > li > a .arrow {
  font-size:0.6rem; opacity:0.5; transition:transform 0.2s;
  display:inline-block;
}
.nav-links > li:hover > a .arrow { transform:rotate(180deg); opacity:1; }

/* dropdown */
.dropdown {
  position:absolute; top:calc(100% + 8px); left:0;
  background:rgba(8,24,34,0.97); border:1px solid rgba(22,206,215,0.15);
  border-radius:10px; padding:0.5rem; min-width:210px;
  opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity 0.2s, transform 0.2s, visibility 0.2s;
  backdrop-filter:blur(12px);
  box-shadow:0 20px 40px rgba(0,0,0,0.5);
}
.nav-links > li:hover .dropdown { opacity:1; visibility:visible; transform:translateY(0); }
.dropdown a {
  display:flex; align-items:center; gap:0.65rem;
  padding:0.6rem 0.85rem; border-radius:6px;
  text-decoration:none; color:var(--text-dim); font-size:0.8rem;
  transition:color 0.2s, background 0.2s;
}
.dropdown a:hover { color:var(--teal); background:rgba(22,206,215,0.07); }
.dropdown a .dd-icon {
  width:28px; height:28px; border-radius:6px;
  background:rgba(22,206,215,0.08); border:1px solid rgba(22,206,215,0.15);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.dropdown a .dd-icon svg { width:14px; height:14px; }
.dropdown-sep { height:1px; background:rgba(22,206,215,0.08); margin:0.35rem 0; }

.nav-cta {
  margin-left:0.5rem;
  background:transparent !important; border:1.5px solid var(--teal) !important;
  color:var(--teal) !important; padding:0.45rem 1.2rem !important;
  border-radius:50px; font-weight:600 !important; font-size:0.82rem !important;
  text-decoration:none; transition:background 0.2s,color 0.2s; white-space:nowrap;
}
.nav-cta:hover { background:var(--teal) !important; color:var(--deep) !important; }

/* hamburger + menu mobile */
.nav-toggle { display:none; flex-direction:column; justify-content:center; gap:5px; width:42px; height:42px; padding:0 9px; background:transparent; border:1px solid rgba(22,206,215,0.25); border-radius:8px; cursor:pointer; }
.nav-toggle span { display:block; height:2px; width:100%; background:var(--teal); border-radius:2px; transition:transform 0.25s, opacity 0.25s; }
.nav-toggle.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.nav-toggle.open span:nth-child(2) { opacity:0; }
.nav-toggle.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
.mobile-menu {
  position:fixed; top:76px; left:0; right:0; z-index:190;
  background:rgba(5,11,16,0.98); backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(22,206,215,0.12);
  display:flex; flex-direction:column; padding:0.5rem 5% 1.25rem;
  transform:translateY(-120%); transition:transform 0.3s ease; pointer-events:none;
}
.mobile-menu.open { transform:translateY(0); pointer-events:auto; }
.mobile-menu a { color:var(--text-mid); text-decoration:none; font-size:0.95rem; font-weight:500; padding:0.9rem 0.25rem; border-bottom:1px solid rgba(255,255,255,0.06); }
.mobile-menu a:hover { color:var(--teal); }
.mobile-menu .mobile-cta { margin-top:1rem; border:1.5px solid var(--teal); border-radius:50px; color:var(--teal); text-align:center; font-weight:600; padding:0.8rem; border-bottom:1.5px solid var(--teal); }
.mobile-menu .mobile-cta:hover { background:var(--teal); color:var(--deep); }

/* ── HERO ── */
.hero { position:relative; min-height:100vh; display:flex; align-items:center; overflow:hidden; }
#hero-bg { position:absolute; inset:0; z-index:0; background:radial-gradient(circle at 60% 50%,#081822 0%,#050b10 100%); }
#cinergy-network { position:absolute; inset:0; width:100%; height:100%; z-index:1; pointer-events:none; }
#cinergy-logo-bg { position:absolute; right:-20px; top:50%; width:560px; height:560px; transform:translateY(-50%); z-index:2; pointer-events:none; overflow:visible; }
.hero-content { position:relative; z-index:10; padding:0 5%; max-width:600px; }
.hero-eyebrow { display:inline-block; font-size:0.72rem; font-weight:600; letter-spacing:0.15em; text-transform:uppercase; color:var(--teal); margin-bottom:1.5rem; border:1px solid rgba(22,206,215,0.3); padding:0.3rem 0.9rem; border-radius:20px; background:rgba(22,206,215,0.06); }
.hero h1 { font-size:clamp(2rem,3.5vw,3rem); font-weight:700; color:var(--white); line-height:1.15; margin-bottom:1.5rem; }
.hero h1 span { color:var(--teal); }
.hero-desc { font-size:1rem; color:var(--text-dim); font-weight:300; max-width:460px; margin-bottom:2.5rem; line-height:1.75; }
.hero-actions { display:flex; gap:1rem; flex-wrap:wrap; }
.btn-primary { background:var(--teal); color:var(--deep); padding:0.875rem 2rem; border-radius:50px; font-weight:600; font-size:0.9rem; text-decoration:none; transition:background 0.2s,transform 0.15s,box-shadow 0.2s; display:inline-block; box-shadow:0 0 20px rgba(22,206,215,0.25); }
.btn-primary:hover { background:#0fb8c0; transform:translateY(-2px); box-shadow:0 0 30px rgba(22,206,215,0.4); }
.btn-ghost { border:1.5px solid rgba(255,255,255,0.2); color:var(--white); padding:0.875rem 2rem; border-radius:50px; font-weight:500; font-size:0.9rem; text-decoration:none; transition:border-color 0.2s,color 0.2s; display:inline-block; }
.btn-ghost:hover { border-color:var(--teal); color:var(--teal); }

/* SVG LOGO */
#orbit-path,#connector { stroke:#16CED7; stroke-width:4; stroke-linecap:round; fill:none; filter:drop-shadow(0 0 4px rgba(22,206,215,0.5)) drop-shadow(0 0 12px rgba(22,206,215,0.25)); opacity:0.55; }
.node { fill:none; stroke:#16CED7; stroke-width:3; filter:drop-shadow(0 0 4px rgba(22,206,215,0.5)); opacity:0.55; animation:pulseNode 5s infinite; }
.center-node { fill:none; stroke:#16CED7; stroke-width:2.5; filter:drop-shadow(0 0 4px rgba(22,206,215,0.5)); opacity:0.55; animation:pulseCenter 2.5s infinite; transform-box:fill-box; transform-origin:center; }
.energy-pulse { fill:#16CED7; opacity:0.7; filter:drop-shadow(0 0 5px rgba(22,206,215,0.6)) drop-shadow(0 0 14px rgba(22,206,215,0.3)); }
@keyframes pulseNode { 0%,100%{opacity:0.25;} 50%{opacity:0.6;} }
@keyframes pulseCenter { 0%,100%{r:4;opacity:0.3;} 50%{r:6;opacity:0.65;} }

/* CLIENTS */
.clients-band { background:#060e14; border-top:1px solid rgba(22,206,215,0.08); border-bottom:1px solid rgba(22,206,215,0.08); padding:2.5rem 0; }
.clients-label { text-align:center; font-size:0.68rem; font-weight:600; letter-spacing:0.15em; text-transform:uppercase; color:rgba(255,255,255,0.3); margin-bottom:1.75rem; }
.track-wrapper { overflow:hidden; position:relative; }
.track-wrapper::before,.track-wrapper::after { content:''; position:absolute; top:0; width:120px; height:100%; z-index:2; pointer-events:none; }
.fade-deep::before { left:0; background:linear-gradient(to right,#060e14,transparent); }
.fade-deep::after  { right:0; background:linear-gradient(to left,#060e14,transparent); }
.fade-eco::before  { left:0; background:linear-gradient(to right,#060e14,transparent); }
.fade-eco::after   { right:0; background:linear-gradient(to left,#060e14,transparent); }
@keyframes scroll-left  { from{transform:translateX(0);}    to{transform:translateX(-50%);} }
@keyframes scroll-right { from{transform:translateX(-50%);} to{transform:translateX(0);}    }
.clients-track   { display:flex; gap:4rem; align-items:center; animation:scroll-left 40s linear infinite; width:max-content; }
.partners-track  { display:flex; gap:3.5rem; align-items:center; animation:scroll-left 32s linear infinite; width:max-content; }
.protocols-track { display:flex; gap:3rem; align-items:center; animation:scroll-right 26s linear infinite; width:max-content; }
.clients-track:hover,.partners-track:hover,.protocols-track:hover { animation-play-state:paused; }
.client-logo   { height:48px; width:auto; max-width:150px; object-fit:contain; opacity:0.6; transition:opacity 0.3s; flex-shrink:0; }
.client-logo:hover   { opacity:1; }
.partner-logo  { height:36px; width:auto; max-width:120px; object-fit:contain; opacity:0.55; transition:opacity 0.3s; flex-shrink:0; }
.partner-logo:hover  { opacity:1; }
.protocol-logo { height:32px; width:auto; max-width:110px; object-fit:contain; opacity:0.55; transition:opacity 0.3s; flex-shrink:0; }
.protocol-logo:hover { opacity:1; }

/* SECTIONS */
section { padding:6rem 5%; }
.section-eyebrow { font-size:0.68rem; font-weight:600; letter-spacing:0.15em; text-transform:uppercase; color:var(--teal); display:block; margin-bottom:0.75rem; }
.section-title { font-size:clamp(1.6rem,3vw,2.4rem); font-weight:700; color:var(--white); line-height:1.2; margin-bottom:1rem; }
.section-subtitle { font-size:0.95rem; color:var(--text-dim); max-width:560px; line-height:1.75; }

/* EXPERTISES */
.expertises { background:#0a1520; }
.expertises-header { text-align:center; margin-bottom:3.5rem; }
.expertises-header .section-subtitle { margin:0 auto; }
.expertises-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.flip-card { height:220px; perspective:1000px; cursor:pointer; }
.flip-inner { position:relative; width:100%; height:100%; transition:transform 0.6s cubic-bezier(.4,0,.2,1); transform-style:preserve-3d; }
.flip-card:hover .flip-inner,
.flip-card.flipped .flip-inner { transform:rotateY(180deg); }
.flip-front,.flip-back { position:absolute; inset:0; border-radius:14px; backface-visibility:hidden; -webkit-backface-visibility:hidden; display:flex; align-items:center; padding:1.75rem; gap:1.5rem; }
.flip-front { background:var(--card-bg); border:1px solid rgba(22,206,215,0.14); flex-direction:row; transition:border-color 0.3s,background 0.3s; }
.flip-card:hover .flip-front { border-color:rgba(22,206,215,0.35); }
.flip-icon-wrap { flex-shrink:0; width:72px; height:72px; border-radius:14px; background:rgba(22,206,215,0.08); border:1px solid rgba(22,206,215,0.2); display:flex; align-items:center; justify-content:center; box-shadow:0 0 20px rgba(22,206,215,0.08); }
.flip-icon-wrap svg { width:38px; height:38px; }
.flip-front-text h3 { font-size:0.92rem; font-weight:600; color:var(--white); line-height:1.35; }
.flip-back { background:linear-gradient(135deg,rgba(22,206,215,0.15) 0%,rgba(22,206,215,0.05) 100%); border:1px solid rgba(22,206,215,0.3); transform:rotateY(180deg); border-radius:14px; flex-direction:column; justify-content:center; gap:0.75rem; }
.flip-back h3 { font-size:0.95rem; font-weight:700; color:var(--teal); }
.flip-back p { font-size:0.83rem; color:var(--text-mid); line-height:1.65; }
.flip-card.featured .flip-front { background:rgba(22,206,215,0.05); border-color:rgba(22,206,215,0.25); }
.flip-card.featured .flip-icon-wrap { background:rgba(22,206,215,0.12); box-shadow:0 0 25px rgba(22,206,215,0.15); }

/* APPROCHE */
.approche { background:#050b10; position:relative; overflow:hidden; }
.approche::before { content:''; position:absolute; top:-200px; left:-200px; width:600px; height:600px; border-radius:50%; background:radial-gradient(circle,rgba(22,206,215,0.04) 0%,transparent 70%); pointer-events:none; }
.approche::after  { content:''; position:absolute; bottom:-200px; right:-100px; width:500px; height:500px; border-radius:50%; background:radial-gradient(circle,rgba(22,206,215,0.03) 0%,transparent 70%); pointer-events:none; }
.approche-header { text-align:center; margin-bottom:4rem; position:relative; z-index:1; }
.approche-header .section-subtitle { margin:0 auto; }
.approche-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; position:relative; z-index:1; }
.approche-card { position:relative; overflow:hidden; border-radius:16px; background:var(--card-bg); border:1px solid rgba(22,206,215,0.12); padding:2.25rem 2rem 1.75rem 2rem; display:flex; flex-direction:column; gap:1.1rem; transition:border-color 0.3s,background 0.3s,transform 0.3s; }
.approche-card:hover { border-color:rgba(22,206,215,0.4); background:var(--card-bg-hover); transform:translateY(-4px); box-shadow:0 20px 50px rgba(0,0,0,0.4),0 0 30px rgba(22,206,215,0.05); }
.approche-num { position:absolute; bottom:-1rem; right:1rem; font-size:7rem; font-weight:800; color:rgba(22,206,215,0.04); line-height:1; pointer-events:none; transition:color 0.3s; }
.approche-card:hover .approche-num { color:rgba(22,206,215,0.08); }
.approche-card::before { content:''; position:absolute; left:0; top:1.5rem; bottom:1.5rem; width:3px; border-radius:3px; background:linear-gradient(to bottom,var(--teal),rgba(22,206,215,0.1)); }
.approche-step-header { display:flex; align-items:center; gap:0.85rem; }
.approche-badge { width:30px; height:30px; border-radius:50%; background:rgba(22,206,215,0.1); border:1.5px solid rgba(22,206,215,0.4); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.approche-badge span { font-size:0.72rem; font-weight:700; color:var(--teal); }
.approche-icon-main { width:46px; height:46px; border-radius:10px; background:rgba(22,206,215,0.08); border:1px solid rgba(22,206,215,0.18); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.approche-icon-main svg { width:24px; height:24px; }
.approche-card h4 { font-size:0.95rem; font-weight:700; color:var(--white); }
.approche-card p { font-size:0.8rem; color:var(--text-dim); line-height:1.65; }
.approche-tags { display:flex; flex-wrap:wrap; gap:0.4rem; }
.approche-tag-pill { font-size:0.65rem; font-weight:600; padding:0.18rem 0.6rem; border-radius:20px; background:rgba(22,206,215,0.08); color:var(--teal); border:1px solid rgba(22,206,215,0.18); }
.approche-quote-block { margin-top:3.5rem; border-top:1px solid rgba(22,206,215,0.1); padding-top:2.5rem; display:grid; grid-template-columns:1fr auto; gap:2rem; align-items:center; position:relative; z-index:1; }
.approche-quote-text { font-size:1rem; font-style:italic; color:var(--text-mid); line-height:1.75; }
.approche-quote-text strong { color:var(--teal); font-style:normal; }
.approche-sig .sig-name { font-size:0.9rem; font-weight:600; color:var(--white); display:block; text-align:right; }
.approche-sig .sig-role { font-size:0.75rem; color:var(--teal); display:block; text-align:right; }
.zone-chip { display:inline-flex; align-items:center; gap:0.4rem; margin-top:0.75rem; font-size:0.72rem; color:rgba(255,255,255,0.3); justify-content:flex-end; }

/* GROUPE */
.groupe { background:#040d14; border-top:2px solid rgba(22,206,215,0.2); border-bottom:2px solid rgba(22,206,215,0.2); position:relative; overflow:hidden; padding:6rem 5%; }
.groupe::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 10% 50%,rgba(22,206,215,0.08) 0%,transparent 50%),radial-gradient(ellipse at 90% 30%,rgba(22,206,215,0.05) 0%,transparent 50%); pointer-events:none; }
.groupe::after { content:''; position:absolute; top:0; left:5%; right:5%; height:1px; background:linear-gradient(to right,transparent,rgba(22,206,215,0.4),transparent); }
.groupe-inner { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; position:relative; z-index:1; }
.groupe-badge { display:inline-flex; align-items:center; gap:0.6rem; background:rgba(22,206,215,0.08); border:1px solid rgba(22,206,215,0.25); border-radius:30px; padding:0.4rem 1rem; margin-bottom:1.25rem; }
.groupe-badge span { font-size:0.7rem; font-weight:600; text-transform:uppercase; letter-spacing:0.1em; color:var(--teal); }
.groupe-badge .dot { width:6px; height:6px; border-radius:50%; background:var(--teal); box-shadow:0 0 6px var(--teal); animation:blink 2s infinite; }
@keyframes blink { 0%,100%{opacity:1;} 50%{opacity:0.3;} }
.groupe-text p { color:var(--text-dim); font-size:0.9rem; line-height:1.75; margin-bottom:2rem; max-width:460px; }
.groupe-logo-wrap { display:flex; align-items:center; gap:1rem; margin-bottom:1.75rem; padding:1rem 1.5rem; background:rgba(22,206,215,0.05); border:1px solid rgba(22,206,215,0.15); border-radius:10px; width:fit-content; }
.groupe-logo-wrap span { font-size:0.72rem; color:rgba(255,255,255,0.4); }
.groupe-lsmart { height:28px; width:auto; filter:brightness(0) invert(1); opacity:0.85; }
.groupe-actions { display:flex; gap:1rem; flex-wrap:wrap; }
.btn-teal-outline { border:1.5px solid var(--teal); color:var(--teal); padding:0.75rem 1.5rem; border-radius:50px; font-weight:500; font-size:0.85rem; text-decoration:none; transition:background 0.2s,color 0.2s; display:inline-block; }
.btn-teal-outline:hover { background:var(--teal); color:var(--deep); }
.btn-primary-round { background:var(--teal); color:var(--deep); padding:0.75rem 1.5rem; border-radius:50px; font-weight:600; font-size:0.85rem; text-decoration:none; transition:background 0.2s,transform 0.15s; display:inline-block; box-shadow:0 0 20px rgba(22,206,215,0.2); }
.btn-primary-round:hover { background:#0fb8c0; transform:translateY(-2px); }
.groupe-cards { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; }
.groupe-card { background:var(--card-bg); border-radius:14px; padding:1.75rem; border:1px solid rgba(22,206,215,0.14); transition:border-color 0.3s,background 0.3s; }
.groupe-card:hover { border-color:rgba(22,206,215,0.35); background:var(--card-bg-hover); }
.groupe-card.full { grid-column:1/-1; background:rgba(22,206,215,0.06); border-color:rgba(22,206,215,0.2); }
.groupe-card .g-label { font-size:0.65rem; font-weight:700; text-transform:uppercase; letter-spacing:0.12em; color:var(--teal); margin-bottom:0.5rem; }
.groupe-card .g-title { font-size:0.95rem; font-weight:600; color:var(--white); margin-bottom:0.4rem; }
.groupe-card .g-desc { font-size:0.8rem; color:var(--text-dim); line-height:1.6; }

/* ÉCOSYSTÈME */
.partenaires { background:#060e14; }
.partenaires-header { text-align:center; margin-bottom:3rem; }
.partenaires-header .section-subtitle { margin:0 auto; }
.bandeau-label { font-size:0.65rem; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:rgba(255,255,255,0.25); margin-bottom:1.25rem; text-align:center; }

/* DOCUMENTATION */
.documentation { background:#050b10; }
.documentation-header { text-align:center; margin-bottom:3.5rem; }
.documentation-header .section-subtitle { margin:0 auto; }
.livres-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-bottom:4rem; }
.livre-card {
  background:var(--card-bg); border:1px solid rgba(22,206,215,0.14);
  border-radius:14px; padding:2rem; display:flex; flex-direction:column; gap:1rem;
  transition:border-color 0.3s,background 0.3s,transform 0.3s;
}
.livre-card:hover { border-color:rgba(22,206,215,0.35); background:var(--card-bg-hover); transform:translateY(-3px); }
.livre-cover {
  width:100%; aspect-ratio:3/4; max-height:180px; position:relative;
  background:linear-gradient(135deg,rgba(22,206,215,0.12) 0%,rgba(22,206,215,0.04) 100%);
  border-radius:8px; border:1px solid rgba(22,206,215,0.18);
  display:flex; align-items:center; justify-content:center;
}
.livre-cover svg { width:48px; height:48px; opacity:0.4; }
.livre-cover.coming svg { opacity:0.25; }
.livre-soon-badge {
  position:absolute; top:0.75rem; left:0.75rem;
  font-size:0.6rem; font-weight:700; text-transform:uppercase; letter-spacing:0.08em;
  color:var(--deep); background:var(--teal); padding:0.25rem 0.6rem; border-radius:20px;
}
.livre-btn-soon { background:transparent; color:var(--teal); border:1.5px solid var(--teal); }
.livre-btn-soon:hover { background:var(--teal); color:var(--deep); }
.livre-tag { font-size:0.65rem; font-weight:700; text-transform:uppercase; letter-spacing:0.1em; color:var(--teal); }
.livre-title { font-size:0.95rem; font-weight:600; color:var(--white); line-height:1.35; }
.livre-desc { font-size:0.8rem; color:var(--text-dim); line-height:1.6; flex:1; }
.livre-btn {
  display:inline-flex; align-items:center; gap:0.5rem;
  background:var(--teal); color:var(--deep); padding:0.6rem 1.25rem;
  border-radius:50px; font-size:0.8rem; font-weight:600;
  text-decoration:none; border:none; cursor:pointer; font-family:'Poppins',sans-serif;
  transition:background 0.2s; width:fit-content;
}
.livre-btn:hover { background:#0fb8c0; }
.livre-btn.disabled { background:rgba(255,255,255,0.08); color:rgba(255,255,255,0.3); cursor:not-allowed; pointer-events:none; }

/* Modal livre blanc */
.modal-overlay {
  position:fixed; inset:0; z-index:500;
  background:rgba(0,0,0,0.75); backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transition:opacity 0.3s,visibility 0.3s;
  padding:1rem;
}
.modal-overlay.open { opacity:1; visibility:visible; }
.modal {
  background:#081822; border:1px solid rgba(22,206,215,0.2);
  border-radius:16px; padding:2.5rem; max-width:480px; width:100%;
  position:relative; transform:translateY(20px); transition:transform 0.3s;
}
.modal-overlay.open .modal { transform:translateY(0); }
.modal-close { position:absolute; top:1rem; right:1rem; background:none; border:none; color:rgba(255,255,255,0.4); cursor:pointer; font-size:1.2rem; transition:color 0.2s; }
.modal-close:hover { color:var(--white); }
.modal h3 { font-size:1.1rem; font-weight:700; color:var(--white); margin-bottom:0.5rem; }
.modal .modal-livre { font-size:0.8rem; color:var(--teal); margin-bottom:1.5rem; }
.modal .form-group { display:flex; flex-direction:column; gap:0.4rem; margin-bottom:1rem; }
.modal .form-group label { font-size:0.72rem; font-weight:600; color:rgba(255,255,255,0.5); text-transform:uppercase; letter-spacing:0.06em; }
.modal .form-group input {
  background:rgba(255,255,255,0.05); border:1px solid rgba(22,206,215,0.15);
  border-radius:8px; padding:0.7rem 1rem; font-family:'Poppins',sans-serif;
  font-size:0.85rem; color:var(--white); outline:none; transition:border-color 0.2s,box-shadow 0.2s;
}
.modal .form-group input::placeholder { color:rgba(255,255,255,0.2); }
.modal .form-group input:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(22,206,215,0.1); }
.modal-consent { display:flex; gap:0.6rem; align-items:flex-start; margin-bottom:1.5rem; }
.modal-consent input { margin-top:3px; flex-shrink:0; accent-color:var(--teal); }
.modal-consent label { font-size:0.73rem; color:var(--text-dim); line-height:1.5; }
.modal-submit { width:100%; background:var(--teal); color:var(--deep); border:none; padding:0.85rem; border-radius:50px; font-family:'Poppins',sans-serif; font-size:0.9rem; font-weight:600; cursor:pointer; transition:background 0.2s; }
.modal-submit:hover { background:#0fb8c0; }
.modal-success { display:none; text-align:center; padding:1.5rem 0; color:var(--teal); font-weight:600; }

/* CONTACT */
.contact-section { background:#081822; padding:6rem 5%; }
.contact-inner { display:grid; grid-template-columns:1fr 1.6fr; gap:5rem; align-items:start; max-width:1100px; margin:0 auto; }
.contact-info p { color:var(--text-dim); font-size:0.9rem; line-height:1.75; margin-bottom:2rem; }
.contact-detail { display:flex; flex-direction:column; gap:1rem; }
.contact-item { display:flex; align-items:center; gap:0.75rem; color:var(--text-dim); font-size:0.85rem; text-decoration:none; transition:color 0.2s; }
.contact-item:hover { color:var(--teal); }
.contact-item-icon { width:38px; height:38px; border-radius:10px; background:rgba(22,206,215,0.08); border:1px solid rgba(22,206,215,0.15); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.contact-item-icon svg { width:16px; height:16px; }
.contact-form { background:var(--card-bg); border:1px solid rgba(22,206,215,0.15); border-radius:16px; padding:2.5rem; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.form-group { display:flex; flex-direction:column; gap:0.4rem; margin-bottom:1rem; }
.form-group label { font-size:0.72rem; font-weight:600; color:rgba(255,255,255,0.5); text-transform:uppercase; letter-spacing:0.06em; }
.form-group input,.form-group select,.form-group textarea { background:rgba(255,255,255,0.05); border:1px solid rgba(22,206,215,0.15); border-radius:8px; padding:0.75rem 1rem; font-family:'Poppins',sans-serif; font-size:0.85rem; color:var(--white); outline:none; transition:border-color 0.2s,box-shadow 0.2s; }
.form-group input::placeholder,.form-group textarea::placeholder { color:rgba(255,255,255,0.2); }
.form-group input:focus,.form-group select:focus,.form-group textarea:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(22,206,215,0.1); }
.form-group textarea { resize:vertical; min-height:110px; }
.form-group select { appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2316CED7' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 1rem center; padding-right:2.5rem; }
.form-group select option { background:#081822; color:var(--white); }
.form-consent { display:flex; gap:0.75rem; align-items:flex-start; margin-bottom:1.5rem; }
.form-consent input { margin-top:3px; flex-shrink:0; accent-color:var(--teal); }
.form-consent label { font-size:0.75rem; color:var(--text-dim); line-height:1.5; }
.form-consent a { color:var(--teal); text-decoration:none; }
.form-submit { width:100%; background:var(--teal); color:var(--deep); border:none; padding:0.9rem; border-radius:50px; font-family:'Poppins',sans-serif; font-size:0.9rem; font-weight:600; cursor:pointer; transition:background 0.2s,transform 0.15s,box-shadow 0.2s; box-shadow:0 0 20px rgba(22,206,215,0.2); }
.form-submit:hover { background:#0fb8c0; transform:translateY(-1px); }
.form-success { display:none; text-align:center; padding:2rem; color:var(--teal); font-weight:600; }

/* PAGES LÉGALES */
.legal-nav { position:fixed; top:0; left:0; right:0; z-index:200; background:rgba(5,11,16,0.92); backdrop-filter:blur(14px); border-bottom:1px solid rgba(22,206,215,0.1); padding:0 5%; height:76px; display:flex; align-items:center; justify-content:space-between; }
.legal-nav .nav-logo img { height:30px; width:auto; display:block; }
.legal-back { color:var(--text-mid); text-decoration:none; font-size:0.82rem; font-weight:500; padding:0.5rem 0.85rem; border-radius:6px; transition:color 0.2s, background 0.2s; }
.legal-back:hover { color:var(--teal); background:rgba(22,206,215,0.05); }
.legal-main { max-width:820px; margin:0 auto; padding:8rem 5% 5rem; }
.legal-main .section-eyebrow { margin-bottom:0.75rem; }
.legal-main h1 { font-size:clamp(1.8rem,3.5vw,2.6rem); font-weight:700; color:var(--white); line-height:1.2; margin-bottom:0.75rem; }
.legal-updated { font-size:0.8rem; color:var(--text-dim); margin-bottom:3rem; }
.legal-main h2 { font-size:1.15rem; font-weight:700; color:var(--teal); margin:2.5rem 0 1rem; }
.legal-main h3 { font-size:0.95rem; font-weight:600; color:var(--white); margin:1.5rem 0 0.5rem; }
.legal-main p, .legal-main li { font-size:0.9rem; color:var(--text-mid); line-height:1.8; }
.legal-main ul { margin:0.5rem 0 1rem 1.25rem; display:flex; flex-direction:column; gap:0.35rem; }
.legal-main a { color:var(--teal); text-decoration:none; }
.legal-main a:hover { text-decoration:underline; }
.legal-main strong { color:var(--white); font-weight:600; }
.legal-table { width:100%; border-collapse:collapse; margin:1rem 0 1.5rem; font-size:0.85rem; }
.legal-table th, .legal-table td { text-align:left; padding:0.7rem 0.9rem; border:1px solid rgba(22,206,215,0.14); color:var(--text-mid); vertical-align:top; }
.legal-table th { background:rgba(22,206,215,0.06); color:var(--white); font-weight:600; }
.legal-todo { background:rgba(22,206,215,0.07); border:1px dashed rgba(22,206,215,0.4); color:var(--teal); border-radius:4px; padding:0.05rem 0.4rem; font-size:0.85em; font-weight:600; }
.legal-footer { background:#030810; border-top:1px solid rgba(255,255,255,0.05); padding:1.5rem 5%; text-align:center; }
.legal-footer p, .legal-footer a { color:rgba(255,255,255,0.3); font-size:0.75rem; text-decoration:none; }
.legal-footer a:hover { color:var(--teal); }

/* FOOTER */
footer { background:#030810; border-top:1px solid rgba(22,206,215,0.1); padding:3.5rem 5%; display:grid; grid-template-columns:2fr 1fr 1fr; gap:3rem; }
.footer-brand p { color:rgba(255,255,255,0.3); font-size:0.78rem; margin-top:1rem; line-height:1.7; max-width:280px; }
.footer-col h4 { color:rgba(255,255,255,0.5); font-size:0.72rem; font-weight:600; text-transform:uppercase; letter-spacing:0.12em; margin-bottom:1.25rem; }
.footer-col ul { list-style:none; display:flex; flex-direction:column; gap:0.6rem; }
.footer-col a { color:rgba(255,255,255,0.3); font-size:0.8rem; text-decoration:none; transition:color 0.2s; }
.footer-col a:hover { color:var(--teal); }
.footer-groupe { margin-top:1.5rem; padding-top:1.5rem; border-top:1px solid rgba(22,206,215,0.1); display:flex; align-items:center; gap:0.75rem; }
.footer-groupe span { color:rgba(255,255,255,0.3); font-size:0.7rem; }
.footer-groupe-logo { height:16px; width:auto; opacity:0.45; filter:brightness(0) invert(1); transition:opacity 0.2s; }
.footer-groupe-logo:hover { opacity:0.8; }
.footer-bottom { background:#030810; border-top:1px solid rgba(255,255,255,0.05); padding:1.25rem 5%; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; }
.footer-bottom p,.footer-bottom a { color:rgba(255,255,255,0.2); font-size:0.72rem; text-decoration:none; }
.footer-bottom a:hover { color:var(--teal); }

/* RESPONSIVE */
@media (max-width:860px) { .nav-links { display:none; } .nav-toggle { display:flex; } }
@media (max-width:1200px) { .approche-grid { grid-template-columns:repeat(2,1fr); } .livres-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:1024px) { .contact-inner { grid-template-columns:1fr; gap:3rem; } }
@media (max-width:900px) {
  #cinergy-logo-bg { width:300px; height:300px; right:-10px; opacity:0.12; }
  .expertises-grid { grid-template-columns:1fr 1fr; }
  .approche-grid { grid-template-columns:1fr 1fr; }
  .approche-quote-block { grid-template-columns:1fr; }
  .approche-sig .sig-name,.approche-sig .sig-role { text-align:left; }
  .zone-chip { justify-content:flex-start; }
  .groupe-inner { grid-template-columns:1fr; gap:3rem; }
  footer { grid-template-columns:1fr; gap:2rem; }
}
@media (max-width:600px) {
  .expertises-grid,.approche-grid,.livres-grid { grid-template-columns:1fr; }
  .groupe-cards { grid-template-columns:1fr; }
  .form-row { grid-template-columns:1fr; }
  #cinergy-logo-bg { display:none; }
}
