
:root { 
  --h3-bg: var(--ep-black);

  /* Fonds clairs : hérités du socle layout.css */
  --h3-paper: var(--ep-paper);
  --h3-paper-soft: var(--ep-paper-soft);

  /* Textes : hérités du socle layout.css */
  --h3-ink: var(--ep-ink);
  --h3-ink-soft: var(--ep-ink-soft);
  --h3-ink-muted: var(--ep-ink-muted);

  /* Textes sur fonds sombres : hérités du socle layout.css */
  --h3-text: var(--ep-dark-text);
  --h3-text-soft: var(--ep-dark-text-soft);
  --h3-text-muted: var(--ep-dark-text-muted);
  --h3-text-faint: var(--ep-dark-text-muted);

  /* Filets : hérités du socle layout.css */
  --h3-line-light: var(--ep-line);
  --h3-line-dark: var(--ep-dark-line);

  /* Accent : hérité du socle layout.css */
  --h3-accent-soft: var(--ep-accent-soft);
  --h3-accent: var(--ep-accent);
  --h3-accent-deep: var(--ep-accent-deep);
  --h3-accent-line: var(--ep-line-strong);

  --h3-container: 1120px;
  --h3-shadow-dark: none;
  --h3-shadow-light: none;
}
/* HEADER / FOOTER */

.site-header {
  background: rgba(17,17,17,.97) !important;
  border-bottom: 1px solid rgba(255,255,255,.09) !important;
}

.site-brand__wordmark {
  font-size: 2.05rem !important;
}

.desktop-editorial-nav__link,
.site-header__cta {
  font-size: 11.5px !important;
  font-weight: 600 !important;
}

.footer {
  padding-top: 72px !important;
}

.footer p,
.footer li,
.footer-col a,
.footer-col .link-button {
  font-size: 14px !important;
  line-height: 1.7 !important;
}

/* BASE */

.home-page main {
  font-family: var(--font-body);
  background: var(--h3-paper);
}

.home-container {
  width: min(calc(100% - 40px), var(--h3-container));
  margin: 0 auto;
}

.home-section {
  position: relative;
  padding: clamp(56px, 8vw, 96px) 0;
  overflow: hidden;
}

.home-dark {
  background: var(--ep-black);
  color: var(--h3-text);
}

.home-light {
  background: var(--h3-paper);
  color: var(--h3-ink);
}

.home-light:nth-of-type(even) {
  background: var(--h3-paper);
}

.home-kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
  font-family: var(--font-mono);
  font-size: .68rem;
  font-weight: 400;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--h3-accent-soft);
}

.home-kicker::before {
  content: "";
  width: 20px;
  height: 1px;
  background: currentColor;
  opacity: .75;
}

.home-head {
  max-width: 920px;
  margin: 0 auto 38px;
  text-align: center;
  position: relative;
  z-index: 2;
}

.home-head h2,
.home-credibility h2,
.home-dispositif h2 {
  font-family: var(--font-display);
  font-size: clamp(1.55rem, 2.8vw, 2.35rem);
  line-height: 1.17;
  letter-spacing: -.01em;
  font-weight: 600;
  margin-bottom: 14px;
}

.home-dark .home-head h2,
.home-credibility h2 {
  color: var(--h3-text);
}

.home-light .home-head h2,
.home-dispositif h2 {
  color: var(--h3-ink);
}

.home-head p {
  max-width: 820px;
  margin: 0 auto;
  font-size: 1rem;
  line-height: 1.72;
}

.home-dark .home-head p {
  color: var(--h3-text-soft);
}

.home-light .home-head p {
  color: var(--h3-ink-soft);
}

.home-note {
  max-width: 760px;
  font-family: var(--font-mono);
  font-size: .68rem !important;
  line-height: 1.55;
  letter-spacing: .01em;
  color: var(--h3-text-muted);
  opacity: 1;
}

.home-subnote {
  max-width: 820px;
  margin: 24px auto 0;
  text-align: center;
  font-size: .8rem;
  line-height: 1.64;
  color: var(--h3-ink-muted);
}

.home-subnote.dark {
  color: var(--h3-text-muted);
}

/* LIENS GÉNÉRIQUES */

.home-actions,
.home-side-links,
.home-cycle-body div {
  display: flex;
  gap: 12px 16px;
  flex-wrap: wrap;
}

.home-actions a,
.home-side-links a,
.home-cycle-body a,
.home-position-grid a,
.home-center-link a,
.home-access-grid a,
.home-hero-contact-card a,
.home-hero-sollicite a {
  position: relative;
  font-family: var(--font-body);
  font-size: .88rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.home-actions a::after,
.home-side-links a::after,
.home-cycle-body a::after,
.home-position-grid a::after,
.home-center-link a::after,
.home-access-grid a::after,
.home-hero-contact-card a::after,
.home-hero-sollicite a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -3px;
  height: 1px;
  background: currentColor;
  opacity: .45;
}

/* HERO */

.home-hero {
  position: relative;
  min-height: 94vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(17,17,17,.94) 0%, rgba(17,17,17,.80) 48%, rgba(17,17,17,.62) 100%),
    url("../../images/projo-lumiere.jpg") center/cover no-repeat;
  color: var(--h3-text);
}

.home-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.04), rgba(0,0,0,.22));
  pointer-events: none;
}

.home-hero-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(320px, .96fr);
  gap: 48px;
  align-items: start;
  padding: 82px 0 70px;
}

.home-hero-copy {
  max-width: 760px;
  padding-top: 12px;
}

.home-hero h1 {
  font-family: var(--font-display);
  font-size: clamp(2rem, 3.6vw, 3.1rem);
  line-height: 1.11;
  letter-spacing: -.015em;
  font-weight: 600;
  color: var(--h3-text);
  margin: 0 0 18px;
  max-width: 13.6ch;
}

.home-hero-title-nowrap {
  white-space: nowrap;
}

.home-hero-lead {
  max-width: 760px;
  margin-bottom: 14px;
}

.home-hero-lead strong {
  display: block;
  margin-bottom: 10px;
  font-size: clamp(1rem, 1.18vw, 1.05rem);
  line-height: 1.72;
  color: var(--h3-text);
  font-weight: 500;
}

.home-hero-text {
  font-size: .93rem;
  line-height: 1.65;
  color: var(--h3-text-soft);
  max-width: 690px;
}

.home-hero-small {
  max-width: 720px;
  font-family: var(--font-mono);
  font-size: .68rem;
  line-height: 1.55;
  color: var(--h3-text-muted);
}

/* HERO RIGHT */

.home-hero-side {
  justify-self: end;
  align-self: start;
  width: 100%;
  max-width: 430px;
}

.home-hero .home-film {
  --film-window-height: 420px;

  height: var(--film-window-height);
  max-width: 430px;
  margin-left: auto;
  margin-bottom: 18px;
}
.home-hero-card {
  margin-top: 18px;
  padding: 24px 26px;
  border-radius: 0;
  border: 1px solid var(--h3-line-dark);
  background: rgba(255,255,255,.03);
  backdrop-filter: blur(10px);
}

.home-hero-card h2 {
  margin: 0 0 10px;
  font-family: var(--font-display);
  font-size: 1.1rem;
  line-height: 1.3;
  color: var(--h3-text);
}

.home-hero-card p {
  margin: 0 0 18px;
  font-size: .9rem;
  line-height: 1.65;
  color: var(--h3-text-soft);
}

.home-actions--card {
  display: flex;
  justify-content: flex-end;
}

.home-actions--card a {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 20px;
  border-radius: 0 !important;
  background: var(--h3-accent) !important;
  border: 1px solid var(--h3-accent) !important;
  color: var(--ep-white) !important;
  box-shadow: none;
  font-family: var(--font-body);
  font-size: .88rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.home-actions--card a::after {
  display: none !important;
}

.home-hero-small--side {
  margin-top: 14px;
  font-family: var(--font-mono);
  font-size: .68rem;
  line-height: 1.55;
  color: var(--h3-text-muted);
}

/* SIDE PANEL */

.home-side-panel {
  border-radius: 0;
  border: 1px solid var(--h3-line-dark);
  background: rgba(255,255,255,.03);
  backdrop-filter: blur(12px);
  box-shadow: var(--h3-shadow-dark);
  overflow: hidden;
}

.home-side-title {
  padding: 22px 22px 18px;
  border-bottom: 1px solid var(--h3-line-dark);
  font-family: var(--font-display);
  font-size: 1.1rem;
  line-height: 1.3;
  color: var(--h3-text);
  font-weight: 600;
}

.home-side-group {
  padding: 20px 22px;
  border-bottom: 1px solid var(--h3-line-dark);
}

.home-side-group:last-child {
  border-bottom: 0;
}

.home-side-group h3 {
  font-family: var(--font-display);
  font-size: 1.05rem;
  line-height: 1.3;
  letter-spacing: -.01em;
  font-weight: 600;
  color: var(--h3-text);
  margin-bottom: 8px;
}

.home-side-group p {
  font-size: .9rem;
  line-height: 1.65;
  color: var(--h3-text-soft);
  margin-bottom: 12px;
}

.home-side-links a {
  color: var(--h3-accent-soft);
}

/* CREDIBILITY */

.home-credibility {
  overflow: hidden;
}

.home-credibility-grid {
  display: grid;
  grid-template-columns: minmax(0, .95fr) 340px;
  gap: 44px;
  align-items: center;
}

.home-credibility p {
  max-width: 820px;
  font-size: 1rem;
  line-height: 1.72;
  color: var(--h3-text-soft);
}

.home-credibility .home-note {
  font-size: .68rem !important;
  line-height: 1.55 !important;
  opacity: 1 !important;
}

/* FILM */

.home-film {
  --film-window-height: 520px;

  position: relative;
  height: var(--film-window-height);
  overflow: hidden;
  border-radius: 0;
  border: 1px solid rgba(255,255,255,.10);
  background-color: var(--ep-black-soft);
  background-image:
    linear-gradient(rgba(255,255,255,.07), rgba(255,255,255,.07)),
    linear-gradient(rgba(255,255,255,.07), rgba(255,255,255,.07)),
    repeating-linear-gradient(
      to bottom,
      var(--ep-dark-line) 0 1px,
      transparent 1px 34px
    ),
    repeating-linear-gradient(
      to bottom,
      var(--ep-dark-line) 0 1px,
      transparent 1px 34px
    ),
    linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.01));
  background-size:
    1px calc(100% - 24px),
    1px calc(100% - 24px),
    5px calc(100% - 36px),
    5px calc(100% - 36px),
    100% 100%;
  background-position:
    18px 12px,
    calc(100% - 18px) 12px,
    9px 18px,
    calc(100% - 14px) 18px,
    0 0;
  background-repeat: no-repeat;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.025),
    inset 0 0 28px rgba(0,0,0,.78);
}

.home-film::before,
.home-film::after {
  content: "";
  position: absolute;
  left: 26px;
  right: 26px;
  height: 64px;
  z-index: 3;
  pointer-events: none;
}

.home-film::before {
  top: 0;
  background: linear-gradient(180deg, rgba(8,8,8,.96), rgba(8,8,8,0));
}

.home-film::after {
  bottom: 0;
  background: linear-gradient(0deg, rgba(8,8,8,.96), rgba(8,8,8,0));
}

.home-film-track {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 14px 28px;
  animation: homeScrollFilm 36s ease-in-out infinite;
}

.home-film-track > div {
  position: relative;
  border-radius: 0;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.08);
  background: var(--ep-black);
  aspect-ratio: 16 / 9;
  box-shadow:
    0 0 0 1px rgba(0,0,0,.62),
    inset 0 0 18px rgba(0,0,0,.48);
}

.home-film-track > div::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(0,0,0,.10), rgba(0,0,0,.36)),
    linear-gradient(90deg, rgba(0,0,0,.24), transparent 20%, transparent 80%, rgba(0,0,0,.24));
  pointer-events: none;
}

.home-film-track img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .74;
  filter: grayscale(100%) contrast(110%) brightness(.72);
}

@keyframes homeScrollFilm {
  0%,
  16% {
    transform: translateY(0);
  }

  42%,
  58% {
    transform: translateY(calc((-100% + var(--film-window-height)) / 2));
  }

  84%,
  100% {
    transform: translateY(calc(-100% + var(--film-window-height)));
  }
}
/* SPLIT */

.home-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  align-items: stretch;
  background: var(--h3-line-light);
}

