/*
 * Exergon : complements WordPress a main.css (copie des styles de la maquette).
 * Garder main.css identique a la maquette facilite la reprise de la V2.
 */

/* Accessibilite ---------------------------------------------------------- */
.screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  white-space: nowrap;
}
[hidden] { display: none !important; }

/* Navigation ------------------------------------------------------------- */
.nav { transition: box-shadow .2s ease; }
.nav.scrolled { box-shadow: 0 6px 24px rgba(0, 0, 0, .06); }
.burger .burger-close,
.nav.open .burger .burger-open { display: none; }
.nav.open .burger .burger-close { display: block; }
.lang-switch {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  margin-left: 12px;
  font-size: 12px;
  letter-spacing: .1em;
}
.lang-switch .lang-switch-item { padding: 6px 6px; color: var(--muted); }
.lang-switch .lang-switch-item.is-active { color: var(--ink); font-weight: 600; }
.nav-links .lang-switch a { padding: 6px; font-size: 12px; }
@media (max-width: 980px) {
  .nav.open .lang-switch { margin: 20px 0 0; justify-content: center; }
  .nav.open .nav-links .lang-switch a { width: auto; border: 0; padding: 6px 10px; }
}

/* Hero video ------------------------------------------------------------- */
.hero-video-btn .icon-play,
.hero-video-btn.is-paused .icon-pause { display: none; }
.hero-video-btn.is-paused .icon-play { display: block; }
.film-frame iframe { width: 100%; height: 100%; border: 0; display: block; }

/* Cartes startups (bouton) ------------------------------------------------ */
button.port-card {
  width: 100%;
  font: inherit;
  text-align: center;
  cursor: pointer;
}
.port-card:focus-visible { outline-offset: -4px; }
.port-grid[data-port-grid] .port-card:last-child:nth-child(odd):not(.is-wide) { grid-column: auto; min-height: 420px; }
.port-grid[data-port-grid] .port-card.is-wide { grid-column: 1 / -1; min-height: 340px; }
.port-grid-home .port-card:last-child:nth-child(odd) { grid-column: 1 / -1; min-height: 260px; }
.port-card-name {
  font-family: var(--font-serif);
  font-size: 34px;
  font-weight: 600;
  color: #fff;
}
.port-card-more {
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #fff;
  border-bottom: 1px solid rgba(255, 255, 255, .6);
  padding-bottom: 2px;
  opacity: .85;
  transition: opacity .2s ease;
}
.port-card:hover .port-card-more { opacity: 1; }
@media (max-width: 980px) {
  .port-grid[data-port-grid] .port-card.is-wide,
  .port-grid[data-port-grid] .port-card:last-child:nth-child(odd) { grid-column: auto; min-height: 240px; }
}

