.branch-map { display:block; width:100%; height:auto; margin-block:0 calc(18px + 1.5rem) }
.branch-map a:is(:hover,:focus-visible),
.workshops:has(#research:is(:hover,:focus-within)) [data-stage="research"],
.workshops:has(#products:is(:hover,:focus-within)) [data-stage="products"],
.workshops:has(#advisory:is(:hover,:focus-within)) [data-stage="advisory"] {
  color: white;
  stroke-width: 4;
  filter: drop-shadow(0 0 3px #79b7ff);
}
.branch-map a { color: inherit; cursor: pointer; }
.branch-map a:hover { outline: none; }
.branch-map a:focus-visible .stage-hit { stroke: #fff; stroke-width: 1.5; }
.workshop-grid article { position: relative; padding-block: 12px; }
.workshop-grid .workshop-action a:is(:hover, :focus-visible) { outline: none; }
.workshop-action a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.workshop-grid article:is(:hover, :focus-within),
.workshops:has(.branch-map [data-stage="research"]:is(:hover,:focus-visible)) #research,
.workshops:has(.branch-map [data-stage="products"]:is(:hover,:focus-visible)) #products,
.workshops:has(.branch-map [data-stage="advisory"]:is(:hover,:focus-visible)) #advisory {
  background-color: #2b496d;
  box-shadow: inset 0 0 0 2px #a9cff5;
}
.workshops .workshop-grid::before,.workshops .workshop-grid::after { display:none }
.vertical-branch, .mobile-return { display: none; }

@media (max-width: 700px) {
  .branch-map { display: none; }
  .workshops .workshop-grid article {
    margin: 0;
    padding: 26px 12px 22px 0;
    padding-left: clamp(78px, 14vw, 96px);
    border: 0;
  }
  .workshops .workshop-grid article + article { border-top: 0; }
  .vertical-branch {
    display: block;
    position: absolute;
    inset: 0 auto 0 0;
    width: clamp(74px, 13vw, 90px);
    z-index: 3;
    color: #c8ddf4;
    stroke-width: 2.5;
  }
  .vertical-branch > svg { display: block; height: 100%; margin-inline: auto; }
  /* The content midpoint is 2px below the row midpoint (26px top, 22px bottom). */
  .vertical-branch .branch-mark { transform-box: view-box; transform: translateY(calc(50% + 2px)); }
  .vertical-branch circle { fill: var(--navy); }
  .vertical-branch circle[fill] { fill: currentColor; }
  .vertical-branch .return-path { stroke-dasharray: .1 5; }
  .vertical-branch:hover { outline: none; }
  .vertical-branch:focus-visible { outline: 2px solid #a9cff5; outline-offset: -2px; }
  .workshops .workshop-action a { margin-inline: 0; padding-inline: 0; }
  .mobile-return {
    display: block;
    margin: 12px 0 0;
    padding-left: clamp(78px, 14vw, 96px);
    color: #c8ddf4;
    font-size: 14px;
  }
}

.home-next { display: flex; justify-content: flex-end; padding-bottom: 24px; }
.home-next .text-link { margin-inline: 0; font-size: 15px; }

.mobile-return svg { vertical-align: -0.15em; }
.sr-idea { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