.home-split-title {
  border-radius: 0;
  color: var(--h3-text);
  padding: 44px;
  display: flex;
  align-items: center;
  box-shadow: var(--h3-shadow-dark);
  min-height: 430px;
  position: relative;
  overflow: hidden;
}

.home-fissures {
  background:
    linear-gradient(90deg, rgba(17,17,17,.88) 0%, rgba(17,17,17,.76) 48%, rgba(17,17,17,.62) 100%),
    url("../../images/bascule-sol-fissures.jpg") center/cover no-repeat;
}

.home-split-title h2 {
  position: relative;
  z-index: 2;
  font-family: var(--font-display);
  font-size: clamp(1.55rem, 2.8vw, 2.35rem);
  line-height: 1.17;
  letter-spacing: -.01em;
  font-weight: 600;
  color: var(--h3-text) !important;
  text-shadow: none;
  max-width: 10ch;
  margin: 0;
}

.home-split-copy {
  border-radius: 0;
  background: var(--ep-white);
  border: 0;
  box-shadow: var(--h3-shadow-light);
  padding: 38px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.home-split-copy > div {
  padding: 0 0 20px;
  margin: 0 0 20px;
  border-bottom: 1px solid var(--h3-line-light);
}

.home-split-copy > div:last-child {
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: 0;
}

.home-split-copy h3 {
  font-family: var(--font-display);
  font-size: 1.1rem;
  line-height: 1.3;
  letter-spacing: -.01em;
  font-weight: 600;
  color: var(--h3-ink);
  margin-bottom: 8px;
}

.home-split-copy p {
  margin: 0;
  font-size: .93rem;
  line-height: 1.65;
  color: var(--h3-ink-soft);
}

/* DECISION */

.home-decision-grid {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  gap: 2px;
  align-items: stretch;
  background: rgba(255,255,255,.06);
}

.home-decision-visual {
  min-height: 560px;
  border-radius: 0;
  overflow: hidden;
  position: relative;
  box-shadow: var(--h3-shadow-dark);
  background:
    linear-gradient(90deg, rgba(17,17,17,.82), rgba(17,17,17,.54)),
    url("../../images/noeud-routier.jpg.jpg") center/cover no-repeat;
  filter: grayscale(100%) contrast(112%) brightness(.74);
}

.home-decision-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.36));
  pointer-events: none;
}

.home-decision-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 38px;
  background: var(--ep-black);
}

.home-decision-copy h2 {
  font-family: var(--font-display);
  font-size: clamp(1.55rem, 2.8vw, 2.35rem);
  line-height: 1.17;
  letter-spacing: -.01em;
  font-weight: 600;
  color: var(--h3-text);
  margin-bottom: 22px;
}

.home-decision-copy > div {
  padding: 0 0 18px;
  margin: 0 0 18px;
  border-bottom: 1px solid var(--h3-line-dark);
}

.home-decision-copy > div:last-child {
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: 0;
}

.home-decision-copy h3 {
  font-family: var(--font-display);
  font-size: 1.1rem;
  line-height: 1.3;
  font-weight: 600;
  color: var(--h3-text);
  margin-bottom: 8px;
}

.home-decision-copy p {
  margin: 0;
  font-size: .93rem;
  line-height: 1.65;
  color: var(--h3-text-soft);
}

/* CYCLES */

.home-cycles {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2px;
  background: var(--h3-line-light);
}

.home-cycles article {
  border-radius: 0;
  background: var(--ep-white);
  border: 0;
  box-shadow: var(--h3-shadow-light);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.home-cycle-img {
  height: 250px;
  position: relative;
  background-size: cover;
  background-position: center;
  filter: grayscale(78%) contrast(112%) brightness(.74);
}

.home-cycle-logement {
  background-image: url("../../images/cycle-logement-chantier.jpg");
}

.home-cycle-industrie {
  background-image: url("../../images/cycle-industrie-hightech.jpg");
  filter: grayscale(88%) contrast(116%) brightness(.70);
}

.home-cycle-body {
  padding: 26px 24px 24px;
}

.home-cycle-body span {
  display: block;
  font-family: var(--font-mono);
  font-size: .62rem;
  font-weight: 400;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--h3-accent-deep);
  margin-bottom: 10px;
}

.home-cycle-body h3 {
  font-family: var(--font-display);
  font-size: 1.1rem;
  line-height: 1.3;
  letter-spacing: -.01em;
  font-weight: 600;
  color: var(--h3-ink);
  margin-bottom: 10px;
}

.home-cycle-body p {
  margin: 0 0 18px;
  font-size: .93rem;
  line-height: 1.65;
  color: var(--h3-ink-soft);
}

.home-cycle-body a {
  color: var(--h3-accent-deep);
}

/* POSITIONS */

.home-positions {
  background:
    linear-gradient(180deg, rgba(17,17,17,.94), rgba(17,17,17,.96)),
    url("../../images/positions-echequier.jpg") center/cover no-repeat;
}

.home-positions .home-head p {
  background: rgba(255,255,255,.03);
  display: inline-block;
  padding: 14px 24px;
  border-radius: 0;
  backdrop-filter: blur(5px);
  border: 1px solid var(--h3-line-dark);
}

.home-position-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2px;
  background: rgba(255,255,255,.06);
}

.home-position-grid article {
  border-radius: 0;
  border: 0;
  background: rgba(255,255,255,.03);
  backdrop-filter: blur(8px);
  box-shadow: 0 22px 60px rgba(0,0,0,.18);
  padding: 28px 24px 24px;
  position: relative;
  overflow: hidden;
}

.home-position-grid article::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 3px;
  height: 100%;
  background: var(--h3-accent);
}

.home-position-grid h3 {
  font-family: var(--font-display);
  font-size: 1.1rem;
  line-height: 1.3;
  letter-spacing: -.01em;
  font-weight: 600;
  color: var(--h3-text);
  margin-bottom: 10px;
}

.home-position-grid p {
  margin: 0 0 14px;
  font-size: .93rem;
  line-height: 1.65;
  color: var(--h3-text-soft);
}

.home-position-grid a {
  color: var(--h3-accent-soft);
}

/* DISPOSITIF */

.home-dispositif {
  background: var(--h3-paper-soft);
}

.home-dispositif::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 62%;
  height: 100%;
  background: url("../../images/dispositif-miroir-brise.jpg") left center / cover no-repeat;
  opacity: .16;
  filter: grayscale(100%) contrast(112%) brightness(.92);
}

.home-dispositif::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 72%;
  height: 100%;
  background: linear-gradient(90deg, transparent 0%, transparent 28%, var(--ep-paper-soft) 72%, var(--ep-paper-soft) 100%);
}

.home-dispositif .home-container {
  position: relative;
  z-index: 2;
}

.home-dispositif-grid {
  display: grid;
  grid-template-columns: minmax(280px, .92fr) minmax(0, 1.08fr);
  gap: 30px;
  align-items: start;
}

.home-dispositif h2 {
  max-width: 560px;
}

.home-dispositif p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.72;
  color: var(--h3-ink-soft);
  max-width: 540px;
}

.home-dispositif-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2px;
  background: var(--h3-line-light);
}

.home-dispositif-cards article {
  border-radius: 0;
  background: var(--ep-white) !important;
  backdrop-filter: none;
  border: 0 !important;
  box-shadow: var(--h3-shadow-light);
  padding: 26px 22px 22px;
  position: relative;
}

.home-dispositif-cards article::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 3px;
  height: 100%;
  background: var(--h3-accent);
}

.home-dispositif-cards h3 {
  font-family: var(--font-display);
  font-size: 1.1rem;
  line-height: 1.3;
  letter-spacing: -.01em;
  font-weight: 600;
  color: var(--h3-ink);
  margin-bottom: 10px;
}

.home-dispositif-cards p {
  font-size: .93rem;
  line-height: 1.65;
}

.home-center-link {
  position: relative;
  z-index: 2;
  text-align: center;
  margin-top: 26px;
}

.home-center-link a {
  color: var(--h3-accent-deep);
}

/* IMPACT */

.home-impact {
  background:
    linear-gradient(180deg, rgba(17,17,17,.86), rgba(17,17,17,.94)),
    url("../../images/impact-onde-eau.jpg") center 18% / cover no-repeat;
}

.home-values {
  max-width: 980px;
  margin: 0 auto;
  display: grid;
  gap: 2px;
  background: rgba(255,255,255,.06);
}

.home-values article {
  border-radius: 0;
  background: rgba(255,255,255,.03);
  border: 0;
  backdrop-filter: blur(8px);
  box-shadow: none;
  padding: 28px 26px 24px;
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  position: relative;
}

.home-values article::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 3px;
  height: 100%;
  background: var(--h3-accent);
}

.home-values span {
  font-family: var(--font-mono);
  font-size: .62rem;
  font-weight: 400;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--h3-accent-soft);
  padding-top: 6px;
}

.home-values h3 {
  font-family: var(--font-display);
  font-size: 1.1rem;
  line-height: 1.3;
  letter-spacing: -.01em;
  font-weight: 600;
  color: var(--h3-text);
  margin-bottom: 8px;
}

.home-values p {
  margin: 0;
  font-size: .93rem;
  line-height: 1.65;
  color: var(--h3-text-soft);
}

/* ACCESS */

.home-access {
  background: var(--h3-paper);
}

.home-access::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../../images/acces-escalier-graphique.jpg") center/cover no-repeat;
  opacity: .08;
  filter: grayscale(100%) contrast(112%) brightness(.95);
}

.home-access .home-container {
  position: relative;
  z-index: 2;
}

.home-access-grid {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 2px;
  background: var(--h3-line-light);
}

.home-access-grid article {
  border-radius: 0;
  padding: 28px;
  box-shadow: var(--h3-shadow-light);
  border: 0;
  background: var(--ep-white);
  backdrop-filter: blur(10px);
}

.home-access-grid article:first-child {
  background: var(--ep-white);
}

.home-access-grid h3 {
  font-family: var(--font-display);
  font-size: 1.1rem;
  line-height: 1.3;
  letter-spacing: -.01em;
  font-weight: 600;
  color: var(--h3-ink);
  margin-bottom: 10px;
}

.home-access-grid p {
  margin: 0 0 18px;
  font-size: .93rem;
  line-height: 1.65;
  color: var(--h3-ink-soft);
}

.home-access-grid article:nth-child(2) a {
  display: inline-flex !important;
  min-height: auto;
  padding: 0 !important;
  border-radius: 0;
  background: transparent !important;
  border: none !important;
  color: var(--h3-accent-deep) !important;
  box-shadow: none;
}

.home-access-grid article:nth-child(2) a::after {
  display: block !important;
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -3px;
  height: 1px;
  background: var(--h3-accent-line);
  opacity: 1;
}

.home-note-light {
  margin-top: 16px !important;
  font-family: var(--font-mono);
  font-size: .68rem !important;
  color: var(--h3-ink-muted) !important;
}

/* RESPONSIVE */

@media (max-width: 1100px) {
  .home-hero-grid,
  .home-credibility-grid,
  .home-decision-grid,
  .home-dispositif-grid,
  .home-access-grid {
    grid-template-columns: 1fr;
  }

  .home-hero-copy {
    padding-top: 0;
  }

  .home-hero-side {
    justify-self: start;
    max-width: none;
  }

  .home-hero .home-film {
    height: 420px;
    max-width: none;
    margin-left: 0;
  }

  .home-cycles,
  .home-position-grid {
    grid-template-columns: 1fr;
  }

  .home-dispositif-cards {
    grid-template-columns: repeat(2, 1fr);
  }

  .home-film {
    height: 420px;
  }
}