/* Fiche startup (modale) ------------------------------------------------- */
body.dialog-open { overflow: hidden; }
.startup-dialog {
  width: min(1100px, calc(100% - 32px));
  max-width: none;
  max-height: calc(100dvh - 48px);
  margin: auto;
  padding: 0;
  border: 0;
  background: #fff;
  color: var(--ink);
  overflow: auto;
  overscroll-behavior: contain;
}
.startup-dialog::backdrop { background: rgba(10, 12, 16, .72); backdrop-filter: blur(4px); }
.startup-dialog[open] { animation: exergon-dialog-in .25s ease; }
@keyframes exergon-dialog-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.startup-dialog-inner { position: relative; }
.startup-dialog-close {
  position: sticky;
  top: 16px;
  float: right;
  margin: 16px 16px -58px 0;
  z-index: 5;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(0, 0, 0, .45);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, .6);
  backdrop-filter: blur(6px);
}
.startup-dialog-close:hover { background: #000; }
.startup-dialog .company-scene { min-height: 420px; }
.startup-dialog .company-scene-copy { padding: 40px 40px 44px; }
.startup-dialog-body { padding: 8px 40px 40px; display: grid; gap: 16px; }
.startup-dialog-body .meta-list { margin-top: 16px; }
.startup-dialog-body .panel p + p { margin-top: 10px; }
.startup-dialog-photo { aspect-ratio: auto; max-height: 420px; margin-bottom: 8px; }
/* Photo des fondateurs : vignette en haut a droite du bloc Founders. La photo remplit tout le cadre
   (3:2, recadree au centre, visages en haut) : plus de bandes noires sur les cotes. */
.founders-thumb {
  float: right;
  width: min(44%, 240px);
  margin: 0 0 12px 20px;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  background: var(--night);
  border: 1px solid var(--night-line);
}
.founders-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.startup-dialog-body > .founders-thumb { float: none; margin: 0; }
@media (max-width: 600px) {
  .founders-thumb { float: none; width: 100%; max-width: 260px; margin: 0 0 14px; }
}
.startup-dialog-body .tech-list { margin-top: 0; }
@media (max-width: 980px) {
  .startup-dialog { width: 100%; max-height: 100dvh; height: 100dvh; }
  .startup-dialog .company-scene { min-height: 56svh; }
  .startup-dialog .company-scene-copy { padding: 24px 16px 32px; }
  .startup-dialog-body { padding: 8px 16px 32px; }
}

/* Pages ------------------------------------------------------------------ */
.panel-text p + p { margin-top: 14px; }
.thesis-body { margin-top: 14px; }
.person-copy .text-link,
.partner-card .text-link { margin-top: 14px; }
.footer-socials { margin-top: 12px; display: flex; gap: 14px; flex-wrap: wrap; }
.page-hero .kicker a:hover { color: var(--ink); }

/* Formulaire de contact -------------------------------------------------- */
.consent {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: start;
  font-size: 13px;
  color: var(--muted);
}
.consent input { margin-top: 3px; accent-color: var(--green); width: 16px; height: 16px; }
.consent a { color: var(--green-dark); text-decoration: underline; }
.consent .field-error { grid-column: 2; }
.hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.field-error { color: #b42318; font-size: 13px; }
.field [aria-invalid="true"] { border-color: #b42318; }
.form-error {
  padding: 14px 16px;
  border: 1px solid #f2b8b5;
  background: #fef3f2;
  color: #b42318;
  font-size: 14px;
}
.form button[disabled] { opacity: .6; cursor: progress; }
.success:focus { outline: none; }

/* Articles --------------------------------------------------------------- */
.article-head { max-width: 900px; margin-left: auto; margin-right: auto; }
.article-meta { display: block; margin-top: 20px !important; }
.article-cover { overflow: hidden; }
.article-cover img { width: 100%; max-height: 620px; object-fit: cover; }
.article-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 56px; align-items: start; }
.article-layout:not(:has(.article-aside)) { grid-template-columns: minmax(0, 760px); justify-content: center; }
.article-aside { position: sticky; top: calc(var(--nav-h) + 24px); }
.article-aside .port-card { min-height: 320px; }
@media (max-width: 980px) {
  .article-layout { grid-template-columns: 1fr; gap: 32px; }
  .article-aside { position: static; }
}

/* Contenu editorial (articles, pages simples) ---------------------------- */
.entry-content { max-width: 72ch; font-size: 17px; line-height: 1.7; }
.entry-content > * + * { margin-top: 1.1em; }
.entry-content p,
.entry-content li { color: #333; }
.entry-content h2,
.entry-content h3,
.entry-content h4 {
  font-family: var(--font-serif);
  font-weight: 600;
  letter-spacing: -.01em;
  line-height: 1.2;
  margin-top: 1.8em;
}
.entry-content h2 { font-size: clamp(26px, 3vw, 34px); }
.entry-content h3 { font-size: 22px; }
.entry-content h4 { font-size: 18px; }
.entry-content a { color: var(--green-dark); text-decoration: underline; text-underline-offset: 3px; }
.entry-content ul,
.entry-content ol { padding-left: 1.3em; }
.entry-content li + li { margin-top: .4em; }
.entry-content blockquote {
  border-left: 2px solid var(--green);
  padding: 4px 0 4px 22px;
  font-family: var(--font-serif);
  font-size: 22px;
  line-height: 1.4;
}
.entry-content img { height: auto; }
.entry-content figure { margin: 2em 0; }
.entry-content figcaption { font-size: 13px; color: var(--muted); margin-top: 8px; }
.entry-content .alignwide { margin-left: -8%; margin-right: -8%; }
.entry-content .alignfull { width: 100vw; margin-left: calc(50% - 50vw); }
.entry-content .wp-block-button__link { background: var(--green); color: #fff; border-radius: 999px; text-decoration: none; }
.entry-content table { width: 100%; border-collapse: collapse; font-size: 15px; }
.entry-content th,
.entry-content td { border-bottom: 1px solid var(--line); padding: 10px 8px; text-align: left; }

/* Pagination ------------------------------------------------------------- */
.pagination { margin-top: 40px; }
.pagination .nav-links {
  /* .nav-links est aussi la classe du menu principal dans main.css : on neutralise. */
  display: flex !important;
  flex-direction: row !important;
  position: static !important;
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  flex-wrap: wrap;
  gap: 6px;
}
.pagination .nav-links a { padding: 0 12px; text-transform: none; letter-spacing: 0; border-bottom: 1px solid var(--line); width: auto; }
.pagination .page-numbers {
  display: inline-grid;
  place-items: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 13px;
}
.pagination .page-numbers.current,
.pagination a.page-numbers:hover { background: var(--night-ink); color: #000; border-color: var(--night-ink); }

/* La maquette applique le style "grand texte" au premier <p> du manifeste, surtitre compris. */
.manifesto > p.kicker:first-of-type {
  font-family: var(--font-mono);
  font-size: 11px;
  line-height: 1.55;
  margin-bottom: 12px;
}

/* Formulaire : les champs restent alignes quand un message d'erreur apparait. */
.row-2 { align-items: start; }
.field { align-content: start; }

/* Lien d'evitement totalement masque hors focus. */
.skip { top: 0; transform: translateY(-120%); }
.skip:focus { transform: none; top: 12px; }

/* ==========================================================================
 * Refonte sombre (octobre 2026) : en-tete et pied de page sur tout le site,
 * accueil complet. Inspiration : fond noir, sections plein cadre, titres en
 * capitales D-DIN ; vert Exergon reserve aux appels a l'action principaux.
 * Tant que la propriete de main.css n'est pas tranchee, tout passe ici.
 * ======================================================================== */

/* Polices et jetons ------------------------------------------------------ */
@font-face {
  font-family: "D-DIN";
  src: url("../fonts/D-DIN.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "D-DIN";
  src: url("../fonts/D-DIN-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
:root {
  --font-display: "D-DIN", "Avenir Next", "Helvetica Neue", Arial, sans-serif;
  --night: #000;
  --night-soft: #0b0b0d;
  --night-ink: #f0f0fb;
  --night-muted: #a6a6b4;
  --night-line: rgba(240, 240, 251, .14);
  --green-bright: #7acb82;
}

/* Boutons sur fond sombre (accueil, en-tete, pied de page, fenetre newsletter) */
body .btn,
.nav .btn,
.footer .btn,
.newsletter-popup .btn {
  border-radius: 0;
  border: 2px solid transparent;
  padding: 14px 30px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: .16em;
}
body .btn-solid,
.nav .btn-solid,
.footer .btn-solid,
.newsletter-popup .btn-solid { background: var(--green); border-color: var(--green); color: #000; }
body .btn-solid:hover,
.nav .btn-solid:hover,
.footer .btn-solid:hover,
.newsletter-popup .btn-solid:hover { background: var(--green-bright); border-color: var(--green-bright); }
body .btn-on-dark,
body .btn-ghost {
  background: transparent;
  border-color: rgba(240, 240, 251, .9);
  color: var(--night-ink);
}
body .btn-on-dark:hover,
body .btn-ghost:hover { background: var(--night-ink); border-color: var(--night-ink); color: #000; }

/* En-tete (toutes les pages) ---------------------------------------------- */
.nav {
  background: var(--night);
  border-bottom-color: var(--night-line);
  color: var(--night-ink);
}
.nav.scrolled { box-shadow: none; }
.nav-links a {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: .16em;
  color: rgba(240, 240, 251, .72);
  transition: color .2s ease;
}
.nav-links a:hover,
.nav-links a.active { color: var(--night-ink); }
.nav .nav-cta { padding: 8px 16px; margin-left: 14px; font-size: 11px; color: #000; }
.nav .lang-switch .lang-switch-item { color: rgba(240, 240, 251, .55); }
.nav .lang-switch .lang-switch-item.is-active { color: var(--night-ink); }
.burger {
  background: transparent;
  border: 1px solid rgba(240, 240, 251, .35);
  color: var(--night-ink);
}

/* Masquee en descendant, de retour en remontant (main.js : .is-hidden) */
.nav { transition: transform .35s ease, background .3s ease; }
.nav.is-hidden { transform: translateY(-100%); }
@media (prefers-reduced-motion: reduce) { .nav { transition: none; } }

/* Accueil et Thesis (.has-hero-overlay) : logo et onglets flottent au-dessus de l'en-tete video */
body.has-hero-overlay .nav {
  position: fixed;
  left: 0;
  right: 0;
  background: transparent;
  border-bottom-color: transparent;
}
body.has-hero-overlay .nav-links a:not(.btn),
body.has-hero-overlay .nav .lang-switch-item { text-shadow: 0 1px 14px rgba(0, 0, 0, .7); }
body.has-hero-overlay .nav .logo img { filter: drop-shadow(0 2px 14px rgba(0, 0, 0, .6)); }
body.has-hero-overlay .nav.open { background: rgba(0, 0, 0, .96); border-bottom-color: var(--night-line); }
body.has-hero-overlay.admin-bar .nav { top: 32px; }
@media (max-width: 782px) { body.has-hero-overlay.admin-bar .nav { top: 46px; } }
@media (max-width: 600px) { body.has-hero-overlay.admin-bar .nav.scrolled { top: 0; } } /* barre d'admin non fixe */

@media (max-width: 980px) {
  .nav.open .nav-links { background: var(--night); border-bottom-color: var(--night-line); }
  .nav.open .nav-links a:not(.btn) { border-bottom-color: var(--night-line); color: var(--night-ink); }
  .nav .nav-cta { margin: 24px 0 0; padding: 16px 20px; }
}

/* Pied de page (toutes les pages) ----------------------------------------- */
.footer {
  background: var(--night);
  color: var(--night-ink);
  border-top: 1px solid var(--night-line);
  padding-top: 72px;
}
.footer a { color: var(--night-ink); }
.footer .lede, .footer p, .footer span, .footer-grid a { color: var(--night-muted); }
.footer-grid a:hover { color: var(--night-ink); }
.footer .kicker {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: .22em;
  color: rgba(240, 240, 251, .55);
}
.footer-newsletter {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 32px 64px;
  align-items: end;
  padding-bottom: 56px;
  margin-bottom: 56px;
  border-bottom: 1px solid var(--night-line);
}
.footer-newsletter h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(26px, 2.8vw, 38px);
  line-height: 1.04;
  text-transform: uppercase;
  color: var(--night-ink);
  margin-top: 12px;
  max-width: 18ch;
}
.footer-newsletter .lede { margin-top: 12px; }
@media (max-width: 980px) {
  .footer { padding-top: 48px; }
  .footer-newsletter { grid-template-columns: 1fr; padding-bottom: 40px; margin-bottom: 40px; }
}

/* Newsletter : formulaire et fenetre d'invitation ------------------------- */
.newsletter-row { display: flex; }
.newsletter-row input {
  flex: 1;
  min-width: 0;
  height: 54px;
  padding: 0 18px;
  background: transparent;
  border: 1px solid rgba(240, 240, 251, .32);
  border-right: 0;
  border-radius: 0;
  color: var(--night-ink);
  font-size: 16px;
  outline: none;
}
.newsletter-row input::placeholder { color: rgba(240, 240, 251, .45); }
.newsletter-row input:focus { border-color: var(--night-ink); }
.newsletter-row input[aria-invalid="true"] { border-color: #ff8a80; }
.newsletter-row .btn { height: 54px; flex-shrink: 0; }
.newsletter-row .btn[disabled] { opacity: .6; cursor: progress; }
.footer .newsletter-note,
.newsletter-note { margin-top: 12px; font-size: 12px; color: var(--night-muted); }
.newsletter-note a { color: var(--night-ink); text-decoration: none; }
.newsletter-note a:hover { color: var(--green); }
.footer .newsletter-error,
.newsletter-error { margin-top: 10px; font-size: 13px; color: #ff8a80; }
.footer .newsletter-success,
.newsletter-success {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--night-ink);
}
.newsletter-success::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--green);
  flex-shrink: 0;
}
.newsletter-form.is-done .newsletter-row,
.newsletter-form.is-done .newsletter-note { display: none; }

.newsletter-popup {
  width: min(520px, calc(100% - 32px));
  max-width: none;
  margin: auto;
  padding: 0;
  border: 1px solid rgba(240, 240, 251, .16);
  background: var(--night-soft);
  color: var(--night-ink);
}
.newsletter-popup::backdrop { background: rgba(0, 0, 0, .6); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.newsletter-popup[open] { animation: exergon-dialog-in .35s ease; }
.newsletter-popup-inner { position: relative; padding: 48px 40px 28px; }
.newsletter-popup .kicker {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: .22em;
  color: var(--night-muted);
}
.newsletter-popup h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(26px, 6vw, 34px);
  line-height: 1.02;
  text-transform: uppercase;
  margin: 12px 0 14px;
  max-width: 16ch;
}
.newsletter-popup-text { color: var(--night-muted); margin-bottom: 24px; }
.newsletter-popup-close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid rgba(240, 240, 251, .24);
  color: var(--night-ink);
}
.newsletter-popup-close:hover { border-color: var(--night-ink); }
@media (max-width: 600px) {
  .newsletter-popup { width: 100%; margin: auto 0 0; border-width: 1px 0 0; }
  .newsletter-popup-inner { padding: 44px 16px max(24px, env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
  .newsletter-popup[open] { animation: none; }
}

/* Site sombre (toutes les pages ; regles propres a l'accueil : body.home) ---- */
body {
  --bg: var(--night);
  --bg-soft: var(--night-soft);
  --ink: var(--night-ink);
  --muted: var(--night-muted);
  --line: var(--night-line);
  --black: var(--night);
  background: var(--night);
  color: var(--night-ink);
}
body ::selection { background: var(--green); color: #000; }

/* Typographie : capitales D-DIN pour les titres, Avenir pour la lecture */
body .kicker {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: .24em;
  color: var(--night-muted);
}
body .kicker-on-dark { color: rgba(240, 240, 251, .82); }
body h1,
body .hero-photo h1,
body .section h2,
body .verticals-intro h2,
body .dual-cta h2,
body .film h2 {
  font-family: var(--font-display);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .005em;
  line-height: 1.02;
}
body .section h2,
body .verticals-intro h2,
body .film h2 { font-size: clamp(30px, 3.8vw, 52px); max-width: 30ch; }
body .text-link {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: .16em;
  color: var(--night-ink);
  border-color: var(--night-ink);
}
body .text-link:hover { color: var(--green); border-color: var(--green); }
body .section { padding: 128px 0; }
body .section-tight { padding-top: 0; }
body .section-head { margin-bottom: 48px; }
body .section-head > .text-link { margin-top: 0; }
body .section-after { margin-top: 56px; }

/* Pages interieures : composants de la maquette (fonds blancs codes en dur) passes au sombre */
.pillar,
.insight-card,
.panel,
.founder-card,
.person,
.process-card,
.board-item { background: var(--night-soft); border-color: var(--night-line); }
.partner { background: transparent; border-color: var(--night-line); }
/* Logos partenaires en couleur : tous ramenes au meme blanc. Niveaux de gris inverses puis seuil
   (brightness + contrast) : parties sombres ou colorees en blanc, parties claires en noir, fusion "screen". */
.partner img { filter: grayscale(1) invert(1) brightness(2) contrast(8); mix-blend-mode: screen; }
.partner img[style] { max-height: calc(42px * var(--logo-scale)); max-width: calc(80% * var(--logo-scale)); }
.filter.active,
.filter:hover { color: #000; background: var(--night-ink); border-color: var(--night-ink); }
.field input,
.field textarea,
.field select { background: var(--night-soft); color: var(--night-ink); border-color: var(--night-line); }
.field input:focus,
.field textarea:focus,
.field select:focus { border-color: var(--night-ink); }
.skip { color: #000; }
.startup-dialog { background: var(--night); color: var(--night-ink); border: 1px solid var(--night-line); }
.entry-content .wp-block-button__link { color: #000; }
.consent a { color: var(--night-ink); text-decoration: none; }
.consent a:hover { color: var(--green); }
.form-error { background: rgba(180, 35, 24, .14); border-color: rgba(242, 184, 181, .4); color: #ffb4ab; }
.field-error { color: #ff8a80; }

/* Titres : capitales D-DIN partout hors texte courant des articles */
body main h2:not(.entry-content h2),
.page-hero h1,
.company-scene h1 {
  font-family: var(--font-display);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .005em;
  line-height: 1.02;
}
.panel h3,
.pillar h3,
.person h3,
.founder-card h3 {
  font-family: var(--font-display);
  font-weight: 700;
  text-transform: uppercase;
  font-size: 20px;
  letter-spacing: .02em;
  line-height: 1.15;
}
/* Bandeau d'appel a l'action : dans la grille, encadre comme le double CTA de l'accueil */
.cta-band {
  width: min(1200px, calc(100% - 48px));
  margin: 0 auto 128px;
  padding: 64px;
  background: transparent;
  border: 1px solid var(--night-line);
}
.cta-band h2 { max-width: 22ch; }
@media (max-width: 980px) {
  .cta-band { margin-bottom: 72px; padding: 40px 24px; }
}

/* Team : les photos de l'equipe d'investissement (grille 2 colonnes) ne depassent pas la largeur
   de celles des associes (colonne photo de .person-block : 42 % de la grille, moins la gouttiere). */
@media (min-width: 981px) {
  .partner-grid-2 .partner-shot { width: calc((min(1200px, 100vw - 48px) - 32px) * .42); max-width: 100%; }
}

/* Team : citations en Avenir leger comme la citation de l'accueil, ecole en surtitre D-DIN */
.person-copy blockquote {
  font-weight: 300;
  font-size: clamp(20px, 1.8vw, 26px);
  line-height: 1.35;
  letter-spacing: -.01em;
}
.person-copy .school {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--night-muted);
}

/* Contenu editorial (articles, pages simples) sur fond sombre */
.entry-content p,
.entry-content li { color: rgba(240, 240, 251, .86); }
.entry-content a { color: var(--night-ink); }
.entry-content a:hover { color: var(--green); }
body .entry-content h2,
.entry-content h3,
.entry-content h4 {
  font-family: var(--font-display);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .02em;
  line-height: 1.1;
  max-width: none;
}
body .entry-content h2 { font-size: clamp(24px, 2.4vw, 30px); }
.entry-content h3 { font-size: 20px; }
.entry-content h4 { font-size: 16px; }
.entry-content blockquote { font-family: var(--font-sans); font-weight: 300; border-left-color: var(--night-ink); }
.entry-content .wp-block-button__link { border-radius: 0; font-family: var(--font-display); font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }

/* Vert reserve aux appels a l'action : textes herites de la maquette en gris/blanc */
.role {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: .16em;
  color: var(--night-muted);
}
.contact-card a { color: var(--night-ink); }
.contact-card a:hover { color: var(--green); }
.mono,
.partner-ph { color: var(--night-muted); background: var(--night-soft); }
.success { background: var(--night-soft); border-color: var(--night-line); color: var(--night-ink); }
.field input:focus,
.field textarea:focus { border-color: var(--night-ink); }

/* Thesis : video des verticales a la place de la photo, meme traitement que les panneaux de l'accueil */
.pillar-media video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.8) contrast(1.06) brightness(.86);
}
/* Fondu noir des videos de piliers (About), comme les panneaux de l'accueil :
   noir plein en haut et en bas, bords fondus vers le fond de page. */
.thesis-block .pillar-media { position: relative; }
.thesis-block .pillar-media::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(180deg, #000 0%, rgba(0, 0, 0, .7) 8%, rgba(0, 0, 0, .25) 18%, rgba(0, 0, 0, 0) 30%),
    linear-gradient(0deg, #000 0%, rgba(0, 0, 0, .8) 12%, rgba(0, 0, 0, .35) 30%, rgba(0, 0, 0, 0) 52%),
    linear-gradient(90deg, rgba(0, 0, 0, .6) 0%, rgba(0, 0, 0, 0) 14%, rgba(0, 0, 0, 0) 86%, rgba(0, 0, 0, .6) 100%);
}

/* En-tete video */
body.has-hero-overlay .hero-photo { min-height: 100vh; min-height: 100svh; }
body.has-hero-overlay .hero-photo-shade {
  background:
    linear-gradient(180deg, rgba(0, 0, 0, .7) 0%, rgba(0, 0, 0, .25) 16%, rgba(0, 0, 0, 0) 30%),
    linear-gradient(0deg, rgba(0, 0, 0, .9) 0%, rgba(0, 0, 0, .35) 45%, rgba(0, 0, 0, 0) 75%);
}
body.has-hero-overlay .hero-photo-copy { padding: 0 0 clamp(96px, 18vh, 200px); }
body.has-hero-overlay .hero-photo h1 {
  font-size: clamp(42px, 6.2vw, 88px);
  max-width: none;
  margin: 16px 0 20px;
  text-shadow: none;
}
body.has-hero-overlay .hero-lead {
  max-width: 52ch;
  font-size: 18px;
  color: rgba(240, 240, 251, .86);
  text-shadow: none;
}
body.has-hero-overlay .hero-actions { gap: 12px; margin-top: 32px; }
body.has-hero-overlay .hero-video-btn { border-color: rgba(240, 240, 251, .45); background: rgba(0, 0, 0, .35); }
/* Backed by : simple mention (libelle gris, logo blanc), sans cadre ni fond */
.backed-badge {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: 44px;
  font-family: var(--font-sans);
  font-size: 15px;
  letter-spacing: 0;
  color: rgba(240, 240, 251, .6);
  transition: opacity .2s ease;
}
.backed-badge:hover { opacity: .8; }
.hero-photo-copy .backed-badge span { color: inherit; text-shadow: none; }
.backed-badge-logo { height: 24px; width: auto; }
/* Logos Exergon et Audacia : meme blanc partout sur l'accueil */
body .logo img,
body.home .backed-badge-logo,
body .quote-logo-audacia { filter: brightness(0) invert(1); opacity: 1; }

/* Chiffres cles */
body .proof { background: var(--night); border-top: 1px solid var(--night-line); border-bottom-color: var(--night-line); }
body .proof-item { padding: 44px 28px 40px; }
body .proof-item:first-child { padding-left: 0; }
body .proof-item strong {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(36px, 4vw, 58px);
  letter-spacing: 0;
  line-height: 1;
  margin-bottom: 14px;
}
body .proof-item span { font-size: 18px; line-height: 1.4; }

/* Mission : grand texte en Avenir leger */
body .manifesto { max-width: none; }
body .manifesto > * { max-width: 56rem; }
body .manifesto h2 {
  font-family: var(--font-sans);
  font-weight: 300;
  text-transform: none;
  letter-spacing: -.01em;
  font-size: clamp(28px, 3.4vw, 46px);
  line-height: 1.2;
  max-width: none;
  margin-top: 4px;
}
body .manifesto .lede { margin-top: 28px; font-size: 18px; max-width: 60ch; }
/* Thesis : manifeste et texte secondaire sur toute la largeur de la grille */
.page-template-thesis .manifesto > *,
.page-template-thesis .manifesto .lede,
.page-template-about .manifesto > *,
.page-template-about .manifesto .lede { max-width: none; }
.page-template-about #thesis { scroll-margin-top: var(--nav-h); }
/* About : chapo de l'en-tete video sur toute la largeur de la grille */
.page-template-about .hero-photo-copy .hero-lead { max-width: none; }
/* Accueil : chapo de l'en-tete, texte de la mission et texte Audacia sur toute la largeur de la grille */
body.home .hero-photo-copy .hero-lead,
body.home .manifesto .lede,
body.home .audacia-head .lede { max-width: none; }
/* En-tetes des pages interieures (Insights, About, Investments, Team, Contact) : chapo et titre sur toute la largeur */
.page-hero h1,
.page-hero p:not(.kicker) { max-width: none; }

/* Cartes numerotees (mission, methode) */
body .process { background: var(--night-line); border-color: var(--night-line); }
body .process-card { background: var(--night); padding: 40px 32px 44px; }
body .process-card h3 {
  font-family: var(--font-display);
  font-weight: 700;
  text-transform: uppercase;
  font-size: 22px;
  letter-spacing: .02em;
  line-height: 1.15;
  margin: 18px 0 14px;
}

/* Reassurance Audacia */
.audacia {
  background: var(--night-soft);
  border-top: 1px solid var(--night-line);
  border-bottom: 1px solid var(--night-line);
  scroll-margin-top: var(--nav-h);
}
.audacia-head { margin-bottom: 80px; }
body .audacia-head h2 { margin-top: 4px; max-width: none; }
.audacia-head .lede { max-width: 62ch; margin-top: 28px; }
.fund-line {
  position: relative;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 2px solid rgba(240, 240, 251, .4);
}
.fund-line::after {
  content: "";
  position: absolute;
  right: -2px;
  top: -8px;
  border-left: 12px solid rgba(240, 240, 251, .4);
  border-top: 7px solid transparent;
  border-bottom: 7px solid transparent;
}
.fund { position: relative; display: flex; flex-direction: column; padding: 40px 32px 0 0; }
.fund + .fund { padding-left: 32px; border-left: 1px solid var(--night-line); }
.fund-dot {
  position: absolute;
  top: -10px;
  left: 0;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 2px solid var(--night-ink);
  background: var(--night-soft);
}
.fund + .fund .fund-dot { left: -9px; }
.fund.is-current .fund-dot {
  background: var(--green);
  border-color: var(--green);
  box-shadow: 0 0 0 4px rgba(96, 182, 105, .3);
  animation: exergon-pulse 2.4s ease-out infinite;
}
body .fund > .kicker { font-size: 18px; letter-spacing: .2em; color: var(--night-ink); }
.fund-logos { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 28px; margin-top: 28px; }
.fund-logos img { height: 32px; width: auto; max-width: 180px; object-fit: contain; opacity: .7; }
/* Onde : halo fixe autour du point + anneau qui s'elargit et s'efface */
@keyframes exergon-pulse {
  0% { box-shadow: 0 0 0 4px rgba(96, 182, 105, .3), 0 0 0 4px rgba(96, 182, 105, .55); }
  80%, 100% { box-shadow: 0 0 0 4px rgba(96, 182, 105, .3), 0 0 0 16px rgba(96, 182, 105, 0); }
}
body .fund h3 {
  font-family: var(--font-display);
  font-weight: 700;
  text-transform: uppercase;
  font-size: 22px;
  letter-spacing: .04em;
  margin: 12px 0 28px;
}
.fund-value { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 10px; }
.fund-value strong {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(40px, 4.4vw, 64px);
  line-height: 1;
}
.fund-value.is-soon strong { font-size: clamp(28px, 2.8vw, 40px); padding: 8px 0 6px; }
.fund-value span,
.fund-status {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--night-muted);
}
.fund-highlights { list-style: none; margin-top: 28px; }
.fund-highlights li {
  padding: 12px 0;
  border-top: 1px solid var(--night-line);
  color: var(--night-muted);
  font-size: 15px;
}
.fund-status { margin-top: 24px; color: var(--night-ink); }
.fund.is-current .fund-status,
.fund.is-current .fund-value.is-soon strong { color: var(--green); }
.fund-feature { align-self: stretch; margin-top: auto; padding-top: 40px; }
.fund-feature::before { content: ""; display: block; height: 1px; background: var(--night-line); margin-bottom: 32px; }
.fund-feature-logo { display: block; height: 36px; width: auto; max-width: 70%; object-fit: contain; object-position: left center; }
.fund-feature-caption {
  margin-top: 18px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--night-muted);
}
.audacia-disclaimer { margin-top: 64px; font-size: 12px; color: var(--night-muted); }

/* Verticales : panneaux plein cadre */
.verticals { padding-top: 128px; }
.panel-full {
  position: relative;
  min-height: 88vh;
  min-height: 88svh;
  display: grid;
  align-items: end;
  overflow: hidden;
  background: var(--night);
}
.panel-full-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* Harmonise des videos de sources differentes (teinte, luminosite) */
  filter: saturate(.8) contrast(1.06) brightness(.86);
}
/* Fondus : noir plein en haut et en bas pour que les panneaux s'enchainent sans couture,
   voile a gauche pour la lisibilite du texte. */
.panel-full-shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, #000 0%, rgba(0, 0, 0, .7) 8%, rgba(0, 0, 0, .25) 18%, rgba(0, 0, 0, 0) 30%),
    linear-gradient(0deg, #000 0%, rgba(0, 0, 0, .8) 12%, rgba(0, 0, 0, .35) 30%, rgba(0, 0, 0, 0) 52%),
    linear-gradient(90deg, rgba(0, 0, 0, .72) 0%, rgba(0, 0, 0, .28) 55%, rgba(0, 0, 0, .05) 100%);
}
.panel-full-copy { position: relative; z-index: 1; padding: 112px 0 104px; }
.panel-full-copy > * { max-width: 34rem; }
body .panel-full .kicker { font-size: 18px; letter-spacing: .2em; }
.panel-full h3 {
  font-family: var(--font-display);
  font-weight: 700;
  text-transform: uppercase;
  font-size: clamp(40px, 5.4vw, 76px);
  line-height: 1;
  margin: 16px 0 18px;
}
.panel-full-copy > p:not(.kicker) {
  font-size: 18px;
  color: rgba(240, 240, 251, .86);
  margin-bottom: 36px;
  max-width: 40ch;
}

/* Investissements : tuiles avec infos cles */
.startup-tiles {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 48px 16px;
}
.startup-tile { display: grid; align-content: start; gap: 20px; color: var(--night-ink); }
.startup-tile .port-card { min-height: 0; aspect-ratio: 4 / 3; width: 100%; }
.startup-tile:hover .port-card-bg { transform: scale(1.08); }
.startup-tile .port-card-shade { background: linear-gradient(180deg, rgba(0, 0, 0, .2) 0%, rgba(0, 0, 0, .5) 100%); }
.startup-tile:focus-visible { outline-offset: 6px; }
.startup-tile .port-card-logo { height: 50px; max-width: 72%; }
/* Startups > Taille du logo (%) : --logo-scale pose par exergon_startup_logo() */
.port-card-logo[style] { height: calc(52px * var(--logo-scale)); max-width: calc(min(240px, 78%) * var(--logo-scale)); }
.startup-tile .port-card-logo[style] { height: calc(50px * var(--logo-scale)); max-width: calc(72% * var(--logo-scale)); }
.insight-card-logo[style] { height: calc(38px * var(--logo-scale)); max-width: calc(210px * var(--logo-scale)); }
@media (max-width: 980px) {
  .port-card-logo[style] { height: calc(44px * var(--logo-scale)); }
}
.port-card-logo.company-scene-logo[style] { height: calc(56px * var(--logo-scale)); }
.startup-tile-info { display: grid; gap: 6px; }
.startup-tile-sector {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.startup-tile-tagline { color: var(--night-muted); font-size: 15px; line-height: 1.45; }
.startup-tile-more .port-card {
  background: transparent;
  border: 1px solid var(--night-line);
  transition: border-color .2s ease;
}
.startup-tile-more:hover .port-card { border-color: rgba(240, 240, 251, .6); }
.startup-tile-more .port-card-inner { gap: 14px; }
.startup-tile-more strong {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.startup-tile-more .startup-tile-arrow { font-size: 28px; line-height: 1; color: var(--green); }

/* Citation avec portrait */
body .quote-band {
  background: var(--night);
  border-color: var(--night-line);
  padding: 96px 0;
}
.quote-band-inner {
  display: grid;
  grid-template-columns: 200px minmax(0, 1fr);
  gap: 56px;
  align-items: center;
}
.quote-band-inner:not(:has(.quote-portrait)) { grid-template-columns: minmax(0, 1fr); }
.quote-portrait img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center 15%;
}
body .quote-band blockquote {
  font-family: var(--font-sans);
  font-weight: 300;
  font-size: clamp(22px, 2.4vw, 32px);
  line-height: 1.3;
  letter-spacing: -.01em;
  max-width: none;
  margin: 14px 0 20px;
}
body .quote-attr {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: .2em;
  color: var(--night-muted);
}
.quote-logos { display: flex; align-items: center; gap: 22px; margin-top: 28px; }
.quote-logos .logo img { height: 30px; }
.quote-logo-audacia { height: 22px; width: auto; }
.quote-logos-sep { width: 1px; height: 30px; background: var(--night-line); }

/* Portraits : noir et blanc par defaut, couleur selon le reglage (Accueil > Equipe) */
body .is-mono .partner-shot img,
body .is-mono .quote-portrait img { filter: grayscale(1) contrast(1.05); }
body .partner-shot-copy h3 {
  font-family: var(--font-display);
  font-weight: 700;
  text-transform: uppercase;
  font-size: clamp(22px, 2vw, 30px);
  letter-spacing: .02em;
}
body .partner-role { font-family: var(--font-display); font-weight: 700; font-size: 12px; letter-spacing: .16em; }

/* Villes */
body .city-grid { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
body .city-grid figure { position: relative; }
body .city-grid figure::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(0, 0, 0, .7) 0%, rgba(0, 0, 0, 0) 45%);
}
body .city-grid img { height: 440px; }
body .city-grid figcaption {
  position: absolute;
  left: 28px;
  bottom: 24px;
  z-index: 1;
  padding: 0;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 18px;
  letter-spacing: .3em;
}

/* Insights */
body .insight-card {
  background: var(--night-soft);
  border-color: var(--night-line);
  padding: 32px;
  transition: border-color .2s ease;
}
body a.insight-card:hover { border-color: rgba(240, 240, 251, .45); }
body .insight-card h3 { font-size: 22px; line-height: 1.25; }
.insight-card-logo { height: 38px; width: auto; max-width: 210px; object-fit: contain; object-position: left center; margin-bottom: 10px; opacity: .85; }

/* Double appel a l'action : investisseurs / startups */
body .dual-cta-section { padding-bottom: 128px; }
body .dual-cta { border: 1px solid var(--night-line); }
body .dual-cta-card {
  background: var(--night);
  border-right: 1px solid var(--night-line);
  padding: 104px 64px;
  transition: background .3s ease;
}
body .dual-cta-card:last-child { border-right: 0; }
body .dual-cta-card:hover { background: var(--night-soft); }
body .dual-cta h2 { font-size: clamp(32px, 3.6vw, 52px); margin: 14px 0 16px; }
body .dual-cta .btn { margin-top: 28px; }
body .dual-cta-card:hover .btn-on-dark { background: var(--night-ink); color: #000; }

body .film { background: var(--night); }

@media (max-width: 980px) {
  body .section { padding: 72px 0; }
  body .section-tight { padding-top: 0; }
  body.has-hero-overlay .hero-photo-copy { padding: 0 0 40px; }
  body.has-hero-overlay .hero-photo h1 { font-size: clamp(34px, 9.6vw, 52px); }
  body.has-hero-overlay .hero-lead { font-size: 16px; }
  body.has-hero-overlay .hero-video-btn { top: auto; bottom: 20px; right: 16px; }
  .backed-badge { margin-top: 28px; }
  body .proof-item,
  body .proof-item:first-child { padding: 24px 16px; }
  .audacia-head { margin-bottom: 48px; }
  .fund-line { grid-template-columns: 1fr; border-top: 0; border-left: 2px solid rgba(240, 240, 251, .4); }
  .fund-line::after { display: none; }
  .fund,
  .fund + .fund { padding: 0 0 44px 28px; border-left: 0; }
  .fund-dot,
  .fund + .fund .fund-dot { top: 0; left: -10px; }
  .audacia-disclaimer { margin-top: 40px; }
  .verticals { padding-top: 72px; }
  .panel-full { min-height: 78svh; }
  .panel-full-shade {
    background:
      linear-gradient(180deg, #000 0%, rgba(0, 0, 0, .5) 10%, rgba(0, 0, 0, 0) 24%),
      linear-gradient(0deg, #000 0%, rgba(0, 0, 0, .88) 18%, rgba(0, 0, 0, .35) 60%, rgba(0, 0, 0, .1) 100%);
  }
  .panel-full-copy { padding: 56px 0; }
  .panel-full-copy > p:not(.kicker) { font-size: 16px; }
  .startup-tiles { gap: 40px 12px; }
  body .quote-band { padding: 64px 0; }
  .quote-band-inner { grid-template-columns: 120px minmax(0, 1fr); gap: 24px; align-items: start; }
  .quote-logos { gap: 16px; }
  .quote-logos .logo img { height: 24px; }
  .quote-logo-audacia { height: 18px; }
  body .city-grid img { height: 260px; }
  body .dual-cta-section { padding-bottom: 72px; }
  body .dual-cta-card { padding: 56px 24px; border-right: 0; border-bottom: 1px solid var(--night-line); }
  body .dual-cta-card:last-child { border-bottom: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .fund.is-current .fund-dot { animation: none; }
}
/* Mobile : citation, frise des fonds, cartes Investments */
@media (max-width: 980px) {
  /* Citation : portrait en petite vignette carree a gauche du nom */
  .quote-band-inner { grid-template-columns: 48px minmax(0, 1fr); gap: 0 14px; align-items: center; }
  .quote-copy { display: contents; }
  .quote-copy > .kicker,
  body .quote-band blockquote,
  .quote-logos { grid-column: 1 / -1; }
  .quote-copy > .kicker { grid-row: 1; }
  body .quote-band blockquote { grid-row: 2; }
  .quote-portrait { grid-column: 1; grid-row: 3; margin: 0; }
  .quote-portrait img { width: 48px; height: 60px; aspect-ratio: 4 / 5; object-fit: cover; }
  body .quote-attr { grid-column: 2; grid-row: 3; margin: 0; }
  .quote-attr-name,
  .quote-attr-role { display: block; }
  .quote-attr-sep { display: none; }
  .quote-attr-role { margin-top: 4px; }
  .quote-band-inner:not(:has(.quote-portrait)) .quote-attr { grid-column: 1 / -1; }
  .quote-logos { grid-row: 4; }

  /* Frise des fonds : chaque fonds devient un bloc distinct sur la ligne de temps ;
     la participation phare est rattachee au fonds (encart) plutot que separee par un filet. */
  .fund,
  .fund + .fund { padding: 0 0 0 28px; }
  .fund + .fund { margin-top: 40px; padding-top: 40px; border-top: 1px solid var(--night-line); }
  .fund + .fund .fund-dot { top: 40px; }
  .fund-feature { margin-top: 20px; padding: 18px 16px; background: rgba(240, 240, 251, .05); border: 1px solid var(--night-line); }
  .fund-feature::before { display: none; }

  /* Investments : cartes bien detachees les unes des autres */
  .port-grid { gap: 16px; }
  .port-grid .port-card { border: 1px solid rgba(240, 240, 251, .22); }
}

/* Formulaire de contact : profil du visiteur (qualification) */
.profile-choice { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.profile-choice legend { width: 100%; margin-bottom: 8px; }
.profile-choice label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border: 1px solid var(--night-line);
  background: var(--night-soft);
  cursor: pointer;
}
.profile-choice label:has(input:checked) { border-color: var(--night-ink); }
.profile-choice input { accent-color: var(--green); width: 16px; height: 16px; margin: 0; }
.profile-choice label span { font-size: 14px; letter-spacing: 0; text-transform: none; color: var(--night-ink); }
.profile-choice .field-error { width: 100%; }

/* Insights : cartes par format, auteur, filtres par sujet, page ------------ */
.insight-grid--3 { grid-template-columns: repeat(3, 1fr); }
.insight-card { align-content: start; }
.insight-card-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; }
.insight-card-top .kicker { margin: 0; }
.insight-badge {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 3px 10px; border: 1px solid var(--night-line); border-radius: 20px;
  font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--night-muted);
}
.insight-card--document .insight-badge { border-color: var(--green); color: var(--green); }
.insight-card-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; margin-top: 12px; }
.insight-author { display: inline-flex; align-items: center; gap: 10px; font-size: 14px; color: var(--night-ink); }
.insight-author img,
.insight-author .partner-ph { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; flex: none; font-size: 11px; display: inline-grid; place-items: center; }
.insight-author--lg img,
.insight-author--lg .partner-ph { width: 52px; height: 52px; font-size: 14px; }
.insight-author--lg span { display: grid; gap: 2px; }
.insight-author--lg small { color: var(--night-muted); font-size: 13px; }
a.filter { text-decoration: none; }
.insights-filters { margin-bottom: 32px; }
.article-byline { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--night-line); }
.article-download { display: inline-flex; align-items: center; gap: 12px; }
.article-download-size { opacity: .75; font-weight: 400; }
@media (max-width: 980px) {
  .insight-grid--3 { grid-template-columns: 1fr; }
}

/* Barres de defilement a la charte (page, fenetre startup, menu mobile) --------
   Fine, sombre, pouce clair au survol. Firefox : scrollbar-*. Chrome, Edge, Safari : ::-webkit-scrollbar. */
/* Chrome applique scrollbar-color en priorite (et garde les fleches) : reserve aux navigateurs
   sans ::-webkit-scrollbar (Firefox). */
@supports not selector(::-webkit-scrollbar) {
  html,
  .startup-dialog,
  .newsletter-popup,
  .nav-links {
    scrollbar-width: thin;
    scrollbar-color: rgba(240, 240, 251, .22) transparent;
  }
}
::-webkit-scrollbar-button { display: none; width: 0; height: 0; }
html { background: var(--night, #000); }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: rgba(240, 240, 251, .22);
  border-radius: 8px;
  border: 2px solid transparent;
  background-clip: padding-box;
}
::-webkit-scrollbar-thumb:hover { background-color: rgba(240, 240, 251, .45); }
::-webkit-scrollbar-thumb:active { background-color: var(--green, #60b669); }
::-webkit-scrollbar-corner { background: transparent; }
.startup-dialog::-webkit-scrollbar-track { margin: 12px 0; }

/* Micro-interactions : plus aucun survol instantane ----------------------------------- */
a,
button,
.btn,
.text-link,
.filter,
.lang-switch-item,
.pagination .page-numbers,
.profile-choice label,
.footer-social {
  transition: color .25s ease, background-color .25s ease, border-color .25s ease, opacity .25s ease, transform .25s ease, box-shadow .25s ease;
}
/* Le menu ne transitionnait que la couleur, y compris pour le bouton : fond change d'un coup. */
.nav .nav-links a.btn { transition: color .25s ease, background-color .25s ease, border-color .25s ease; }
/* « Get information » : texte noir sur vert, aussi au survol (le blanc du menu le rendait illisible). */
.nav .nav-links a.nav-cta,
.nav .nav-links a.nav-cta:hover,
.nav .nav-links a.nav-cta:focus-visible,
body.has-hero-overlay .nav .nav-links a.nav-cta,
body.has-hero-overlay .nav .nav-links a.nav-cta:hover { color: #000; }
@media (prefers-reduced-motion: reduce) {
  a, button, .btn, .text-link, .filter, .lang-switch-item, .pagination .page-numbers, .profile-choice label, .footer-social { transition: none; }
}

/* Cases a cocher et boutons radio a la charte (plus de carre ou rond blanc natif) --------- */
.profile-choice input[type="radio"],
.consent input[type="checkbox"],
.newsletter-form input[type="checkbox"] {
  -webkit-appearance: none;
  appearance: none;
  flex: none;
  width: 18px;
  height: 18px;
  margin: 0;
  border: 1.5px solid rgba(240, 240, 251, .45);
  background: transparent;
  display: inline-grid;
  place-items: center;
  cursor: pointer;
  transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.profile-choice input[type="radio"] { border-radius: 50%; }
.consent input[type="checkbox"],
.newsletter-form input[type="checkbox"] { border-radius: 3px; margin-top: 2px; }
.profile-choice input[type="radio"]::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--green);
  transform: scale(0);
  transition: transform .2s ease;
}
.consent input[type="checkbox"]::before,
.newsletter-form input[type="checkbox"]::before {
  content: "";
  width: 10px;
  height: 6px;
  border-left: 2px solid #000;
  border-bottom: 2px solid #000;
  transform: translateY(-1px) rotate(-45deg) scale(0);
  transition: transform .2s ease;
}
.profile-choice input[type="radio"]:hover,
.consent input[type="checkbox"]:hover,
.profile-choice label:hover input[type="radio"] { border-color: var(--night-ink); }
.profile-choice input[type="radio"]:checked { border-color: var(--green); }
.profile-choice input[type="radio"]:checked::before { transform: scale(1); }
.consent input[type="checkbox"]:checked,
.newsletter-form input[type="checkbox"]:checked { background: var(--green); border-color: var(--green); }
.consent input[type="checkbox"]:checked::before,
.newsletter-form input[type="checkbox"]:checked::before { transform: translateY(-1px) rotate(-45deg) scale(1); }
.profile-choice input:focus-visible,
.consent input:focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }
.profile-choice label:hover { border-color: rgba(240, 240, 251, .45); }
.profile-choice label:has(input:checked) { border-color: var(--green); background: rgba(96, 182, 105, .08); }
.consent input[aria-invalid="true"],
.profile-choice[aria-invalid="true"] input { border-color: #f97066; }

/* Pied de page : icones des reseaux */
.footer-socials { gap: 10px; align-items: center; }
.footer-social {
  display: inline-grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid var(--night-line);
  border-radius: 50%;
  color: rgba(240, 240, 251, .75);
}
.footer-social:hover,
.footer-social:focus-visible { color: #000; background: var(--night-ink); border-color: var(--night-ink); }
.footer-social span { font-size: 12px; letter-spacing: .1em; }
.footer-social:has(span) { width: auto; padding: 0 14px; border-radius: 20px; }

/* Pagination : centree, survol doux, page courante en vert ------------------------------ */
.pagination { margin-top: 64px; }
.pagination .nav-links { justify-content: center; align-items: center; gap: 8px; }
.pagination .page-numbers {
  min-width: 44px;
  height: 44px;
  padding: 0 14px;
  border-color: var(--night-line);
  color: rgba(240, 240, 251, .75);
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: .08em;
}
.pagination a.page-numbers:hover,
.pagination a.page-numbers:focus-visible { background: transparent; color: var(--night-ink); border-color: var(--night-ink); }
.pagination .page-numbers.current { background: var(--green); border-color: var(--green); color: #000; }
.pagination .page-numbers.dots { border-color: transparent; }
.pagination .prev,
.pagination .next { padding: 0 20px; text-transform: uppercase; font-size: 12px; letter-spacing: .16em; }
/* Le style des champs texte (.field input : marge interne, hauteur) s'appliquait aussi aux radios. */
.field.profile-choice input[type="radio"],
.consent input[type="checkbox"] {
  box-sizing: border-box;
  width: 18px;
  height: 18px;
  min-height: 0;
  padding: 0;
  font-size: 0;
  line-height: 0;
}

/* Double appel a l'action : boutons alignes en bas des deux cartes, meme si titres et textes
   n'ont pas la meme longueur (« Presentez-nous votre projet » tient sur deux lignes en FR). */
body .dual-cta-card { display: flex; flex-direction: column; align-items: flex-start; }
body .dual-cta-card p:not(.kicker) { margin-bottom: 36px; }
body .dual-cta .btn { margin-top: auto; }

/* Accueil et About : le menu transparent sur l'en-tete video reapparait en remontant par-dessus
   le contenu ; une fois la page defilee, il prend un fond sombre legerement flou. */
body.has-hero-overlay .nav.scrolled {
  background: rgba(0, 0, 0, .88);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-bottom-color: var(--night-line);
}
body.has-hero-overlay .nav.scrolled .nav-links a:not(.btn),
body.has-hero-overlay .nav.scrolled .lang-switch-item { text-shadow: none; }

/* Chiffres cles encadres (About) : le premier chiffre etait colle au bord du cadre. */
body .proof-grid.on-page { border-color: var(--night-line); }
body .proof-grid.on-page .proof-item:first-child { padding-left: 28px; }
@media (max-width: 760px) {
  body .proof-grid.on-page .proof-item:first-child { padding-left: 16px; }
}
/* Version encadree (colonnes plus etroites que le bandeau de l'accueil) : chiffres un peu plus
   petits pour que « 0,3 a 8 M€ » ne touche pas la colonne voisine. */
body .proof-grid.on-page .proof-item strong { font-size: clamp(30px, 2.9vw, 46px); white-space: nowrap; }
@media (max-width: 1100px) {
  body .proof-grid.on-page .proof-item strong { white-space: normal; }
}

/* ---------- Retours relecture n° 22 (23/10/2026) ---------- */

/* Accueil : l'ancre #audacia tombe pile sur la section (l'en-tete se masque en descendant). */
html:has(> body.home) { scroll-padding-top: 0; }
body.home .audacia { scroll-margin-top: 0; }

/* Accueil : photo de la citation rectangulaire, bords fondus dans le fond (plus marque a droite, vers le texte).
   La photo (differente du portrait de la page Team) est preparee en 4:5 : gros plan pose en vignette sur fond
   noir, bords deja fondus dans l'image (pas de masque CSS en plus), regard au tiers superieur. */
.quote-portrait { overflow: hidden; }
.quote-portrait img { object-position: center top; }

/* Credit photo sous le portrait de la citation : legende de l'image dans la mediatheque.
   Meme gris que le nom sous la citation, a la plus petite taille de texte de la page (11 px, comme les surtitres). */
.quote-portrait-credit {
  margin-top: 8px;
  font-size: 11px;
  line-height: 1.4;
  letter-spacing: .02em;
  color: var(--night-muted);
}

/* Accueil : titre de l'en-tete sur deux lignes (We build energy sovereignty / and resilience for Europe). */
@media (min-width: 981px) {
  body.home.has-hero-overlay .hero-photo h1 { font-size: clamp(42px, 5.4vw, 80px); }
}
.quote-logo-link { display: inline-flex; transition: opacity .2s; }
.quote-logo-link:hover { opacity: .7; }

/* Accueil : vehicule en cours, un logo du portefeuille a la fois qui defile en fondu (main.js). */
.fund-rotator-stage { position: relative; height: 36px; }
.fund-rotator-item {
  position: absolute;
  inset: 0 auto 0 0;
  display: flex;
  align-items: center;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity .6s ease, transform .6s ease;
  pointer-events: none;
}
.fund-rotator-item.is-active { opacity: 1; transform: none; pointer-events: auto; }
.fund-rotator-item .fund-feature-logo { height: 36px; max-width: 220px; }
.fund-rotator-item .fund-feature-logo.is-invert { filter: brightness(0) invert(1); }
.fund-rotator-item .fund-feature-logo[style] { height: calc(36px * var(--logo-scale)); }
.fund-feature a { display: inline-block; transition: opacity .2s; }
.fund-feature a:hover { opacity: .75; }
@media (max-width: 980px) {
}

/* Portfolio : bloc « a venir » en derniere case de la grille. */
.port-grid .port-card-next {
  min-height: 420px;
  background:
    radial-gradient(ellipse at 70% 20%, rgba(98, 185, 106, .10) 0%, rgba(98, 185, 106, 0) 55%),
    var(--night-soft, #0d0d10);
  border: 1px dashed var(--night-line, rgba(240, 240, 251, .16));
  cursor: default;
}
.port-card-next .port-card-inner { gap: 18px; max-width: 46ch; justify-self: center; }
.port-card-next-title {
  font-family: var(--font-display);
  font-weight: 700;
  text-transform: uppercase;
  font-size: clamp(24px, 2.4vw, 34px);
  line-height: 1.05;
  color: #fff;
}
.port-card-next-text { font-weight: 300; font-size: 16px; line-height: 1.5; color: rgba(240, 240, 251, .78); }
.port-card-next .port-card-more { opacity: 1; text-decoration: none; }
.port-grid[data-port-grid] .port-card-next.is-wide { min-height: 300px; }
@media (max-width: 980px) {
  .port-grid .port-card-next { min-height: 280px; }
}

/* Portfolio : photos des equipes fondatrices en noir et blanc, pour une presentation uniforme. */
.startup-dialog .founders-thumb img { filter: grayscale(1) contrast(1.05); }

/* Pied de page : l'icone LinkedIn restait blanche sur fond blanc au survol (.footer-col a:hover l'emportait). */
.footer .footer-col a.footer-social:hover,
.footer .footer-col a.footer-social:focus-visible,
.footer a.footer-social:hover,
.footer a.footer-social:focus-visible { color: #000; }

/* Pages simples (mentions legales...) : texte a gauche, colonne de droite avec visuel fondu et sommaire. */
.page-layout {
  display: grid;
  grid-template-columns: minmax(0, 72ch) minmax(240px, 380px);
  justify-content: space-between;
  gap: 64px;
  align-items: start;
}
.page-aside { position: sticky; top: calc(var(--nav-h) + 24px); display: grid; gap: 32px; }
.page-aside:not(:has(.page-visual)):not(:has(.page-toc:not([hidden]))) { display: none; }
.page-visual { margin: 0; position: relative; }
.page-visual img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  -webkit-mask-image: linear-gradient(180deg, #000 55%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 55%, transparent 100%);
}
.page-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 30% 20%, rgba(98, 185, 106, .18) 0%, rgba(98, 185, 106, 0) 60%);
  pointer-events: none;
}
.page-toc ol { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 10px; counter-reset: toc; }
.page-toc li { counter-increment: toc; display: grid; grid-template-columns: 28px 1fr; font-size: 15px; line-height: 1.4; }
.page-toc li::before { content: counter(toc, decimal-leading-zero); font-family: var(--font-display); font-size: 12px; letter-spacing: .1em; color: var(--night-muted, #8a8a95); padding-top: 2px; }
.page-toc a { color: rgba(240, 240, 251, .82); text-decoration: none; transition: color .2s; }
.page-toc a:hover { color: #fff; }
.page-layout .entry-content h2 { scroll-margin-top: calc(var(--nav-h) + 16px); }
@media (max-width: 980px) {
  .page-layout { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .page-aside { position: static; order: -1; }
  .page-visual img { aspect-ratio: 16 / 9; }
  .page-toc { display: none; }
}

/* Insights : pictogramme devant chaque sujet des filtres (Sujet > Pictogramme). */
.insights-filters .filter { display: inline-flex; align-items: center; gap: 8px; }
.insights-filters .filter-icon { flex: none; opacity: .75; }
.insights-filters .filter.active .filter-icon,
.insights-filters .filter:hover .filter-icon { opacity: 1; }

/* Portfolio : filtres reactifs, les cartes apparaissent en fondu (main.js, classe is-entering). */
.port-grid[data-port-grid] > *,
.insight-grid[data-insight-grid] > * { transition: opacity .28s ease, transform .28s ease; }
.port-grid[data-port-grid] > .is-entering,
.insight-grid[data-insight-grid] > .is-entering { opacity: 0; transform: translateY(8px) scale(.985); }
.insight-grid > [hidden] { display: none !important; }
.filters .filter { transition: background-color .15s ease, color .15s ease, border-color .15s ease; }
@media (prefers-reduced-motion: reduce) {
  .port-grid[data-port-grid] > *,
  .insight-grid[data-insight-grid] > * { transition: none; }
}

/* Textes longs justifies (biographies, articles, fiches startups, pages simples, paragraphes de section).
   Aussi les textes des cartes (mission, methode, resumes d'insights). Les grandes citations, titres, surtitres,
   textes courts et textes centres restent alignes a gauche. Cesure automatique pour eviter
   les blancs (langue donnee par l'attribut lang de la page) ; alignement a gauche sur telephone, ou la colonne
   est trop etroite pour justifier proprement. */
@media (min-width: 700px) {
  .person-copy > p:not(.school):not(.kicker),
  .partner-card .partner-quote,
  .entry-content > p,
  .entry-content li,
  .startup-dialog .panel > p:not(.kicker),
  .startup-dialog .tech-list .panel p,
  .panel-text p,
  .thesis-body,
  .manifesto .lede,
  .audacia-head .lede,
  .page-template-about .manifesto p:not(.kicker),
  .process-card > p,
  .insight-card > p {
    text-align: justify;
    -webkit-hyphens: auto;
    hyphens: auto;
    hyphenate-limit-chars: 7 3 3;
  }
}

/* Film : grand bouton de lecture centre (le bouton natif est trop petit). Masque des que la lecture demarre. */
.film-frame { position: relative; }
.film-play {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 104px;
  height: 104px;
  margin: -52px 0 0 -52px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, .55);
  background: rgba(0, 0, 0, .35);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  color: #fff;
  cursor: pointer;
  transition: transform .25s ease, background-color .25s ease, border-color .25s ease, opacity .3s ease;
}
.film-play svg { width: 40px; height: 40px; margin-left: 5px; }
.film-play:hover,
.film-play:focus-visible { transform: scale(1.06); background: var(--green); border-color: var(--green); }
.film-frame.is-playing .film-play { opacity: 0; pointer-events: none; }
@media (max-width: 700px) {
  .film-play { width: 64px; height: 64px; margin: -32px 0 0 -32px; }
  .film-play svg { width: 26px; height: 26px; margin-left: 3px; }
}

/* ---------- Retours relecture n° 23 (26/10/2026) ---------- */

/* Portfolio : texte des fondateurs aligne a gauche. Colonne etroite a cote de la vignette et suite de noms
   propres impossibles a couper : la justification y creusait de grands blancs entre les mots. */
.startup-dialog .panel-founders > p:not(.kicker) { text-align: left; -webkit-hyphens: manual; hyphens: manual; }

/* Accueil mobile : citation. Le cadre de la photo s'efface (display: contents) pour que la photo et son credit
   se placent chacun dans la grille : vignette a gauche, a droite le nom, la fonction puis le credit, alignes
   sur la hauteur de la vignette. Le credit ne s'ecrase plus dans la colonne etroite de la photo. */
@media (max-width: 980px) {
  .quote-band-inner { grid-template-columns: 64px minmax(0, 1fr); column-gap: 16px; align-items: start; }
  body .quote-band blockquote { margin: 12px 0 28px; }
  .quote-portrait { display: contents; }
  .quote-portrait img { grid-column: 1; grid-row: 3 / span 2; width: 64px; height: 80px; }
  body .quote-attr { grid-row: 3; align-self: end; font-size: 12px; line-height: 1.5; letter-spacing: .14em; }
  .quote-attr-role { margin-top: 2px; }
  .quote-portrait-credit { grid-column: 2; grid-row: 4; align-self: start; margin-top: 6px; }
  .quote-logos { grid-row: 5; margin-top: 32px; }
  .quote-portrait:not(:has(.quote-portrait-credit)) img { grid-row: 3; }
  .quote-band-inner:not(:has(.quote-portrait-credit)) .quote-attr { align-self: center; }
}
