/* Software Development Services — source cinematic design, rebuilt on brand tokens.
   Banner stack = sticky full-viewport panels that scroll-overlap (source pattern).
   Flat scrims only (no gradients), square corners, no shadows. */

.swe-page{--bn-pad:clamp(32px,5vw,72px)}
.swe-page .arw{display:inline-block;margin-left:10px;transition:transform .2s var(--ease)}
.swe-page a:hover .arw{transform:translateX(4px)}

/* Buttons + inline links */
.swe-btn{display:inline-flex;align-items:center;min-height:52px;padding:0 28px;background:var(--gold);color:var(--ink);font-family:var(--body);font-size:var(--fs-content-cta);font-weight:700;letter-spacing:.1em;text-transform:uppercase;border:2px solid var(--gold);transition:background .2s,color .2s}
.swe-btn:hover{background:transparent;color:inherit}
.swe-link{display:inline-flex;align-items:center;font-size:var(--fs-content-cta);font-weight:700;letter-spacing:.1em;text-transform:uppercase;border-bottom:2px solid var(--gold);padding-bottom:6px}

/* ============ Banner stack ============ */
.banner-stack{position:relative}
.banner{position:sticky;top:0;height:100vh;min-height:720px;overflow:hidden;background:var(--black);color:#fff}
.bn-media{position:absolute;inset:0}
.bn-media picture,.bn-media .bn-img{width:100%;height:100%}
.bn-media .bn-img{object-fit:cover;object-position:center;filter:saturate(1.12) contrast(1.06)}
.bn-scrim{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(24,24,24,.86) 0%,rgba(24,24,24,.72) 30%,rgba(24,24,24,.34) 50%,rgba(24,24,24,0) 66%)}
.bn--hero .bn-scrim{background:linear-gradient(90deg,rgba(24,24,24,.97) 0%,rgba(24,24,24,.93) 36%,rgba(24,24,24,.7) 52%,rgba(24,24,24,.28) 66%,rgba(24,24,24,0) 78%)}
.bn--hero .bn-scrim::before{content:"";position:absolute;inset:0;-webkit-backdrop-filter:blur(3px) saturate(.5) brightness(.8);backdrop-filter:blur(3px) saturate(.5) brightness(.8);-webkit-mask-image:linear-gradient(90deg,#000 0%,#000 44%,transparent 66%);mask-image:linear-gradient(90deg,#000 0%,#000 44%,transparent 66%)}
.bn--vanguard{background:#120e0a}
.bn--vanguard .bn-media{right:clamp(24px,4vw,72px)}
.bn--vanguard .bn-media .bn-img{object-position:100% 50%}
.bn--vanguard .bn-inner{align-items:flex-end;padding-bottom:96px}
.bn--vanguard .bn-copy{gap:26px}
.bn--dark-text{background:var(--cream);color:var(--ink)}
.bn--dark-text .bn-scrim{background:linear-gradient(90deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.82) 38%,rgba(255,255,255,.4) 58%,rgba(255,255,255,0) 74%)}
.bn-inner{position:relative;z-index:1;width:var(--shell);height:100%;margin:0 auto;display:flex;align-items:center;padding:120px 0;pointer-events:none}
.bn-copy{max-width:min(720px,56%);display:flex;flex-direction:column;gap:32px;pointer-events:auto}
.bn-h1{font-family:var(--display);font-weight:400;font-size:clamp(40px,4.6vw,66px);line-height:1.15;text-wrap:balance}
.bn-h2{font-family:var(--display);font-weight:400;font-size:clamp(34px,3.6vw,52px);line-height:1.15;text-wrap:balance}
.bn-h2__lead{display:block;margin-bottom:20px}
.bn-support{font-size:clamp(18px,1.5vw,21px);line-height:1.5;max-width:640px;text-wrap:pretty}
.bn-cta{margin-top:8px;display:flex;gap:16px}

/* hero credential strip */
.bn-cert-strip{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px}
.bn-cert{display:inline-flex;align-items:center;min-height:34px;padding:0 14px;border:1px solid rgba(255,255,255,.6);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}

/* vanguard rail */
.bn-motif{font-family:var(--display);font-size:clamp(20px,1.8vw,26px);color:var(--gold)}
.bn-rail{display:flex;align-items:center;margin-top:10px}
.bn-rn{display:flex;flex-direction:column;gap:6px;padding:18px 24px;border:1px solid rgba(255,255,255,.7);min-width:160px}
.bn-rn.is-mvp{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.rn-step{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.rn-win{font-family:var(--display);font-size:34px;line-height:1}
.rn-label{font-size:15px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.bn-link{flex:1 1 28px;min-width:20px;max-width:72px;height:1px;background:rgba(255,255,255,.7)}
.bn-guarantee{display:flex;align-items:center;gap:12px;font-size:17px;font-weight:700}
.g-mark{display:inline-grid;place-items:center;width:26px;height:26px;flex:none;background:var(--gold);color:var(--ink);font-size:14px}

/* FDE points */
.bn-points{display:flex;flex-direction:column;gap:16px}
.bn-points--tight{gap:12px}
@media (min-width:901px){.bn-points--tight .bn-point{white-space:nowrap}}
.bn-point{display:flex;gap:14px;align-items:flex-start;font-size:18px;line-height:1.45}
.pt-mark{display:inline-grid;place-items:center;width:26px;height:26px;flex:none;border:1px solid var(--gold);color:var(--gold);font-size:14px;margin-top:1px}

/* enablement */
.bn--enablement .bn-copy{max-width:min(600px,48%)}
.bn-playbook{font-family:var(--display);font-size:clamp(20px,1.8vw,26px);color:var(--ink)}
.bn-plan{display:flex;flex-direction:column;gap:22px;margin-top:4px}
.bn-deliv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0;padding:0;list-style:none;border-top:1px solid var(--ink)}
.bn-deliv li{padding:16px 24px 0 0}
.bn-deliv li+li{padding-left:24px;border-left:1px solid rgba(24,24,24,.25)}
.bn-deliv h4{margin:0 0 6px;font-family:var(--display);font-weight:400;font-size:22px;line-height:1.2;color:var(--ink)}
.bn-deliv p{font-size:15px;line-height:1.45}
.bn-phase{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;font-family:var(--display);font-size:20px;line-height:1.3}
.bn-phase__k{margin-right:6px;font-family:var(--body);font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.bn-arrow{color:var(--bronze);font-size:18px}
.bn-gov{font-size:16px;line-height:1.5;max-width:640px;color:var(--grey-mid)}

/* ============ After banners ============ */
.after-banners{position:relative;z-index:2;background:var(--paper)}
.sec{padding:120px 0}
.sec .wrap{width:var(--shell);margin:0 auto}
.sec .head{display:flex;flex-direction:column;gap:18px;margin-bottom:56px;max-width:var(--title-description-width)}
.sec .head h2{font-family:var(--display);font-weight:400;font-size:var(--fs-standard-section);line-height:var(--lh-tight);text-wrap:balance}
.sec .support,.sec .frame-line{font-size:var(--fs-content-lede);line-height:1.5;color:var(--grey-mid);text-wrap:pretty}
.sec-foot{margin-top:40px}

/* what-we-build (template industries-signal-console-white) — page additions */
.wwb-slot{display:block;align-self:center;width:100%;height:auto;aspect-ratio:2019/780}
.wwb-art{display:block;align-self:center;justify-self:center;width:auto;max-width:100%;height:100%;max-height:150px;object-fit:contain}
.wwb-proof{display:flex;flex-wrap:wrap;align-items:center;gap:14px;max-width:780px;font-size:17px;line-height:1.45;color:#181818}
.wwb-proof__tag{display:inline-flex;align-items:center;min-height:30px;padding:0 12px;background:var(--sage);color:#fff;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}

/* start selector */
.sec--start{position:relative;overflow:hidden}
.sec--start .wrap{position:relative;z-index:1}
.start-rocket{position:absolute;z-index:0;top:0;right:calc(max(24px,calc((100% - 1200px) / 2)) - 150px);width:500px;height:500px;color:var(--bronze);opacity:.2;transform:rotate(-45deg);pointer-events:none}
.selector{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.sel-card{position:relative;border:2px solid var(--cream);padding:24px 20px 26px;display:flex;flex-direction:column;gap:10px;cursor:pointer;transition:border-color .2s,background .2s;outline-offset:3px}
.sel-card:hover{border-color:var(--ink)}
.sel-card[aria-checked="true"]{border-color:var(--gold);background:var(--gold-10)}
.sel-check{display:grid;place-items:center;width:24px;height:24px;border:1px solid var(--ink);color:transparent;font-size:13px}
.sel-card[aria-checked="true"] .sel-check{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.sel-card h3{font-family:var(--display);font-weight:400;font-size:22px;line-height:1.2;color:var(--deep)}
.sel-card p{font-size:15px;line-height:1.45}
.sel-badge{margin-top:auto;padding-top:12px;border-top:1px solid var(--cream);display:flex;gap:10px;align-items:flex-start;font-size:13px;font-weight:700;line-height:1.35}
.sel-badge .g-mark{width:20px;height:20px;font-size:11px}
.cta-body{margin-top:40px;max-width:760px;font-size:var(--fs-content-lede);line-height:1.55}
.cta-final{margin-top:28px;display:flex;flex-wrap:wrap;align-items:center;gap:24px}
.cta-final .swe-btn:hover{color:var(--ink)}
.picked{font-size:15px;color:var(--grey-mid)}
.picked b{color:var(--ink)}

/* ============ Responsive ============ */
@media (max-width:1100px){
  .selector{grid-template-columns:repeat(3,minmax(0,1fr))}
  .study-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rel-block{grid-template-columns:1fr;gap:28px}
}
@media (max-width:900px){
  .banner{position:relative;height:auto;min-height:100svh}
  .bn-inner{height:auto;min-height:100svh;padding:96px 0 72px}
  .bn-copy,.bn--enablement .bn-copy{max-width:none}
  .bn-scrim{background:rgba(24,24,24,.62)}
  .bn--dark-text .bn-scrim{background:rgba(255,255,255,.84)}
  .start-rocket{width:320px;height:320px;top:60px;right:-40px}
  .bn-deliv{grid-template-columns:1fr}
  .bn-deliv li+li{padding-left:0;border-left:0;border-top:1px solid rgba(24,24,24,.25);margin-top:14px}
  .bn--vanguard .bn-media{right:0}
  .build-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .build-card.is-delivered{grid-column:span 2}
  .pipeline{grid-template-columns:1fr}
  .pipe-arrow{transform:rotate(90deg);justify-self:start;margin-left:22px}
  .sec .head{max-width:none}
}
@media (max-width:640px){
  .bn-rail{flex-direction:column;align-items:stretch}
  .bn-link{width:1px;height:18px;flex:none;margin-left:24px}
  .build-grid,.rel-grid,.study-grid,.selector{grid-template-columns:1fr}
  .build-card.is-delivered{grid-column:auto}
  .fl-facts{grid-template-columns:1fr}
  .fl-fact+.fl-fact{padding-left:0;border-left:0;border-top:1px solid rgba(255,255,255,.28);margin-top:24px}
  .sec .head h2{font-size:36px}
}

/* ===== Page-level spacing + density overrides (loaded after template CSS) ===== */
.bn--dark-text .pt-mark{border-color:var(--bronze);color:var(--bronze)}
#what-we-build.industries-signal-console-white__style-001{padding-block:120px}
#what-we-build .industries-signal-console-white__style-004{padding-top:0}
#what-we-build .industries-signal-console-white__style-005{margin-bottom:56px}
#what-we-build .industries-signal-console-white__style-013{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
#what-we-build .industries-signal-console-white__style-014{--tint:rgba(212,175,55,.13);--rule:rgba(212,175,55,.75);background:linear-gradient(180deg,var(--tint) 0%,rgba(255,255,255,0) 58%),#fff;border-top:2px solid var(--rule);transition:background-color .3s,outline-color .2s,box-shadow .2s,border-color .2s}
#what-we-build .industries-signal-console-white__style-014:nth-child(8n+2),#what-we-build .industries-signal-console-white__style-014:nth-child(8n+4),#what-we-build .industries-signal-console-white__style-014:nth-child(8n+5),#what-we-build .industries-signal-console-white__style-014:nth-child(8n+7){--tint:rgba(66,102,83,.10);--rule:rgba(66,102,83,.55)}
#what-we-build .industries-signal-console-white__style-014:hover{background-color:#FCFAF6;border-top-color:var(--bronze)}
#what-we-build .industries-signal-console-white__style-022{margin-top:42px;padding:10px 16px;border:1px solid rgba(13,86,48,.45);border-bottom:1px solid rgba(13,86,48,.45);transition:border-color .2s,background-color .2s,color .2s}
#what-we-build .industries-signal-console-white__style-014:hover .industries-signal-console-white__style-022{border-color:var(--bronze);color:var(--bronze)}
#what-we-build .industries-signal-console-white__style-014{min-height:392px;grid-template-rows:minmax(166px,1fr) auto;gap:24px;padding:30px 24px 26px}
#what-we-build .industries-signal-console-white__style-020{font-size:21px;line-height:1.25}
#what-we-build .industries-signal-console-white__style-021{font-size:15px;-webkit-line-clamp:3}
@media (max-width:1100px){#what-we-build .industries-signal-console-white__style-013{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:900px){#what-we-build .industries-signal-console-white__style-013{grid-template-columns:repeat(2,minmax(0,1fr))}#what-we-build .wwb-art{max-height:126px}#what-we-build .industries-signal-console-white__style-014{min-height:348px;grid-template-rows:minmax(141px,1fr) auto;padding:28px 24px 26px}}
@media (max-width:560px){#what-we-build .industries-signal-console-white__style-014{min-height:300px;grid-template-rows:minmax(109px,1fr) auto;gap:18px;padding:24px 20px 22px}#what-we-build .wwb-art{max-height:98px}#what-we-build .industries-signal-console-white__style-013{grid-template-columns:1fr}}
#flagship-proof-system.case-study-showcase-05-one-two-three-four-showcase{padding-block:120px}
#flagship-proof-system .case-study-showcase-05-one-two-three-four-showcase__head{margin-bottom:56px}
#start-selector .head{margin-bottom:56px}
#start-selector{border-top:1px solid var(--rule)}
#flagship-proof-system{border-top:1px solid var(--rule)}
@media (max-width:900px){.bn-inner{padding:120px 0}}
@media (max-width:760px){#what-we-build.industries-signal-console-white__style-001,#flagship-proof-system.case-study-showcase-05-one-two-three-four-showcase,.sec{padding-block:88px}}