@media (max-width: 860px) {
  .home-split {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .home-container {
    width: min(calc(100% - 24px), var(--h3-container));
  }

  .home-section {
    padding: 72px 0;
  }

  .home-hero {
    min-height: auto;
  }

  .home-hero-grid {
    padding: 94px 0 56px;
    gap: 30px;
  }

  .home-hero h1 {
    font-size: clamp(2.4rem, 11vw, 4rem);
    max-width: 100%;
  }

  .home-hero h1 .nowrap,
  .home-hero h1 .keep-line {
    white-space: normal;
  }

  .home-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .home-hero .home-actions a:first-child,
  .home-access-grid article:first-child a,
  .home-hero-contact-card a,
  .home-hero-sollicite a {
    width: 100%;
  }

  .home-hero-contact-card .home-actions,
  .home-hero-sollicite .home-actions {
    justify-content: stretch;
  }

  .home-dispositif-cards {
    grid-template-columns: 1fr;
  }

  .home-values article {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .home-values span {
    padding-top: 0;
  }
}
.home-hero-card {
  margin-top: 18px;
  padding: 24px 26px;
  border-radius: 0;
  border: 1px solid var(--h3-line-dark);
  background: rgba(255,255,255,.03);
  backdrop-filter: blur(10px);
}

.home-hero-card h3 {
  margin: 0 0 10px;
  font-family: var(--font-display);
  font-size: 1.1rem;
  line-height: 1.3;
  color: var(--h3-text);
}

.home-hero-card p {
  margin: 0 0 18px;
  font-size: .9rem;
  line-height: 1.65;
  color: var(--h3-text-soft);
}

.home-hero-card a {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 44px;
  padding: 0 20px;
  border-radius: 0 !important;
  background: var(--h3-accent);
  color: var(--ep-white);
  font-family: var(--font-body);
  font-size: .88rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.home-hero-card a::after {
  display: none !important;
}

.home-hero-small--right {
  margin-top: 14px;
  font-family: var(--font-mono);
  font-size: .68rem;
  line-height: 1.55;
  color: var(--h3-text-muted);
}
/* Ajustement hero home - remonter la carte de sollicitation */

.home-hero-grid {
  align-items: center;
}

.home-hero .home-film {
  height: clamp(260px, 28vw, 340px) !important;
  margin-bottom: 12px !important;
}

.home-hero-card {
  margin-top: 10px !important;
  padding: 22px 24px !important;
}

.home-hero-card p {
  margin-bottom: 16px !important;
}

.home-hero-small--right {
  margin-top: 12px !important;
  max-width: 430px;
}

/* =========================================================
   CORRECTIF COULEURS - FILTRE PHOTO N&B
   Périmètre : uniquement rendu colorimétrique des images
========================================================= */

:root {
  --h3-photo-filter-strong: grayscale(100%) contrast(118%) brightness(.82);
}

.home-film-track img,
.home-decision-visual,
.home-cycle-img,
.home-dispositif::before,
.home-access::before {
  filter: var(--h3-photo-filter-strong) !important;
}

.home-fissures {
  background: var(--ep-black) !important;
}

.home-fissures::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../../images/bascule-sol-fissures.jpg") center/cover no-repeat;
  filter: var(--h3-photo-filter-strong);
  transform: scale(1.01);
  pointer-events: none;
  z-index: 0;
}

.home-fissures::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(17,17,17,.88) 0%, rgba(17,17,17,.76) 48%, rgba(17,17,17,.62) 100%);
  pointer-events: none;
  z-index: 1;
}


/* =========================================================
   AJUSTEMENTS TYPOGRAPHIQUES - HOME PREMIUM DESKTOP
   Périmètre : typographie, rythme de lecture, espacements,
   retours à la ligne éditoriaux et lisibilité des photos N&B.
   Aucun changement de structure HTML.
========================================================= */

:root {
  --h3-display-tight: -0.025em;
  --h3-display-soft: -0.015em;
  --h3-title-leading: 1.08;
  --h3-section-leading: 1.13;
  --h3-card-leading: 1.24;
  --h3-body-leading: 1.76;
  --h3-body-leading-dark: 1.78;
  --h3-reading-narrow: 58ch;
  --h3-reading: 64ch;
  --h3-reading-wide: 70ch;
}

/* Socle de lecture */
.home-page main {
  font-feature-settings: "kern" 1;
  text-rendering: optimizeLegibility;
}

.home-section {
  padding-top: clamp(64px, 8.2vw, 104px);
  padding-bottom: clamp(64px, 8.2vw, 104px);
}

.home-head {
  max-width: 880px;
  margin-bottom: clamp(34px, 4.5vw, 52px);
}

.home-head h2,
.home-credibility h2,
.home-dispositif h2 {
  max-width: 24ch;
  margin-left: auto;
  margin-right: auto;
  font-size: clamp(1.75rem, 3vw, 2.55rem);
  line-height: var(--h3-section-leading);
  letter-spacing: var(--h3-display-tight);
  text-wrap: balance;
}

.home-head p {
  max-width: var(--h3-reading-wide);
  font-size: .98rem;
  line-height: var(--h3-body-leading);
  text-wrap: pretty;
}

.home-dark .home-head p {
  color: rgba(255,255,255,.80);
}

.home-light .home-head p {
  color: var(--h3-ink-soft);
}

.home-subnote {
  max-width: 72ch;
  margin-top: 30px;
  font-size: .76rem;
  line-height: 1.68;
}

/* Liens : plus d'air, même logique visuelle */
.home-actions a,
.home-side-links a,
.home-cycle-body a,
.home-position-grid a,
.home-center-link a,
.home-access-grid a,
.home-hero-contact-card a,
.home-hero-sollicite a,
.home-hero-card a {
  font-size: .8rem;
  line-height: 1.35;
  letter-spacing: .055em;
}

.home-cycle-body div {
  gap: 16px 22px;
}

/* HERO */
.home-hero {
  min-height: 92vh;
}

.home-hero-grid {
  grid-template-columns: minmax(0, 1.02fr) minmax(320px, .88fr);
  gap: clamp(36px, 4.6vw, 56px);
  padding-top: clamp(76px, 8vw, 96px);
  padding-bottom: clamp(64px, 7vw, 82px);
}

.home-hero-copy {
  max-width: 650px;
}

.home-kicker {
  margin-bottom: 18px;
  font-size: .64rem;
  line-height: 1.35;
  letter-spacing: .15em;
}

.home-hero h1 {
  max-width: 11.4ch;
  margin-bottom: 24px;
  font-size: clamp(2.7rem, 4.15vw, 4.15rem);
  line-height: 1.015;
  letter-spacing: -.035em;
  text-wrap: balance;
}

.home-hero-lead {
  max-width: 62ch;
  margin-bottom: 16px;
}

.home-hero-lead strong {
  margin-bottom: 12px;
  font-size: clamp(.98rem, 1.05vw, 1.05rem);
  line-height: 1.65;
  font-weight: 600;
}

.home-hero-text {
  max-width: 61ch;
  font-size: .95rem;
  line-height: 1.78;
  color: rgba(255,255,255,.80);
}

.home-hero-side {
  max-width: 410px;
}

.home-hero-card {
  padding: 25px 26px 24px !important;
}

.home-hero-card h3,
.home-hero-card h2 {
  max-width: 22ch;
  margin-bottom: 12px;
  font-size: 1.08rem;
  line-height: 1.24;
  letter-spacing: -.012em;
  text-wrap: balance;
}

.home-hero-card p {
  margin-bottom: 20px !important;
  font-size: .9rem;
  line-height: 1.72;
}

.home-hero-small,
.home-hero-small--right,
.home-note {
  font-size: .64rem !important;
  line-height: 1.62;
}

/* SECTION EXPERTISE */
.home-split-title {
  padding: clamp(42px, 4.5vw, 56px);
}

.home-split-title h2 {
  max-width: 11ch;
  font-size: clamp(1.85rem, 3.15vw, 2.75rem);
  line-height: 1.08;
  letter-spacing: -.028em;
  text-wrap: balance;
}

.home-split-copy {
  padding: clamp(40px, 4.6vw, 54px);
}

.home-split-copy > div {
  padding-bottom: 24px;
  margin-bottom: 24px;
}

.home-split-copy h3 {
  max-width: 34ch;
  margin-bottom: 10px;
  font-size: 1.06rem;
  line-height: 1.28;
  letter-spacing: -.012em;
  text-wrap: balance;
}

.home-split-copy p {
  max-width: 60ch;
  font-size: .95rem;
  line-height: 1.76;
}

/* SECTION DÉCISION */
.home-decision-grid {
  grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
}

.home-decision-copy {
  padding: clamp(42px, 4.8vw, 58px);
}

.home-decision-copy h2 {
  max-width: 15ch;
  margin-bottom: 28px;
  font-size: clamp(1.95rem, 3.25vw, 2.85rem);
  line-height: 1.08;
  letter-spacing: -.03em;
  text-wrap: balance;
}

.home-decision-copy > div {
  padding-bottom: 24px;
  margin-bottom: 24px;
}

.home-decision-copy h3 {
  max-width: 34ch;
  margin-bottom: 10px;
  font-size: 1.06rem;
  line-height: 1.28;
  letter-spacing: -.012em;
  text-wrap: balance;
}

.home-decision-copy p {
  max-width: 62ch;
  font-size: .95rem;
  line-height: var(--h3-body-leading-dark);
  color: rgba(255,255,255,.80);
}

.home-decision-visual {
  min-height: 540px;
}

/* SECTION CYCLES */
#cycles-home .home-head h2 {
  max-width: 23ch;
}

#cycles-home .home-head p {
  max-width: 66ch;
}

.home-cycle-body {
  padding: 30px 28px 28px;
}

.home-cycle-body span {
  margin-bottom: 12px;
  font-size: .59rem;
  line-height: 1.3;
  letter-spacing: .14em;
}

.home-cycle-body h3 {
  max-width: 32ch;
  margin-bottom: 12px;
  font-size: 1.12rem;
  line-height: 1.25;
  letter-spacing: -.015em;
  text-wrap: balance;
}

.home-cycle-body p {
  max-width: 56ch;
  margin-bottom: 22px;
  font-size: .94rem;
  line-height: 1.74;
}

/* SECTION POSITIONS */
.home-positions .home-head h2 {
  max-width: 25ch;
}

.home-positions .home-head p {
  max-width: 70ch;
  padding: 18px 26px;
  line-height: 1.78;
}

.home-position-grid article {
  padding: 34px 30px 30px;
}

.home-position-grid h3 {
  max-width: 34ch;
  margin-bottom: 12px;
  font-size: 1.12rem;
  line-height: 1.26;
  letter-spacing: -.014em;
  text-wrap: balance;
}

.home-position-grid p {
  max-width: 62ch;
  margin-bottom: 20px;
  font-size: .94rem;
  line-height: 1.76;
  color: rgba(255,255,255,.80);
}

/* SECTION DISPOSITIF */
.home-dispositif-grid {
  grid-template-columns: minmax(280px, .86fr) minmax(0, 1.14fr);
  gap: clamp(34px, 4.2vw, 50px);
  align-items: start;
}

.home-dispositif h2 {
  max-width: 15.5ch;
  margin-left: 0;
  margin-right: 0;
  margin-bottom: 20px;
  font-size: clamp(1.95rem, 3.05vw, 2.75rem);
  line-height: 1.08;
  letter-spacing: -.03em;
  text-wrap: balance;
}

.home-dispositif p {
  max-width: 55ch;
  font-size: .98rem;
  line-height: 1.78;
}

.home-dispositif-cards article {
  padding: 30px 26px 28px;
}

.home-dispositif-cards h3 {
  max-width: 26ch;
  margin-bottom: 12px;
  font-size: 1.07rem;
  line-height: 1.26;
  letter-spacing: -.012em;
  text-wrap: balance;
}

.home-dispositif-cards p {
  max-width: 48ch;
  font-size: .93rem;
  line-height: 1.74;
}

.home-center-link {
  margin-top: 34px;
}

/* SECTION IMPACT */
.home-impact .home-head h2 {
  max-width: 23ch;
}

.home-impact .home-head p {
  max-width: 66ch;
}

.home-values {
  max-width: 940px;
}

.home-values article {
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 22px;
  padding: 34px 32px 32px;
}

.home-values span {
  padding-top: 7px;
  font-size: .6rem;
  letter-spacing: .14em;
}

.home-values h3 {
  max-width: 44ch;
  margin-bottom: 10px;
  font-size: 1.12rem;
  line-height: 1.26;
  letter-spacing: -.014em;
  text-wrap: balance;
}

.home-values p {
  max-width: 76ch;
  font-size: .94rem;
  line-height: 1.76;
  color: rgba(255,255,255,.80);
}

/* SECTION ACCÈS */
.home-access::before {
  opacity: .06;
}

.home-access .home-head h2 {
  max-width: 18ch;
}

.home-access .home-head p {
  max-width: 68ch;
}

.home-access-grid article {
  padding: 34px 32px 32px;
}

