/* Editorial hierarchy across the existing sections. Natural scrolling remains. */
:root { --reading-ink: #355969; --fine-ink: #52727e; }
.section > .section-intro .eyebrow,
.cases-head .eyebrow,
.numbers-copy .eyebrow { color: #397184; font-size: 11px; letter-spacing: .09em; }
.section:not(#ai-stack):not(#contact) .section-intro h2,
#numbers h2 { font-size: clamp(38px, 4.2vw, 64px); line-height: 1.22; }
.section-intro h2 span, #numbers h2 span { color: #167b91; }

/* A paper-light introduction, followed by the more saturated business field. */
#about {
  background: linear-gradient(128deg, #fcfefe 10%, #f2fafb 64%, #e9f5f7);
  align-items: center;
  gap: clamp(38px, 6vw, 100px);
  padding-block: clamp(72px, 7vw, 110px);
}
#about .cap-atmosphere { opacity: .43; }
#about .about-copy { padding: 0; }
#about .about-copy .lead { color: #234c5d; line-height: 1.7; }
#about .about-copy > p:not(.lead) { color: var(--reading-ink); line-height: 1.9; }
#about .arrow-link { color: #155b71; min-height: 44px; padding-block: 8px; }

#capabilities {
  background: linear-gradient(118deg, #e9f7f8 0%, #cce9ed 56%, #d6e5f2 100%);
  border-block: 1px solid #b9dbe23d;
  padding-block: clamp(70px, 7vw, 110px);
}
#capabilities .section-intro { margin-bottom: 38px; }
#capabilities .cap-card {
  min-height: 330px;
  padding: 24px;
  border-radius: 16px;
  border-color: #ffffffbc;
  background: #ffffffba;
  box-shadow: 0 10px 30px -20px #174e6338;
  transform-style: flat;
}
#capabilities .cap-card.cap-feature { background: #f3fdfcd9; border-color: #8fc8d4; }
#capabilities .cap-index { min-height: 34px; color: #466f7d; line-height: 1.6; }
#capabilities .cap-card h3 { color: #173e50; line-height: 1.5; font-weight: 600; }
#capabilities .cap-card p { color: #456879; line-height: 1.9; }
#capabilities .cap-meta { gap: 5px 0; margin: 4px 0 24px; }
#capabilities .cap-meta span {
  padding: 0 7px;
  border: 0;
  border-left: 1px solid #bbd8df;
  border-radius: 0;
  background: none;
  color: #486f7e;
  font: 11px/1.7 var(--sans);
}
#capabilities .cap-meta span:first-child { border-left: 0; padding-left: 0; }
#capabilities .cap-card a { color: #19596d; font-size: 13px; min-height: 44px; }
#capabilities .cap-card::after { display: none; }

/* Thin rules carry the metrics; the data remains the focus. */
#numbers { align-items: center; gap: clamp(38px, 6vw, 88px); }
#numbers .numbers-copy > p:not(.eyebrow) { color: var(--reading-ink); line-height: 1.9; }
#numbers .number-grid {
  gap: 0;
  border: 0;
  border-top: 1px solid #9dc7d18c;
  border-bottom: 1px solid #9dc7d18c;
  border-radius: 0;
  background: #f8fdfcb8;
}
#numbers .number-item {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  padding: 28px 24px;
  min-width: 0;
}
#numbers .number-item:nth-child(odd) { border-right: 1px solid #9dc7d15c; }
#numbers .number-item:nth-child(n+3) { border-top: 1px solid #9dc7d18c; }
#numbers .number-item strong { color: #126c83; background: none; font-size: clamp(32px, 3.45vw, 58px); letter-spacing: -.055em; }
#numbers .number-item span { color: #456574; font: 12px/1.8 var(--sans); }

#process { background: #fcfefe; }
#process .process-guide-hint { color: var(--reading-ink); line-height: 1.9; font-size: 14px; }
#process .process-guide-tabs { gap: 0; border-bottom: 1px solid #cee0e6; }
#process .process-guide-tab {
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: transparent;
  color: #466573;
  padding: 16px 18px;
  box-shadow: none;
}
#process .process-guide-tab[aria-selected="true"] { border-bottom-color: #167b91; background: #eaf5f7; color: #15586d; }
#process .process-guide-number { color: #557e8d; }
#process .process-guide-panels { margin-top: 22px; border: 0; border-radius: 0; background: #f0f7f8; }
#process .process-guide-panel { border-radius: 0; border-left: 2px solid #84bdca; padding: 26px 28px; }
#process .process-guide-summary { color: #234a5c; font-size: 18px; line-height: 1.7; }
#process .process-guide-detail p { color: #456776; }
#process .process-guide-detail h3 { font-size: 13px; color: #246176; }
.site-footer { background: #f6fbfc; }
.footer-links a { min-height: 44px; display: inline-flex; align-items: center; }
:is(.cap-card, .arrow-link, .filter, .gallery-buttons button, .stack-step):focus-visible {
  outline: 2px solid #147d97;
  outline-offset: 4px;
}

@media (hover:hover) and (pointer:fine) {
  #capabilities .cap-card:hover {
    transform: translateY(-4px);
    border-color: #7abac8;
    background: #ffffffeb;
    box-shadow: 0 18px 38px -22px #21687c61;
  }
  #process .process-guide-tab:hover { background: #eff7f8; }
  #process .process-guide-tab[aria-selected="true"]:hover { background: #e6f2f5; }
}

