.hero-copy p.lead{ margin-bottom:14px; }
.hero-copy p.lead:last-of-type{ margin-bottom:32px; }

.approach-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:48px; }
.approach{
  background:#fff; border:1px solid var(--border); border-radius:var(--radius);
  padding:30px 28px; display:flex; flex-direction:column;
}
.approach-level{
  font-size:11.5px; font-weight:700; letter-spacing:.09em; text-transform:uppercase;
  color:var(--accent); margin:0 0 12px;
}
.approach h3{ font-size:19px; font-weight:800; letter-spacing:-0.01em; margin:0 0 12px; }
.approach > p{ font-size:14.5px; color:var(--text-muted); margin:0 0 20px; }
.approach-for{ font-size:12.5px; font-weight:700; color:var(--text); margin:auto 0 10px; }
.approach ul{ list-style:none; margin:0; padding:0; }
.approach li{ position:relative; padding-left:20px; font-size:14px; color:var(--text-muted); margin-bottom:8px; }
.approach li:last-child{ margin-bottom:0; }
.approach li::before{
  content:""; position:absolute; left:0; top:8px;
  width:11px; height:7px;
  border-left:2px solid var(--accent); border-bottom:2px solid var(--accent);
  transform:rotate(-45deg);
}

.approach-key{
  margin:36px auto 0; max-width:70ch; text-align:center;
  background:var(--accent-light); border-radius:var(--radius);
  padding:24px 28px; font-size:16.5px; font-weight:600; color:var(--accent-dark);
}

.timeline{ list-style:none; margin:48px 0 0; padding:0; counter-reset:etape; max-width:820px; }
.timeline-step{
  counter-increment:etape;
  display:grid; grid-template-columns:52px 1fr; gap:24px;
  padding-bottom:40px; position:relative;
}
.timeline-step:last-child{ padding-bottom:0; }
.timeline-num{
  width:52px; height:52px; border-radius:15px; position:relative; z-index:1;
  background:var(--accent-light); color:var(--accent-dark);
  display:flex; align-items:center; justify-content:center;
  font-size:16px; font-weight:800;
}
.timeline-num::before{ content:counter(etape,decimal-leading-zero); }

.timeline-step::before{
  content:""; position:absolute; left:25px; top:52px; bottom:0;
  width:2px; background:var(--border);
}
.timeline-step:last-child::before{ display:none; }

.timeline-body{ padding-top:4px; }
.timeline-body h3{ font-size:19px; font-weight:800; letter-spacing:-0.01em; margin:0 0 10px; }
.timeline-body > p{ font-size:15px; color:var(--text-muted); margin:0 0 16px; }

.timeline-detail{ background:var(--bg-soft); border-radius:10px; padding:16px 20px; }
.timeline-label{
  font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--accent); margin:0 0 10px;
}
.timeline-detail ul{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px 10px; }
.timeline-detail li{
  background:#fff; border:1px solid var(--border); border-radius:20px;
  padding:5px 13px; font-size:13.5px; color:var(--text);
}

.scope-band{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; margin-top:48px; }
.scope-item{ background:#fff; padding:26px 24px; }
.scope-item h3{ font-size:16px; font-weight:800; margin:0 0 8px; }
.scope-item p{ position:relative; padding-left:20px; font-size:14px; color:var(--text-muted); margin:0; }
.scope-item p::before{ content:"\2192"; position:absolute; left:0; color:var(--accent); font-weight:700; }

.budget{ display:grid; grid-template-columns:1fr 0.85fr; gap:56px; align-items:center; }
.budget h2{ font-size:32px; margin:16px 0 18px; }
.budget-points{ list-style:none; margin:0; padding:0; }
.budget-points li{
  background:#fff; border:1px solid var(--border); border-radius:12px;
  padding:16px 20px 16px 48px; margin-bottom:12px; position:relative;
  font-size:15px; font-weight:600;
}
.budget-points li:last-child{ margin-bottom:0; }
.budget-points li::before{
  content:""; position:absolute; left:20px; top:22px;
  width:13px; height:8px;
  border-left:2.5px solid var(--accent); border-bottom:2.5px solid var(--accent);
  transform:rotate(-45deg);
}

@media (max-width:900px){
  .approach-grid{ grid-template-columns:1fr; }
  .scope-band{ grid-template-columns:1fr; }
  .budget{ grid-template-columns:1fr; gap:32px; }
  .budget h2{ font-size:26px; }
  .approach-key{ font-size:15px; padding:20px 22px; }

  .timeline-step{ grid-template-columns:42px 1fr; gap:16px; padding-bottom:32px; }
  .timeline-num{ width:42px; height:42px; border-radius:12px; font-size:14px; }
  .timeline-step::before{ left:20px; top:42px; }
  .timeline-body h3{ font-size:17px; }
  .timeline-detail{ padding:14px 16px; }
}
