/* Company origins: an ascending editorial timeline, with a native contour-map background. */
.co .co-story-map { position: relative; padding: 26px 0 20px; background: #fafdff url('company/story-contours.svg') center / cover no-repeat; }
.co-story-map .co-in { position: relative; }
/* Keep type and timeline on the same scale. A minimum canvas height reserves
   space for milestone copy when Retina scaling or browser chrome shortens the viewport. */
.co-story-canvas { --story-height: clamp(620px, calc(100svh - 285px), 760px); position: relative; height: var(--story-height); }
.co-story-intro { position: absolute; top: 8px; left: 0; width: 49%; z-index: 1; }
.co-story-intro .co-kicker { color: #14559b; margin-bottom: 16px !important; }
.co-story-intro .co-year { margin-bottom: 16px; gap: 24px; }
.co-story-intro .co-year strong { font-size: clamp(88px, calc(var(--story-height) * .145), 110px); font-weight: 800; }
.co-story-intro .co-year span { font-size: 13px; }
.co .co-story-intro h2 { font-size: clamp(31px, min(3vw, calc(var(--story-height) * .057)), 43px); line-height: 1.1; letter-spacing: -.04em; }
.co-story-intro .co-lead { font-size: clamp(14px, min(1.1vw, calc(var(--story-height) * .025)), 18px); line-height: 1.55; margin-top: 16px !important; max-width: 710px; }
.co main svg.co-story-curve { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; overflow: visible; stroke: none; }
.co-story-curve path { stroke: #b9cbe8; stroke-width: 1.3; vector-effect: non-scaling-stroke; }
.co-story-milestones { list-style: none; padding: 0; margin: 0; }
.co-story-milestones li { position: absolute; left: var(--story-x); top: var(--story-y); width: 16%; }
.co-story-node { position: absolute; width: 15px; height: 15px; top: 0; left: 0; transform: translate(-50%, -50%); border: 3px solid #fff; border-radius: 50%; background: #145dbb; box-shadow: 0 0 0 7px #deebfc; }
.co-story-milestones li.key .co-story-node { background: var(--red); box-shadow: 0 0 0 7px #ffe3e6; }
.co-story-milestone-copy { margin-top: 21px; padding: 3px 6px 5px 18px; border-left: 1px dashed #cbd9ee; }
.co-story-milestones small { display: block; color: #245c9f; font-size: clamp(8px, .58vw, 10px); line-height: 1.4; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.co-story-milestones li.key small { color: #d62537; }
.co .co-story-milestones h3 { font-size: clamp(15px, 1.12vw, 19px); line-height: 1.15; font-weight: 800; margin: 7px 0 9px; letter-spacing: -.035em; }
.co-story-milestones p { color: #5a6a8c; font-size: clamp(12px, .84vw, 14px); line-height: 1.5; }
.co-story-date { display: block; font-size: 10px; letter-spacing: .22em; color: #7c8db1; margin-top: 16px; font-weight: 700; text-transform: uppercase; }
.co-story-values, .co-story-location, .co-story-caption { position: absolute; color: #9cb2d4; font-size: 9px; font-weight: 700; line-height: 2.2; letter-spacing: .24em; text-transform: uppercase; }
.co-story-values { top: 35px; left: 50%; border-left: 1px solid #c4d5ee; padding-left: 17px; }
.co-story-location { right: 0; top: 0; text-align: right; }
.co-story-caption { display: none; bottom: 0; left: 0; padding-left: 14px; border-left: 1px solid #bfcfe8; line-height: 1.7; }
.co-story-map .co-fullstory { position: relative; margin-top: 15px; border-color: #cbd9eb; background: #ffffff66; }
.co-story-map .co-fullstory summary { padding-block: 16px; }
.co-story-map .co-fullstory[open] { background: #fffffff2; }
.co-story-map .co-fullstory-text { padding-inline: 18px; }
@media (max-width: 1300px) {
  .co .co-story-map { padding-block: 38px; background-size: auto 100%; }
  .co-story-canvas { height: auto; }
  .co-story-intro { position: relative; top: auto; width: 100%; max-width: 740px; }
  .co-story-intro .co-year strong { font-size: 108px; }
  .co .co-story-intro h2 { font-size: 40px; }
  .co-story-intro .co-lead { font-size: 17px; }
  .co main svg.co-story-curve, .co-story-values, .co-story-location, .co-story-caption { display: none; }
  .co-story-milestones { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 30px; margin-top: 42px; padding-left: 8px; }
  .co-story-milestones li { position: relative; left: auto; top: auto; width: auto; padding-left: 12px; border-left: 1px solid #cbd9ee; }
  .co-story-node { top: 7px; }
  .co-story-milestone-copy { border: 0; margin-top: 0; padding-left: 14px; }
  .co-story-milestones small { font-size: 10px; }
  .co .co-story-milestones h3 { font-size: 19px; }
  .co-story-milestones p { font-size: 14px; }
  .co-story-map .co-fullstory { margin-top: 30px; }
}
@media (max-width: 600px) {
  .co-story-intro .co-year { gap: 18px; margin-bottom: 23px; }
  .co-story-intro .co-year strong { font-size: 85px; }
  .co-story-intro .co-year span { font-size: 11px; padding-left: 12px; }
  .co .co-story-intro h2 { font-size: 34px; }
  .co-story-intro .co-lead { font-size: 16px; }
  .co-story-milestones { grid-template-columns: 1fr; gap: 0; }
  .co-story-milestones li { padding-bottom: 29px; }
  .co-story-milestones li:last-child { padding-bottom: 0; }
}
