/* ── SECTION: timeline ── */
.timeline-section {
  padding: 5rem 1.5rem;
}
.timeline-section .chip  { display: block; text-align: center; }
.timeline-section .chip::before { display: none; }
.timeline-section .sec-title { text-align: center; max-width: 600px; margin: 0 auto 3rem; }

.timeline {
  max-width: 720px; margin: 0 auto; position: relative;
}
.timeline::before {
  content: ''; position: absolute; left: 32px; top: 0; bottom: 0; width: 1px;
}
.tl-item {
  display: flex; gap: 2rem; margin-bottom: 2.5rem;
  position: relative; padding-left: 80px;
}
.tl-dot {
  position: absolute; left: 24px; top: 18px;
  width: 18px; height: 18px; border-radius: 50%;
  flex-shrink: 0;
}
.tl-year {
  position: absolute; left: 0; top: 14px;
  font-size: .68rem; font-weight: 700;
  letter-spacing: 1px; width: 20px; text-align: center;
}
.tl-box {
  border-radius: 18px; padding: 1.5rem;
  flex: 1; transition: all .25s;
}
.tl-box h3 {
  font-size: 1.0rem; font-weight: 700;
  margin-bottom: .5rem;
  display: flex; align-items: center; gap: 8px;
}
.tl-icon {
  width: 28px; height: 28px; border-radius: 8px;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.tl-box p { font-size: .88rem; line-height: 1.65; margin: 0; }

@media(max-width:768px) {
  .timeline::before { display: none; }
  .tl-item { padding-left: 0; flex-direction: column; gap: 1rem; }
  .tl-dot, .tl-year { display: none; }
}