.home-access-grid h3 {
  max-width: 30ch;
  margin-bottom: 12px;
  font-size: 1.1rem;
  line-height: 1.26;
  letter-spacing: -.012em;
  text-wrap: balance;
}

.home-access-grid p {
  max-width: 58ch;
  margin-bottom: 22px;
  font-size: .94rem;
  line-height: 1.76;
}

.home-note-light {
  margin-top: 20px !important;
  font-size: .64rem !important;
  line-height: 1.62 !important;
}

/* Photos : noir & blanc conservé, mais moins écrasé */
.home-film-track img,
.home-decision-visual,
.home-cycle-img,
.home-dispositif::before,
.home-access::before {
  filter: var(--h3-photo-filter-strong) !important;
}

.home-fissures::before {
  filter: var(--h3-photo-filter-strong) !important;
}

.home-film-track img {
  opacity: .82;
}

.home-decision-visual::after {
  background: linear-gradient(180deg, rgba(0,0,0,.04), rgba(0,0,0,.26));
}

/* Desktop : retours de ligne plus éditoriaux */
@media (min-width: 1101px) {
  #positions-home .home-head h2 {
    max-width: 24ch;
  }

  #dispositif-home .home-dispositif-grid > div:first-child {
    padding-top: 12px;
  }

  #acces-home .home-head h2,
  #valeur-home .home-head h2 {
    text-wrap: balance;
  }
}

/* Tablette / mobile : conserver la lisibilité sans forcer les colonnes */
@media (max-width: 1100px) {
  .home-head h2,
  .home-credibility h2,
  .home-dispositif h2,
  .home-hero h1,
  .home-split-title h2,
  .home-decision-copy h2 {
    max-width: 100%;
  }

  .home-dispositif h2 {
    max-width: 18ch;
  }

  .home-hero-grid {
    gap: 42px;
  }
}

@media (max-width: 760px) {
  .home-section {
    padding-top: 72px;
    padding-bottom: 72px;
  }

  .home-head {
    margin-bottom: 32px;
    text-align: left;
  }

  .home-head h2,
  .home-credibility h2,
  .home-dispositif h2 {
    margin-left: 0;
    margin-right: 0;
    font-size: clamp(1.65rem, 7vw, 2.25rem);
    line-height: 1.12;
  }

  .home-head p,
  .home-hero-text,
  .home-split-copy p,
  .home-decision-copy p,
  .home-cycle-body p,
  .home-position-grid p,
  .home-dispositif p,
  .home-dispositif-cards p,
  .home-values p,
  .home-access-grid p {
    font-size: .95rem;
    line-height: 1.74;
  }

  .home-hero h1 {
    font-size: clamp(2.45rem, 10.5vw, 3.35rem);
    line-height: 1.03;
    max-width: 11.5ch;
  }

  .home-hero-title-nowrap {
    white-space: normal;
  }

  .home-split-copy,
  .home-decision-copy,
  .home-cycle-body,
  .home-position-grid article,
  .home-dispositif-cards article,
  .home-values article,
  .home-access-grid article {
    padding: 28px 24px;
  }

  .home-values article {
    gap: 12px;
  }
}

/* =========================================================
   CORRECTIF PROPORTIONS TYPOGRAPHIQUES - HOME
   Objectif : hiérarchie nette entre titre, chapeau, sous-titre
   et paragraphe, selon une échelle éditoriale plus lisible.
   Périmètre : typographie, largeurs de lecture, rythme vertical.
========================================================= */

:root {
  --h3-ratio-caption: 0.64rem;
  --h3-ratio-body: 0.92rem;
  --h3-ratio-body-large: 0.98rem;
  --h3-ratio-lead: clamp(1.16rem, 1.35vw, 1.32rem);
  --h3-ratio-subtitle: clamp(1.22rem, 1.55vw, 1.42rem);
  --h3-ratio-card-title: clamp(1.08rem, 1.25vw, 1.18rem);
  --h3-ratio-section-title: clamp(2.05rem, 3.25vw, 3.05rem);
  --h3-ratio-display: clamp(3.1rem, 4.65vw, 4.55rem);
}

/* Règle générale : les paragraphes ne doivent jamais concurrencer les sous-titres */
.home-hero-text,
.home-split-copy p,
.home-decision-copy p,
.home-cycle-body p,
.home-position-grid p,
.home-dispositif p,
.home-dispositif-cards p,
.home-values p,
.home-access-grid p {
  font-size: var(--h3-ratio-body) !important;
  line-height: 1.78 !important;
  font-weight: 400 !important;
}

.home-dark .home-hero-text,
.home-dark .home-decision-copy p,
.home-dark .home-position-grid p,
.home-dark .home-values p {
  color: rgba(255,255,255,.76) !important;
}

/* HERO : chapeau éditorial nettement distinct du paragraphe */
.home-hero h1 {
  max-width: 11.8ch !important;
  font-size: var(--h3-ratio-display) !important;
  line-height: .98 !important;
  letter-spacing: -.04em !important;
  margin-bottom: 30px !important;
}

.home-hero-lead:not(.home-hero-text) {
  max-width: 38ch !important;
  margin-bottom: 26px !important;
  padding-bottom: 22px !important;
  position: relative !important;
}

.home-hero-lead:not(.home-hero-text)::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 52px;
  height: 1px;
  background: rgba(255,255,255,.42);
}

.home-hero-lead strong {
  font-family: var(--font-body) !important;
  font-size: var(--h3-ratio-lead) !important;
  line-height: 1.48 !important;
  font-weight: 600 !important;
  letter-spacing: -.01em !important;
  color: rgba(255,255,255,.96) !important;
}

.home-hero-text {
  max-width: 55ch !important;
  margin-bottom: 18px !important;
}

/* Sections : H2 plus statutaire que les H3, mais moins écrasant */
.home-head h2,
.home-credibility h2,
.home-dispositif h2,
.home-decision-copy h2,
.home-split-title h2 {
  line-height: 1.05 !important;
  letter-spacing: -.035em !important;
  text-wrap: balance;
}

.home-head h2 {
  font-size: var(--h3-ratio-section-title) !important;
}

.home-head p {
  max-width: 62ch !important;
  font-size: var(--h3-ratio-body-large) !important;
  line-height: 1.72 !important;
}

/* Là où l'expertise : contraste titre image / textes de droite */
.home-split-title h2 {
  max-width: 10.5ch !important;
  font-size: clamp(2.35rem, 3.8vw, 3.45rem) !important;
  line-height: 1.02 !important;
}

.home-split-copy h3 {
  max-width: 30ch !important;
  font-size: var(--h3-ratio-subtitle) !important;
  line-height: 1.22 !important;
  letter-spacing: -.02em !important;
  margin-bottom: 12px !important;
}

.home-split-copy p {
  max-width: 54ch !important;
}

.home-split-copy > div {
  padding-bottom: 28px !important;
  margin-bottom: 28px !important;
}

/* Quand la décision : hiérarchie H2 > intertitres > paragraphes */
.home-decision-copy h2 {
  max-width: 16ch !important;
  font-size: clamp(2.25rem, 3.65vw, 3.35rem) !important;
  line-height: 1.03 !important;
  margin-bottom: 34px !important;
}

.home-decision-copy h3 {
  max-width: 30ch !important;
  font-size: var(--h3-ratio-subtitle) !important;
  line-height: 1.22 !important;
  letter-spacing: -.02em !important;
  margin-bottom: 12px !important;
}

.home-decision-copy p {
  max-width: 54ch !important;
}

.home-decision-copy > div {
  padding-bottom: 30px !important;
  margin-bottom: 30px !important;
}

/* Cycles : titres de cartes clairement au-dessus des descriptions */
.home-cycle-body span,
.home-values span,
.home-kicker {
  font-size: var(--h3-ratio-caption) !important;
  letter-spacing: .16em !important;
}

.home-cycle-body h3,
.home-position-grid h3,
.home-dispositif-cards h3,
.home-access-grid h3,
.home-values h3,
.home-hero-card h3,
.home-hero-card h2 {
  font-size: var(--h3-ratio-card-title) !important;
  line-height: 1.24 !important;
  letter-spacing: -.018em !important;
  font-weight: 600 !important;
  margin-bottom: 13px !important;
  text-wrap: balance;
}

.home-cycle-body p,
.home-position-grid p,
.home-dispositif-cards p,
.home-access-grid p,
.home-values p,
.home-hero-card p {
  max-width: 56ch !important;
}

/* Positions : grand titre oui, mais intro et cartes mieux hiérarchisées */
.home-positions .home-head h2 {
  max-width: 24ch !important;
  font-size: clamp(2.15rem, 3.2vw, 2.95rem) !important;
  line-height: 1.08 !important;
}

.home-positions .home-head p {
  max-width: 58ch !important;
  font-size: .98rem !important;
  line-height: 1.76 !important;
  padding: 20px 28px !important;
}

.home-position-grid article {
  padding: 36px 34px 32px !important;
}

.home-position-grid h3 {
  font-size: clamp(1.15rem, 1.35vw, 1.25rem) !important;
}

.home-position-grid a,
.home-cycle-body a,
.home-center-link a,
.home-access-grid a,
.home-hero-card a {
  font-size: .78rem !important;
  letter-spacing: .075em !important;
  line-height: 1.35 !important;
}

/* Dispositif : grand titre moins brutal, mais proportion forte */
.home-dispositif h2 {
  max-width: 16.5ch !important;
  font-size: clamp(2.2rem, 3.55vw, 3.25rem) !important;
  line-height: 1.03 !important;
  margin-bottom: 26px !important;
}

.home-dispositif > .home-container > .home-dispositif-grid > div:first-child p,
.home-dispositif-grid > div:first-child p {
  max-width: 50ch !important;
  font-size: .95rem !important;
  line-height: 1.78 !important;
}

.home-dispositif-cards h3 {
  font-size: clamp(1.12rem, 1.35vw, 1.24rem) !important;
}

.home-dispositif-cards p {
  font-size: .9rem !important;
  line-height: 1.76 !important;
}

/* Impact : numéros secondaires, intertitres lisibles, paragraphes descendants */
.home-values article {
  grid-template-columns: 58px minmax(0, 1fr) !important;
  padding: 34px 34px 32px !important;
}

.home-values h3 {
  font-size: clamp(1.18rem, 1.42vw, 1.32rem) !important;
  line-height: 1.24 !important;
}

.home-values p {
  font-size: .92rem !important;
  line-height: 1.78 !important;
}

/* Accès */
.home-access-grid h3 {
  font-size: clamp(1.16rem, 1.35vw, 1.26rem) !important;
}

.home-access-grid p {
  font-size: .92rem !important;
}

/* Photos : N&B plus clair, moins écrasé */
:root {
  --h3-photo-filter-strong: grayscale(100%) contrast(112%) brightness(.88);
}

.home-film-track img {
  opacity: .86 !important;
}

/* Mobile : éviter les titres gigantesques et préserver la hiérarchie */
@media (max-width: 760px) {
  .home-hero h1 {
    font-size: clamp(2.55rem, 10.2vw, 3.35rem) !important;
    max-width: 11ch !important;
  }

  .home-hero-lead strong {
    font-size: 1.08rem !important;
  }

  .home-head h2,
  .home-dispositif h2,
  .home-decision-copy h2,
  .home-split-title h2 {
    font-size: clamp(1.9rem, 7.2vw, 2.45rem) !important;
    line-height: 1.08 !important;
  }

  .home-split-copy h3,
  .home-decision-copy h3,
  .home-cycle-body h3,
  .home-position-grid h3,
  .home-dispositif-cards h3,
  .home-values h3,
  .home-access-grid h3 {
    font-size: 1.12rem !important;
    line-height: 1.28 !important;
  }
}


/* =========================================================
   AJUSTEMENT RYTHME INTER-BLOCS + CARTES CYCLES
   Objectif : séparer les blocs sans dissocier les images
   de leur contenu éditorial.
========================================================= */

/* Séparation des grands blocs éditoriaux */
.home-position-grid,
.home-dispositif-cards,
.home-values {
  gap: clamp(18px, 2vw, 28px) !important;
  background: transparent !important;
}

/* Séparation spécifique des deux cycles, avec carte unifiée */
.home-cycles {
  gap: clamp(22px, 2.4vw, 34px) !important;
  background: transparent !important;
  align-items: stretch;
}

.home-cycles article {
  background: var(--ep-white) !important;
  border: 1px solid var(--h3-line-light) !important;
  box-shadow: none !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
}

