/* Adoption atlas. Stair treads rise by 30px; each illustration shares a 400 × 240
   drafting space. HTML carries the map labels; SVG carries only the diagrams. */
.stages { border-top: 1px solid #c6c8bc; }
.stages-intro { max-width: 650px; font-size: 17px; line-height: 1.7; color: #62655b; }
.stages-link { display: block; width: fit-content; margin-top: 16px; color: #a74220; font-size: 12px; border-bottom: 1px solid currentColor; padding-bottom: 4px; }
.stair-map { display: grid; grid-template-columns: 3fr 2fr 2fr; margin: 60px 0 64px; gap: 12px; }
.stair-phase { min-width: 0; display: flex; flex-direction: column; }
.stair-steps { display: flex; align-items: end; padding: 0; margin: 0; list-style: none; flex: 1; }
.stair-steps li { position: relative; flex: 1; min-width: 0; height: var(--rise); padding: 16px 10px; border-top: 2px solid #7d876f; border-left: 1px solid #c6c8bc; background: #e1e2d8; }
.stair-steps li:nth-child(even) { background: #d9ddcf; }
.stair-steps b { display: block; font-size: 11px; font-weight: 400; margin-bottom: 8px; }
.stair-steps .step-name { display: block; font-size: clamp(10px, 1.1vw, 15px); font-weight: 600; }
.stair-steps .step-flag { position: absolute; bottom: 14px; left: 10px; right: 8px; font-size: 10px; line-height: 1.6; letter-spacing: .6px; font-weight: 700; }
.stair-steps .start { --rise: 100px; border-top-color: #a74220; }
.stair-steps .start .step-flag { color: #a74220; }
.stair-steps .start b::before { content: ''; display: inline-block; width: 6px; height: 6px; background: #a74220; border-radius: 50%; margin-right: 6px; }
.stair-steps .context { --rise: 130px; }
.stair-steps .harness { --rise: 160px; }
.stair-steps .unlock { --rise: 190px; background: #262e28; color: #ecebe4; border-top-color: #a74220; }
.stair-steps .governance { --rise: 220px; }
.stair-steps .handoffs { --rise: 250px; }
.stair-steps .orchestration { --rise: 280px; }
.phase-label { border: 1px solid #aab09f; border-top: 0; margin: 12px 0 0; padding: 12px 8px; text-align: center; font-size: 10px; font-weight: 700; letter-spacing: 1.1px; }
.phase-label span { font-weight: 400; margin-left: 8px; }
.stage-row { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(32px, 7vw, 110px); align-items: center; border-top: 1px solid #c6c8bc; padding: 42px 0; }
.stage-kicker { display: flex; align-items: center; gap: 20px; margin: 0 0 20px; font-size: 10px; font-weight: 700; letter-spacing: 1.2px; color: #62655b; }
.stage-kicker .stage-number { font-size: 22px; font-weight: 400; letter-spacing: -1px; color: #a74220; }
.stage-row h3 { font-size: clamp(25px, 2.5vw, 36px); line-height: 1.2; letter-spacing: -1px; }
.stage-description { font-size: 15px; line-height: 1.75; color: #62655b; margin: 20px 0; max-width: 60ch; }
.stage-meta { font-size: 9px; line-height: 1.8; letter-spacing: .8px; font-weight: 700; color: #62655b; margin: 0; }
.stage-tile { position: relative; margin: 0; background-color: #e1e2d8; background-image: linear-gradient(#c9cbc244 1px, transparent 1px), linear-gradient(90deg, #c9cbc244 1px, transparent 1px); background-size: 24px 24px; border: 1px solid #c6c8bc; }
.stage-tile svg { display: block; width: 100%; height: auto; }
.stage-tile .line { fill: none; stroke: #7d876f; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.stage-tile .plate { fill: #f2f2eb; stroke: #7d876f; stroke-width: 1.5; }
.stage-tile .ink { fill: #262e28; }
.stage-tile .sage { fill: #c5cdb8; }
.stage-tile .accent { fill: #a74220; }
.stage-tile .rust-line { fill: none; stroke: #a74220; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.stage-tile .faded { opacity: .38; }
.stage-tile text { fill: #262e28; font: 14px Arial, sans-serif; letter-spacing: .5px; }
.stage-row.stage-unlock { border-top: 2px solid #a74220; }
.stage-unlock .stage-tile { border-color: #7d876f; }
.stages-cta { display: flex; align-items: center; gap: 30px; padding-top: 48px; }
.stages-cta p { max-width: 36ch; font-size: 12px; line-height: 1.7; color: #62655b; margin: 0; }
@media (min-width: 621px) and (max-width: 1000px) {
  .nav nav { gap: 16px; font-size: 12px; }
  .nav-cta { gap: 12px; font-size: 12px; }
  .nav .wordmark { font-size: 10px; gap: 8px; }
  .phase-label { font-size: 10px; letter-spacing: .3px; padding-inline: 2px; }
  .phase-label span { display: block; margin: 6px 0 0; }
  .stair-steps li { padding-inline: 6px; }
  .stair-steps .step-flag { left: 6px; font-size: 10px; letter-spacing: 0; }
}
@media (max-width: 750px) {
  .stage-row { grid-template-columns: minmax(0, 1fr); gap: 24px; padding: 32px 0; }
  .stage-tile { width: 100%; max-width: 480px; }
  .stages-cta { flex-direction: column; align-items: flex-start; gap: 18px; }
}
@media (max-width: 620px) {
  .stages .section-top > p:last-child { text-wrap: balance; }
  .stages .section-top > p:last-child br { display: none; }
  .stages h2, .stages h3 { text-wrap: balance; }
  .stages-intro { font-size: 15px; }
  .stair-map { grid-template-columns: minmax(0, 1fr); margin: 34px 0 40px; gap: 20px; }
  .phase-label { order: -1; border: 0; border-left: 1px solid #7d876f; padding: 0 12px; margin: 0 0 14px; text-align: left; font-size: 9px; }
  .stair-steps { display: block; }
  .stair-steps li { display: grid; grid-template-columns: 30px 1fr; align-items: center; gap: 0 8px; height: auto; min-height: 54px; padding: 12px; margin-left: 0; }
  .stair-steps li:nth-child(2) { margin-left: 14px; }
  .stair-steps li:nth-child(3) { margin-left: 28px; }
  .stair-steps b { font-size: 11px; margin: 0; }
  .stair-steps .step-name { font-size: 14px; }
  .stair-steps .step-flag { position: static; grid-column: 2; font-size: 9px; margin-top: 5px; }
  .stage-row h3 { font-size: 27px; }
  .stage-description { font-size: 14px; }
  .stage-kicker { margin-bottom: 16px; font-size: 9px; }
  .stages-cta .button { font-size: 12px; gap: 12px; padding: 18px 16px; max-width: 100%; }
}
.stage-proof { margin: 16px 0 20px; padding-left: 12px; border-left: 1px solid #7d876f; color: #4d5847; font-size: 13px; line-height: 1.65; }
@media (max-width: 620px) {
  .stage-proof { margin: 14px 0 18px; padding-left: 10px; font-size: 12px; line-height: 1.6; }
}
