:root{
  --ink:#01092D; --ink-lift:#0A1740; --ink-soft:#122252;
  --blue:#02669A; --blue-dark:#014E77;
  --teal:#00E0C7; --gold:#F8D871; --mist:#C9CDD4;
  --paper:#FFFFFF; --tint:#F4F6F9;
  --body:#2B3444; --muted:#5C6779; --line:#E1E5EC;
  --wrap:1180px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Source Sans 3',system-ui,sans-serif;color:var(--body);background:var(--paper);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:'Archivo',system-ui,sans-serif;color:var(--ink);line-height:1.14;letter-spacing:-.02em}
a{color:var(--blue);text-decoration:none}
img{max-width:100%}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px}
.code{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.14em;color:var(--gold)}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px}

/* ---------- top + nav ---------- */
.topbar{background:var(--ink);border-bottom:1px solid rgba(255,255,255,.08)}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;height:38px;font-size:13px;color:var(--mist)}
.topbar .code{color:var(--teal)}
.nav{background:var(--ink);position:sticky;top:0;z-index:60;transition:box-shadow .25s}
.nav.stuck{box-shadow:0 1px 0 rgba(255,255,255,.14)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:74px;gap:20px}
.brand{display:flex;align-items:center;gap:13px}
.brand-mark{width:38px;height:38px;border:1.5px solid var(--teal);border-radius:50%;position:relative;flex:0 0 auto}
.brand-mark::before,.brand-mark::after{content:"";position:absolute;inset:0;border:1px solid rgba(0,224,199,.45);border-radius:50%}
.brand-mark::before{transform:scaleX(.45)}
.brand-mark::after{transform:scaleY(.4)}
.brand-txt{font-family:'Archivo';font-weight:800;font-size:19px;color:#fff;letter-spacing:.01em;line-height:1}
.brand-sub{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.22em;color:var(--mist);display:block;margin-top:4px}
.menu{display:flex;gap:28px;align-items:center;list-style:none}
.menu a{color:#DCE1E9;font-size:15px;font-weight:600;padding:8px 0;border-bottom:2px solid transparent;transition:color .15s,border-color .15s}
.menu a:hover{color:#fff;border-bottom-color:var(--teal)}
.btn{display:inline-block;font-family:'Archivo';font-weight:600;font-size:15px;padding:12px 24px;border-radius:3px;border:1.5px solid transparent;cursor:pointer;transition:background .18s,border-color .18s,color .18s}
.btn-primary{background:var(--blue);color:#fff}
.btn-primary:hover{background:var(--blue-dark)}
.btn-ghost{border-color:rgba(255,255,255,.35);color:#fff;background:none}
.btn-ghost:hover{border-color:var(--teal);color:var(--teal)}
.burger{display:none;background:none;border:0;color:#fff;font-size:25px;cursor:pointer;line-height:1}
.drawer{display:none;background:var(--ink-lift);border-top:1px solid rgba(255,255,255,.1)}
.drawer.open{display:block}
.drawer ul{list-style:none;padding:12px 28px 22px}
.drawer li{border-bottom:1px solid rgba(255,255,255,.08)}
.drawer a{display:block;padding:14px 0;color:#DCE1E9;font-weight:600}

/* ---------- hero carousel ---------- */
.hero{background:var(--ink-lift);color:#fff;position:relative;overflow:hidden}
.meridian{position:absolute;right:-110px;top:50%;transform:translateY(-50%);width:560px;height:560px;opacity:.45;pointer-events:none}
.slides{position:relative;z-index:2}
.slide{display:none}
.slide.active{display:block;animation:fade .5s ease}
@keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.slide-inner{padding:86px 0 30px;max-width:44rem}
.eyebrow{display:inline-flex;align-items:center;gap:10px;margin-bottom:20px}
.eyebrow i{height:1px;width:38px;background:var(--teal);display:block}
.hero h1{color:#fff;font-size:clamp(32px,4.5vw,54px);font-weight:800;margin-bottom:20px}
.hero h1 em{font-style:normal;color:var(--teal)}
.hero h1 u{text-decoration:none;color:var(--gold)}
.hero p{font-size:19px;color:#C6CEDC;max-width:34em;margin-bottom:32px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.carousel-ui{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:26px 0 34px;border-top:1px solid rgba(255,255,255,.14);margin-top:40px;flex-wrap:wrap}
.dots{display:flex;gap:0;list-style:none}
.dot{background:none;border:0;cursor:pointer;padding:14px 20px 12px 0;margin-right:20px;text-align:left;border-top:2px solid rgba(255,255,255,.18);margin-top:-1px;color:var(--mist);font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.14em;transition:color .2s,border-color .2s;min-width:150px}
.dot b{display:block;font-family:'Archivo';font-size:14px;font-weight:600;color:#93A0B6;letter-spacing:0;margin-top:6px;transition:color .2s}
.dot[aria-selected="true"]{border-top-color:var(--teal);color:var(--teal)}
.dot[aria-selected="true"] b{color:#fff}
.arrows{display:flex;gap:8px}
.arrow{width:42px;height:42px;border:1px solid rgba(255,255,255,.28);background:none;color:#fff;border-radius:3px;cursor:pointer;font-size:16px;line-height:1;transition:border-color .18s,color .18s}
.arrow:hover{border-color:var(--teal);color:var(--teal)}

/* ---------- ticker band ---------- */
.band{background:var(--ink);border-top:1px solid rgba(255,255,255,.1);overflow:hidden;padding:15px 0}
.band-track{display:flex;gap:52px;width:max-content;animation:slide 42s linear infinite}
.band-track span{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.18em;color:#6E7C97;white-space:nowrap}
.band-track span b{color:var(--gold);font-weight:500}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- section shell ---------- */
.section{padding:86px 0}
.section-tint{background:var(--tint)}
.sec-head{max-width:660px;margin-bottom:44px}
.sec-head h2{font-size:clamp(27px,3vw,38px);font-weight:700;margin:14px 0 14px}
.sec-head p{color:var(--muted)}
.eyebrow-dark{display:inline-flex;align-items:center;gap:10px}
.eyebrow-dark .code{color:var(--blue)}
.eyebrow-dark i{height:1px;width:30px;background:var(--teal);display:block}

/* ---------- finder ---------- */
.finder{background:var(--ink);color:#fff;padding:74px 0}
.finder h2{color:#fff;font-size:clamp(26px,3vw,36px);margin:14px 0 12px}
.finder .lede{color:#B9C2D2;max-width:46em;margin-bottom:34px}
.finder .eyebrow-dark .code{color:var(--teal)}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:34px}
.chip{background:none;border:1px solid rgba(255,255,255,.24);color:#DCE1E9;font-family:'Source Sans 3',sans-serif;font-size:15px;font-weight:600;padding:10px 18px;border-radius:999px;cursor:pointer;transition:background .18s,border-color .18s,color .18s}
.chip:hover{border-color:var(--teal);color:#fff}
.chip[aria-pressed="true"]{background:var(--teal);border-color:var(--teal);color:#01323A}
.match{border-top:1px solid rgba(255,255,255,.16);padding-top:30px;min-height:150px}
.match-lead{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.14em;color:var(--gold);margin-bottom:20px;display:block}
.match-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.match-card{border:1px solid rgba(255,255,255,.16);border-radius:4px;padding:22px;background:rgba(255,255,255,.03);display:block;color:inherit}
.match-card:hover{border-color:var(--teal)}
.match-card .code{color:var(--gold);display:block;margin-bottom:10px}
.match-card h3{color:#fff;font-size:17px;font-weight:600;margin-bottom:6px}
.match-card p{color:#9FAAC0;font-size:14.5px;line-height:1.5}
.match-empty{color:#8792A8;font-size:16px}

/* ---------- registry ---------- */
.divisions{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.div-card{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:30px 26px 34px;background:var(--paper);position:relative;display:block;color:inherit;transition:background .18s}
.div-card::after{content:"";position:absolute;left:0;bottom:-1px;height:2px;width:0;background:var(--teal);transition:width .3s ease}
.div-card:hover{background:#FAFCFE}
.div-card:hover::after{width:100%}
.div-card .code{display:block;margin-bottom:15px;color:#B08A2E}
.div-card h3{font-size:19px;font-weight:600;margin-bottom:9px}
.div-card p{font-size:15px;color:var(--muted);line-height:1.55}
.div-card .go{font-family:'Archivo';font-weight:600;font-size:14px;color:var(--blue);margin-top:15px;display:inline-block}

/* ---------- engage steps (different shape) ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.step{padding:0 34px 0 0;border-right:1px solid var(--line);margin-right:34px}
.step:last-child{border-right:0;margin-right:0;padding-right:0}
.step .num{font-family:'Archivo';font-weight:800;font-size:52px;color:var(--line);line-height:1;display:block;margin-bottom:14px}
.step h3{font-size:19px;font-weight:600;margin-bottom:8px}
.step p{color:var(--muted);font-size:15.5px}

/* ---------- group split ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start}
.split h2{font-size:clamp(26px,3vw,36px);margin-bottom:18px}
.split p{color:var(--muted);margin-bottom:16px}
.pillars{list-style:none;margin-top:6px}
.pillars li{padding:16px 0;border-bottom:1px solid var(--line);display:flex;gap:16px;align-items:baseline;flex-wrap:wrap}
.pillars li .code{color:#B08A2E;flex:0 0 34px}
.pillars li b{font-family:'Archivo';font-weight:600;color:var(--ink);font-size:16px}
.pillars li em{font-style:normal;color:var(--muted);font-size:15px}

/* ---------- cta + footer ---------- */
.cta{background:var(--ink-lift);color:#fff;padding:72px 0}
.cta-inner{display:flex;justify-content:space-between;align-items:center;gap:40px;flex-wrap:wrap}
.cta h2{color:#fff;font-size:clamp(25px,3vw,34px);margin-bottom:10px}
.cta p{color:#B9C2D2}
.foot{background:var(--ink);color:#98A3B6;border-top:1px solid rgba(255,255,255,.1);padding:58px 0 0;font-size:15px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;padding-bottom:44px}
.foot h4{color:#fff;font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-family:'IBM Plex Mono',monospace;font-weight:500;margin-bottom:18px}
.foot ul{list-style:none}
.foot li{margin-bottom:10px}
.foot a{color:#98A3B6}
.foot a:hover{color:var(--teal)}
.foot-base{border-top:1px solid rgba(255,255,255,.1);padding:20px 0;display:flex;justify-content:space-between;gap:20px;font-size:13px;flex-wrap:wrap}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}
.rv.in{opacity:1;transform:none}

@media(max-width:1000px){
  .divisions{grid-template-columns:repeat(2,1fr)}
  .match-grid{grid-template-columns:1fr}
  .meridian{display:none}
  .split{grid-template-columns:1fr;gap:38px}
  .steps{grid-template-columns:1fr}
  .step{border-right:0;margin-right:0;padding:0 0 26px;border-bottom:1px solid var(--line);margin-bottom:26px}
  .step:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:700px){
  body{font-size:16px}
  .nav .btn,.burger,.drawer{display:none}
  .nav .wrap{flex-wrap:wrap;height:auto;padding-top:14px;gap:0}
  .menu{
    order:3;width:100%;margin:12px -28px 0;padding:0 28px;
    gap:22px;overflow-x:auto;-webkit-overflow-scrolling:touch;
    scrollbar-width:none;border-top:1px solid rgba(255,255,255,.1)
  }
  .menu::-webkit-scrollbar{display:none}
  .nav .wrap{position:relative}
  .nav .wrap::after{
    content:"";position:absolute;right:0;bottom:0;width:46px;height:44px;
    background:linear-gradient(90deg,rgba(1,9,45,0) 0%,var(--ink) 78%);
    pointer-events:none
  }
  .menu li{flex:0 0 auto}
  .menu a{display:block;padding:13px 0;font-size:14.5px;white-space:nowrap}
  .divisions{grid-template-columns:1fr}
  .section{padding:58px 0}
  .slide-inner{padding:56px 0 24px}
  .carousel-ui{padding:20px 0 30px;margin-top:26px}
  .dot{min-width:0;padding-right:14px;margin-right:14px;font-size:10px}
  .dot b{font-size:15.5px}
  .foot-grid{grid-template-columns:1fr}
  .finder{padding:56px 0}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .rv{opacity:1;transform:none}
}

/* ===== added for service + contact pages ===== */
.skip{position:absolute;left:-9999px;background:var(--teal);color:#01323A;padding:10px 16px;z-index:200}
.skip:focus{left:14px;top:12px}
.menu a.on{color:#fff;border-bottom-color:var(--teal)}
.topbar a{color:var(--mist)}
.topbar a:hover{color:var(--teal)}
.phead{background:var(--ink-lift);color:#fff;position:relative;overflow:hidden;padding:64px 0 58px}
.phead .meridian{opacity:.32}
.phead .wrap{position:relative;z-index:2}
.crumb{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.14em;color:#7C89A3;margin-bottom:22px}
.crumb a{color:#7C89A3}
.crumb a:hover{color:var(--teal)}
.phead .code{color:var(--gold)}
.phead h1{color:#fff;font-size:clamp(30px,4vw,46px);font-weight:800;margin:16px 0 16px;max-width:16em}
.phead .lead{font-size:19px;color:#C6CEDC;max-width:34em}
.svc{display:grid;grid-template-columns:1.5fr .9fr;gap:64px;align-items:start}
.svc h2{font-size:clamp(23px,2.4vw,30px);margin:0 0 16px}
.svc p{margin-bottom:16px;color:var(--body)}
.caps{list-style:none;margin:8px 0 0;border-top:1px solid var(--line)}
.caps li{padding:15px 0 15px 30px;border-bottom:1px solid var(--line);position:relative;font-size:16.5px}
.caps li::before{content:"";position:absolute;left:0;top:24px;width:14px;height:1px;background:var(--teal)}
.aside{background:var(--tint);border-top:2px solid var(--teal);padding:28px 26px;position:sticky;top:96px}
.aside h3{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.14em;font-weight:500;color:var(--muted);text-transform:uppercase;margin-bottom:16px}
.aside ul{list-style:none;margin-bottom:26px}
.aside li{padding:9px 0;border-bottom:1px solid var(--line);font-size:15.5px;color:var(--body)}
.aside li:last-child{border-bottom:0}
.aside .btn{width:100%;text-align:center}
.notice{border-left:2px solid var(--gold);background:#FFFCF2;padding:16px 20px;margin:26px 0 0;font-size:15.5px;color:#5A4A22}
.siblings{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.siblings .div-card{padding:26px 24px 30px}
.contact-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:60px;align-items:start}
.field{margin-bottom:20px}
.field label{display:block;font-family:'Archivo';font-weight:600;font-size:14.5px;color:var(--ink);margin-bottom:7px}
.field input,.field select,.field textarea{width:100%;padding:13px 15px;border:1px solid var(--line);border-radius:3px;font-family:'Source Sans 3',sans-serif;font-size:16px;color:var(--body);background:#fff}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue);outline:2px solid rgba(2,102,154,.16);outline-offset:0}
.field textarea{min-height:150px;resize:vertical}
.hp{position:absolute;left:-9999px}
.form-note{font-size:14px;color:var(--muted);margin-top:14px}
.contact-info{background:var(--ink);color:#B9C2D2;padding:32px 28px}
.contact-info h3{color:#fff;font-size:19px;margin-bottom:18px}
.contact-info dt{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.14em;color:var(--teal);margin-top:20px}
.contact-info dd{margin:5px 0 0;font-size:16px;color:#fff}
.contact-info a{color:#fff}
.contact-info a:hover{color:var(--teal)}
.alert{padding:16px 20px;margin-bottom:26px;border-left:2px solid var(--teal);background:#EEFCF9;color:#0A4F45;font-size:16px}
@media(max-width:1000px){
  .svc{grid-template-columns:1fr;gap:40px}
  .aside{position:static}
  .siblings{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr;gap:36px}
}

/* topbar: drop the registration line on small screens */
@media(max-width:640px){
  .topbar .wrap{justify-content:center}
  .topbar .code{display:none}
}

/* two-column step grid (about page) */
.steps-2{grid-template-columns:repeat(2,1fr);row-gap:34px}
.steps-2 .step:nth-child(2n){border-right:0;margin-right:0;padding-right:0}
@media(max-width:1000px){ .steps-2{grid-template-columns:1fr} }


/* tighten the gap between hero text and the slide tabs */
.slide-inner{padding-bottom:6px}
.carousel-ui{margin-top:20px;padding-top:20px}

@media(max-width:700px){
  .slide-inner{padding-bottom:4px}
  .carousel-ui{margin-top:14px;padding-top:16px}
}



@media(max-width:700px){
  .hero p{margin-bottom:0}
  .slide-inner{padding-bottom:0}
  .carousel-ui{margin-top:10px;padding-top:14px;padding-bottom:20px;gap:12px}
}


@media(max-width:700px){

  .slide-inner{padding-top:30px}
  .hero h1{font-size:40px;line-height:1.1}
  .hero p{font-size:14px;line-height:1.55}
  .carousel-ui{margin-top:8px;padding-top:12px;padding-bottom:16px}
  .dot{padding:10px 12px 8px 0;margin-right:12px}
  .band{padding:11px 0}
}





/* ---------- hero slide images ---------- */
.slide{position:relative;overflow:hidden}

.slide-bg{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  z-index:1;
}

.slide-bg::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(1,9,45,.75) 0%,rgba(1,9,45,.5) 42%,rgba(10,23,64,.12) 100%);
}

.slide .wrap{
  position:relative;
  z-index:2;
}

.hero h1,
.hero p{
  text-shadow:0 1px 14px rgba(1,9,45,.9);
}

@media(max-width:700px){
  .slide-bg::after{
    background:linear-gradient(180deg,rgba(1,9,45,.72) 0%,rgba(1,9,45,.55) 100%);
  }
}



/* real logo mark */
.brand-logo{
  width:40px;height:40px;
  object-fit:contain;
  display:block;
  flex:0 0 auto;
}
@media(max-width:700px){
  .brand-logo{width:34px;height:34px}
}


/* ticker band in teal */
.band-track span{color:var(--teal);opacity:.75}


/* ---------- division cards with images ---------- */
.dgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}

.dcard{
  display:block;background:var(--paper);
  border:1px solid var(--line);border-radius:4px;
  overflow:hidden;color:inherit;
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.dcard:hover{
  transform:translateY(-4px);
  border-color:#CBD5E1;
  box-shadow:0 14px 30px rgba(1,9,45,.12);
}

.dcard-img{
  display:block;position:relative;
  aspect-ratio:3/2;overflow:hidden;
  background:var(--ink-lift);
}
.dcard-img img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .5s ease;
}
.dcard:hover .dcard-img img{transform:scale(1.06)}
.dcard-img::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(1,9,45,.12) 0%,rgba(1,9,45,.5) 100%);
}

.dcard-code{
  position:absolute;left:14px;top:14px;z-index:2;
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;letter-spacing:.14em;
  color:var(--gold);
  background:rgba(1,9,45,.72);
  border:1px solid rgba(248,216,113,.3);
  padding:5px 10px;border-radius:2px;
}

.dcard-body{display:block;padding:22px 22px 26px;position:relative}
.dcard-body::before{
  content:"";position:absolute;left:0;top:0;
  height:2px;width:0;background:var(--teal);
  transition:width .35s ease;
}
.dcard:hover .dcard-body::before{width:100%}
.dcard h3{font-size:18px;font-weight:600;margin-bottom:8px}
.dcard p{font-size:15px;color:var(--muted);line-height:1.55;margin-bottom:14px}
.dcard .go{font-family:'Archivo';font-weight:600;font-size:14px;color:var(--blue)}

@media(max-width:1000px){.dgrid{grid-template-columns:repeat(2,1fr);gap:18px}}
@media(max-width:640px){.dgrid{grid-template-columns:1fr}}



/* ---------- social icons ---------- */
.social{list-style:none;display:flex;gap:12px;margin-top:16px}

.social a{
  position:relative;
  display:flex;align-items:center;justify-content:center;
  width:38px;height:38px;
  border-radius:50%;
  overflow:hidden;
  color:#98A3B6;
  border:1px solid rgba(255,255,255,.18);
  transition:color .3s ease, border-color .3s ease, transform .3s ease;
}

.social a::before{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(140deg,#00E0C7 0%,#0FBFC9 45%,#F8D871 100%);
  transform:translateY(101%);
  transition:transform .38s cubic-bezier(.33,.9,.35,1);
}

.social a:hover::before,
.social a:focus-visible::before{transform:translateY(0)}

.social a:hover,
.social a:focus-visible{
  color:#01092D;
  border-color:transparent;
  transform:translateY(-3px);
}

.social svg{
  position:relative;z-index:2;
  width:16px;height:16px;
  transition:transform .38s cubic-bezier(.33,.9,.35,1);
}
.social a:hover svg{transform:scale(1.12)}

@media(prefers-reduced-motion:reduce){
  .social a,.social a::before,.social svg{transition:none}
  .social a:hover{transform:none}
}



/* ---------- capability cards ---------- */
.capgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:0}

.capcard{
  display:block;background:var(--paper);
  border:1px solid var(--line);border-radius:4px;overflow:hidden;
  transition:border-color .22s ease,box-shadow .22s ease,transform .22s ease;
}
.capcard:hover{
  border-color:#C3CCDA;
  box-shadow:0 10px 24px rgba(1,9,45,.09);
  transform:translateY(-2px);
}

.capcard-img{display:block;position:relative;aspect-ratio:3/2;overflow:hidden;background:var(--ink-lift)}
.capcard-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.capcard:hover .capcard-img img{transform:scale(1.05)}
.capcard-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(1,9,45,0) 40%,rgba(1,9,45,.45) 100%)}

.capcard-body{display:block;padding:22px 22px 26px}
.capcard h3{font-size:18px;font-weight:600;margin-bottom:8px;line-height:1.3}
.capcard p{font-size:15px;color:var(--muted);line-height:1.55;margin:0}

/* no photo yet — keep a teal edge so it still reads as designed */
.capcard-plain{border-left:2px solid var(--teal)}

/* ---------- sector chips ---------- */
.sectorchips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}
.sectorchips li{
  font-size:13.5px;font-weight:600;color:#3C4759;
  background:#fff;border:1px solid var(--line);
  padding:7px 13px;border-radius:999px;
  transition:border-color .18s,color .18s;
}
.sectorchips li:hover{border-color:var(--teal);color:var(--ink)}

@media(max-width:1000px){.capgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.capgrid{grid-template-columns:1fr}}


/* full-width sector chips */
.sectorchips-wide{gap:10px;margin-bottom:0}
.sectorchips-wide li{font-size:15px;padding:9px 18px}



.svc-wide{max-width:none}
.svc-wide h2{font-size:clamp(23px,2.4vw,30px);margin:0 0 16px}
.svc-wide p{margin-bottom:16px;max-width:74ch}

.engage-strip{
  display:flex;align-items:center;justify-content:space-between;
  gap:30px;flex-wrap:wrap;
  border:1px solid var(--line);border-top:2px solid var(--teal);
  padding:28px 30px;background:var(--tint);
}
.engage-strip h2{font-size:22px;margin-bottom:6px}
.engage-strip p{color:var(--muted);margin:0}

.sectorchips-wide{gap:10px;margin-bottom:0}
.sectorchips-wide li{font-size:15px;padding:9px 18px}

/* tighten What We Do into Capabilities */
.svc-wide{padding-bottom:0}
.section:has(.svc-wide){padding-bottom:24px}
.section:has(.capgrid){padding-top:32px}


.section-slim{padding:44px 0}
.sectorchips-wide li{font-size:14px;padding:7px 15px}


/* pull sectors up under capabilities */
.section:has(.capgrid){padding-bottom:20px}

/* pull engage strip up under sectors */
.section:has(.engage-strip){padding-top:26px}


/* align social row with footer content */
.social{
  max-width:var(--wrap);
  margin:0 auto;
  padding:0 28px 18px;
  justify-content:flex-start;
}

.social a{color:#5C6779;border-color:#D8DDE5}


/* ---------- land listings ---------- */
.landwrap{border:1px solid var(--line);border-radius:4px;overflow:hidden}
.landtable{width:100%;border-collapse:collapse;font-size:15.5px}
.landtable thead th{
  background:var(--ink);color:#fff;text-align:left;
  font-family:'IBM Plex Mono',monospace;font-weight:500;
  font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
  padding:14px 18px;
}
.landtable td{padding:15px 18px;border-top:1px solid var(--line);color:var(--body)}
.landtable tbody tr:nth-child(even){background:#FAFBFD}
.landtable tbody tr:hover{background:#F2F7FB}
.landtable td:first-child{font-family:'Archivo';font-weight:600;color:var(--ink);white-space:nowrap}
.landtable td:last-child{font-family:'Archivo';font-weight:600;color:var(--blue);white-space:nowrap}

@media(max-width:760px){
  .landwrap{border:0}
  .landtable thead{display:none}
  .landtable,.landtable tbody,.landtable tr,.landtable td{display:block;width:100%}
  .landtable tr{
    border:1px solid var(--line);border-top:2px solid var(--teal);
    border-radius:4px;margin-bottom:14px;background:#fff!important;
  }
  .landtable td{border-top:0;padding:9px 16px;display:flex;justify-content:space-between;gap:16px}
  .landtable td::before{
    content:attr(data-l);color:var(--muted);font-size:13px;
    font-family:'IBM Plex Mono',monospace;letter-spacing:.08em;text-transform:uppercase;
  }
  .landtable td:first-child{padding-top:16px;font-size:18px}
  .landtable td:last-child{padding-bottom:16px}
}

.steps-2 .step h3{margin-top:2px}



/* ---------- leadership cards ---------- */
.teamgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}

.teamcard{
  display:block;background:var(--paper);
  border:1px solid var(--line);border-radius:4px;overflow:hidden;
  transition:border-color .22s ease,box-shadow .22s ease,transform .22s ease;
}
.teamcard:hover{
  border-color:#C3CCDA;
  box-shadow:0 10px 24px rgba(1,9,45,.09);
  transform:translateY(-2px);
}

.teamcard-img{display:block;position:relative;aspect-ratio:1/1;overflow:hidden;background:var(--ink-lift)}
.teamcard-img img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}

.teamcard-body{display:block;padding:22px 22px 26px}
.teamrole{
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:#B08A2E;display:block;margin-bottom:9px;
}
.teamcard h3{font-size:18px;font-weight:600;margin-bottom:8px}
.teamcard p{font-size:15px;color:var(--muted);line-height:1.55;margin:0}
.teamcard-plain{border-left:2px solid var(--teal)}

@media(max-width:900px){.teamgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.teamgrid{grid-template-columns:1fr}}


/* land table enquiry links */
.land-cta{
  font-family:'Archivo';font-weight:600;font-size:14.5px;
  color:var(--blue);white-space:nowrap;
  border-bottom:1px solid transparent;
  transition:border-color .18s;
}
.land-cta:hover{border-bottom-color:var(--blue)}


/* ---------- partners ---------- */
.partnergrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}

.partnercard{
  display:block;background:var(--paper);
  border:1px solid var(--line);border-radius:4px;overflow:hidden;
  color:inherit;
  transition:border-color .22s ease,box-shadow .22s ease,transform .22s ease;
}
a.partnercard:hover{
  border-color:#C3CCDA;
  box-shadow:0 10px 24px rgba(1,9,45,.09);
  transform:translateY(-2px);
}

.partnerlogo{
  display:flex;align-items:center;justify-content:center;
  height:130px;padding:22px;
  background:var(--tint);border-bottom:1px solid var(--line);
}
.partnerlogo img{max-height:64px;max-width:100%;width:auto;object-fit:contain}
.partnerfallback{
  font-family:'Archivo';font-weight:700;font-size:19px;
  color:#9AA6B8;text-align:center;
}

.partnerbody{display:block;padding:20px 22px 24px}
.partnertype{
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:#B08A2E;display:block;margin-bottom:8px;
}
.partnercard h3{font-size:17.5px;font-weight:600;margin-bottom:7px}
.partnercard p{font-size:15px;color:var(--muted);line-height:1.55;margin:0}

@media(max-width:900px){.partnergrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.partnergrid{grid-template-columns:1fr}}


/* technology lists on division pages */
.p3-list{list-style:none;margin:0 0 18px;max-width:74ch}
.p3-list li{
  padding:9px 0 9px 26px;position:relative;
  border-bottom:1px solid var(--line);font-size:16px;
}
.p3-list li::before{
  content:"";position:absolute;left:0;top:19px;
  width:12px;height:1px;background:var(--teal);
}

/* secondary sub-heading (Modular Power Generation) */
.p3-sub{
  border-top:0!important;
  padding-top:0!important;
  margin:24px 0 6px!important;
  font-size:17px!important;
}

.partnerlogo{height:150px;padding:26px 30px}
.partnerlogo img{max-height:88px}

.social{padding-top:26px}

@media(max-width:700px){
  .menu{gap:13px}
  .menu a{font-size:13.5px}
  .nav .wrap::after{width:22px}
}
@media(max-width:380px){
  .menu{gap:11px}
  .menu a{font-size:13px}
}

@media(max-width:700px){
  .menu{gap:11px;padding-right:44px}
  .menu a{font-size:13px}
  .nav .wrap::after{display:none}
}