.home-cycle-img {
  width: 100%;
  margin: 0 !important;
}

.home-cycle-body {
  border-top: 1px solid var(--h3-line-light);
  background: var(--ep-white);
}

/* Les autres blocs séparés gardent leur logique propre */
.home-position-grid article {
  border: 1px solid var(--h3-line-dark) !important;
}

.home-dispositif-cards article,
.home-access-grid article {
  border: 1px solid var(--h3-line-light) !important;
}

.home-values article {
  border: 1px solid var(--h3-line-dark) !important;
}

/* Sur mobile, conserver la séparation sans casser la lecture */
@media (max-width: 760px) {
  .home-cycles,
  .home-position-grid,
  .home-dispositif-cards,
  .home-values {
    gap: 18px !important;
  }
}
/* =========================================================
   CORRECTIF MOBILE - HOME
   Corrige les débordements horizontaux et les grilles desktop
========================================================= */

@media (max-width: 780px) {
  body.home-page {
    overflow-x: hidden;
  }

  .home-hero {
    min-height: auto !important;
    padding: 92px 0 56px !important;
  }

  .home-hero-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 34px !important;
    padding: 0 !important;
  }

  .home-hero-copy,
  .home-hero-side {
    width: 100% !important;
    max-width: 100% !important;
    justify-self: stretch !important;
  }

  .home-hero-title {
    max-width: 9.5ch !important;
    font-size: clamp(3.05rem, 15vw, 4.4rem) !important;
    line-height: .95 !important;
    letter-spacing: -.045em !important;
  }

  .home-hero-lead,
  .home-hero-copy p {
    max-width: 100% !important;
    font-size: 1rem !important;
    line-height: 1.65 !important;
  }

  .home-hero .home-film {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 260px !important;
    margin: 0 !important;
  }

  .home-hero-card {
    width: 100% !important;
    margin: 18px 0 0 !important;
  }

  .home-split,
  .home-decision-grid,
  .home-cycles,
  .home-position-grid,
  .home-dispositif-grid,
  .home-dispositif-cards,
  .home-values,
  .home-access-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 22px !important;
  }

  .home-split-visual,
  .home-decision-visual {
    width: 100% !important;
    min-height: 320px !important;
  }

  .home-split-copy,
  .home-decision-copy {
    width: 100% !important;
    padding: 28px 22px !important;
  }

  .home-section h2,
  .home-split-copy h2,
  .home-decision-copy h2,
  .home-section-title {
    max-width: 100% !important;
    font-size: clamp(2rem, 10vw, 3rem) !important;
    line-height: 1.02 !important;
  }

  .home-section h3,
  .home-split-copy h3,
  .home-decision-copy h3,
  .home-values h3,
  .home-dispositif-cards h3 {
    font-size: 1.2rem !important;
    line-height: 1.25 !important;
  }

  .home-section p,
  .home-split-copy p,
  .home-decision-copy p,
  .home-values p,
  .home-dispositif-cards p {
    font-size: .98rem !important;
    line-height: 1.68 !important;
  }

  .home-cycle-img {
    width: 100% !important;
    min-height: 190px !important;
  }

  .home-cycle-body,
  .home-position-grid article,
  .home-dispositif-cards article,
  .home-values article,
  .home-access-grid article {
    width: 100% !important;
    padding: 24px 20px !important;
  }
}

@media (max-width: 520px) {
  body.home-page .container,
  .home-container {
    width: min(calc(100% - 32px), 100%) !important;
  }

  .home-hero-title {
    font-size: clamp(2.8rem, 16vw, 4rem) !important;
  }

  .home-hero .home-film {
    min-height: 220px !important;
  }
}

@media (max-width: 780px) {
  body.home-page .container,
  body.home-page .home-container,
  body.home-page .home-section-head,
  body.home-page .home-hero-copy,
  body.home-page .home-hero-side {
    width: min(calc(100% - 44px), 100%) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.home-page .home-split-copy,
  body.home-page .home-decision-copy,
  body.home-page .home-cycle-body,
  body.home-page .home-position-grid article,
  body.home-page .home-dispositif-copy,
  body.home-page .home-dispositif-cards article,
  body.home-page .home-values article,
  body.home-page .home-access-grid article,
  body.home-page .home-hero-card {
    padding-left: 22px !important;
    padding-right: 22px !important;
  }

  body.home-page p {
    max-width: 100% !important;
  }
}
/* =========================================================
   CORRECTIF MOBILE - CARROUSEL HERO
   Périmètre strict : uniquement .home-film dans le hero.
   Objectif : supprimer le conflit entre fondu absolu et scroll vertical.
========================================================= */

@media (max-width: 780px) {
  .home-hero-side {
    width: 100% !important;
    max-width: 100% !important;
  }

  .home-hero .home-film {
    --film-window-height: clamp(220px, 58vw, 320px);

    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    height: var(--film-window-height) !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 0 18px !important;
    overflow: hidden !important;
    background-color: var(--ep-black-soft) !important;
  }

  .home-hero .home-film::before,
  .home-hero .home-film::after {
    display: block !important;
    left: 18px !important;
    right: 18px !important;
    height: 34px !important;
  }

  .home-hero .home-film-track {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    height: auto !important;
    gap: 0 !important;
    padding: 0 !important;
    transform: translateY(0) !important;
    animation: homeHeroFilmMobileScroll 18s ease-in-out infinite !important;
    will-change: transform;
  }

  .home-hero .home-film-track > div {
    position: relative !important;
    inset: auto !important;
    flex: 0 0 var(--film-window-height) !important;
    width: 100% !important;
    height: var(--film-window-height) !important;
    min-height: var(--film-window-height) !important;
    aspect-ratio: auto !important;
    margin: 0 !important;
    opacity: 1 !important;
    border: 0 !important;
    overflow: hidden !important;
    animation: none !important;
  }

  .home-hero .home-film-track img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    opacity: .82 !important;
    filter: var(--h3-photo-filter-strong) !important;
  }

  .home-hero-card {
    position: relative !important;
    z-index: 5 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-top: 18px !important;
  }
}

@keyframes homeHeroFilmMobileScroll {
  0%,
  24% {
    transform: translateY(0);
  }

  34%,
  58% {
    transform: translateY(calc(var(--film-window-height) * -1));
  }

  68%,
  92% {
    transform: translateY(calc(var(--film-window-height) * -2));
  }

  100% {
    transform: translateY(0);
  }
}

@media (max-width: 780px) and (prefers-reduced-motion: reduce) {
  .home-hero .home-film-track {
    animation: none !important;
    transform: translateY(0) !important;
  }
}

/* =========================================================
   CORRECTIF FINAL MOBILE - HERO PHOTO TRIO
   Périmètre strict : uniquement le visuel .home-film du hero.
   Desktop : le carrousel existant reste affiché.
   Mobile <= 780px : le carrousel est masqué et remplacé par
   l'image statique images/trio-journalistes.jpg, sans rognage.
========================================================= */

.home-film-mobile-trio {
  display: none !important;
}

@media (max-width: 780px) {
  .home-hero .home-film {
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 0 18px !important;
    padding: 0 !important;
    overflow: visible !important;
    border: 1px solid rgba(255,255,255,.14) !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .home-hero .home-film::before,
  .home-hero .home-film::after {
    display: none !important;
    content: none !important;
  }

  .home-hero .home-film-track {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
    animation: none !important;
    transform: none !important;
  }

  .home-hero .home-film-mobile-trio {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
    object-fit: contain !important;
    object-position: center center !important;
    filter: grayscale(100%) contrast(112%) brightness(.82) !important;
    opacity: 1 !important;
  }
}


/* =========================================================
   CORRECTIF FINAL - HERO PHOTO TRIO DESKTOP + MOBILE
   Périmètre strict : visuel .home-film du hero uniquement.
   Remplace définitivement le carrousel par une image statique.
   Encadrement volontairement fin, aligné sur la carte sous la photo.
========================================================= */

.home-hero .home-film.home-film--trio {
  position: relative !important;
  width: 100% !important;
  max-width: 430px !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin-left: auto !important;
  margin-bottom: 14px !important;
  padding: 0 !important;
  overflow: hidden !important;
  border-radius: 0 !important;
  border: 1px solid var(--h3-line-dark) !important;
  background: rgba(255,255,255,.03) !important;
  background-image: none !important;
  backdrop-filter: blur(10px);
  box-shadow: none !important;
}

.home-hero .home-film.home-film--trio::before,
.home-hero .home-film.home-film--trio::after {
  display: none !important;
  content: none !important;
}

.home-hero .home-film.home-film--trio .home-film-track {
  display: none !important;
}

.home-hero .home-film-trio,
.home-hero .home-film-mobile-trio {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: contain !important;
  object-position: center center !important;
  filter: grayscale(100%) contrast(108%) brightness(.80) !important;
  opacity: .92 !important;
}

@media (max-width: 1100px) {
  .home-hero .home-film.home-film--trio {
    max-width: 100% !important;
    margin-left: 0 !important;
  }
}

@media (max-width: 780px) {
  .home-hero .home-film.home-film--trio {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 18px !important;
    padding: 0 !important;
    border-color: rgba(255,255,255,.14) !important;
    box-shadow:
      inset 0 0 0 1px rgba(255,255,255,.03),
      0 16px 42px rgba(0,0,0,.22) !important;
  }

  .home-hero .home-film-caption {
    grid-template-columns: 1fr !important;
  }

  .home-hero .home-film-caption-item {
    border-right: 0 !important;
    border-bottom: 1px solid var(--h3-line-dark);
  }

  .home-hero .home-film-caption-item:last-child {
    border-bottom: 0;
  }
}

/* =========================================================
   HOME HYBRIDE - VERSION FINALE PROPOSÉE
   Ajouts et corrections pour la home hybride :
   clarté de l'actuelle + doctrine éditoriale de la V2.
========================================================= */

.home-kicker--light {
  color: var(--h3-accent-deep);
}

.home-head--left {
  margin-left: 0;
  text-align: left;
}

.home-head--left p {
  margin-left: 0;
}

/* PRINCIPES / CE QUE FAIT EN PLATEAU */

.home-principles {
  background: var(--h3-paper);
}

.home-principles .home-head {
  margin-bottom: 34px;
}

.home-principles-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2px;
  background: var(--h3-line-light);
}

.home-principle-card {
  min-height: 260px;
  padding: 28px 24px 24px;
  background: var(--ep-white);
  color: var(--h3-ink);
  position: relative;
}

 .home-principle-card--wide {
  grid-column: span 2;
  min-height: 220px;
  background: var(--h3-paper-soft);
}

.home-principle-card--cta {
  grid-column: span 2;
  min-height: 220px;
  background: var(--ep-white);
}

.home-principle-card--cta a {
  display: inline-flex;
  margin-top: 18px;
  color: var(--h3-accent-deep);
  text-decoration: none;
  font-family: var(--font-body);
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .055em;
  text-transform: uppercase;
  position: relative;
}

.home-principle-card--cta a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -4px;
  height: 1px;
  background: currentColor;
  opacity: .48;
}

.home-principle-card--dark {
  grid-column: span 2;
  background: var(--ep-black);
  color: var(--h3-text);
}

.home-principle-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 3px;
  height: 100%;
  background: var(--h3-accent);
}

.home-principle-card span,
.home-cycle-rarety span,
.home-chipline span,
.home-position-lines summary span {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: .62rem;
  font-weight: 400;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--h3-accent-deep);
}

.home-principle-card--dark span {
  color: var(--h3-accent-soft);
}

.home-principle-card h3 {
  margin: 14px 0 10px;
  font-family: var(--font-display);
  font-size: clamp(1.12rem, 1.55vw, 1.38rem);
  line-height: 1.24;
  letter-spacing: -.015em;
  font-weight: 600;
  color: inherit;
}

.home-principle-card p {
  margin: 0;
  font-size: .93rem;
  line-height: 1.68;
  color: var(--h3-ink-soft);
}

.home-principle-card--dark p {
  color: var(--h3-text-soft);
}

/* CYCLES HYBRIDES */

.home-cycles-section .home-head {
  margin-bottom: 38px;
}

.home-cycles--hybrid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.home-chipline {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 16px;
}

.home-chipline span {
  min-height: 24px;
  padding: 5px 8px 4px;
  border: 1px solid rgba(17,17,17,.15);
  color: var(--h3-ink-muted);
  background: rgba(17,17,17,.025);
}

