/* A compact alternating composition with a dedicated narrow path between card and timing. */
.retainer-timeline{max-width:1000px;margin-left:auto;margin-right:auto}
.retainer-timeline::before{display:none}
.timeline-route{position:absolute;inset:0;width:100%;height:100%;z-index:-1;overflow:visible;pointer-events:none}
.timeline-route path{fill:none;stroke:#c5cfda;stroke-width:1.4;vector-effect:non-scaling-stroke}
.retainer-step{grid-template-columns:minmax(0,2fr) 64px minmax(0,1fr);padding-bottom:0;margin-bottom:64px}
.step-conferences{grid-template-columns:minmax(0,1fr) 64px minmax(0,2fr)}
.retainer-step .timing-note{padding:24px 8px}
.time-ring{width:184px;height:184px}
.timing-caption{text-align:center}
.timeline-node{position:relative;border:0;border-radius:0;background:#fff;width:46px;height:50px;padding:7px;box-sizing:border-box;z-index:1}
.timeline-node img{display:block;width:34px;height:34px;object-fit:contain}
.step-preparation .timeline-node,.step-execution .timeline-node{align-self:start;margin-top:24px}
.step-execution .timeline-node img{width:36px;height:36px}
.timeline-node.path-dot{width:20px;height:20px;border-radius:50%;padding:0}
.timeline-node.path-dot::after{content:"";position:absolute;width:6px;height:6px;border-radius:50%;background:#74869d;top:7px;left:7px}
.timeline-milestone{margin:0 0 48px}
.timeline-close{flex-direction:column;gap:12px;padding-top:0;background:transparent;min-height:0}
.timeline-close .closing-puzzle{box-sizing:content-box;width:36px;height:36px;flex-basis:36px;padding:8px;background:#fff;position:relative;z-index:1}
.timeline-close h3{background:#fff;padding:0 12px}
.timeline-timing-note{background:#fff;margin-top:18px}
@media(max-width:800px){
 .retainer-step,.step-conferences{grid-template-columns:36px minmax(0,1fr);gap:0 12px;margin-bottom:40px;padding-bottom:0}
 .retainer-step .timeline-node{grid-column:1;grid-row:1;width:36px;height:44px;padding:5px 2px;margin-top:30px;align-self:start}
 .retainer-step .timeline-node img{width:32px;height:32px}
 .retainer-step .timeline-node.path-dot{width:20px;height:20px;margin-top:42px;padding:0}
 .retainer-step .timing-note{padding:16px 0 24px}
 .time-ring{width:140px;height:140px}
 .timing-caption{text-align:left}
 .timeline-milestone{margin-bottom:24px}
 .timeline-close{margin-left:0;align-items:flex-start;padding-left:0;flex-direction:row;gap:12px;min-height:52px}
 .timeline-close .closing-puzzle{width:32px;height:32px;padding:8px 2px;flex-basis:32px}
 .timeline-close h3{padding:0;margin-top:10px}
 .timeline-timing-note{margin-left:48px}
}
@media(max-width:420px){.time-ring{width:120px;height:120px}}
