/* Commstec shared stylesheet. Tokens live in design/tokens.css. */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--ct-font-body);font-size:var(--ct-step-0);
  line-height:1.62;color:var(--ct-navy-900);background:var(--ct-paper);
  letter-spacing:var(--ct-track-flat);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--ct-font-display);font-weight:600;
  letter-spacing:var(--ct-track-tight);line-height:1.06;margin:0}
p{margin:0}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
.wrap{max-width:var(--ct-container);margin-inline:auto;padding-inline:var(--ct-s5)}
.eyebrow{font-size:var(--ct-step--1);font-weight:600;text-transform:uppercase;
  letter-spacing:var(--ct-track-wide);color:var(--ct-cyan)}
.eyebrow--dim{color:var(--ct-slate-500)}
.lede{font-size:var(--ct-step-1);line-height:1.5;color:var(--ct-slate-500);
  max-width:var(--ct-measure);letter-spacing:-0.005em}
.ph{border-bottom:1px dotted var(--ct-cyan);background:rgba(15,181,201,.07)}
.prose p+p{margin-top:var(--ct-s4)}
.prose{color:var(--ct-slate-500);max-width:64ch}
.prose strong{color:var(--ct-navy-900);font-weight:600}

.btn{display:inline-flex;align-items:center;gap:.6rem;font-weight:600;
  font-size:var(--ct-step--1);padding:.85rem 1.5rem;border-radius:var(--ct-radius);
  transition:all .25s var(--ct-ease);border:1px solid transparent}
.btn--primary{background:var(--ct-cyan);color:var(--ct-ink)}
.btn--primary:hover{background:var(--ct-cyan-bright);transform:translateY(-1px)}
.btn--ghost{border-color:rgba(255,255,255,.22);color:#fff}
.btn--ghost:hover{border-color:var(--ct-cyan);color:var(--ct-cyan)}
.btn--line{border-color:var(--ct-line);color:var(--ct-navy-900)}
.btn--line:hover{border-color:var(--ct-navy-900)}

.hdr{position:fixed;inset:0 0 auto;z-index:50;background:rgba(6,9,15,.94);
  backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.08)}
.hdr__in{display:flex;align-items:center;justify-content:space-between;height:76px;
  max-width:var(--ct-container);margin-inline:auto;padding-inline:var(--ct-s5)}
.logo{font-family:var(--ct-font-display);font-weight:700;font-size:1.2rem;
  color:#fff;letter-spacing:-0.02em}
.logo span{color:var(--ct-cyan)}
.nav{display:flex;gap:var(--ct-s5);align-items:center}
.nav a{font-size:var(--ct-step--1);font-weight:500;color:var(--ct-slate-300);
  transition:color .2s}
.nav a:hover,.nav a[aria-current]{color:#fff}
@media(max-width:1000px){.nav{display:none}}

.hero{position:relative;background:var(--ct-ink);color:#fff;overflow:hidden;
  padding:calc(76px + var(--ct-s9)) 0 var(--ct-s9)}
.hero--page{padding:calc(76px + var(--ct-s8)) 0 var(--ct-s8)}
.hero::before{content:'';position:absolute;top:-30%;right:-10%;width:70%;height:130%;
  background:radial-gradient(closest-side,rgba(15,181,201,.16),transparent 72%)}
.hero::after{content:'';position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px);
  background-size:88px 88px;
  mask-image:radial-gradient(ellipse 70% 60% at 50% 40%,#000,transparent)}
.hero__in{position:relative;z-index:2;max-width:var(--ct-container);
  margin-inline:auto;padding-inline:var(--ct-s5)}
.hero h1{font-size:var(--ct-step-4);max-width:24ch;margin:var(--ct-s5) 0 var(--ct-s6)}
.hero--page h1{font-size:var(--ct-step-3);max-width:26ch}
.hero h1 em{font-style:normal;color:var(--ct-cyan);display:inline-block}
.hero .lede{color:var(--ct-slate-300);max-width:58ch}
.hero__cta{display:flex;gap:var(--ct-s4);flex-wrap:wrap;margin-top:var(--ct-s7)}
.crumb{font-size:var(--ct-step--1);color:var(--ct-slate-500)}
.crumb a:hover{color:var(--ct-cyan)}

.trust{background:var(--ct-navy-900);color:var(--ct-slate-300);
  border-top:1px solid rgba(255,255,255,.07);padding:var(--ct-s5) 0}
.trust__in{display:flex;flex-wrap:wrap;gap:var(--ct-s4) var(--ct-s6);align-items:center;
  justify-content:space-between;max-width:var(--ct-container);margin-inline:auto;
  padding-inline:var(--ct-s5)}
.trust__item{display:flex;align-items:center;gap:.55rem;font-size:var(--ct-step--1);
  font-weight:500}
.trust__dot{width:5px;height:5px;border-radius:50%;background:var(--ct-cyan);flex:none}

.sec{padding:var(--ct-s9) 0}
.sec--tight{padding:var(--ct-s8) 0}
.sec--alt{background:var(--ct-paper-50);border-block:1px solid var(--ct-line)}
.sec--dark{background:var(--ct-ink);color:#fff}
.sec--dark .lede{color:var(--ct-slate-300)}
.sec--dark .prose{color:var(--ct-slate-300)}
.sec--dark .prose strong{color:#fff}
.sec__head{max-width:58ch;margin-bottom:var(--ct-s7)}
.sec__head h2{font-size:var(--ct-step-3);margin:var(--ct-s4) 0 var(--ct-s5)}
.rule{height:1px;background:var(--ct-line);border:0;margin:0}

.split{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--ct-s9)}
@media(max-width:900px){.split{grid-template-columns:1fr;gap:var(--ct-s6)}}
.split--even{grid-template-columns:1fr 1fr}

.trig{list-style:none;padding:0;margin:0;border-top:1px solid var(--ct-line);counter-reset:t}
.trig li{padding:var(--ct-s4) 0;border-bottom:1px solid var(--ct-line);
  display:flex;gap:var(--ct-s4)}
.trig li::before{content:counter(t,decimal-leading-zero);counter-increment:t;
  font-family:var(--ct-font-mono);font-size:var(--ct-step--1);color:var(--ct-cyan);
  flex:none;padding-top:.2rem}
.sec--dark .trig{border-color:rgba(255,255,255,.12)}
.sec--dark .trig li{border-color:rgba(255,255,255,.12)}

.caps{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  background:var(--ct-line);border:1px solid var(--ct-line)}
@media(max-width:900px){.caps{grid-template-columns:1fr}}
.cap{background:var(--ct-paper);padding:var(--ct-s7);position:relative;
  transition:background .3s var(--ct-ease)}
.cap:hover{background:var(--ct-paper-50)}
.cap__num{font-family:var(--ct-font-mono);font-size:var(--ct-step--1);color:var(--ct-slate-300)}
.cap h3{font-size:var(--ct-step-2);margin:var(--ct-s4) 0}
.cap>p{color:var(--ct-slate-500);max-width:46ch}
.cap__bar{position:absolute;left:0;top:0;width:2px;height:0;background:var(--ct-cyan);
  transition:height .4s var(--ct-ease)}
.cap:hover .cap__bar{height:100%}
.cap__link{font-size:var(--ct-step--1);font-weight:600;color:var(--ct-navy-900);
  border-bottom:1px solid var(--ct-cyan);padding-bottom:2px}

.ticks{list-style:none;padding:0;margin:var(--ct-s5) 0}
.ticks li{font-size:var(--ct-step--1);color:var(--ct-navy-700);
  padding:.42rem 0 .42rem 1.4rem;position:relative;border-top:1px solid var(--ct-line)}
.ticks li:first-child{border-top:0}
.ticks li::before{content:'';position:absolute;left:0;top:1.05rem;width:8px;height:2px;
  background:var(--ct-cyan)}
.sec--dark .ticks li{color:var(--ct-slate-300);border-color:rgba(255,255,255,.1)}

.guard{display:flex;flex-direction:column;gap:1px;background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.09);border-radius:var(--ct-radius)}
.guard__row{background:var(--ct-navy-900);padding:var(--ct-s5) var(--ct-s6);
  display:flex;align-items:flex-start;gap:var(--ct-s4)}
.guard__k{font-family:var(--ct-font-mono);font-size:var(--ct-step--1);color:var(--ct-cyan);
  flex:none;padding-top:.15rem}
.guard__t{font-weight:600}
.guard__d{font-size:var(--ct-step--1);color:var(--ct-slate-300);margin-top:.2rem}

.sectors{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--ct-s5)}
@media(max-width:1000px){.sectors{grid-template-columns:repeat(2,1fr)}}
.sector{border-top:2px solid var(--ct-navy-900);padding-top:var(--ct-s4);
  display:flex;flex-direction:column;height:100%;transition:border-color .25s var(--ct-ease)}
.sector:hover{border-top-color:var(--ct-cyan)}
.sector h3{font-size:var(--ct-step-1);margin-bottom:var(--ct-s3)}
.sector p{font-size:var(--ct-step--1);color:var(--ct-slate-500)}
.sector span{display:block;margin-top:auto;padding-top:var(--ct-s3);
  font-size:var(--ct-step--1);font-weight:600;color:var(--ct-cyan)}

/* Case study cards and at-a-glance */
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--ct-s6)}
@media(max-width:900px){.cards{grid-template-columns:1fr}}
.card{border:1px solid var(--ct-line);border-radius:var(--ct-radius);
  padding:var(--ct-s6);display:flex;flex-direction:column;
  transition:border-color .25s var(--ct-ease),transform .25s var(--ct-ease)}
.card:hover{border-color:var(--ct-navy-900);transform:translateY(-2px)}
.card__sector{font-family:var(--ct-font-mono);font-size:var(--ct-step--1);
  color:var(--ct-cyan);text-transform:uppercase;letter-spacing:.1em}
.card h3{font-size:var(--ct-step-1);margin:var(--ct-s4) 0 var(--ct-s4);max-width:26ch}
.card p{color:var(--ct-slate-500);font-size:var(--ct-step--1)}
.card__more{margin-top:auto;padding-top:var(--ct-s5);font-size:var(--ct-step--1);
  font-weight:600}
.chips{display:flex;flex-wrap:wrap;gap:var(--ct-s2);margin-top:var(--ct-s5)}
.chips span{font-size:var(--ct-step--1);border:1px solid var(--ct-line);
  border-radius:99px;padding:.3rem .75rem;color:var(--ct-navy-700)}
.sec--dark .chips span{border-color:rgba(255,255,255,.18);color:var(--ct-slate-300)}

.glance{background:var(--ct-navy-900);color:#fff;border-radius:var(--ct-radius);
  padding:var(--ct-s7);display:grid;grid-template-columns:repeat(4,1fr);gap:var(--ct-s6)}
