/* One consistent editorial grid; the illustrations show each discipline at work. */
#capabilities{padding-top:74px;padding-bottom:66px}
#offerings{--row-inset:0;display:block;border:0;margin:0;padding:0}
#offerings .offerings-heading{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px;align-items:end;margin-bottom:48px}
#offerings h2{font:500 clamp(36px,4vw,58px)/1.08 General,sans-serif;letter-spacing:-.045em;color:#e2eee6;margin:0;padding:0}
#offerings .offerings-intro{font:400 16px/1.7 Satoshi,sans-serif;max-width:490px;color:#aec5ba;margin:0 0 3px;padding:0}
#offerings .offering{--service-accent:#bbd9c9;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr) minmax(0,1.12fr);grid-column:auto;align-items:center;gap:clamp(24px,3.2vw,50px);min-height:262px;margin:0;padding:28px 0;border-top:1px solid #b6cebf35;position:relative}
#offerings .offering:last-child{border-bottom:1px solid #b6cebf35}
#offerings .offering-software{--service-accent:#b2c5e0}
#offerings .offering-brand{--service-accent:#dac1a7}
#offerings .offering:before{content:'';position:absolute;left:0;top:-1px;width:42px;height:1px;background:var(--service-accent)}
#offerings .offering-copy{min-width:0}
#offerings .offering-number{display:block;font:400 11px/1 JetBrains,monospace;color:var(--service-accent);letter-spacing:.03em;margin-bottom:20px}
#offerings h3{font:500 clamp(32px,3.45vw,50px)/1.06 General,sans-serif;letter-spacing:-.045em;margin:0;color:#e2eee6}
#offerings h3>.discipline-name{display:block;font:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0}
#offerings .offering-outcome{font:400 14px/1.5 Satoshi,sans-serif;color:#adc7b9;margin:15px 0 0}
#offerings .offering ul{display:grid;grid-template-columns:minmax(0,1fr);gap:0;padding:0;margin:0;list-style:none;font:400 16px/1.5 Satoshi,sans-serif;color:#cbdbd2;align-items:stretch}
#offerings .offering li{min-width:0;margin:0;padding:10px 0;border-bottom:1px solid #b6cebf16}
#offerings .offering li:last-child{border:0}
#offerings .offering-visual{width:100%;max-width:360px;justify-self:end;pointer-events:none;min-width:0}
.offering-visual svg{display:block;width:100%;height:auto;overflow:visible;fill:none;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.service-wire{stroke:#a9c5b24a}
.service-signal{stroke:var(--service-accent);stroke-width:1.7;stroke-dasharray:.08 .92;stroke-dashoffset:0;opacity:.85}
.service-signal path{animation:service-route 7s var(--signal-delay,0s) linear infinite;animation-play-state:paused}
.offering-codex{filter:brightness(0) invert(1)}
.service-hub rect{stroke:#9dc9b6;fill:#9dc9b608}
.service-hub path{stroke:#c3e4d3;stroke-width:1.2}
.service-hub text{fill:#d2ebde;stroke:none;font:500 16px Satoshi,sans-serif}
.service-output{stroke:#a5ceb9}
.service-output path:first-child{fill:#a5ceb90b;stroke-opacity:.45}
.service-output path:last-child{animation:service-confirm 7s ease-in-out infinite;animation-play-state:paused}
.service-diagram-label{font:400 8px JetBrains,monospace;letter-spacing:1.5px;fill:#a8c3b5;stroke:none}
.service-endpoint{stroke:#a9bfd7}
.service-endpoint text{fill:#c0d0e4;stroke:none;font:400 12px JetBrains,monospace}
.service-code{stroke:#b0c6e0;stroke-width:2}
.service-interface{stroke:#9eb9c6;fill:#89b2cb05}
.service-interface circle{fill:#8ca6b8;stroke:none}
.service-interface .interface-plate{fill:#8faccc1c;stroke:#9eb9c655}
.service-interface .interface-line{stroke:#cedeed;stroke-width:2}
.service-interface .interface-accent{stroke:#bdd9cd;stroke-width:3;animation:service-confirm 7s -2s ease-in-out infinite;animation-play-state:paused}
.service-guides{stroke:#cbb89d24;stroke-dasharray:2 5}
.service-type{fill:#e7dfce;stroke:none;font:500 137px General,sans-serif;letter-spacing:-8px}
.service-type-frame{stroke:#cdb5968a}
.service-type-frame .type-corner{fill:#0b1c22;stroke:#cdb596}
.service-brand-copy text{fill:#d2decf;stroke:none;font:500 33px General,sans-serif;letter-spacing:-1.4px}
.service-brand-copy path{stroke:#cbb89d70;stroke-width:1;stroke-dasharray:104;stroke-dashoffset:0;animation:service-underline 9s ease-in-out infinite;animation-play-state:paused}
.service-swatches{stroke:none}
.offering.is-service-visible .service-signal path,.offering.is-service-visible .service-output path:last-child,.offering.is-service-visible .interface-accent,.offering.is-service-visible .service-brand-copy path{animation-play-state:running}
@keyframes service-route{to{stroke-dashoffset:-1}}
@keyframes service-confirm{0%,100%{opacity:.55}45%,65%{opacity:1}}
@keyframes service-underline{0%,15%,90%,100%{stroke-dashoffset:0;opacity:.65}45%{stroke-dashoffset:104;opacity:.35}70%{stroke-dashoffset:0;opacity:1}}
@media(min-width:761px) and (max-width:1000px){
 #offerings .offering{grid-template-columns:minmax(0,1fr) minmax(0,.9fr) minmax(0,1.1fr);gap:24px;min-height:240px}
 #offerings .offering ul{font-size:14px}
 #offerings h3{font-size:34px}
}
@media(max-width:760px){
 #capabilities{padding-top:48px;padding-bottom:48px}
 #offerings .offerings-heading{grid-template-columns:minmax(0,1fr);gap:22px;margin-bottom:36px}
 #offerings h2{font-size:clamp(36px,7.5vw,50px)}
 #offerings .offerings-intro{font-size:15px;max-width:480px}
 #offerings .offering{grid-template-columns:minmax(0,1fr);gap:23px;min-height:0;padding:28px 0 24px}
 #offerings .offering-number{margin-bottom:15px}
 #offerings h3{font-size:clamp(32px,7vw,43px)}
 #offerings h3>.discipline-name br{display:none}
 #offerings .offering-outcome{margin-top:10px;font-size:14px}
 #offerings .offering ul{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px;font-size:14px;align-items:start}
 #offerings .offering li{padding:8px 0;border:0}
 #offerings .offering-visual{max-width:340px;justify-self:center;margin:0}
}
@media(prefers-reduced-motion:reduce){.offering-visual *{animation:none!important}}
.motion-paused .offering-visual *{animation:none!important}
@media(forced-colors:active){.offering-visual{display:none}#offerings .offering{grid-template-columns:1fr}#offerings h2,#offerings h3,#offerings .offering ul,#offerings .offering-outcome,#offerings .offerings-intro{color:CanvasText}}

/* Compact screens keep service names readable without squeezing two columns. */
#offerings .offerings-heading>*{min-width:0}
@media(max-width:360px){
 #offerings .offering ul{grid-template-columns:minmax(0,1fr);gap:0}
 #offerings .offering li{padding:7px 0}
}
