/* =========================================================================
   Boréalis Entrepreneurs — feuille de styles du site (v6)
   Conforme à la charte graphique v2 (septembre 2026)
   Une seule famille typographique (Caladea, substitut libre de Cambria).
   Rayon d'angle 0 px partout. Aplats francs, aucune ombre, aucun dégradé.
   ========================================================================= */

:root {
  /* --- Couleurs primaires (charte §05) --- */
  --marine:         #3A4F69;  /* fond des bandeaux de rupture, jamais en texte */
  --marine-encre:   #0B1D2E;  /* texte principal, titres */
  --ecru:           #F4F2ED;  /* fond des pages, texte sur marine */
  --sauge:          #7FAFA8;  /* accent : filets, barres, fond de bouton. Jamais de texte */

  /* --- Secondaires --- */
  --marine-profond: #314D57;
  --sauge-profond:  #587E7F;
  --sauge-texte:    #466465;  /* seule déclinaison du vert lisible en texte sur fond clair */
  --bleu-gris:      #7A929A;
  --sable:          #C9C3B4;
  --surface-card:   #E9E6DD;
  --sauge-clair:    #CCDFDC;  /* seule version du sauge lisible en petit texte sur marine */

  /* --- Typographie --- */
  --serif: Caladea, Cambria, Georgia, "Times New Roman", serif;

  /* --- Échelle d'espacement (charte §07) --- */
  --s-4: 4px;   --s-8: 8px;   --s-12: 12px; --s-16: 16px; --s-24: 24px;
  --s-32: 32px; --s-48: 48px; --s-64: 64px; --s-96: 96px;

  /* --- Grille --- */
  --container: 1200px;
  --gutter: 5%;
  --header-h: 76px;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

[id] { scroll-margin-top: calc(var(--header-h) + var(--s-16)); }

body {
  margin: 0;
  background: var(--ecru);
  color: var(--marine-encre);
  font-family: var(--serif);
  font-size: 17px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img, svg { max-width: 100%; display: block; }
img { height: auto; }

a { color: inherit; }

:focus-visible { outline: 2px solid var(--marine-encre); outline-offset: 3px; }
.band :focus-visible, .site-footer :focus-visible { outline-color: var(--ecru); }

.skip-link {
  position: absolute; left: var(--s-16); top: -100px; z-index: 50;
  background: var(--marine-encre); color: var(--ecru);
  padding: var(--s-12) var(--s-16); font-weight: 700;
}
.skip-link:focus { top: var(--s-16); }

.container {
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}

.container--narrow { max-width: 860px; }

/* ---------- Titres ---------- */
h1, h2, h3 { font-weight: 700; margin: 0; letter-spacing: -0.005em; }

.display { font-size: clamp(32px, 5.2vw, 52px); line-height: 1.12; }
h1 { font-size: clamp(28px, 4vw, 38px); line-height: 1.2; }
h2 { font-size: clamp(26px, 3.2vw, 34px); line-height: 1.22; }
h3 { font-size: 20px; line-height: 1.35; }

p { margin: 0 0 var(--s-16); }
p:last-child { margin-bottom: 0; }

.lead { font-size: 19px; line-height: 1.6; }
.note { font-size: 15px; font-style: italic; color: var(--marine-profond); }

/* ---------- Eyebrow numéroté ---------- */
.eyebrow {
  display: block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--sauge-texte);
  margin-bottom: var(--s-16);
}

.eyebrow--sur-marine { color: var(--sauge-clair); }

/* ---------- En-tête ---------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 40;
  background: var(--ecru);
  border-bottom: 1px solid var(--sable);
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-24);
  min-height: var(--header-h);
}

.site-header__logo { display: block; flex: none; }
.site-header__logo img { width: 210px; height: auto; }

.site-nav { display: flex; align-items: center; gap: var(--s-32); }

.site-nav a {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  padding: var(--s-8) 0;
  border-bottom: 2px solid transparent;
  transition: border-color .15s ease;
}

.site-nav a:hover,
.site-nav a[aria-current="page"] { border-bottom-color: var(--sauge); }

.site-nav a.is-secondary { color: var(--marine-profond); }

.site-nav a.nav-cta {
  background: var(--sauge);
  color: var(--marine-encre);
  padding: var(--s-12) var(--s-24);
  border-bottom: 0;
  transition: background-color .15s ease;
}
.site-nav a.nav-cta:hover { background: var(--sauge-clair); }

/* Bouton hamburger : masqué sur grand écran */
.nav-toggle {
  display: none;
  align-items: center;
  gap: var(--s-12);
  background: transparent;
  border: 1px solid var(--marine-encre);
  color: var(--marine-encre);
  font-family: var(--serif);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: var(--s-12) var(--s-16);
  min-height: 44px;
  cursor: pointer;
}

.nav-toggle__bars { position: relative; width: 20px; height: 14px; }
.nav-toggle__bars span {
  position: absolute; left: 0; width: 100%; height: 2px;
  background: currentColor;
  transition: transform .2s ease, opacity .2s ease, top .2s ease;
}
.nav-toggle__bars span:nth-child(1) { top: 0; }
.nav-toggle__bars span:nth-child(2) { top: 6px; width: 70%; }
.nav-toggle__bars span:nth-child(3) { top: 12px; }

.nav-toggle[aria-expanded="true"] { background: var(--marine-encre); color: var(--ecru); }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars span:nth-child(1) { top: 6px; transform: rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars span:nth-child(3) { top: 6px; transform: rotate(-45deg); }

/* ---------- Boutons ---------- */
.btn {
  display: inline-block;
  font-family: var(--serif);
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  text-align: center;
  padding: var(--s-16) var(--s-32);
  border: 1px solid transparent;
  cursor: pointer;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}

.btn--primary { background: var(--sauge); color: var(--marine-encre); }
.btn--primary:hover { background: var(--sauge-clair); }

.btn--ghost-ecru { border-color: rgba(244, 242, 237, .55); color: var(--ecru); }
.btn--ghost-ecru:hover { border-color: var(--ecru); background: rgba(244, 242, 237, .08); }

.btn--ghost-marine { border-color: var(--marine-encre); color: var(--marine-encre); }
.btn--ghost-marine:hover { background: var(--marine-encre); color: var(--ecru); }

.btn-row { display: flex; flex-wrap: wrap; gap: var(--s-16); }

/* ---------- Bandeau de rupture marine ---------- */
.band {
  background: var(--marine);
  color: var(--ecru);
  padding: var(--s-96) 0;
}

.band a { color: var(--ecru); }

/* ---------- Bandeau principal ---------- */
.hero { padding: var(--s-96) 0; }

.hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
  gap: var(--s-64);
  align-items: center;
}

.hero .display { max-width: 19ch; margin: 0 0 var(--s-24); }
.hero .lead { max-width: 56ch; margin: 0 0 var(--s-32); color: rgba(244, 242, 237, .9); }
.hero .lead span { display: block; }
.hero .lead span + span { margin-top: var(--s-8); }

/* Variante centrée, pour les pages intérieures sans photo */
.hero--center { text-align: center; }
.hero--center .display { max-width: 18ch; margin-left: auto; margin-right: auto; }
.hero--center .lead { margin-left: auto; margin-right: auto; margin-bottom: var(--s-48); }
.hero--center .btn-row { justify-content: center; }
.hero--center .hero__motif { margin-left: auto; margin-right: auto; }

/* Motif : 13 barres, 6 sauge puis 7 écru, qui « poussent » à l'arrivée */
.hero__motif { width: 168px; margin: 0 0 var(--s-32); overflow: visible; }

.hero__motif rect {
  transform-box: fill-box;
  transform-origin: 50% 100%;
  animation: bar-grow .7s cubic-bezier(.2, .7, .2, 1) both;
}
.hero__motif rect:nth-child(1)  { animation-delay: .05s; }
.hero__motif rect:nth-child(2)  { animation-delay: .10s; }
.hero__motif rect:nth-child(3)  { animation-delay: .15s; }
.hero__motif rect:nth-child(4)  { animation-delay: .20s; }
.hero__motif rect:nth-child(5)  { animation-delay: .25s; }
.hero__motif rect:nth-child(6)  { animation-delay: .30s; }
.hero__motif rect:nth-child(7)  { animation-delay: .35s; }
.hero__motif rect:nth-child(8)  { animation-delay: .40s; }
.hero__motif rect:nth-child(9)  { animation-delay: .45s; }
.hero__motif rect:nth-child(10) { animation-delay: .50s; }
.hero__motif rect:nth-child(11) { animation-delay: .55s; }
.hero__motif rect:nth-child(12) { animation-delay: .60s; }
.hero__motif rect:nth-child(13) { animation-delay: .65s; }

@keyframes bar-grow { from { transform: scaleY(0); } to { transform: scaleY(1); } }

/* ---------- Cadre photo : filet sauge décalé, angles vifs ---------- */
.frame { position: relative; margin: 0 var(--s-16) var(--s-16) 0; }

.frame::before {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid var(--sauge);
  transform: translate(var(--s-16), var(--s-16));
}

.frame img { position: relative; width: 100%; object-fit: cover; }

.frame--ecru::before { border-color: var(--sauge-profond); }

.photo-cap {
  margin-top: var(--s-24);
  font-size: 15px;
  font-style: italic;
  color: var(--marine-profond);
}

/* ---------- Bandeau de repères ---------- */
.facts {
  background: var(--surface-card);
  border-left: 4px solid var(--marine-profond);
  padding: var(--s-32);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: var(--s-32);
  margin-top: calc(-1 * var(--s-48));
  position: relative;
  z-index: 2;
}

.facts__value { font-size: 26px; font-weight: 700; line-height: 1.2; }
.facts__label {
  display: block;
  margin-top: var(--s-4);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--marine-profond);
}

