.solution-page { --solution-surface: #0d3550; --solution-accent: #4aa8e7; }
.solution-page.theme-data { --solution-surface: #11618a; --solution-accent: #f47c45; }
.solution-page.theme-intelligence { --solution-surface: #0a2c3e; --solution-accent: #4aa8e7; }
.solution-page.theme-ai { --solution-surface: #ec6225; --solution-accent: #062230; }

.solution-hero { position: relative; overflow: hidden; min-height: 38rem; display: grid; align-items: center; background-color: var(--solution-surface); border-bottom: 1px solid rgba(255,255,255,.1); }
.solution-hero::before, .solution-hero::after { content: ""; position: absolute; border: 1px solid color-mix(in srgb, var(--solution-accent) 45%, transparent); border-radius: 50%; pointer-events: none; }
.solution-hero::before { width: 42rem; height: 42rem; top: -23rem; right: -9rem; }.solution-hero::after { width: 25rem; height: 25rem; top: -13rem; right: -.5rem; opacity: .65; }
.solution-hero-inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 20rem; align-items: center; gap: clamp(3rem, 8vw, 8rem); padding-block: clamp(5rem, 10vw, 8rem); }
.back-link { display: inline-flex; margin-bottom: 2.2rem; color: rgba(255,255,255,.62); font-family: var(--mono); font-size: .68rem; letter-spacing: .08em; }
.back-link:hover, .back-link:focus-visible { color: var(--white); }
.solution-hero-kicker { display: flex; align-items: center; gap: .9rem; margin: 0 0 1rem; color: rgba(255,255,255,.78); font-family: var(--mono); font-size: .68rem; font-weight: 600; letter-spacing: .11em; text-transform: uppercase; }
.solution-hero-kicker span { color: var(--solution-accent); }
.solution-hero h1 { max-width: 12ch; margin: 0 0 1.3rem; color: var(--white); font-size: clamp(3.4rem, 7.5vw, 7rem); line-height: .98; letter-spacing: -.045em; overflow-wrap: anywhere; }
.solution-promise { max-width: 45rem; margin: 0; color: rgba(255,255,255,.86); font-size: clamp(1.2rem, 2.2vw, 1.7rem); font-weight: 600; line-height: 1.5; }
.solution-hero-mark { position: relative; display: grid; place-items: center; width: 18rem; height: 18rem; border: 1px solid rgba(255,255,255,.18); color: rgba(255,255,255,.06); }
.solution-hero-mark::before, .solution-hero-mark::after { content: ""; position: absolute; background: rgba(255,255,255,.12); }.solution-hero-mark::before { width: 100%; height: 1px; }.solution-hero-mark::after { width: 1px; height: 100%; }
.solution-hero-mark span { position: absolute; top: 1rem; left: 1rem; color: rgba(255,255,255,.5); font-family: var(--mono); font-size: .62rem; letter-spacing: .16em; }
.solution-hero-mark strong { font-family: var(--mono); font-size: 8rem; line-height: 1; }
.solution-hero-mark i { position: absolute; right: 1rem; bottom: 1rem; width: .75rem; height: .75rem; background: var(--solution-accent); animation: blink 2.2s ease-in-out infinite; }
.theme-ai .solution-hero-kicker, .theme-ai .back-link, .theme-ai .solution-promise { color: rgba(6,34,48,.84); }.theme-ai .solution-hero-kicker span { color: var(--petrol); }.theme-ai .solution-hero-mark { border-color: rgba(6,34,48,.2); color: rgba(6,34,48,.08); }.theme-ai .solution-hero-mark::before, .theme-ai .solution-hero-mark::after { background: rgba(6,34,48,.14); }.theme-ai .solution-hero-mark span { color: rgba(6,34,48,.6); }

.building-blocks { padding-block: var(--section); background: var(--cream); color: #40515c; }
.subpage-heading { max-width: 52rem; margin-bottom: clamp(3rem, 6vw, 5rem); }
.subpage-heading .eyebrow { color: var(--petrol); }
.subpage-heading h2, .solution-journey h2 { margin: 1rem 0 1.2rem; color: var(--petrol); font-size: clamp(2.4rem, 5vw, 4.6rem); line-height: 1.08; letter-spacing: -.035em; }
.subpage-heading > p:last-child { max-width: 44rem; margin: 0; font-size: 1.1rem; line-height: 1.7; }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(6,34,48,.18); border-left: 1px solid rgba(6,34,48,.18); }
.service-block { min-height: 16rem; padding: clamp(1.5rem, 3vw, 2.4rem); border-right: 1px solid rgba(6,34,48,.18); border-bottom: 1px solid rgba(6,34,48,.18); background: rgba(255,255,255,.54); transition: background 180ms ease; }
.service-block:hover { background: var(--white); }
.service-block > span { color: var(--orange); font-family: var(--mono); font-size: .65rem; font-weight: 600; }
.service-block h3 { margin: 2.5rem 0 .75rem; color: var(--petrol); font-size: clamp(1.25rem, 2vw, 1.65rem); line-height: 1.2; }
.service-block p { margin: 0; line-height: 1.65; }

.technical-principles { padding-block: var(--section); background: #f1e8db; color: #40515c; }
.technical-principles .subpage-heading h2 { color: var(--petrol); }
.technical-principles .subpage-heading .eyebrow { color: var(--petrol); }
.technical-principles-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid rgba(6,34,48,.18); border-left: 1px solid rgba(6,34,48,.18); }
.technical-principles-grid article { min-height: 17rem; padding: clamp(1.6rem, 4vw, 2.5rem); border-right: 1px solid rgba(6,34,48,.18); border-bottom: 1px solid rgba(6,34,48,.18); background: rgba(255,255,255,.32); }
.technical-principles-grid span { color: var(--orange); font: 600 .65rem/1 var(--mono); }
.technical-principles-grid h3 { margin: 3rem 0 .8rem; color: var(--petrol); font-size: clamp(1.4rem, 2.5vw, 2rem); line-height: 1.18; }
.technical-principles-grid p { max-width: 37rem; margin: 0; line-height: 1.7; }

.solution-journey { padding-block: var(--section); background-color: var(--petrol-section); }
.solution-journey-layout { display: grid; grid-template-columns: .9fr 1.1fr; align-items: start; gap: clamp(3rem, 8vw, 8rem); }
.solution-journey h2 { color: var(--white); }
.solution-journey .reveal > p:not(.eyebrow) { max-width: 38rem; font-size: 1.08rem; line-height: 1.75; }
.inline-link { display: inline-flex; gap: .65rem; margin-top: 1rem; padding-bottom: .2rem; border-bottom: 2px solid var(--orange); color: var(--white); font-weight: 700; }
.journey-map { margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.journey-map-stage { display: grid; grid-template-columns: 3.5rem 1fr auto; align-items: center; gap: 1rem; min-height: 4.5rem; padding: .8rem 1rem; border-bottom: 1px solid var(--line); color: var(--muted); }
.journey-map-stage > span { font-family: var(--mono); font-size: .65rem; }
.journey-map-stage strong { color: rgba(255,255,255,.58); }
.journey-map-stage small { font-family: var(--mono); font-size: .56rem; letter-spacing: .1em; text-transform: uppercase; }
.journey-map-stage.is-focus { background: var(--solution-surface); color: var(--solution-accent); }
.journey-map-stage.is-focus strong { color: var(--white); }

.other-solutions { padding-block: var(--section); background: var(--petrol-deep); }
.other-solutions .subpage-heading h2 { color: var(--white); }
.other-solutions .subpage-heading .eyebrow { color: rgba(255,255,255,.8); }
.other-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.other-solution { position: relative; display: grid; min-height: 16rem; align-content: start; padding: 1.8rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: background 180ms ease; }
.other-solution:hover, .other-solution:focus-visible { background: rgba(255,255,255,.045); }
.other-solution > span { color: var(--orange-light); font-family: var(--mono); font-size: .65rem; }
.other-solution strong { max-width: 12ch; margin-top: 2.8rem; color: var(--white); font-size: 1.45rem; line-height: 1.2; }
.other-solution small { margin-top: .65rem; color: var(--muted); line-height: 1.5; }
.other-solution b { position: absolute; top: 1.5rem; right: 1.5rem; color: var(--orange-light); font-size: 1.5rem; }

.solution-insights { padding-block: var(--section); background: var(--cream); color: #40515c; }
.solution-insight-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(6,34,48,.18); border-left: 1px solid rgba(6,34,48,.18); }
.solution-insight-card { position: relative; display: flex; min-height: 22rem; flex-direction: column; padding: clamp(1.5rem, 3vw, 2.2rem); border-right: 1px solid rgba(6,34,48,.18); border-bottom: 1px solid rgba(6,34,48,.18); background: rgba(255,255,255,.52); transition: background 180ms ease; }
.solution-insight-card:hover, .solution-insight-card:focus-visible { background: var(--white); }
.solution-insight-card > span { color: var(--orange); font-family: var(--mono); font-size: .62rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.solution-insight-card h3 { margin: auto 0 1rem; color: var(--petrol); font-size: clamp(1.35rem, 2.1vw, 1.8rem); line-height: 1.2; }
.solution-insight-card p { margin: 0; color: #53636c; font-size: .9rem; line-height: 1.65; }
.solution-insight-card b { position: absolute; top: 1.4rem; right: 1.4rem; color: var(--orange); font-size: 1.4rem; }
.solution-insights-link { margin-top: 2rem; color: var(--petrol); }

@media (max-width: 900px) {
  .solution-hero-inner { grid-template-columns: 1fr; }
  .solution-hero-mark { display: none; }
  .service-grid { grid-template-columns: repeat(2, 1fr); }
  .solution-journey-layout { grid-template-columns: 1fr; }
  .solution-insight-grid { grid-template-columns: 1fr; }
  .technical-principles-grid { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  .solution-hero { min-height: auto; }
  .solution-hero-inner { padding-block: 4rem; }
  .solution-hero h1 { font-size: clamp(3.2rem, 15vw, 5rem); }
  .service-grid, .other-grid { grid-template-columns: 1fr; }
  .service-block { min-height: auto; }
  .journey-map-stage { grid-template-columns: 2.5rem 1fr; }
  .journey-map-stage small { grid-column: 2; }
}

@media (prefers-reduced-motion: reduce) {
  .solution-hero-mark i { animation: none; }
}