.home-cycle-rarety {
  margin: 2px auto 0;
  padding: 28px 30px;
  max-width: 100%;
  background: var(--ep-black);
  color: var(--h3-text);
  border: 1px solid rgba(255,255,255,.12);
}

.home-cycle-rarety span {
  color: var(--h3-accent-soft);
}

.home-cycle-rarety h3 {
  margin: 10px 0 8px;
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 1.8vw, 1.55rem);
  line-height: 1.22;
  font-weight: 600;
  color: var(--h3-text);
}

.home-cycle-rarety p {
  max-width: 720px;
  margin: 0;
  font-size: .93rem;
  line-height: 1.68;
  color: var(--h3-text-soft);
}

/* POSITIONS ÉDITORIALES - LIGNES ACCORDÉON */

.home-positions {
  background:
    linear-gradient(180deg, rgba(17,17,17,.94), rgba(17,17,17,.97)),
    url("../../images/positions-echequier.jpg") center/cover no-repeat;
}

.home-positions .home-head p {
  max-width: 760px;
  background: transparent;
  display: block;
  padding: 0;
  border: 0;
  backdrop-filter: none;
}

.home-position-lines {
  max-width: 980px;
  margin: 0 auto;
  border-top: 1px solid var(--h3-line-dark);
}

.home-position-lines details {
  border-bottom: 1px solid var(--h3-line-dark);
}

.home-position-lines summary {
  cursor: pointer;
  list-style: none;
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr) 22px;
  gap: 26px;
  align-items: center;
  padding: 23px 0;
}

.home-position-lines summary::-webkit-details-marker {
  display: none;
}

.home-position-lines summary::after {
  content: "+";
  justify-self: end;
  color: var(--h3-text-soft);
  font-family: var(--font-mono);
  font-size: .9rem;
}

.home-position-lines details[open] summary::after {
  content: "–";
}

.home-position-lines summary span {
  color: var(--h3-accent-soft);
}

.home-position-lines summary strong {
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 2.1vw, 1.7rem);
  line-height: 1.2;
  letter-spacing: -.02em;
  font-weight: 600;
  color: var(--h3-text);
}

.home-position-lines p {
  max-width: 680px;
  margin: -8px 0 24px 176px;
  font-size: .93rem;
  line-height: 1.7;
  color: var(--h3-text-soft);
}

/* DISPOSITIF HYBRIDE */

.home-dispositif .home-kicker {
  margin-bottom: 14px;
}

.home-dispositif h2 {
  margin-bottom: 18px;
}

.home-dispositif-cards h3,
.home-principle-card h3,
.home-values h3,
.home-access-grid h3,
.home-cycle-body h3,
.home-decision-copy h3 {
  text-wrap: balance;
}

/* IMPACT / VALEUR PRODUITE */

.home-impact .home-head h2 {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}

.home-values h3 {
  font-size: clamp(1.1rem, 1.55vw, 1.35rem);
}

/* ACCESS */

.home-access .home-head h2 {
  max-width: 780px;
  margin-left: auto;
  margin-right: auto;
}

/* AJUSTEMENTS TYPO */

.home-hero h1,
.home-head h2,
.home-decision-copy h2,
.home-dispositif h2 {
  text-wrap: balance;
}

.home-hero-text {
  max-width: 660px;
}

.home-hero-card h3 {
  margin: 0 0 10px;
  font-family: var(--font-display);
  font-size: 1.1rem;
  line-height: 1.3;
  color: var(--h3-text);
}

.home-hero-card a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 18px;
  background: var(--h3-accent);
  color: var(--ep-white) !important;
  border: 1px solid var(--h3-accent);
  text-decoration: none;
}

.home-hero-card a::after {
  display: none !important;
}

/* RESPONSIVE HYBRIDE */

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

  .home-principle-card,
  .home-principle-card--dark,
  .home-principle-card--wide,
  .home-principle-card--cta {
    grid-column: span 1;
    min-height: 0;
  }
}

@media (max-width: 860px) {
  .home-head--left {
    text-align: center;
    margin-left: auto;
  }

  .home-head--left p {
    margin-left: auto;
  }

  .home-cycles--hybrid {
    grid-template-columns: 1fr;
  }

  .home-position-lines summary {
    grid-template-columns: 1fr 22px;
    gap: 12px;
  }

  .home-position-lines summary span {
    grid-column: 1 / -1;
  }

  .home-position-lines p {
    margin-left: 0;
  }
}

@media (max-width: 680px) {
  .home-principles-grid {
    grid-template-columns: 1fr;
  }

  .home-principle-card {
    padding: 24px 20px 22px;
  }

  .home-cycle-rarety {
    padding: 24px 20px;
  }

  .home-chipline span {
    font-size: .58rem;
  }
}


/* =========================================================
   HERO TRIO - CORRECTIONS FINES V3
   - suppression du liseré clair à gauche par recadrage plus serré
   - légende micro-note plus premium
   - noms non gras / médias en gras
========================================================= */

.home-hero .home-film.home-film--trio {
  margin: 0 0 14px auto !important;
  padding: 0 !important;
  line-height: 0 !important;
  background: #050505 !important;
}

.home-hero .home-film-trio,
.home-hero .home-film-mobile-trio {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  object-position: center center !important;
  transform: scale(1.085) translateX(-1.4%) !important;
  transform-origin: center center !important;
  filter: grayscale(100%) contrast(108%) brightness(.80) !important;
  opacity: .92 !important;
}

.home-hero .home-film-caption {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px !important;
  margin: 0 !important;
  padding: 12px 14px 13px !important;
  list-style: none !important;
  border-top: 1px solid var(--h3-line-dark) !important;
  background: rgba(8,8,8,.92) !important;
  line-height: 1.25 !important;
}

.home-hero .home-film-caption-item {
  min-width: 0;
  padding: 0 !important;
  border: 0 !important;
}

.home-hero .home-film-caption-item strong,
.home-hero .home-film-caption-item span {
  display: block;
}

.home-hero .home-film-caption-item strong {
  margin: 0 0 2px !important;
  font-family: var(--font-body) !important;
  font-size: .70rem !important;
  font-weight: 400 !important;
  color: var(--h3-text-soft) !important;
  line-height: 1.22 !important;
  letter-spacing: .005em;
}

.home-hero .home-film-caption-item span {
  font-family: var(--font-body) !important;
  font-size: .70rem !important;
  font-weight: 600 !important;
  color: var(--h3-text) !important;
  line-height: 1.22 !important;
}

@media (max-width: 780px) {
  .home-hero .home-film.home-film--trio {
    margin: 0 0 18px !important;
  }

  .home-hero .home-film-trio,
  .home-hero .home-film-mobile-trio {
    transform: scale(1.06) translateX(-1.2%) !important;
  }

  .home-hero .home-film-caption {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    padding: 10px 12px 11px !important;
  }

  .home-hero .home-film-caption-item {
    padding: 0 0 7px !important;
    margin: 0 0 7px !important;
    border-bottom: 1px solid var(--h3-line-dark) !important;
  }

  .home-hero .home-film-caption-item:last-child {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
    border-bottom: 0 !important;
  }
}


/* =========================================================
   HERO TRIO - MICRO-REPASSE V4
   Périmètre : uniquement le bloc photo + légende + carte invitation.
   Objectif : finition premium, respiration, alignement et hiérarchie.
========================================================= */

.home-hero .home-hero-side {
  max-width: 430px !important;
}

.home-hero .home-film.home-film--trio {
  margin-bottom: 16px !important;
  border-color: rgba(255,255,255,.18) !important;
  background: rgba(5,5,5,.96) !important;
}

.home-hero .home-film-trio,
.home-hero .home-film-mobile-trio {
  filter: grayscale(100%) contrast(110%) brightness(.78) !important;
  opacity: .94 !important;
}

.home-hero .home-film-caption {
  padding: 11px 15px 12px !important;
  gap: 12px !important;
  background: rgba(7,7,7,.94) !important;
}

.home-hero .home-film-caption-item strong {
  margin-bottom: 1px !important;
  font-size: .665rem !important;
  font-weight: 400 !important;
  color: rgba(246,241,233,.76) !important;
  letter-spacing: .006em !important;
}

.home-hero .home-film-caption-item span {
  font-size: .665rem !important;
  font-weight: 600 !important;
  color: rgba(246,241,233,.92) !important;
  letter-spacing: .004em !important;
}

.home-hero .home-hero-card {
  margin-top: 0 !important;
  padding: 24px 26px 25px !important;
  border-color: rgba(255,255,255,.18) !important;
  background: rgba(255,255,255,.035) !important;
}

.home-hero .home-hero-card h3 {
  margin-bottom: 11px !important;
}

.home-hero .home-hero-card p {
  margin-bottom: 19px !important;
}

.home-hero .home-hero-small--right {
  margin-top: 12px !important;
  padding-left: 1px !important;
  max-width: 410px !important;
}

@media (max-width: 780px) {
  .home-hero .home-film-caption {
    padding: 10px 13px 11px !important;
  }

  .home-hero .home-film-caption-item strong,
  .home-hero .home-film-caption-item span {
    font-size: .70rem !important;
  }

  .home-hero .home-hero-card {
    padding: 22px 22px 23px !important;
  }
}


/* =========================================================
   HOME V5 - Corrections section par section
   - centrage section principes
   - image décision corrigée
   - accordéons décision / valeurs
   - titres positions réduits + plus visible
   - lien dispositif rapproché du paragraphe
   - hero photo complète non tronquée
========================================================= */

/* HERO : nouvelle photo complète */
.home-hero .home-film-trio,
.home-hero .home-film-mobile-trio {
  object-fit: contain !important;
  object-position: center center !important;
  transform: none !important;
  background: #050505 !important;
}

/* CE QUE FAIT EN PLATEAU : titre et intro centrés */
.home-principles .home-head {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.home-principles .home-kicker {
  justify-content: center !important;
}

.home-principles .home-head p {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* DECISION : bonne image + accordéon */
.home-decision-visual {
  background:
    linear-gradient(90deg, rgba(17,17,17,.82), rgba(17,17,17,.52)),
    url("../../images/noeud-routier.jpg.jpg") center/cover no-repeat !important;
  filter: grayscale(100%) contrast(112%) brightness(.72) !important;
}

.home-decision-accordion details,
.home-values-accordion details {
  position: relative;
  border-bottom: 1px solid var(--h3-line-dark);
  padding: 0;
  margin: 0;
}

.home-decision-accordion details:last-child,
.home-values-accordion details:last-child {
  border-bottom: 0;
}

.home-decision-accordion summary,
.home-values-accordion summary {
  list-style: none;
  cursor: pointer;
  position: relative;
  padding: 20px 54px 20px 0;
}

.home-decision-accordion summary::-webkit-details-marker,
.home-values-accordion summary::-webkit-details-marker,
.home-position-lines summary::-webkit-details-marker {
  display: none;
}

.home-decision-accordion summary::after,
.home-values-accordion summary::after,
.home-position-lines summary::after {
  content: "+";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--font-mono);
  font-size: 1.05rem;
  font-weight: 400;
  color: var(--h3-text);
  opacity: .88;
}

.home-decision-accordion details[open] summary::after,
.home-values-accordion details[open] summary::after,
.home-position-lines details[open] summary::after {
  content: "−";
}

.home-decision-accordion summary {
  font-family: var(--font-display);
  font-size: clamp(1.02rem, 1.45vw, 1.22rem);
  line-height: 1.24;
  font-weight: 600;
  color: var(--h3-text);
}

.home-decision-accordion details p {
  margin: -5px 54px 20px 0 !important;
}

.home-decision-copy > details {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

/* CYCLES : bloc rareté moins mécanique */
.home-cycle-rarety h3 {
  max-width: 760px;
}

/* POSITIONS : titres plus petits, détails plus utiles */
.home-position-lines summary {
  position: relative;
  padding-right: 58px !important;
}

.home-position-lines summary strong {
  font-size: clamp(1rem, 1.35vw, 1.18rem) !important;
  line-height: 1.25 !important;
  max-width: 820px;
}

.home-position-lines summary span {
  font-size: .60rem !important;
  letter-spacing: .13em !important;
}

.home-position-lines details p {
  max-width: 860px !important;
  margin-top: 0 !important;
  padding-right: 58px !important;
  line-height: 1.72 !important;
}

/* DISPOSITIF : lien rapproché du texte */
.home-dispositif-link {
  margin-top: 18px !important;
}

.home-dispositif-link a {
  position: relative;
  font-family: var(--font-body);
  font-size: .88rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--h3-accent-deep);
}

.home-dispositif-link a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -3px;
  height: 1px;
  background: currentColor;
  opacity: .45;
}

