.elementor-kit-2{--e-global-color-primary:#007CC4;--e-global-color-secondary:#0F1B26;--e-global-color-text:#1D2B36;--e-global-color-accent:#005A93;--e-global-color-charcoal:#2B2B2B;--e-global-color-bluelight:#3FA9EE;--e-global-color-surface:#EDF2F6;--e-global-color-steel:#5B6B7A;--e-global-color-soft:#8598A8;--e-global-color-line:#D8E2EA;--e-global-color-line2:#BECDDA;--e-global-color-white:#FFFFFF;--e-global-typography-primary-font-family:"Archivo";--e-global-typography-primary-font-weight:800;--e-global-typography-primary-line-height:1.08em;--e-global-typography-primary-letter-spacing:-0.6px;--e-global-typography-secondary-font-family:"Archivo";--e-global-typography-secondary-font-weight:700;--e-global-typography-secondary-line-height:1.15em;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-size:16px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.75em;--e-global-typography-accent-font-family:"Archivo";--e-global-typography-accent-font-size:13px;--e-global-typography-accent-font-weight:800;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-letter-spacing:1px;--e-global-typography-monolabel-font-family:"IBM Plex Mono";--e-global-typography-monolabel-font-size:10px;--e-global-typography-monolabel-font-weight:500;--e-global-typography-monolabel-text-transform:uppercase;--e-global-typography-monolabel-letter-spacing:2px;background-color:#FFFFFF;color:#1D2B36;font-family:"Inter", Sans-serif;font-size:16px;font-weight:400;line-height:1.75em;}.elementor-kit-2 button,.elementor-kit-2 input[type="button"],.elementor-kit-2 input[type="submit"],.elementor-kit-2 .elementor-button{background-color:#007CC4;font-family:"Archivo", Sans-serif;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:#FFFFFF;border-radius:6px 6px 6px 6px;padding:15px 28px 15px 28px;}.elementor-kit-2 button:hover,.elementor-kit-2 button:focus,.elementor-kit-2 input[type="button"]:hover,.elementor-kit-2 input[type="button"]:focus,.elementor-kit-2 input[type="submit"]:hover,.elementor-kit-2 input[type="submit"]:focus,.elementor-kit-2 .elementor-button:hover,.elementor-kit-2 .elementor-button:focus{background-color:#1E96DE;color:#FFFFFF;}.elementor-kit-2 e-page-transition{background-color:#FFBC7D;}.elementor-kit-2 p{margin-block-end:18px;}.elementor-kit-2 a{color:#007CC4;}.elementor-kit-2 a:hover{color:#005A93;}.elementor-kit-2 h1{color:#2B2B2B;font-family:"Archivo", Sans-serif;font-size:56px;font-weight:900;line-height:1.03em;}.elementor-kit-2 h2{color:#2B2B2B;font-family:"Archivo", Sans-serif;font-size:38px;font-weight:800;line-height:1.07em;}.elementor-kit-2 h3{color:#2B2B2B;font-family:"Archivo", Sans-serif;font-size:26px;font-weight:700;line-height:1.12em;}.elementor-kit-2 h4{color:#2B2B2B;font-family:"Archivo", Sans-serif;font-size:20px;font-weight:700;line-height:1.2em;}.elementor-kit-2 h5{color:#2B2B2B;font-family:"Archivo", Sans-serif;font-size:17px;font-weight:700;line-height:1.25em;}.elementor-kit-2 h6{color:#2B2B2B;font-family:"Archivo", Sans-serif;font-size:15px;font-weight:700;line-height:1.3em;}.elementor-kit-2 input:not([type="button"]):not([type="submit"]),.elementor-kit-2 textarea,.elementor-kit-2 .elementor-field-textual{font-family:"Inter", Sans-serif;font-size:14px;font-weight:400;color:#1D2B36;background-color:#EDF2F6;border-radius:0px 0px 0px 0px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1200px;}.e-con{--container-max-width:1200px;--container-default-padding-top:0px;--container-default-padding-right:20px;--container-default-padding-bottom:0px;--container-default-padding-left:20px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-2 h1{font-size:44px;}.elementor-kit-2 h2{font-size:33px;}.elementor-kit-2 h3{font-size:23px;}.elementor-kit-2 h4{font-size:19px;}.elementor-kit-2 h5{font-size:17px;}.elementor-kit-2 h6{font-size:15px;}.elementor-kit-2 button,.elementor-kit-2 input[type="button"],.elementor-kit-2 input[type="submit"],.elementor-kit-2 .elementor-button{font-size:12px;padding:13px 22px 13px 22px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-2 h1{font-size:36px;}.elementor-kit-2 h2{font-size:27px;}.elementor-kit-2 h3{font-size:21px;}.elementor-kit-2 h4{font-size:18px;}.elementor-kit-2 h5{font-size:16px;}.elementor-kit-2 h6{font-size:14px;}.elementor-kit-2 button,.elementor-kit-2 input[type="button"],.elementor-kit-2 input[type="submit"],.elementor-kit-2 .elementor-button{font-size:11.5px;padding:12px 18px 12px 18px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ===== NSTC INDUSTRIAL BLUE - component system ===== */
:root{--nv:#0F1B26;--ry:#007CC4;--cb:#005A93;--sk:#3FA9EE;--pl:rgba(255,255,255,.74);--fr:#EDF2F6;--ow:#EDF2F6;--ink:#1D2B36;--md:#5B6B7A;--ft:#8598A8;--bd:#D8E2EA;--bd2:#BECDDA;--sh:rgba(15,27,38,.07);--sh2:rgba(15,27,38,.15);--fH:'Archivo','Helvetica Neue',sans-serif;--fB:'Inter','Helvetica Neue',sans-serif;--fM:'IBM Plex Mono',ui-monospace,monospace;--ez:cubic-bezier(.25,.46,.45,.94)}
.nstc *,.nstc *::before,.nstc *::after{box-sizing:border-box}
.nstc{font-family:var(--fB);color:var(--ink)}
.nstc img{display:block;max-width:100%}

/* --- placeholder image block (swap for real photography) --- */
.nstc-ph{position:relative;overflow:hidden;background:linear-gradient(135deg,#0F1B26 0%,#007CC4 55%,#005A93 100%);display:flex;align-items:flex-end;min-height:220px}
.nstc-ph::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(63,169,238,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(63,169,238,.10) 1px,transparent 1px);background-size:34px 34px}
.nstc-ph::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(1,29,66,.85),transparent 55%)}
.nstc-ph span{position:relative;z-index:2;font-family:var(--fM);font-size:12px;letter-spacing:2.5px;text-transform:uppercase;color:var(--pl);padding:14px 16px}
.nstc-ph.tall{min-height:380px}.nstc-ph.short{min-height:170px}

/* --- labels & type --- */
.nstc-eye{display:flex;align-items:center;gap:10px;font-family:var(--fM);font-size:12px;letter-spacing:3.5px;text-transform:uppercase;color:var(--ry);margin-bottom:14px}
.nstc-eye::before{content:'';width:24px;height:2px;background:currentColor;flex-shrink:0}
.nstc-eye.on-dark{color:rgba(255,255,255,.76)}
.nstc-h1{font-family:var(--fH);font-size:clamp(44px,6.2vw,80px);font-weight:900;line-height:.96;letter-spacing:-.5px;color:var(--nv);margin:0 0 20px}
.nstc-h2{font-family:var(--fH);font-size:clamp(30px,3.9vw,52px);font-weight:800;line-height:1.02;letter-spacing:-.3px;color:var(--nv);margin:0 0 16px}
.nstc-h3{font-family:var(--fH);font-size:clamp(21px,2.4vw,30px);font-weight:700;line-height:1.06;color:var(--nv);margin:0 0 8px}
.nstc-h1 b,.nstc-h2 b{font-weight:inherit;color:var(--sk)}
.nstc-h2 b{color:var(--ry)}
.nstc-lead{font-size:17px;font-weight:300;color:var(--md);line-height:1.78;max-width:60ch;margin:0}
.nstc-body{font-size:15px;color:var(--md);line-height:1.8;max-width:66ch;margin:0 0 14px}
.nstc-body:last-child{margin-bottom:0}
.on-dark .nstc-h1,.on-dark .nstc-h2,.on-dark .nstc-h3{color:#fff}
.on-dark .nstc-lead,.on-dark .nstc-body{color:rgba(255,255,255,.78)}
.nstc-mono{font-family:var(--fM);font-size:12px;letter-spacing:2.5px;text-transform:uppercase;color:var(--ft)}


/* --- hero --- */
.nstc-hero{position:relative;background:var(--nv);overflow:hidden;padding:104px 0 88px}
.nstc-hero::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(63,169,238,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(63,169,238,.045) 1px,transparent 1px);background-size:64px 64px;pointer-events:none}
.nstc-hero::after{content:'';position:absolute;right:-8%;top:-20%;width:60%;height:140%;background:radial-gradient(ellipse at center,rgba(0,90,147,.42),transparent 66%);pointer-events:none}
.nstc-hero>*{position:relative;z-index:2}
.nstc-hgrid{display:grid;grid-template-columns:1.08fr .92fr;gap:64px;align-items:center}
.nstc-tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.nstc-tag{font-family:var(--fM);font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:6px 14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.22);color:rgba(255,255,255,.86)}
.nstc-hbar{display:flex;flex-wrap:wrap;border:1px solid rgba(255,255,255,.14);width:fit-content;margin-top:26px}
.nstc-hbar div{padding:11px 18px;border-right:1px solid rgba(255,255,255,.12);font-family:var(--fM);font-size:12px;letter-spacing:.8px;color:rgba(159,196,222,.85)}
.nstc-hbar div:last-child{border-right:none}
.nstc-hframe{position:relative;border:1px solid rgba(63,169,238,.32)}
.nstc-hframe .nstc-ph{min-height:430px}
.nstc-hstats{position:absolute;left:0;right:0;bottom:0;z-index:3;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:22px 20px;background:linear-gradient(to top,rgba(1,29,66,.97),rgba(1,29,66,.72) 62%,transparent)}
.nstc-hstats b{display:block;font-family:var(--fH);font-size:30px;font-weight:900;color:var(--sk);line-height:1}
.nstc-hstats span{display:block;font-family:var(--fM);font-size:12px;color:rgba(159,196,222,.78);letter-spacing:1.4px;text-transform:uppercase;margin-top:4px}

/* --- stat strip --- */
.nstc-strip{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--bd);border-bottom:3px solid var(--ry);background:#fff}
.nstc-strip div{padding:38px 22px;text-align:center;border-right:1px solid var(--bd);transition:background .3s}
.nstc-strip div:last-child{border-right:none}
.nstc-strip div:hover{background:var(--fr)}
.nstc-strip b{display:block;font-family:var(--fH);font-size:clamp(38px,4.4vw,56px);font-weight:900;color:var(--ry);line-height:1}
.nstc-strip span{display:block;font-family:var(--fM);font-size:12px;color:var(--ft);letter-spacing:2px;text-transform:uppercase;margin-top:8px}

/* --- service cards --- */
.nstc-svc{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:22px}
.nstc-card{background:#fff;border:1px solid var(--bd);border-top:4px solid var(--sk);box-shadow:0 2px 12px var(--sh);transition:transform .4s var(--ez),box-shadow .4s,border-top-color .3s;display:flex;flex-direction:column}
.nstc-card:hover{transform:translateY(-8px);box-shadow:0 20px 48px var(--sh2);border-top-color:var(--ry)}
.nstc-card.lead-card{border-top-color:var(--ry)}
.nstc-card .nstc-ph{min-height:200px}
.nstc-card-b{padding:26px;position:relative;flex:1}
.nstc-card-n{position:absolute;top:-46px;right:16px;font-family:var(--fH);font-size:58px;font-weight:900;color:rgba(255,255,255,.28);line-height:1}
.nstc-card-t{font-family:var(--fM);font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--ry);margin-bottom:8px}
.nstc-card h3{font-family:var(--fH);font-size:23px;font-weight:700;color:var(--nv);margin:0 0 8px;line-height:1.08}
.nstc-card p{font-size:14px;color:var(--md);line-height:1.7;margin:0}
.nstc-card a.nstc-more{display:inline-flex;gap:7px;font-family:var(--fH);font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--ry);margin-top:16px;text-decoration:none;transition:gap .3s var(--ez)}
.nstc-card:hover a.nstc-more{gap:14px}