/* ---------- Sections ---------- */
.section { padding: var(--s-96) 0; }
.section--card { background: var(--surface-card); }
.section__intro { max-width: 68ch; margin-bottom: var(--s-48); }

.grid { display: grid; gap: var(--s-32); }
.grid--2 { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.grid--3 { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }

/* Titre à gauche, contenu à droite */
.split {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: var(--s-64);
  align-items: start;
}
.split__head { position: sticky; top: calc(var(--header-h) + var(--s-32)); }

/* Les trois questions de l'accueil */
.triptych {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--s-24);
  margin: var(--s-48) 0 var(--s-32);
}
.triptych p {
  margin: 0;
  padding-top: var(--s-16);
  border-top: 2px solid var(--sauge);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.3;
}

/* ---------- Cartes ---------- */
.card { background: var(--surface-card); padding: var(--s-32); }
.card h3 { margin-bottom: var(--s-12); }
.card p { font-size: 16px; }
.card--sur-marine { background: rgba(244, 242, 237, .07); }

/* ---------- Liste de critères ---------- */
.criteria { list-style: none; margin: 0; padding: 0; counter-reset: crit; }

.criteria li {
  counter-increment: crit;
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: var(--s-16);
  padding: var(--s-24) 0;
  border-top: 1px solid var(--sable);
}
.criteria li::before {
  content: "0" counter(crit);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--sauge-texte);
  padding-top: var(--s-4);
}
.criteria li:last-child { border-bottom: 1px solid var(--sable); }
.criteria strong { display: block; margin-bottom: var(--s-4); font-size: 19px; }

