/**
 * Structures de page partagées.
 */
.ey-main { min-height: 60vh; }
.ey-wrap {
  width: min(var(--ey-wrap), calc(100% - 64px));
  margin-inline: auto;
}
.ey-prose { max-width: var(--ey-prose); }
.ey-section { position: relative; padding: 96px 0; }
.ey-section--paper { background: var(--ey-paper-25); }
.ey-section--dark { background: var(--ey-confidence); color: rgba(255,255,255,.78); }
.ey-section--chapter { position: relative; }
.ey-section--chapter::before {
  content: "";
  position: absolute;
  top: 0;
  left: max(32px, calc((100vw - var(--ey-wrap)) / 2));
  width: 88px;
  height: 4px;
  background: var(--ey-elan);
}

.ey-section-heading { max-width: 760px; margin-bottom: 48px; }
.ey-section-heading--wide { max-width: 900px; }
.ey-section-heading h2 { font-size: clamp(2.2rem, 4vw, 3.65rem); }
.ey-section-heading > p:not(.ey-overline) { max-width: 680px; margin-top: 18px; color: var(--ey-paper-500); font-size: 1rem; }
.ey-section-heading--light h2 { color: var(--ey-white); }
.ey-section-heading--light > p:not(.ey-overline) { color: rgba(255,255,255,.68); }

.ey-overline {
  margin-bottom: 14px;
  color: var(--ey-potential);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.ey-section--dark .ey-overline { color: var(--ey-curiosity); }

.ey-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 22px; }

/* Révélation au scroll : JS ajoute .is-visible. Sans JS, le contenu reste visible. */
.js .ey-reveal { opacity: 0; transform: translateY(14px); transition: opacity var(--ey-duration) var(--ey-ease), transform var(--ey-duration) var(--ey-ease); }
.js .ey-reveal.is-visible { opacity: 1; transform: none; }