/* --- trust cards --- */
.nstc-trust{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.nstc-tc{background:#fff;border:1px solid var(--bd);border-left:3px solid var(--ry);padding:24px;box-shadow:0 2px 8px var(--sh);transition:transform .35s var(--ez),box-shadow .35s}
.nstc-tc:hover{transform:translateY(-4px);box-shadow:0 12px 34px var(--sh2)}
.nstc-tc h4,.nstc-tc h3.h4{font-family:var(--fH);font-size:19px;font-weight:700;color:var(--nv);margin:0 0 6px;line-height:1.12}
.nstc-tc p{font-size:14px;color:var(--md);line-height:1.7;margin:0}

/* --- bands --- */
.nstc-sky{background:var(--sk);position:relative;overflow:hidden}
.nstc-sky::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(0,124,196,.18),transparent 62%);pointer-events:none}
.nstc-sky>*{position:relative;z-index:1}
.nstc-sky .nstc-h2,.nstc-sky .nstc-h3{color:#fff}
.nstc-sky .nstc-body,.nstc-sky .nstc-lead{color:rgba(255,255,255,.92)}
.nstc-sky .nstc-eye{color:rgba(255,255,255,.82)}
.nstc-ctaband{position:relative;background:var(--nv);overflow:hidden}
.nstc-ctaband::before{content:'';position:absolute;inset:0;background:linear-gradient(110deg,rgba(1,29,66,.98) 48%,rgba(10,69,146,.72) 100%)}
.nstc-ctaband>*{position:relative;z-index:2}
.nstc-ctain{display:flex;justify-content:space-between;align-items:center;gap:44px;padding:78px 0}
.nstc-ctain h2{font-family:var(--fH);font-size:clamp(30px,4.2vw,54px);font-weight:800;color:#fff;line-height:1;margin:0 0 10px}
.nstc-ctain p{font-size:16px;color:rgba(255,255,255,.78);max-width:52ch;line-height:1.75;margin:0}
.nstc-ctacts{display:flex;flex-direction:column;gap:12px;flex-shrink:0}

/* --- pills --- */
.nstc-pills{display:flex;flex-wrap:wrap;gap:8px}
.nstc-pill{font-family:var(--fH);font-size:12px;font-weight:600;letter-spacing:1px;text-transform:uppercase;padding:8px 16px;border:1.5px solid var(--bd2);color:var(--ry);background:#fff;transition:background .28s,color .28s,border-color .28s}
.nstc-pill:hover{background:var(--ry);color:#fff;border-color:var(--ry)}

/* --- responsive --- */
@media(max-width:1024px){.nstc-svc{grid-template-columns:1fr 1fr}}
@media(max-width:900px){
 .nstc-hgrid,.nstc-trust,.nstc-svc{grid-template-columns:1fr;gap:34px}
 .nstc-strip{grid-template-columns:1fr 1fr}
 .nstc-strip div{border-bottom:1px solid var(--bd)}
 .nstc-strip div:nth-child(2n){border-right:none}
 .nstc-ctain{flex-direction:column;align-items:flex-start;gap:28px;padding:60px 0}
 .nstc-ctacts{flex-direction:row;flex-wrap:wrap}
 .nstc-hero{padding:72px 0 64px}
 .nstc-hbar{width:100%}
 .nstc-hbar div{flex:1 1 50%;border-bottom:1px solid rgba(255,255,255,.12)}
}
@media(max-width:560px){.nstc-strip{grid-template-columns:1fr}.nstc-strip div{border-right:none}}

@media(prefers-reduced-motion:reduce){
 .nstc *,.nstc *::before,.nstc *::after{transition:none!important;animation:none!important}
 .nstc-card:hover,.nstc-tc:hover,.nstc-btn:hover{transform:none}
}
/* ===== HEADER (template 43) ===== */
.elementor-43{background:#fff;border-bottom:1px solid var(--bd);font-family:var(--fB)}
.elementor-43 .elementor-nav-menu .elementor-item{font-family:var(--fH);font-size:14px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--md);padding:8px 14px;position:relative;fill:var(--md)}
.elementor-43 .elementor-nav-menu .elementor-item:hover,.elementor-43 .elementor-nav-menu .elementor-item.elementor-item-active{color:var(--ry)}
.elementor-43 .elementor-nav-menu .elementor-item::after{content:'';position:absolute;left:14px;right:14px;bottom:0;height:3px;background:var(--ry);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ez)}
.elementor-43 .elementor-nav-menu .elementor-item:hover::after,.elementor-43 .elementor-nav-menu .elementor-item.elementor-item-active::after{transform:scaleX(1)}
.elementor-43 .elementor-icon-list-text,.elementor-43 .elementor-icon-list-item a{font-family:var(--fM);font-size:12px;letter-spacing:.4px;color:var(--md)}
.elementor-43 .elementor-icon-list-item a:hover{color:var(--ry)}
.elementor-43 .elementor-icon i,.elementor-43 .elementor-icon svg{color:var(--ry);fill:var(--ry)}
.elementor-43 .elementor-icon:hover i,.elementor-43 .elementor-icon:hover svg{color:var(--nv);fill:var(--nv)}

/* ===== FOOTER (template 45) ===== */
.elementor-45{background:var(--nv);border-top:4px solid var(--ry);font-family:var(--fB)}
.elementor-45 .elementor-heading-title{font-family:var(--fM);font-size:12px;font-weight:500;letter-spacing:3px;text-transform:uppercase;color:var(--sk);margin-bottom:14px}
.elementor-45 p{font-size:13px;line-height:1.8;color:var(--pl)}
.elementor-45 p strong{color:#fff}
.elementor-45 .elementor-icon-list-item a,.elementor-45 .elementor-icon-list-text{font-size:13px;color:var(--pl);transition:color .25s,padding-left .25s}
.elementor-45 .elementor-icon-list-item a:hover{color:#fff;padding-left:5px}
.elementor-45 .elementor-icon-list-icon i,.elementor-45 .elementor-icon-list-icon svg{color:var(--sk);fill:var(--sk);font-size:12px}
.elementor-45 a{color:var(--pl)}
.elementor-45 a:hover{color:#fff}
.elementor-45 img{max-width:190px}
/* hero headline: two lines, fits first viewport */
.nstc-hero .nstc-h1{font-size:clamp(40px,5.2vw,66px);max-width:14ch}
@media(max-width:900px){.nstc-hero .nstc-h1{max-width:none}}

@media(max-width:900px){.nstc .nstc-split{grid-template-columns:1fr!important;gap:32px!important}}

/* ===== INNER PAGE HERO ===== */
.nstc-pghero{position:relative;background:var(--nv);overflow:hidden;padding:84px 0 76px}
.nstc-pghero::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(63,169,238,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(63,169,238,.045) 1px,transparent 1px);background-size:64px 64px}
.nstc-pghero::after{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--ry),var(--sk) 50%,transparent)}
.nstc-pghero>*{position:relative;z-index:2}
.nstc-crumb{font-family:var(--fM);font-size:12px;letter-spacing:2.5px;text-transform:uppercase;color:rgba(159,196,222,.75);margin-bottom:16px}
.nstc-crumb a{color:rgba(159,196,222,.75);text-decoration:none}
.nstc-crumb a:hover{color:#fff}
.nstc-pghero .nstc-h1{color:#fff;max-width:20ch;font-size:clamp(38px,5vw,62px)}

/* ===== FACT TABLE ===== */
.nstc-facts{border:1px solid var(--bd);background:#fff}
.nstc-facts .fr{display:grid;grid-template-columns:170px 1fr;border-bottom:1px solid var(--bd)}
.nstc-facts .fr:last-child{border-bottom:none}
.nstc-facts .fk{padding:13px 18px;background:var(--ow);font-family:var(--fM);font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--ry);font-weight:700}
.nstc-facts .fv{padding:13px 18px;font-size:14px;color:var(--ink)}

/* ===== GRADE TABLE ===== */
.nstc-tblwrap{border:1px solid var(--bd);box-shadow:0 2px 12px var(--sh);overflow-x:auto}
.nstc-tbl{width:100%;border-collapse:collapse;min-width:520px}
.nstc-tbl th{background:var(--ry);font-family:var(--fM);font-size:12px;letter-spacing:2px;text-transform:uppercase;color:#fff;padding:13px 16px;text-align:left;font-weight:500}
.nstc-tbl td{padding:12px 16px;font-size:14px;color:var(--ink);border-bottom:1px solid var(--bd);vertical-align:top}
.nstc-tbl tr:nth-child(even) td{background:var(--ow)}
.nstc-tbl tbody tr:hover td{background:var(--fr)}
.nstc-tbl td:first-child{font-weight:600;color:var(--nv);white-space:nowrap}

/* ===== CHECKLIST ===== */
.nstc-check{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.nstc-check li{position:relative;padding:12px 16px 12px 42px;background:#fff;border:1px solid var(--bd);border-left:3px solid var(--ry);font-size:14px;color:var(--md);line-height:1.65}
.nstc-check li::before{content:'';position:absolute;left:17px;top:18px;width:9px;height:9px;background:var(--sk)}
.nstc-check li b{color:var(--nv);font-weight:600}

/* ===== SCOPE CARDS ===== */
.nstc-scopes{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.nstc-scope{background:var(--ow);border:1px solid var(--bd);border-top:3px solid var(--sk);padding:24px;transition:transform .35s var(--ez),box-shadow .35s}
.nstc-scope:hover{transform:translateY(-4px);box-shadow:0 14px 36px var(--sh2);border-top-color:var(--ry)}
.nstc-scope h4,.nstc-scope h3.h4{font-family:var(--fH);font-size:19px;font-weight:700;color:var(--nv);margin:0 0 7px;line-height:1.12}
.nstc-scope p{font-size:14px;color:var(--md);line-height:1.7;margin:0}

/* ===== STEPS ===== */
.nstc-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;position:relative}
.nstc-step{text-align:center;padding:0 8px}
.nstc-stepn{width:66px;height:66px;border-radius:50%;border:2px solid var(--ry);background:#fff;display:flex;align-items:center;justify-content:center;margin:0 auto 15px;font-family:var(--fH);font-size:26px;font-weight:800;color:var(--ry);box-shadow:0 4px 16px var(--sh);transition:background .35s,color .35s,transform .35s var(--ez)}
.nstc-step:hover .nstc-stepn{background:var(--ry);color:#fff;transform:scale(1.1)}
.nstc-step h4,.nstc-step h3.h4{font-family:var(--fH);font-size:17px;font-weight:700;color:var(--nv);margin:0 0 6px}
.nstc-step p{font-size:13px;color:var(--md);line-height:1.6;margin:0}

/* ===== FAQ (native details, no JS) ===== */
.nstc-faq{border:1px solid var(--bd);background:#fff}
.nstc-faq details{border-bottom:1px solid var(--bd)}
.nstc-faq details:last-child{border-bottom:none}
.nstc-faq summary{cursor:pointer;list-style:none;padding:18px 52px 18px 22px;font-family:var(--fH);font-size:19px;font-weight:700;color:var(--nv);position:relative;transition:background .25s,color .25s}
.nstc-faq summary::-webkit-details-marker{display:none}
.nstc-faq summary::after{content:'+';position:absolute;right:22px;top:50%;transform:translateY(-50%);font-family:var(--fH);font-size:26px;font-weight:400;color:var(--ry);line-height:1}
.nstc-faq details[open] summary{background:var(--ow);color:var(--ry)}
.nstc-faq details[open] summary::after{content:'2212'}
.nstc-faq summary:hover{background:var(--fr)}
.nstc-faq .fa{padding:0 22px 20px;font-size:14px;color:var(--md);line-height:1.8;max-width:74ch}

/* ===== RELATED / TRADE GRID ===== */
.nstc-tradegrid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--bd)}
.nstc-tradegrid a{background:#fff;padding:18px 20px;text-decoration:none;display:flex;flex-direction:column;gap:4px;transition:background .28s,transform .28s var(--ez);position:relative}
.nstc-tradegrid a:hover{background:var(--ry)}
.nstc-tradegrid a strong{font-family:var(--fH);font-size:18px;font-weight:700;color:var(--nv);letter-spacing:.2px;transition:color .28s}
.nstc-tradegrid a span{font-family:var(--fM);font-size:12px;letter-spacing:1.6px;text-transform:uppercase;color:var(--ft);transition:color .28s}
.nstc-tradegrid a:hover strong{color:#fff}
.nstc-tradegrid a:hover span{color:rgba(255,255,255,.8)}

/* ===== SIDEBAR REQUEST CARD ===== */
.nstc-ask{background:#fff;border:1px solid var(--bd);border-top:4px solid var(--ry);padding:26px;box-shadow:0 4px 20px var(--sh);position:sticky;top:100px}
.nstc-ask h4,.nstc-ask h3.h4{font-family:var(--fH);font-size:22px;font-weight:800;color:var(--nv);margin:0 0 8px;line-height:1.1}
.nstc-ask p{font-size:14px;color:var(--md);line-height:1.7;margin:0 0 16px}
.nstc-ask .num{font-family:var(--fH);font-size:25px;font-weight:800;color:var(--ry);margin-bottom:4px;display:block;text-decoration:none}
.nstc-ask .num:hover{color:var(--nv)}
.nstc-2col{display:grid;grid-template-columns:1fr 340px;gap:52px;align-items:start}

@media(max-width:1024px){.nstc-scopes{grid-template-columns:1fr 1fr}.nstc-tradegrid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){
 .nstc-2col{grid-template-columns:1fr;gap:36px}
 .nstc-ask{position:static}
 .nstc-scopes,.nstc-steps{grid-template-columns:1fr 1fr}
 .nstc-tradegrid{grid-template-columns:1fr 1fr}
 .nstc-facts .fr{grid-template-columns:1fr}
 .nstc-facts .fk{border-bottom:1px solid var(--bd)}
 .nstc-pghero{padding:60px 0 54px}
}
@media(max-width:560px){.nstc-scopes,.nstc-steps,.nstc-tradegrid{grid-template-columns:1fr}}
/* ===== HEADER SUBMENUS ===== */
.elementor-43 .elementor-nav-menu--dropdown,.elementor-43 .elementor-nav-menu ul{background:#fff;border:1px solid var(--bd);box-shadow:0 16px 40px var(--sh2);border-radius:0;min-width:236px;padding:6px 0}
.elementor-43 .elementor-nav-menu ul li a.elementor-sub-item{font-family:var(--fB);font-size:14px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--md);padding:9px 18px;border-left:3px solid transparent;transition:background .2s,color .2s,border-color .2s}
.elementor-43 .elementor-nav-menu ul li a.elementor-sub-item:hover,.elementor-43 .elementor-nav-menu ul li a.elementor-sub-item.elementor-item-active{background:var(--ow);color:var(--ry);border-left-color:var(--ry)}
.elementor-43 .elementor-nav-menu ul li a.elementor-sub-item::after{display:none}
.elementor-43 .elementor-nav-menu--dropdown a.elementor-item{font-family:var(--fH);font-size:15px;letter-spacing:1px;text-transform:uppercase}
.elementor-43 .elementor-menu-toggle{color:var(--ry);border-radius:0}
.elementor-kit-2 e-page-transition{background-color:#0F1B26}

/* ===== NUMBERED SERVICE ROWS (contracting) ===== */
.nstc-fsvc{display:grid;grid-template-columns:220px 1fr;border-bottom:1px solid var(--bd)}
.nstc-fsvc:last-child{border-bottom:none}
.nstc-fsvc-side{background:var(--ow);padding:44px 30px;border-right:1px solid var(--bd);display:flex;flex-direction:column;gap:12px;transition:background .3s}
.nstc-fsvc:hover .nstc-fsvc-side{background:var(--fr)}
.nstc-fsvc-n{font-family:var(--fH);font-size:88px;font-weight:900;color:var(--pl);line-height:.9}
.nstc-fsvc-tag{font-family:var(--fM);font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--ry)}
.nstc-fsvc-note{font-size:12px;color:var(--ft);margin-top:auto;padding-top:18px;border-top:1px solid var(--bd);line-height:1.6}
.nstc-fsvc-body{padding:44px 48px}
.nstc-fsvc-body h3{font-family:var(--fH);font-size:clamp(26px,3vw,38px);font-weight:800;color:var(--nv);margin:0 0 14px;line-height:1.03}
.nstc-fsvc-body .nstc-ph{margin-bottom:22px;min-height:200px}
.nstc-specs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}
.nstc-spec{background:var(--ow);border:1px solid var(--bd);padding:16px;transition:background .3s,border-color .3s,transform .3s var(--ez)}
.nstc-spec:hover{background:var(--fr);border-color:var(--pl);transform:translateY(-3px)}
.nstc-spec-t{font-family:var(--fM);font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--ry);margin-bottom:6px}
.nstc-spec-x{font-size:13px;color:var(--md);line-height:1.55}
.nstc-tags-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.nstc-tagchip{font-family:var(--fM);font-size:12px;letter-spacing:1px;text-transform:uppercase;padding:5px 12px;border:1px solid var(--bd2);color:var(--ry);background:var(--fr);transition:background .25s,color .25s}
.nstc-tagchip:hover{background:var(--ry);color:#fff}

/* ===== INDUSTRY CARDS ===== */
.nstc-inds{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.nstc-ind{background:#fff;border:1px solid var(--bd);overflow:hidden;box-shadow:0 2px 8px var(--sh);transition:transform .4s var(--ez),box-shadow .4s}
.nstc-ind:hover{transform:translateY(-6px);box-shadow:0 20px 48px var(--sh2)}
.nstc-ind .nstc-ph{min-height:190px}
.nstc-ind-b{padding:24px;border-top:3px solid var(--sk);transition:border-top-color .3s}
.nstc-ind:hover .nstc-ind-b{border-top-color:var(--ry)}
.nstc-ind-b h4,.nstc-ind-b h3.h4{font-family:var(--fH);font-size:23px;font-weight:700;color:var(--nv);margin:0 0 8px;line-height:1.1}
.nstc-ind-b p{font-size:14px;color:var(--md);line-height:1.7;margin:0}

@media(max-width:1024px){.nstc-inds{grid-template-columns:1fr 1fr}}
@media(max-width:900px){
 .nstc-fsvc{grid-template-columns:1fr}
 .nstc-fsvc-side{border-right:none;border-bottom:1px solid var(--bd);flex-direction:row;align-items:center;gap:18px;padding:22px 24px}
 .nstc-fsvc-n{font-size:52px}
 .nstc-fsvc-note{margin-top:0;padding-top:0;border-top:none}
 .nstc-fsvc-body{padding:28px 24px}
 .nstc-specs{grid-template-columns:1fr}
 .nstc-inds{grid-template-columns:1fr}
}
.elementor-43 .elementor-nav-menu li.menu-item-has-children>a.elementor-sub-item::after{content:'203A';display:inline-block;float:right;color:var(--ry);font-size:16px;line-height:1}
.elementor-43 .elementor-nav-menu--dropdown li.menu-item-has-children>a.elementor-sub-item::after{display:none}

/* ======== NSTC ENTERPRISE BLUE ======== */
.n{--bl:#007CC4;--bd:#005A93;--bx:#3FA9EE;--ch:#2B2B2B;--gr:#0F1B26;--g2:#16262F;
   --tx:#1D2B36;--st:#5B6B7A;--sf:#8598A8;--wa:#EDF2F6;--ln:#D8E2EA;--l2:#BECDDA;
   --fD:'Archivo','Helvetica Neue',sans-serif;--fB:'Inter','Helvetica Neue',sans-serif;
   --fM:'IBM Plex Mono',ui-monospace,monospace;--ez:cubic-bezier(.25,.46,.45,.94)}
.n,.n *,.n *::before,.n *::after{box-sizing:border-box}
.n{font-family:var(--fB);color:var(--tx);font-size:15px}
.n img{display:block;max-width:100%}
.n a{text-decoration:none}

.n-lab{font-family:var(--fM);font-size:12px;letter-spacing:2.6px;text-transform:uppercase;color:var(--bl);margin:0 0 12px}
.n-h1{font-family:var(--fD);font-size:clamp(31px,4.4vw,50px);font-weight:900;line-height:1.03;letter-spacing:-1.2px;color:var(--ch);margin:0 0 16px;max-width:17ch;text-wrap:balance}
.n-h2{font-family:var(--fD);font-size:clamp(25px,3.4vw,37px);font-weight:900;line-height:1.07;letter-spacing:-.8px;color:var(--ch);margin:0 0 12px;max-width:22ch;text-wrap:balance}
.n-h3{font-family:var(--fD);font-size:clamp(19px,2.2vw,25px);font-weight:800;line-height:1.12;letter-spacing:-.3px;color:var(--ch);margin:0 0 8px}
.n-h1 b,.n-h2 b{font-weight:inherit;color:var(--bl)}
.n-lede{font-size:16.5px;color:var(--st);line-height:1.72;max-width:52ch;margin:0 0 24px;font-weight:300}
.n-p{font-size:15px;color:var(--st);line-height:1.78;max-width:66ch;margin:0 0 14px}
.n-p:last-child{margin-bottom:0}
.n-mono{font-family:var(--fM);font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--sf)}


/* hero */
.n-hero{background:var(--gr);position:relative;overflow:hidden}
.n-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(880px 400px at 76% 6%,rgba(0,124,196,.34),transparent 66%),repeating-linear-gradient(118deg,rgba(255,255,255,.026) 0 2px,transparent 2px 10px)}
.n-hero>*{position:relative;z-index:2}
.n-hgrid{display:grid;grid-template-columns:1.1fr .9fr;gap:46px;align-items:center}
.n-hlab{font-family:var(--fM);font-size:12px;letter-spacing:2.4px;text-transform:uppercase;color:rgba(255,255,255,.74);display:flex;align-items:center;gap:10px;margin-bottom:18px}
.n-hlab::before{content:'';width:26px;height:2px;background:var(--bx);flex-shrink:0}
.n-hero .n-h1{color:#fff;max-width:16ch}
.n-hero .n-lede{color:#AFC6D6;max-width:49ch}
.n-hnote{font-family:var(--fM);font-size:12px;color:#89A6BC;display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.n-hnote b{color:#BBD4E4;font-weight:500}

.n-q{background:#fff;border-top:4px solid var(--bl);padding:26px 24px;box-shadow:0 26px 60px rgba(0,0,0,.4)}
.n-q h3{font-family:var(--fD);font-size:21px;font-weight:800;color:var(--ch);margin:0 0 5px;letter-spacing:-.3px}
.n-q>p{font-size:13px;color:var(--st);margin:0 0 18px;line-height:1.6}
.n-f{margin-bottom:12px}
.n-f label{display:block;font-family:var(--fM);font-size:12px;letter-spacing:1.6px;text-transform:uppercase;color:var(--bd);font-weight:600;margin-bottom:5px}
.n-f input,.n-f select,.n-f textarea{width:100%;border:1.5px solid var(--ln);background:var(--wa);padding:11px 13px;font-size:13.5px;font-family:var(--fB);color:var(--tx);border-radius:0;outline:none;transition:border-color .2s,background .2s}
.n-f input:focus,.n-f select:focus,.n-f textarea:focus{border-color:var(--bl);background:#fff}
.n-f textarea{min-height:104px;resize:vertical}
.n-f2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.n-sub{width:100%;background:var(--ch);color:#fff;font-family:var(--fD);font-weight:800;font-size:13px;letter-spacing:1.2px;text-transform:uppercase;padding:14px;text-align:center;border:none;cursor:pointer;transition:background .25s}
.n-sub:hover{background:var(--bd)}
.n-qf{font-family:var(--fM);font-size:12px;color:var(--sf);text-align:center;margin:10px 0 0}

/* page hero */
.n-ph{background:var(--gr);position:relative;overflow:hidden}
.n-ph::before{content:'';position:absolute;inset:0;background:radial-gradient(760px 340px at 82% 10%,rgba(0,124,196,.3),transparent 68%)}
.n-ph::after{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--bl),var(--bx) 52%,transparent)}
.n-ph>*{position:relative;z-index:2}
.n-crumb{font-family:var(--fM);font-size:12px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.7);margin-bottom:14px}
.n-crumb a{color:rgba(255,255,255,.7)}
.n-crumb a:hover{color:#fff}
.n-ph .n-h1{color:#fff;max-width:19ch}
.n-ph .n-lede{color:#AFC6D6;max-width:56ch}

/* credentials */
.n-creds{display:grid;grid-template-columns:repeat(4,1fr)}
.n-cred{padding:22px 20px;border-right:1px solid rgba(255,255,255,.1);display:flex;gap:13px;align-items:flex-start}
.n-cred:last-child{border-right:none}
.n-cred i{width:22px;height:22px;flex-shrink:0;border:1.5px solid var(--bx);display:grid;place-items:center;color:var(--bx);font-size:12px;font-weight:700;font-style:normal;margin-top:2px}
.n-cred b{display:block;font-family:var(--fD);font-size:14.5px;font-weight:700;color:#fff;line-height:1.25;margin-bottom:3px}
.n-cred span{display:block;font-size:12.5px;color:#9FAEB9;line-height:1.55}

/* stats */
.n-stats{display:grid;grid-template-columns:repeat(5,1fr)}
.n-stat{padding:28px 16px;border-right:1px solid var(--ln);text-align:center}
.n-stat:last-child{border-right:none}
.n-stat b{display:block;font-family:var(--fD);font-size:clamp(28px,3.4vw,36px);font-weight:900;color:var(--bd);line-height:1;letter-spacing:-1.2px}
.n-stat span{display:block;font-family:var(--fM);font-size:12px;letter-spacing:1.6px;text-transform:uppercase;color:var(--sf);margin-top:8px;line-height:1.5}

/* section head */
.n-head{display:grid;grid-template-columns:1.1fr 1fr;gap:38px;align-items:end;margin-bottom:34px}

/* grid tables */
.n-grid{display:grid;gap:1px;background:var(--ln)}
.n-g4{grid-template-columns:repeat(4,1fr)}
.n-g3{grid-template-columns:repeat(3,1fr)}
.n-g2{grid-template-columns:repeat(2,1fr)}
.n-cell{background:#fff;padding:28px 24px;display:flex;flex-direction:column;gap:9px}
.n-cell.feat{background:var(--bd)}
.n-cell .n-num{font-family:var(--fM);font-size:12px;letter-spacing:1.8px;color:var(--bl)}
.n-cell.feat .n-num{color:#9FD2F2}
.n-cell h4,.n-cell h3.h4{font-family:var(--fD);font-size:20px;font-weight:800;color:var(--ch);margin:0;line-height:1.14;letter-spacing:-.2px}
.n-cell.feat h4,.n-cell.feat h3.h4{color:#fff}
.n-cell p{font-size:13.5px;color:var(--st);line-height:1.7;margin:0;flex:1}
.n-cell.feat p{color:#C2DAEA}
.n-cell .n-more{font-family:var(--fD);font-size:12px;font-weight:800;letter-spacing:.9px;text-transform:uppercase;color:var(--bl);margin-top:4px}
.n-cell.feat .n-more{color:#fff}

/* trade rows */
.n-trade{background:#fff;padding:17px 18px;display:flex;justify-content:space-between;align-items:center;gap:10px;transition:background .22s}
.n-trade:hover{background:var(--wa)}
.n-trade strong{display:block;font-family:var(--fD);font-size:16px;font-weight:700;color:var(--ch)}
.n-trade em{font-family:var(--fM);font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:var(--sf);font-style:normal}
.n-trade i{color:var(--bl);font-style:normal;font-weight:600;flex-shrink:0}

/* process on dark */
.n-proc{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.n-step{border-top:3px solid var(--bx);padding-top:18px}
.n-step b{font-family:var(--fM);font-size:12px;letter-spacing:2px;color:var(--bx);display:block;margin-bottom:8px}
.n-step h4,.n-step h3.h4{font-family:var(--fD);font-size:19px;font-weight:800;color:#fff;margin:0 0 7px;letter-spacing:-.2px;line-height:1.16}
.n-step p{font-size:13.5px;color:#A9BFCE;line-height:1.7;margin:0}

/* why cards */
.n-why{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.n-wc{background:#fff;border:1px solid var(--ln);padding:26px;display:flex;gap:16px}
.n-wc b.num{font-family:var(--fD);font-size:15px;font-weight:900;color:#fff;background:var(--bd);width:34px;height:34px;display:grid;place-items:center;flex-shrink:0}
.n-wc h4,.n-wc h3.h4{font-family:var(--fD);font-size:19px;font-weight:800;color:var(--ch);margin:0 0 6px;letter-spacing:-.2px;line-height:1.16}
.n-wc p{font-size:14px;color:var(--st);line-height:1.72;margin:0}

/* industry tiles */
.n-inds{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.n-ind{background:#fff;border:1px solid var(--ln);border-bottom:3px solid var(--bl);padding:20px}
.n-ind strong{display:block;font-family:var(--fD);font-size:17px;font-weight:800;color:var(--ch);letter-spacing:-.2px;margin-bottom:4px}
.n-ind span{font-size:12.5px;color:var(--st);line-height:1.55}

/* 2 col with sidebar */
.n-2col{display:grid;grid-template-columns:1fr 330px;gap:50px;align-items:start}
.n-ask{background:#fff;border:1px solid var(--ln);border-top:4px solid var(--bl);padding:26px;position:sticky;top:96px}
.n-ask h4,.n-ask h3.h4{font-family:var(--fD);font-size:21px;font-weight:800;color:var(--ch);margin:0 0 8px;line-height:1.14}
.n-ask p{font-size:13.5px;color:var(--st);line-height:1.7;margin:0 0 14px}
.n-ask .num{display:block;font-family:var(--fD);font-size:23px;font-weight:800;color:var(--bl)}
.n-ask .num:hover{color:var(--bd)}

/* fact table */
.n-facts{border:1px solid var(--ln);background:#fff}
.n-facts .r{display:grid;grid-template-columns:150px 1fr;border-bottom:1px solid var(--ln)}
.n-facts .r:last-child{border-bottom:none}
.n-facts .k{padding:12px 16px;background:var(--wa);font-family:var(--fM);font-size:12px;letter-spacing:1.6px;text-transform:uppercase;color:var(--bd);font-weight:600}
.n-facts .v{padding:12px 16px;font-size:13.5px;color:var(--tx)}

/* data table */
.n-tw{border:1px solid var(--ln);overflow-x:auto}
.n-tbl{width:100%;border-collapse:collapse;min-width:520px}
.n-tbl th{background:var(--bl);color:#fff;font-family:var(--fM);font-size:12px;letter-spacing:1.8px;text-transform:uppercase;padding:12px 16px;text-align:left;font-weight:500}
.n-tbl td{padding:12px 16px;font-size:14px;color:var(--tx);border-bottom:1px solid var(--ln);vertical-align:top}
.n-tbl tr:nth-child(even) td{background:var(--wa)}
.n-tbl td:first-child{font-weight:600;color:var(--bd);white-space:nowrap}

/* checklist */
.n-check{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.n-check li{position:relative;padding:12px 16px 12px 40px;background:#fff;border:1px solid var(--ln);border-left:3px solid var(--bl);font-size:14px;color:var(--st);line-height:1.68}
.n-check li::before{content:'';position:absolute;left:16px;top:18px;width:8px;height:8px;background:var(--bl)}
.n-check li b{color:var(--ch);font-weight:600}

/* scope tiles */
.n-scopes{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.n-scope{background:var(--wa);border:1px solid var(--ln);border-top:3px solid var(--bl);padding:22px}
.n-scope h4,.n-scope h3.h4{font-family:var(--fD);font-size:18px;font-weight:800;color:var(--ch);margin:0 0 7px;line-height:1.16}
.n-scope p{font-size:13.5px;color:var(--st);line-height:1.7;margin:0}

/* faq */
.n-faq{border:1px solid var(--ln);background:#fff}
.n-faq details{border-bottom:1px solid var(--ln)}
.n-faq details:last-child{border-bottom:none}
.n-faq summary{cursor:pointer;list-style:none;padding:18px 52px 18px 22px;font-family:var(--fD);font-size:17px;font-weight:700;color:var(--ch);position:relative;transition:background .2s,color .2s}
.n-faq summary::-webkit-details-marker{display:none}
.n-faq summary::after{content:'+';position:absolute;right:22px;top:50%;transform:translateY(-50%);font-family:var(--fD);font-size:24px;font-weight:400;color:var(--bl);line-height:1}
.n-faq details[open] summary{background:var(--wa);color:var(--bd)}
.n-faq details[open] summary::after{content:'2212'}
.n-faq summary:hover{background:var(--wa)}
.n-faq .a{padding:0 22px 20px;font-size:14px;color:var(--st);line-height:1.78;max-width:74ch}

/* numbered service rows */
.n-fs{display:grid;grid-template-columns:200px 1fr;border-bottom:1px solid var(--ln)}
.n-fs:last-child{border-bottom:none}
.n-fs-s{background:var(--wa);padding:40px 28px;border-right:1px solid var(--ln)}
.n-fs-n{font-family:var(--fD);font-size:74px;font-weight:900;color:var(--l2);line-height:.9;letter-spacing:-3px}
.n-fs-t{font-family:var(--fM);font-size:12px;letter-spacing:2.4px;text-transform:uppercase;color:var(--bl);margin-top:10px}
.n-fs-b{padding:40px 44px}
.n-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.n-chip{font-family:var(--fM);font-size:12px;letter-spacing:1px;text-transform:uppercase;padding:5px 12px;border:1px solid var(--l2);color:var(--bd);background:var(--wa)}
.n-specs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}
.n-spec{background:var(--wa);border:1px solid var(--ln);padding:16px}
.n-spec b{display:block;font-family:var(--fM);font-size:12px;letter-spacing:1.8px;text-transform:uppercase;color:var(--bl);margin-bottom:6px;font-weight:500}
.n-spec span{font-size:13px;color:var(--st);line-height:1.55}

/* logo wall */
.n-logos{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--ln);border:1px solid var(--ln)}
.n-logo{background:#fff;height:76px;display:grid;place-items:center;font-family:var(--fM);font-size:12px;letter-spacing:1.4px;text-transform:uppercase;color:#B7C6D2;text-align:center;padding:8px}

/* docs list */

/* cta band */
.n-cta{background:var(--bd);position:relative;overflow:hidden}
.n-cta::before{content:'';position:absolute;inset:0;background:radial-gradient(720px 300px at 86% 50%,rgba(63,169,238,.3),transparent 70%)}
.n-cta>*{position:relative;z-index:2}
.n-ctain{display:flex;justify-content:space-between;align-items:center;gap:34px}
.n-ctain h2{font-family:var(--fD);font-size:clamp(23px,3.1vw,33px);font-weight:900;color:#fff;margin:0 0 8px;letter-spacing:-.6px;line-height:1.1;max-width:22ch}
.n-ctain p{color:#C6DEEE;font-size:15px;margin:0;max-width:52ch;line-height:1.7}

/* dark section text */
.n-dark .n-h2,.n-dark .n-h3{color:#fff}
.n-dark .n-p,.n-dark .n-lede{color:#A9BFCE}
.n-dark .n-lab{color:var(--bx)}

@media(max-width:980px){
 .n-hgrid{grid-template-columns:1fr;gap:34px}
 .n-g4,.n-inds,.n-proc{grid-template-columns:1fr 1fr}
 .n-creds{grid-template-columns:1fr 1fr}
 .n-cred{border-bottom:1px solid rgba(255,255,255,.1)}
 .n-stats{grid-template-columns:1fr 1fr 1fr}
 .n-stat{border-bottom:1px solid var(--ln)}
 .n-logos{grid-template-columns:repeat(2,1fr)}
 .n-head{grid-template-columns:1fr;gap:16px}
 .n-2col{grid-template-columns:1fr;gap:34px}
 .n-ask{position:static}
 .n-scopes{grid-template-columns:1fr 1fr}
 .n-fs{grid-template-columns:1fr}
 .n-fs-s{border-right:none;border-bottom:1px solid var(--ln);display:flex;align-items:center;gap:18px;padding:20px 24px}
 .n-fs-n{font-size:44px}
 .n-fs-t{margin-top:0}
 .n-fs-b{padding:26px 24px}
 .n-specs{grid-template-columns:1fr}
 .n-ctain{flex-direction:column;align-items:flex-start;gap:22px}
 .n-facts .r{grid-template-columns:1fr}
 .n-facts .k{border-bottom:1px solid var(--ln)}
}
@media(max-width:560px){
 .n-g4,.n-g3,.n-g2,.n-inds,.n-why,.n-proc,.n-scopes,.n-creds{grid-template-columns:1fr}
 .n-stats{grid-template-columns:1fr 1fr}
 .n-f2{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
 .n *,.n *::before,.n *::after{transition:none!important;animation:none!important}
 .n-btn:hover{transform:none}
}

/* header / footer */
.elementor-43 .elementor-nav-menu .elementor-item{font-family:var(--fD,'Archivo',sans-serif);font-size:14.5px;font-weight:500;letter-spacing:0;text-transform:none;color:#1D2B36;padding:6px 0;border-bottom:2px solid transparent}
.elementor-43 .elementor-nav-menu .elementor-item:hover,.elementor-43 .elementor-nav-menu .elementor-item.elementor-item-active{color:#007CC4;border-bottom-color:#007CC4}
.elementor-43 .elementor-nav-menu .elementor-item::after{display:none}
.elementor-43 img{max-width:190px}
.elementor-43 .elementor-nav-menu ul{background:#fff;border:1px solid #D8E2EA;box-shadow:0 16px 40px rgba(15,27,38,.18);border-radius:0;min-width:238px;padding:6px 0}
.elementor-43 .elementor-nav-menu ul li a.elementor-sub-item{font-family:'Inter',sans-serif;font-size:14px;font-weight:400;letter-spacing:0;text-transform:none;color:#5B6B7A;padding:9px 18px;border-left:3px solid transparent;border-bottom:none}
.elementor-43 .elementor-nav-menu ul li a.elementor-sub-item:hover,.elementor-43 .elementor-nav-menu ul li a.elementor-sub-item.elementor-item-active{background:#EDF2F6;color:#007CC4;border-left-color:#007CC4}
.elementor-45{background:#0F1B26;border-top:none}
.elementor-45 .elementor-heading-title{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:500;letter-spacing:2.4px;text-transform:uppercase;color:#3FA9EE;margin-bottom:14px}
.elementor-45 p{font-size:13.5px;line-height:1.8;color:#9BB0C0}
.elementor-45 p strong{color:#fff}
.elementor-45 .elementor-icon-list-item a,.elementor-45 .elementor-icon-list-text{font-size:13.5px;color:#9BB0C0;transition:color .2s,padding-left .2s}
.elementor-45 .elementor-icon-list-item a:hover{color:#fff;padding-left:5px}
.elementor-45 .elementor-icon-list-icon i,.elementor-45 .elementor-icon-list-icon svg{color:#3FA9EE;fill:#3FA9EE;font-size:12px}
.elementor-45 a{color:#9BB0C0}
.elementor-45 a:hover{color:#fff}
.elementor-45 img{max-width:180px}
/* ==== COMPAT: retune the earlier .nstc-* component system to NSTC Enterprise Blue ==== */
.nstc{
  --nv:#0F1B26; --ry:#007CC4; --cb:#005A93; --sk:#3FA9EE; --pl:rgba(255,255,255,.74);
  --fr:#EDF2F6; --ow:#EDF2F6; --ink:#1D2B36; --md:#5B6B7A; --ft:#8598A8;
  --bd:#D8E2EA; --bd2:#BECDDA;
  --sh:rgba(15,27,38,.07); --sh2:rgba(15,27,38,.15);
  --fH:'Archivo','Helvetica Neue',sans-serif;
  --fB:'Inter','Helvetica Neue',sans-serif;
  --fM:'IBM Plex Mono',ui-monospace,monospace;
  font-family:var(--fB);
}
/* Archivo is far wider than Barlow Condensed: retune display sizes and tracking */
.nstc .nstc-h1{font-size:clamp(31px,4.3vw,50px);line-height:1.03;letter-spacing:-1.2px;max-width:17ch}
.nstc .nstc-h2{font-size:clamp(25px,3.3vw,37px);line-height:1.07;letter-spacing:-.8px;max-width:23ch}
.nstc .nstc-h3{font-size:clamp(19px,2.2vw,25px);line-height:1.13;letter-spacing:-.3px}
.nstc .nstc-hero .nstc-h1{font-size:clamp(31px,4.3vw,48px);max-width:16ch}
.nstc .nstc-pghero .nstc-h1{font-size:clamp(29px,3.9vw,45px);max-width:19ch}
.nstc .nstc-card h3,.nstc .nstc-scope h4,.nstc .nstc-tc h4,.nstc .nstc-step h4,.nstc .nstc-scope h3.h4,.nstc .nstc-tc h3.h4,.nstc .nstc-step h3.h4{letter-spacing:-.2px}
.nstc .nstc-card h3{font-size:19px}
.nstc .nstc-faq summary{font-size:17px;letter-spacing:-.2px}
.nstc .nstc-fsvc-n{font-size:74px;letter-spacing:-3px;color:var(--bd2)}
.nstc .nstc-strip b,.nstc .nstc-hstats b{letter-spacing:-1.2px}
.nstc .nstc-strip b{color:#005A93}
.nstc .nstc-eye{letter-spacing:2.6px}
.nstc .nstc-tag,.nstc .nstc-hbar div{font-family:var(--fM)}
/* flatten the old shadow-heavy look */
.nstc .nstc-card,.nstc .nstc-tc,.nstc .nstc-scope,.nstc .nstc-tblwrap,.nstc .nstc-faq,.nstc .nstc-ask{box-shadow:none}
.nstc .nstc-card:hover,.nstc .nstc-tc:hover,.nstc .nstc-scope:hover{box-shadow:none;transform:translateY(-3px)}
.nstc .nstc-card{border-top-color:var(--ry)}
.nstc .nstc-ask{box-shadow:none;border-top-width:4px}
/* the old sky band becomes the deep blue band */
.nstc.nstc-sky,.nstc .nstc-sky{background:#005A93}
.nstc.nstc-sky::before,.nstc .nstc-sky::before{background:radial-gradient(720px 320px at 82% 12%,rgba(63,169,238,.28),transparent 70%)}
.nstc.nstc-ctaband{background:#005A93}
.nstc.nstc-ctaband::before{background:radial-gradient(720px 300px at 86% 50%,rgba(63,169,238,.3),transparent 70%)}
/* placeholder blocks pick up the new ground */
.nstc .nstc-ph{background:linear-gradient(135deg,#0F1B26 0%,#005A93 58%,#007CC4 100%)}
/* ==== forms ==== */
.n-form{background:#fff;border:1px solid #D8E2EA;border-top:4px solid #007CC4;padding:30px 28px}
.n-form .n-f{margin-bottom:14px}
.n-form .n-f label{display:block;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:1.6px;text-transform:uppercase;color:#005A93;font-weight:600;margin-bottom:5px}
.n-form input,.n-form select,.n-form textarea{width:100%;border:1.5px solid #D8E2EA;background:#EDF2F6;padding:12px 14px;font-size:14px;font-family:'Inter',sans-serif;color:#1D2B36;border-radius:0;outline:none;transition:border-color .2s,background .2s}
.n-form input:focus,.n-form select:focus,.n-form textarea:focus{border-color:#007CC4;background:#fff}
.n-form textarea{min-height:118px;resize:vertical}
.n-form .n-f2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.n-form .n-sub{width:100%;background:#007CC4;color:#fff;font-family:'Archivo',sans-serif;font-weight:800;font-size:13px;letter-spacing:1.2px;text-transform:uppercase;padding:16px;border:none;cursor:pointer;margin-top:6px;transition:background .25s}
.n-form .n-sub:hover{background:#005A93}
.n-form .n-qf{font-family:'IBM Plex Mono',monospace;font-size:12px;color:#8598A8;text-align:center;margin:12px 0 0;letter-spacing:.3px}
.n-form .n-qf a{color:#007CC4}
.n-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.n-formerr{background:#FDECEC;border:1px solid #F3C3C3;border-left:3px solid #C0392B;color:#8E2B22;padding:12px 15px;font-size:14px;margin:0 0 18px}
@media(max-width:560px){.n-form .n-f2{grid-template-columns:1fr}.n-form{padding:24px 20px}}
.elementor-kit-2 e-page-transition{background-color:#0F1B26!important}

.elementor-45 img[src*='logo-nstc'],.elementor-45 img[data-src*='logo-nstc']{width:180px;height:auto;max-width:180px;display:block}

/* ==== HEADER v2: utility bar + single-row nav (matches approved mockup) ==== */
.elementor-43 .n-navbar{border-bottom:1px solid #D8E2EA}
/* stop the logo widget claiming the full row */
.elementor-43 .elementor-widget-image{width:auto!important;flex:0 0 auto!important;max-width:200px}
.elementor-43 .elementor-widget-image .elementor-widget-container{width:auto}
.elementor-43 .n-navgroup{flex:0 1 auto!important;width:auto!important}
.elementor-43 .elementor-widget-nav-menu{width:auto!important;flex:0 1 auto!important}
.elementor-43 .elementor-widget-button{width:auto!important;flex:0 0 auto!important}
.elementor-43 .elementor-nav-menu--main .elementor-nav-menu{gap:4px}
.elementor-43 .elementor-nav-menu--main .elementor-nav-menu>li>a{padding:6px 12px}
.elementor-43 .elementor-nav-menu .sub-arrow{margin-left:4px}
.elementor-43 .elementor-nav-menu .sub-arrow i{font-size:12px;color:#8598A8}
@media(max-width:1100px){
  .elementor-43 .elementor-nav-menu--main .elementor-nav-menu>li>a{padding:6px 8px;font-size:13.5px}
}
@media(max-width:1024px){
  .elementor-43 .n-navbar{flex-wrap:nowrap}
}
@media(max-width:767px){
  .elementor-43 .elementor-widget-image{max-width:150px}
}
/* ==== FOOTER v2 (matches approved mockup) ==== */
.n-foot{color:#9BB0C0;font-family:'Inter',sans-serif;font-size:13.5px}
.n-fgrid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr;gap:34px}
.n-flogo{width:180px;height:auto;display:block;margin-bottom:16px}
.n-foot p{margin:0 0 12px;line-height:1.8;max-width:34ch;color:#9BB0C0}
.n-foot p.n-faddr{color:#BBD4E4}
.n-foot h6{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:12px;font-weight:500;
  letter-spacing:2.4px;text-transform:uppercase;color:#3FA9EE;margin:0 0 14px}
.n-foot a{display:block;color:#9BB0C0;text-decoration:none;margin-bottom:8px;font-size:13.5px;
  transition:color .2s,padding-left .2s}
.n-foot a:hover{color:#fff;padding-left:5px}
.n-fbadges{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}
.n-fbadges span{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:12px;letter-spacing:1.2px;
  border:1px solid rgba(255,255,255,.18);color:#BBD4E4;padding:5px 10px}
.n-fbot{border-top:1px solid rgba(255,255,255,.1);margin-top:34px;padding-top:20px;
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:12px;color:#6C8396;
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.n-fbot a{display:inline;color:#6C8396;margin:0}
.n-fbot a:hover{color:#fff;padding-left:0}
@media(max-width:980px){.n-fgrid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.n-fgrid{grid-template-columns:1fr;gap:26px}}
.n-flogo{width:160px!important}

/* nav face: Inter */
body .elementor-43 .elementor-nav-menu .elementor-item{font-family:'Inter','Helvetica Neue',sans-serif}
.elementor-43 .elementor-nav-menu ul li a.elementor-sub-item{font-family:'Inter','Helvetica Neue',sans-serif}

/* logo: never lazy */
img[src*='logo-nstc'],img[data-src*='logo-nstc']{opacity:1!important;visibility:visible!important}

/* ===== HEADER v3 :: transparent fixed + button system ===== */
:root{--hdr-h:78px}

/* --- the header itself --- */
.elementor-43.elementor-location-header{position:fixed;top:0;left:0;right:0;z-index:999;background:transparent;border-bottom:1px solid transparent;transition:background .3s ease,border-color .3s ease,box-shadow .3s ease}
.elementor-43 .n-hdr{background:transparent}
.elementor-43.elementor-location-header::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,rgba(9,17,24,.58),rgba(9,17,24,0));transition:opacity .3s ease}
.elementor-43.n-solid::before{opacity:0}
.elementor-43 .n-navbar,.elementor-43 .n-navrow{border-bottom:none}

/* --- utility strip --- */

/* --- navigation --- */
body .elementor-43 .elementor-nav-menu .elementor-item{font-family:'Inter','Helvetica Neue',sans-serif;font-size:14px;font-weight:500;letter-spacing:.2px;text-transform:none;color:rgba(255,255,255,.80);fill:rgba(255,255,255,.80);padding:8px 13px;border-bottom:none;transition:color .2s ease}
body .elementor-43 .elementor-nav-menu .elementor-item:hover,body .elementor-43 .elementor-nav-menu .elementor-item.elementor-item-active,body .elementor-43 .elementor-nav-menu .elementor-item.highlighted{color:#3FA9EE;background:transparent;border-bottom:none}
.elementor-43 .elementor-nav-menu .elementor-item::after{display:none}
.elementor-43 .elementor-nav-menu .sub-arrow i,.elementor-43 .elementor-nav-menu .sub-arrow svg{color:rgba(255,255,255,.55);fill:rgba(255,255,255,.55)}
.elementor-43 .elementor-menu-toggle{color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:6px;padding:10px}
.elementor-43 .elementor-menu-toggle:hover,.elementor-43 .elementor-menu-toggle.elementor-active{color:#3FA9EE;background:rgba(63,169,238,.12)}
.elementor-43 .elementor-nav-menu--dropdown{background:#0F1B26;border:1px solid rgba(255,255,255,.10);box-shadow:0 20px 50px rgba(0,0,0,.5);border-radius:8px;overflow:hidden}
.elementor-43 .elementor-nav-menu--dropdown a.elementor-item,.elementor-43 .elementor-nav-menu--dropdown a.elementor-sub-item{color:rgba(255,255,255,.82);font-family:'Inter','Helvetica Neue',sans-serif;text-transform:none;letter-spacing:.2px;border-left:3px solid transparent;border-bottom:none}
.elementor-43 .elementor-nav-menu--dropdown a.elementor-item:hover,.elementor-43 .elementor-nav-menu--dropdown a.elementor-sub-item:hover{background:rgba(0,124,196,.16);color:#3FA9EE;border-left-color:#007CC4}

/* --- content offset for the fixed header --- */
body.nstc-hdr-solid [data-elementor-type="wp-page"],body.nstc-hdr-solid [data-elementor-type="single-post"]{padding-top:var(--hdr-h)}
body.nstc-hdr-clear [data-elementor-type="wp-page"]>.e-con:first-child{padding-top:calc(var(--hdr-h) + 56px)!important}
body.admin-bar .elementor-43.elementor-location-header{top:32px}
[id]{scroll-margin-top:calc(var(--hdr-h) + 16px)}


/* --- header widgets keep their natural width --- */
.elementor-43 .n-navgroup .elementor-widget-html{width:auto!important;flex:0 0 auto!important}
.elementor-43 .n-navgroup .elementor-widget-html{display:flex;gap:10px;align-items:center}

/* --- responsive --- */
@media(max-width:1100px){
  .elementor-43 .elementor-nav-menu--main .elementor-nav-menu>li>a{padding:6px 9px;font-size:13.5px}
}
@media(max-width:1024px){
  :root{--hdr-h:76px}
}
@media(max-width:767px){
  :root{--hdr-h:70px}
  body.nstc-hdr-clear [data-elementor-type="wp-page"]>.e-con:first-child{padding-top:calc(var(--hdr-h) + 28px)!important}
  .elementor-43 .n-navgroup .elementor-widget-html{display:none}
}
@media(max-width:782px){
  body.admin-bar .elementor-43.elementor-location-header{top:46px}
}

/* ===== MOBILE ACTION BAR ===== */
.n-mobbar{display:none}
@media(max-width:767px){
  .n-mobbar{display:grid;grid-template-columns:1fr 1fr 1.35fr;gap:1px;position:fixed;left:0;right:0;bottom:0;z-index:998;background:rgba(15,27,38,.98);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid rgba(0,124,196,.30);box-shadow:0 -6px 26px rgba(0,0,0,.35);padding-bottom:env(safe-area-inset-bottom)}
  .n-mb{display:flex;align-items:center;justify-content:center;padding:14px 8px;font-family:'Archivo',sans-serif;font-weight:800;font-size:12px;letter-spacing:.7px;text-transform:uppercase;color:#fff;text-decoration:none;background:rgba(255,255,255,.04);transition:background .2s ease}
  .n-mb:active{background:rgba(255,255,255,.12)}
  .n-mb-wa{background:#25D366;color:#fff}
  .n-mb-cta{background:#007CC4;color:#fff}
  .elementor-45,.elementor-location-footer{padding-bottom:56px}
}


/* ===== HEADER v3 :: dropdown panel ===== */
body .elementor-43 .elementor-nav-menu ul li a.elementor-sub-item{border-left:3px solid transparent;border-bottom:none;transition:background .2s ease,color .2s ease,border-color .2s ease}
body .elementor-43 .elementor-nav-menu ul li a.elementor-sub-item:hover,
body .elementor-43 .elementor-nav-menu ul li a.elementor-sub-item.elementor-item-active{border-left-color:#007CC4}
body .elementor-43 .elementor-nav-menu ul li a.elementor-sub-item::after{display:none}
body .elementor-43 .elementor-nav-menu li.menu-item-has-children>a.elementor-sub-item::after{content:'';display:inline-block;float:right;width:6px;height:6px;margin-top:6px;border-right:1.5px solid rgba(255,255,255,.45);border-bottom:1.5px solid rgba(255,255,255,.45);transform:rotate(-45deg)}
body .elementor-43 .elementor-menu-toggle{color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:6px;padding:10px}
body .elementor-43 .elementor-nav-menu--dropdown{margin-top:8px}

/* ===== HEADER v4 :: white scrolled band + logo swap ===== */
.elementor-43.n-solid{background:rgba(255,255,255,.96);-webkit-backdrop-filter:saturate(1.6) blur(14px);backdrop-filter:saturate(1.6) blur(14px);border-bottom-color:#D8E2EA;box-shadow:0 6px 28px rgba(15,27,38,.10)}

/* brand lockup: reversed mark over the hero, charcoal mark on the white band */
.elementor-43 .n-brandw{width:auto!important;flex:0 0 auto!important;max-width:none}
.elementor-43 .n-brandw .elementor-widget-container{width:auto}
.n-brand{display:block;line-height:0;text-decoration:none}
.n-brand img{width:165px!important;max-width:165px!important;height:auto}
.n-brand .n-logo-rev{display:block}
.n-brand .n-logo-dk{display:none}
.elementor-43.n-solid .n-brand .n-logo-rev{display:none}
.elementor-43.n-solid .n-brand .n-logo-dk{display:block}

/* nav and utility strip flip to ink on the white band */
body .elementor-43.n-solid .elementor-nav-menu .sub-arrow svg{fill:#8598A8}
body .elementor-43.n-solid div.elementor-menu-toggle{color:#1D2B36;background:#EDF2F6;border-color:#D8E2EA}
body .elementor-43.n-solid div.elementor-menu-toggle svg{fill:#1D2B36}

/* dropdown panels: light card, never clipped */
body .elementor-43 .elementor-nav-menu--main .elementor-nav-menu ul,body .elementor-43 .elementor-nav-menu--dropdown{background:#fff;border:1px solid #D8E2EA;box-shadow:0 18px 44px rgba(15,27,38,.18);border-radius:8px;min-width:240px;padding:6px 0;overflow:visible}
body .elementor-43 .elementor-nav-menu ul li a.elementor-sub-item{border-left:3px solid transparent;border-bottom:none;transition:background .2s ease,color .2s ease,border-color .2s ease}
body .elementor-43 .elementor-nav-menu ul li a.elementor-sub-item:hover,body .elementor-43 .elementor-nav-menu ul li a.elementor-sub-item.elementor-item-active{border-left-color:#007CC4}
body .elementor-43 .elementor-nav-menu li.menu-item-has-children>a.elementor-sub-item::after{display:none}
body .elementor-43 .elementor-nav-menu--main .elementor-nav-menu>li>ul{margin-top:6px}

/* mobile: the dropdown is a panel, not a full-bleed sheet */
@media(max-width:1024px){
  body .elementor-43 .elementor-nav-menu--dropdown{margin-top:10px;border-radius:8px}
}

/* ===== NAV v5 :: three levels ===== */
/* desktop: a dropdown item that opens a further level points right */
body .elementor-43 .elementor-nav-menu--main ul.sub-menu li.menu-item-has-children>a.elementor-sub-item{display:flex;align-items:center;justify-content:space-between;gap:12px}
body .elementor-43 .elementor-nav-menu--main ul.sub-menu li.menu-item-has-children>a.elementor-sub-item .sub-arrow{margin:0;line-height:0;transform:rotate(-90deg)}
body .elementor-43 .elementor-nav-menu--main ul.sub-menu li.menu-item-has-children>a.elementor-sub-item .sub-arrow svg{width:11px;height:11px}
body .elementor-43 .elementor-nav-menu--main ul.sub-menu ul.sub-menu{margin-top:-7px}

/* mobile: every level stacks and indents, nothing flies out */
@media(max-width:1024px){
  body .elementor-43 .elementor-nav-menu__container.elementor-nav-menu--dropdown{max-height:calc(100vh - var(--hdr-h) - 28px);overflow-y:auto}
  body .elementor-43 .elementor-nav-menu__container.elementor-nav-menu--dropdown ul.sub-menu{position:static!important;left:auto!important;top:auto!important;margin:0!important;padding:0;min-width:0;background:transparent;border:0;border-radius:0;box-shadow:none}
  body .elementor-43 .elementor-nav-menu__container.elementor-nav-menu--dropdown ul.sub-menu a.elementor-sub-item{padding-left:34px}
  body .elementor-43 .elementor-nav-menu__container.elementor-nav-menu--dropdown ul.sub-menu ul.sub-menu a.elementor-sub-item{padding-left:52px;font-size:13.5px}
  body .elementor-43 .elementor-nav-menu--main ul.sub-menu li.menu-item-has-children>a.elementor-sub-item .sub-arrow{transform:none}
}

/* ===== HEADER v6 :: solid-state nav, outranking the widget CSS ===== */
/* Elementor writes .elementor-43 .elementor-element.elementor-element-ID .elementor-nav-menu--main
   .elementor-item, which is five classes. Anything shorter loses and the menu goes white on white. */
body .elementor-43.n-solid .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item{color:#1D2B36;fill:#1D2B36}
body .elementor-43.n-solid .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:hover,body .elementor-43.n-solid .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:focus,body .elementor-43.n-solid .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.highlighted{color:#007CC4;fill:#007CC4}
body .elementor-43.n-solid .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.elementor-item-active{color:#007CC4;fill:#007CC4}
body .elementor-43.n-solid .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item .sub-arrow svg{fill:#8598A8}
body .elementor-43.n-solid .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:hover .sub-arrow svg{fill:#007CC4}

/* ===== HOME v7 :: ticker, safety, coverage, faq ===== */
.n-tickband{overflow:hidden}
.n-tickband>.e-con-inner,.n-tickband .elementor-widget-container{padding:0!important}
.n-tickwrap{position:relative;overflow:hidden;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08)}
.n-tick{display:flex;width:max-content;animation:n-tickmove 52s linear infinite}
.n-tick span{position:relative;white-space:nowrap;padding:0 30px;line-height:54px;font-family:'Archivo',sans-serif;font-size:12.5px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.66)}
.n-tick span::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:1px;height:13px;background:rgba(0,124,196,.65)}
.n-tickwrap::before,.n-tickwrap::after{content:'';position:absolute;top:0;bottom:0;width:96px;z-index:2;pointer-events:none}
.n-tickwrap::before{left:0;background:linear-gradient(90deg,#0F1B26,rgba(15,27,38,0))}
.n-tickwrap::after{right:0;background:linear-gradient(270deg,#0F1B26,rgba(15,27,38,0))}
@keyframes n-tickmove{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){
  .n-tick{animation:none;width:100%;flex-wrap:wrap;justify-content:center}
  .n-tick span:nth-child(n+19){display:none}
  .n-tick span{line-height:34px}
}

/* safety and coverage cells */
.n-safe .n-cell h4,.n-cov .n-cell h4,/* safety and coverage cells */
.n-safe .n-cell h3.h4,.n-cov .n-cell h3.h4{font-size:18px}
.n-cov .n-cell .n-num{font-size:12px;letter-spacing:1.4px;line-height:1.5;color:var(--st);text-transform:uppercase}
.n-cov .n-cell h4,.n-cov .n-cell h3.h4{font-size:24px}
.n-cov .n-cell .n-more{margin-top:10px}

/* faq band */
.n-faqband .n-faq{background:#fff}
@media(max-width:900px){
  .n-tick span{padding:0 20px;font-size:12px;line-height:46px}
}

/* ===== HOME v8 :: two service pillars ===== */
.n-pillars .n-cell{padding:34px 30px;gap:13px}
.n-pillars .n-cell h4,.n-pillars .n-cell h3.h4{font-size:26px;line-height:1.1}
.n-pillars .n-cell>p{font-size:14.5px;flex:0 0 auto}
.n-plist{list-style:none;margin:8px 0 0;padding:0;border-top:1px solid var(--ln);flex:1}
.n-pillars .n-cell.feat .n-plist{border-top-color:rgba(255,255,255,.16)}
.n-plist li{border-bottom:1px solid var(--ln)}
.n-pillars .n-cell.feat .n-plist li{border-bottom-color:rgba(255,255,255,.16)}
.n-plist a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;font-size:14px;font-weight:500;color:var(--st);text-decoration:none;transition:color .2s ease,padding-left .2s ease}
.n-plist a:hover{color:var(--bl);padding-left:6px}
.n-plist a span{color:var(--bl);font-size:13px}
.n-pillars .n-cell.feat .n-plist a{color:#C9E2F4}
.n-pillars .n-cell.feat .n-plist a:hover{color:#fff}
.n-pillars .n-cell.feat .n-plist a span{color:#7FC4EE}
.n-pillars .n-more{margin-top:18px}
.n-hnote a{color:#BBD4E4;text-decoration:underline;text-underline-offset:3px}
.n-hnote a:hover{color:#fff}
@media(max-width:860px){
  .n-pillars .n-cell{padding:26px 22px}
  .n-pillars .n-cell h4,.n-pillars .n-cell h3.h4{font-size:22px}
}

/* ===== CONTRACTING SCOPE LINKS ===== */
.nstc-scopelink{color:inherit;text-decoration:none;border-bottom:2px solid transparent;transition:color .2s ease,border-color .2s ease}
.nstc-scopelink:hover{color:#007CC4;border-bottom-color:#007CC4}

/* the fixed mobile action bar is outside the Elementor wrapper but still under the body class */
body a.n-mb,body a.n-mb:hover,body a.n-mb:focus{color:#fff}

/* ===== NATIVE WIDGET BANDS ===== */
/* Bands converted from one html widget into real containers and widgets.
   Layout now lives in the container settings, so it is editable in the panel;
   these rules only carry typography, rules and colour. */
.n-creds .n-cred{border-right:1px solid rgba(255,255,255,.1)}
.n-creds .n-cred:last-child{border-right:none}
.n-credmark{width:22px;height:22px;flex:0 0 22px;border:1.5px solid var(--bx);display:grid;place-items:center;color:var(--bx);font-size:12px;font-weight:700;line-height:1;margin-top:2px}
.n-credmark .elementor-widget-container{line-height:1}
.n-credmark p{margin:0;line-height:1}
.n-credt .elementor-heading-title{font-family:var(--fD);font-size:14.5px;font-weight:700;color:#fff;line-height:1.25}
.n-credd,.n-credd p{font-size:12.5px;color:#9FAEB9;line-height:1.55;margin:0}
.n-stats .n-stat{border-right:1px solid var(--ln);text-align:center}
.n-stats .n-stat:last-child{border-right:none}
.n-statn .elementor-heading-title{font-family:var(--fD);font-size:clamp(28px,3.4vw,36px);font-weight:900;color:var(--bd);line-height:1;letter-spacing:-1.2px}
.n-statl{margin-top:8px}
.n-statl,.n-statl p{font-family:var(--fM);font-size:12px;letter-spacing:1.6px;text-transform:uppercase;color:var(--sf);line-height:1.5;margin:0}
.n-tickitems .elementor-icon-list-items{display:flex;margin:0;padding:0;list-style:none}
.n-tickitems .elementor-icon-list-item{margin:0;padding:0}
.n-tickitems .elementor-icon-list-item:after{display:none}
.n-tickitems .elementor-icon-list-icon{display:none}
.n-tickitems .elementor-icon-list-text{display:block;position:relative;white-space:nowrap;padding:0 30px;line-height:54px;font-family:'Archivo',sans-serif;font-size:12.5px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.66)}
.n-tickitems .elementor-icon-list-text::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:1px;height:13px;background:rgba(0,124,196,.65)}
@media(max-width:1024px){
  .n-creds .n-cred{border-bottom:1px solid rgba(255,255,255,.1)}
  .n-stats .n-stat{border-bottom:1px solid var(--ln)}
}
@media(max-width:900px){
  .n-tickitems .elementor-icon-list-text{padding:0 20px;font-size:12px;line-height:46px}
}

/* ===== NATIVE CONVERSION :: home ===== */
/* Every band is now real containers and widgets. A classed wrapper carries the
   type; the widget's own tag inherits it, so the panel controls still win. */
.n-h1 .elementor-heading-title,.n-h2 .elementor-heading-title,.n-ctah .elementor-heading-title,.n-qh .elementor-heading-title,.n-credt .elementor-heading-title,.n-statn .elementor-heading-title,.n-tradet .elementor-heading-title,.n-dlk .elementor-heading-title,.n-indh .elementor-heading-title{font:inherit;color:inherit;letter-spacing:inherit;line-height:inherit;text-transform:inherit}
.n .elementor-widget-text-editor p{margin:0}
.n .elementor-widget-text-editor p+p{margin-top:13px}
.n-lab p,.n-p p,.n-lede p,.n-hnote p,.n-num p{margin:0}


/* trade tiles */
.n-trade .n-tradet{font-family:var(--fD);font-size:16px;font-weight:800;color:var(--ch);letter-spacing:-.2px}
.n-trade .n-tradet a{color:inherit}
.n-trade:hover .n-tradet{color:var(--bl)}
.n-trade .n-traded,.n-trade .n-traded p{font-family:var(--fM);font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--sf);margin:0}
.n-allink{margin-top:22px}

/* mobilisation steps */
.n-step .n-stepk,.n-step .n-stepk p{font-family:var(--fM);font-size:12px;letter-spacing:1.7px;text-transform:uppercase;color:var(--bx);margin:0}
.n-step .n-steph h4,.n-step .n-steph h3.h4{font-family:var(--fD);font-size:19px;font-weight:800;color:#fff;letter-spacing:-.2px;margin:0}
.n-step .n-stepp,.n-step .n-stepp p{font-size:13.5px;color:#A9BFCE;line-height:1.7;margin:0}

/* why us */
.n-wc .n-wcnum,.n-wc .n-wcnum p{font-family:var(--fD);font-size:30px;font-weight:900;color:var(--l2);line-height:1;margin:0}
.n-wc .n-wch h4,.n-wc .n-wch h3.h4{font-family:var(--fD);font-size:19px;font-weight:800;color:var(--ch);letter-spacing:-.2px;margin:0}
.n-wc .n-wcp,.n-wc .n-wcp p{font-size:14px;color:var(--st);line-height:1.72;margin:0}

/* due diligence rows */

/* industry tiles */
.n-ind .n-indh{font-family:var(--fD);font-size:17px;font-weight:800;color:var(--ch);letter-spacing:-.2px}
.n-ind .n-indp,.n-ind .n-indp p{font-size:12.5px;color:var(--st);line-height:1.55;margin:0}

/* client slots */
.n-logos .n-logo{background:#fff;min-height:76px}
.n-logot,.n-logot p{font-family:var(--fM);font-size:12px;letter-spacing:1.4px;text-transform:uppercase;color:#B7C6D2;text-align:center;margin:0}

/* about fact table */
.n-facts .n-factr{border-bottom:1px solid var(--ln)}
.n-facts .n-factr:last-child{border-bottom:none}
.n-factk,.n-factk p{font-family:var(--fM);font-size:12px;letter-spacing:1.6px;text-transform:uppercase;color:var(--bd);font-weight:600;margin:0}
.n-factk{flex:0 0 150px;background:var(--wa);padding:12px 16px}
.n-factv,.n-factv p{font-size:13.5px;color:var(--tx);margin:0}
.n-factv{flex:1;padding:12px 16px}

/* closing CTA */
.n-ctainw .n-ctah{font-family:var(--fD);font-size:clamp(24px,3vw,33px);font-weight:900;color:#fff;letter-spacing:-.7px;line-height:1.12}
.n-ctainw .n-ctap,.n-ctainw .n-ctap p{color:#AFC6D6;font-size:15px;line-height:1.7;margin:0}

/* faq accordion */
.n-faqacc .elementor-accordion{border:1px solid var(--ln);background:#fff}
.n-faqacc .elementor-accordion-item{border:0;border-bottom:1px solid var(--ln)}
.n-faqacc .elementor-accordion-item:last-child{border-bottom:0}
.n-faqacc .elementor-tab-title{padding:18px 22px;font-family:var(--fD);font-size:17px;font-weight:700;color:var(--ch);background:#fff;transition:background .2s,color .2s}
.n-faqacc .elementor-tab-title:hover{background:var(--wa)}
.n-faqacc .elementor-tab-title.elementor-active{background:var(--wa);color:var(--bd)}
.n-faqacc .elementor-tab-title .elementor-accordion-icon{color:var(--bl)}
.n-faqacc .elementor-tab-content{padding:0 22px 20px;border:0;font-size:14px;color:var(--st);line-height:1.78}
.n-faqacc .elementor-tab-content p{margin:0;max-width:74ch}

/* hero */
.n-hgridw{align-items:center}
.n-q .n-qh h3{font-family:var(--fD);font-size:20px;font-weight:800;color:var(--ch);margin:0}
.n-q .n-qp,.n-q .n-qp p{font-size:13.5px;color:var(--st);line-height:1.6;margin:0}
.n-heroform .elementor-field-group{margin-bottom:12px}
.n-heroform .elementor-field-label{font-family:var(--fM);font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--bd);margin-bottom:6px;font-weight:600}
.n-heroform .elementor-field-textual{background:var(--wa);border:1.5px solid var(--ln);border-radius:0;padding:11px 13px;font-size:14px;color:var(--tx);height:auto;box-shadow:none}
.n-heroform .elementor-field-textual:focus{border-color:var(--bl);box-shadow:none;outline:none}
.n-qf,.n-qf p{font-family:var(--fM);font-size:12px;letter-spacing:.6px;color:var(--sf);margin:0}
.n-qf a{color:#007CC4}

@media(max-width:767px){
  .n-factk{flex:0 0 100%}
  .n-ctainw .n-btns{justify-content:flex-start}
}


/* ===== HEADER v7 :: two-tier utility strip over a solid white nav band =====
   The header used to be transparent over dark heroes and only turned solid on
   scroll, which is why the logo swapped between a reversed and a dark mark.
   It is now permanently solid, so the reversed mark never shows and every page
   clears the same fixed height. */

.elementor-43.elementor-location-header{background:#FFFFFF!important;border-bottom:1px solid #D8E2EA!important;box-shadow:0 1px 3px rgba(15,27,38,.07)!important}
.elementor-43.elementor-location-header::before{display:none!important}

/* --- utility strip --- */
.elementor-43 .n-utilrow{background:#F2F5F6;border-bottom:1px solid #E3EAEF;width:100%!important;max-width:none!important;padding:0!important}
.elementor-43 .n-utilrow .elementor-widget-html{width:100%!important;max-width:none!important;flex:1 1 100%!important}
.elementor-43 .n-utilrow .elementor-widget-html>.elementor-widget-container{width:100%}
.n-utilbar{max-width:1280px;margin:0 auto;padding:7px 20px;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px 24px;font-family:var(--fB);font-size:13px;line-height:1.5}
.n-utilnav{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.n-utilnav a{color:#465C6A;text-decoration:none;min-height:30px;display:inline-flex;align-items:center}
.n-utilnav a:hover,.n-utilnav a:focus-visible{color:#007CC4}
.n-utilcontact{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.n-uc{display:inline-flex;align-items:center;gap:7px;min-height:30px;color:#152D3D;text-decoration:none;font-weight:500;white-space:nowrap}
.n-uc svg{color:#007CC4;flex:0 0 auto}
.n-uc:hover,.n-uc:focus-visible{color:#007CC4}
.n-uc-wa svg{color:#08783E}
.n-uc-wa:hover{color:#08783E}

/* --- main nav band --- */
.elementor-43 .n-navrow{background:#FFFFFF;padding-top:12px!important;padding-bottom:12px!important}
.elementor-43 .n-brand .n-logo-rev{display:none!important}
.elementor-43 .n-brand .n-logo-dk{display:block!important}

/* Elementor writes five-class .elementor-kit-2s for menu colours, so these have to be at
   least as specific or the nav inherits the old white-on-white treatment. */
body .elementor-43 .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item{color:#152D3D;fill:#152D3D}
body .elementor-43 .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:hover,
body .elementor-43 .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:focus,
body .elementor-43 .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.highlighted{color:#007CC4;fill:#007CC4}
body .elementor-43 .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.elementor-item-active{color:#007CC4;fill:#007CC4}
body .elementor-43 .elementor-nav-menu .sub-arrow svg{fill:#8598A8}
body .elementor-43 div.elementor-menu-toggle{color:#152D3D;background:#EDF2F6;border:1px solid #D8E2EA}
body .elementor-43 div.elementor-menu-toggle svg{fill:#152D3D}

/* --- outlined pill call to action --- */
.n-cta-pill{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 28px;border:1.5px solid #007CC4;border-radius:999px;background:transparent;color:#007CC4;font-family:var(--fB);font-size:15px;font-weight:600;line-height:1;text-decoration:none;white-space:nowrap;transition:background .18s var(--ez),color .18s var(--ez)}
.n-cta-pill:hover,.n-cta-pill:focus-visible{background:#007CC4;color:#FFFFFF}

/* About Us and Projects sit in the utility strip on desktop, so they are hidden
   from the main bar. They stay in the mobile menu, where there is no strip. */
@media(min-width:1025px){
  .elementor-43 .elementor-nav-menu--main .menu-item-209,
  .elementor-43 .elementor-nav-menu--main .menu-item-212{display:none}
}

@media(max-width:1024px){
  .elementor-43 .n-utilrow{display:none!important}
  .n-cta-pill{min-height:42px;padding:0 18px;font-size:13px}
}
@media(prefers-reduced-motion:reduce){.n-cta-pill{transition:none}}


/* Header height: the nav row and its boxed inner were both padding, stacking 56px
   of space around a 48px button and pushing the fixed header to 170px. */
.elementor-43 .n-navrow{padding-top:0!important;padding-bottom:0!important}
.elementor-43 .n-navrow>.e-con-inner{padding-top:10px!important;padding-bottom:10px!important}
.n-cta-pill{min-height:44px;padding:0 24px}
.elementor-43 .n-brand img{width:150px!important;max-width:150px!important}
@media(max-width:1024px){.elementor-43 .n-navrow>.e-con-inner{padding-top:8px!important;padding-bottom:8px!important}}


/* ===== TICKER FIX =====
   The ticker script clones its list so the strip can loop seamlessly: the animation
   slides .n-tick by -50%, which only works when the original and the copy sit side
   by side and the container is twice the width of one set.
   The clone was appended inside the icon-list widget, which is display:block, so the
   two lists stacked into two identical rows and the loop never lined up. */
.n-tick{width:max-content!important;flex-wrap:nowrap!important}
.n-tick .n-tickitems{display:flex!important;width:max-content!important;flex:0 0 auto!important}

/* let a reader stop it to actually read a trade */
.n-tickwrap:hover .n-tick,.n-tickwrap:focus-within .n-tick{animation-play-state:paused}

/* the old mobile rules were written for a span-based markup that no longer exists;
   width:100% with flex-wrap:wrap re-stacked the two lists on small screens. */
@media(max-width:767px){
  .n-tick{animation:n-tickmove 38s linear infinite;width:max-content!important;flex-wrap:nowrap!important;justify-content:flex-start!important}
}

/* no motion means no second copy is needed, so show one wrapped set instead */
@media(prefers-reduced-motion:reduce){
  .n-tick{animation:none!important;width:100%!important;flex-wrap:wrap!important;justify-content:center!important}
  .n-tick .n-tickitems{width:100%!important;flex-wrap:wrap!important;justify-content:center!important}
  .n-tick .n-tickitems ~ .n-tickitems,.n-tick .elementor-icon-list-items[data-cloned]{display:none!important}
}


/* ===== HEADER v8 :: transparent over a dark hero, solid once you scroll =====
   Pages whose first band carries n-hero / nstc-pghero / n-ph get body.nstc-hdr-clear
   and start transparent. Everything else (the eight light-grey hero pages, and every
   page once scrolled past 60px) keeps the solid white band, or the nav would be
   invisible on white content. The scroll class .n-solid is added in nstc-core.php. */

body.nstc-hdr-clear .elementor-43.elementor-location-header:not(.n-solid){
  background:transparent!important;border-bottom-color:transparent!important;box-shadow:none!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important}
/* a soft scrim so white nav text stays legible over a busy hero */
body.nstc-hdr-clear .elementor-43.elementor-location-header:not(.n-solid)::before{
  display:block!important;opacity:1;
  background:linear-gradient(180deg,rgba(9,17,24,.55),rgba(9,17,24,0))}

body.nstc-hdr-clear .elementor-43.elementor-location-header:not(.n-solid) .n-utilrow{
  background:transparent!important;border-bottom:1px solid rgba(255,255,255,.14)!important}
body.nstc-hdr-clear .elementor-43.elementor-location-header:not(.n-solid) .n-navrow{background:transparent!important}

body.nstc-hdr-clear .elementor-43.elementor-location-header:not(.n-solid) .n-utilnav a{color:rgba(255,255,255,.78)!important}
body.nstc-hdr-clear .elementor-43.elementor-location-header:not(.n-solid) .n-utilnav a:hover{color:#FFFFFF!important}
body.nstc-hdr-clear .elementor-43.elementor-location-header:not(.n-solid) .n-uc{color:rgba(255,255,255,.92)!important}
body.nstc-hdr-clear .elementor-43.elementor-location-header:not(.n-solid) .n-uc svg{color:#5DA8E1!important}
body.nstc-hdr-clear .elementor-43.elementor-location-header:not(.n-solid) .n-uc-wa svg{color:#4BD07E!important}

body.nstc-hdr-clear .elementor-43.elementor-location-header:not(.n-solid) .n-brand .n-logo-rev{display:block!important}
body.nstc-hdr-clear .elementor-43.elementor-location-header:not(.n-solid) .n-brand .n-logo-dk{display:none!important}

body.nstc-hdr-clear .elementor-43.elementor-location-header:not(.n-solid) .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item{color:rgba(255,255,255,.88)!important;fill:rgba(255,255,255,.88)!important}
body.nstc-hdr-clear .elementor-43.elementor-location-header:not(.n-solid) .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:hover,
body.nstc-hdr-clear .elementor-43.elementor-location-header:not(.n-solid) .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.elementor-item-active{color:#FFFFFF!important;fill:#FFFFFF!important}
body.nstc-hdr-clear .elementor-43.elementor-location-header:not(.n-solid) .elementor-nav-menu .sub-arrow svg{fill:rgba(255,255,255,.7)!important}
body.nstc-hdr-clear .elementor-43.elementor-location-header:not(.n-solid) div.elementor-menu-toggle{color:#FFFFFF!important;background:rgba(255,255,255,.12)!important;border-color:rgba(255,255,255,.3)!important}
body.nstc-hdr-clear .elementor-43.elementor-location-header:not(.n-solid) div.elementor-menu-toggle svg{fill:#FFFFFF!important}

body.nstc-hdr-clear .elementor-43.elementor-location-header:not(.n-solid) .n-cta-pill{
  border-color:rgba(255,255,255,.85)!important;color:#FFFFFF!important;background:transparent!important}
body.nstc-hdr-clear .elementor-43.elementor-location-header:not(.n-solid) .n-cta-pill:hover,
body.nstc-hdr-clear .elementor-43.elementor-location-header:not(.n-solid) .n-cta-pill:focus-visible{
  background:#FFFFFF!important;color:#0E2233!important;border-color:#FFFFFF!important}

/* the solid band earns a little more presence once it is over content */
.elementor-43.elementor-location-header.n-solid{
  -webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px)}

/* the pill lifts slightly and casts a little light */
.n-cta-pill{transition:background .18s var(--ez),color .18s var(--ez),border-color .18s var(--ez),transform .18s var(--ez),box-shadow .18s var(--ez)}
.n-cta-pill:hover,.n-cta-pill:focus-visible{transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,124,196,.26)}
.n-cta-pill:active{transform:translateY(0)}

/* utility links get a quiet underline rather than a colour jump alone */
.n-utilnav a,.n-uc{position:relative;transition:color .18s var(--ez)}
.n-utilnav a::after{content:'';position:absolute;left:0;right:0;bottom:4px;height:1px;background:currentColor;
  transform:scaleX(0);transform-origin:left center;transition:transform .25s var(--ez)}
.n-utilnav a:hover::after,.n-utilnav a:focus-visible::after{transform:scaleX(1)}

@media(prefers-reduced-motion:reduce){
  .elementor-43 .elementor-nav-menu--main > ul > li > .elementor-item::after,
  .n-utilnav a::after{transition:none}
  .n-cta-pill{transition:background .01ms,color .01ms}
  .n-cta-pill:hover,.n-cta-pill:focus-visible{transform:none;box-shadow:none}
}


/* the sidebar card stuck under the taller two tier header */
.nstc-ask{top:calc(var(--hdr-h,130px) + 20px)}


/* ===== HEADER v9 :: nav colour, settled =====
   The widget stores color_menu_item as rgba(255,255,255,.82) for the old
   transparent-only header, and Elementor emits it as a five-class .elementor-kit-2. My
   solid-state rule used four classes plus body, so it LOST, and on the eight
   light-hero pages the nav rendered white on a white band: invisible navigation.
   Solid is the default here and is marked important; the transparent state below
   re-lightens it and is more specific still. */
body .elementor-43 .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item{color:#152D3D!important;fill:#152D3D!important}
body .elementor-43 .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:hover,
body .elementor-43 .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:focus,
body .elementor-43 .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.highlighted,
body .elementor-43 .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.elementor-item-active{color:#007CC4!important;fill:#007CC4!important}
body .elementor-43 .elementor-nav-menu .sub-arrow svg{fill:#8598A8!important}

/* transparent state wins back with a longer .elementor-kit-2 */
body.nstc-hdr-clear .elementor-43.elementor-location-header:not(.n-solid) .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item{color:rgba(255,255,255,.92)!important;fill:rgba(255,255,255,.92)!important}
body.nstc-hdr-clear .elementor-43.elementor-location-header:not(.n-solid) .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:hover,
body.nstc-hdr-clear .elementor-43.elementor-location-header:not(.n-solid) .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:focus,
body.nstc-hdr-clear .elementor-43.elementor-location-header:not(.n-solid) .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.elementor-item-active{color:#FFFFFF!important;fill:#FFFFFF!important}
body.nstc-hdr-clear .elementor-43.elementor-location-header:not(.n-solid) .elementor-nav-menu .sub-arrow svg{fill:rgba(255,255,255,.75)!important}


/* ===== CONTAINER OVERFLOW CLAMP =====
   Nine pages carry containers with a hard pixel width (820 / 880 / 980 / 1280px)
   plus max-width:100%. The percentage resolves against a parent with no definite
   width, so the pixel width won and the page scrolled sideways below about 1000px.
   Clamping the container, and the single column of a boxed grid container, fixes it
   without touching the saved layout. */
[data-elementor-type="wp-page"] .e-con{max-width:100%!important}
[data-elementor-type="wp-page"] .e-con.e-con-boxed.e-grid{grid-template-columns:minmax(0,1fr)!important}

/* the featured-service blocks are flex items with min-width:auto, so their content
   floor pushed past a 360px screen */
.nstc-fsvc,.nstc-fsvc-side,.nstc-fsvc-body,.nstc-fsvc-main{min-width:0}
.nstc-fsvc>*,.nstc-fsvc-side>*,.nstc-fsvc-body>*{min-width:0;max-width:100%}
.nstc-tags-row{flex-wrap:wrap}


/* ===== HEADER CLEARANCE, CORRECTED =====
   The earlier fix moved the clearance off the first container and onto the dark hero,
   which is right when the hero is nested (homepage). But on pages like About the hero
   IS the first container, so both rules hit the same element and
   >.e-con:first-child (four classes) outranked .n-ph (two), zeroing the clearance and
   letting the H1 run under the fixed header. The zeroing rule now skips heroes, and
   the hero rule carries enough weight to win outright. */
body.nstc-hdr-clear [data-elementor-type="wp-page"]>.e-con:first-child:not(.n-hero):not(.nstc-pghero):not(.n-ph){padding-top:0!important}
body.nstc-hdr-clear [data-elementor-type="wp-page"] .n-hero,
body.nstc-hdr-clear [data-elementor-type="wp-page"] .nstc-pghero,
body.nstc-hdr-clear [data-elementor-type="wp-page"] .n-ph{padding-top:calc(var(--hdr-h,130px) + 40px)!important}
@media(max-width:1024px){
  body.nstc-hdr-clear [data-elementor-type="wp-page"] .n-hero,
  body.nstc-hdr-clear [data-elementor-type="wp-page"] .nstc-pghero,
  body.nstc-hdr-clear [data-elementor-type="wp-page"] .n-ph{padding-top:calc(var(--hdr-h,95px) + 28px)!important}
}


/* ===== RESTORED :: mobile overflow fix =====
   .nstc-tbl / .n-tbl carry min-width:520px inside a wrapper with overflow-x:auto.
   That wrapper is a grid item, and grid and flex items default to min-width:auto
   (their min-content size), so instead of the table scrolling inside its wrapper the
   whole column was forced to ~542px and the page scrolled sideways on a phone. */
.nstc-2col>*,.n-2col>*{min-width:0}
.nstc-2col,.n-2col{min-width:0}
.nstc-tblwrap,.n-tblwrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.nstc-tblwrap>table,.n-tblwrap>table{max-width:none}
.nstc-steps>*,.nstc-scopes>*,.nstc-tradegrid>*,.nstc-facts>*{min-width:0}
@media(max-width:520px){
  .nstc-tbl,.n-tbl{min-width:420px}
}

/* ===== RESTORED :: nav hover underline =====
   Elementor's pointer pseudo-element does not paint in this version, so the line is a
   background gradient on the anchor. Elementor writes its menu styles as five-class
   .elementor-kit-2s whose background shorthand resets background-image, so these match that
   weight and mark the background properties important. */
body .elementor-43 .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item{
  background-image:linear-gradient(currentColor,currentColor)!important;
  background-repeat:no-repeat!important;
  background-position:13px calc(100% - 5px)!important;
  background-size:0 2px!important;
  transition:background-size .3s cubic-bezier(.25,.46,.45,.94),color .2s ease!important}
body .elementor-43 .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:hover,
body .elementor-43 .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:focus-visible,
body .elementor-43 .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.elementor-item-active{
  background-size:calc(100% - 26px) 2px!important}
body .elementor-43 .elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-item{background-image:none!important}
@media(prefers-reduced-motion:reduce){
  body .elementor-43 .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item{transition:none!important}
}

/* ---- page-hero note pill (sector / emirate heroes) ---- */
.nstc-pghero .nstc-hnote{display:inline-flex;align-items:center;gap:9px;margin:24px 0 0;padding:9px 17px;border:1px solid rgba(63,169,238,.32);background:rgba(63,169,238,.10);border-radius:999px;font-family:'Archivo',sans-serif;font-size:12.5px;font-weight:600;line-height:1.35;letter-spacing:.2px;color:#9FC4DE;max-width:100%}
.nstc-pghero .nstc-hnote b{color:#fff;font-weight:800}
@media(max-width:600px){.nstc-pghero .nstc-hnote{display:block;border-radius:10px;font-size:12px}}

/* ---- balanced two-column pair (About: story + company facts) ----
   .n-2col's 1fr track runs to 860px while .n-p caps at 66ch (~550px), so ~300px
   of dead space opened between the prose and the sidebar. .n-even sizes both
   tracks to their content instead, so the columns sit 40px apart and finish level. */
.n-2col.n-even{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:40px}
.n-2col.n-even .n-ask .n-btn{max-width:340px}
.n-2col.n-even .n-h2{max-width:none}
.n-2col.n-even .n-p{max-width:none}
@media(max-width:1100px){
 .n-2col.n-even{grid-template-columns:minmax(0,1fr);gap:34px}
 .n-2col.n-even .n-ask .n-btn{max-width:none}
 /* stacked again, so the prose needs its own measure back */
 .n-2col.n-even .n-h2{max-width:22ch}
 .n-2col.n-even .n-p{max-width:66ch}
}

/* ---- content + support panel (HSE, Contact, Request Manpower) ----
   The 1fr track ran to 900px, so checklists and form fields sat on ~100-character
   lines while the 330px panel stranded 500-600px of empty gutter beside a much
   taller column. .n-bal narrows the content track to ~77 characters, widens the
   panel, and makes the panel sticky so it travels with the reader. */
.n-2col.n-bal{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:44px;align-items:start}
.n-2col.n-bal>*:last-child{position:sticky;top:calc(var(--hdr-h,130px) + 20px)}
.n-2col.n-bal .n-ask{position:static}
.n-2col.n-bal .n-h2,.n-2col.n-bal .n-p,.n-2col.n-bal .n-check{max-width:none}
.n-2col.n-bal .n-ask .n-btn{max-width:340px}
@media(max-width:1100px){
 .n-2col.n-bal{grid-template-columns:minmax(0,1fr);gap:34px}
 .n-2col.n-bal>*:last-child{position:static}
 .n-2col.n-bal .n-h2{max-width:22ch}
 .n-2col.n-bal .n-p,.n-2col.n-bal .n-check{max-width:66ch}
 .n-2col.n-bal .n-ask .n-btn{max-width:none}
}


/* client logo wall - real logos (2026-09-19) */
.n-logos .n-logo{height:auto;min-height:108px;padding:18px}
.n-logos .n-logo .elementor-widget-image,.n-logos .n-logo .elementor-widget-container{width:100%;line-height:0}
.n-logos .n-logo img{display:block;margin:0 auto;width:100%;max-width:170px;height:auto;opacity:.92;transition:opacity .2s ease,transform .2s ease}
.n-logos .n-logo:hover img{opacity:1;transform:translateY(-2px)}
@media(max-width:980px){.n-logos .n-logo{min-height:96px;padding:14px}.n-logos .n-logo img{max-width:148px}}


/* ==========================================================================
   BUTTONS v4: one unified button system (19 Sep 2026)
   Replaces the v1/v2/v3 button layers that were stacked in this stylesheet.

   Owns: geometry, internal and external spacing, typography, responsive
   sizing, hover motion, focus and press states, reduced motion.
   Leaves each button's resting colours to Elementor Site Settings and to the
   button's own settings, so every button stays editable without code.
   ========================================================================== */

:root{
  --btn-fs:13px;
  --btn-ls:1px;
  --btn-py:15px;
  --btn-px:28px;
  --btn-gap:9px;
  --btn-r:6px;
  --btn-bw:2px;
  --btn-min:46px;
  --btn-row-gap:12px;
  --btn-ease:cubic-bezier(.2,.7,.3,1);
  --btn-speed:.22s;
  --btn-lift:-2px;
  --btn-glow:0 10px 26px -6px rgba(0,124,196,.55);
}

/* --- 1. shared shape, spacing and type ---------------------------------- */
.elementor-kit-2 .n-btn,
.elementor-kit-2 .nstc-btn,
.elementor-kit-2 .elementor-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:var(--btn-gap);
  box-sizing:border-box;
  margin:0;
  padding:var(--btn-py) var(--btn-px);
  border-width:var(--btn-bw);
  border-style:solid;
  border-color:transparent;
  border-radius:var(--btn-r);
  fill:currentColor;
  min-height:var(--btn-min);
  max-width:100%;
  font-family:'Archivo','Helvetica Neue',sans-serif;
  font-weight:800;
  font-size:var(--btn-fs);
  letter-spacing:var(--btn-ls);
  line-height:1.1;
  text-transform:uppercase;
  text-decoration:none;
  text-align:center;
  white-space:normal;
  vertical-align:middle;
  cursor:pointer;
  -webkit-appearance:none;
  appearance:none;
  -webkit-tap-highlight-color:transparent;
  transition:background-color var(--btn-speed) var(--btn-ease),
             border-color var(--btn-speed) var(--btn-ease),
             color var(--btn-speed) var(--btn-ease),
             transform var(--btn-speed) var(--btn-ease),
             box-shadow var(--btn-speed) var(--btn-ease);
}

/* Elementor's own size classes must not reintroduce their padding or radius */
.elementor-kit-2 .elementor-button.elementor-size-xs,
.elementor-kit-2 .elementor-button.elementor-size-sm,
.elementor-kit-2 .elementor-button.elementor-size-md,
.elementor-kit-2 .elementor-button.elementor-size-lg,
.elementor-kit-2 .elementor-button.elementor-size-xl{
  padding:var(--btn-py) var(--btn-px);
  border-radius:var(--btn-r);
  font-size:var(--btn-fs);
}

/* --- 2. no stray space inside the button -------------------------------- */
.elementor-kit-2 .elementor-button .elementor-button-content-wrapper{
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:center;
  gap:var(--btn-gap);
  margin:0;
}
.elementor-kit-2 .elementor-button .elementor-button-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:0;
  line-height:0;
  transition:transform var(--btn-speed) var(--btn-ease);
}
.elementor-kit-2 .elementor-button .elementor-button-icon svg,
.elementor-kit-2 .elementor-button .elementor-button-icon .e-font-icon-svg{
  display:block;
  width:1em;
  height:1em;
  fill:currentColor;
}
.elementor-kit-2 .elementor-button .elementor-button-text{
  display:block;
  line-height:1.1;
  margin:0;
}
/* the trailing arrow used on the hand-built buttons */
.elementor-kit-2 .n-btn > span:last-child,
.elementor-kit-2 .nstc-btn > span:last-child{
  display:inline-flex;
  align-items:center;
  line-height:0;
  transition:transform var(--btn-speed) var(--btn-ease);
}

/* --- 3. no stray space outside the button ------------------------------- */
.elementor-widget-button{
  line-height:0;
  margin:0;
}
.elementor-widget-button > .elementor-widget-container{
  margin:0;
  padding:0;
}
.n-btns > .elementor-element,
.n-btns > .elementor-widget,
.nstc-btnrow > *{
  margin:0;
}
.n-btns,
.n-btns.e-con,
.nstc-btnrow{
  display:flex;
  flex-direction:row;
  flex-wrap:wrap;
  align-items:center;
  --gap:var(--btn-row-gap);
  gap:var(--btn-row-gap);
  row-gap:var(--btn-row-gap);
}
.nstc-btnrow{margin-top:24px}
.n-safe .n-btns{justify-content:flex-start}

/* --- 4. variants (hand-built buttons and the .n-btnw widget wrapper) ----- */
.elementor-kit-2 .n-btn,
.elementor-kit-2 .nstc-btn,
.elementor-kit-2 .nstc-btn.cobalt,
.elementor-kit-2 .n-btn.n-primary{
  background-color:#007CC4;
  border-color:#007CC4;
  color:#FFFFFF;
}
.elementor-kit-2 .n-btn.ghost,
.elementor-kit-2 .n-btn.n-ghost,
.elementor-kit-2 .nstc-btn.ghost{
  background-color:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.22);
  color:#FFFFFF;
}
.elementor-kit-2 .n-btn.white,
.elementor-kit-2 .nstc-btn.white{
  background-color:#FFFFFF;
  border-color:#FFFFFF;
  color:#0F1B26;
}
.elementor-kit-2 .n-btn.line,
.elementor-kit-2 .nstc-btn.outline{
  background-color:transparent;
  border-color:rgba(0,124,196,.45);
  color:#007CC4;
}
.elementor-kit-2 .n-btn.n-wa,
.elementor-kit-2 .nstc-btn.n-wa{
  background-color:#25D366;
  border-color:#25D366;
  color:#FFFFFF;
}
.n-btnw.ghost .elementor-button{
  background-color:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.22);
  color:#FFFFFF;
}
.n-btnw.white .elementor-button{
  background-color:#FFFFFF;
  border-color:#FFFFFF;
  color:#0F1B26;
}
.n-btnw.line .elementor-button{
  background-color:transparent;
  border-color:rgba(0,124,196,.45);
  color:#007CC4;
}
.n-btnw.wa .elementor-button,
.n-btnw.n-wa .elementor-button{
  background-color:#25D366;
  border-color:#25D366;
  color:#FFFFFF;
}

/* per-variant glow tint, so a button's halo is its own colour */
.elementor-kit-2 .n-btn.ghost,
.elementor-kit-2 .n-btn.n-ghost,
.elementor-kit-2 .nstc-btn.ghost,
.n-btnw.ghost .elementor-button,
.elementor-kit-2 .n-btn.white,
.elementor-kit-2 .nstc-btn.white,
.n-btnw.white .elementor-button{
  --btn-glow:0 12px 28px -8px rgba(0,0,0,.55);
}
.elementor-kit-2 .n-btn.n-wa,
.elementor-kit-2 .nstc-btn.n-wa,
.n-btnw.wa .elementor-button,
.n-btnw.n-wa .elementor-button{
  --btn-glow:0 10px 26px -6px rgba(37,211,102,.60);
}

/* --- 5. small size and the fixed header --------------------------------- */
.elementor-kit-2 .n-btn.n-sm,
.elementor-kit-2 .nstc-btn.n-sm,
.n-btnw.n-sm .elementor-button{
  --btn-fs:11.5px;
  --btn-ls:.9px;
  --btn-py:11px;
  --btn-px:20px;
  --btn-min:40px;
}
.elementor-43 .elementor-button{
  --btn-fs:12px;
  --btn-ls:.8px;
  --btn-py:11px;
  --btn-px:18px;
  --btn-min:42px;
}
.elementor-43 .elementor-widget-button{
  width:auto;
  flex:0 0 auto;
}
/* header actions that run full width, ie. inside the mobile menu panel */
.elementor-43 .elementor-align-justify .elementor-button,
.elementor-43 .elementor-tablet-align-justify .elementor-button,
.elementor-43 .elementor-mobile-align-justify .elementor-button{
  --btn-fs:13px;
  --btn-ls:1px;
  --btn-py:15px;
  --btn-px:20px;
  --btn-min:50px;
  width:100%;
}

/* --- 6. hover, focus and press ------------------------------------------ */
@media (hover:hover) and (pointer:fine){
  .elementor-kit-2 .n-btn:hover,
  .elementor-kit-2 .nstc-btn:hover,
  .elementor-kit-2 .elementor-button:hover{
    transform:translateY(var(--btn-lift));
    box-shadow:var(--btn-glow);
  }
  .elementor-kit-2 .n-btn.ghost:hover,
  .elementor-kit-2 .n-btn.n-ghost:hover,
  .elementor-kit-2 .nstc-btn.ghost:hover,
  .n-btnw.ghost .elementor-button:hover{
    background-color:rgba(63,169,238,.14);
    border-color:rgba(63,169,238,.50);
    color:#3FA9EE;
  }
  .elementor-kit-2 .n-btn.white:hover,
  .elementor-kit-2 .nstc-btn.white:hover,
  .n-btnw.white .elementor-button:hover{
    background-color:#EDF2F6;
    border-color:#EDF2F6;
    color:#0F1B26;
  }
  .elementor-kit-2 .n-btn.line:hover,
  .elementor-kit-2 .nstc-btn.outline:hover,
  .n-btnw.line .elementor-button:hover{
    background-color:#007CC4;
    border-color:#007CC4;
    color:#FFFFFF;
  }
  .elementor-kit-2 .n-btn.n-wa:hover,
  .elementor-kit-2 .nstc-btn.n-wa:hover,
  .n-btnw.wa .elementor-button:hover,
  .n-btnw.n-wa .elementor-button:hover{
    background-color:#1EB857;
    border-color:#1EB857;
    color:#FFFFFF;
  }
  /* the icon carries the forward motion */
  .elementor-kit-2 .elementor-button:hover .elementor-button-icon,
  .elementor-kit-2 .n-btn:hover > span:last-child,
  .elementor-kit-2 .nstc-btn:hover > span:last-child{
    transform:translateX(3px);
  }
}
.elementor-kit-2 .n-btn:focus-visible,
.elementor-kit-2 .nstc-btn:focus-visible,
.elementor-kit-2 .elementor-button:focus-visible{
  outline:3px solid #1E96DE;
  outline-offset:3px;
  box-shadow:var(--btn-glow);
}
.elementor-kit-2 .n-btn.ghost:focus-visible,
.elementor-kit-2 .n-btn.white:focus-visible,
.elementor-kit-2 .nstc-btn.ghost:focus-visible,
.n-btnw.ghost .elementor-button:focus-visible,
.n-btnw.white .elementor-button:focus-visible{
  outline-color:#FFFFFF;
}
.elementor-kit-2 .n-btn:active,
.elementor-kit-2 .nstc-btn:active,
.elementor-kit-2 .elementor-button:active{
  transform:translateY(0) scale(.985);
  box-shadow:none;
  transition-duration:.09s;
}

/* --- 7. the quiet text links built on the button widget ----------------- */
.elementor-kit-2 .n-morebtn .elementor-button{
  min-height:0;
  padding:0;
  border:0;
  border-radius:0;
  background:none;
  color:#007CC4;
  font-size:12px;
  letter-spacing:.9px;
}
.n-morebtn .elementor-button .elementor-button-text{
  background-image:linear-gradient(currentColor,currentColor);
  background-repeat:no-repeat;
  background-position:0 100%;
  background-size:0 1.5px;
  padding-bottom:3px;
  transition:background-size .28s var(--btn-ease);
}
.elementor-kit-2 .n-morebtn .elementor-button:hover{
  background:none;
  color:#005A93;
  transform:none;
  box-shadow:none;
}
.n-morebtn .elementor-button:hover .elementor-button-text{background-size:100% 1.5px}
.elementor-kit-2 .n-cell.feat .n-morebtn .elementor-button{color:#FFFFFF}
.elementor-kit-2 .n-cell.feat .n-morebtn .elementor-button:hover{color:#3FA9EE}

/* --- 8. form submits ----------------------------------------------------- */
.elementor-kit-2 .elementor-form .elementor-button{
  min-height:48px;
  border-width:var(--btn-bw);
  border-style:solid;
  padding:var(--btn-py) var(--btn-px);
}
.n-heroform .elementor-button[type=submit],
.n-heroform .elementor-field-type-submit .elementor-button{
  width:100%;
  justify-content:center;
}

/* --- 9. breakpoints ------------------------------------------------------ */
@media (max-width:1100px){
  :root{--btn-fs:12px;--btn-ls:.9px;--btn-py:13px;--btn-px:22px;--btn-min:44px}
  .elementor-kit-2 .n-btn.n-sm,
  .elementor-kit-2 .nstc-btn.n-sm,
  .n-btnw.n-sm .elementor-button{--btn-fs:11px;--btn-ls:.6px;--btn-py:10px;--btn-px:16px;--btn-min:38px}
  .elementor-43 .elementor-button{--btn-fs:11.5px;--btn-py:10px;--btn-px:15px;--btn-min:40px}
}
@media (max-width:767px){
  :root{--btn-fs:11.5px;--btn-ls:.7px;--btn-py:12px;--btn-px:18px;--btn-gap:8px;--btn-row-gap:10px;--btn-min:44px}
  .elementor-kit-2 .n-btn,
  .elementor-kit-2 .nstc-btn,
  .elementor-kit-2 .elementor-button{overflow-wrap:break-word}
  .n-ctainw .n-btns{justify-content:flex-start}
  .nstc-btnrow{margin-top:20px}
}
@media (max-width:400px){
  :root{--btn-fs:11px;--btn-ls:.5px;--btn-py:12px;--btn-px:14px}
  .elementor-43 .elementor-button{--btn-px:12px;--btn-fs:11px}
}

/* --- 10. reduced motion -------------------------------------------------- */
@media (prefers-reduced-motion:reduce){
  .elementor-kit-2 .n-btn,
  .elementor-kit-2 .nstc-btn,
  .elementor-kit-2 .elementor-button,
  .elementor-kit-2 .elementor-button .elementor-button-icon,
  .n-morebtn .elementor-button .elementor-button-text{
    transition-duration:.01ms;
  }
  .elementor-kit-2 .n-btn:hover,
  .elementor-kit-2 .nstc-btn:hover,
  .elementor-kit-2 .elementor-button:hover,
  .elementor-kit-2 .n-btn:active,
  .elementor-kit-2 .nstc-btn:active,
  .elementor-kit-2 .elementor-button:active{
    transform:none;
  }
  .elementor-kit-2 .elementor-button:hover .elementor-button-icon,
  .elementor-kit-2 .n-btn:hover > span:last-child,
  .elementor-kit-2 .nstc-btn:hover > span:last-child{
    transform:none;
  }
}


/* ==========================================================================
   CTA BAND :: availability action under the two band buttons (19 Sep 2026)
   ========================================================================== */
.nstc-ctaget{width:100%;margin-top:2px}
.elementor-kit-2 .nstc-ctaget .nstc-btn{width:100%;justify-content:center}
.nstc-ctain .nstc-ctaurg{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:12px;letter-spacing:.6px;line-height:1.5;color:rgba(255,255,255,.72);text-align:center;max-width:none;margin:10px 0 0}
.nstc-ctain .nstc-ctaurg a{color:#3FA9EE;text-decoration:underline;text-underline-offset:3px;transition:color .22s cubic-bezier(.2,.7,.3,1)}
.nstc-ctain .nstc-ctaurg a:hover{color:#FFFFFF}
@media(max-width:900px){
  .nstc-ctacts{width:100%}
  .nstc-ctaget{flex:0 0 100%}
}
@media(max-width:560px){
  .nstc-ctain .nstc-ctaurg{font-size:12px;margin-top:9px}
}


/* ==========================================================================
   INDUSTRIES GRID :: animated hover and entrance (19 Sep 2026)
   The accent rule at the foot of each cell rises into a full fill on hover,
   the type reverses out, and the cells lift in as the band enters view.
   ========================================================================== */
.n-ind{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  transition:border-color .32s var(--btn-ease,cubic-bezier(.2,.7,.3,1));
}
.n-ind::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(165deg,#007CC4 0%,#005A93 100%);
  transform:translateY(100%);
  transition:transform .44s var(--btn-ease,cubic-bezier(.2,.7,.3,1));
  pointer-events:none;
}
.n-ind .n-indh,
.n-ind .n-indh .elementor-heading-title,
.n-ind .n-indp,
.n-ind .n-indp p{
  transition:color .3s var(--btn-ease,cubic-bezier(.2,.7,.3,1)),
             transform .44s var(--btn-ease,cubic-bezier(.2,.7,.3,1));
}
@media (hover:hover) and (pointer:fine){
  .n-ind:hover{border-color:#005A93;border-bottom-color:#3FA9EE}
  .n-ind:hover::before{transform:translateY(0)}
  body .n-ind:hover .n-indh,
  body .n-ind:hover .n-indh .elementor-heading-title{color:#FFFFFF}
  body .n-ind:hover .n-indp,
  body .n-ind:hover .n-indp p{color:rgba(255,255,255,.86)}
  .n-ind:hover .n-indh{transform:translateX(4px)}
  .n-ind:hover .n-indp{transform:translateX(4px);transition-delay:.05s}
}
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .n-ind{
      animation:n-ind-rise linear both;
      animation-timeline:view();
      animation-range:entry 4% entry 62%;
    }
    @keyframes n-ind-rise{
      from{opacity:0;transform:translateY(16px)}
      to{opacity:1;transform:none}
    }
  }
}
@media (prefers-reduced-motion:reduce){
  .n-ind,
  .n-ind::before,
  .n-ind .n-indh,
  .n-ind .n-indh .elementor-heading-title,
  .n-ind .n-indp,
  .n-ind .n-indp p{transition-duration:.01ms}
  .n-ind:hover .n-indh,
  .n-ind:hover .n-indp{transform:none}
}


/* ==========================================================================
   DUE DILIGENCE REGISTER (19 Sep 2026)
   The flat document list becomes a proper register: accent header band,
   alternating rows, a document mark per line, and a hover that marks the row.
   ========================================================================== */
.n-dl{
  border:1px solid #D8E2EA;
  background:#FFFFFF;
  overflow:hidden;
}

/* column headings */
.n-dlhead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:13px 18px;
  background:#007CC4;
}
.n-dlhk,.n-dlhk p,
.n-dlhv,.n-dlhv p{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:12px;
  font-weight:500;
  letter-spacing:2.2px;
  text-transform:uppercase;
  line-height:1;
  color:rgba(255,255,255,.94);
  margin:0;
}

/* rows */
.n-dl .n-dlr{
  position:relative;
  border-bottom:none;
  transition:background-color .26s var(--btn-ease,cubic-bezier(.2,.7,.3,1));
}
.n-dl .n-dlr:nth-child(even){background:#FFFFFF}   /* header is child 1 */
.n-dl .n-dlr:nth-child(odd){background:#EDF2F6}
.n-dl .n-dlr::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:3px;
  background:#007CC4;
  transform:scaleY(0);
  transform-origin:top center;
  transition:transform .3s var(--btn-ease,cubic-bezier(.2,.7,.3,1));
  pointer-events:none;
}

/* the document name, with its mark */
.n-dl .n-dlr .n-dlk{
  display:flex;
  align-items:center;
  gap:12px;
  transition:transform .3s var(--btn-ease,cubic-bezier(.2,.7,.3,1));
}
.n-dl .n-dlr .n-dlk::before{
  content:"";
  flex:0 0 16px;
  width:16px;
  height:16px;
  background-color:#007CC4;
  opacity:.85;
  -webkit-mask:url(data:image/svg+xml,%3Csvg%20xmlns%3D%27http://www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.7%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%203H7a2%202%200%200%200-2%202v14a2%202%200%200%200%202%202h10a2%202%200%200%200%202-2V8z%27/%3E%3Cpath%20d%3D%27M14%203v5h5%27/%3E%3Cpath%20d%3D%27M9%2013.5h6%27/%3E%3Cpath%20d%3D%27M9%2017h4%27/%3E%3C/svg%3E) center/16px 16px no-repeat;
  mask:url(data:image/svg+xml,%3Csvg%20xmlns%3D%27http://www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.7%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%203H7a2%202%200%200%200-2%202v14a2%202%200%200%200%202%202h10a2%202%200%200%200%202-2V8z%27/%3E%3Cpath%20d%3D%27M14%203v5h5%27/%3E%3Cpath%20d%3D%27M9%2013.5h6%27/%3E%3Cpath%20d%3D%27M9%2017h4%27/%3E%3C/svg%3E) center/16px 16px no-repeat;
  transition:opacity .3s var(--btn-ease,cubic-bezier(.2,.7,.3,1));
}
body .n-dl .n-dlr .n-dlk,
body .n-dl .n-dlr .n-dlk .elementor-heading-title{
  font-family:'Archivo','Helvetica Neue',sans-serif;
  font-size:15.5px;
  font-weight:700;
  letter-spacing:-.15px;
  line-height:1.3;
  color:#2B2B2B;
}

/* the availability label */
body .n-dl .n-dlr .n-dlv,
body .n-dl .n-dlr .n-dlv p{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:12px;
  font-weight:500;
  letter-spacing:1.6px;
  text-transform:uppercase;
  line-height:1;
  color:#5B6B7A;
  margin:0;
  white-space:nowrap;
  transition:color .26s var(--btn-ease,cubic-bezier(.2,.7,.3,1));
}

/* leader rule carrying the eye from the document to its availability */
.n-dl .n-dlr .n-dlk{order:1;flex:0 1 auto;min-width:0}
.n-dl .n-dlr::after{
  content:"";
  order:2;
  flex:1 1 40px;
  min-width:28px;
  height:1px;
  align-self:center;
  margin:0 6px;
  background:repeating-linear-gradient(to right,#BECDDA 0 2px,transparent 2px 7px);
  opacity:.75;
  transition:opacity .26s var(--btn-ease,cubic-bezier(.2,.7,.3,1));
}
.n-dl .n-dlr .n-dlv{order:3}
@media (max-width:900px){
  .n-dl .n-dlr::after{display:none}
}

@media (hover:hover) and (pointer:fine){
  .n-dl .n-dlr:hover{background-color:rgba(0,124,196,.08)}
  .n-dl .n-dlr:hover::before{transform:scaleY(1)}
  .n-dl .n-dlr:hover::after{opacity:1}
  .n-dl .n-dlr:hover .n-dlk{transform:translateX(4px)}
  .n-dl .n-dlr:hover .n-dlk::before{opacity:1}
  body .n-dl .n-dlr:hover .n-dlv,
  body .n-dl .n-dlr:hover .n-dlv p{color:#007CC4}
}

@media (max-width:560px){
  .n-dlhead{padding:12px 14px}
  .n-dl .n-dlr{padding-left:14px;padding-right:14px}
  body .n-dl .n-dlr .n-dlk,
  body .n-dl .n-dlr .n-dlk .elementor-heading-title{font-size:14.5px}
  .n-dl .n-dlr .n-dlk{gap:10px}
}

@media (prefers-reduced-motion:reduce){
  .n-dl .n-dlr,
  .n-dl .n-dlr::before,
  .n-dl .n-dlr::after,
  .n-dl .n-dlr .n-dlk,
  body .n-dl .n-dlr .n-dlv{transition-duration:.01ms}
  .n-dl .n-dlr:hover .n-dlk{transform:none}
}


/* --- a register row that carries a real file ----------------------------- */
.n-dl .n-dlr.has-file{cursor:pointer}
.n-dl .n-dlr.has-file .n-dlk::before{
  opacity:1;
  -webkit-mask-image:url(data:image/svg+xml,%3Csvg%20xmlns%3D%27http://www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.7%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%203H7a2%202%200%200%200-2%202v14a2%202%200%200%200%202%202h10a2%202%200%200%200%202-2V8z%27/%3E%3Cpath%20d%3D%27M14%203v5h5%27/%3E%3Cpath%20d%3D%27M12%2011.5v5.5%27/%3E%3Cpath%20d%3D%27M9.6%2014.9%2012%2017.3l2.4-2.4%27/%3E%3C/svg%3E);
  mask-image:url(data:image/svg+xml,%3Csvg%20xmlns%3D%27http://www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.7%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%203H7a2%202%200%200%200-2%202v14a2%202%200%200%200%202%202h10a2%202%200%200%200%202-2V8z%27/%3E%3Cpath%20d%3D%27M14%203v5h5%27/%3E%3Cpath%20d%3D%27M12%2011.5v5.5%27/%3E%3Cpath%20d%3D%27M9.6%2014.9%2012%2017.3l2.4-2.4%27/%3E%3C/svg%3E);
}
.n-dl .n-dlr .n-dlk a,
.n-dl .n-dlr .n-dlk a:visited,
.n-dl .n-dlr .n-dlk a:hover,
.n-dl .n-dlr .n-dlk a:focus{color:inherit;text-decoration:none}
/* the link stretches over the row, so the whole row is the target */
.n-dl .n-dlr.has-file .n-dlk a::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
}
.n-dl .n-dlr.has-file .n-dlk a:focus-visible::after{
  outline:3px solid #1E96DE;
  outline-offset:-3px;
}
body .n-dl .n-dlr.has-file .n-dlv,
body .n-dl .n-dlr.has-file .n-dlv p{color:#007CC4}

/* a transform on .n-dlk would become the containing block for the stretched
   link, shrinking the click area to the name, so linked rows nudge the mark
   instead of the whole label */
.n-dl .n-dlr.has-file:hover .n-dlk{transform:none}
.n-dl .n-dlr.has-file:hover .n-dlk::before{transform:translateY(2px)}


/* ==========================================================================
   HERO SLIDER (19 Sep 2026)
   Three sector images where the enquiry card used to sit. The card now
   closes the page, in the final band.
   ========================================================================== */
.n-hslide{align-self:stretch}
.n-hslider .elementor-slides-wrapper{
  position:relative;
  background:#0F1B26;
  border-top:4px solid #007CC4;
}
/* scrim at the foot only, so the photograph keeps its contrast */
.n-hslider .swiper-slide-inner::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(15,27,38,0) 40%,rgba(15,27,38,.55) 76%,rgba(15,27,38,.88) 100%);
}
.n-hslider .swiper-slide-contents{position:relative;z-index:2}
.n-hslider .elementor-slide-description{max-width:38ch}

/* arrows */
.n-hslider .elementor-swiper-button{
  width:38px;
  height:38px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(15,27,38,.45);
  border:1px solid rgba(255,255,255,.22);
  -webkit-backdrop-filter:saturate(140%) blur(6px);
  backdrop-filter:saturate(140%) blur(6px);
  transition:background-color .22s cubic-bezier(.2,.7,.3,1),border-color .22s cubic-bezier(.2,.7,.3,1);
}
.n-hslider .elementor-swiper-button-prev{left:14px}
.n-hslider .elementor-swiper-button-next{right:14px}
.n-hslider .elementor-swiper-button:hover,
.n-hslider .elementor-swiper-button:focus-visible{background:#007CC4;border-color:#007CC4}
.n-hslider .elementor-swiper-button:focus-visible{outline:3px solid #1E96DE;outline-offset:2px}

/* dots, kept clear of the caption */
.n-hslider .swiper-pagination-bullets{
  bottom:20px;
  left:auto;
  right:22px;
  width:auto;
  display:flex;
  align-items:center;
  gap:7px;
}
.n-hslider .swiper-pagination-bullet{
  width:6px;
  height:6px;
  margin:0;
  opacity:1;
  border-radius:999px;
  transition:width .28s cubic-bezier(.2,.7,.3,1),background-color .28s cubic-bezier(.2,.7,.3,1);
}
.n-hslider .swiper-pagination-bullet-active{width:20px;border-radius:3px}

@media (max-width:1024px){
  .n-hslider .elementor-slide-description{max-width:52ch}
}
@media (max-width:560px){
  .n-hslider .elementor-swiper-button{width:34px;height:34px}
  .n-hslider .elementor-swiper-button-prev{left:10px}
  .n-hslider .elementor-swiper-button-next{right:10px}
  .n-hslider .swiper-pagination-bullets{bottom:16px;right:16px}
}
@media (prefers-reduced-motion:reduce){
  .n-hslider .elementor-ken-burns{animation:none;transform:none}
  .n-hslider .swiper-slide-contents{animation:none}
  .n-hslider .elementor-swiper-button,
  .n-hslider .swiper-pagination-bullet{transition-duration:.01ms}
}

/* the enquiry card in its new home, the closing band */
.n-cta .n-q{align-self:stretch}
@media (max-width:900px){
  .n-cta .n-q{align-self:auto}
}


/* ===== WHY NSTC :: from four boxes to one ledger =====
   The four points were four identical white cards in a 2x2 grid, each with its
   own border and a pale oversized numeral. Four identical cards read as a
   template, and the house rule is that a grid is drawn with one hairline showing
   through the gap, not with separate bordered boxes. These four points are a
   specification, so they are now set as one table: a 3px accent rule opens the
   block, every row carries a mono index, the claim in Archivo and the
   substantiation beside it, and a single hairline divides one row from the next.
   Index, claim and substantiation sit on a shared first baseline so the three
   columns read as one line rather than three blocks. Padding reads Elementor's
   own custom properties so row spacing stays editable in the container panel,
   and the reading column is capped by the grid track rather than by a max-width
   on the widget, so the text holds its measure and its typography stays editable
   in the widget panel. */
.n .n-why{display:block;grid-template-columns:none;gap:0;
  border-top:3px solid var(--bl);border-bottom:1px solid var(--ln)}
.n .n-why .n-wc{display:grid;grid-template-columns:60px minmax(0,1fr);gap:0;
  align-items:baseline;background:#fff;border:0;border-top:1px solid var(--ln);width:100%;
  padding-block:var(--padding-top,26px) var(--padding-bottom,26px);
  padding-inline:var(--padding-left,0px) var(--padding-right,0px);
  transition:background .2s var(--ez)}
.n .n-why .n-wc:first-child{border-top:0}
.n .n-why .n-wc:hover{background:var(--wa)}
.n .n-why .n-wcnum,.n .n-why .n-wcnum p{font-family:var(--fM);line-height:1.2;margin:0}
.n .n-why .n-wcbody{display:grid;grid-template-columns:minmax(200px,300px) minmax(0,600px);
  gap:0 44px;align-items:baseline;width:100%}
@media(max-width:1024px){
  .n .n-why .n-wcbody{grid-template-columns:minmax(150px,240px) minmax(0,1fr);gap:0 28px}
}
@media(max-width:860px){
  .n .n-why .n-wcbody{grid-template-columns:1fr;gap:6px;align-items:start}
  .n .n-why .n-wc{align-items:start}
}
@media(max-width:600px){
  .n .n-why .n-wc{grid-template-columns:1fr;gap:8px}
}
@media(prefers-reduced-motion:reduce){
  .n .n-why .n-wc{transition:none}
}


/* ===== FOOTER :: link columns side by side on phones =====
   Services, Trades and Group each took the full width on a phone, so the footer
   read as four long stacked blocks and the legal line sat far below the fold.
   The three link columns now run two across (set on each container's mobile
   width, so it stays editable in the Layout panel) and three across once the
   viewport can carry a readable column. The brand block keeps the full width
   above them. The 3-up rule needs the footer's own class as well as the element
   class to outweigh Elementor's per-element width, which loads after this file. */
@media(min-width:561px) and (max-width:767px){
  .elementor-location-footer.elementor-45 .elementor-element.n-fcol{width:30%}
}
@media(max-width:767px){
  .elementor-45 .n-fcol .elementor-heading-title{margin-bottom:10px}
  .elementor-45 .n-fcol .elementor-icon-list-item a,
  .elementor-45 .n-fcol .elementor-icon-list-text{font-size:13px;line-height:1.5}
  .elementor-45 .n-fcol .elementor-icon-list-item:not(:last-child){margin-bottom:2px}
  .elementor-45 .n-fbrand p{max-width:46ch}
}
@media(max-width:767px) and (hover:none){
  .elementor-45 .elementor-icon-list-item a:hover{padding-left:0}
}


/* ===== HERO GROUND :: horizon + survey grid =====
   The heroes ran a blue glow anchored to the top right corner over a flat
   #0F1B26, plus fine diagonal pinstripes. Two problems: the scrim behind the
   transparent header swallowed most of that glow before a visitor saw it, and a
   corner anchored glow lands somewhere different on every screen width, so it
   read as a smudge on a phone. The light now rises from the bottom edge, which
   puts the brightest part of the ground under the headline and the primary
   action and resizes predictably from 1440px down to 390px. A 76px survey grid,
   masked so it fades out before it reaches the headline, carries the
   engineering signal and breaks up the banding wide dark gradients show on
   cheap panels. Browsers without mask support simply get the grid at full
   strength, which is still on brand. */
.n-hero{
  background:
    radial-gradient(150% 92% at 50% 122%,rgba(0,124,196,.46) 0%,rgba(0,90,147,.18) 36%,transparent 68%),
    linear-gradient(180deg,#07121C 0%,#0F1B26 58%,#13232F 100%);
  position:relative;overflow:hidden}
.n-hero::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(rgba(63,169,238,.07) 1px,transparent 1px) 0 0/76px 76px,
    linear-gradient(90deg,rgba(63,169,238,.07) 1px,transparent 1px) 0 0/76px 76px;
  -webkit-mask-image:linear-gradient(0deg,#000 0%,rgba(0,0,0,.45) 42%,transparent 78%);
  mask-image:linear-gradient(0deg,#000 0%,rgba(0,0,0,.45) 42%,transparent 78%)}

/* the inner page heroes are shorter, so the glow sits lower and lighter */
.n-ph{
  background:
    radial-gradient(160% 96% at 50% 132%,rgba(0,124,196,.40) 0%,rgba(0,90,147,.15) 36%,transparent 70%),
    linear-gradient(180deg,#08131D 0%,#0F1B26 60%,#12222F 100%);
  position:relative;overflow:hidden}
.n-ph::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(rgba(63,169,238,.06) 1px,transparent 1px) 0 0/76px 76px,
    linear-gradient(90deg,rgba(63,169,238,.06) 1px,transparent 1px) 0 0/76px 76px;
  -webkit-mask-image:linear-gradient(0deg,#000 0%,rgba(0,0,0,.40) 46%,transparent 80%);
  mask-image:linear-gradient(0deg,#000 0%,rgba(0,0,0,.40) 46%,transparent 80%)}

.nstc-pghero{
  background:
    radial-gradient(160% 96% at 50% 132%,rgba(0,124,196,.40) 0%,rgba(0,90,147,.15) 36%,transparent 70%),
    linear-gradient(180deg,#08131D 0%,#0F1B26 60%,#12222F 100%);
  position:relative;overflow:hidden}
.nstc-pghero::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(rgba(63,169,238,.06) 1px,transparent 1px) 0 0/76px 76px,
    linear-gradient(90deg,rgba(63,169,238,.06) 1px,transparent 1px) 0 0/76px 76px;
  -webkit-mask-image:linear-gradient(0deg,#000 0%,rgba(0,0,0,.40) 46%,transparent 80%);
  mask-image:linear-gradient(0deg,#000 0%,rgba(0,0,0,.40) 46%,transparent 80%)}

@media(max-width:767px){
  .n-hero{background:
    radial-gradient(170% 62% at 50% 116%,rgba(0,124,196,.44) 0%,rgba(0,90,147,.17) 34%,transparent 66%),
    linear-gradient(180deg,#07121C 0%,#0F1B26 58%,#13232F 100%)}
  .n-hero::before,.n-ph::before,.nstc-pghero::before{background-size:56px 56px,56px 56px}
}


/* ===== LINK COMPONENTS :: win back their own hover colour =====
   Site Settings sets a global link colour, which Elementor emits as
   .elementor-kit-2 a:hover{color:#005A93}. That .elementor-kit-2 scores one class plus
   :hover plus the a element, which outranks a bare .component:hover, so every
   component below lost its own colour to #005A93. On the white scrolled header
   that turned the Request Manpower pill into #005A93 text on its own #007CC4
   fill on hover, about 1.4:1, effectively unreadable; the transparent state
   only looked right because its rules carry !important. The same rules also
   pulled the utility strip's phone, landline and email links to #007CC4 at
   rest instead of #152D3D. Naming the a element restores each component's own
   colour without touching the global link setting, which body copy still uses. */
.elementor-43 a.n-cta-pill{color:#007CC4}
.elementor-43 a.n-cta-pill:hover,
.elementor-43 a.n-cta-pill:focus-visible{background:#007CC4;color:#FFFFFF;border-color:#007CC4}

a.n-uc,a.n-uc-wa{color:#152D3D}
a.n-uc:hover,a.n-uc:focus-visible{color:#007CC4}
a.n-uc-wa:hover,a.n-uc-wa:focus-visible{color:#08783E}

a.nstc-pill:hover,a.nstc-pill:focus-visible{background:var(--ry);color:#fff;border-color:var(--ry)}
a.nstc-tagchip:hover,a.nstc-tagchip:focus-visible{background:var(--ry);color:#fff}
a.nstc-scopelink:hover,a.nstc-scopelink:focus-visible{color:#007CC4;border-bottom-color:#007CC4}


/* ===== HEADER MENU :: motion on open =====
   The dropdown appeared and vanished instantly, and the item highlight snapped
   on, which is what made the header feel unfinished next to the rest of the
   site. SmartMenus toggles the panel with an inline display, so a transition
   cannot run on it; a keyframe animation can, because it starts the moment the
   element leaves display:none. Four motivated moves, all transform and opacity:
   the panel rises into place, its items follow just behind it, the accent bar
   grows down the left edge of the item under the pointer, and the caret turns
   over while its panel is open. The top level item also keeps its underline
   while its panel is open, so you can still see which menu you are inside once
   the pointer has moved down into the list. Everything collapses to its end
   state under prefers-reduced-motion. */

@keyframes nstcMenuIn{
  from{opacity:0;transform:translateY(-6px) scale(.99)}
  to{opacity:1;transform:none}
}
@keyframes nstcMenuItemIn{
  from{opacity:0;transform:translateX(-6px)}
  to{opacity:1;transform:none}
}

@media(min-width:1025px){
/* the panel */
body .elementor-43 .elementor-nav-menu--main ul.sub-menu{
  transform-origin:top center;
  animation:nstcMenuIn .2s cubic-bezier(.25,.46,.45,.94) both}

/* its items, just behind it */
body .elementor-43 .elementor-nav-menu--main ul.sub-menu>li{
  animation:nstcMenuItemIn .17s cubic-bezier(.25,.46,.45,.94) both;animation-delay:.05s}
body .elementor-43 .elementor-nav-menu--main ul.sub-menu>li:nth-child(2){animation-delay:.066s}
body .elementor-43 .elementor-nav-menu--main ul.sub-menu>li:nth-child(3){animation-delay:.082s}
body .elementor-43 .elementor-nav-menu--main ul.sub-menu>li:nth-child(4){animation-delay:.098s}
body .elementor-43 .elementor-nav-menu--main ul.sub-menu>li:nth-child(5){animation-delay:.114s}
body .elementor-43 .elementor-nav-menu--main ul.sub-menu>li:nth-child(6){animation-delay:.13s}
body .elementor-43 .elementor-nav-menu--main ul.sub-menu>li:nth-child(7){animation-delay:.146s}
body .elementor-43 .elementor-nav-menu--main ul.sub-menu>li:nth-child(n+8){animation-delay:.162s}
}

/* the accent bar grows from the top instead of snapping on. The 3px gutter is
   the anchor's own transparent left border, so nothing shifts sideways. */
body .elementor-43 .elementor-nav-menu--main ul.sub-menu a.elementor-item,
body .elementor-43 .elementor-nav-menu--main ul.sub-menu a.elementor-sub-item{
  position:relative;
  transition:background-color .18s cubic-bezier(.25,.46,.45,.94),color .18s cubic-bezier(.25,.46,.45,.94)}
body .elementor-43 .elementor-nav-menu--main ul.sub-menu a.elementor-item:hover,
body .elementor-43 .elementor-nav-menu--main ul.sub-menu a.elementor-item:focus-visible,
body .elementor-43 .elementor-nav-menu--main ul.sub-menu a.elementor-sub-item:hover,
body .elementor-43 .elementor-nav-menu--main ul.sub-menu a.elementor-sub-item:focus-visible{
  border-left-color:transparent!important}
body .elementor-43 .elementor-nav-menu--main ul.sub-menu a.elementor-item::before,
body .elementor-43 .elementor-nav-menu--main ul.sub-menu a.elementor-sub-item::before{
  content:'';position:absolute;left:-3px;top:0;bottom:0;width:3px;background:#007CC4;
  transform:scaleY(0);transform-origin:top;
  transition:transform .2s cubic-bezier(.25,.46,.45,.94);pointer-events:none}
body .elementor-43 .elementor-nav-menu--main ul.sub-menu a.elementor-item:hover::before,
body .elementor-43 .elementor-nav-menu--main ul.sub-menu a.elementor-item:focus-visible::before,
body .elementor-43 .elementor-nav-menu--main ul.sub-menu a.elementor-sub-item:hover::before,
body .elementor-43 .elementor-nav-menu--main ul.sub-menu a.elementor-sub-item:focus-visible::before{
  transform:scaleY(1)}

/* the caret turns over while its panel is open */
.elementor-43 .elementor-nav-menu--main>ul>li>a.elementor-item .sub-arrow{
  display:inline-flex;align-items:center;
  transition:transform .22s cubic-bezier(.25,.46,.45,.94)}
.elementor-43 .elementor-nav-menu--main>ul>li>a.elementor-item.highlighted .sub-arrow{
  transform:rotate(180deg)}

/* the top level item keeps its underline while its panel is open */
body .elementor-43 .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.highlighted{
  background-size:calc(100% - 26px) 2px!important}

@media(prefers-reduced-motion:reduce){
  body .elementor-43 .elementor-nav-menu--main ul.sub-menu,
  body .elementor-43 .elementor-nav-menu--main ul.sub-menu>li{animation:none!important}
  body .elementor-43 .elementor-nav-menu--main ul.sub-menu a.elementor-item::before,
  body .elementor-43 .elementor-nav-menu--main ul.sub-menu a.elementor-sub-item::before{transition:none}
  .elementor-43 .elementor-nav-menu--main>ul>li>a.elementor-item .sub-arrow{transition:none}
}


/* ===== HEADER NAV :: filled hover on the white band =====
   On the scrolled white header the nav only changed colour and drew a hairline,
   which is a quiet signal on a light ground. Each item now takes a solid
   #005A93 chip with white type on hover, on focus, and while its dropdown is
   open, so the engaged item and its panel read as one object. #005A93 rather
   than #007CC4: white 14px type needs 4.5:1 and the accent gives only 4.49:1,
   while its deeper form gives 7.3:1. The underline is suppressed under the
   fill, since two markers on the same item is one too many. The transparent
   state over the hero keeps its white underline, where a fill would fight the
   photograph. Desktop only; the phone menu is a different component. */
@media(min-width:1025px){
  body .elementor-43.n-solid .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item{
    border-radius:6px;
    transition:background-color .18s cubic-bezier(.25,.46,.45,.94),
               color .18s cubic-bezier(.25,.46,.45,.94),
               background-size .3s cubic-bezier(.25,.46,.45,.94)!important}
  body .elementor-43.n-solid .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:hover,
  body .elementor-43.n-solid .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:focus-visible,
  body .elementor-43.n-solid .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.highlighted{
    background-color:#005A93!important;
    background-image:none!important;
    color:#FFFFFF!important;fill:#FFFFFF!important}
  body .elementor-43.n-solid .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:hover .sub-arrow svg,
  body .elementor-43.n-solid .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:focus-visible .sub-arrow svg,
  body .elementor-43.n-solid .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.highlighted .sub-arrow svg{
    fill:#FFFFFF!important}
}
@media(prefers-reduced-motion:reduce){
  body .elementor-43.n-solid .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item{
    transition:none!important}
}


/* =====================================================================
   AUDIT REMEDIATION — 22 September 2026
   Every rule below corrects a measured defect from the front-end audit.
   Edit or delete it in Elementor > Site Settings > Custom CSS.
   Deleting this whole block restores the 21 September appearance.
   ===================================================================== */

/* --- M-04  Mobile action bar: equal columns, centred, legible ---------- */
@media(max-width:767px){
  .n-mobbar{grid-template-columns:repeat(3,minmax(0,1fr))}
  .n-mb{font-size:12.5px;letter-spacing:.3px;text-align:center;line-height:1.2;padding:8px 6px;min-height:56px}
  /* white on the WhatsApp green measured 1.98:1; dark ink on it is 8.79:1 */
  .n-mb-wa{color:#0F1B26}
  /* white on #007CC4 is 4.49:1 at this size; the palette's Deep Blue is 7.28:1 */
  .n-mb-cta{background:#005A93}
}

/* --- M-03 / N-04  Pointer targets measured below 24x24 px ------------- */
/* Five link-buttons on the home page use the button class with padding:0,
   so the box collapsed onto the text line (16 px tall at every width). */
.elementor-widget-button .elementor-button.elementor-size-sm,
.elementor-widget-button .elementor-button{min-height:32px}
.elementor-widget-button .elementor-button-content-wrapper{min-height:inherit;align-items:center}

/* Carousel pagination dots were 6x6 px. The dot stays, the target grows. */
.elementor-widget-slides .swiper-pagination-bullet{position:relative}
.elementor-widget-slides .swiper-pagination-bullet::after{
  content:"";position:absolute;top:50%;left:50%;width:24px;height:24px;transform:translate(-50%,-50%)}

/* Trade card titles on the catalogue hub were 22 px tall. */
.n-tcard-t a{display:inline-flex;align-items:center;min-height:24px}

/* FAQ accordion: the whole 48 px row is the control; the link inside it
   was only 19 px, so keyboard and touch users aimed at the small target. */
.elementor-accordion .elementor-tab-title a.elementor-accordion-title{
  display:block;min-height:24px;padding-block:3px}

/* Footer and off-canvas menu links were 20 px tall. */
.elementor-location-footer .elementor-icon-list-item>a,
.elementor-element-nstcocv1 .elementor-icon-list-item>a{min-height:24px;align-items:center}
.elementor-element-nstcocv1 .elementor-nav-menu a.elementor-item{min-height:44px;display:flex;align-items:center}

/* Contact page values and breadcrumb links were 13-16 px tall. */
.n-crumb a,.nstc-crumb a,.nstc-ctaurg a{display:inline-flex;align-items:center;min-height:24px}
.v a{display:inline-flex;align-items:center;min-height:24px}

/* --- M-06  Text measured below the 12 px legibility floor ------------- */
.n-crumb a,.n-crumb,.nstc-crumb a,.nstc-crumb{font-size:12px}
.n-lab{font-size:12px}
.k,.fk,.n-f label{font-size:12px;letter-spacing:.06em}
.n-tc-eyebrow{font-size:12px}
.n-dlv{font-size:12px}
.nstc-tbl th,.n-tbl th{font-size:12px}
.nstc-btn,.n-btn,.n-cat-go,.n-cat-trayclear,.n-f2-add,.n-f2-submit{font-size:13px}
.elementor-widget-button .elementor-button-text{font-size:13px}
.n-mb{font-size:12.5px}

/* --- H-04 (the parts that are not the global brand colour) ------------ */
/* #8598A8 on white measured 2.98:1. The palette's Steel Text is 5.49:1. */
.nstc-tradegrid a span{color:#5B6B7A;font-size:12px}
/* Charcoal on the dark ground measured 1.23:1 - effectively invisible. */
.n-step h3{color:#FFFFFF}
/* White on #007CC4 in table headers is 4.49:1; Deep Blue is 7.28:1. */
.nstc-tbl th,.n-tbl th{background-color:#005A93}
/* Brand blue on the amber tray button measured 2.91:1; dark ink is 11.33:1. */
#n-cat-traybtn{color:#0F1B26}
/* Brand blue on the navy panel measured 3.25:1; Blue on Dark is 5.64:1. */
.n-cat-otherbtn{color:#3FA9EE}

/* --- M-09 / link-in-text-block  Links inside paragraphs need more
       than colour to be recognisable. -------------------------------- */
.n-f2-privacy a,
.nstc-body p a[href^="mailto:"],.nstc-body p a[href^="tel:"],
.entry-content p a[href^="mailto:"],
.elementor-widget-text-editor p a[href^="mailto:"]{
  text-decoration:underline;text-underline-offset:2px}

/* --- N-03  Horizontally scrollable tables get a visible focus ring
       once the script below makes them keyboard-reachable. ----------- */
.n-tw:focus-visible,.nstc-tblwrap:focus-visible{outline:3px solid #5DA8E1;outline-offset:2px}

/* --- M-02  Carousel pause control (added by nstc-core.php) ------------ */
.n-slidepause{position:absolute;z-index:6;right:12px;bottom:12px;min-width:44px;min-height:44px;
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:0 12px;border:1px solid rgba(255,255,255,.5);border-radius:4px;
  background:rgba(15,27,38,.72);color:#fff;font:600 12px/1 'Archivo',sans-serif;
  letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.n-slidepause:hover{background:rgba(15,27,38,.9)}
.n-slidepause:focus-visible{outline:3px solid #5DA8E1;outline-offset:2px}
@media(max-width:480px){.n-slidepause{right:8px;bottom:8px;padding:0 10px}}


/* --- AUDIT REMEDIATION - specificity pass (22 Sep 2026) ------------------
   These rules repeat earlier corrections at a weight that beats Elementor's
   per-widget styles. Same intent, higher specificity. --------------------- */
@media(max-width:767px){
  body .n-mobbar .n-mb{min-height:56px;padding:8px 6px;display:flex;align-items:center;justify-content:center}
}
/* M-06: text that must not sit below 12px */
body .elementor-widget-button .elementor-button .elementor-button-text{font-size:13px!important}
body .n-tc .n-tc-eyebrow,body .n-tc-eyebrow{font-size:12px!important}
body .n-dlv,body .elementor-element.n-dlv{font-size:12px!important}
body .n-slidepause{font-size:12px!important}
body .k,body .fk,body .n-lab,body .n-f label{font-size:12px!important}
body .nstc-tbl th,body .n-tbl th{font-size:12px!important}
body .nstc-tradegrid a span{font-size:12px!important}
/* M-03: the last two standalone links under 24px, in the footer contact block */
body .elementor-location-footer a[href^="tel:"],
body .elementor-location-footer a[href^="https://wa.me"],
body .elementor-location-footer a[href^="mailto:"]{display:inline-flex;align-items:center;min-height:24px}

/*MINSIZE*//* End custom CSS */