/* ---------- Encadré ---------- */
.callout {
  background: var(--surface-card);
  border-left: 4px solid var(--sauge);
  padding: var(--s-24) var(--s-32);
  margin-top: var(--s-32);
}

.callout--sur-marine { background: rgba(244, 242, 237, .07); }

/* ---------- Étapes ---------- */
.steps { list-style: none; margin: 0; padding: 0; counter-reset: step; }

.steps > li {
  counter-increment: step;
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: var(--s-24);
  padding: var(--s-32) 0;
  border-top: 1px solid var(--sable);
}
.steps > li:last-child { border-bottom: 1px solid var(--sable); }

.steps > li::before {
  content: counter(step) ".";
  font-size: 34px;
  font-weight: 700;
  color: var(--sauge-texte);
  line-height: 1;
}

.steps h3 { margin-bottom: var(--s-8); }
.steps p { font-size: 16px; }

/* ---------- Équipe ---------- */
.team {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--s-64);
  margin-top: var(--s-48);
}

.person__photo {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: 50% 6%;
  background: var(--sable);
  margin-bottom: var(--s-24);
}

.person__role {
  display: block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--sauge-texte);
  margin: var(--s-4) 0 var(--s-12);
}

.person p { font-size: 16px; }

/* Équipe en format compact (page Investisseurs) */
.mini-team { display: flex; flex-wrap: wrap; gap: var(--s-32); margin-top: var(--s-32); }
.mini-team__item { display: flex; align-items: center; gap: var(--s-16); }
.mini-team__item img { width: 96px; height: 96px; object-fit: cover; object-position: 50% 12%; }
.mini-team__item strong { display: block; }

