/* =====================================================================
   STORM PATRIMOINE — Styles spécifiques : NOTRE APPROCHE
   ===================================================================== */

/* Timeline --------------------------------------------------------- */
.timeline { position: relative; max-width: 860px; margin-inline: auto; }
.timeline::before {
  content: ""; position: absolute; left: 27px; top: 10px; bottom: 10px; width: 2px;
  background: linear-gradient(var(--gold), var(--line));
}
.tl-item { position: relative; display: grid; grid-template-columns: 56px 1fr; gap: 30px; padding-bottom: 46px; }
.tl-item:last-child { padding-bottom: 0; }
.tl-marker {
  width: 56px; height: 56px; border-radius: 50%; background: var(--cream); border: 2px solid var(--gold);
  display: grid; place-items: center; position: relative; z-index: 1;
}
.tl-marker span { font-family: var(--font-title); font-size: 1.3rem; color: var(--gold-dark); }
.tl-content { padding-top: 6px; }
.tl-content h3 { margin-bottom: 10px; }
.tl-content p { color: var(--text-soft); }

/* Piliers ---------------------------------------------------------- */
.pillars { gap: 14px 50px; }
.pillar { padding: 30px 0; border-top: 1px solid var(--line); }
.pillar h4 { font-family: var(--font-title); font-size: 1.45rem; margin-bottom: 10px; }
.pillar p { color: var(--text-soft); }

@media (max-width: 640px) {
  .timeline::before { left: 21px; }
  .tl-item { grid-template-columns: 44px 1fr; gap: 20px; }
  .tl-marker { width: 44px; height: 44px; }
  .tl-marker span { font-size: 1.1rem; }
}
