.sol-challenge-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  border-top: 1px solid var(--sol-line);
  border-left: 1px solid var(--sol-line);
}

.sol-challenge-card {
  position: relative;
  min-height: 300px;
  padding: 32px 24px;
  border-right: 1px solid var(--sol-line);
  border-bottom: 1px solid var(--sol-line);
  background: #fff;
  transition: transform .2s ease, box-shadow .2s ease;
}

.sol-challenge-card::before {
  position: absolute;
  top: 0;
  right: 24px;
  left: 24px;
  height: 3px;
  background: var(--sol-red);
  content: "";
}

.sol-challenge-card:hover {
  z-index: 1;
  box-shadow: 0 18px 42px rgba(16, 18, 22, .09);
  transform: translateY(-4px);
}

.sol-challenge-card > span,
.sol-reason-grid article > span {
  display: block;
  margin-bottom: 42px;
  color: var(--sol-red);
  font-size: 13px;
  font-weight: 900;
}

.sol-challenge-card p,
.sol-reason-grid p { margin-bottom: 0; font-size: 15px; line-height: 1.75; }

.sol-tab-rail {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  margin-bottom: 38px;
  border-bottom: 1px solid #3a3e45;
}

.sol-tab-rail button {
  min-height: 62px;
  padding: 12px 10px;
  color: #aeb5be;
  border: 0;
  border-bottom: 3px solid transparent;
  background: transparent;
  font-size: 15px;
  font-weight: 900;
  cursor: pointer;
}

.sol-tab-rail button:hover,
.sol-tab-rail button[aria-selected="true"] { color: #fff; border-bottom-color: var(--sol-red); }

.sol-stage-panel {
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  min-height: 500px;
  overflow: hidden;
  border: 1px solid #2c3036;
  border-radius: 8px;
  background: #15181c;
}

.sol-stage-media img { width: 100%; height: 100%; min-height: 500px; object-fit: cover; }

.sol-stage-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 58px;
}

.sol-stage-copy p:not(.sol-kicker) { color: #bfc5ce; line-height: 1.8; }
.sol-stage-copy ul,
.sol-quality-copy ul { display: grid; gap: 12px; margin: 24px 0 0; padding: 0; list-style: none; }
.sol-stage-copy li,
.sol-quality-copy li { position: relative; padding-left: 24px; }
.sol-stage-copy li::before,
.sol-quality-copy li::before {
  position: absolute; top: .6em; left: 0; width: 8px; height: 8px;
  background: var(--sol-red); content: "";
}

.sol-reason-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--sol-line);
}

.sol-reason-grid article {
  min-height: 320px;
  padding: 40px 38px 28px 0;
  border-right: 1px solid var(--sol-line);
}

.sol-reason-grid article + article { padding-left: 38px; }
.sol-reason-grid article:last-child { border-right: 0; }

.sol-table-wrap { overflow-x: auto; border: 1px solid var(--sol-line); background: #fff; }
.sol-table-wrap table { width: 100%; min-width: 820px; border-collapse: collapse; }
.sol-table-wrap th,
.sol-table-wrap td {
  padding: 20px 22px; text-align: left; border-right: 1px solid var(--sol-line);
  border-bottom: 1px solid var(--sol-line); vertical-align: top;
}
.sol-table-wrap th { color: #fff; background: #171a1f; font-size: 14px; }
.sol-table-wrap td { color: #444b55; font-size: 14px; line-height: 1.7; }

.sol-route-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.sol-route-card {
  display: flex; min-width: 0; min-height: 100%; flex-direction: column;
  border: 1px solid var(--sol-line); border-radius: 8px; overflow: hidden;
  background: #fff; transition: transform .2s ease, box-shadow .2s ease;
}
.sol-route-card:hover { box-shadow: 0 18px 42px rgba(16, 18, 22, .1); transform: translateY(-4px); }
.sol-route-media { height: 250px; overflow: hidden; background: #e8eaed; }
.sol-route-media img { width: 100%; height: 100%; object-fit: cover; }
.sol-route-body { display: flex; flex: 1; flex-direction: column; padding: 28px; }
.sol-route-body > span,
.sol-case-grid a > span { margin-bottom: 14px; color: var(--sol-red); font-size: 13px; font-weight: 900; }
.sol-route-body p { flex: 1; line-height: 1.75; }
.sol-route-body strong,
.sol-case-grid strong { color: var(--sol-red); font-size: 14px; }

.sol-capabilities .sol-tab-rail {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-color: var(--sol-line);
}
.sol-capabilities .sol-tab-rail button { color: #6a717b; }
.sol-capabilities .sol-tab-rail button:hover,
.sol-capabilities .sol-tab-rail button[aria-selected="true"] { color: var(--sol-ink); }
.sol-cap-panel {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--sol-line); border-left: 1px solid var(--sol-line);
}
.sol-cap-panel > div {
  min-height: 148px; padding: 26px; border-right: 1px solid var(--sol-line);
  border-bottom: 1px solid var(--sol-line);
}
.sol-cap-panel span { display: block; margin-bottom: 18px; color: var(--sol-red); font-size: 12px; }
.sol-cap-panel strong { line-height: 1.55; }

.sol-case-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.sol-case-grid a { display: flex; min-width: 0; flex-direction: column; }
.sol-case-grid a > div {
  height: 270px; margin-bottom: 24px; overflow: hidden; border-radius: 8px; background: #22262c;
}
.sol-case-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.sol-case-grid a:hover img { transform: scale(1.025); }
.sol-case-grid h3 { color: #fff; }
.sol-case-grid p { flex: 1; color: #bfc5ce; }

.sol-quality { display: grid; grid-template-columns: 1fr 1fr; min-height: 650px; background: #fff; }
.sol-quality-media img { width: 100%; height: 100%; object-fit: cover; }
.sol-quality-copy {
  display: flex; flex-direction: column; justify-content: center;
  max-width: 620px; padding: 72px;
}
.sol-quality-copy p:not(.sol-kicker) { margin-top: 24px; font-size: 17px; line-height: 1.8; }
.sol-quality-copy ul { margin-bottom: 34px; }
.sol-quality-copy .sol-button { align-self: flex-start; }

.sol-faq-layout { display: grid; grid-template-columns: .72fr 1.28fr; gap: 90px; }
.sol-faq-layout > div:first-child { position: sticky; top: 160px; align-self: start; }
.sol-faq-layout h2 { margin-bottom: 24px; }
.sol-faq-list { border-top: 1px solid #cfd4da; }
.sol-faq-list details { border-bottom: 1px solid #cfd4da; }
.sol-faq-list summary {
  display: flex; justify-content: space-between; gap: 24px; padding: 24px 0;
  font-size: 18px; font-weight: 900; cursor: pointer; list-style: none;
}
.sol-faq-list summary::-webkit-details-marker { display: none; }
.sol-faq-list summary span { color: var(--sol-red); font-size: 24px; transition: transform .2s ease; }
.sol-faq-list details[open] summary span { transform: rotate(45deg); }
.sol-faq-list details p { max-width: 760px; margin: -6px 0 24px; line-height: 1.8; }

.sol-final-cta { padding: 96px 32px; text-align: center; color: #fff; background: var(--sol-red); }
.sol-final-cta > div { max-width: 820px; margin: 0 auto; }
.sol-final-cta h2 { font-size: 44px; }
.sol-final-cta p { margin: 20px 0 30px; color: #fff; font-size: 18px; }
.sol-final-cta .sol-button { color: #fff; border-color: #15171a; background: #15171a; }
.sol-final-cta .sol-button:hover { border-color: #000; background: #000; }
