.firm-story {
  --story-ink: #16384b;
  --story-muted: #4b616b;
  --story-rule: #c6d2d5;
  background: #f6f6f1;
  color: var(--story-ink);
}
.story-inner {
  width: min(1280px, calc(100% - clamp(40px, 8vw, 144px)));
  margin-inline: auto;
}
.story-crumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 10px;
  padding-block: 25px 0;
  color: var(--story-muted);
  font-size: 14px;
}
.story-crumbs a, .story-photo a, .story-source a { text-underline-offset: .24em; }
.story-opening {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  align-items: center;
  gap: clamp(36px, 5.6vw, 88px);
  padding-block: clamp(37px, 4vw, 60px) clamp(48px, 5.4vw, 82px);
}
.story-heading-line { width: 52px; height: 3px; margin: 0 0 24px; background: #24799e; }
body.vision-v7 main .firm-story h1 {
  margin: 0;
  color: var(--story-ink);
  font-size: clamp(42px, 4.8vw, 74px) !important;
  font-weight: 500;
  line-height: 1.18;
  letter-spacing: -.04em;
}
body.vision-v7 main .story-lead {
  max-width: 26em;
  margin: 24px 0 14px;
  color: #284956;
  font-size: clamp(20px, 1.7vw, 25px);
  line-height: 1.55;
  text-wrap: balance;
}
body.vision-v7 main .story-intro { max-width: 37em; margin: 0; color: var(--story-muted); font-size: 17px; line-height: 1.85; }
.story-clause { display: inline-block; max-width: 100%; }
.story-photo { min-width: 0; margin: 0; }
.story-photo img { display: block; width: 100%; height: auto; aspect-ratio: 3/2; }
.story-photo figcaption {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 4px 12px;
  margin-top: 10px;
  color: var(--story-muted);
  font-size: 13px;
  line-height: 1.5;
}
.story-values {
  padding-block: clamp(39px, 4.4vw, 64px) clamp(44px, 4.9vw, 76px);
  background: #16394b;
  color: #fff;
}
body.vision-v7 main .firm-story h2 {
  margin: 0;
  color: inherit;
  font-size: clamp(29px, 2.65vw, 42px) !important;
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: -.025em;
}
.story-principles {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: clamp(24px, 3.55vw, 58px);
  row-gap: 16px;
  margin-top: clamp(24px, 2.5vw, 38px);
}
.story-principle {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 2;
  align-content: start;
  border-top: 1px solid #65818e;
  padding-top: 20px;
}
body.vision-v7 main .story-principle h3 {
  margin: 0;
  color: #fff;
  font-size: clamp(22px, 1.85vw, 29px) !important;
  font-weight: 500;
  line-height: 1.35;
}
.firm-story .story-principle h3 small { display: inline; font-size: max(14px, 0.63em) !important; letter-spacing: 0; }
.story-principle p { margin: 0; color: #e1ebee; font-size: 16px; line-height: 1.85; }
.story-explore { padding-block: clamp(42px, 5vw, 72px) 30px; }
.story-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(24px, 4vw, 66px);
  margin-top: clamp(24px, 2.5vw, 38px);
}
.story-link {
  display: grid;
  grid-template-columns: clamp(94px, 10vw, 156px) minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(15px, 2.1vw, 32px);
  padding-block: 20px;
  border-top: 1px solid var(--story-rule);
  color: var(--story-ink);
  text-decoration: none;
}
.story-link:nth-last-child(-n+2) { border-bottom: 1px solid var(--story-rule); }
.story-thumb { display: block; aspect-ratio: 3/2; overflow: hidden; }
.story-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.story-link-name { font-size: clamp(20px, 1.75vw, 26px); line-height: 1.4; overflow-wrap: anywhere; }
.story-link-arrow { margin-right: 4px; color: #39708a; font-size: 1.3em; }
.story-link:hover { color: #14648a; }
.story-link:hover .story-link-name { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .24em; }
.firm-story a:focus-visible { outline: 2px solid #2581ac; outline-offset: 3px; }
body.vision-v7 main .story-source { margin: 21px 0 0; color: var(--story-muted); font-size: 13px; }
@media (max-width: 920px) {
  .story-opening { gap: 30px; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .story-principles { grid-template-columns: 1fr; gap: 0; }
  .story-principle {
    grid-row: auto;
    grid-template-rows: auto;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.6fr);
    gap: 24px;
    padding-block: 20px;
  }
  .story-principle:last-child { padding-bottom: 0; }
}
@media (max-width: 720px) {
  .story-crumbs { padding-top: 16px; font-size: 13px; }
  .story-opening { grid-template-columns: 1fr; gap: 24px; padding-block: 28px 36px; }
  .story-heading-line { width: 36px; margin-bottom: 16px; }
  body.vision-v7 main .story-lead { margin: 16px 0 10px; }
  body.vision-v7 main .story-intro { font-size: 16px; }
  .story-photo { width: min(100%, 540px); }
  .story-principle { grid-template-columns: 1fr; gap: 10px; }
  .story-links { grid-template-columns: 1fr; }
  .story-link { grid-template-columns: clamp(83px, 22vw, 134px) minmax(0, 1fr) auto; padding-block: 14px; }
  .story-link:nth-last-child(2) { border-bottom: 0; }
}