@media(max-width:900px){.glance{grid-template-columns:repeat(2,1fr)}}
.glance__k{font-family:var(--ct-font-mono);font-size:0.72rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ct-slate-500)}
.glance__v{font-family:var(--ct-font-display);font-weight:600;font-size:var(--ct-step-1);
  color:var(--ct-cyan);margin-top:var(--ct-s2);line-height:1.15}
.glance__v small{display:block;font-family:var(--ct-font-body);font-weight:400;
  font-size:var(--ct-step--1);color:var(--ct-slate-300);margin-top:.35rem;
  letter-spacing:0}

.steps{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--ct-line)}
@media(max-width:900px){.steps{grid-template-columns:1fr}}
.step{padding:var(--ct-s6) var(--ct-s5) var(--ct-s6) 0;position:relative}
.step::before{content:'';position:absolute;top:-1px;left:0;width:0;height:1px;
  background:var(--ct-cyan);transition:width .5s var(--ct-ease)}
.step:hover::before{width:100%}
.step__n{font-family:var(--ct-font-mono);font-size:var(--ct-step--1);color:var(--ct-cyan)}
.step h3{font-size:var(--ct-step-1);margin:var(--ct-s3) 0}
.step p{font-size:var(--ct-step--1);color:var(--ct-slate-500)}

.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--ct-s6)}
@media(max-width:900px){.posts{grid-template-columns:1fr}}
.post{border-top:1px solid var(--ct-navy-900);padding-top:var(--ct-s4);
  display:flex;flex-direction:column;gap:var(--ct-s3);min-height:200px}
.post__meta{font-size:var(--ct-step--1);color:var(--ct-slate-500);display:flex;gap:var(--ct-s3)}
.post h3{font-size:var(--ct-step-1);line-height:1.25;transition:color .2s}
.post:hover h3{color:var(--ct-cyan)}
.post__more{margin-top:auto;font-size:var(--ct-step--1);font-weight:600}

.cta{background:var(--ct-navy-900);color:#fff;text-align:center;padding:var(--ct-s9) 0}
.cta h2{font-size:var(--ct-step-3);max-width:22ch;margin:var(--ct-s4) auto var(--ct-s5)}
.cta p{color:var(--ct-slate-300);max-width:54ch;margin:0 auto var(--ct-s7);
  font-size:var(--ct-step-1)}

/* Footer with real logos */
.ftr{background:var(--ct-ink);color:var(--ct-slate-500);padding:var(--ct-s8) 0;
  font-size:var(--ct-step--1);border-top:1px solid rgba(255,255,255,.08)}
.ftr__grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:var(--ct-s6)}
@media(max-width:900px){.ftr__grid{grid-template-columns:repeat(2,1fr)}}
.ftr h4{color:#fff;font-size:var(--ct-step--1);text-transform:uppercase;
  letter-spacing:var(--ct-track-wide);margin-bottom:var(--ct-s4)}
.ftr a:hover{color:var(--ct-cyan)}
.ftr__mark{height:40px;width:auto;margin-bottom:var(--ct-s5);opacity:.95}
.ftr__social{display:flex;gap:var(--ct-s4);margin-top:var(--ct-s5)}
.partners{margin-top:var(--ct-s8);padding-top:var(--ct-s7);
  border-top:1px solid rgba(255,255,255,.08)}
.partners__grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--ct-s6);
  align-items:center;margin-top:var(--ct-s6)}
@media(max-width:1000px){.partners__grid{grid-template-columns:repeat(3,1fr)}}
.partners__grid a{display:flex;align-items:center;justify-content:center;
  height:52px;opacity:.55;filter:grayscale(1);transition:opacity .3s,filter .3s}
.partners__grid a:hover{opacity:1;filter:grayscale(0)}
.partners__grid img{max-height:42px;width:auto;object-fit:contain}
.ftr__base{margin-top:var(--ct-s7);padding-top:var(--ct-s5);
  border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;
  flex-wrap:wrap;gap:var(--ct-s4);align-items:center}
.ftr__ico{height:34px;width:auto;opacity:.6}

.rise{opacity:0;transform:translateY(18px);
  transition:opacity .7s var(--ct-ease),transform .7s var(--ct-ease)}
.rise.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .rise{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
}

/* Skip link and focus visibility */
.skip{position:absolute;left:-9999px;z-index:100;background:var(--ct-cyan);
  color:var(--ct-ink);padding:.75rem 1.25rem;font-weight:600}
.skip:focus{left:var(--ct-s5);top:.5rem}
a:focus-visible,button:focus-visible{outline:2px solid var(--ct-cyan);
  outline-offset:3px;border-radius:2px}

/* Mobile navigation */
.burger{display:none;background:none;border:0;cursor:pointer;padding:.6rem;
  flex-direction:column;gap:5px;z-index:60}
.burger span{display:block;width:24px;height:2px;background:#fff;
  transition:transform .3s var(--ct-ease),opacity .2s}
.burger.x span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.x span:nth-child(2){opacity:0}
.burger.x span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:1000px){
  .burger{display:flex}
  .nav{display:flex;position:fixed;inset:76px 0 0;background:var(--ct-ink);
    flex-direction:column;align-items:flex-start;justify-content:flex-start;
    gap:0;padding:var(--ct-s6) var(--ct-s5);
    transform:translateX(100%);transition:transform .35s var(--ct-ease);
    overflow-y:auto}
  .nav.open{transform:none}
  .nav a{font-size:var(--ct-step-1);font-weight:600;color:#fff;width:100%;
    padding:var(--ct-s4) 0;border-bottom:1px solid rgba(255,255,255,.09)}
  .nav .btn{margin-top:var(--ct-s6);border-bottom:0;justify-content:center}
}

/* Keystone example questions */
.asks{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.09);
  border-radius:var(--ct-radius)}
@media(max-width:800px){.asks{grid-template-columns:1fr}}
.ask{background:var(--ct-navy-900);padding:var(--ct-s6)}
.ask__k{font-family:var(--ct-font-mono);font-size:0.72rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ct-cyan)}
.ask__q{font-family:var(--ct-font-display);font-size:var(--ct-step-1);
  font-weight:500;line-height:1.3;color:#fff;margin-top:var(--ct-s4);
  letter-spacing:var(--ct-track-tight)}
.guard--light .guard__row{background:var(--ct-paper-50)}
.guard--light{background:var(--ct-line);border-color:var(--ct-line)}
.guard--light .guard__t{color:var(--ct-navy-900)}
.guard--light .guard__d{color:var(--ct-slate-500)}

/* Article body */
.article{max-width:68ch}
.article p{margin-bottom:var(--ct-s5);color:var(--ct-navy-700);
  font-size:var(--ct-step-0);line-height:1.7}
.article p:first-of-type{font-size:var(--ct-step-1);line-height:1.55;
  color:var(--ct-navy-900)}
.cards--3{grid-template-columns:repeat(3,1fr)}
@media(max-width:1000px){.cards--3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.cards--3{grid-template-columns:1fr}}

/* Logo legibility.
   The supplied artwork has a black wordmark and is unreadable on dark backgrounds.
   Forcing it white works whichever PNG is in place. Replace with a proper white
   SVG export and delete this rule. */
.logo img,.ftr__mark{filter:brightness(0) invert(1)}
.logo img{height:30px;width:auto}
.ftr__mark{height:34px;width:auto;margin-bottom:var(--ct-s5)}

/* Partner logos were rendering at wildly different visual weights */
.partners__grid a{height:60px;padding:0 var(--ct-s3)}
.partners__grid img{max-height:34px;max-width:130px;width:auto;
  object-fit:contain;filter:brightness(0) invert(1)}
.partners__grid a{opacity:.5;filter:none}
.partners__grid a:hover{opacity:.9}

/* Five case studies sit better in three columns than two */
.cards{grid-template-columns:repeat(3,1fr)}
@media(max-width:1000px){.cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.cards{grid-template-columns:1fr}}

/* Chips inside the dark featured panel were inheriting light-background colours */
.glance .chips span{border-color:rgba(255,255,255,.2);color:var(--ct-slate-300)}
.glance .chips{margin-top:var(--ct-s5)}

/* ---- Logo lockup: cyan mark, left of a white wordmark ----
   The mark is rendered by masking the transparent marque PNG, so it takes the
   exact brand cyan from tokens rather than a filter approximation. */
.logo,.ftr__lockup{display:inline-flex;align-items:center;gap:.6rem;
  text-decoration:none}
.logo__mark{flex:none;width:30px;height:30px;display:block;
  background-color:var(--ct-cyan);
  -webkit-mask:url(logos/commstec-marque.png) center/contain no-repeat;
  mask:url(logos/commstec-marque.png) center/contain no-repeat}