/* ---------- Contact ---------- */
.contact-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--s-64);
  align-items: center;
  margin-bottom: var(--s-64);
}
.contact-split .section__intro { margin-bottom: 0; }

/* ---------- Comparatif léger ---------- */
.micro-label {
  display: block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--sauge-texte);
  margin-bottom: var(--s-4);
}
.band .micro-label { color: var(--sauge-clair); }

.steps__detail {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: var(--s-32);
  margin-top: var(--s-16);
}
.steps__detail p { margin: 0; font-size: 16px; }

.compare {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--s-48);
  align-items: stretch;
}

.compare__col { display: flex; flex-direction: column; }

.compare__col > .micro-label {
  padding-bottom: var(--s-12);
  border-bottom: 1px solid var(--sauge);
  margin-bottom: 0;
}

.compare__col ul {
  list-style: none;
  margin: 0;
  padding: 0;
  flex: 1;
  display: grid;
  grid-template-rows: repeat(5, 1fr);
}

.compare__col li {
  display: flex;
  align-items: center;
  padding: var(--s-16) 0;
  border-bottom: 1px solid var(--sable);
  font-size: 16px;
}

.compare__col--change li { color: var(--marine-profond); }

.statement {
  background: rgba(244, 242, 237, .07);
  border-left: 4px solid var(--sauge);
  padding: var(--s-32);
  font-size: 21px;
  line-height: 1.45;
  font-weight: 700;
}

/* ---------- FAQ ---------- */
.faq { border-top: 1px solid var(--sable); }
.faq details { border-bottom: 1px solid var(--sable); }

.faq summary {
  cursor: pointer;
  list-style: none;
  padding: var(--s-24) var(--s-32) var(--s-24) 0;
  font-size: 19px;
  font-weight: 700;
  position: relative;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: "+";
  position: absolute;
  right: 0;
  top: var(--s-24);
  font-size: 24px;
  color: var(--sauge-texte);
  line-height: 1;
}
.faq details[open] summary::after { content: "–"; }
.faq details > div { padding: 0 var(--s-32) var(--s-24) 0; font-size: 16px; }

/* ---------- Formulaire ---------- */
.form-block { background: var(--surface-card); padding: var(--s-48); }
.section--card .form-block { background: var(--ecru); }

.form-placeholder {
  border: 1px dashed var(--bleu-gris);
  padding: var(--s-32);
  font-size: 15px;
  color: var(--marine-profond);
}
.form-placeholder code {
  font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  font-size: 13px;
  background: rgba(58, 79, 105, .08);
  padding: 2px 5px;
}

/* ---------- Pied de page ---------- */
.site-footer {
  background: var(--marine-encre);
  color: var(--ecru);
  padding: var(--s-64) 0 var(--s-32);
  font-size: 15px;
}

.site-footer__motif { width: 132px; margin-bottom: var(--s-48); }

.site-footer__inner {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-32);
  justify-content: space-between;
  align-items: flex-start;
}

.site-footer__brand img { width: 210px; }
.site-footer__brand p { margin-top: var(--s-16); max-width: 42ch; color: rgba(244, 242, 237, .85); }

.site-footer a { color: rgba(244, 242, 237, .85); }
.site-footer a:hover { color: var(--ecru); }

.site-footer__legal {
  margin-top: var(--s-48);
  padding-top: var(--s-24);
  border-top: 1px solid rgba(244, 242, 237, .18);
  font-size: 13px;
  color: rgba(244, 242, 237, .65);
}

.site-footer__links { display: flex; flex-direction: column; gap: var(--s-8); }

/* ---------- Apparition au défilement ---------- */
.js .reveal {
  opacity: 0;
  transform: translateY(var(--s-16));
  transition: opacity .6s ease, transform .6s ease;
  transition-delay: var(--d, 0s);
}
.js .reveal.is-in { opacity: 1; transform: none; }

