.solutions-page {
  --site-section-space: clamp(60px, 5.4vw, 80px);
  --site-heading-space: 32px;
}
.solutions-page .solutions-hero,
.solutions-page .solutions-hero-inner { min-height: 520px; }
#main-content.solutions-page .solutions-hero-inner { padding-block: 64px; }
.solutions-page .solutions-hero h1 { margin: 0; }
.solutions-page .solutions-hero-copy > p { max-width: 620px; }
.solutions-page .solutions-hero-actions { gap: 24px; margin-top: 28px; }
.solutions-page .solution-topics { background: #fff; }
.solutions-page .solution-section-heading { grid-template-columns: minmax(0, 1fr); gap: 0; margin-bottom: var(--site-heading-space); }
.solutions-page .solution-section-heading h2 { max-width: none; margin-top: 10px; }
.solution-topic-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.solution-topic-link { display: flex; flex-direction: column; min-width: 0; color: #182c3e; text-decoration: none; scroll-margin-top: 40px; }
.solution-topic-link figure { margin: 0; overflow: hidden; background: #edf1f5; }
.solution-topic-link img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; transition: transform 240ms ease; }
.solution-topic-copy { display: flex; flex: 1; flex-direction: column; padding-top: 22px; }
.solution-topic-copy h3 { margin: 0; font-size: 22px; }
.solution-topic-copy p { margin: 12px 0 0; color: #586978; font-size: 16px; line-height: 1.85; }
.solution-topic-copy > span { display: inline-flex; align-items: center; align-self: flex-start; gap: 14px; min-height: 44px; margin-top: auto; padding-top: 16px; color: #155db1; font-size: 15px; }
.solution-topic-copy > span svg { flex: 0 0 auto; transition: transform 180ms ease; }
.solution-topic-link:is(:hover, :focus-visible) .solution-topic-copy > span svg { transform: translateX(3px); }
.solution-topic-link:hover img { transform: scale(1.025); }
.solution-topic-link:hover h3 { color: #155db1; }
.solution-topic-link:focus-visible { outline: 2px solid #155db1; outline-offset: 8px; }

.solutions-page .solution-overview {
  --solutions-ink: #292d32;
  --solutions-blue: #454b52;
  --site-accent: #666b71;
  background: #f5f6f7;
}
.solutions-page .solution-overview-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; margin-top: 0; border: 0; }
.solutions-page .solution-overview-item { display: block; padding: 24px 0 0; border: 0; border-top: 1px solid #d2d5d8; border-radius: 0; background: none; box-shadow: none; }
.solutions-page .solution-overview-item::before { display: none; }
.solutions-page .solution-overview-copy { padding: 0; border: 0; background: none; }
.solutions-page .solution-overview-copy > p:first-child { color: #6a6f75; font-size: 14px; font-weight: 400; }
.solutions-page .solution-overview-copy h3 { margin-top: 10px; font-size: 22px; }
.solutions-page .solution-overview-description { min-height: 5.55em; margin-top: 14px; color: #62676e; font-size: 16px; line-height: 1.85; }
.solutions-page .solution-overview-copy ul { gap: 8px 16px; margin-top: 20px; padding-top: 18px; border-top: 1px solid #dfe1e3; }
.solutions-page .solution-overview-copy li { color: #565b61; font-size: 14px; line-height: 1.8; }
.solutions-page .solution-overview-copy li > :is(span, a)::before { color: #8b9096; }
.solutions-page .solution-overview-copy a { font-weight: 500; }
.solutions-page .solution-overview-copy a:is(:hover, :focus-visible) { color: #24292f; text-decoration: underline; text-underline-offset: 4px; }
.solutions-page .solution-overview-copy a:focus-visible { outline-color: #70767c; }

.solution-projects { background: #f7f8fa; border-top: 1px solid #e3e7eb; }
.solution-project-groups { border-top: 1px solid #dce1e6; }
.solution-project-group { display: grid; grid-template-columns: 148px minmax(0, 1fr); align-items: start; gap: 28px; padding-block: 24px; border-bottom: 1px solid #dce1e6; }
.solution-project-group h3 { display: flex; align-items: center; gap: 12px; margin: 15px 0 0; color: #292d32; font-size: 18px; }
.solution-project-group h3::before { content: ''; width: 6px; height: 6px; flex: 0 0 auto; background: #356ca4; transform: rotate(45deg); }
.solution-project-group ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: 12px; margin: 0; padding: 0; list-style: none; }
.solution-project-group li { display: flex; align-items: center; min-width: 0; min-height: 60px; padding: 14px 16px; border: 1px solid #dfe5eb; border-left: 2px solid #356ca4; background: #fff; color: #35414d; font-size: 15px; line-height: 1.7; overflow-wrap: anywhere; }

.solution-practices { background: #fff; }
.practice-tabs { display: flex; gap: 36px; padding: 0; border-bottom: 1px solid #dce3e9; overflow-x: auto; scrollbar-width: thin; }
.practice-tabs button { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 10px; min-height: 62px; padding: 14px 2px; border: 0; border-bottom: 2px solid transparent; background: none; color: #586978; font-size: 16px; line-height: 1.5; white-space: nowrap; cursor: pointer; }
.practice-tabs button span { color: #738291; font-size: 13px; font-variant-numeric: tabular-nums; }
.practice-tabs button:hover, .practice-tabs button[aria-selected="true"] { color: #155db1; }
.practice-tabs button[aria-selected="true"] { border-bottom-color: #155db1; font-weight: 600; }
.practice-tabs button:focus-visible { outline: 2px solid #155db1; outline-offset: -4px; }
.practice-panel { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 64px; min-height: 490px; margin-top: 40px; align-items: start; }
.practice-panel[hidden] { display: none; }
.practice-panel:focus-visible { outline: 2px solid #155db1; outline-offset: 8px; }
.practice-figure { margin: 0; min-width: 0; }
.practice-figure img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; background: #edf1f5; }
.practice-figure-interface img { object-fit: contain; background: #f0f3f6; padding: 20px; }
.practice-figure figcaption { margin-top: 14px; color: #687887; font-size: 13px; line-height: 1.7; }
.practice-copy h3 { margin: 0; font-size: 25px; }
.practice-copy > p { margin-top: 16px; max-width: 34em; color: #586978; font-size: 16px; line-height: 1.85; }
.practice-projects { margin: 28px 0 20px; padding: 0; list-style: none; border-top: 1px solid #dce3e9; }
.practice-projects li { padding: 17px 0; border-bottom: 1px solid #e4e9ed; color: #263d52; font-size: 17px; line-height: 1.7; }
.solution-text-link { display: inline-flex; align-items: center; gap: 20px; min-height: 44px; color: #155db1; font-size: 15px; text-decoration: none; }
.solution-text-link:hover { text-decoration: underline; text-underline-offset: 5px; }
@media (max-width: 1000px) {
  .solution-project-group ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .solution-project-group { grid-template-columns: 124px minmax(0, 1fr); gap: 22px; }
  .solution-topic-grid { gap: 24px; }
  .solution-topic-copy h3 { font-size: 21px; }
  .solutions-page .solution-overview-grid { gap: 28px; }
  .solutions-page .solution-overview-description { min-height: 7.4em; }
  .practice-panel { gap: 36px; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); }
}
@media (max-width: 720px) {
  .solutions-page { --site-section-space: 48px; --site-heading-space: 26px; }
  .solutions-page .solutions-hero,
  .solutions-page .solutions-hero-inner { min-height: 460px; }
  #main-content.solutions-page .solutions-hero-inner { padding-block: 44px; }
  .solutions-page .solution-overview-description { min-height: 0; }
  .solutions-page .solution-overview-copy ul { margin-top: 16px; padding-top: 14px; }
  .solution-project-group { grid-template-columns: 1fr; gap: 14px; padding-block: 22px; }
  .solution-project-group h3 { margin: 0; }
  .solution-topic-grid, .solutions-page .solution-overview-grid { grid-template-columns: 1fr; gap: 36px; }
  .solution-topic-link img { aspect-ratio: 16 / 9; }
  .solution-topic-copy { padding-top: 20px; }
  .solution-topic-copy p { min-height: 0; margin-top: 12px; }
  .solution-topic-copy > span { margin-top: 0; padding-top: 12px; }
  .practice-tabs { gap: 26px; }
  .practice-tabs button { min-height: 56px; font-size: 15px; }
  .practice-panel { grid-template-columns: 1fr; gap: 28px; min-height: 0; margin-top: 28px; }
  .practice-figure img { aspect-ratio: 16 / 10; }
  .practice-copy h3 { font-size: 23px; }
  .practice-projects li { font-size: 16px; }
}
@media (max-width: 600px) {
  .solution-project-group ul { grid-template-columns: 1fr; gap: 10px; }
  .solution-project-group li { min-height: 58px; padding: 14px 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .solution-topic-link img, .solution-topic-copy > span svg { transition: none; }
  .solution-topic-link:hover img,
  .solution-topic-link:is(:hover, :focus-visible) .solution-topic-copy > span svg { transform: none; }
}
