/* Shared visual primitives; the page's copy and editorial composition remain native HTML. */
.capability-page { position: relative; }
.capability-page main { position: relative; z-index: 1; }
.capability-backdrop { position: absolute; inset: 0 0 auto; height: 1100px; pointer-events: none; }
.capability-backdrop img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.capability-backdrop::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg,rgba(0,6,8,.55),rgba(0,6,8,.75) 55%,var(--ink)); }
.capability-page .solutions-header { max-width: 1800px; margin: auto; }
.direction-icon { width: 21px; height: 21px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; }
.capability-container { width: min(100%, 1440px); margin: auto; }
.capability-hero { padding: 25px 5vw 78px; min-height: 544px; }
.capability-breadcrumb { margin-bottom: 24px; }
.capability-breadcrumb ol { display: flex; flex-wrap: wrap; align-items: center; gap: 0 12px; list-style: none; margin: 0; padding: 0; font: 12px/1.5 var(--mono); color: #c5d1d5; }
.capability-breadcrumb li { display: inline-flex; align-items: center; gap: 12px; }
.capability-breadcrumb li + li::before { content: "/"; color: #a5b9bb; }
.capability-breadcrumb a, .capability-breadcrumb [aria-current] { display: inline-flex; align-items: center; min-height: 44px; }
.capability-breadcrumb [aria-current] { color: var(--teal); }
.capability-breadcrumb a:hover { color: var(--teal); }
.capability-hero-content { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(0,1fr); gap: 7vw; align-items: start; }
.capability-hero h1 { font-size: clamp(60px,6.2vw,104px); line-height: 1.04; letter-spacing: -.055em; font-weight: 400; margin: 0; }
.capability-hero h1 > * { display: block; }
.capability-page em { color: var(--teal); font-family: Georgia, "Times New Roman", serif; font-weight: 400; letter-spacing: -.04em; }
.capability-hero-copy { padding-top: 8px; }
.capability-page p { font-size: 18px; line-height: 1.55; color: var(--muted); margin: 0 0 24px; }
.capability-page .capability-lead { color: var(--paper); font-size: clamp(20px,1.8vw,27px); line-height: 1.35; margin-bottom: 26px; }
.capability-cta { padding: 14px 28px; min-height: 52px; font-size: 16px; gap: 24px; }
.capability-text-link { display: inline-flex; align-items: center; gap: 16px; min-height: 44px; font-size: 17px; color: var(--teal); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.capability-hero-copy > .capability-text-link { display: flex; width: fit-content; margin-top: 12px; }
.capability-section { position: relative; padding: 72px 5vw; border-top: 1px solid var(--line); background: var(--ink); scroll-margin-top: 24px; }
.capability-section-grid { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: 7vw; }
.capability-page h2 { font-size: clamp(38px,3.65vw,60px); line-height: 1.08; letter-spacing: -.04em; font-weight: 400; margin: 0 0 30px; }
.capability-page h3 { font-size: clamp(22px,1.8vw,28px); line-height: 1.25; letter-spacing: -.025em; font-weight: 400; margin: 0 0 10px; }
.capability-section-intro { max-width: 470px; }
.capability-section-intro p:last-child { margin-bottom: 0; }
.teal { color: var(--teal); }
.capability-situations, .capability-steps { list-style: none; padding: 0; margin: 0; }
.capability-situations li, .capability-steps li { display: grid; grid-template-columns: 56px minmax(0,1fr); gap: 26px; padding: 28px 0; border-top: 1px solid var(--line); }
.capability-situations li:first-child { padding-top: 0; border-top: 0; }
.capability-situations li:last-child, .capability-steps li:last-child { padding-bottom: 0; }
.capability-situations p, .capability-steps p { margin-bottom: 0; }
.capability-number { font: 22px/1.4 var(--mono); color: var(--teal); }
.capability-process > .capability-container > h2 { margin-bottom: 54px; }
.capability-page .process-statement { font-size: clamp(25px,2.4vw,34px); line-height: 1.35; letter-spacing: -.02em; color: var(--paper); }
.capability-page .client-input { display: flex; gap: 20px; margin-top: 20px; font-size: 15px; line-height: 1.5; }
.client-input span { flex: none; max-width: 90px; min-width: 75px; padding-top: 4px; color: #7faeb0; font: 10px/1.5 var(--mono); letter-spacing: .07em; text-transform: uppercase; }
.capability-example { background: #032022; }
.capability-page .capability-section-label { font: 11px/1.5 var(--mono); letter-spacing: .07em; color: var(--teal); margin-bottom: 18px; }
.capability-response-paths { margin: 0; }
.capability-response-paths > div { display: grid; grid-template-columns: minmax(110px,.45fr) minmax(0,1fr); gap: 30px; padding: 30px 0; border-top: 1px solid var(--line); }
.capability-response-paths dt { font-size: 24px; line-height: 1.3; letter-spacing: -.02em; }
.capability-response-paths dd { margin: 0; font-size: 17px; line-height: 1.5; color: var(--muted); }
.capability-connections { list-style: none; padding: 0; margin: 0; }
.capability-connections li { border-top: 1px solid var(--line); }
.capability-connections a { display: block; position: relative; padding: 24px 48px 24px 0; }
.capability-connections .direction-icon { position: absolute; right: 4px; top: 28px; color: var(--muted); }
.capability-connections p { margin-bottom: 0; }
.capability-connections a:hover h3, .capability-connections a:hover .direction-icon { color: var(--teal); }
.capability-faq-grid { grid-template-columns: minmax(0,.6fr) minmax(0,1.4fr); }
.capability-faq details { border-top: 1px solid var(--line); }
.capability-faq summary { display: grid; grid-template-columns: 32px minmax(0,1fr); gap: 22px; align-items: center; padding: 24px 0; cursor: pointer; list-style: none; }
.capability-faq summary::-webkit-details-marker { display: none; }
.faq-mark { display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid var(--teal); border-radius: 50%; color: var(--teal); font: 22px/1 var(--sans); }
.faq-mark::before { content: "+"; }
.capability-faq details[open] .faq-mark::before { content: "−"; }
.capability-faq summary h3 { font-size: 20px; line-height: 1.4; margin: 0; }
.capability-faq summary:hover h3 { color: var(--teal); }
.capability-faq summary:focus-visible { outline: 2px solid var(--teal); outline-offset: 5px; }
.capability-faq details > div { padding: 0 0 26px 54px; }
.capability-faq details p { font-size: 17px; margin-bottom: 0; }
.capability-next .capability-section-grid { grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr); align-items: center; }
.capability-next h2 { margin-bottom: 0; }
.capability-next-links { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; }
.capability-page .solutions-footer { margin: 0 5vw; padding-left: 0; padding-right: 0; }
@media (min-width: 1800px) {
  .capability-page .solutions-footer { max-width: 1440px; margin: auto; }
}
@media (max-width: 1150px) {
  .capability-hero-content { grid-template-columns: minmax(0,1fr) minmax(0,.8fr); gap: 5vw; }
  .capability-hero h1 { font-size: 6vw; }
  .capability-section-grid { gap: 5vw; }
  .capability-section { padding-top: 56px; padding-bottom: 56px; }
  .capability-page h2 { font-size: 42px; }
  .capability-situations li, .capability-steps li { grid-template-columns: 38px minmax(0,1fr); gap: 18px; }
  .capability-response-paths > div { grid-template-columns: 1fr; gap: 14px; }
}
@media (max-width: 900px) {
  .capability-hero-content { grid-template-columns: 1fr; gap: 34px; }
  .capability-hero h1 { font-size: clamp(50px,8.5vw,76px); }
  .capability-hero-copy { max-width: 580px; padding-top: 0; }
  .capability-hero { padding-bottom: 56px; }
  .capability-section-grid, .capability-faq-grid, .capability-next .capability-section-grid { grid-template-columns: 1fr; gap: 36px; }
  .capability-section-intro { max-width: 580px; }
  .capability-situations li:first-child { padding-top: 24px; border-top: 1px solid var(--line); }
  .capability-process > .capability-container > h2 { margin-bottom: 30px; }
  .capability-response-paths > div { grid-template-columns: minmax(130px,.4fr) minmax(0,1fr); }
}
@media (max-width: 720px) {
  .capability-backdrop::after { background: linear-gradient(180deg,rgba(0,6,8,.6),rgba(0,6,8,.8) 65%,var(--ink)); }
  .capability-hero { padding: 12px 22px 48px; min-height: 0; }
  .capability-breadcrumb { margin-bottom: 22px; }
  .capability-breadcrumb ol { font-size: 10px; gap: 0 8px; }
  .capability-breadcrumb li { gap: 8px; }
  .capability-hero h1 { font-size: clamp(34px,9.5vw,66px); }
  .capability-hero-content { gap: 28px; }
  .capability-page .capability-lead { font-size: 21px; }
  .capability-page p { font-size: 17px; }
  .capability-section { padding: 44px 22px; }
  .capability-page h2 { font-size: 36px; }
  .capability-page h3 { font-size: 23px; }
  .capability-situations li, .capability-steps li { grid-template-columns: 30px minmax(0,1fr); gap: 14px; }
  .capability-number { font-size: 18px; }
  .capability-page .client-input { display: block; font-size: 15px; }
  .client-input span { display: block; max-width: none; padding: 0; margin-bottom: 8px; }
  .capability-response-paths > div { grid-template-columns: 1fr; gap: 12px; }
  .capability-faq summary { gap: 14px; padding: 21px 0; }
  .capability-faq summary h3 { font-size: 18px; }
  .capability-faq details > div { padding-left: 0; }
  .capability-page .solutions-footer { margin-left: 22px; margin-right: 22px; }
}
@media (max-width: 360px) {
  .capability-hero, .capability-section { padding-left: 18px; padding-right: 18px; }
  .capability-page h2 { font-size: 32px; }
  .capability-hero h1 { font-size: 33px; }
  .capability-cta { padding-left: 22px; padding-right: 22px; font-size: 15px; gap: 16px; }
  .capability-page .solutions-footer { margin-left: 18px; margin-right: 18px; }
}
@media (forced-colors: active) {
  .capability-backdrop { display: none; }
  .capability-section, .capability-example { background: Canvas; }
  .capability-page em, .capability-number, .client-input span, .capability-page .capability-section-label, .capability-text-link { color: LinkText; }
  .faq-mark { color: ButtonText; border-color: ButtonText; }
  .capability-section, .capability-situations li, .capability-steps li, .capability-connections li, .capability-response-paths > div, .capability-faq details { border-color: CanvasText; }
}