/* ---------- Tablette ---------- */
@media (max-width: 1020px) {
  .site-header__logo img { width: 168px; }

  .js .nav-toggle { display: inline-flex; }

  /* Menu replié derrière le bouton */
  .js .site-nav {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    background: var(--ecru);
    border-bottom: 1px solid var(--sable);
    padding: var(--s-8) var(--gutter) var(--s-24);
    visibility: hidden;
    opacity: 0;
    transform: translateY(calc(-1 * var(--s-8)));
    pointer-events: none;
    transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
  }
  .js .site-nav.is-open {
    visibility: visible;
    opacity: 1;
    transform: none;
    pointer-events: auto;
    transition: opacity .2s ease, transform .2s ease;
  }
  .js .site-nav a {
    font-size: 15px;
    padding: var(--s-16) 0;
    border-bottom: 1px solid var(--sable);
  }
  .js .site-nav a[aria-current="page"] { border-bottom-color: var(--sauge); border-bottom-width: 2px; }
  .js .site-nav a.nav-cta { margin-top: var(--s-24); padding: var(--s-16) var(--s-24); text-align: center; border-bottom: 0; }

  /* Sans JavaScript : la navigation passe simplement à la ligne */
  html:not(.js) .site-header__inner { flex-wrap: wrap; padding-top: var(--s-12); padding-bottom: var(--s-12); }
  html:not(.js) .site-nav { flex-wrap: wrap; gap: var(--s-8) var(--s-24); width: 100%; }

  .hero__grid { grid-template-columns: 1fr; gap: var(--s-48); }
  .hero .display { max-width: 20ch; }
  .hero__photo { max-width: 520px; }

  .split { grid-template-columns: 1fr; gap: var(--s-32); }
  .split__head { position: static; }

  .contact-split { grid-template-columns: 1fr; gap: var(--s-48); }
}

/* ---------- Mobile ---------- */
@media (max-width: 720px) {
  :root { --s-96: 56px; --s-64: 40px; --header-h: 68px; }

  .site-header__logo img { width: 168px; }

  .hero__motif { width: 132px; }
  .hero__photo { max-width: none; }
  .hero .btn-row .btn { flex: 1 1 100%; }

  .facts { margin-top: calc(-1 * var(--s-32)); padding: var(--s-24); gap: var(--s-24); }
  .triptych { grid-template-columns: 1fr; gap: var(--s-16); margin: var(--s-32) 0 var(--s-24); }
  .triptych p { font-size: 20px; }

  .form-block { padding: var(--s-24); }
  .team { grid-template-columns: 1fr; gap: var(--s-48); }
  .criteria li { grid-template-columns: 36px 1fr; }
  .steps > li { grid-template-columns: 44px 1fr; gap: var(--s-16); }
  .steps > li::before { font-size: 26px; }
  .steps__detail { grid-template-columns: 1fr; gap: var(--s-16); }
  .compare { gap: var(--s-32); }
  .compare__col ul { display: block; }
  .compare__col li { display: block; }
  .statement { font-size: 19px; padding: var(--s-24); }
  .site-footer__inner { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; animation: none !important; }
  .js .reveal { opacity: 1; transform: none; }
}

/* ---------- Ratios de photo ---------- */
.ar-45 { aspect-ratio: 4 / 5; }
.hero__photo .ar-45 { object-position: 50% 8%; }

.pour-qui h2 { max-width: 26ch; }
.pour-qui .triptych { max-width: 860px; }

.band .grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 720px) { .band .grid--2 { grid-template-columns: 1fr; } }

/* ---------- Section « groupe » : aurore en fond fixe ----------
   L'image est fixe dans la fenêtre, mais découpée aux limites de la section
   (clip-path) : elle reste stable pendant que le texte défile, puis disparaît
   avec la section. Fonctionne aussi sur iPhone, contrairement à background-attachment. */
.band--aurore { position: relative; isolation: isolate; }
.band--aurore > .container { position: relative; z-index: 1; }

.band__bg { position: absolute; inset: 0; z-index: -1; clip-path: inset(0); background: var(--marine); }
.band__bg img { position: fixed; top: 0; left: 0; width: 100%; height: 100vh; object-fit: cover; object-position: 50% 15%; }
.band__bg::after { content: ""; position: absolute; inset: 0; background: rgba(58, 79, 105, .70); } /* aplat marine, sans dégradé */

/* Section équipe passée en bleu */
.band .person__role { color: var(--sauge-clair); }
.band .person__photo { background: var(--marine-profond); }
