/* =====================================================================
   Tetra Connects — site styles
   Palette comes from the logo: cyan #1CCBDD to violet #563282, navy #234C7A.
   The gradient is reserved for the logo and the hero traces. Everything else
   is navy, white and hairlines. Corners are cut at 45 degrees, like the
   circuit traces in the mark, instead of rounded.
   ===================================================================== */

@font-face{font-family:"Saira";src:url("../fonts/saira-var.woff2") format("woff2");font-weight:100 900;font-stretch:50% 125%;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("../fonts/instrument-sans-var.woff2") format("woff2");font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("../fonts/instrument-sans-italic-var.woff2") format("woff2");font-weight:400 700;font-style:italic;font-display:swap}

:root{
  --ink:#0F2038;
  --navy:#234C7A;
  --cyan:#1CCBDD;
  --cyan-ink:#0B6F7C;        /* accessible teal for accent text on light backgrounds */
  --violet:#563282;
  --paper:#F5F7FA;
  --white:#fff;
  --rule:#D3DBE6;
  --muted:#4A5A72;
  --alert:#B8381F;
  --ok:#1D6F4D;
  --font-display:"Saira",system-ui,"Segoe UI",sans-serif;
  --font-body:"Instrument Sans",system-ui,"Segoe UI",sans-serif;
  --cut:12px;
  --chamfer:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,var(--cut) 100%,0 calc(100% - var(--cut)));
  --t-xs:.8125rem;
  --t-s:.9375rem;
  --t-m:1.0625rem;
  --t-l:1.25rem;
  --t-xl:clamp(1.45rem,2.1vw,1.85rem);
  --t-2xl:clamp(1.9rem,3.5vw,2.85rem);
  --t-3xl:clamp(2.45rem,5.6vw,4.75rem);
  --gutter:clamp(1rem,4vw,2.5rem);
  --wrap:1560px;              /* ONE content width for the whole site, so every section
                                 shares the same left and right edge. Change it here only. */
  --wrap-wide:var(--wrap);    /* kept so older markup stays aligned with everything else */
  --header-h:72px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 1rem)}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--paper);color:var(--ink);font:400 var(--t-m)/1.62 var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
main{flex:1 0 auto}
img,svg{max-width:100%;height:auto}
img{display:block}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.08;letter-spacing:-.012em;margin:0 0 .55em;text-wrap:balance}
h1{font-size:var(--t-3xl);font-stretch:88%}
h2{font-size:var(--t-2xl);font-stretch:90%}
h3{font-size:var(--t-xl);line-height:1.15}
h4{font-size:var(--t-l);line-height:1.2}
p{margin:0 0 1em;text-wrap:pretty}
ul,ol{margin:0 0 1em;padding-left:1.2em}
li{margin-bottom:.3em}
a{color:var(--navy);text-decoration-thickness:1px;text-underline-offset:.2em}
a:hover{color:var(--ink)}
hr{border:0;border-top:1px solid var(--rule);margin:2rem 0}
strong{font-weight:650}
:focus-visible{outline:3px solid var(--navy);outline-offset:3px}
.band--deep :focus-visible,.site-footer :focus-visible,.hub :focus-visible{outline-color:var(--cyan)}
::selection{background:var(--cyan);color:var(--ink)}