.logo__word{font-family:var(--ct-font-display);font-weight:700;font-size:1.22rem;
  letter-spacing:-0.022em;color:#fff;line-height:1}
.ftr__lockup{margin-bottom:var(--ct-s5)}
.ftr__lockup .logo__mark{width:34px;height:34px}
.ftr__lockup .logo__word{font-size:1.35rem}
/* retire the earlier workarounds */
.logo img,.ftr__mark{filter:none}

/* Wordmark white, dot cyan. Higher specificity than the legacy .logo span rule. */
.logo .logo__word,.ftr__lockup .logo__word{color:#fff}
.logo .logo__word b,.ftr__lockup .logo__word b{color:var(--ct-cyan);font-weight:700}

/* ---- Photography treatment ----
   Desaturated and navy-graded so licensed stock reads as house style
   rather than as stock. */
.shot{position:relative;margin:0;overflow:hidden;border-radius:var(--ct-radius);
  background:var(--ct-navy-900)}
.shot img{width:100%;height:100%;object-fit:cover;display:block;
  filter:grayscale(.55) contrast(1.08) brightness(.92)}
.shot::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(150deg,rgba(10,21,35,.55),rgba(15,181,201,.14));
  mix-blend-mode:multiply}
.shot--card{aspect-ratio:16/9;margin:calc(var(--ct-s6) * -1) calc(var(--ct-s6) * -1)
  var(--ct-s5);border-radius:0;width:auto}
.card--img{padding-top:0;overflow:hidden}
.card--img:hover .shot img{filter:grayscale(.2) contrast(1.05) brightness(1)}
.shot img{transition:filter .4s var(--ct-ease)}

/* Partner logos in their own colours. Most supplied files are white-variant
   artwork, so only those with colour in the source will show it. */
.partners__grid a{opacity:1;filter:none;height:64px}
.partners__grid a:hover{opacity:1;transform:translateY(-1px)}
.partners__grid img{filter:none;max-height:38px;max-width:140px}
.partners__grid{grid-template-columns:repeat(6,1fr);gap:var(--ct-s5) var(--ct-s6)}
@media(max-width:1000px){.partners__grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.partners__grid{grid-template-columns:repeat(2,1fr)}}

.partners__grid{grid-template-columns:repeat(5,1fr)}
@media(max-width:1000px){.partners__grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.partners__grid{grid-template-columns:repeat(2,1fr)}}

.shot--wide{aspect-ratio:16/10;margin-top:var(--ct-s7)}
@media(max-width:900px){.shot--wide{aspect-ratio:16/9}}

/* Block editor output: constrain flow content to the container */
.sec--flow > *,.sec--flow > .wp-block-post-content > *{
  max-width:var(--ct-container);margin-inline:auto;
  padding-inline:var(--ct-s5);box-sizing:content-box}
.sec--flow > .wp-block-query,.sec--flow > .wp-block-group{padding-inline:0}
.hero--page .hero__in .wp-block-post-title{margin:var(--ct-s5) 0 var(--ct-s6)}
.wp-block-post-template{display:contents}
.cards .wp-block-post-template{display:grid;grid-template-columns:repeat(3,1fr);
  gap:var(--ct-s6);list-style:none;padding:0;margin:0}
@media(max-width:1000px){.cards .wp-block-post-template{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.cards .wp-block-post-template{grid-template-columns:1fr}}

/* ---- Query loop cards: one grid, not three ---- */
.wp-block-query.cards{display:block}
.cards .wp-block-post-template{display:grid;grid-template-columns:repeat(3,1fr);
  gap:var(--ct-s6);list-style:none;padding:0;margin:0}
@media(max-width:1000px){.cards .wp-block-post-template{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.cards .wp-block-post-template{grid-template-columns:1fr}}

.cards .wp-block-post-template > li{display:flex;flex-direction:column;
  border:1px solid var(--ct-line);border-radius:var(--ct-radius);
  padding:var(--ct-s6);overflow:hidden;
  transition:border-color .25s var(--ct-ease),transform .25s var(--ct-ease)}
.cards .wp-block-post-template > li:hover{border-color:var(--ct-navy-900);
  transform:translateY(-2px)}
.cards .wp-block-post-featured-image{margin:calc(var(--ct-s6) * -1)
  calc(var(--ct-s6) * -1) var(--ct-s5);aspect-ratio:16/9;overflow:hidden}
.cards .wp-block-post-featured-image img{width:100%;height:100%;object-fit:cover;
  filter:grayscale(.55) contrast(1.08) brightness(.92);
  transition:filter .4s var(--ct-ease)}
.cards .wp-block-post-template > li:hover .wp-block-post-featured-image img{
  filter:grayscale(.2) contrast(1.05) brightness(1)}
.cards .wp-block-post-terms{font-family:var(--ct-font-mono);
  font-size:var(--ct-step--1);color:var(--ct-cyan);text-transform:uppercase;
  letter-spacing:.1em;line-height:1.4}
.cards .wp-block-post-title{font-size:var(--ct-step-1);margin:var(--ct-s4) 0;
  line-height:1.22;hyphens:none;overflow-wrap:normal}
.cards .wp-block-post-title a{text-decoration:none;color:inherit}
.cards .wp-block-post-excerpt{color:var(--ct-slate-500);font-size:var(--ct-step--1)}
.cards .wp-block-post-excerpt__more-text{display:none}
.cards .wp-block-post-date{margin-top:auto;padding-top:var(--ct-s5);
  font-size:var(--ct-step--1);font-weight:600;color:var(--ct-navy-900)}
.wp-block-query-pagination{margin-top:var(--ct-s8);display:flex;gap:var(--ct-s4);
  font-size:var(--ct-step--1);font-weight:600}

/* Neutralise core button chrome if a core/button ever lands inside our styling */
.wp-block-button.btn{padding:0;border:0;background:none}
.wp-block-button.btn > .wp-block-button__link{all:unset;cursor:pointer}

/* Homepage featured case study */
.feature{display:grid;grid-template-columns:1.15fr .85fr;
  background:var(--ct-navy-900);color:#fff;border-radius:var(--ct-radius);overflow:hidden}
@media(max-width:900px){.feature{grid-template-columns:1fr}}
.feature__body{padding:var(--ct-s8)}
.feature__body h3{font-size:var(--ct-step-2);margin:var(--ct-s4) 0 var(--ct-s5);max-width:20ch}
.feature__body p{color:var(--ct-slate-300);max-width:48ch}
.feature .chips span{border-color:rgba(255,255,255,.2);color:var(--ct-slate-300)}
.feature .glance{background:var(--ct-navy-800);border-radius:0;
  grid-template-columns:1fr 1fr;align-content:center}

/* Block themes add a gap between top-level blocks, which shows the white body
   background between full-bleed dark sections. Sections own their own spacing. */
.wp-site-blocks > *{margin-block-start:0;margin-block-end:0}
.wp-site-blocks{padding-top:0}

/* ---- Hero photography ----
   Bleeds in from the right, darkened and navy-graded so the headline
   stays dominant. Static: no scripts, no layout shift. */
.hero{position:relative;overflow:hidden}
.hero__bg{position:absolute;top:0;right:0;bottom:0;left:auto;width:62%;
  z-index:1;overflow:hidden;pointer-events:none;margin:0}
.hero__bg img{width:100%;height:100%;object-fit:cover;display:block;
  filter:grayscale(.6) contrast(1.15) brightness(.6);
  -webkit-mask-image:linear-gradient(90deg,transparent 6%,#000 46%);
  mask-image:linear-gradient(90deg,transparent 6%,#000 46%)}
.hero__bg::after{content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,var(--ct-ink) 4%,rgba(6,9,15,.5) 42%,transparent 78%),
             linear-gradient(180deg,rgba(6,9,15,.7),transparent 38%,rgba(6,9,15,.8))}
.hero__in{position:relative;z-index:3}
.hero::before{z-index:2}
.hero::after{z-index:2}
@media(max-width:900px){
  .hero__bg{width:100%;opacity:.4}
  .hero__bg img{-webkit-mask-image:none;mask-image:none}
}

/* Sections carry their own background so nothing inherits from the body */
.sec{background:var(--ct-paper)}
.sec--alt{background:var(--ct-paper-50)}
.sec--dark{background:var(--ct-ink)}
.wp-site-blocks{background:var(--ct-paper)}

/* Footer menus render as lists - drop the bullets */
.ftr ul,.ftr__list{list-style:none;padding:0;margin:0}
.ftr li{margin:0 0 .35rem}
.ftr p{margin:0}

/* Inner-page heroes: same treatment as the homepage, dialled well down.
   Texture and depth rather than photography. */
.hero__bg--quiet{position:absolute;top:0;right:0;bottom:0;left:auto;width:52%;
  z-index:1;overflow:hidden;pointer-events:none;margin:0}
.hero__bg--quiet img{width:100%;height:100%;object-fit:cover;display:block;
  filter:grayscale(.85) contrast(1.1) brightness(.34);
  -webkit-mask-image:linear-gradient(90deg,transparent 10%,#000 58%);
  mask-image:linear-gradient(90deg,transparent 10%,#000 58%)}
.hero__bg--quiet::after{content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,var(--ct-ink) 8%,rgba(6,9,15,.65) 48%,transparent 88%),
             linear-gradient(180deg,rgba(6,9,15,.72),transparent 45%,rgba(6,9,15,.85))}
.hero--page{position:relative;overflow:hidden}
@media(max-width:900px){
  .hero__bg--quiet{width:100%;opacity:.28}
  .hero__bg--quiet img{-webkit-mask-image:none;mask-image:none}
}

/* ---- Header dropdown ---- */
.nav .menu-item-has-children{position:relative}
.nav .menu-item-has-children > a::after{content:'';display:inline-block;
  width:6px;height:6px;margin-left:.45rem;vertical-align:2px;
  border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:rotate(45deg);transition:transform .2s}
.nav .sub-menu{list-style:none;margin:0;padding:.5rem 0;position:absolute;
  top:100%;left:-1rem;min-width:15rem;background:var(--ct-navy-900);
  border:1px solid rgba(255,255,255,.1);border-radius:var(--ct-radius);
  box-shadow:0 18px 40px rgba(0,0,0,.45);
  opacity:0;visibility:hidden;transform:translateY(6px);
  transition:opacity .2s var(--ct-ease),transform .2s var(--ct-ease),visibility .2s}
.nav .menu-item-has-children:hover > .sub-menu,
.nav .menu-item-has-children:focus-within > .sub-menu{
  opacity:1;visibility:visible;transform:none}
.nav .sub-menu a{display:block;padding:.55rem 1.25rem;color:var(--ct-slate-300);
  font-size:var(--ct-step--1);white-space:nowrap}
.nav .sub-menu a:hover{color:#fff;background:rgba(255,255,255,.05)}
@media(max-width:1000px){
  .nav .sub-menu{position:static;opacity:1;visibility:visible;transform:none;
    background:none;border:0;box-shadow:none;padding:0 0 0 1.25rem;min-width:0}
  .nav .menu-item-has-children > a::after{display:none}
}
.nav__list{list-style:none;display:flex;gap:var(--ct-s5);align-items:center;
  margin:0;padding:0}
.nav__list a{font-size:var(--ct-step--1);font-weight:500;color:var(--ct-slate-300);
  transition:color .2s}
.nav__list a:hover{color:#fff}
.nav__list .current-menu-item > a,.nav__list .current-menu-ancestor > a{color:#fff}
@media(max-width:1000px){.nav__list{flex-direction:column;align-items:flex-start;
  width:100%;gap:0}
  .nav__list > li{width:100%;border-bottom:1px solid rgba(255,255,255,.09)}
  .nav__list > li > a{display:block;padding:var(--ct-s4) 0;font-size:var(--ct-step-1);
    font-weight:600;color:#fff}}

/* WPForms restyled to the design system */
.contact-form .wpforms-field{margin-bottom:var(--ct-s4)}
.contact-form .wpforms-field-label{font-size:var(--ct-step--1);font-weight:600;
  color:var(--ct-navy-900);margin-bottom:.4rem;display:block}
.contact-form input[type=text],.contact-form input[type=email],
.contact-form input[type=tel],.contact-form textarea{
  width:100%;border:1px solid var(--ct-line);border-radius:var(--ct-radius);
  padding:.75rem 1rem;font:inherit;font-size:var(--ct-step--1);
  color:var(--ct-navy-900);background:var(--ct-paper);transition:border-color .2s}
.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--ct-cyan)}
.contact-form .wpforms-submit{background:var(--ct-cyan);color:var(--ct-ink);
  border:0;border-radius:var(--ct-radius);font-weight:600;font-size:var(--ct-step--1);
  padding:.85rem 1.5rem;cursor:pointer;transition:background .25s}
.contact-form .wpforms-submit:hover{background:var(--ct-cyan-bright)}
.contact-form .wpforms-error{color:#b3261e;font-size:var(--ct-step--1)}

/* ---- Mobile menu stacking fix ----
   backdrop-filter makes .hdr the containing block for fixed descendants,
   which trapped the slide-out menu inside the header bar. On mobile the
   header goes solid (no blur), freeing the menu to cover the viewport. */
@media(max-width:1000px){
  .hdr{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--ct-ink)}
  .nav{z-index:70}
  .burger{z-index:80}
}

.logo__img{height:54px;width:auto;display:block}
.logo__img--ftr{height:58px;margin-bottom:var(--ct-s5)}

/* SVG line illustrations - the middle register between photo and clipart */
.shot--ill{background:var(--ct-paper-50);border:1px solid var(--ct-line);
  aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;
  padding:var(--ct-s6)}
.shot--ill img{width:88%;height:auto;filter:none}
.shot--ill::after{display:none}

/* ---- Stat panels: designed claims, not clipart ---- */
.statpanel{position:relative;overflow:hidden;background:var(--ct-ink);
  border-radius:var(--ct-radius);padding:var(--ct-s7) var(--ct-s6);
  margin-top:var(--ct-s6);color:#fff}
.statpanel::before{content:'';position:absolute;inset:0;
  background:repeating-linear-gradient(115deg,transparent 0 26px,rgba(15,181,201,.05) 26px 27px)}
.statpanel svg{position:absolute;right:0;top:0;height:100%;width:55%;opacity:.85}
.statpanel__in{position:relative;z-index:2}
.statpanel__eye{font-family:var(--ct-font-mono);font-size:.72rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ct-cyan)}
.statpanel__h{font-family:var(--ct-font-display);font-weight:600;
  font-size:var(--ct-step-1);line-height:1.25;letter-spacing:var(--ct-track-tight);
  max-width:24ch;margin:.7rem 0 0}
.statpanel__row{display:flex;gap:var(--ct-s7);margin-top:var(--ct-s6);flex-wrap:wrap}
.statpanel__v{font-family:var(--ct-font-display);font-weight:600;
  font-size:var(--ct-step-2);line-height:1}
.statpanel__k{font-family:var(--ct-font-mono);font-size:.68rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ct-slate-500);
  margin-top:.45rem}

/* ---- Stat panels: designed claims, not clipart ---- */
.statpanel{position:relative;overflow:hidden;background:var(--ct-ink);
  border-radius:var(--ct-radius);padding:var(--ct-s7) var(--ct-s6);
  margin-top:var(--ct-s6);color:#fff}
.statpanel::before{content:'';position:absolute;inset:0;
  background:repeating-linear-gradient(115deg,transparent 0 26px,rgba(15,181,201,.05) 26px 27px)}
.statpanel svg{position:absolute;right:0;top:0;height:100%;width:55%;opacity:.85}
.statpanel__in{position:relative;z-index:2}
.statpanel__eye{font-family:var(--ct-font-mono);font-size:.72rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ct-cyan)}
.statpanel__h{font-family:var(--ct-font-display);font-weight:600;
  font-size:var(--ct-step-1);line-height:1.25;letter-spacing:var(--ct-track-tight);
  max-width:24ch;margin:.7rem 0 0}
.statpanel__row{display:flex;gap:var(--ct-s7);margin-top:var(--ct-s6);flex-wrap:wrap}
.statpanel__v{font-family:var(--ct-font-display);font-weight:600;
  font-size:var(--ct-step-2);line-height:1}
.statpanel__k{font-family:var(--ct-font-mono);font-size:.68rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ct-slate-500);
  margin-top:.45rem}

/* ---- Stat panels v2: ported from Marc's Design mock (Connectivity Graphic) ---- */
.statpanel{position:relative;overflow:hidden;border-radius:var(--ct-radius);
  margin-top:var(--ct-s6);color:#fff;aspect-ratio:1210/750;
  display:flex;flex-direction:column;justify-content:space-between;
  padding:clamp(1.5rem,4vw,2.75rem);
  background:
    radial-gradient(circle,rgba(200,240,250,.35) 0%,transparent 65%) right 60px top 70px/110px 110px no-repeat,
    radial-gradient(circle,rgba(150,225,240,.22) 0%,transparent 60%) right 130px center/250px 250px no-repeat,
    radial-gradient(circle,rgba(46,180,205,.30) 0%,transparent 62%) right -130px top -170px/640px 640px no-repeat,
    repeating-linear-gradient(118deg,transparent 0 17px,rgba(120,200,220,.055) 19px,transparent 30px),
    repeating-linear-gradient(118deg,transparent 0 72px,rgba(30,190,215,.10) 74px,transparent 91px),
    radial-gradient(120% 90% at 78% 18%,#123a47 0%,#0a1a26 38%,#050c13 72%,#03080d 100%)}
.statpanel::before{display:none}
.statpanel svg.statpanel__net{position:absolute;inset:0;width:100%;height:100%;opacity:1}
.statpanel__net .pulse{animation:ctPulse 4.2s ease-in-out infinite;
  transform-box:fill-box;transform-origin:center}
@keyframes ctPulse{0%,100%{opacity:.35;transform:scale(1)}50%{opacity:1;transform:scale(1.35)}}
@media(prefers-reduced-motion:reduce){.statpanel__net .pulse{animation:none}}
.statpanel__in{position:relative;z-index:2;display:flex;flex-direction:column;
  justify-content:space-between;height:100%}
.statpanel__eye{font-family:var(--ct-font-mono);font-size:.78rem;
  letter-spacing:.16em;text-transform:uppercase;color:#5fd4e4}
.statpanel__h{font-family:var(--ct-font-display);font-weight:600;
  font-size:clamp(1.15rem,2.4vw,1.8rem);line-height:1.35;color:#e8eef2;
  max-width:24ch;margin:.8rem 0 0;letter-spacing:var(--ct-track-flat)}
.statpanel__row{display:flex;gap:clamp(1.5rem,4vw,3rem);flex-wrap:wrap;margin-top:auto}
.statpanel__v{font-family:var(--ct-font-display);font-weight:700;
  font-size:clamp(1.4rem,2.6vw,2.1rem);line-height:1;color:#fff}
.statpanel__k{font-family:var(--ct-font-mono);font-size:.72rem;
  letter-spacing:.1em;text-transform:uppercase;color:#8fa6b3;margin-top:.45rem}

/* ---- Stat panels v2: ported from Marc's Design mock (Connectivity Graphic) ---- */
.statpanel{position:relative;overflow:hidden;border-radius:var(--ct-radius);
  margin-top:var(--ct-s6);color:#fff;aspect-ratio:1210/750;
  display:flex;flex-direction:column;justify-content:space-between;
  padding:clamp(1.5rem,4vw,2.75rem);
  background:
    radial-gradient(circle,rgba(200,240,250,.35) 0%,transparent 65%) right 60px top 70px/110px 110px no-repeat,
    radial-gradient(circle,rgba(150,225,240,.22) 0%,transparent 60%) right 130px center/250px 250px no-repeat,
    radial-gradient(circle,rgba(46,180,205,.30) 0%,transparent 62%) right -130px top -170px/640px 640px no-repeat,
    repeating-linear-gradient(118deg,transparent 0 17px,rgba(120,200,220,.055) 19px,transparent 30px),
    repeating-linear-gradient(118deg,transparent 0 72px,rgba(30,190,215,.10) 74px,transparent 91px),
    radial-gradient(120% 90% at 78% 18%,#123a47 0%,#0a1a26 38%,#050c13 72%,#03080d 100%)}
.statpanel::before{display:none}
.statpanel svg.statpanel__net{position:absolute;inset:0;width:100%;height:100%;opacity:1}
.statpanel__net .pulse{animation:ctPulse 4.2s ease-in-out infinite;
  transform-box:fill-box;transform-origin:center}
@keyframes ctPulse{0%,100%{opacity:.35;transform:scale(1)}50%{opacity:1;transform:scale(1.35)}}
@media(prefers-reduced-motion:reduce){.statpanel__net .pulse{animation:none}}
.statpanel__in{position:relative;z-index:2;display:flex;flex-direction:column;
  justify-content:space-between;height:100%}
.statpanel__eye{font-family:var(--ct-font-mono);font-size:.78rem;
  letter-spacing:.16em;text-transform:uppercase;color:#5fd4e4}
.statpanel__h{font-family:var(--ct-font-display);font-weight:600;
  font-size:clamp(1.15rem,2.4vw,1.8rem);line-height:1.35;color:#e8eef2;
  max-width:24ch;margin:.8rem 0 0;letter-spacing:var(--ct-track-flat)}
.statpanel__row{display:flex;gap:clamp(1.5rem,4vw,3rem);flex-wrap:wrap;margin-top:auto}
.statpanel__v{font-family:var(--ct-font-display);font-weight:700;
  font-size:clamp(1.4rem,2.6vw,2.1rem);line-height:1;color:#fff}
.statpanel__k{font-family:var(--ct-font-mono);font-size:.72rem;
  letter-spacing:.1em;text-transform:uppercase;color:#8fa6b3;margin-top:.45rem}

/* ---- Stat panel graphic variants ---- */
@keyframes ctOrbit{to{transform:rotate(360deg)}}
.statpanel__orbit{position:absolute;right:2%;top:50%;transform:translateY(-50%);
  width:min(60%,430px);aspect-ratio:1/1;z-index:1}
.statpanel__orbit .spin{position:absolute;inset:0;
  animation:ctOrbit 120s linear infinite}
.statpanel__orbit svg{position:absolute;inset:0;width:100%;height:100%}
@media(prefers-reduced-motion:reduce){.statpanel__orbit .spin{animation:none}}
.statpanel__chip{display:inline-flex;align-items:center;gap:.6rem;
  margin-top:1rem;padding:.55rem 1.1rem;align-self:flex-start;
  border:1px solid rgba(120,225,240,.35);background:rgba(47,192,216,.10)}
.statpanel__chip i{width:9px;height:9px;border-radius:50%;background:#7fe3f2;
  box-shadow:0 0 0 5px rgba(127,227,242,.16);flex:none}
.statpanel__chip span{font-family:var(--ct-font-mono);font-size:.7rem;
  letter-spacing:.12em;color:#bfe9f2;text-transform:uppercase}

/* ---- Panel sizing fixes: height grows with content, graphics yield to text ---- */
.statpanel{aspect-ratio:auto;min-height:clamp(300px,26vw,390px)}
.statpanel__h{max-width:20ch}
.statpanel__row{margin-top:1.5rem;gap:clamp(1.25rem,2.5vw,2.25rem);
  position:relative;z-index:3}
.statpanel__v{font-size:clamp(1.25rem,2vw,1.7rem)}
.statpanel__orbit{width:min(50%,340px);right:-5%;opacity:.9}
.statpanel__radar{width:min(50%,340px);right:-2%;opacity:.95}
.statpanel__chip{position:relative;z-index:3}

/* ---- Radar graphic CSS (was missing - markup shipped without styles) ---- */
@keyframes ctSweep{to{transform:rotate(-360deg)}}
@keyframes ctRingOut{0%{transform:scale(.34);opacity:.55}100%{transform:scale(1);opacity:0}}
@keyframes ctBlipDot{0%{opacity:1;transform:scale(2.05)}16%{opacity:.5;transform:scale(1)}100%{opacity:.5;transform:scale(1)}}
@keyframes ctBlipHalo{0%{opacity:.85;transform:scale(1)}16%{opacity:0;transform:scale(2.15)}100%{opacity:0;transform:scale(2.15)}}
.statpanel__radar{position:absolute;right:-2%;top:50%;transform:translateY(-50%);
  width:min(50%,340px);aspect-ratio:1/1;z-index:1;opacity:.95}
.statpanel__radar .disc{position:absolute;inset:0;border-radius:50%;overflow:hidden;
  background:radial-gradient(circle,rgba(47,192,216,.14) 0%,rgba(47,192,216,.03) 55%,transparent 72%)}
.statpanel__radar .sweep{position:absolute;inset:0;
  background:conic-gradient(from 0deg,rgba(127,227,242,.34) 0deg,rgba(127,227,242,.12) 26deg,transparent 62deg,transparent 360deg);
  animation:ctSweep 7s linear infinite}
.statpanel__radar .ring{position:absolute;inset:0;border-radius:50%;
  border:1px solid rgba(120,190,210,.30)}
.statpanel__radar .ring--out{border-color:rgba(120,190,210,.22);
  animation:ctRingOut 4.5s ease-out infinite}
.statpanel__radar svg{position:absolute;inset:0;width:100%;height:100%}
.statpanel__radar .bdot{animation:ctBlipDot 7s linear infinite;
  transform-box:fill-box;transform-origin:center}
.statpanel__radar .bhalo{animation:ctBlipHalo 7s linear infinite;
  transform-box:fill-box;transform-origin:center;opacity:0}
@media(prefers-reduced-motion:reduce){
  .statpanel__radar .sweep,.statpanel__radar .ring--out,
  .statpanel__radar .bdot,.statpanel__radar .bhalo{animation:none}
  .statpanel__radar .bdot{opacity:.7}}

/* ---- Topology graphic (Secure Infrastructure) ---- */
@keyframes ctDriftRing{0%{transform:scale(.7);opacity:.7}100%{transform:scale(1.9);opacity:0}}
@keyframes ctDriftSpin{to{transform:rotate(360deg)}}
.statpanel__topo{position:absolute;right:-4%;top:50%;transform:translateY(-50%);
  width:min(56%,380px);aspect-ratio:580/560;z-index:1;opacity:.95}
.statpanel__topo svg{position:absolute;inset:0;width:100%;height:100%}
.statpanel__topo .dspin{transform-box:fill-box;transform-origin:center;
  animation:ctDriftSpin 14s linear infinite}
.statpanel__topo .dring{transform-box:fill-box;transform-origin:center;
  animation:ctDriftRing 3.4s ease-out infinite}
@media(prefers-reduced-motion:reduce){
  .statpanel__topo .dspin,.statpanel__topo .dring{animation:none}
  .statpanel__topo .packet{display:none}}

/* ---- Vault graphic (Data Protection) ---- */
@keyframes ctScan{0%{transform:translateY(70px);opacity:0}
  2%{opacity:1}55%{transform:translateY(500px);opacity:1}
  58%{transform:translateY(500px);opacity:0}100%{transform:translateY(70px);opacity:0}}
@keyframes ctVaultGlow{0%,20%{opacity:0}25%{opacity:.7}30%{opacity:0}
  36%{opacity:.7}42%{opacity:0}50%{opacity:.7}56%{opacity:0}
  63%{opacity:.7}70%,100%{opacity:0}}
.statpanel__vault{position:absolute;right:-6%;top:50%;transform:translateY(-50%);
  width:min(58%,400px);aspect-ratio:600/560;z-index:1;opacity:.95}
.statpanel__vault svg{position:absolute;inset:0;width:100%;height:100%}
.statpanel__vault .scan{animation:ctScan 9s linear infinite}
.statpanel__vault .vglow{animation:ctVaultGlow 9s linear infinite}
@media(prefers-reduced-motion:reduce){
  .statpanel__vault .scan,.statpanel__vault .vglow{animation:none;opacity:0}
  .statpanel__vault .copy{display:none}}

/* ---- Governance graphic (AI Integration) ---- */
@keyframes ctGateScan{0%,11.8%{opacity:0;transform:translateY(0)}
  13%{opacity:.9}20.6%{opacity:0;transform:translateY(370px)}
  20.7%,100%{opacity:0;transform:translateY(0)}}
@keyframes ctBlockX{0%,16.5%{opacity:0}18%{opacity:.9}50%{opacity:.9}
  53%{opacity:0}100%{opacity:0}}
@keyframes ctAgentGlow{0%,44%{opacity:0}49.4%{opacity:.9}60%{opacity:0}100%{opacity:0}}
@keyframes ctSrcOn{0%,26%{stroke:rgba(120,190,210,.42);fill:rgba(10,26,38,.85)}
  27%{stroke:#8fe9f7;fill:rgba(47,192,216,.16)}
  36%{stroke:#8fe9f7;fill:rgba(47,192,216,.16)}
  38%,100%{stroke:rgba(120,190,210,.42);fill:rgba(10,26,38,.85)}}
.statpanel__gov{position:absolute;right:-8%;top:50%;transform:translateY(-50%);
  width:min(64%,430px);aspect-ratio:620/520;z-index:1;opacity:.95}
.statpanel__gov svg{position:absolute;inset:0;width:100%;height:100%}
.statpanel__gov .gscan{animation:ctGateScan 8s linear infinite}
.statpanel__gov .gblock{animation:ctBlockX 8s linear infinite;opacity:0}
.statpanel__gov .gglow{animation:ctAgentGlow 8s linear infinite;opacity:0}
.statpanel__gov .gsrc-on{animation:ctSrcOn 8s linear infinite}
.statpanel__gov .gdeny{opacity:.4}
@media(prefers-reduced-motion:reduce){
  .statpanel__gov .gscan,.statpanel__gov .gglow,.statpanel__gov .gsrc-on{animation:none}
  .statpanel__gov .gblock{animation:none;opacity:.9}
  .statpanel__gov .gpulse{display:none}}

/* ---- Chip text swap, synced to the policy gate cycle ---- */
@keyframes ctChipA{0%,16%{opacity:1}18%,52%{opacity:0}54%,100%{opacity:1}}
@keyframes ctChipB{0%,16%{opacity:0}18%,52%{opacity:1}54%,100%{opacity:0}}
.chipswap{position:relative;display:inline-block}
.chipswap span{font-family:var(--ct-font-mono);font-size:.7rem;
  letter-spacing:.12em;color:#bfe9f2;text-transform:uppercase;white-space:nowrap}
.chipswap .a{animation:ctChipA 8s linear infinite}
.chipswap .b{position:absolute;left:0;top:0;animation:ctChipB 8s linear infinite}
@media(prefers-reduced-motion:reduce){
  .chipswap .a{animation:none}.chipswap .b{animation:none;opacity:0}}

/* ---- Desktop sizing: stats were oversized and colliding with dense graphics ---- */
.statpanel__v{font-size:clamp(1.1rem,1.6vw,1.4rem)}
.statpanel__k{font-size:.66rem}
.statpanel__row{gap:clamp(1rem,2vw,1.9rem)}
@media(min-width:1000px){
  .statpanel{min-height:clamp(330px,27vw,410px)}
  .statpanel__gov{width:min(56%,370px);top:44%;right:-6%}
  .statpanel__gov svg text{font-size:15px}
}

/* ---- Panel fills properly: inner stretches, height follows content ---- */
.statpanel__in{flex:1 1 auto;height:auto;min-height:0}
.statpanel{min-height:0;padding:clamp(1.4rem,3vw,2.2rem)}
@media(min-width:1000px){
  .statpanel{min-height:clamp(270px,21vw,330px)}
  .statpanel__gov{width:min(52%,340px);right:-4%;top:50%}
}

/* ---- Panel height floor: must clear the graphic at every width ---- */
.statpanel{min-height:clamp(300px,42vw,340px)}
@media(min-width:700px) and (max-width:1100px){
  .statpanel{min-height:clamp(320px,34vw,400px)}
  .statpanel__gov,.statpanel__vault,.statpanel__topo,
  .statpanel__radar,.statpanel__orbit{width:min(46%,300px);right:-3%}
}
@media(max-width:699px){
  .statpanel{min-height:290px}
  .statpanel__gov,.statpanel__vault,.statpanel__topo,
  .statpanel__radar,.statpanel__orbit{width:64%;right:-10%;opacity:.45}
}

/* ---- Trust strip: tidy grid instead of ragged wrapping ---- */
@media(max-width:1100px){
  .trust__in{display:grid;justify-content:stretch;gap:.7rem 1.25rem}
  .trust__item{font-size:.8rem;align-items:flex-start;line-height:1.35}
  .trust__dot{margin-top:.45rem}
}
@media(min-width:700px) and (max-width:1100px){
  .trust__in{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:699px){
  .trust__in{grid-template-columns:repeat(2,1fr)}
  .trust__item{font-size:.76rem}
}

/* ---- Tablet: give the denser graphics more presence ---- */
@media(min-width:700px) and (max-width:1100px){
  .statpanel__gov{width:min(58%,360px);right:-6%}
  .statpanel__vault,.statpanel__topo{width:min(52%,330px)}
}

/* ---- Phone: three stats stay on one row, chip scales down ---- */
@media(max-width:699px){
  .statpanel__row{display:grid;grid-template-columns:repeat(3,1fr);
    gap:.6rem;margin-top:auto;align-items:end}
  .statpanel__v{font-size:1rem;line-height:1.1}
  .statpanel__k{font-size:.56rem;letter-spacing:.06em;line-height:1.3}
  .statpanel__chip{padding:.4rem .7rem;gap:.45rem;margin-top:.8rem}
  .statpanel__chip span,.chipswap span{font-size:.58rem;letter-spacing:.08em}
  .statpanel__chip i{width:7px;height:7px;box-shadow:0 0 0 4px rgba(127,227,242,.16)}
  .statpanel__h{font-size:1.05rem;max-width:none}
  .statpanel{min-height:320px}
}

/* ---- Phone: baseline-align stats and reclaim horizontal space ---- */
@media(max-width:699px){
  /* each stat becomes its own column so value and label align across cells */
  .statpanel__row > div{display:grid;grid-template-rows:auto 1fr;align-content:start}
  .statpanel__v{align-self:end}
  .statpanel__k{align-self:start}

  /* tighter page gutters - phones do not need 24px each side */
  .wrap,.sec--flow > *,.sec--flow > .wp-block-post-content > *{
    padding-inline:1rem}
  .hero__in,.hdr__in,.trust__in{padding-inline:1rem}
  body{--wp--style--root--padding-left:1rem;--wp--style--root--padding-right:1rem}
  .statpanel{padding:1.1rem}
}
@media(max-width:420px){
  .wrap,.hero__in,.hdr__in,.trust__in{padding-inline:.85rem}
  .statpanel__k{font-size:.52rem}
}

/* ---- Phone fixes: split stacking, sector rows, footer logo ---- */
@media(max-width:699px){
  /* .split was still two columns here, squashing both sides */
  .split,.split--even{grid-template-columns:1fr !important;gap:1.75rem}

  /* governance rows: number beside title, description full width */
  .guard__row{padding:1.1rem 1.15rem;gap:.85rem}
  .guard__t{font-size:.95rem;line-height:1.3}
  .guard__d{font-size:.82rem;line-height:1.5}

  /* sectors: single column so headings do not wrap awkwardly */
  .sectors{grid-template-columns:1fr;gap:1.25rem}

  /* keystone question grid */
  .asks{grid-template-columns:1fr}
  .ask{padding:1.15rem}
  .ask__q{font-size:1rem}
}

/* ---- Footer logo was being stretched by the flex parent ---- */
.ftr__lockup{display:block}
.logo__img--ftr{height:44px;width:auto;max-width:220px;object-fit:contain;
  flex:0 0 auto;align-self:flex-start}
@media(max-width:699px){.logo__img--ftr{height:38px}}

/* ---- Circuits graphic (Services & Connectivity) ---- */
@keyframes ctHubPulse{0%,100%{opacity:.28;transform:scale(1)}
  50%{opacity:.7;transform:scale(1.22)}}
@keyframes ctBarGlow{0%,100%{opacity:.85}50%{opacity:1}}
.statpanel__circ{position:absolute;right:-3%;top:50%;transform:translateY(-50%);
  width:min(60%,400px);aspect-ratio:700/520;z-index:1;opacity:.96}
.statpanel__circ svg{position:absolute;inset:0;width:100%;height:100%}
.statpanel__circ .hubp{transform-box:fill-box;transform-origin:center;
  animation:ctHubPulse 3.2s ease-in-out infinite}
.statpanel__circ .bar{animation:ctBarGlow 3.2s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){
  .statpanel__circ .hubp,.statpanel__circ .bar{animation:none}
  .statpanel__circ .pkt{display:none}}

/* ---- Insight & case study cards: laser trail, structure, restraint ---- */
@keyframes ctLaser{0%{transform:translateX(-100%)}100%{transform:translateX(400%)}}

.cards .wp-block-post-template > li{position:relative;overflow:hidden;
  border-top:2px solid var(--ct-navy-900);border-left:1px solid var(--ct-line);
  border-right:1px solid var(--ct-line);border-bottom:1px solid var(--ct-line);
  background:var(--ct-paper)}
.cards .wp-block-post-template > li::before{
  content:'';position:absolute;top:-2px;left:0;width:25%;height:2px;
  background:linear-gradient(90deg,transparent,var(--ct-cyan) 45%,#7fe3f2 55%,transparent);
  animation:ctLaser 7s linear infinite;opacity:.75;pointer-events:none}
.cards .wp-block-post-template > li:nth-child(2)::before{animation-delay:1.2s}
.cards .wp-block-post-template > li:nth-child(3)::before{animation-delay:2.4s}
.cards .wp-block-post-template > li:nth-child(4)::before{animation-delay:3.6s}
.cards .wp-block-post-template > li:nth-child(5)::before{animation-delay:4.8s}
.cards .wp-block-post-template > li:nth-child(6)::before{animation-delay:6s}
.cards .wp-block-post-template > li:hover{border-top-color:var(--ct-cyan);
  transform:translateY(-3px);box-shadow:0 14px 34px rgba(10,21,35,.09)}

/* category line: one line only, never pushes the heading around */
.cards .wp-block-post-terms{display:-webkit-box;-webkit-line-clamp:1;
  -webkit-box-orient:vertical;overflow:hidden;min-height:1.2em}
/* excerpts to a consistent depth so dates align across the row */
.cards .wp-block-post-excerpt{display:-webkit-box;-webkit-line-clamp:3;
  -webkit-box-orient:vertical;overflow:hidden}
.cards .wp-block-post-title{min-height:2.5em}
.cards .wp-block-post-date{border-top:1px solid var(--ct-line);
  margin-top:auto;padding-top:var(--ct-s4);color:var(--ct-slate-500);
  font-family:var(--ct-font-mono);font-size:.72rem;letter-spacing:.06em}

@media(prefers-reduced-motion:reduce){
  .cards .wp-block-post-template > li::before{animation:none;opacity:.35;width:100%}}

/* ---- Tablet and phone ---- */
@media(min-width:700px) and (max-width:1100px){
  .cards .wp-block-post-template{grid-template-columns:repeat(2,1fr);gap:1.5rem}
  .cards .wp-block-post-template > li{padding:1.5rem}
  .cards .wp-block-post-title{min-height:0}
}
@media(max-width:699px){
  .cards .wp-block-post-template{grid-template-columns:1fr;gap:1.1rem}
  .cards .wp-block-post-template > li{padding:1.25rem}
  .cards .wp-block-post-title{min-height:0;font-size:1.15rem}
  .cards .wp-block-post-excerpt{-webkit-line-clamp:2;font-size:.86rem}
  .cards .wp-block-post-featured-image{margin:-1.25rem -1.25rem 1rem;aspect-ratio:16/8}
}

/* ---- Card border: uniform hairline, laser is the only accent ---- */
.cards .wp-block-post-template{align-items:stretch}
.cards .wp-block-post-template > li{border:1px solid var(--ct-line);
  border-top:1px solid var(--ct-line)}
.cards .wp-block-post-template > li::before{top:0;height:2px}
.cards .wp-block-post-template > li:hover{border-color:var(--ct-navy-900);
  border-top-color:var(--ct-line)}

/* ---- Card alignment: force equal heights ---- */
.cards .wp-block-post-template > li{align-self:stretch;height:100%;
  display:flex;flex-direction:column}

/* ---- Lead card: dark, wide, textured - gives the grid a rhythm ---- */
@media(min-width:1000px){
  .cards .wp-block-post-template > li:first-child{
    grid-column:span 2;
    background:
      repeating-linear-gradient(118deg,transparent 0 17px,rgba(120,200,220,.05) 19px,transparent 30px),
      repeating-linear-gradient(118deg,transparent 0 72px,rgba(30,190,215,.09) 74px,transparent 91px),
      radial-gradient(120% 95% at 82% 20%,#123a47 0%,#0a1a26 38%,#050c13 74%,#03080d 100%);
    border-color:rgba(255,255,255,.1);padding:2.25rem}
  .cards > .wp-block-post-template > li:first-child .wp-block-post-title{
    font-size:var(--ct-step-2);max-width:20ch}
  .cards .wp-block-post-template > li:first-child .wp-block-post-title a{color:#fff}
  .cards .wp-block-post-template > li:first-child .wp-block-post-excerpt{
    color:var(--ct-slate-300);-webkit-line-clamp:4;max-width:52ch}
  .cards .wp-block-post-template > li:first-child .wp-block-post-date{
    color:var(--ct-slate-500);border-top-color:rgba(255,255,255,.12)}
  .cards .wp-block-post-template > li:first-child:hover{
    border-color:rgba(127,227,242,.4)}
}

/* ---- Read affordance on every card ---- */
.cards .wp-block-post-date{display:flex;align-items:center;gap:.6rem}
.cards .wp-block-post-date::after{content:'Read \2192';margin-left:auto;
  font-weight:600;color:var(--ct-navy-900);letter-spacing:0;
  transition:transform .25s var(--ct-ease),color .25s}
.cards .wp-block-post-template > li:first-child .wp-block-post-date::after{color:var(--ct-cyan)}
.cards .wp-block-post-template > li:hover .wp-block-post-date::after{
  transform:translateX(4px);color:var(--ct-cyan)}

/* ---- Breathing room on tablet and phone ---- */
@media(min-width:700px) and (max-width:1100px){
  .cards .wp-block-post-template{gap:1.75rem}
  .cards .wp-block-post-template > li{padding:1.75rem}
  .cards .wp-block-post-title{font-size:1.2rem;line-height:1.3}
  .cards .wp-block-post-excerpt{font-size:.9rem;line-height:1.6}
}
@media(max-width:699px){
  .cards .wp-block-post-template{gap:1.25rem}
  .cards .wp-block-post-template > li{padding:1.5rem}
  .cards .wp-block-post-excerpt{-webkit-line-clamp:3;line-height:1.6}
  .cards .wp-block-post-date{padding-top:1.1rem}
}

/* Lead row: side card matches the lead card's height */
@media(min-width:1000px){
  .cards .wp-block-post-template > li:nth-child(2){align-self:stretch}
  .cards .wp-block-post-template > li:first-child{min-height:400px}
  .cards .wp-block-post-template > li:nth-child(2){min-height:400px}
}

/* Row 1: equal padding so stretch produces equal heights */
@media(min-width:1000px){
  .cards .wp-block-post-template > li:first-child,
  .cards .wp-block-post-template > li:nth-child(2){padding:2.25rem;min-height:0}
}

/* ============================================================
   ARCHIVE CARDS - consolidated. This block supersedes all
   earlier card rules; edit here, do not append below.
   ============================================================ */
.cards .wp-block-post-template{display:grid;gap:var(--ct-s5);
  grid-template-columns:repeat(3,1fr);list-style:none;padding:0;margin:0}

.cards .wp-block-post-template > li{
  position:relative;display:flex;flex-direction:column;height:100%;
  align-self:stretch;overflow:hidden;padding:var(--ct-s6);
  border:1px solid rgba(255,255,255,.1);border-radius:var(--ct-radius);
  background:
    repeating-linear-gradient(118deg,transparent 0 17px,rgba(120,200,220,.05) 19px,transparent 30px),
    repeating-linear-gradient(118deg,transparent 0 72px,rgba(30,190,215,.09) 74px,transparent 91px),
    radial-gradient(120% 95% at 82% 18%,#123a47 0%,#0a1a26 38%,#050c13 74%,#03080d 100%);
  transition:border-color .3s var(--ct-ease),transform .3s var(--ct-ease),
    box-shadow .3s var(--ct-ease)}
.cards .wp-block-post-template > li:hover{
  border-color:rgba(127,227,242,.45);transform:translateY(-3px);
  box-shadow:0 18px 44px rgba(3,8,13,.35)}

/* laser trail along the top edge, staggered down the grid */
.cards .wp-block-post-template > li::before{
  content:'';position:absolute;top:0;left:0;width:26%;height:2px;z-index:3;
  background:linear-gradient(90deg,transparent,var(--ct-cyan) 45%,#7fe3f2 55%,transparent);
  animation:ctLaser 7s linear infinite;opacity:.8;pointer-events:none}
.cards .wp-block-post-template > li:nth-child(2)::before{animation-delay:1.2s}
.cards .wp-block-post-template > li:nth-child(3)::before{animation-delay:2.4s}
.cards .wp-block-post-template > li:nth-child(4)::before{animation-delay:3.6s}
.cards .wp-block-post-template > li:nth-child(5)::before{animation-delay:4.8s}
.cards .wp-block-post-template > li:nth-child(6)::before{animation-delay:6s}

/* featured image bleeds to the card edges */
.cards .wp-block-post-featured-image{
  margin:calc(var(--ct-s6) * -1) calc(var(--ct-s6) * -1) var(--ct-s5);
  aspect-ratio:16/9;overflow:hidden;position:relative}
.cards .wp-block-post-featured-image img{width:100%;height:100%;object-fit:cover;
  filter:grayscale(.55) contrast(1.1) brightness(.6);transition:filter .4s var(--ct-ease)}
.cards .wp-block-post-template > li:hover .wp-block-post-featured-image img{
  filter:grayscale(.25) contrast(1.05) brightness(.82)}

.cards .wp-block-post-terms{font-family:var(--ct-font-mono);font-size:.7rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ct-cyan);
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.cards .wp-block-post-title{font-size:var(--ct-step-1);line-height:1.24;
  margin:var(--ct-s4) 0 var(--ct-s4);letter-spacing:var(--ct-track-tight)}
.cards .wp-block-post-title a{color:#fff;text-decoration:none}
.cards .wp-block-post-excerpt{color:var(--ct-slate-300);font-size:.9rem;line-height:1.6;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.cards .wp-block-post-excerpt__more-text{display:none}
.cards .wp-block-post-date{display:flex;align-items:center;margin-top:auto;
  padding-top:var(--ct-s5);border-top:1px solid rgba(255,255,255,.12);
  font-family:var(--ct-font-mono);font-size:.7rem;letter-spacing:.06em;
  color:var(--ct-slate-500)}
.cards .wp-block-post-date::after{content:'Read \2192';margin-left:auto;
  color:var(--ct-cyan);font-weight:600;letter-spacing:0;
  transition:transform .25s var(--ct-ease)}
.cards .wp-block-post-template > li:hover .wp-block-post-date::after{transform:translateX(4px)}

/* lead card: same material, more room */
@media(min-width:1000px){
  .cards .wp-block-post-template > li:first-child{grid-column:span 2}
  .cards .wp-block-post-template > li:first-child .wp-block-post-title{
    font-size:var(--ct-step-2);max-width:20ch}
  .cards .wp-block-post-template > li:first-child .wp-block-post-excerpt{
    -webkit-line-clamp:4;max-width:54ch}
}
@media(min-width:700px) and (max-width:1100px){
  .cards .wp-block-post-template{grid-template-columns:repeat(2,1fr)}
  .cards .wp-block-post-template > li{padding:var(--ct-s5)}
}
@media(max-width:699px){
  .cards .wp-block-post-template{grid-template-columns:1fr;gap:var(--ct-s4)}
  .cards .wp-block-post-template > li{padding:var(--ct-s5)}
  .cards .wp-block-post-featured-image{
    margin:calc(var(--ct-s5) * -1) calc(var(--ct-s5) * -1) var(--ct-s4)}
  .cards .wp-block-post-title{font-size:1.15rem}
}
@media(prefers-reduced-motion:reduce){
  .cards .wp-block-post-template > li::before{animation:none;width:100%;opacity:.3}}

/* Core adds margin-block-start to sibling list items, which offsets every
   card except the first inside its grid cell. Grid gap handles spacing. */
.cards .wp-block-post-template > li,
.cards .wp-block-post-template > li + li{margin:0}

/* ---- Subject motifs: a subtle watermark per article ---- */
.cards .wp-block-post-template > li::after{content:"";position:absolute;
  right:-8%;bottom:-10%;width:48%;aspect-ratio:1;z-index:0;opacity:.15;
  background-repeat:no-repeat;background-position:center;background-size:contain;
  pointer-events:none;transition:opacity .35s var(--ct-ease),transform .35s var(--ct-ease);
  background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%237fe3f2' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M50 10 82 23v27c0 24-14 38-32 45-18-7-32-21-32-45V23Z'/><path d='M38 50l8 8 17-19'/></svg>")}
.cards .wp-block-post-template > li:hover::after{opacity:.3;transform:scale(1.04)}
.cards .wp-block-post-terms,.cards .wp-block-post-title,
.cards .wp-block-post-excerpt,.cards .wp-block-post-date,
.cards .wp-block-post-featured-image{position:relative;z-index:1}
.cards .wp-block-post-template > li.post-21370::after{background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%237fe3f2' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><rect x='18' y='24' width='52' height='34' rx='3'/><path d='M12 68h64l-6 12H18Z'/><rect x='76' y='36' width='14' height='26' rx='3'/></svg>")}
.cards .wp-block-post-template > li.post-15137::after{background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%237fe3f2' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M32 66a14 14 0 0 1 2-28 20 20 0 0 1 38-4 15 15 0 0 1 2 30Z'/><rect x='42' y='60' width='20' height='16' rx='2'/><path d='M46 60v-5a4 4 0 0 1 8 0v5'/></svg>")}
.cards .wp-block-post-template > li.post-14543::after{background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%237fe3f2' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M50 10 82 23v27c0 24-14 38-32 45-18-7-32-21-32-45V23Z'/><path d='M50 12v26l-12 8 16 12-8 14'/></svg>")}
.cards .wp-block-post-template > li.post-13576::after{background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%237fe3f2' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><circle cx='32' cy='50' r='14'/><circle cx='32' cy='50' r='5'/><path d='M46 50h42M74 50v12M86 50v9'/></svg>")}
.cards .wp-block-post-template > li.post-13129::after{background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%237fe3f2' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><circle cx='50' cy='50' r='17'/><circle cx='50' cy='50' r='7'/><path d='M50 22V12M50 88V78M78 50h10M12 50h10M70 30l7-7M23 77l7-7M70 70l7 7M23 23l7 7'/></svg>")}
.cards .wp-block-post-template > li.post-13175::after{background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%237fe3f2' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M50 16 88 82H12Z'/><path d='M50 42v20M50 70v3'/></svg>")}
.cards .wp-block-post-template > li.post-13149::after{background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%237fe3f2' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><circle cx='50' cy='50' r='12'/><circle cx='50' cy='50' r='24'/><circle cx='50' cy='50' r='36' stroke-dasharray='5 6'/></svg>")}
.cards .wp-block-post-template > li.post-13125::after{background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%237fe3f2' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><circle cx='50' cy='50' r='17'/><circle cx='50' cy='50' r='7'/><path d='M50 22V12M50 88V78M78 50h10M12 50h10M70 30l7-7M23 77l7-7M70 70l7 7M23 23l7 7'/></svg>")}
.cards .wp-block-post-template > li.post-11967::after{background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%237fe3f2' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><circle cx='44' cy='44' r='22'/><path d='M60 60 84 84'/><path d='M34 48h20M34 40h14M34 56h9'/></svg>")}
.cards .wp-block-post-template > li.post-12237::after{background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%237fe3f2' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><circle cx='24' cy='66' r='5'/><circle cx='50' cy='34' r='6'/><circle cx='76' cy='60' r='5'/><circle cx='62' cy='86' r='4'/><path d='M28 63 45 39M55 38l17 18M72 64 65 82M28 68l32 17'/></svg>")}
.cards .wp-block-post-template > li.post-10601::after{background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%237fe3f2' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><circle cx='50' cy='34' r='13'/><path d='M24 84c0-15 12-25 26-25s26 10 26 25'/><path d='M64 30l14-10M64 40l16 2'/></svg>")}

/* ---- Section rhythm scales down on smaller screens ---- */
@media(max-width:1100px){
  .sec{padding:var(--ct-s7) 0}
  .sec--tight{padding:var(--ct-s6) 0}
  .sec--flow{padding-top:var(--ct-s6);padding-bottom:var(--ct-s7)}
  .cta{padding:var(--ct-s7) 0}
}
@media(max-width:699px){
  .sec{padding:var(--ct-s6) 0}
  .sec--tight{padding:var(--ct-s5) 0}
  .sec--flow{padding-top:var(--ct-s5);padding-bottom:var(--ct-s6)}
  .cta{padding:var(--ct-s6) 0}
  .sec__head{margin-bottom:var(--ct-s5)}
}

/* ---- Fluid section rhythm: no breakpoint can be missed ---- */
.sec{padding:clamp(2rem,4.5vw,6rem) 0}
.sec--tight{padding:clamp(1.5rem,3.5vw,4rem) 0}
.sec--flow{padding-top:clamp(1.5rem,3.5vw,4rem);
  padding-bottom:clamp(2rem,4.5vw,6rem)}
.cta{padding:clamp(2rem,4.5vw,6rem) 0}
.sec__head{margin-bottom:clamp(1.5rem,3vw,3rem)}

/* ---- Archive grids need the same gutters as body content ---- */
@media(max-width:1100px){
  .sec--flow > .wp-block-query,
  .sec--flow > .wp-block-group,
  .cards{padding-inline:1.25rem}
}
@media(max-width:699px){
  .sec--flow > .wp-block-query,
  .sec--flow > .wp-block-group,
  .cards{padding-inline:1rem}
}

/* Archive grids take the same gutter as body content, at all widths */
.sec--flow > .wp-block-query,
.sec--flow > .wp-block-group,
.cards{padding-inline:var(--ct-s5)}

/* ---- Teams conversation ---- */
.tms{background:#fff;border-radius:8px;overflow:hidden;color:#242424;
  box-shadow:0 24px 60px rgba(3,8,13,.45);
  font-family:'Segoe UI',var(--ct-font-body);max-width:760px}
.tms__bar{display:flex;align-items:center;gap:.55rem;padding:.7rem 1rem;
  background:#f0f0f0;border-bottom:1px solid #e1e1e1}
.tms__bar i{width:10px;height:10px;border-radius:50%;background:#d6d6d6;flex:none}
.tms__bar span{margin-left:.5rem;font-size:.76rem;color:#616161;font-weight:600}
.tms__body{padding:1.5rem 1.25rem}
.tms__day{text-align:center;font-size:.7rem;color:#616161;margin-bottom:1.1rem}
.tms__me{display:flex;justify-content:flex-end;margin-bottom:1.25rem}
.tms__me p{background:#e8ebfa;padding:.7rem 1rem;border-radius:6px;
  font-size:.88rem;max-width:80%;margin:0;color:#242424}
.tms__who{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}
.tms__av{width:28px;height:28px;border-radius:4px;background:#0A1523;
  display:flex;align-items:center;justify-content:center;flex:none}
.tms__av i{width:14px;height:14px;background:#0FB5C9;flex:none;
  clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
.tms__name{font-size:.8rem;font-weight:600;color:#242424}
.tms__ai{font-size:.62rem;background:#eaeaea;color:#444;padding:.1rem .4rem;border-radius:3px}
.tms__time{font-size:.68rem;color:#616161}
.tms__msg{background:#f5f5f5;border-radius:6px;padding:1rem 1.1rem;
  font-size:.85rem;line-height:1.55;color:#242424}
.tms__msg h4,.tms__msg h5{color:#242424;letter-spacing:0;font-weight:700}
.tms__msg h4{font-size:.88rem;margin:0 0 .4rem}
.tms__msg h5{font-size:.8rem;margin:.9rem 0 .35rem}
.tms__msg p{margin:0 0 .5rem;color:#242424}
.tms__msg ul{margin:.2rem 0 .6rem 1.1rem;padding:0;list-style:disc}
.tms__msg li{margin-bottom:.22rem}
.tms__msg table{width:100%;border-collapse:collapse;margin:.5rem 0 .7rem;font-size:.8rem}
.tms__msg th,.tms__msg td{border:1px solid #d8d8d8;padding:.35rem .55rem;text-align:left}
.tms__msg th{background:#fafafa;font-weight:700}
.tms__msg strong{font-weight:700;color:#242424}
.tms__ok{color:#107c10}.tms__warn{color:#b8860b}
.tms__react{display:flex;gap:.6rem;margin-top:.6rem;font-size:.85rem;opacity:.45}
.tmswrap input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}
.tmswrap > label[hidden]{display:none}
.tmstabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.25rem}
.tmstabs label{font-family:var(--ct-font-mono);font-size:.7rem;letter-spacing:.12em;
  text-transform:uppercase;color:#A9B7C6;cursor:pointer;padding:.5rem 1rem;
  border:1px solid rgba(255,255,255,.18);border-radius:2px;transition:all .2s}
.tmstabs label:hover{border-color:#0FB5C9;color:#fff}
.tmspane{display:none}
#tms-a:checked ~ .tmspanes .tmspane--a,
#tms-b:checked ~ .tmspanes .tmspane--b,
#tms-c:checked ~ .tmspanes .tmspane--c{display:block}
#tms-a:checked ~ .tmstabs label[for=tms-a],
#tms-b:checked ~ .tmstabs label[for=tms-b],
#tms-c:checked ~ .tmstabs label[for=tms-c]{color:#06090F;background:#0FB5C9;
  border-color:#0FB5C9}
@media(max-width:699px){
  .tms__body{padding:1.1rem .85rem}
  .tms__msg{font-size:.78rem;padding:.85rem}
  .tms__msg table{font-size:.72rem}
}
#tms-d:checked ~ .tmspanes .tmspane--d,
#tms-e:checked ~ .tmspanes .tmspane--e{display:block}
#tms-d:checked ~ .tmstabs label[for=tms-d],
#tms-e:checked ~ .tmstabs label[for=tms-e]{color:#06090F;background:#0FB5C9;
  border-color:#0FB5C9}
#tms-f:checked ~ .tmspanes .tmspane--f{display:block}
#tms-f:checked ~ .tmstabs label[for=tms-f]{color:#06090F;background:#0FB5C9;
  border-color:#0FB5C9}
.tms__msg ol{margin:.2rem 0 .6rem 1.2rem;padding:0}
.tms__msg ol li{margin-bottom:.22rem}

/* Logos with heavy internal padding need a larger box to read at the same weight */
.partners__grid img[src*="cisco"],
.partners__grid img[src*="o2"],
.partners__grid img[src*="ico"],
.partners__grid img[src*="vodafone"]{max-height:56px;max-width:150px}

/* ---- Capability cards ---- */
.capgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--ct-s5)}
@media(max-width:1100px){.capgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:699px){.capgrid{grid-template-columns:1fr}}
.capcard{position:relative;display:flex;flex-direction:column;overflow:hidden;
  padding:var(--ct-s6);border:1px solid rgba(255,255,255,.1);
  border-radius:var(--ct-radius);text-decoration:none;
  background:
    repeating-linear-gradient(118deg,transparent 0 17px,rgba(120,200,220,.05) 19px,transparent 30px),
    repeating-linear-gradient(118deg,transparent 0 72px,rgba(30,190,215,.09) 74px,transparent 91px),
    radial-gradient(120% 95% at 82% 18%,#123a47 0%,#0a1a26 38%,#050c13 74%,#03080d 100%);
  transition:border-color .3s var(--ct-ease),transform .3s var(--ct-ease),
    box-shadow .3s var(--ct-ease)}
.capcard:hover{border-color:rgba(127,227,242,.45);transform:translateY(-3px);
  box-shadow:0 18px 44px rgba(3,8,13,.35)}
.capcard::before{content:'';position:absolute;top:0;left:0;width:26%;height:2px;z-index:3;
  background:linear-gradient(90deg,transparent,var(--ct-cyan) 45%,#7fe3f2 55%,transparent);
  animation:ctLaser 7s linear infinite;opacity:.8}
.capcard:nth-child(2)::before{animation-delay:1.2s}
.capcard:nth-child(3)::before{animation-delay:2.4s}
.capcard:nth-child(4)::before{animation-delay:3.6s}
.capcard:nth-child(5)::before{animation-delay:4.8s}
.capcard:nth-child(6)::before{animation-delay:6s}
.capcard__mk{position:absolute;right:-8%;bottom:-10%;width:46%;z-index:0;opacity:.15;
  transition:opacity .35s var(--ct-ease),transform .35s var(--ct-ease)}
.capcard:hover .capcard__mk{opacity:.3;transform:scale(1.04)}
.capcard > *:not(.capcard__mk){position:relative;z-index:1}
.capcard__n{font-family:var(--ct-font-mono);font-size:.72rem;color:var(--ct-cyan);
  letter-spacing:.12em}
.capcard h3{font-size:var(--ct-step-1);color:#fff;margin:var(--ct-s4) 0 var(--ct-s3);
  letter-spacing:var(--ct-track-tight)}
.capcard__hook{color:var(--ct-slate-300);font-size:.9rem;line-height:1.55}
.capcard .ticks{margin:var(--ct-s5) 0}
.capcard .ticks li{color:var(--ct-slate-300);border-color:rgba(255,255,255,.1);
  font-size:.82rem}
.capcard__go{margin-top:auto;padding-top:var(--ct-s5);
  border-top:1px solid rgba(255,255,255,.12);font-family:var(--ct-font-mono);
  font-size:.7rem;letter-spacing:.06em;color:var(--ct-cyan);
  transition:transform .25s var(--ct-ease)}
.capcard:hover .capcard__go{transform:translateX(4px)}

/* ---- Sector bands ---- */
.secband{padding:clamp(2rem,4.5vw,5rem) 0;background:var(--ct-paper)}
.secband--dark{color:#fff;background:
  repeating-linear-gradient(118deg,transparent 0 17px,rgba(120,200,220,.04) 19px,transparent 30px),
  radial-gradient(120% 95% at 78% 20%,#123a47 0%,#0a1a26 40%,#050c13 75%,#03080d 100%)}
.secband__in{display:grid;grid-template-columns:0.95fr 1.05fr;
  gap:clamp(1.5rem,4vw,4rem);align-items:center}
.secband__in--flip .secband__img{order:2}
@media(max-width:900px){
  .secband__in{grid-template-columns:1fr;gap:1.5rem}
  .secband__in--flip .secband__img{order:0}
}
.secband__img{position:relative;margin:0;overflow:hidden;border-radius:var(--ct-radius);
  aspect-ratio:4/3;background:var(--ct-navy-900)}
.secband__img img{width:100%;height:100%;object-fit:cover;
  filter:grayscale(.55) contrast(1.08) brightness(.78);
  transition:filter .5s var(--ct-ease),transform .6s var(--ct-ease)}
.secband__in:hover .secband__img img{filter:grayscale(.2) contrast(1.05) brightness(.95);
  transform:scale(1.03)}
.secband__img::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(150deg,rgba(10,21,35,.4),rgba(15,181,201,.12))}
.secband__img figcaption{position:absolute;left:0;top:0;z-index:2;
  font-family:var(--ct-font-mono);font-size:.72rem;letter-spacing:.14em;
  color:var(--ct-ink);background:var(--ct-cyan);padding:.35rem .7rem}
.secband__body h2{font-size:var(--ct-step-2);margin:var(--ct-s3) 0 var(--ct-s4)}
.secband--dark .secband__body h2{color:#fff}
.secband__lead{font-size:var(--ct-step-0);line-height:1.6;max-width:52ch;
  color:var(--ct-slate-500)}
.secband--dark .secband__lead{color:var(--ct-slate-300)}
.secband__body .ticks{margin:var(--ct-s5) 0 var(--ct-s5);max-width:46ch}
.secband--dark .ticks li{color:var(--ct-slate-300);border-color:rgba(255,255,255,.1)}

/* ---- What changes ---- */
.outwrap{margin-top:clamp(2rem,4vw,3.5rem);padding-top:clamp(2rem,4vw,3rem);
  border-top:1px solid var(--ct-line)}
.outgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--ct-s5);
  margin-top:var(--ct-s5)}
@media(max-width:900px){.outgrid{grid-template-columns:1fr;gap:var(--ct-s4)}}
.outc{padding-top:var(--ct-s4);border-top:2px solid var(--ct-cyan)}
.outc h3{font-size:var(--ct-step-1);margin-bottom:var(--ct-s3);
  letter-spacing:var(--ct-track-tight)}
.outc p{color:var(--ct-slate-500);font-size:.9rem;line-height:1.6}