/* VALEUR : accordéon orienté personas */
.home-values-accordion {
  max-width: 980px;
  margin: 0 auto;
  display: grid;
  gap: 0;
  background: rgba(255,255,255,.06);
}

.home-values-accordion details {
  background: rgba(255,255,255,.03);
  backdrop-filter: blur(8px);
  padding: 0 26px 0 26px;
}

.home-values-accordion details::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 3px;
  height: 100%;
  background: var(--h3-accent);
}

.home-values-accordion summary {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}

.home-values-accordion summary span {
  font-family: var(--font-mono);
  font-size: .62rem;
  font-weight: 400;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--h3-accent-soft);
  padding-top: 6px;
}

.home-values-accordion summary strong {
  font-family: var(--font-display);
  font-size: clamp(1rem, 1.45vw, 1.18rem);
  line-height: 1.3;
  letter-spacing: -.01em;
  font-weight: 600;
  color: var(--h3-text);
}

.home-values-accordion p {
  margin: -6px 54px 22px 90px !important;
  color: var(--h3-text-soft) !important;
}

@media (max-width: 780px) {
  .home-values-accordion summary {
    grid-template-columns: 42px minmax(0, 1fr);
  }

  .home-values-accordion p {
    margin-left: 60px !important;
    margin-right: 40px !important;
  }

  .home-position-lines summary strong {
    font-size: 1rem !important;
  }
}


/* =========================================================
   V6 - HIÉRARCHIE TYPO + CADRES + ACCORDÉONS
   Objectif : titres plus hiérarchisés, paragraphes plus petits,
   cadres visibles, gros + lisibles, sections plus éditoriales.
========================================================= */

:root {
  --h3-border-visible-light: rgba(17,17,17,.18);
  --h3-border-visible-dark: rgba(255,255,255,.18);
  --h3-body-small: .82rem;
  --h3-body-compact: .86rem;
  --h3-summary-title: .98rem;
  --h3-summary-title-large: 1.04rem;
}

/* Règle générale : les paragraphes doivent être nettement sous les titres */
.home-page p,
.home-principle-card p,
.home-decision-copy p,
.home-dispositif-cards p,
.home-position-lines p,
.home-values p,
.home-access-grid p,
.home-cycle-body p {
  font-size: var(--h3-body-compact) !important;
  line-height: 1.68 !important;
  font-weight: 400 !important;
}

.home-head p,
.home-decision-intro,
.home-access .home-head p {
  font-size: .92rem !important;
  line-height: 1.72 !important;
}

.home-note-light,
.home-subnote,
.home-hero-small,
.home-hero-small--right {
  font-size: .60rem !important;
  line-height: 1.55 !important;
}

/* Bordures visibles sur les cadres */
.home-principle-card,
.home-dispositif-cards article,
.home-dispositif-cards details,
.home-position-lines details,
.home-values details,
.home-access-grid article,
.home-cycle-body,
.home-hero-card {
  border: 1px solid var(--h3-border-visible-light) !important;
}

.home-dark .home-position-lines details,
.home-dark .home-values details,
.home-hero-card {
  border-color: var(--h3-border-visible-dark) !important;
}

.home-principle-card--dark {
  border-color: rgba(255,255,255,.20) !important;
}

/* Accordéons : supprimer le marqueur natif et créer un gros + */
.home-principles-grid details summary,
.home-decision-accordion details summary,
.home-dispositif-cards details summary,
.home-position-lines details summary,
.home-values details summary {
  list-style: none;
  cursor: pointer;
  position: relative;
  padding-right: 44px;
}

.home-principles-grid details summary::-webkit-details-marker,
.home-decision-accordion details summary::-webkit-details-marker,
.home-dispositif-cards details summary::-webkit-details-marker,
.home-position-lines details summary::-webkit-details-marker,
.home-values details summary::-webkit-details-marker {
  display: none;
}

.home-principles-grid details summary::after,
.home-decision-accordion details summary::after,
.home-dispositif-cards details summary::after,
.home-position-lines details summary::after,
.home-values details summary::after {
  content: "+";
  position: absolute;
  top: 50%;
  right: 2px;
  transform: translateY(-50%);
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  font-family: var(--font-body);
  font-size: 1.45rem;
  font-weight: 400;
  line-height: 1;
  color: currentColor;
  opacity: .95;
}

.home-principles-grid details[open] summary::after,
.home-decision-accordion details[open] summary::after,
.home-dispositif-cards details[open] summary::after,
.home-position-lines details[open] summary::after,
.home-values details[open] summary::after {
  content: "−";
}

/* Section CE QUE FAIT EN PLATEAU : titres seuls + ouverture */
.home-principles .home-head {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.home-principles .home-head .home-kicker {
  justify-content: center !important;
}

.home-principles .home-head h2,
.home-principles .home-head p {
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}

.home-principles .home-head h2 {
  max-width: 19ch !important;
}

.home-principles .home-head p {
  max-width: 68ch !important;
}

.home-principles-grid {
  background: var(--h3-line-light) !important;
  gap: 2px !important;
}

.home-principle-card {
  padding: 26px 26px 24px !important;
  background: var(--ep-white) !important;
}

.home-principle-card--dark {
  background: var(--ep-black) !important;
}

.home-principle-card summary span,
.home-principle-card > span {
  display: block;
  margin-bottom: 16px;
  font-family: var(--font-mono);
  font-size: .56rem !important;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--h3-accent-deep);
}

.home-principle-card--dark summary span {
  color: var(--h3-text-muted);
}

.home-principle-card summary h3,
.home-principle-card h3 {
  margin: 0 !important;
  max-width: 30ch;
  font-family: var(--font-display);
  font-size: var(--h3-summary-title-large) !important;
  line-height: 1.22 !important;
  letter-spacing: -.014em;
}

.home-principle-card p {
  margin-top: 16px !important;
  max-width: 62ch !important;
  font-size: var(--h3-body-small) !important;
}

/* Section changement d’échelle : fonction explicite + accordéon */
.home-decision-visual {
  background:
    linear-gradient(90deg, rgba(17,17,17,.78), rgba(17,17,17,.50)),
    url("../../images/noeud-routier.jpg.jpg") center/cover no-repeat !important;
  filter: grayscale(100%) contrast(116%) brightness(.74) !important;
}

.home-decision-copy .home-kicker {
  margin-bottom: 16px !important;
  color: var(--h3-text-muted) !important;
}

.home-decision-copy h2 {
  max-width: 17ch !important;
}

.home-decision-intro {
  max-width: 64ch !important;
  margin: 0 0 28px !important;
  color: rgba(255,255,255,.76) !important;
}

.home-decision-accordion details {
  border-top: 1px solid var(--h3-border-visible-dark);
  padding: 18px 0;
}

.home-decision-accordion details:last-child {
  border-bottom: 1px solid var(--h3-border-visible-dark);
}

.home-decision-accordion summary {
  font-family: var(--font-display);
  font-size: var(--h3-summary-title-large) !important;
  line-height: 1.24;
  color: var(--h3-text);
}

.home-decision-accordion p {
  max-width: 58ch !important;
  margin-top: 12px !important;
  color: rgba(255,255,255,.72) !important;
  font-size: var(--h3-body-small) !important;
}

/* Positions : plus compact, lisible, en deux colonnes desktop */
.home-position-lines {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 2px !important;
  max-width: 1080px !important;
  margin: 0 auto !important;
  background: rgba(255,255,255,.08) !important;
}

.home-position-lines details {
  padding: 22px 22px 20px !important;
  background: rgba(10,10,10,.72) !important;
  backdrop-filter: blur(7px);
}

.home-position-lines details summary {
  display: grid !important;
  grid-template-columns: minmax(88px, .33fr) minmax(0, 1fr) 28px;
  gap: 16px;
  align-items: baseline;
  padding-right: 0 !important;
}

.home-position-lines details summary::after {
  position: static !important;
  transform: none !important;
  align-self: center;
  justify-self: end;
  color: rgba(255,255,255,.90);
}

.home-position-lines summary span {
  font-family: var(--font-mono);
  font-size: .58rem !important;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(255,255,255,.58) !important;
}

.home-position-lines summary strong {
  font-family: var(--font-display);
  font-size: .94rem !important;
  line-height: 1.22 !important;
  letter-spacing: -.01em;
  color: var(--h3-text);
  font-weight: 600;
}

.home-position-lines p {
  grid-column: 2 / 4;
  margin: 12px 0 0 calc(88px + 16px) !important;
  max-width: 56ch !important;
  font-size: .78rem !important;
  line-height: 1.64 !important;
  color: rgba(255,255,255,.70) !important;
}

/* Cadre éditorial : titres seuls + gros + */
.home-dispositif-link {
  margin-top: 18px !important;
}

.home-dispositif-cards {
  gap: 2px !important;
  background: var(--h3-line-light) !important;
}

.home-dispositif-cards details {
  position: relative;
  padding: 24px 22px 22px !important;
  background: var(--ep-white) !important;
}

.home-dispositif-cards details::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 3px;
  height: 100%;
  background: var(--h3-accent);
}

.home-dispositif-cards summary {
  font-family: var(--font-display);
  font-size: var(--h3-summary-title) !important;
  line-height: 1.24 !important;
  font-weight: 600;
  color: var(--h3-ink);
}

.home-dispositif-cards p {
  margin-top: 14px !important;
  max-width: 48ch !important;
  font-size: var(--h3-body-small) !important;
}

/* Valeur : titres visibles, paragraphes au clic sauf premier */
.home-values details {
  position: relative;
  padding: 24px 26px !important;
  background: rgba(255,255,255,.035) !important;
  border-color: var(--h3-border-visible-dark) !important;
}

.home-values details::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: var(--h3-accent);
}

.home-values summary {
  display: grid !important;
  grid-template-columns: 52px minmax(0, 1fr) 28px;
  gap: 18px;
  align-items: baseline;
  padding-right: 0 !important;
}

.home-values summary::after {
  position: static !important;
  transform: none !important;
  align-self: center;
  justify-self: end;
}

.home-values summary span {
  font-size: .58rem !important;
}

.home-values summary strong {
  font-family: var(--font-display);
  font-size: 1rem !important;
  line-height: 1.24 !important;
  color: var(--h3-text);
}

.home-values p {
  margin: 12px 0 0 70px !important;
  max-width: 70ch !important;
  font-size: .80rem !important;
  color: rgba(255,255,255,.72) !important;
}

/* Accès : passage à la ligne forcé + micro-note */
.home-access .home-head h2 {
  max-width: 18ch !important;
  line-height: 1.06 !important;
}

.home-access-grid article {
  border-color: var(--h3-border-visible-light) !important;
}

.home-note-light {
  max-width: 58ch !important;
  margin-top: 18px !important;
  font-size: .58rem !important;
  letter-spacing: .01em;
  color: var(--h3-ink-muted) !important;
}

/* Mobile : une colonne et + toujours visible */
@media (max-width: 900px) {
  .home-position-lines {
    grid-template-columns: 1fr !important;
  }

  .home-position-lines details summary {
    grid-template-columns: 1fr 28px !important;
    gap: 12px !important;
  }

  .home-position-lines summary span {
    grid-column: 1 / -1;
  }

  .home-position-lines p {
    margin-left: 0 !important;
    grid-column: 1 / -1;
  }
}

@media (max-width: 760px) {
  .home-principles .home-head,
  .home-principles .home-head h2,
  .home-principles .home-head p {
    text-align: center !important;
  }

  .home-principle-card,
  .home-dispositif-cards details,
  .home-values details {
    padding: 22px 20px !important;
  }

  .home-values summary {
    grid-template-columns: 40px minmax(0, 1fr) 28px;
    gap: 12px;
  }

  .home-values p {
    margin-left: 0 !important;
  }
}


/* =========================================================
   V9 - lisibilité + calendrier cycle Industrie + + uniformes
========================================================= */