.skip{position:absolute;left:-999px;top:0;z-index:100;background:var(--ink);color:#fff;padding:.7rem 1rem}
.skip:focus{left:1rem;top:1rem}
.sr-only{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.i{width:1.25em;height:1.25em;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.2em}

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.wrap--wide{max-width:var(--wrap-wide)}
.wrap--narrow{max-width:820px}
.prose{max-width:66ch}
.section{padding-block:clamp(3.25rem,7.5vw,6rem)}
.section--tight{padding-block:clamp(2rem,4vw,3.5rem)}
.section--white{background:var(--white)}
.band--deep{background:var(--ink);color:#E6EDF7;--muted:#A9B8CD;--rule:#2A4262;--cyan-ink:var(--cyan)}
.band--deep a{color:#fff}
.band--deep a:hover{color:var(--cyan)}
.band--deep h1,.band--deep h2,.band--deep h3,.band--deep h4{color:#fff}
.muted{color:var(--muted)}
.mt-m{margin-top:2rem}
.mt-l{margin-top:2.5rem}
.band--deep .lede{color:#C5D1E2}
.lede{font-size:clamp(1.1rem,1.5vw,1.3rem);line-height:1.5;color:var(--muted);max-width:52ch}
.section__head{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(1rem,4vw,3.5rem);align-items:end;margin-bottom:clamp(1.75rem,4vw,3rem)}
.section__head h2{margin:0}
@media (max-width:760px){.section__head{grid-template-columns:1fr;gap:.9rem}}
.section__head p{margin:0}

/* circuit rule: hairline that bends 45 degrees and ends on a node (the logo motif) */
.trace-rule{display:flex;align-items:center;height:24px;color:var(--rule);margin-block:0}
.trace-rule::before{content:"";flex:1;height:1px;background:currentColor}
.trace-rule::after{content:"";width:96px;height:24px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 24'%3E%3Cpath d='M0 12h22l12-10h30l10 10h12' fill='none' stroke='%23000' stroke-width='1.2'/%3E%3Ccircle cx='88' cy='12' r='3.2'/%3E%3C/svg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 24'%3E%3Cpath d='M0 12h22l12-10h30l10 10h12' fill='none' stroke='%23000' stroke-width='1.2'/%3E%3Ccircle cx='88' cy='12' r='3.2'/%3E%3C/svg%3E") center/100% 100% no-repeat}

/* ---------------------------------------------------------------- buttons */
.btn{--bg:var(--ink);--fg:#fff;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:48px;padding:.85rem 1.5rem;font:600 1rem/1.1 var(--font-display);letter-spacing:.01em;color:var(--fg);background:var(--bg);text-decoration:none;border:0;cursor:pointer;clip-path:var(--chamfer);transition:background-color .2s,color .2s}
.btn:hover{--bg:var(--navy);color:#fff}
.btn--sm{min-height:42px;padding:.6rem 1.1rem;font-size:.9375rem;--cut:9px}
.btn--ghost{--bg:var(--ink);color:var(--ink)}
.btn--ghost::before{content:"";position:absolute;inset:1.5px;z-index:-1;background:var(--fill,var(--paper));clip-path:polygon(0 0,calc(100% - var(--cut) + 1px) 0,100% calc(var(--cut) - 1px),100% 100%,calc(var(--cut) - 1px) 100%,0 calc(100% - var(--cut) + 1px));transition:background-color .2s}
.btn--ghost:hover{--bg:var(--navy);color:var(--ink)}
.btn--ghost:hover::before{background:#fff}
.btn--accent{--bg:var(--cyan);--fg:var(--ink)}
.btn--accent:hover{--bg:#fff;color:var(--ink)}
.btn--ghost-light{--bg:#fff;color:#fff}
.btn--ghost-light::before{background:var(--ink)}
.btn--ghost-light:hover{--bg:var(--cyan);color:#fff}
.btn--ghost-light:hover::before{background:var(--ink)}
.btn--block{width:100%}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.link-more{display:inline-flex;align-items:center;gap:.3rem;font-weight:600;text-decoration:none;border-bottom:1.5px solid currentColor;padding-bottom:1px}
.link-more .i{width:1.1em;height:1.1em;transition:transform .2s}
.link-more:hover .i{transform:translateX(3px)}

/* ---------------------------------------------------------------- header */
.site-header{position:sticky;top:0;z-index:50;height:var(--header-h);background:rgba(245,247,250,.92);-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid transparent;transition:border-color .2s;view-transition-name:site-header}
.site-header.is-stuck{border-bottom-color:var(--rule)}
.site-header__row{height:100%;display:flex;align-items:center;gap:1.5rem}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;flex:none}
.brand__mark{height:44px;width:auto}
.brand__word{height:15px;width:auto}
.nav{margin-left:auto;display:flex;align-items:center;gap:.5rem}
.nav__list{display:flex;align-items:center;gap:.25rem;list-style:none;margin:0;padding:0}
.nav__item{position:relative;margin:0}
.nav__link{display:inline-flex;align-items:center;gap:.2rem;padding:.6rem .48rem;font:600 .9125rem/1 var(--font-display);letter-spacing:.01em;color:var(--ink);text-decoration:none;position:relative;white-space:nowrap}
.nav__link::after{content:"";position:absolute;left:.48rem;right:.48rem;bottom:.2rem;height:2px;background:var(--navy);transform:scaleX(0);transform-origin:left;transition:transform .22s}
.nav__link .i{width:1em;height:1em;flex:none}
.nav__link:hover::after,.nav__link[aria-current="page"]::after,.nav__link.is-here::after,.nav__item.is-open>.nav__link::after{transform:scaleX(1)}
.nav__sub{position:absolute;left:0;top:100%;min-width:260px;margin:0;padding:.6rem;list-style:none;background:#fff;border:1px solid var(--rule);box-shadow:0 18px 40px -22px rgba(15,32,56,.35);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .18s,transform .18s,visibility .18s}
html:not(.js) .nav__item:hover>.nav__sub,html:not(.js) .nav__item:focus-within>.nav__sub,.nav__item.is-open>.nav__sub{opacity:1;visibility:visible;transform:none}
.nav__sub a{display:block;padding:.6rem .8rem;text-decoration:none;color:var(--ink);font-weight:500}
.nav__sub a:hover{background:var(--paper);color:var(--navy)}
.nav__sub small{display:block;color:var(--muted);font-weight:400;font-size:.8125rem;line-height:1.35}
.header-cta{display:flex;align-items:center;gap:.5rem;margin-left:.75rem;flex:none}
/* Eight top-level menus plus two buttons need more room than the content column.
   The header gets its own wider cap, and the secondary button steps aside on narrower desktops. */
@media (min-width:1261px){
  .site-header .wrap--wide{max-width:var(--wrap-wide)}
  .header-cta .btn{padding:.6rem .9rem;font-size:.9rem}
}
@media (min-width:1261px) and (max-width:1520px){
  .site-header__row{gap:1rem}
  .header-cta{margin-left:.5rem}
  .header-cta .btn--ghost{display:none}
}
.nav-toggle{display:none;margin-left:auto;width:48px;height:48px;border:0;background:transparent;color:var(--ink);cursor:pointer}
.nav-toggle .i{width:28px;height:28px}
.nav-toggle .i-close{display:none}
.site-header.nav-open .nav-toggle .i-open{display:none}
.site-header.nav-open .nav-toggle .i-close{display:block}

@media (max-width:1260px){
  .brand__word{height:13px}
  .nav-toggle{display:inline-grid;place-items:center}
  .nav{position:fixed;inset:var(--header-h) 0 0 0;margin:0;background:var(--paper);overflow:auto;padding:1rem var(--gutter) 3rem;display:none;border-top:1px solid var(--rule)}
  .site-header.nav-open .nav{display:block}
  .nav__list{flex-direction:column;align-items:stretch;gap:0}
  .nav__item{border-bottom:1px solid var(--rule)}
  .nav__link{display:flex;padding:1rem 0;font-size:1.25rem}
  .nav__link::after{display:none}
  .nav__sub{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;padding:0 0 .8rem .9rem;background:transparent}
  .nav__sub a{padding:.45rem 0;color:var(--muted)}
  .nav__sub small{display:none}
  .header-cta{flex-direction:column;align-items:stretch;margin:1.5rem 0 0}
}
@media (max-width:420px){.brand__mark{height:38px}.brand__word{height:11px}}

/* ---------------------------------------------------------------- page-load: one orchestrated moment (home hero) */
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.is-home .hero h1{animation:rise .7s cubic-bezier(.2,.7,.2,1) both}
.is-home .hero__side{animation:rise .7s .12s cubic-bezier(.2,.7,.2,1) both}
@media (prefers-reduced-motion:reduce){.is-home .hero h1,.is-home .hero__side{animation:none}}
@view-transition{navigation:auto}

/* ---------------------------------------------------------------- hero */
.hero{padding-top:clamp(2rem,5vw,4.25rem);padding-bottom:clamp(2.5rem,6vw,4.5rem)}
.hero__grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(1.25rem,5vw,4.5rem);align-items:end}
.hero h1{margin:0 0 clamp(1.5rem,3vw,2.5rem);max-width:none}
.hero h1 span{display:block}
.hero .lede{margin:0}
.hero__actions{display:flex;flex-wrap:wrap;gap:.85rem 1rem;align-items:center}
.hero__alt{margin:1.25rem 0 0;font-size:var(--t-s)}
@media (max-width:860px){.hero__grid{grid-template-columns:1fr;align-items:start}}

/* The layer: clients and prime vendors on the left, talent sources on the right, Tetra Connects between them. */
.layer{position:relative;margin-top:clamp(2.25rem,5vw,4rem);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,1fr);gap:clamp(2.75rem,8vw,7.5rem);align-items:center}
.layer__svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:0}
.layer__col{position:relative;z-index:1;display:grid;gap:.7rem}
.layer__label{margin:0 0 .15rem;font:600 .9375rem/1.2 var(--font-display);color:var(--muted)}
.node{position:relative;display:flex;flex-direction:column;gap:.1rem;padding:.8rem 1rem;background:var(--white);border:1px solid var(--rule);transition:border-color .2s,box-shadow .2s}
.node__t{font:600 1.0625rem/1.2 var(--font-display)}
.node__s{font-size:var(--t-xs);line-height:1.35;color:var(--muted)}
.node:hover,.node.is-lit{border-color:var(--navy);box-shadow:0 0 0 1px var(--navy)}
.hub{position:relative;z-index:1;background:var(--ink);color:#fff;padding:clamp(1.25rem,2.5vw,1.9rem);clip-path:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,22px 100%,0 calc(100% - 22px))}
.hub__title{display:flex;align-items:center;gap:.65rem;margin:0 0 1rem;font:600 1.2rem/1 var(--font-display);color:#fff}
.hub__title img{height:30px;width:auto}
.hub__steps{list-style:none;margin:0;padding:0;display:grid;gap:.15rem}
.hub__step{display:grid;grid-template-columns:2rem 1fr;gap:.2rem .6rem;padding:.65rem .75rem .65rem .6rem;margin:0;border-left:3px solid transparent;color:#B9C7DB;transition:background-color .3s,border-color .3s,color .3s}
.hub__step b{display:grid;place-items:center;width:1.75rem;height:1.75rem;border:1px solid #3C557A;font:600 .875rem/1 var(--font-display);color:#fff}
.hub__step strong{display:block;font:600 1.0625rem/1.25 var(--font-display);color:#fff}
.hub__step span{grid-column:2;font-size:var(--t-s);line-height:1.4}
.hub__step.is-on{background:rgba(28,203,221,.1);border-left-color:var(--cyan);color:#E6EDF7}
.hub__step.is-on b{background:var(--cyan);border-color:var(--cyan);color:var(--ink)}
.layer__replay{position:absolute;right:0;bottom:-2.6rem;display:none;align-items:center;gap:.4rem;border:0;background:none;color:var(--muted);font:600 var(--t-s)/1 var(--font-display);cursor:pointer;padding:.5rem}
.js .layer__replay{display:inline-flex}
.layer__replay:hover{color:var(--ink)}
.layer__note{margin:1.1rem 0 0;max-width:62ch;color:var(--muted);font-size:var(--t-s)}
.trace{fill:none;stroke:var(--navy);stroke-opacity:.38;stroke-width:1.5}
.trace.is-lit{stroke-opacity:1;stroke-width:2}
.port{fill:var(--navy)}
.pulse{fill:var(--cyan)}
.pulse--tal{fill:var(--violet)}
.pulse--ret{fill:var(--ink)}
.pulse-halo{fill:var(--cyan);fill-opacity:.25}
.pulse-halo--tal{fill:var(--violet)}
.pulse-halo--ret{fill:var(--ink)}

@media (max-width:860px){
  .layer{grid-template-columns:1fr;gap:1.1rem;padding-left:1.6rem}
  .layer::before{content:"";position:absolute;left:.45rem;top:0;bottom:0;width:1.5px;background:var(--navy);opacity:.35}
  .layer__svg{display:none}
  .node::before,.hub::before{content:"";position:absolute;left:-1.6rem;top:50%;width:.95rem;height:.95rem;margin-top:-.475rem;border-radius:50%;background:var(--paper);border:2px solid var(--navy);z-index:2}
  .node::after{content:"";position:absolute;left:-.7rem;top:50%;width:.7rem;height:1.5px;background:var(--navy);opacity:.4}
  .layer__replay{display:none!important}
}

/* ---------------------------------------------------------------- explorer (what we staff) */
.explorer{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(1.25rem,4vw,3.5rem);align-items:start}
.explorer__tabs{display:none;flex-direction:column;border-top:1px solid var(--rule)}
.js .explorer__tabs{display:flex}
.explorer__tab{display:flex;align-items:center;justify-content:space-between;gap:1rem;text-align:left;padding:1.05rem .9rem 1.05rem 1rem;border:0;border-bottom:1px solid var(--rule);border-left:3px solid transparent;background:transparent;color:var(--muted);font:600 clamp(1.15rem,1.7vw,1.4rem)/1.15 var(--font-display);cursor:pointer;transition:color .2s,background-color .2s,border-color .2s}
.explorer__tab:hover{color:var(--ink)}
.explorer__tab[aria-selected="true"]{color:var(--ink);border-left-color:var(--navy);background:linear-gradient(90deg,rgba(28,203,221,.16),rgba(28,203,221,0))}
.explorer__tab .i{opacity:0;transition:opacity .2s,transform .2s}
.explorer__tab[aria-selected="true"] .i{opacity:1}
.explorer__panel{background:var(--white);border:1px solid var(--rule);padding:clamp(1.25rem,3vw,2.25rem)}
.explorer__panel h3{margin-bottom:.4rem}
.explorer__panel>p{max-width:56ch;color:var(--muted)}
.roles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem 2rem;margin:1.5rem 0 1.75rem}
.roles dt{font:600 1rem/1.2 var(--font-display);margin-bottom:.35rem}
.roles dd{margin:0;color:var(--muted);font-size:var(--t-s);line-height:1.5}
.roles dd+dt{margin-top:0}
.roles__group{break-inside:avoid}
.js .explorer__panel[hidden]{display:none}
.explorer__panel+.explorer__panel{margin-top:1rem}
.js .explorer__panel+.explorer__panel{margin-top:0}
.explorer__notes{display:grid;gap:.5rem;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--rule);font-size:var(--t-s);color:var(--muted)}
.explorer__notes p{margin:0;display:flex;gap:.6rem}
@media (max-width:860px){
  .explorer{grid-template-columns:1fr}
  .js .explorer__tabs{flex-direction:row;overflow-x:auto;border-top:0;border-bottom:1px solid var(--rule);scrollbar-width:thin}
  .js .explorer__tab{border-bottom:0;border-left:0;border-bottom:3px solid transparent;white-space:nowrap;padding:.9rem 1rem}
  .js .explorer__tab[aria-selected="true"]{border-bottom-color:var(--navy);background:none}
  .js .explorer__tab .i{display:none}
  .roles{grid-template-columns:1fr}
}

/* ---------------------------------------------------------------- process steps */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(1.25rem,3vw,2.5rem);position:relative}
.steps::before{content:"";position:absolute;left:19px;right:0;top:19px;height:1px;background:var(--navy);opacity:.4}
.step{position:relative;padding-top:3.4rem;margin:0}
.step__n{position:absolute;top:0;left:0;width:39px;height:39px;display:grid;place-items:center;background:var(--paper);border:1px solid var(--navy);font:600 1.0625rem/1 var(--font-display);color:var(--navy)}
.section--white .step__n{background:var(--white)}
.step h3{font-size:var(--t-l);margin-bottom:.4rem}
.step p{color:var(--muted);font-size:var(--t-s);margin:0}
@media (max-width:860px){
  .steps{grid-template-columns:1fr;gap:1.6rem}
  .steps::before{left:19px;right:auto;top:20px;bottom:20px;width:1px;height:auto}
  .step{padding:0 0 0 3.6rem;min-height:39px}
}

/* ---------------------------------------------------------------- cybersecurity band */
.cyber{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.svc-list{list-style:none;margin:2rem 0 0;padding:0;border-top:1px solid var(--rule)}
.svc-list li{margin:0}
.svc{display:grid;grid-template-columns:2.4rem 1fr auto;gap:.25rem 1rem;align-items:start;padding:1.15rem 0;border-bottom:1px solid var(--rule);text-decoration:none;color:inherit;transition:background-color .2s,padding .2s}
.svc .i{width:1.6rem;height:1.6rem;color:var(--cyan);margin-top:.15rem}
.svc__t{font:600 1.25rem/1.2 var(--font-display);color:#fff}
.svc__s{grid-column:2;margin:0;color:var(--muted);font-size:var(--t-s);line-height:1.5;max-width:52ch}
.svc__go{grid-row:1;grid-column:3;align-self:center;color:var(--cyan);opacity:.0;transition:opacity .2s,transform .2s}
.svc:hover{background:rgba(255,255,255,.035);padding-inline:.6rem}
.svc:hover .svc__go{opacity:1;transform:translateX(3px)}
.finding{background:#0A1830;border:1px solid #2A4262;padding:clamp(1.1rem,2.5vw,1.75rem);clip-path:polygon(0 0,calc(100% - 20px) 0,100% 20px,100% 100%,0 100%)}
.finding__cap{margin:0 0 1rem;font-size:var(--t-xs);color:var(--muted)}
.finding h3{font-size:1.3rem;margin:.25rem 0 1rem;color:#fff}
.finding__sev{display:inline-flex;align-items:center;gap:.5rem;padding:.2rem .6rem;border:1px solid #F0A290;color:#FFC9BC;font:600 .8125rem/1.3 var(--font-display)}
.finding dl{margin:0;display:grid;grid-template-columns:6.5rem 1fr;gap:.7rem 1rem;font-size:var(--t-s)}
.finding dt{color:var(--cyan);font-family:var(--font-display);font-weight:600}
.finding dd{margin:0;color:#D6E0EE}
.finding__pass{display:inline-flex;gap:.4rem;align-items:center;color:#8FE3B5;font-weight:600}
@media (max-width:900px){.cyber{grid-template-columns:1fr}}

/* ---------------------------------------------------------------- offices */
.offices{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,5vw,5rem);position:relative}
.office{padding-top:1.1rem;border-top:2px solid var(--ink)}
.office h3{margin-bottom:.15rem}
.office__time{display:flex;align-items:baseline;gap:.6rem;margin:.1rem 0 1.1rem;color:var(--muted);font-size:var(--t-s)}
.office__time b{font:600 1.7rem/1 var(--font-display);color:var(--ink);font-variant-numeric:tabular-nums}
.office address{font-style:normal;margin-bottom:.8rem}
.office__line{display:flex;gap:.6rem;align-items:flex-start;margin:0 0 .35rem}
.office__line .i{margin-top:.25rem;color:var(--navy)}
/* Labelled contact rows, so a phone number or an email never sits on the page bare. */
.office__contact{margin:0;display:grid;grid-template-columns:max-content minmax(0,1fr);gap:.5rem 1.5rem;align-items:baseline}
.office__contact dt{font:600 .7rem/1.7 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.office__contact dd{margin:0}
@media (max-width:760px){.offices{grid-template-columns:1fr}}
@media (max-width:420px){.office__contact{grid-template-columns:1fr;gap:.05rem}.office__contact dd{margin-bottom:.5rem}}

/* ---------------------------------------------------------------- final call to action */
.paths{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:2rem;border-top:1px solid var(--rule)}
.path{display:flex;flex-direction:column;gap:.5rem;padding:1.5rem clamp(1rem,2.5vw,2rem) 1.75rem 0;text-decoration:none;color:inherit;border-bottom:1px solid var(--rule);transition:background-color .2s}
.path+.path{padding-left:clamp(1rem,2.5vw,2rem);border-left:1px solid var(--rule)}
.path h3{margin:0;font-size:1.45rem}
.path p{margin:0;color:var(--muted);font-size:var(--t-s)}
.path .link-more{margin-top:auto;align-self:flex-start;padding-top:.6rem;border-bottom:0;color:var(--cyan)}
.path:hover h3{color:var(--cyan)}
@media (max-width:860px){.paths{grid-template-columns:1fr}.path,.path+.path{padding:1.25rem 0;border-left:0}}
.callbar{display:flex;flex-wrap:wrap;gap:.75rem 2.5rem;margin-top:2rem;color:var(--muted)}
.callbar span{display:grid;gap:.1rem}
.callbar b{font:600 .7rem/1.7 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:#9DB0C9;font-weight:600}
.callbar a{color:#fff;font-weight:600;text-decoration:none}
.callbar a:hover{color:var(--cyan)}

/* ---------------------------------------------------------------- footer */
.site-footer{margin-top:auto;border-top:1px solid #2A4262;background:var(--ink);color:#C5D1E2;padding-block:clamp(2.5rem,5vw,4rem) 1.5rem;--rule:#2A4262}
.site-footer a{color:#fff;text-decoration:none}
.site-footer a:hover{color:var(--cyan);text-decoration:underline}
.footer__grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2rem}
.footer__brand img{height:110px;width:auto;margin-bottom:1rem}
.footer__brand p{font-size:var(--t-s);max-width:30ch}
.site-footer h2{font:600 1rem/1.2 var(--font-display);color:#fff;margin:0 0 .8rem;letter-spacing:.01em}
.site-footer ul{list-style:none;margin:0;padding:0;font-size:var(--t-s)}
.site-footer li{margin-bottom:.45rem}
.footer__office{font-size:var(--t-s);font-style:normal;margin-bottom:1rem;line-height:1.5}
.footer__office strong{color:#fff}
.footer__legal{margin-top:2.5rem;padding-top:1.25rem;border-top:1px solid var(--rule);display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem 2rem;font-size:var(--t-xs);color:#9DB0C9}
.footer__legal ul{display:flex;flex-wrap:wrap;gap:.4rem 1.25rem}
.footer__eeo{margin-top:1rem;font-size:var(--t-xs);color:#9DB0C9;max-width:90ch}
@media (max-width:1000px){.footer__grid{grid-template-columns:repeat(3,minmax(0,1fr))}.footer__brand img{height:110px}}
@media (max-width:700px){.footer__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.footer__grid{grid-template-columns:1fr}}

/* ---------------------------------------------------------------- page headers, breadcrumbs, prose pages */
.page-head{padding-block:clamp(2rem,5vw,3.75rem) clamp(1.5rem,3vw,2.5rem)}
.page-head h1{font-size:clamp(2.1rem,4.6vw,3.6rem);max-width:20ch;margin-bottom:.4em}
.page-head .lede{margin:0}
.crumbs{margin:0 0 1.5rem;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:.25rem .6rem;font-size:var(--t-s);color:var(--muted)}
.crumbs li{margin:0;display:flex;gap:.6rem}
.crumbs li+li::before{content:"/";color:var(--rule)}
.crumbs a{color:var(--muted)}
.two-col{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(1.5rem,5vw,4.5rem);align-items:start}
@media (max-width:900px){.two-col{grid-template-columns:1fr}}
.sidebar{position:sticky;top:calc(var(--header-h) + 1.5rem)}
@media (max-width:900px){.sidebar{position:static}}
.aside-box{padding:1.4rem;background:var(--white);border:1px solid var(--rule);clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%)}
.aside-box h2,.aside-box h3{font-size:1.25rem;margin-bottom:.5rem}
.aside-box p{font-size:var(--t-s);color:var(--muted)}
.aside-box .btn{margin-top:.4rem}
.band--deep .aside-box{background:#0A1830;border-color:#2A4262}

.checklist{list-style:none;padding:0;margin:0 0 1.5rem}
.checklist li{display:flex;gap:.7rem;align-items:flex-start;margin-bottom:.65rem}
.checklist .i{color:var(--navy);margin-top:.22rem}
.band--deep .checklist .i{color:var(--cyan)}
.faq{border-top:1px solid var(--rule);margin:0 0 2rem}
.faq details{border-bottom:1px solid var(--rule);padding:0}
.faq summary{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.05rem 0;cursor:pointer;list-style:none;font:600 1.15rem/1.3 var(--font-display)}
.faq summary::-webkit-details-marker{display:none}
.faq summary .i{transition:transform .2s}
.faq details[open] summary .i{transform:rotate(180deg)}
.faq details p{margin:0 0 1.1rem;max-width:62ch;color:var(--muted)}
.prose h2{font-size:clamp(1.55rem,2.6vw,2.1rem);margin-top:2.2em}
.prose h3{font-size:1.3rem;margin-top:1.8em}
.prose h2:first-child,.prose h3:first-child{margin-top:0}
.prose ul,.prose ol{margin-bottom:1.1em}
.prose li{margin-bottom:.4em}
.prose table{border-collapse:collapse;width:100%;margin:1.5rem 0;font-size:var(--t-s)}
.prose th,.prose td{text-align:left;padding:.6rem .8rem;border-bottom:1px solid var(--rule);vertical-align:top}
.prose th{font-family:var(--font-display);font-weight:600}
.prose blockquote{margin:1.5rem 0;padding:.2rem 0 .2rem 1.1rem;border-left:3px solid var(--cyan);color:var(--muted)}
.prose code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;background:#E9EEF5;padding:.1em .35em}
.prose pre{background:var(--ink);color:#E6EDF7;padding:1rem 1.2rem;overflow:auto;font-size:.875rem;line-height:1.5}
.prose pre code{background:none;padding:0;color:inherit}
.prose img{margin:1.5rem 0}
.steps-list{list-style:none;margin:0 0 1.5rem;padding:0;counter-reset:n}
.steps-list li{position:relative;padding:0 0 1.2rem 3.2rem;margin:0;counter-increment:n}
.steps-list li::before{content:counter(n);position:absolute;left:0;top:0;width:2.2rem;height:2.2rem;display:grid;place-items:center;border:1px solid var(--navy);font:600 1rem/1 var(--font-display);color:var(--navy);background:var(--paper)}
.steps-list li::after{content:"";position:absolute;left:1.1rem;top:2.4rem;bottom:.2rem;width:1px;background:var(--navy);opacity:.35}
.steps-list li:last-child::after{display:none}
.steps-list strong{display:block;font:600 1.15rem/1.3 var(--font-display);margin-bottom:.15rem}
.steps-list p{margin:0;color:var(--muted)}
.band--deep .steps-list li::before{background:var(--ink);border-color:var(--cyan);color:var(--cyan)}
.band--deep .steps-list li::after{background:var(--cyan)}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1.25rem 2rem;margin:0}
.facts div{border-top:2px solid var(--ink);padding-top:.7rem}
.facts dt{font:600 1.35rem/1.15 var(--font-display);margin-bottom:.25rem}
.facts dd{margin:0;color:var(--muted);font-size:var(--t-s)}
.notice{padding:1rem 1.2rem;margin:0 0 1.5rem;border-left:4px solid var(--navy);background:#E8EEF6;font-size:var(--t-s)}
.notice--error{border-left-color:var(--alert);background:#FBEDEA}
.notice--ok{border-left-color:var(--ok);background:#E6F3EC}
.notice--warn{border-left-color:#B07A00;background:#FBF3DF}
.notice p{margin:0 0 .4rem}
.notice p:last-child{margin:0}
.urgent{display:flex;gap:1rem;align-items:flex-start;padding:1.1rem 1.25rem;margin-bottom:2rem;background:#FBEDEA;border-left:4px solid var(--alert)}
.urgent .i{color:var(--alert);width:1.6rem;height:1.6rem;margin-top:.1rem}
.urgent p{margin:0}
.urgent a{font-weight:700;color:var(--alert)}

/* testimonials / credentials (render only when real data exists) */
.quotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:2rem}
.quote{margin:0;padding-top:1rem;border-top:2px solid var(--ink)}
.quote blockquote{margin:0 0 1rem;font:500 1.2rem/1.45 var(--font-display)}
.quote figcaption{font-size:var(--t-s);color:var(--muted)}
.creds{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1rem 2rem}
.creds li{border-top:1px solid var(--rule);padding-top:.6rem;margin:0}
.creds strong{display:block;font-family:var(--font-display)}

/* ---------------------------------------------------------------- forms */
.form{display:grid;gap:1.15rem;max-width:42rem}
.form--wide{max-width:none}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:1.15rem}
@media (max-width:640px){.form__row{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column;gap:.35rem;border:0;margin:0;padding:0;min-width:0}
.field label,.field legend{font:600 .9875rem/1.3 var(--font-display);padding:0}
.field .opt{font:400 var(--t-xs)/1 var(--font-body);color:var(--muted);margin-left:.35rem}
.field-hint{margin:0;font-size:var(--t-xs);color:var(--muted)}
.field input[type=text],.field input[type=email],.field input[type=tel],.field input[type=url],.field input[type=password],.field input[type=search],.field input[type=date],.field input[type=number],.field select,.field textarea{width:100%;min-height:50px;padding:.7rem .9rem;font:400 1.0625rem/1.4 var(--font-body);color:var(--ink);background:var(--white);border:1px solid #9AA9BE;border-radius:0;appearance:none;-webkit-appearance:none}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F2038' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .8rem center;background-size:1.2rem;padding-right:2.6rem}
.field textarea{min-height:9rem;resize:vertical}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--navy)}
.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid var(--navy);outline-offset:1px;border-color:var(--navy)}
.field input[type=file]{width:100%;padding:.75rem;background:var(--white);border:1px dashed #7F93AE;font:400 var(--t-s)/1.4 var(--font-body)}
.field input[type=file]::file-selector-button{margin-right:1rem;padding:.55rem 1rem;border:0;background:var(--ink);color:#fff;font:600 .9375rem var(--font-display);cursor:pointer}
.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:var(--alert);box-shadow:inset 3px 0 0 var(--alert)}
.field-error{margin:0;color:var(--alert);font-size:var(--t-s);font-weight:600}
.choice legend{margin-bottom:.4rem}
.choice__row{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem}
.radio,.check{display:inline-flex;align-items:flex-start;gap:.6rem;font:400 1rem/1.4 var(--font-body)!important;cursor:pointer}
.radio input,.check input{flex:none;width:1.25rem;height:1.25rem;margin:.1rem 0 0;accent-color:var(--navy)}
.check--consent{font-size:var(--t-s)!important}
.form__actions{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-top:.5rem}
.form__small{font-size:var(--t-xs);color:var(--muted);margin:0}
.cf-turnstile{min-height:65px}
.sponsor-note{display:none;margin:0;padding:.7rem .9rem;background:#FBF3DF;border-left:4px solid #B07A00;font-size:var(--t-s)}
.sponsor-note.is-on{display:block}

/* ---------------------------------------------------------------- jobs */
.filters{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr auto;gap:.75rem;align-items:end;padding:1.1rem 0 1.4rem;border-bottom:1px solid var(--rule);margin-bottom:.5rem}
.filters .field{gap:.25rem}
@media (max-width:980px){.filters{grid-template-columns:1fr 1fr}.filters .btn{grid-column:1/-1}}
@media (max-width:560px){.filters{grid-template-columns:1fr}}
.job-list{list-style:none;margin:0;padding:0}
.job-list li{margin:0}
.job{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.25rem 1.5rem;align-items:center;padding:1.2rem .4rem;border-bottom:1px solid var(--rule);text-decoration:none;color:inherit;transition:background-color .2s}
.job:hover{background:var(--white)}
.job__t{font:600 1.3rem/1.2 var(--font-display);color:var(--ink)}
.job__meta{grid-column:1;display:flex;flex-wrap:wrap;gap:.25rem 1.1rem;margin:0;padding:0;list-style:none;color:var(--muted);font-size:var(--t-s)}
.job__meta li{display:flex;align-items:center;gap:.35rem;margin:0}
.job__go{grid-row:1/3;grid-column:2;color:var(--navy)}
.chip{display:inline-block;padding:.12rem .55rem;border:1px solid var(--navy);color:var(--navy);font:600 .8125rem/1.4 var(--font-display)}
.chip--trust{border-color:var(--violet);color:var(--violet)}
.empty{padding:2.5rem 0;max-width:52ch}
.job-body h2{font-size:1.5rem;margin-top:2rem}
.job-facts{display:grid;grid-template-columns:7rem 1fr;gap:.55rem 1rem;margin:0;font-size:var(--t-s)}
.job-facts dt{font-family:var(--font-display);font-weight:600}
.job-facts dd{margin:0}

/* ---------------------------------------------------------------- insights */
.topics{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin:0 0 2rem;padding:0 0 1rem;border-bottom:1px solid var(--rule);list-style:none}
.topics li{margin:0}
.topics a{font:600 1rem/1 var(--font-display);color:var(--muted);text-decoration:none;padding-bottom:.4rem;border-bottom:2px solid transparent}
.topics a[aria-current="page"],.topics a:hover{color:var(--ink);border-bottom-color:var(--navy)}
.search{display:flex;flex-wrap:wrap;gap:.5rem;margin-left:auto;max-width:100%}
.search input{min-height:42px;padding:.5rem .8rem;border:1px solid #9AA9BE;background:#fff;font:inherit;border-radius:0;width:14rem;min-width:0;flex:1 1 9rem}
.posts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(1.5rem,4vw,3.5rem)}
@media (max-width:760px){.posts{grid-template-columns:1fr}}
.post{display:flex;flex-direction:column;gap:.45rem;padding:1.4rem 0 1.6rem;border-top:1px solid var(--rule);text-decoration:none;color:inherit}
.post--lead{grid-column:1/-1;padding-block:1.8rem 2.2rem;border-top:2px solid var(--ink)}
.post--lead .post__t{font-size:clamp(1.8rem,3.4vw,2.7rem);max-width:24ch}
.post__t{font:600 1.45rem/1.15 var(--font-display);margin:0;color:var(--ink)}
.post:hover .post__t{color:var(--navy);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em}
.post__s{margin:0;color:var(--muted);max-width:60ch}
.post__m{margin:0;font-size:var(--t-xs);color:var(--muted);display:flex;gap:.4rem 1rem;flex-wrap:wrap}
.badge-review{display:inline-block;padding:.05rem .45rem;background:#FBF3DF;border:1px solid #B07A00;color:#6C4A00;font:600 .75rem/1.5 var(--font-display)}
.pager{display:flex;gap:1rem;align-items:center;margin-top:2rem}
.article{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,15rem);gap:clamp(2rem,5vw,5rem);align-items:start}
.article__head{max-width:46rem;margin-bottom:2rem}
.article__head h1{font-size:clamp(2.1rem,4.4vw,3.4rem);max-width:22ch}
.article .prose{font-size:1.125rem;line-height:1.7;min-width:0}
.prose .table-wrap{margin:1.5rem 0}
.prose .table-wrap table{margin:0;min-width:28rem}
.toc{position:sticky;top:calc(var(--header-h) + 1.5rem);font-size:var(--t-s);border-left:1px solid var(--rule);padding-left:1rem}
.toc h2{font:600 1rem/1.2 var(--font-display);margin-bottom:.6rem}
.toc ol{list-style:none;margin:0;padding:0}
.toc li{margin-bottom:.5rem}
.toc a{color:var(--muted);text-decoration:none}
.toc a:hover{color:var(--ink);text-decoration:underline}
@media (max-width:900px){.article{grid-template-columns:minmax(0,1fr)}.toc{display:none}}
.sources{margin-top:2.5rem;padding-top:1rem;border-top:1px solid var(--rule);font-size:var(--t-s);color:var(--muted)}
.sources h2{font:600 1rem/1.2 var(--font-display);margin-bottom:.4rem;color:var(--ink)}

/* ---------------------------------------------------------------- misc */
.thanks{padding-block:clamp(3rem,8vw,6rem)}
.thanks h1{max-width:16ch}
.error-page{padding-block:clamp(3rem,10vw,7rem)}
.error-page h1{max-width:14ch}
.print-only{display:none}
@media print{
  .site-header,.site-footer,.skip,.btn,.layer__replay{display:none!important}
  body{background:#fff}
}

/* ---------------------------------------------------------------- additions: lists, page heads on deep bands, small helpers */
.preview-bar{background:#FBF3DF;color:#5C3F00;border-bottom:1px solid #E5CE8E;font-size:var(--t-xs);text-align:center;padding:.4rem var(--gutter)}
.page-head.band--deep{padding-block:clamp(2.25rem,5vw,4rem) clamp(2rem,4.5vw,3.5rem)}
.page-head.band--deep .crumbs,.page-head.band--deep .crumbs a{color:#A9B8CD}
.page-head.band--deep .crumbs li+li::before{color:#3C557A}
.page-head.band--deep .lede{color:#C5D1E2}
.vlist{list-style:none;margin:0;padding:0}
.vitem{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:1rem clamp(1.5rem,5vw,4rem);padding:1.75rem 0 2rem;border-top:1px solid var(--rule);margin:0}
.vitem:first-child{border-top:2px solid var(--ink)}
.vitem h2{font-size:clamp(1.5rem,2.4vw,2rem);margin:0}
.vitem h2 a{color:var(--ink);text-decoration:none}
.vitem h2 a:hover{color:var(--navy);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em}
.vitem p{margin:0 0 .8rem;color:var(--muted);max-width:60ch}
.vitem .vitem__roles{font-size:var(--t-s)}
.vitem .link-more{margin-top:.2rem}
.checklist--tight{margin-bottom:1rem}
.checklist--tight li{margin-bottom:.35rem;color:var(--muted);font-size:var(--t-s)}
@media (max-width:760px){.vitem{grid-template-columns:1fr}}
.aside-box--second{margin-top:1.25rem}
.aside-nav{margin-top:1.75rem;padding-top:1rem;border-top:1px solid var(--rule)}
.aside-nav h2{font:600 1rem/1.2 var(--font-display);margin-bottom:.6rem}
.aside-nav ul{list-style:none;margin:0;padding:0;font-size:var(--t-s)}
.aside-nav li{margin-bottom:.45rem}
.aside-box .steps-list li{padding-bottom:1rem}
.aside-box .steps-list li::before{background:var(--white)}
.aside-box--cta{margin-top:2.5rem;max-width:46rem}
.facts--stack{grid-template-columns:1fr}
.thanks .thanks__icon{width:3rem;height:3rem;color:var(--ok);margin-bottom:1rem}
.topics-row{display:flex;flex-wrap:wrap;gap:1rem 2rem;align-items:flex-end;justify-content:space-between;margin-bottom:2rem;border-bottom:1px solid var(--rule)}
.topics-row .topics{margin:0;border:0;padding:0 0 .9rem}
.topics-row .search{margin:0 0 .9rem}
.job__meta--head{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:.35rem 1.25rem;color:var(--muted)}
.job__meta--head li{display:flex;align-items:center;gap:.35rem;margin:0}
.form-col{max-width:820px}
.js .hub__step{transition:background-color .3s,border-color .3s,color .3s}

.prose--after{margin-top:2.5rem}
.empty h2{font-size:var(--t-xl)}

/* buttons keep their own text colour inside dark bands (the band link rules would otherwise win) */
.band--deep a.btn{color:var(--fg)}
.band--deep a.btn:hover{color:#fff}
.band--deep a.btn--accent:hover{color:var(--ink)}
.band--deep a.btn--ghost-light{color:#fff}
.band--deep a.btn--ghost-light:hover{color:#fff}
