/* blocks/capabilities — independent page, shared contacts and buttons */
.capabilities-page .section-index {color:#566d87}
.cap-back {display:inline-block;margin-top:30px;color:var(--muted);font-size:14px;padding:8px 0}
.cap-hero {display:grid;grid-template-columns:1.15fr 1fr;gap:60px;align-items:center;padding:54px 0 82px}
.cap-eyebrow {font-size:11px;font-weight:500;letter-spacing:1.6px;color:#566d87;margin:0 0 26px}
.cap-hero h1 {font-size:clamp(42px,4.9vw,80px);line-height:1.06;font-weight:500;letter-spacing:-.05em;margin:0 0 28px}
.cap-hero h1 span {color:var(--blue)}
.cap-intro {font-size:21px;line-height:1.5;letter-spacing:-.4px;margin:0 0 16px}
.cap-hero-note {max-width:475px;font-size:15px;line-height:1.75;color:var(--muted);margin:0}
.cap-hero-actions {display:flex;gap:22px;align-items:center;flex-wrap:wrap;margin-top:28px}
.cap-hero-actions .text-link {font-size:13px;gap:12px}
.cap-map {position:relative;min-width:0;border:1px solid #cbd7e6;border-radius:24px;background:radial-gradient(ellipse at 50% 44%,#dbe9fc 0,transparent 66%),#edf2f8;overflow:hidden;box-shadow:0 24px 75px #24508b08}
.cap-map-scene {height:390px;position:relative;overflow:hidden}
.cap-map-scene:before {content:"";position:absolute;inset:0;background-image:linear-gradient(#8ca4bf0b 1px,transparent 1px),linear-gradient(90deg,#8ca4bf0b 1px,transparent 1px);background-size:28px 28px;mask-image:radial-gradient(ellipse,#000,transparent 75%)}
.cap-map-orbit {position:absolute;left:50%;top:50%;border:1px solid #8ba9cf55;border-radius:50%;transform:translate(-50%,-50%)}
.cap-map-orbit-outer {width:340px;height:340px}
.cap-map-orbit-inner {width:256px;height:256px;border-style:dashed;border-color:#8ba9cf70;animation:cap-orbit 30s linear infinite}
.cap-map-core {position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:210px;height:145px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #ffffffdd;border-radius:16px;background:#f9fbffee;box-shadow:0 15px 50px #2a548a15;z-index:2}
.cap-map-core>span {font-size:10px;letter-spacing:1.1px;color:#566d87}
.cap-map-core strong {font-size:32px;letter-spacing:-1.5px;font-weight:500;margin:12px 0;color:#29465e}
.cap-map-core i {font-style:normal;color:var(--blue);font-weight:300}
.cap-map-core small {font-size:10px;color:#566d87}
.cap-map-node {position:absolute;display:flex;align-items:center;gap:10px;padding:12px 15px;font-size:12px;background:#f8fbffed;border:1px solid #c7d6e6;border-radius:7px;z-index:3;box-shadow:0 8px 22px #234b8208}
.cap-map-node b {font-size:10px;font-weight:400;color:#566d87}
.cap-map-node-1 {left:7%;top:12%}.cap-map-node-2 {right:6%;top:25%}.cap-map-node-3 {left:6%;bottom:24%}.cap-map-node-4 {right:7%;bottom:11%}
.cap-map-dot {position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px;border-radius:50%;background:#4484da;box-shadow:0 0 15px #5ca0ff70;animation:cap-signal 14s linear infinite}
.cap-map-dot-2 {animation-delay:-7s;background:#a8c0de;box-shadow:none}
.cap-map-controls {position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 22px;border-top:1px solid #cbd7e6}
.cap-map-controls>span {font-size:9px;letter-spacing:1.2px;color:#566d87}
.cap-map-controls label {font-size:11px;display:flex;gap:8px;align-items:center;cursor:pointer;color:#566d87;padding:9px 11px;border:1px solid #c2d0e1;border-radius:5px;min-height:36px}
.cap-map-controls label:hover {background:#fff}
.cap-play-text {display:none}
.cap-motion-toggle {position:absolute;width:1px;height:1px;opacity:0;left:25px;bottom:25px}
.cap-motion-toggle:focus-visible~.cap-map-controls label {outline:3px solid #2366df;outline-offset:4px}
.cap-motion-toggle:checked~.cap-map-scene .cap-map-orbit-inner,.cap-motion-toggle:checked~.cap-map-scene .cap-map-dot {animation-play-state:paused}
.cap-motion-toggle:checked~.cap-map-controls .cap-pause-text {display:none}
.cap-motion-toggle:checked~.cap-map-controls .cap-play-text {display:inline}
.cap-tasks {border-top:1px solid var(--line);padding:64px 0 30px;scroll-margin-top:130px}
.capabilities-page h2 {font-size:clamp(34px,3.5vw,58px);font-weight:500;line-height:1.12;letter-spacing:-.045em;margin:0}
.capabilities-page h2 span {color:var(--blue)}
.cap-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:36px;align-items:start}
.cap-card {min-width:0;background:#fff;border:1px solid #d8e1eb;border-radius:13px;padding:30px 32px 0;overflow:hidden;transition:border-color .2s,box-shadow .2s}
.cap-card:hover,.cap-card:focus-within {border-color:#94b2dc;box-shadow:0 14px 32px #244a7908}
.cap-card-ai {background:linear-gradient(140deg,#f8fbff,#eef4fd);border-color:#c9d9ee}
.cap-card-top {display:flex;gap:14px;align-items:center;margin-bottom:28px}
.cap-number {font-size:12px;color:#566d87;border-right:1px solid #d7e1ed;padding-right:14px}
.cap-category {font-size:10px;letter-spacing:1px;color:#566d87}
.cap-card-mark {margin-left:auto;font-size:22px;color:#6b91be;font-weight:300}
.cap-card h3 {font-size:29px;font-weight:500;line-height:1.16;letter-spacing:-1px;margin:0 0 18px}
.cap-card-lead {font-size:15px;line-height:1.7;color:var(--muted);margin:0;min-height:77px;max-width:490px}
.cap-flow {display:flex;align-items:center;gap:0;margin:27px 0 30px;min-width:0}
.cap-flow>span {border:1px solid #ccd9eb;background:#f3f7fc;border-radius:5px;padding:10px 12px;font-size:11px;color:#526e8d;white-space:nowrap}
.cap-flow>span:nth-of-type(2) {border-color:#a4bfdf;background:#e5eefb;color:#2b5d99}
.cap-flow i {height:1px;min-width:10px;flex:1;background:#b9cde6;position:relative;overflow:hidden}
.cap-flow i:after {content:"";position:absolute;top:0;left:-25%;width:25%;height:1px;background:#4385d8;animation:cap-wire 4s linear 1}
.cap-flow i:nth-of-type(2):after {animation-delay:1s}
.cap-details {border-top:1px solid #dce5ef}
.cap-details summary {display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;padding:20px 0;list-style:none;font-size:13px;color:#566d87;min-height:60px}
.cap-details summary::-webkit-details-marker {display:none}
.cap-details summary>span {font-size:22px;font-weight:300;transition:transform .2s}
.cap-details[open] summary>span {transform:rotate(45deg)}
.cap-details>div {padding:0 0 24px}
.cap-details p {font-size:14px;line-height:1.75;color:#566d87;margin:0 0 15px}
.cap-details p:last-child {margin-bottom:0}
.cap-details strong {color:#334c65;font-weight:500}
.cap-details a {text-decoration:underline;text-underline-offset:3px;color:#285fac}
.cap-details summary:focus-visible {outline:3px solid #2366df;outline-offset:-3px;border-radius:3px}
.cap-scope-note {font-size:14px;line-height:1.75;color:var(--muted);max-width:760px;margin:28px 0 0}
.cap-process {padding:65px 0 70px}
.cap-steps {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;list-style:none;padding:0;margin:42px 0 0}
.cap-steps li {border-top:1px solid #c6d6e8;padding-top:20px;min-width:0}
.cap-steps li>span {font-size:11px;color:#566d87}
.cap-steps h3 {font-size:18px;font-weight:500;line-height:1.35;letter-spacing:-.3px;margin:18px 0 10px}
.cap-steps p {font-size:14px;line-height:1.75;color:var(--muted);margin:0}
.cap-contact {display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;padding:50px 45px;margin:0 0 60px;border-radius:15px;background:#182631;color:#f5f8fc}
.cap-contact h2 {font-size:clamp(32px,3vw,48px)}
.cap-contact h2 span {color:#89baff}
.cap-contact .cap-eyebrow {color:#93a8bb}
.cap-contact p:not(.cap-eyebrow) {color:#b2c1cf;font-size:15px;line-height:1.75;margin:20px 0 0}
.cap-contact-actions {justify-self:end;min-width:0}
.cap-contact .primary-action {background:#e1edff;color:#203851;box-shadow:none}
.cap-contact .primary-action:hover {background:#fff}
.cap-contact .action-icon {background:#c5d9f5}
.cap-contact .messengers {margin-top:24px}
.cap-contact .messengers-label {color:#b2c1cf}
.cap-contact .messenger-link {background:#f9fbff;color:#32485b}
@keyframes cap-orbit {to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes cap-signal {from{transform:rotate(0) translateX(170px)}to{transform:rotate(360deg) translateX(170px)}}
@keyframes cap-wire {to{left:125%}}
@media(max-width:1150px){
  .cap-hero {gap:35px}.cap-map-scene {height:345px}.cap-map-orbit-outer{width:290px;height:290px}.cap-map-orbit-inner{width:225px;height:225px}
  .cap-map-core{width:175px;height:125px}.cap-map-node{font-size:11px;padding:10px 12px}.cap-map-core strong{font-size:28px}
  .cap-card{padding:25px 25px 0}.cap-card h3{font-size:26px}.cap-flow>span{padding:9px 10px}.cap-steps{gap:24px}
  @keyframes cap-signal {from{transform:rotate(0) translateX(145px)}to{transform:rotate(360deg) translateX(145px)}}
}
@media(max-width:900px){
  .cap-hero {grid-template-columns:1fr;gap:40px;padding:35px 0 55px}.cap-hero h1{font-size:clamp(42px,7vw,65px)}
  .cap-map{max-width:600px;width:100%;justify-self:center}.cap-map-scene{height:360px}
  .cap-grid{gap:16px}.cap-card{padding:23px 20px 0}.cap-card h3{font-size:24px}.cap-flow>span{font-size:10px;padding:9px 8px}
  .cap-card-lead{min-height:103px}.cap-category{font-size:9px;letter-spacing:.6px}.cap-number{padding-right:10px}.cap-card-top{gap:10px}
  .cap-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}
  .cap-contact{grid-template-columns:1fr;padding:35px}.cap-contact-actions{justify-self:start}
}
@media(max-width:640px){
  .cap-back{margin-top:23px;font-size:13px}.cap-hero{padding-top:28px;gap:30px}.cap-hero h1{font-size:clamp(31px,8.9vw,47px);letter-spacing:-.045em;line-height:1.12;margin-bottom:22px}
  .cap-eyebrow{font-size:9px;letter-spacing:1.2px;margin-bottom:20px}.cap-intro{font-size:18px;line-height:1.55;letter-spacing:-.25px}.cap-intro br{display:none}
  .cap-hero-note{font-size:14px}.cap-hero-actions{gap:12px;margin-top:23px}.cap-hero-actions .text-link{font-size:12px}
  .cap-map{border-radius:14px}.cap-map-scene{height:315px}.cap-map-core{width:157px;height:115px}.cap-map-core strong{font-size:25px}
  .cap-map-core>span{font-size:9px}.cap-map-core small{font-size:9px}.cap-map-node{font-size:10px;gap:6px;padding:10px}.cap-map-node b{font-size:9px}
  .cap-map-node-1{left:4%;top:10%}.cap-map-node-2{right:4%;top:24%}.cap-map-node-3{left:4%;bottom:24%}.cap-map-node-4{right:4%;bottom:10%}
  .cap-map-orbit-outer{width:265px;height:265px}.cap-map-orbit-inner{width:207px;height:207px}.cap-map-controls{padding:13px 15px}
  .cap-map-controls>span{font-size:8px;letter-spacing:.7px}.cap-map-controls label{font-size:10px}
  .cap-tasks{padding-top:42px;scroll-margin-top:105px}.capabilities-page h2{font-size:34px;letter-spacing:-1.3px}
  .cap-tasks .section-heading>p{line-height:1.75}.cap-grid{grid-template-columns:1fr;gap:17px;margin-top:28px}
  .cap-card{padding:25px 23px 0}.cap-card h3{font-size:27px;letter-spacing:-.8px}.cap-card-top{margin-bottom:23px}
  .cap-card-lead{min-height:0;font-size:14px}.cap-flow>span{font-size:10px;padding:9px 10px}.cap-flow{margin:23px 0}
  .cap-details summary{padding:19px 0}.cap-details p{font-size:14px}.cap-scope-note{font-size:13px;margin-top:23px}
  .cap-process{padding:35px 0 45px}.cap-steps{gap:25px 22px;margin-top:30px}.cap-steps h3{font-size:16px;margin-top:13px}.cap-steps p{font-size:13px}
  .cap-contact{padding:30px 23px;gap:22px;margin-bottom:35px;border-radius:11px}.cap-contact h2{font-size:32px}
  .cap-contact p:not(.cap-eyebrow){font-size:14px}.cap-contact p br{display:none}.cap-contact-actions{width:100%}
  .cap-contact .primary-action{font-size:12px;gap:10px;padding-left:12px;max-width:100%}
  @keyframes cap-signal {from{transform:rotate(0) translateX(132px)}to{transform:rotate(360deg) translateX(132px)}}
}
@media(max-width:360px){
  .cap-hero h1{font-size:31px}.cap-card{padding:23px 18px 0}.cap-card h3{font-size:25px}.cap-category{font-size:8px}
  .cap-flow>span{padding:9px 8px;font-size:9px}.cap-contact{padding:27px 18px}.cap-contact h2{font-size:28px}
  .cap-contact .primary-action{font-size:11px;gap:8px;padding-left:10px}.cap-steps{grid-template-columns:1fr;gap:24px}
}
@media(prefers-reduced-motion:reduce){
  .cap-map-orbit-inner,.cap-map-dot,.cap-flow i:after{animation:none}
  .cap-card,.cap-details summary>span{transition:none}
  .cap-map-controls,.cap-motion-toggle{display:none}
}
