/* EDN — Styles communs à toutes les pages — v1.2 */
:root {
  --bg: #FFFEFB;
  --ink: #0F0F0F;
  --ink-soft: #4A4A48;
  --ink-mute: #8A877F;
  --line: rgba(15, 15, 15, 0.1);
  --line-soft: rgba(15, 15, 15, 0.08);
  --dark: #0F0F0F;
  --dark-soft: #0A0A0A;
  --color-program: #FF3D2E;
  --color-founders: #FFB800;
  --color-impact: #2D4DFF;
  --color-network: #1E4D3F;
  --font-sans: 'Inter Tight', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;
  --font-serif: 'Instrument Serif', Georgia, serif;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body { background: var(--bg); color: var(--ink); font-family: var(--font-sans); font-size: 16px; line-height: 1.55; font-weight: 400; }
a { color: inherit; text-decoration: none; cursor: pointer; }
img { max-width: 100%; display: block; }
.mono { font-family: var(--font-mono); }
.serif { font-family: var(--font-serif); }

nav.top { position: sticky; top: 0; z-index: 100; background: var(--bg); border-bottom: 1px solid var(--line-soft); padding: 18px 40px; display: flex; align-items: center; justify-content: space-between; backdrop-filter: blur(8px); }
.logo-wrap { display: flex; align-items: baseline; gap: 8px; }
.logo { font-family: var(--font-sans); font-size: 22px; font-weight: 700; letter-spacing: -0.05em; color: var(--ink); }
.logo .slash { color: var(--color-founders); }
.logo-pron { font-family: var(--font-mono); font-size: 10px; color: var(--ink-mute); padding-left: 10px; border-left: 0.5px solid var(--line); }
.nav-links { display: flex; gap: 26px; align-items: center; }
.nav-links a { font-size: 13px; color: var(--ink); position: relative; padding: 4px 0; transition: opacity 0.2s; }
.nav-links a:hover { opacity: 0.7; }
.nav-links a.active { font-weight: 700; }
.nav-links a.active.c-program { color: var(--color-program); }
.nav-links a.active.c-founders { color: #B8860B; }
.nav-links a.active.c-impact { color: var(--color-impact); }
.nav-links a.active.c-network { color: var(--color-network); }
.nav-links .dot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; margin-right: 6px; vertical-align: middle; }
.lang-switch { font-family: var(--font-mono); font-size: 11px; color: var(--ink-mute); padding-left: 20px; border-left: 0.5px solid var(--line); }
.lang-switch .active { color: var(--ink); font-weight: 700; }
.btn-nav,
.nav-links a.btn-nav { background: var(--color-program); color: #FFFEFB !important; padding: 9px 18px; border-radius: 999px; font-size: 12px; font-weight: 600; transition: background 0.2s, transform 0.2s, color 0.2s; }
.btn-nav:hover,
.nav-links a.btn-nav:hover { background: var(--ink); color: #FFFEFB !important; transform: translateY(-1px); }

.tag { display: inline-block; padding: 5px 11px; font-size: 10px; letter-spacing: 0.16em; font-weight: 600; text-transform: uppercase; font-family: var(--font-mono); border-radius: 3px; }

.btn-primary { display: inline-flex; align-items: center; gap: 8px; background: var(--ink); color: var(--bg); padding: 14px 26px; border-radius: 999px; font-size: 13px; font-weight: 500; transition: all 0.2s; }
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(15,15,15,0.15); }
.btn-secondary { display: inline-block; background: transparent; color: var(--ink); padding: 13px 26px; border-radius: 999px; border: 1px solid var(--ink); font-size: 13px; font-weight: 500; transition: all 0.2s; }
.btn-secondary:hover { background: var(--ink); color: var(--bg); transform: translateY(-2px); }

section { padding: 64px 40px; }
.section-header { display: flex; gap: 10px; align-items: center; margin-bottom: 24px; flex-wrap: wrap; }

h1.hero-title { font-size: clamp(44px, 6.5vw, 72px); line-height: 0.98; letter-spacing: -0.045em; font-weight: 600; margin-bottom: 22px; max-width: 880px; }
.hero-highlight { position: relative; display: inline-block; }
.hero-highlight > span { position: relative; z-index: 2; }
.hero-highlight svg { position: absolute; left: -6px; right: -6px; bottom: -2px; width: calc(100% + 12px); height: 14px; z-index: 1; }
.hero-sub { font-size: 17px; line-height: 1.55; max-width: 540px; margin-bottom: 32px; color: var(--ink-soft); }

.stats-row { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); }
.stat-cell { padding: 32px 24px; border-right: 1px solid var(--line-soft); }
.stat-cell:last-child { border-right: 0; }
.stat-cell .num { font-size: 56px; font-weight: 600; line-height: 0.95; letter-spacing: -0.05em; }
.stat-cell .num .accent { color: var(--color-founders); }
.stat-cell .label { font-size: 11px; color: var(--ink-soft); margin-top: 10px; line-height: 1.45; }
.stat-cell .mono-label { font-family: var(--font-mono); font-size: 10px; color: var(--ink-soft); letter-spacing: 0.14em; margin-bottom: 10px; text-transform: uppercase; }

h2.section-title { font-size: clamp(32px, 4.5vw, 44px); line-height: 1; letter-spacing: -0.035em; font-weight: 600; margin-bottom: 28px; }
h2.section-title em { font-family: var(--font-serif); font-style: italic; font-weight: 400; color: var(--ink-soft); }

.founder-card { cursor: pointer; transition: transform 0.25s; }
.founder-card:hover { transform: translateY(-3px); }
.founder-card .img-wrap { position: relative; overflow: hidden; border-radius: 6px; margin-bottom: 14px; background: #1A1A1A; }
.founder-card .img-wrap img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; transition: transform 0.5s; }
.founder-card:hover .img-wrap img { transform: scale(1.04); }
.founder-card .badge { position: absolute; top: 14px; left: 14px; }

.initiative-card { border: 1px solid var(--line); border-radius: 8px; overflow: hidden; transition: transform 0.25s, box-shadow 0.25s; background: var(--bg); display: flex; flex-direction: column; }
.initiative-card:hover { transform: translateY(-3px); box-shadow: 0 10px 30px rgba(15,15,15,0.06); }
.initiative-card .img-wrap { aspect-ratio: 16/10; overflow: hidden; background: #1A1A1A; }
.initiative-card .img-wrap img { width: 100%; height: 100%; object-fit: cover; display: block; }
.initiative-card .body { padding: 20px 22px 22px; flex: 1; display: flex; flex-direction: column; }
.initiative-card .hashtag { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.06em; font-weight: 600; margin-bottom: 6px; }
.initiative-card h3 { font-size: 22px; font-weight: 600; letter-spacing: -0.025em; margin-bottom: 8px; }
.initiative-card p { font-size: 13px; line-height: 1.55; color: var(--ink-soft); margin-bottom: 14px; flex: 1; }
.initiative-card .meta { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.initiative-card .meta span { font-size: 11px; padding: 4px 10px; background: rgba(15,15,15,0.04); border-radius: 4px; }
.initiative-card .link { font-size: 12px; font-weight: 500; border-bottom: 1px solid currentColor; padding-bottom: 2px; display: inline-block; }

footer { background: var(--ink); color: rgba(255, 254, 251, 0.7); padding: 56px 40px 28px; }
.footer-top { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 36px; padding-bottom: 32px; border-bottom: 1px solid rgba(255, 254, 251, 0.12); }
.footer-brand .logo { color: var(--bg); font-size: 32px; margin-bottom: 14px; }
.footer-brand p { font-size: 12px; line-height: 1.55; max-width: 300px; color: rgba(255, 254, 251, 0.6); }
.footer-col-title { color: var(--bg); font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.15em; margin-bottom: 14px; text-transform: uppercase; }
.footer-col ul { list-style: none; }
.footer-col li { font-size: 12px; line-height: 2; color: rgba(255, 254, 251, 0.85); transition: color 0.2s; cursor: pointer; }
.footer-col li:hover { color: var(--bg); }
.footer-col li a { color: inherit; display: block; }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; padding-top: 22px; font-size: 10px; font-family: var(--font-mono); color: rgba(255, 254, 251, 0.4); letter-spacing: 0.05em; gap: 16px; flex-wrap: wrap; }
.footer-bottom a { color: rgba(255, 254, 251, 0.55); transition: color 0.2s; }
.footer-bottom a:hover { color: #FFB800; }
.footer-bottom .sep { color: rgba(255, 254, 251, 0.25); margin: 0 6px; }

.signature-curve { opacity: 0.5; }

.chip { display: inline-flex; align-items: center; padding: 7px 14px; border: 1px solid rgba(15,15,15,0.15); border-radius: 999px; font-size: 12px; cursor: pointer; transition: all 0.2s; }
.chip:hover { background: rgba(255,184,0,0.08); border-color: #FFB800; }
.chip.active { background: #FFB800; border-color: #FFB800; color: #0F0F0F; font-weight: 600; }

/* MENU MOBILE SANDWICH */
.nav-toggle {
  display: none;
  background: transparent;
  border: 1.5px solid var(--line);
  border-radius: 8px;
  cursor: pointer;
  padding: 11px 10px;
  width: 48px;
  height: 44px;
  z-index: 200;
  position: relative;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
}
.nav-toggle span {
  display: block;
  width: 24px;
  height: 2.5px;
  background: var(--ink);
  border-radius: 2px;
  transition: transform 0.25s, opacity 0.25s;
}
.nav-toggle.open {
  border-color: var(--ink);
}
.nav-toggle.open span:nth-child(1) {
  transform: translateY(7.5px) rotate(45deg);
}
.nav-toggle.open span:nth-child(2) {
  opacity: 0;
}
.nav-toggle.open span:nth-child(3) {
  transform: translateY(-7.5px) rotate(-45deg);
}

.mobile-menu {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--bg);
  z-index: 150;
  padding: 80px 30px 40px;
  overflow-y: auto;
}
.mobile-menu.open {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.mobile-menu a {
  font-size: 22px;
  font-weight: 600;
  letter-spacing: -0.02em;
  padding: 14px 0;
  border-bottom: 1px solid var(--line-soft);
  display: flex;
  align-items: center;
  gap: 12px;
}
.mobile-menu a:last-of-type {
  border-bottom: 0;
}
.mobile-menu .dot {
  width: 9px; height: 9px; border-radius: 50%; display: inline-block;
}
.mobile-menu .mobile-cta {
  margin-top: 30px;
  background: var(--ink);
  color: var(--bg);
  text-align: center;
  padding: 16px 24px;
  border-radius: 999px;
  font-size: 15px;
  border-bottom: 0;
  justify-content: center;
}
.mobile-menu .mobile-lang {
  margin-top: 20px;
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--ink-mute);
  border-bottom: 0;
}

/* Le scroll lock sur le body quand menu ouvert */
body.menu-open { overflow: hidden; }

@media (max-width: 920px) {
  .nav-toggle { display: flex; }
  .nav-links { display: none !important; }
}

/* Bandeau actu en haut de page — défilant, alterne plusieurs messages */
.news-banner {
  position: relative;
  z-index: 99;
  background: #0F0F0F;
  color: #FFFEFB;
  border-bottom: 1px solid rgba(255, 184, 0, 0.3);
  overflow: hidden;
}
.news-banner-stage {
  position: relative;
  min-height: 44px;
}
.news-slide {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 12px 40px;
  width: 100%;
  box-sizing: border-box;
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none;
  transition: opacity 0.5s ease-in-out;
  min-height: 44px;
  font-size: 13px;
}
.news-slide.active {
  opacity: 1;
  pointer-events: auto;
  position: relative;
}
.news-banner .left {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: 1;
  min-width: 0;
}
.news-banner .news-tag {
  background: #FFB800;
  color: #0F0F0F;
  padding: 3px 10px;
  border-radius: 3px;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  font-weight: 700;
  flex-shrink: 0;
  display: inline-block;
}
.news-banner .text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.news-banner .cta {
  color: #FFB800;
  border-bottom: 1px solid #FFB800;
  padding-bottom: 1px;
  font-weight: 500;
  flex-shrink: 0;
  font-size: 12px;
  text-decoration: none;
}
.news-banner .close,
.news-banner button.close {
  color: rgba(255, 254, 251, 0.5);
  margin-left: 8px;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  background: transparent;
  border: 0;
  padding: 4px 8px;
  font-family: inherit;
  flex-shrink: 0;
}
.news-banner .close:hover,
.news-banner button.close:hover {
  color: #FFFEFB;
}
.news-banner.closed { display: none; }

/* Carte écosystème (sur la page Impact) */
.ecosystem-diagram {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 32px 36px;
  background: linear-gradient(180deg, rgba(255, 184, 0, 0.03) 0%, transparent 100%);
  margin-bottom: 48px;
}
.ecosystem-diagram h3 {
  font-family: var(--font-serif);
  font-size: 28px;
  font-weight: 400;
  letter-spacing: -0.025em;
  margin-bottom: 8px;
}
.ecosystem-diagram .subtitle {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-mute);
  margin-bottom: 24px;
}
.ecosystem-entity {
  display: flex;
  gap: 18px;
  padding: 18px 0;
  border-top: 1px solid var(--line);
  align-items: flex-start;
}
.ecosystem-entity .entity-label {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 700;
  width: 130px;
  flex-shrink: 0;
  padding-top: 4px;
}
.ecosystem-entity h4 { font-size: 18px; font-weight: 600; margin-bottom: 4px; letter-spacing: -0.02em; }
.ecosystem-entity p { font-size: 14px; line-height: 1.55; color: var(--ink-soft); }

/* Citations éditoriales */
.quote-block { padding: 32px 36px; border-left: 3px solid var(--color-founders); background: rgba(255, 184, 0, 0.04); border-radius: 0 8px 8px 0; margin: 24px 0; }
.quote-block .quote-text { font-family: var(--font-serif); font-size: 22px; line-height: 1.35; font-style: italic; font-weight: 400; color: var(--ink); margin-bottom: 16px; }
.quote-block .quote-author { display: flex; align-items: center; gap: 14px; }
.quote-block .quote-author-name { font-size: 14px; font-weight: 600; }
.quote-block .quote-author-meta { font-family: var(--font-mono); font-size: 10px; color: var(--ink-mute); letter-spacing: 0.08em; text-transform: uppercase; margin-top: 2px; }

.quote-block.on-dark { background: rgba(255, 254, 251, 0.04); border-left-color: var(--color-founders); }
.quote-block.on-dark .quote-text { color: #FFFEFB; }
.quote-block.on-dark .quote-author-name { color: #FFFEFB; }
.quote-block.on-dark .quote-author-meta { color: rgba(255, 254, 251, 0.55); }

/* Badge partenaire */
.partner-badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; background: rgba(15,15,15,0.06); border: 1px solid var(--line); border-radius: 4px; font-family: var(--font-mono); font-size: 10px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-soft); }
.partner-badge::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--ink-mute); }

/* Info note */
.info-note { padding: 14px 18px; background: rgba(45, 77, 255, 0.06); border-left: 2px solid var(--color-impact); border-radius: 0 6px 6px 0; font-size: 13px; line-height: 1.5; color: var(--ink-soft); }
.info-note strong { color: var(--ink); }

@media (max-width: 920px) {
  .news-banner-inner, .news-slide { padding: 10px 20px; font-size: 12px; flex-wrap: wrap; }
  .news-banner .text { white-space: normal; }
  .ecosystem-entity { flex-direction: column; gap: 8px; }
  .ecosystem-entity .entity-label { width: auto; }
}

@media (max-width: 920px) {
  nav.top { padding: 14px 20px; flex-wrap: wrap; gap: 12px; }
  .nav-links { display: none; }
  section { padding: 40px 20px; }
  .stats-row { grid-template-columns: repeat(2, 1fr); }
  .stat-cell { border-right: 0; border-bottom: 1px solid var(--line-soft); }
  .stat-cell:nth-child(odd) { border-right: 1px solid var(--line-soft); }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 28px; }
  h1.hero-title { font-size: 38px; }
}