@media (min-width:761px) and (max-width:1100px) {
  #numbers .number-item strong { font-size: clamp(29px, 3.6vw, 42px); }
  #numbers .number-item { padding: 25px 18px; }
}
@media (max-width:760px) {
  .section > .section-intro .eyebrow, .cases-head .eyebrow, .numbers-copy .eyebrow {
    font-size: 10px; line-height: 1.7; letter-spacing: .035em;
  }
  .section:not(#ai-stack):not(#contact) .section-intro h2,
  #numbers h2 { font-size: clamp(29px, 8vw, 36px); line-height: 1.32; }
  #about { padding-block: 48px; gap: 23px; }
  #about .section-intro h2 { font-size: clamp(26px, 7.2vw, 32px); line-height: 1.42; }
  #about .about-copy .lead { font-size: 17px; line-height: 1.85; margin-bottom: 15px; }
  #about .about-copy > p:not(.lead) { font-size: 14px; line-height: 1.95; }
  #about .arrow-link { font-size: 13px; }
  #capabilities { padding-block: 52px; }
  #capabilities .section-intro { margin-bottom: 26px; }
  #capabilities .cap-card { min-height: 284px; padding: 23px; border-radius: 16px; }
  #capabilities .cap-index { font-size: 10px; min-height: 29px; margin-bottom: 20px; }
  #capabilities .cap-card h3 { font-size: 21px; margin-bottom: 13px; }
  #capabilities .cap-card p { font-size: 14px; margin-bottom: 15px; }
  #capabilities .cap-meta { margin: 0 0 16px; }
  #capabilities .cap-meta span { font-size: 12px; }
  #numbers { gap: 28px; }
  #numbers .numbers-copy > p:not(.eyebrow) { font-size: 14px; margin-top: 17px; }
  #numbers .number-grid { display: block; }
  #numbers .number-item,
  #numbers .number-item:nth-child(odd),
  #numbers .number-item:nth-child(n+3) {
    min-height: 94px; padding: 23px 16px; border: 0;
    display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 16px;
  }
  #numbers .number-item + .number-item { border-top: 1px solid #9dc7d170; }
  #numbers .number-item strong { font-size: clamp(28px, 8.7vw, 38px); }
  #numbers .number-item span { font-size: 12px; text-align: right; flex-shrink: 0; }
  #process .process-guide { margin-top: 24px; }
  #process .process-guide-hint { font-size: 14px; }
  #process .process-guide-tab { min-height: 88px; padding: 12px 4px; gap: 6px; }
  #process .process-guide-tab-title { font-size: 14px; }
  #process .process-guide-number { font-size: 11px; }
  #process .process-guide-panels { margin-top: 18px; }
  #process .process-guide-panel { padding: 21px 18px; }
  #process .process-guide-summary { font-size: 16px; margin-bottom: 20px; }
  #process .process-guide-detail { grid-template-columns: 1fr; gap: 18px; }
  #process .process-guide-detail > div + div { border-left: 0; border-top: 1px solid #cfe1e7; padding: 17px 0 0; }
  #process .process-guide-detail p { font-size: 14px; line-height: 1.9; }
  #contact .contact-map-head { font-size: 12px; }
  #contact .contact-map-link { min-height: 44px; font-size: 14px; }
  #contact .contact-services { font-size: 11px; line-height: 1.9; }
  .site-footer { gap: 15px; }
  .site-footer .footer-links { gap: 10px 18px; }
}
@media (max-width:350px) {
  #capabilities .cap-card { padding: 20px; }
  #capabilities .cap-card h3 { font-size: 19px; }
  #numbers .number-item { padding-inline: 12px; }
  #numbers .number-item strong { font-size: 26px; }
  #numbers .number-item span { font-size: 11px; }
}
@media (prefers-reduced-motion:no-preference) {
  #process .process-guide-panel:not([hidden]) { animation: editorial-panel-in .26s ease-out both; }
  @keyframes editorial-panel-in { from { opacity: .25; transform: translateY(5px); } to { opacity: 1; transform: none; } }
}
@media (prefers-reduced-motion:reduce) {
  #capabilities .cap-card:hover { transform: none; }
}