/* Tous les + : même taille, plus visibles */
.home-principles-grid details summary::after,
.home-decision-accordion details summary::after,
.home-dispositif-cards details summary::after,
.home-position-lines details summary::after,
.home-values details summary::after {
  width: 38px !important;
  height: 38px !important;
  font-size: 2.05rem !important;
  font-weight: 300 !important;
  line-height: 1 !important;
  opacity: 1 !important;
  color: currentColor !important;
}

/* Hero : photo plus petite + encart calendrier du cycle Industrie */
.home-hero-side {
  max-width: 560px !important;
}

.home-hero-media-row {
  display: grid;
  grid-template-columns: minmax(230px, .78fr) minmax(190px, .52fr);
  gap: 14px;
  align-items: stretch;
  margin-bottom: 16px;
}

.home-hero-media-row .home-film {
  width: 100%;
  max-width: none !important;
  margin: 0 !important;
  height: auto !important;
  min-height: 0 !important;
}

.home-film--trio {
  aspect-ratio: 1 / 1.05;
}

.home-film--trio img {
  width: 100%;
  height: calc(100% - 52px);
  object-fit: cover;
  filter: grayscale(100%) contrast(112%) brightness(.74);
}

.home-film-caption {
  min-height: 52px;
}

.home-hero-cycle-note {
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.035);
  padding: 18px 18px 16px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.home-hero-cycle-note span {
  display: block;
  margin-bottom: 14px;
  font-family: var(--font-mono);
  font-size: .58rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(255,255,255,.62);
}

.home-hero-cycle-note p {
  margin: 0 0 12px;
  font-family: var(--font-display);
  font-size: .98rem !important;
  line-height: 1.22 !important;
  letter-spacing: -.01em;
  color: var(--h3-text);
}

.home-hero-cycle-note ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}

.home-hero-cycle-note li {
  margin: 0;
  padding-top: 8px;
  border-top: 1px solid rgba(255,255,255,.12);
  font-size: .70rem;
  line-height: 1.45;
  color: rgba(255,255,255,.74);
}

/* Section décision : intro raccourcie mais visuellement plus lisible */
.home-decision-intro {
  max-width: 58ch !important;
  font-size: .80rem !important;
  line-height: 1.62 !important;
  margin-bottom: 22px !important;
}

/* Cadre éditorial : cartes centrées verticalement */
.home-dispositif-grid {
  align-items: center !important;
}

.home-dispositif-cards {
  align-self: center !important;
}

/* Micro-note accès : vraiment micro */
.home-access-grid .home-note-light {
  font-size: .54rem !important;
  line-height: 1.45 !important;
  letter-spacing: .015em !important;
  max-width: 48ch !important;
  opacity: .78;
}

/* Renforcement bordures cartes claires */
.home-principle-card,
.home-dispositif-cards details,
.home-access-grid article {
  border-color: rgba(17,17,17,.24) !important;
}

/* Mobile/tablette : encart calendrier sous la photo */
@media (max-width: 1100px) {
  .home-hero-media-row {
    grid-template-columns: 1fr;
  }

  .home-film--trio {
    aspect-ratio: 16 / 9;
  }

  .home-film--trio img {
    height: calc(100% - 52px);
  }
}

@media (max-width: 760px) {
  .home-hero-cycle-note {
    padding: 16px;
  }

  .home-hero-cycle-note p {
    font-size: .94rem !important;
  }

  .home-hero-cycle-note li {
    font-size: .68rem;
  }
}


/* =========================================================
   V10 - ajustement fin hero journalistes
========================================================= */
.home-hero-media-row .home-film.home-film--trio {
  display: flex !important;
  flex-direction: column !important;
  align-self: stretch !important;
  height: 100% !important;
  aspect-ratio: auto !important;
}

.home-hero-media-row .home-film.home-film--trio img {
  flex: 1 1 auto;
  min-height: 0;
  height: auto !important;
}

.home-hero .home-film-caption,
.home-film-caption {
  min-height: 64px !important;
  padding: 12px 16px 16px !important;
}

.home-hero .home-film-caption-item:nth-child(1) {
  text-align: left !important;
}

.home-hero .home-film-caption-item:nth-child(2) {
  text-align: center !important;
}

.home-hero .home-film-caption-item:nth-child(3) {
  text-align: right !important;
}

.home-hero .home-film-caption-item strong,
.home-hero .home-film-caption-item span {
  width: 100%;
}


/* =========================================================
   V11 - finition hero photo/journalistes
========================================================= */

/* Supprime le filet clair perçu en haut de la photo */
.home-hero-media-row .home-film.home-film--trio,
.home-hero .home-film.home-film--trio {
  border-top-color: rgba(255,255,255,.10) !important;
  box-shadow:
    inset 0 1px 0 rgba(0,0,0,.70),
    inset 0 0 0 1px rgba(255,255,255,.025),
    inset 0 0 28px rgba(0,0,0,.78) !important;
}

.home-hero-media-row .home-film.home-film--trio img {
  display: block !important;
  margin-top: 0 !important;
  transform: translateY(-1px) !important;
}

/* Légende : une ligne pour le nom, respiration, médias sur la ligne suivante */
.home-hero .home-film-caption {
  min-height: 70px !important;
  padding: 13px 16px 17px !important;
  align-items: start !important;
}

.home-hero .home-film-caption-item strong {
  white-space: nowrap !important;
  margin-bottom: 8px !important;
  font-size: .68rem !important;
  line-height: 1.05 !important;
}

.home-hero .home-film-caption-item span {
  white-space: nowrap !important;
  font-size: .68rem !important;
  line-height: 1.05 !important;
}

/* Rappel : alignements différenciés */
.home-hero .home-film-caption-item:nth-child(1) {
  text-align: left !important;
}

.home-hero .home-film-caption-item:nth-child(2) {
  text-align: center !important;
}

.home-hero .home-film-caption-item:nth-child(3) {
  text-align: right !important;
}

/* Bloc calendrier : éviter tout tiret long typographique et conserver une lecture nette */
.home-hero-cycle-note li {
  font-size: .70rem !important;
  line-height: 1.45 !important;
}


/* =========================================================
   V12 - micro-ajustement légende journalistes
========================================================= */

.home-hero .home-film-caption {
  grid-template-columns: 1fr .92fr 1fr !important;
  gap: 8px !important;
  padding-left: 12px !important;
  padding-right: 12px !important;
}

.home-hero .home-film-caption-item:nth-child(2) {
  transform: translateX(5px);
}

.home-hero .home-film-caption-item strong,
.home-hero .home-film-caption-item span {
  font-size: .62rem !important;
  letter-spacing: .002em !important;
}

.home-hero .home-film-caption-item strong {
  margin-bottom: 9px !important;
}


/* =========================================================
   V13 - suppression filet clair interne photo hero
========================================================= */

/*
  Le filet clair visible en haut venait de la combinaison :
  - bordure/ombre interne du composant film,
  - pseudo-élément de dégradé supérieur,
  - photo calée trop près du bord haut.
  On neutralise ces effets uniquement sur la photo trio du hero.
*/

.home-hero-media-row .home-film.home-film--trio::before,
.home-hero .home-film.home-film--trio::before {
  display: none !important;
  content: none !important;
}

.home-hero-media-row .home-film.home-film--trio {
  border-top-color: rgba(255,255,255,.08) !important;
  background-image: none !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.018),
    inset 0 0 26px rgba(0,0,0,.82) !important;
}

.home-hero-media-row .home-film.home-film--trio img {
  object-position: center 52% !important;
  transform: translateY(-3px) scale(1.015) !important;
  transform-origin: center center !important;
}

/* =========================================================
   V14 - ajustements ciblés hero home
   Périmètre strict : alignement de la colonne droite,
   titre hero sur une ligne desktop, micro-note sous CTA.
========================================================= */

@media (min-width: 1101px) {
  .home-hero .home-container {
    width: min(calc(100% - 100px), 1268px) !important;
    max-width: 1268px !important;
  }

  .home-hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(500px, 540px) !important;
    gap: clamp(46px, 4.6vw, 58px) !important;
    align-items: start !important;
  }

  .home-hero-copy {
    max-width: 760px !important;
    padding-left: clamp(56px, 5vw, 66px) !important;
  }

  .home-hero h1 {
    max-width: none !important;
    white-space: nowrap !important;
    font-size: clamp(2.65rem, 3.5vw, 3.7rem) !important;
    line-height: 1.02 !important;
    letter-spacing: -.04em !important;
  }

  .home-hero-side {
    width: 100% !important;
    max-width: 540px !important;
    justify-self: end !important;
  }

  .home-hero-media-row,
  .home-hero .home-hero-card,
  .home-hero-small--right {
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .home-hero-small--right {
    max-width: 420px !important;
    font-size: .54rem !important;
    line-height: 1.48 !important;
    letter-spacing: .012em !important;
    opacity: .78;
  }
}

/* =========================================================
   V15 - micro-ajustements hero home
   Périmètre strict : sous-titre desktop, largeur des paragraphes,
   bordure photo trio, typographie des titres de la colonne droite.
========================================================= */

@media (min-width: 1101px) {
  .home-hero-lead:not(.home-hero-text) {
    max-width: 50ch !important;
  }

  .home-hero-lead strong {
    max-width: 50ch !important;
  }

  .home-hero-lead-break {
    display: block;
  }

  .home-hero-text {
    max-width: 76ch !important;
  }
}

@media (max-width: 1100px) {
  .home-hero-lead-break {
    display: none;
  }
}

.home-hero-media-row .home-film.home-film--trio,
.home-hero .home-film.home-film--trio {
  position: relative !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  box-shadow: inset 0 0 22px rgba(0,0,0,.72) !important;
}

.home-hero-media-row .home-film.home-film--trio img {
  height: calc(100% - 52px) !important;
  transform: none !important;
  object-position: center center !important;
}

.home-hero-cycle-note p,
.home-hero-card h3,
.home-hero-card h2 {
  font-family: var(--font-mono) !important;
  font-weight: 600 !important;
  letter-spacing: .045em !important;
  text-transform: none !important;
}

/* =========================================================
   V16 - corrections ciblées hero home
   Périmètre strict : sous-titre en deux lignes desktop,
   largeur des paragraphes, graisse typographique des titres
   de la colonne droite.
========================================================= */

@media (min-width: 1101px) {
  .home-hero-lead:not(.home-hero-text) {
    max-width: 68ch !important;
  }

  .home-hero-lead strong {
    display: block !important;
    max-width: none !important;
  }

  .home-hero-lead-line {
    display: block !important;
    white-space: nowrap !important;
  }

  .home-hero-text {
    max-width: 58ch !important;
  }

  .home-hero-text-break {
    display: block !important;
  }

  .home-hero-card h3,
  .home-hero-card h2 {
    max-width: none !important;
    white-space: nowrap !important;
    text-wrap: nowrap !important;
  }
}

@media (max-width: 1100px) {
  .home-hero-lead-line {
    display: inline !important;
    white-space: normal !important;
  }

  .home-hero-lead-line + .home-hero-lead-line::before {
    content: " ";
  }

  .home-hero-text-break {
    display: none !important;
  }
}

.home-hero-cycle-note p,
.home-hero-card h3,
.home-hero-card h2 {
  font-family: var(--font-mono) !important;
  font-weight: 400 !important;
  letter-spacing: .045em !important;
  text-transform: none !important;
}


/* =========================================================
   V17 - corrections ciblées hero home
   Périmètre strict : suppression du filet supérieur photo trio
   et réduction de la micro-note sous CTA.
========================================================= */

.home-hero-media-row .home-film.home-film--trio,
.home-hero .home-film.home-film--trio {
  border-top: 0 !important;
  box-shadow: none !important;
  background-image: none !important;
}

.home-hero-media-row .home-film.home-film--trio::before,
.home-hero .home-film.home-film--trio::before,
.home-hero-media-row .home-film.home-film--trio::after,
.home-hero .home-film.home-film--trio::after {
  display: none !important;
  content: none !important;
}

.home-hero-media-row .home-film.home-film--trio img {
  display: block !important;
  margin-top: 0 !important;
  transform: none !important;
}

.home-hero .home-hero-small--right {
  font-size: .48rem !important;
  line-height: 1.42 !important;
  letter-spacing: .012em !important;
  opacity: .66 !important;
  max-width: 390px !important;
  margin-top: 10px !important;
}

@media (min-width: 1101px) {
  .home-hero .home-hero-small--right {
    font-size: .46rem !important;
    line-height: 1.40 !important;
    max-width: 380px !important;
  }
}
