/*
Theme Name: Hello Elementor NCL
Theme URI: https://nuclearconsulting.co.uk/
Description: Nuclear Consulting Limited child theme. Navy, charcoal and brass.
Author: Nuclear Consulting Limited
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-ncl
*/

/* ============================================================
   NCL design system
   Two brand colours: navy #022251 and brass #C2A14A, taken from
   the company's own palette. Charcoal is the secondary. Cream and
   sand are the neutrals that carry the page. Nothing else.
   ============================================================ */

:root{
  --navy:#022251;
  --navy-dk:#01142F;
  --navy-lt:#123B7A;
  --charcoal:#414042;
  --brass:#C2A14A;
  --brass-dk:#7A6222;      /* small text on light backgrounds: 5.84:1 */
  --brass-lt:#D9C382;
  --on-brass:#01142F;
  --cream:#FBF7F0;
  --sand:#F0EAE0;
  --white:#FFFFFF;
  --ink:#222222;
  --grey:#69727D;
  --line:#DCD5C9;
  --line-dk:rgba(255,255,255,.16);

  --disp:'Instrument Sans','Inter',system-ui,-apple-system,sans-serif;
  --sans:'Inter',system-ui,-apple-system,sans-serif;

  --wrap:1260px;
  --gut:40px;
  --r:10px;          /* card radius */
  --r-lg:14px;       /* image radius */
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;background:var(--cream);color:var(--ink);
  font-family:var(--sans);font-size:17px;line-height:1.65;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}
img{max-width:100%;height:auto}
a{color:var(--navy)}
a:hover{color:var(--brass-dk)}

h1,h2,h3,h4{font-family:var(--disp);font-weight:700;color:var(--navy);letter-spacing:-0.03em;line-height:1.14;margin:0}
h1{font-size:clamp(40px,4.8vw,66px)}
h2{font-size:clamp(32px,4vw,54px)}
h3{font-size:clamp(21px,2vw,25px);letter-spacing:-0.02em}
h4{font-size:19px;letter-spacing:-0.02em}

.ncl-wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut);width:100%}

/* Shared kicker: the only place small caps appear. */
.ncl-kicker{
  display:inline-block;background:var(--brass);color:var(--on-brass);
  font-family:var(--disp);font-weight:700;font-size:12.5px;letter-spacing:.08em;
  text-transform:uppercase;padding:6px 13px;border-radius:99px;margin-bottom:20px;
}
.ncl-eyebrow{
  display:block;font-family:var(--disp);font-weight:700;font-size:12.5px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--brass-dk);margin-bottom:18px;
}

/* ---------------- Buttons ---------------- */
.ncl-btn,.ncl-btn-ghost{
  display:inline-block;text-decoration:none;font-weight:600;font-size:15.5px;
  padding:14px 26px;border-radius:99px;border:1.5px solid transparent;
  transition:background-color .16s ease,color .16s ease,border-color .16s ease;
}
.ncl-btn{background:var(--navy);color:var(--white)}
.ncl-btn:hover{background:var(--brass);color:var(--on-brass)}
.ncl-btn-ghost{background:transparent;color:var(--navy);border-color:var(--navy)}
.ncl-btn-ghost:hover{background:var(--navy);color:var(--white)}
.ncl-btnrow{display:flex;flex-wrap:wrap;gap:12px;margin:40px 0 0 !important;max-width:none !important}

/* On navy panels the pair inverts. */
.ncl-on-dark .ncl-btn{background:var(--brass);color:var(--on-brass)}
.ncl-on-dark .ncl-btn:hover{background:var(--white);color:var(--navy)}
.ncl-on-dark .ncl-btn-ghost{color:var(--white);border-color:rgba(255,255,255,.55)}
.ncl-on-dark .ncl-btn-ghost:hover{background:var(--white);color:var(--navy)}

/* ---------------- Header ---------------- */
.ncl-header{background:var(--navy);color:var(--white);position:relative;z-index:40}
/* The header runs on a wider measure than the content grid, so the nav and the
   call to action have room to breathe. */
.ncl-header .ncl-wrap{max-width:1600px;padding:0 44px}
.ncl-header-bar{display:flex;align-items:center;gap:40px;min-height:88px}
.ncl-brand{display:flex;align-items:center;text-decoration:none;color:var(--white);flex:0 0 auto}
/* The header carries the mark on its own. The full lockup sits on the hero.
   Bar height is unchanged. */
.ncl-brand img{height:42px;width:auto;display:block;filter:brightness(0) invert(1)}
.ncl-nav{margin-left:auto;display:flex;align-items:center;gap:26px}
.ncl-nav ul{list-style:none;display:flex;align-items:center;gap:24px;margin:0;padding:0}
.ncl-nav li{position:relative}
.ncl-nav a{color:rgba(255,255,255,.88);text-decoration:none;font-size:14.5px;font-weight:500;display:block;padding:10px 0;white-space:nowrap}
.ncl-nav a:hover{color:var(--brass)}
.ncl-nav .current-menu-item > a,.ncl-nav .current-menu-ancestor > a{color:var(--brass)}
/* Specific enough to beat the .ncl-nav a rule above. */
.ncl-nav a.ncl-cta,.ncl-cta{
  background:var(--brass);color:var(--on-brass) !important;font-weight:600;
  padding:13px 30px;border-radius:99px;text-decoration:none;font-size:14.5px;
  white-space:nowrap;line-height:1.15;
}
.ncl-nav a.ncl-cta:hover,.ncl-cta:hover{background:var(--white);color:var(--navy) !important}
.ncl-nav-toggle{display:none}

/* Submenus */
.ncl-nav ul ul{
  position:absolute;top:100%;left:-16px;min-width:290px;background:var(--white);
  border-radius:var(--r);box-shadow:0 18px 40px rgba(1,20,47,.22);
  padding:10px 0;display:none;flex-direction:column;align-items:stretch;gap:0;z-index:50;
  border-top:3px solid var(--brass);text-align:left;
}
.ncl-nav ul ul li{width:100%}
.ncl-nav ul ul a{display:block;text-align:left}
.ncl-nav li:hover > ul{display:flex}
.ncl-nav ul ul a{color:var(--navy);padding:9px 20px;font-size:14.5px}
.ncl-nav ul ul a:hover{background:var(--cream);color:var(--brass-dk)}

.ncl-nav ul ul a{white-space:normal}

@media (max-width:1400px){
  .ncl-nav-toggle{
    display:block;margin-left:auto;background:transparent;border:1.5px solid rgba(255,255,255,.5);
    color:var(--white);border-radius:99px;padding:9px 18px;font:600 14.5px/1 var(--sans);cursor:pointer;
  }
  .ncl-nav{
    display:none;position:absolute;top:100%;left:0;right:0;background:var(--navy);
    flex-direction:column;align-items:stretch;gap:0;padding:12px var(--gut) 26px;
    border-top:1px solid var(--line-dk);
  }
  .ncl-nav.open{display:flex}
  .ncl-nav ul{flex-direction:column;align-items:stretch;gap:0}
  .ncl-nav a{padding:11px 0;border-bottom:1px solid rgba(255,255,255,.1)}
  .ncl-nav ul ul{position:static;display:flex;background:transparent;box-shadow:none;border:0;padding:0 0 0 18px}
  .ncl-nav ul ul a{color:rgba(255,255,255,.78)}
  .ncl-cta{margin-top:16px;text-align:center}
}

/* ---------------- Interior hero ----------------
   Navy panel with the headline, photograph alongside. The same split
   the home page opens with, so an interior page is recognisably the
   same site rather than a different one. */
/* The photograph sits behind the whole hero under a navy wash, rather than
   beside the type in a hard split. */
.ncl-hero{position:relative;display:flex;align-items:center;overflow:hidden;background:var(--navy);color:var(--white);min-height:440px}
.ncl-hero-im{position:absolute;inset:0;z-index:0}
.ncl-hero-photo{width:100%;height:100%;object-fit:cover;object-position:center 42%;border-radius:0}
.ncl-hero-im::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(96deg,rgba(2,34,81,.97) 0%,rgba(2,34,81,.94) 32%,rgba(2,34,81,.72) 58%,rgba(1,20,47,.5) 100%);
}
.ncl-hero-txt{position:relative;z-index:2;width:100%;padding:80px 0 84px}
.ncl-hero-inner{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut);width:100%}
.ncl-hero h1{color:var(--white);max-width:17ch}
.ncl-hero-lead{margin:22px 0 0;font-size:19.5px;line-height:1.6;color:rgba(255,255,255,.88);max-width:48ch}
.ncl-hero-meta{margin:20px 0 0;font-family:var(--disp);font-size:13px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--brass)}
.ncl-hero-fibre,.ncl-hero-rule{display:none}
@media (max-width:980px){
  .ncl-hero{min-height:380px}
  .ncl-hero-txt{padding:60px 0 64px}
  .ncl-hero-im::after{background:linear-gradient(180deg,rgba(2,34,81,.95) 0%,rgba(2,34,81,.88) 60%,rgba(1,20,47,.8) 100%)}
}

/* ---------------- Content bands ---------------- */
.ncl-content{padding:0}
.ncl-band{padding:88px 0}
.ncl-band-wash{background:var(--sand)}
.ncl-band:nth-child(odd){background:var(--cream)}
.ncl-band:nth-child(even){background:var(--sand)}
.ncl-band > .ncl-wrap > *:first-child{margin-top:0}
.ncl-band > .ncl-wrap > *:last-child{margin-bottom:0}
@media (max-width:767px){.ncl-band{padding:60px 0}}

.ncl-content h2{margin:0 0 24px;max-width:26ch}
.ncl-content h2[id]{scroll-margin-top:90px}
.ncl-content h3{margin:42px 0 14px;color:var(--navy)}
.ncl-content h2 + h3{margin-top:22px}
.ncl-content h4{margin:30px 0 10px;color:var(--navy)}
.ncl-content p{margin:0 0 1.1em;max-width:none;font-size:18px;line-height:1.7}
.ncl-content p:last-child{margin-bottom:0}
.ncl-content ul,.ncl-content ol{margin:18px 0 24px 22px;padding:0;max-width:none}
.ncl-content li{margin:0 0 9px}
.ncl-content li::marker{color:var(--brass-dk)}
.ncl-content strong{color:var(--navy);font-weight:600}
.ncl-content a{color:var(--navy);text-decoration:underline;text-decoration-color:var(--brass);text-underline-offset:3px;text-decoration-thickness:2px}
.ncl-content a:hover{color:var(--brass-dk)}
.ncl-content blockquote{
  margin:32px 0;padding:28px 32px;background:var(--brass);color:var(--on-brass);
  border-radius:var(--r);font-family:var(--disp);font-weight:600;font-size:22px;line-height:1.35;letter-spacing:-.02em;
}
.ncl-content blockquote p{margin:0}
.ncl-content figure{margin:36px 0}
.ncl-content figure img{border-radius:var(--r-lg);display:block}
.ncl-content figcaption{font-size:14px;color:var(--grey);margin-top:10px}
.ncl-content img{border-radius:var(--r)}
.ncl-sectionlead{font-size:19.5px !important;line-height:1.6;color:var(--grey);max-width:none !important}

/* ---------------- The card list ----------------
   One component for every set on the site. A link is a white card with
   a brass rule that lifts on hover; a plain item is a tinted card that
   does not, so a reader can see at rest which of them go somewhere. */
.ncl-list{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;margin:44px 0 0 !important;padding:0;max-width:none !important;list-style:none;
}
.ncl-list > a,.ncl-list > span{
  display:block;background:var(--white);border-radius:var(--r);
  padding:24px 22px 26px;border-bottom:4px solid var(--brass);
  text-decoration:none !important;transition:transform .16s ease,box-shadow .16s ease;
}
.ncl-list > a:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(2,34,81,.15)}
.ncl-list b{
  display:block;font-family:var(--disp);font-size:18.5px;font-weight:600;
  letter-spacing:-.02em;line-height:1.28;color:var(--navy);margin-bottom:9px;
}
.ncl-list i{display:block;font-style:normal;font-size:15px;line-height:1.5;color:var(--grey)}
.ncl-list > span{background:var(--sand);border-bottom-color:var(--line)}
.ncl-band-wash .ncl-list > span{background:#E6DED1}
.ncl-list > a:hover b{color:var(--brass-dk)}

/* Dark colourway, used on navy panels. */
.ncl-list-dark > a,.ncl-list-dark > span{background:rgba(255,255,255,.07);border-bottom-color:var(--brass)}
.ncl-list-dark b{color:var(--white)}
.ncl-list-dark i{color:rgba(255,255,255,.75)}
.ncl-list-dark > a:hover{background:var(--white)}
.ncl-list-dark > a:hover b{color:var(--navy)}
.ncl-list-dark > a:hover i{color:var(--grey)}
.ncl-list-dark > span{background:rgba(255,255,255,.04);border-bottom-color:rgba(255,255,255,.22)}

/* Insight cards carry an image. */
.ncl-list-img > a{padding:0;overflow:hidden;border-bottom-width:4px}
.ncl-list-img .im{display:block;height:200px;overflow:hidden;border-radius:0}
.ncl-list-img .im img{width:100%;height:100%;object-fit:cover;border-radius:0;display:block;transition:transform .45s ease}
.ncl-list-img > a:hover .im img{transform:scale(1.05)}
.ncl-list-img b{padding:22px 22px 0;font-size:19.5px}
.ncl-list-img i{padding:0 22px 24px;font-family:var(--disp);font-weight:700;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--brass-dk)}

@media (max-width:980px){.ncl-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.ncl-list{grid-template-columns:minmax(0,1fr)}}

/* ---------------- Figures ----------------
   Call-outs. Supporting evidence rather than the argument itself, so they sit
   apart from the prose. */
.ncl-stats{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;
  margin:38px 0 0 !important;max-width:none !important;
}
.ncl-stats > span{
  display:block;background:var(--white);border-radius:var(--r);
  border-left:4px solid var(--brass);padding:22px 24px 24px;
}
.ncl-stats b{
  display:block;font-family:var(--disp);font-weight:700;color:var(--navy);
  font-size:clamp(28px,3vw,38px);letter-spacing:-.03em;line-height:1.05;margin-bottom:8px;
}
.ncl-stats i{display:block;font-style:normal;font-size:15px;line-height:1.45;color:var(--grey)}
.ncl-on-dark .ncl-stats > span,.hm-navy .ncl-stats > span,.hm-deep .ncl-stats > span{background:rgba(255,255,255,.07)}
.ncl-on-dark .ncl-stats b{color:var(--brass)}
.ncl-on-dark .ncl-stats i{color:rgba(255,255,255,.78)}
@media (max-width:980px){.ncl-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.ncl-stats{grid-template-columns:minmax(0,1fr)}}

/* ---------------- Proof ----------------
   One piece of evidence on the page whose claim it supports. */
.ncl-proof{
  display:block;background:var(--navy);color:var(--white);border-radius:var(--r-lg);
  border-left:6px solid var(--brass);padding:30px 34px 32px;margin:40px 0 0 !important;max-width:none !important;
}
.ncl-proof em{
  display:block;font-style:normal;font-family:var(--disp);font-weight:700;font-size:12.5px;
  letter-spacing:.09em;text-transform:uppercase;color:var(--brass);margin-bottom:14px;
}
.ncl-proof b{
  display:block;font-family:var(--disp);font-weight:700;font-size:clamp(21px,2.3vw,28px);
  letter-spacing:-.025em;line-height:1.2;color:var(--white);margin-bottom:12px;
}
.ncl-proof span{display:block;font-size:17px;line-height:1.65;color:rgba(255,255,255,.84)}
@media (max-width:767px){.ncl-proof{padding:26px 24px 28px}}

/* ---------------- Case studies ---------------- */
.ncl-case{
  display:block;background:var(--white);border-radius:var(--r);
  border-top:4px solid var(--brass);padding:28px 30px 30px;margin:0 0 20px !important;max-width:none !important;
}
.ncl-band-wash .ncl-case,.ncl-band:nth-child(even) .ncl-case{background:var(--white)}
.ncl-case b{
  display:block;font-family:var(--disp);font-size:21px;font-weight:700;
  letter-spacing:-.02em;line-height:1.24;color:var(--navy);margin-bottom:8px;
}
.ncl-case i{
  display:block;font-style:normal;font-family:var(--disp);font-weight:700;font-size:12.5px;
  letter-spacing:.06em;text-transform:uppercase;color:var(--brass-dk);margin-bottom:18px;
}
.ncl-case span{display:block;font-size:16.5px;line-height:1.6;color:var(--ink);margin-bottom:10px}
.ncl-case span:last-child{margin-bottom:0}
.ncl-case em{font-style:normal;font-weight:600;color:var(--navy)}
@media (min-width:1100px){
  .ncl-case{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);column-gap:44px;row-gap:0;align-items:start}
  .ncl-case b{grid-column:1;margin-bottom:10px}
  .ncl-case i{grid-column:1;margin-bottom:0}
  .ncl-case span{grid-column:2}
  .ncl-case span:first-of-type{grid-row:1}
}

/* ---------------- Link row ---------------- */
.ncl-linkrow{display:flex;flex-wrap:wrap;gap:14px 36px;margin:28px 0 0 !important;max-width:none !important}
.ncl-content a.ncl-btn,.ncl-content a.ncl-btn-ghost,.ncl-content a.ncl-pop-close{text-decoration:none}
.ncl-content a.ncl-btn{color:var(--white)}
.ncl-content a.ncl-btn:hover{color:var(--on-brass)}
.ncl-content .ncl-on-dark a.ncl-btn,.ncl-band-dark a.ncl-btn{color:var(--on-brass)}
.ncl-band-dark a.ncl-btn:hover{color:var(--navy)}
.ncl-band-dark a.ncl-btn-ghost{color:var(--white)}
.ncl-band-dark a.ncl-btn-ghost:hover{color:var(--navy)}

/* ---------------- People ----------------
   Name in the frame: portrait, name and role on the card, a short summary
   beneath, and the full profile in a pop-out. Rendered by [ncl_people]. */
.ncl-people{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:40px 0 0 !important;max-width:none !important}
.ncl-people > a{
  position:relative;display:flex;flex-direction:column;background:var(--white);border-radius:var(--r);overflow:hidden;
  border-bottom:4px solid var(--brass);text-decoration:none !important;transition:transform .16s ease,box-shadow .16s ease;
}
.ncl-people > a:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(2,34,81,.15)}
.ncl-people .ph{display:flex;align-items:center;justify-content:center;position:relative;height:200px;background:var(--navy);overflow:hidden}
.ncl-people .ph img{width:140px;height:140px;border-radius:50%;object-fit:cover;object-position:center top;display:block;border:4px solid rgba(255,255,255,.22);background:var(--white)}
.ncl-people .ph .init{width:140px;height:140px;border-radius:50%;border:4px solid rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-weight:700;font-size:44px;color:rgba(255,255,255,.55);letter-spacing:-.04em}
.ncl-people .nm{display:block;padding:20px 22px 0}
.ncl-people .nm b{display:block;font-family:var(--disp);font-weight:700;font-size:21px;letter-spacing:-.02em;line-height:1.15;color:var(--navy)}
.ncl-people .nm i{display:block;font-style:normal;font-family:var(--disp);font-weight:600;font-size:12.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--brass-dk);margin-top:6px}
.ncl-people > a:hover .nm b{color:var(--brass-dk)}
.ncl-band-dark .ncl-people .nm b{color:var(--white)}
.ncl-band-dark .ncl-people .nm i{color:var(--brass)}
.ncl-pop-person img{border-radius:50%;background:var(--white)}
.ncl-people .sm{display:block;padding:18px 22px 22px;font-size:15.5px;line-height:1.55;color:var(--grey);flex:1}
.ncl-people .go{display:block;padding:0 22px 20px;font-family:var(--disp);font-weight:700;font-size:14px;color:var(--navy)}
.ncl-people .go::after{content:"\2192";margin-left:8px}
.ncl-people > a:hover .go{color:var(--brass-dk)}
.ncl-band-dark .ncl-people > a{background:rgba(255,255,255,.07)}
.ncl-band-dark .ncl-people .sm{color:rgba(255,255,255,.78)}
.ncl-band-dark .ncl-people .go{color:var(--white)}
/* Compact directory rows: small portrait, name, role, one line each. */
.ncl-people.ncl-people-compact{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 18px;margin-top:22px !important}
.ncl-people-compact > a{flex-direction:row;align-items:center;gap:14px;padding:16px 16px 16px 14px;border-bottom:3px solid var(--brass);border-radius:var(--r);background:var(--white)}
.ncl-people-compact > a:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(2,34,81,.12)}
.ncl-people-compact .ph{height:auto;width:64px;flex:none;background:transparent}
.ncl-people-compact .ph img,.ncl-people-compact .ph .init{width:64px;height:64px;border-width:2px;font-size:20px;color:var(--white);background:var(--navy)}
.ncl-people-compact .nm{padding:0;flex:1;min-width:0}
.ncl-people-compact .nm b{font-size:17px;line-height:1.15}
.ncl-people-compact .nm i{margin-top:5px;font-size:12px;letter-spacing:.02em;text-transform:none;font-weight:500;color:var(--grey);line-height:1.4}
.ncl-people-compact .go{display:none}
@media (max-width:980px){.ncl-people.ncl-people-compact{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.ncl-people.ncl-people-compact{grid-template-columns:1fr}}
.ncl-content h3.ncl-people-h{margin:48px 0 0;padding-top:22px;border-top:1px solid var(--line);font-size:22px;display:flex;align-items:baseline;gap:14px}
.ncl-content h3.ncl-people-h span{font-family:var(--sans);font-weight:500;font-size:14px;color:var(--grey)}
.ncl-content h3.ncl-people-h + .ncl-people{margin-top:22px !important}
.ncl-pop-person{display:grid;grid-template-columns:200px minmax(0,1fr);gap:32px;align-items:start}
.ncl-pop-person img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:var(--r);display:block}
.ncl-pop-person .init{width:100%;aspect-ratio:1/1;border-radius:var(--r);background:var(--navy);display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-weight:700;font-size:56px;color:rgba(255,255,255,.3)}
.ncl-pop-person em{display:block;font-style:normal;font-family:var(--disp);font-weight:700;font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--brass-dk);margin-bottom:10px}
.ncl-pop-person h3{margin:0 0 10px}
/* Practice leadership list. */
.ncl-content ul.ncl-dirs{list-style:none;margin:32px 0 0;padding:0;max-width:none;border-top:1px solid var(--line)}
.ncl-content ul.ncl-dirs li{display:flex;justify-content:space-between;gap:24px;align-items:baseline;margin:0;padding:16px 0;border-bottom:1px solid var(--line);font-size:17px}
.ncl-content ul.ncl-dirs li::marker{content:""}
.ncl-content ul.ncl-dirs a.pr{font-family:var(--disp);font-weight:600;color:var(--navy);text-decoration:none}
.ncl-content ul.ncl-dirs a.pr:hover{color:var(--brass-dk)}
.ncl-content ul.ncl-dirs li > a:not(.pr){font-weight:600;color:var(--navy);text-decoration:none;border-bottom:2px solid var(--brass)}
.ncl-content ul.ncl-dirs li > span{color:var(--grey);font-size:15px}
.ncl-band-dark ul.ncl-dirs,.ncl-band-dark ul.ncl-dirs li{border-color:rgba(255,255,255,.2)}
.ncl-band-dark ul.ncl-dirs a.pr,.ncl-band-dark ul.ncl-dirs li > a:not(.pr){color:var(--white)}
.ncl-band-dark ul.ncl-dirs li > span{color:rgba(255,255,255,.6)}
.ncl-pop-person .ln{display:inline-block;margin-top:14px;font-family:var(--disp);font-weight:700;font-size:14px;color:var(--navy);text-decoration:none !important;border-bottom:2px solid var(--brass)}
@media (max-width:980px){.ncl-people{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.ncl-people{grid-template-columns:1fr}.ncl-pop-person{grid-template-columns:1fr}.ncl-pop-person img,.ncl-pop-person .init{max-width:180px}}
.ncl-content .ncl-linkrow a{
  font-weight:600;color:var(--navy);text-decoration:none;
  border-bottom:2px solid var(--brass);padding-bottom:3px;
}
.ncl-content .ncl-linkrow a:hover{color:var(--brass-dk);border-bottom-color:var(--navy)}

/* ---------------- Alliance partner plates ---------------- */
.ncl-partners{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:34px 0 0 !important;max-width:none !important}
.ncl-content .ncl-partners > a{
  display:block;background:var(--white);border-radius:var(--r);overflow:hidden;
  text-decoration:none !important;border-bottom:4px solid var(--brass);
  transition:transform .16s ease,box-shadow .16s ease;
}
.ncl-content .ncl-partners > a:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(2,34,81,.15)}
.ncl-partners .lg{display:flex;align-items:center;justify-content:center;height:112px;background:var(--navy);padding:22px 28px}
.ncl-partners .lg img{max-height:56px;max-width:210px;width:auto;height:auto;object-fit:contain;filter:brightness(0) invert(1);border-radius:0}
.ncl-partners b{display:block;padding:20px 24px 0;font-family:var(--disp);font-size:18.5px;font-weight:600;letter-spacing:-.02em;color:var(--navy)}
.ncl-partners i{display:block;padding:8px 24px 24px;font-style:normal;font-size:15px;line-height:1.5;color:var(--grey)}
.ncl-content img.ncl-ina-mark{height:72px;width:auto;margin:4px 0 22px;border-radius:0}
@media (max-width:700px){.ncl-partners{grid-template-columns:minmax(0,1fr)}}

/* ---------------- Related pages ---------------- */
.ncl-related{margin:0}
.ncl-related ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;list-style:none;margin:0;padding:0;max-width:none}
.ncl-related li{margin:0}
.ncl-related a{
  display:block;background:var(--white);border-radius:var(--r);padding:20px 22px;
  border-bottom:4px solid var(--brass);text-decoration:none !important;
  font-family:var(--disp);font-weight:600;font-size:17px;letter-spacing:-.02em;color:var(--navy);
  transition:transform .16s ease,box-shadow .16s ease;
}
.ncl-related a:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(2,34,81,.15);color:var(--brass-dk)}
@media (max-width:980px){.ncl-related ul{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.ncl-related ul{grid-template-columns:minmax(0,1fr)}}

/* ---------------- Closing call to action ---------------- */
.ncl-cta-band{background:var(--brass);color:var(--on-brass);padding:92px 0}
.ncl-cta-band h2{color:var(--on-brass);max-width:16ch;margin:0 0 18px}
.ncl-cta-band p{margin:0 0 34px;max-width:54ch;font-size:18.5px;color:rgba(1,20,47,.82)}
.ncl-cta-band .ncl-btn{background:var(--navy-dk);color:var(--white)}
.ncl-cta-band .ncl-btn:hover{background:var(--white);color:var(--navy)}

/* ---------------- Footer ---------------- */
/* Accreditation strip. White ground because the marks are JPGs on white. */
/* Accreditation marks in the footer, white on navy. */
.ncl-footer-marks{display:flex;align-items:center}
.ncl-footer-marks-row{display:flex;align-items:center;gap:36px}
.ncl-footer-marks-row img{height:78px;width:auto;display:block;opacity:.95}
.ncl-footer-marks p{display:none}
@media (max-width:767px){.ncl-footer-marks-row{gap:22px}.ncl-footer-marks-row img{height:56px}}

/* Dark content band: <p class="ncl-band-dark"></p> anywhere in the block. */
.ncl-band.ncl-band-dark,.ncl-band.ncl-band-dark:nth-child(odd),.ncl-band.ncl-band-dark:nth-child(even){background:var(--navy);color:var(--white)}
.ncl-band-dark h2,.ncl-band-dark h3{color:var(--white)}
.ncl-band-dark p{color:rgba(255,255,255,.86)}
.ncl-band-dark a{color:var(--white)}
.ncl-band-dark a:hover{color:var(--brass)}
.ncl-band-dark strong{color:var(--white)}

/* Two-column opening: a display-size statement beside the prose. */
.ncl-band .ncl-wrap:has(> .ncl-lead-big){display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:24px 72px;align-items:start}
.ncl-band .ncl-wrap:has(> .ncl-lead-big) > *{grid-column:1 / -1}
.ncl-band .ncl-wrap:has(> .ncl-lead-big) > p:not([class]){grid-column:2}
.ncl-band .ncl-wrap:has(> .ncl-lead-big) > .ncl-lead-big{grid-column:1;grid-row:1}
.ncl-band .ncl-wrap:has(> .ncl-lead-big) > .ncl-list{margin-top:56px !important}
.ncl-content p.ncl-lead-big{
  font-family:var(--disp);font-weight:700;font-size:clamp(26px,2.6vw,36px);line-height:1.18;letter-spacing:-.025em;
  color:var(--navy);margin:0;max-width:16ch;padding-top:6px;
}
.ncl-content p.ncl-lead-big::before{content:"";display:block;width:84px;height:6px;background:var(--brass);border-radius:3px;margin:0 0 26px}
@media (max-width:980px){.ncl-band .ncl-wrap:has(> .ncl-lead-big){display:block}.ncl-content p.ncl-lead-big{margin-bottom:28px;max-width:22ch}}

/* Numbered steps in a row. */
.ncl-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin:40px 0 0 !important;max-width:none !important}
.ncl-steps > span{display:block;background:var(--white);border-radius:var(--r);border-top:4px solid var(--brass);padding:28px 28px 32px}
.ncl-steps em{display:block;font-style:normal;font-family:var(--disp);font-weight:700;font-size:44px;line-height:1;letter-spacing:-.03em;color:var(--brass);margin-bottom:16px}
.ncl-steps b{display:block;font-family:var(--disp);font-weight:700;font-size:21px;letter-spacing:-.02em;line-height:1.2;color:var(--navy);margin-bottom:10px}
.ncl-steps i{display:block;font-style:normal;font-size:16px;line-height:1.55;color:var(--grey)}
.ncl-band-dark .ncl-steps > span{background:rgba(255,255,255,.07)}
.ncl-band-dark .ncl-steps b{color:var(--white)}
.ncl-band-dark .ncl-steps i{color:rgba(255,255,255,.78)}
.ncl-content p.ncl-note{margin-top:28px;font-size:16.5px;color:var(--grey);max-width:70ch}
.ncl-band-dark p.ncl-note{color:rgba(255,255,255,.7)}
@media (max-width:900px){.ncl-steps{grid-template-columns:1fr}}

/* Full-bleed photograph band inside page content. The content marks the
   band with <p class="ncl-band-img">url|alt</p>; single.php renders it. */
.ncl-strip{min-height:460px}
.ncl-strip .ncl-proof{background:rgba(1,20,47,.82);max-width:820px !important;margin:0 !important;box-shadow:0 24px 60px rgba(0,0,0,.25)}
.ncl-strip .ncl-proof span{font-family:var(--sans);font-weight:400;letter-spacing:0}
.ncl-strip::after{background:linear-gradient(90deg,rgba(1,20,47,.55) 0%,rgba(1,20,47,.35) 60%,rgba(1,20,47,.25) 100%)}

/* Card grid that opens pop-outs. Cards reuse the list component. */
.ncl-list-pop > a{position:relative;padding-top:54px}
.ncl-list-pop > a::before{content:attr(data-n);position:absolute;top:20px;left:24px;font-family:var(--disp);font-weight:700;font-size:13px;letter-spacing:.08em;color:var(--brass-dk)}
.ncl-list-pop > a::after{content:"+";position:absolute;top:14px;right:18px;width:32px;height:32px;border-radius:50%;border:1.5px solid var(--navy);display:flex;align-items:center;justify-content:center;font-size:20px;line-height:1;color:var(--navy);transition:.16s}
.ncl-list-pop > a:hover::after{background:var(--navy);color:var(--white)}
.ncl-list-pop > a small{display:block;margin-top:14px;font-family:var(--disp);font-weight:600;font-size:13px;letter-spacing:.02em;color:var(--brass-dk)}
.ncl-list-dark.ncl-list-pop > a small{color:var(--brass)}
.ncl-pop-dir{display:block;margin:0 0 22px;padding:14px 18px;background:var(--sand);border-radius:var(--r);font-size:15.5px;color:var(--ink)}
.ncl-pop-dir strong{font-family:var(--disp);font-weight:700;font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--brass-dk);display:block;margin-bottom:4px}
.ncl-content p.ncl-dirline{display:inline-flex;align-items:baseline;gap:14px;margin:0 0 30px;padding:14px 20px;border-radius:var(--r);background:rgba(255,255,255,.08);font-size:17px}
.ncl-content p.ncl-dirline strong{font-family:var(--disp);font-weight:700;font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--brass)}
.ncl-band-dark .ncl-list-dark{margin-top:26px !important}
.ncl-pop-more{display:inline-block;margin-top:8px;font-family:var(--disp);font-weight:700;color:var(--navy);text-decoration:none !important;border-bottom:2px solid var(--brass);padding-bottom:2px}
.ncl-pop-more:hover{color:var(--brass-dk)}
.ncl-pop{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(1,20,47,.72)}
.ncl-pop.is-open{display:flex}
.ncl-pop-box{position:relative;background:var(--white);border-radius:var(--r-lg);border-top:6px solid var(--brass);width:100%;max-width:780px;max-height:90vh;overflow:auto;padding:44px 52px 46px}
.ncl-pop-box > em{display:block;font-style:normal;font-family:var(--disp);font-weight:700;font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--brass-dk);margin-bottom:12px}
.ncl-pop-box h3{margin:0 0 8px;font-size:clamp(24px,2.6vw,32px)}
.ncl-pop-box .ncl-pop-line{margin:0 0 24px;font-size:17.5px;color:var(--grey)}
.ncl-pop-box p{margin:0 0 16px;font-size:17.5px;line-height:1.65;color:var(--ink);max-width:none}
.ncl-pop-box p:last-child{margin-bottom:0}
.ncl-pop-box p.ncl-eg{border-left:4px solid var(--brass);padding:4px 0 4px 18px;color:var(--charcoal);font-size:16.5px}
.ncl-pop-box p.ncl-eg strong{font-family:var(--disp);font-weight:700;font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--brass-dk);display:block;margin-bottom:6px}
.ncl-pop-close{position:absolute;top:18px;right:18px;width:40px;height:40px;border-radius:50%;border:1.5px solid var(--navy);background:none;color:var(--navy);font-size:24px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;text-decoration:none}
.ncl-pop-close:hover{background:var(--navy);color:var(--white)}
html.ncl-pop-lock{overflow:hidden}
@media (max-width:767px){.ncl-pop-box{padding:36px 24px 32px}}

/* Accordion of service areas: number, title and one line on the summary,
   prose and an example when opened. Replaces the static anchored panels. */
.ncl-acc{display:block;margin:0 0 0 !important;max-width:none !important;border-top:1px solid var(--line)}
.ncl-acc details{border-bottom:1px solid var(--line)}
.ncl-acc summary{
  list-style:none;cursor:pointer;display:grid;grid-template-columns:56px minmax(0,1fr) 40px;
  align-items:center;gap:20px;padding:26px 0;
}
.ncl-acc summary::-webkit-details-marker{display:none}
.ncl-acc summary em{font-style:normal;font-family:var(--disp);font-weight:700;font-size:14px;letter-spacing:.06em;color:var(--brass-dk)}
.ncl-acc summary b{display:block;font-family:var(--disp);font-weight:700;font-size:clamp(20px,2vw,25px);letter-spacing:-.025em;line-height:1.15;color:var(--navy)}
.ncl-acc summary i{display:block;font-style:normal;font-family:var(--sans);font-weight:400;font-size:16px;letter-spacing:0;line-height:1.5;color:var(--grey);margin-top:6px}
.ncl-acc summary span{
  width:40px;height:40px;border-radius:50%;border:1.5px solid var(--navy);display:flex;align-items:center;justify-content:center;
  color:var(--navy);font-size:22px;line-height:1;transition:.18s;
}
.ncl-acc summary:hover span{background:var(--navy);color:var(--white)}
.ncl-acc details[open] summary span{transform:rotate(45deg);background:var(--navy);color:var(--white)}
.ncl-acc details[open] summary b{color:var(--brass-dk)}
.ncl-acc .ncl-acc-body{padding:0 0 34px 76px;max-width:860px}
.ncl-acc .ncl-acc-body p{margin:0 0 16px;font-size:17.5px;line-height:1.65;color:var(--ink)}
.ncl-acc .ncl-acc-body p:last-child{margin-bottom:0}
.ncl-acc .ncl-acc-body p.ncl-eg{border-left:4px solid var(--brass);padding:4px 0 4px 18px;color:var(--charcoal);font-size:16.5px}
.ncl-acc .ncl-acc-body p.ncl-eg strong{font-family:var(--disp);font-weight:700;font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--brass-dk);display:block;margin-bottom:6px}
.hm-navy .ncl-acc,.hm-deep .ncl-acc,.ncl-on-dark .ncl-acc{border-top-color:rgba(255,255,255,.2)}
.ncl-on-dark .ncl-acc details{border-bottom-color:rgba(255,255,255,.2)}
.ncl-on-dark .ncl-acc summary b{color:var(--white)}
.ncl-on-dark .ncl-acc summary i{color:rgba(255,255,255,.75)}
.ncl-on-dark .ncl-acc summary em{color:var(--brass)}
.ncl-on-dark .ncl-acc summary span{border-color:rgba(255,255,255,.6);color:var(--white)}
.ncl-on-dark .ncl-acc .ncl-acc-body p{color:rgba(255,255,255,.86)}
.ncl-on-dark .ncl-acc .ncl-acc-body p.ncl-eg{color:rgba(255,255,255,.86)}
.ncl-on-dark .ncl-acc .ncl-acc-body p.ncl-eg strong{color:var(--brass)}
@media (max-width:767px){
  .ncl-acc summary{grid-template-columns:36px minmax(0,1fr) 34px;gap:12px;padding:20px 0}
  .ncl-acc .ncl-acc-body{padding-left:0}
}

.ncl-footer{background:var(--navy-dk);color:rgba(255,255,255,.7);padding:56px 0 40px;font-size:15px}
.ncl-footer a{color:rgba(255,255,255,.82);text-decoration:none}
.ncl-footer a:hover{color:var(--brass)}
.ncl-footer-top{display:flex;justify-content:space-between;gap:36px;flex-wrap:wrap;align-items:flex-start}
.ncl-footer-top ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.ncl-footer-accred{margin:0;max-width:34ch;color:rgba(255,255,255,.6);font-size:14px}
.ncl-footer-bottom{
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  margin-top:38px;padding-top:24px;border-top:1px solid rgba(255,255,255,.14);font-size:14px;
}

/* ---------------- Forms (WPForms) ---------------- */
.ncl-content .wpforms-container{max-width:760px;margin:26px 0 0}
.ncl-content .wpforms-field{padding:0 0 20px !important}
.ncl-content .wpforms-field-label{font-family:var(--disp);font-weight:600 !important;font-size:15.5px !important;color:var(--navy) !important;margin-bottom:8px !important}
.ncl-content .wpforms-required-label{color:var(--brass-dk) !important}
.ncl-content .wpforms-field-description{font-size:14px;color:var(--grey)}
.ncl-content input[type=text],.ncl-content input[type=email],.ncl-content input[type=tel],
.ncl-content input[type=url],.ncl-content textarea,.ncl-content select{
  width:100% !important;max-width:560px !important;background:var(--white);
  border:1.5px solid var(--line) !important;border-radius:8px !important;
  padding:12px 14px !important;font:400 16px/1.5 var(--sans) !important;color:var(--ink);
}
.ncl-content input:focus,.ncl-content textarea:focus,.ncl-content select:focus{
  outline:none;border-color:var(--brass) !important;box-shadow:0 0 0 3px rgba(194,161,74,.25) !important;
}
.ncl-content .wpforms-submit{
  background:var(--navy) !important;color:var(--white) !important;border:0 !important;
  border-radius:99px !important;padding:14px 30px !important;
  font:600 15.5px/1 var(--sans) !important;cursor:pointer;transition:background-color .16s ease;
}
.ncl-content .wpforms-submit:hover{background:var(--brass) !important;color:var(--on-brass) !important}
.ncl-content .wpforms-confirmation-container-full{
  background:var(--white);border:0;border-left:4px solid var(--brass);border-radius:var(--r);padding:22px 24px;
}

/* ============================================================
   Home page
   ============================================================ */
/* Same treatment as the interior hero: photograph behind, navy wash over. */
.hm-hero{position:relative;display:flex;align-items:center;overflow:hidden;min-height:660px;background:var(--navy)}
.hm-hero-txt{position:relative;z-index:2;width:100%;color:var(--white);padding:96px 0 100px}
.hm-hero-inner{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut);width:100%}
.hm-hero h1{color:var(--white);font-size:clamp(42px,4.9vw,70px);max-width:15ch}
.hm-hero h1 em{font-style:normal;color:var(--brass)}
.hm-hero p{margin:24px 0 0;font-size:20px;color:rgba(255,255,255,.86);max-width:42ch}
.hm-pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:38px}
.hm-pills a{
  border:1.5px solid rgba(255,255,255,.34);border-radius:99px;padding:9px 19px;
  font-size:14.5px;text-decoration:none;color:var(--white);transition:.16s;
}
.hm-pills a:hover{background:var(--brass);border-color:var(--brass);color:var(--on-brass)}
.hm-hero-im{position:absolute;inset:0;z-index:0}
.hm-hero-im img{width:100%;height:100%;object-fit:cover;object-position:center 42%}
.hm-hero-im::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(96deg,rgba(2,34,81,.97) 0%,rgba(2,34,81,.94) 32%,rgba(2,34,81,.7) 58%,rgba(1,20,47,.46) 100%);
}
@media (max-width:980px){
  .hm-hero{min-height:540px}
  .hm-hero-txt{padding:68px 0 72px}
  .hm-hero-im::after{background:linear-gradient(180deg,rgba(2,34,81,.95) 0%,rgba(2,34,81,.88) 60%,rgba(1,20,47,.82) 100%)}
}

/* Introduction: what NCL is, then the three ways of working as the route in. */
.hm-intro{background:var(--white);padding:104px 0 100px}
.hm-intro .hm-top{align-items:start}
.hm-intro-head{position:static}
.hm-intro-head h2{max-width:12ch}
.hm-intro-btns{margin-top:36px !important}
.hm-prose p{margin:0 0 22px;font-size:18px;line-height:1.7;color:var(--ink);max-width:62ch}
.hm-prose p:last-child{margin-bottom:0}
.hm-prose p.hm-lead{font-size:22px;line-height:1.55;color:var(--navy);margin-bottom:28px;max-width:none}
.hm-prose strong{font-family:var(--disp);font-weight:700;color:var(--navy);letter-spacing:-.01em}
@media (max-width:980px){.hm-intro{padding:72px 0}.hm-intro-head{position:static}.hm-intro-btns{margin:28px 0 40px !important}}

/* A short brass rule sets a section going, instead of a label. */
.hm-rule{display:block;width:84px;height:6px;background:var(--brass);border-radius:3px;margin:0 0 26px}
.hm-hero .hm-rule{width:104px;height:7px;margin-bottom:30px}

/* The full lockup, at size, above the headline. */
.hm-hero-logo{
  display:block;height:74px;width:auto;margin:0 0 34px;
  filter:brightness(0) invert(1);
}
@media (max-width:980px){.hm-hero-logo{height:58px;margin-bottom:26px}}

/* Full-bleed image band with a single statement, vertically centred. */
.hm-strip{position:relative;min-height:420px;display:flex;align-items:center;overflow:hidden;background:var(--navy-dk)}
/* Direct child only: anything else inside the band is content, not the
   background photograph. */
.hm-strip > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hm-strip::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(1,20,47,.92) 0%,rgba(1,20,47,.75) 48%,rgba(1,20,47,.45) 100%)}
.hm-strip-txt{position:relative;z-index:2;width:100%;padding:56px 0}
.hm-strip-txt > .ncl-wrap > p{margin:0 0 30px;max-width:44ch;color:var(--white);font-family:var(--disp);font-weight:600;font-size:clamp(21px,2.2vw,30px);line-height:1.32;letter-spacing:-.02em}
.hm-strip-txt > .ncl-wrap > p.hm-strip-lab{margin:0 0 26px;max-width:none;font-size:12.5px;line-height:1.4}
.hm-strip h2{color:var(--white);font-size:clamp(30px,3.4vw,46px);margin:0 0 24px}
.hm-strip-txt .ncl-btn{background:var(--brass);color:var(--on-brass)}
.hm-strip-txt .ncl-btn:hover{background:var(--white);color:var(--navy)}
@media (max-width:767px){.hm-strip{min-height:340px}}

/* The band carries a label where it holds a set rather than a statement. */
.hm-strip-lab{
  margin:0 0 26px;font-family:var(--disp);font-weight:700;font-size:12.5px;
  letter-spacing:.09em;text-transform:uppercase;color:var(--brass);
}

/* Client marks close the band. Each has had its white ground removed, so they
   all knock out to white cleanly and read as one set rather than ten brands. */
.hm-clients{margin-top:40px;padding-top:32px;border-top:1px solid rgba(255,255,255,.2)}
.hm-logos{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:22px 30px;align-items:center}
.hm-logos span{display:flex;align-items:center;justify-content:center;height:48px}
.hm-logos img{
  max-height:32px;max-width:82%;width:auto;object-fit:contain;
  filter:brightness(0) invert(1);opacity:.78;transition:opacity .18s ease;
}
.hm-accredline{margin:26px 0 0;font-size:14px;color:rgba(255,255,255,.62)}

.hm-strip{padding:72px 0}
.hm-strip-txt{padding:0}
/* Optical sizing: wordmarks read larger than stacked marks at equal height. */
.hm-logos span:nth-child(1) img{max-height:42px}   /* Sizewell C, has a strapline */
.hm-logos span:nth-child(2) img{max-height:24px}   /* Centrica */
.hm-logos span:nth-child(3) img{max-height:44px}   /* UKAEA, stacked */
.hm-logos span:nth-child(5) img{max-height:28px}   /* EDF */
.hm-logos span:nth-child(6) img{max-height:24px}   /* Jacobs */
.hm-logos span:nth-child(7) img{max-height:28px}   /* Dassault */
.hm-logos span:nth-child(9) img{max-height:26px}   /* Hydrock */
.hm-logos span:nth-child(10) img{max-height:28px}  /* AWE */
.hm-logos span:hover img{opacity:1}
@media (max-width:980px){.hm-logos{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:560px){.hm-logos{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Sectors on the band: a plain set of names, no boxes. */
.hm-sectorlist{display:flex;flex-wrap:wrap;gap:12px 14px;margin:0 0 30px;max-width:68ch}
.hm-sectorlist span{
  border:1.5px solid rgba(255,255,255,.34);border-radius:99px;padding:9px 18px;
  color:var(--white);font-size:14.5px;font-weight:500;
}

.hm-sec{padding:100px 0;scroll-margin-top:12px}
.hm-cream{background:var(--cream)}
.hm-sand{background:var(--sand)}
.hm-navy{background:var(--navy);color:var(--white)}
.hm-deep{background:var(--navy-dk);color:var(--white)}
.hm-navy h2,.hm-deep h2,.hm-navy h3,.hm-deep h3{color:var(--white)}
.hm-navy .hm-lead,.hm-deep .hm-lead{color:rgba(255,255,255,.8)}
@media (max-width:767px){.hm-sec{padding:66px 0}}

.hm-top{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:60px;align-items:start}
.hm-lead{font-size:19.5px;line-height:1.6;color:var(--grey);margin:0;max-width:60ch}
@media (max-width:980px){.hm-top{grid-template-columns:1fr;gap:26px}}

.hm-inset{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center}
.hm-inset img{width:100%;height:420px;object-fit:cover;border-radius:var(--r-lg)}
@media (max-width:980px){.hm-inset{grid-template-columns:1fr;gap:30px}.hm-inset img{height:290px}}

.hm-routes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:50px;align-items:stretch}
.hm-rt{
  display:flex;flex-direction:column;background:rgba(255,255,255,.07);
  border:1px solid var(--line-dk);border-bottom:4px solid var(--brass);
  border-radius:var(--r-lg);overflow:hidden;text-decoration:none !important;transition:.16s;height:100%;
}
.hm-rt .im{display:block;height:170px;overflow:hidden}
.hm-rt .im img{width:100%;height:100%;object-fit:cover;display:block;border-radius:0;transition:transform .45s ease}
.hm-rt:hover .im img{transform:scale(1.04)}
.hm-rt .bd{display:block;padding:22px 22px 26px}
.hm-rt b{
  display:block;font-family:var(--disp);font-size:19px;font-weight:600;letter-spacing:-.02em;
  line-height:1.28;color:var(--brass);margin-bottom:9px;
}
.hm-rt i{display:block;font-style:normal;font-size:15px;line-height:1.5;color:rgba(255,255,255,.8)}
.hm-rt:hover{background:rgba(255,255,255,.12)}
@media (max-width:980px){.hm-routes{grid-template-columns:1fr}}

.hm-sectors{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:46px}
.hm-sg{
  display:flex;flex-direction:column;justify-content:flex-end;min-height:134px;
  background:var(--navy);color:var(--white);border-radius:var(--r);padding:22px 20px;
  text-decoration:none;border-bottom:4px solid transparent;transition:.16s;
}
.hm-sg:nth-child(even){background:var(--navy-dk)}
.hm-sg b{font-family:var(--disp);font-size:18px;font-weight:600;letter-spacing:-.02em;color:var(--white)}
.hm-sg:hover{transform:translateY(-4px);border-bottom-color:var(--brass)}
.hm-sg:hover b{color:var(--brass)}
@media (max-width:980px){.hm-sectors{grid-template-columns:repeat(2,minmax(0,1fr))}}

.hm-team{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.hm-team img{width:100%;height:470px;object-fit:cover;border-radius:var(--r-lg)}
.hm-quote{
  background:var(--brass);color:var(--on-brass);border-radius:var(--r-lg);padding:30px 32px;
  font-family:var(--disp);font-weight:600;font-size:23px;line-height:1.3;letter-spacing:-.02em;margin:26px 0;
}
@media (max-width:980px){.hm-team{grid-template-columns:1fr;gap:30px}.hm-team img{height:320px}}

.hm-clients{margin-top:78px;padding-top:40px;border-top:1px solid var(--line)}
.hm-clients h3{margin:0 0 10px}
.hm-certs{display:flex;gap:18px;flex-wrap:wrap;margin-top:28px}
.hm-certs img{height:66px;width:auto;background:var(--white);padding:7px;border-radius:8px}

/* Elementor safety: if any Elementor content survives, keep it on grid. */
.elementor-section > .elementor-container,.e-con>.e-con-inner{max-width:var(--wrap)}

/* ---------------- Cards, second pass ----------------
   Every card opens with a short photograph strip under the navy wash, so a
   grid reads as a set of places rather than a set of boxes. Four images
   rotate by position. Insight cards carry their own image and are left alone. */
.ncl-list > a,.ncl-list > span{padding:0;overflow:hidden;display:flex;flex-direction:column}
.ncl-list > a::before,.ncl-list > span::before{
  content:"";display:block;height:82px;flex:none;background-size:cover;background-position:center 40%;
  background-image:linear-gradient(100deg,rgba(2,34,81,.92),rgba(2,34,81,.55)),url("https://nuclearconsulting.co.uk/wp-content/uploads/2025/12/Detail-Aerial-02_001-200130-scaled-1.jpg");
}
.ncl-list > :nth-child(4n+2)::before{background-image:linear-gradient(100deg,rgba(2,34,81,.92),rgba(2,34,81,.55)),url("https://nuclearconsulting.co.uk/wp-content/uploads/2025/12/Wylfa_nuclear_power_station_from_above.jpg")}
.ncl-list > :nth-child(4n+3)::before{background-image:linear-gradient(100deg,rgba(2,34,81,.92),rgba(2,34,81,.55)),url("https://nuclearconsulting.co.uk/wp-content/uploads/2025/10/Temelin-Nuclear_Power_Station.jpg")}
.ncl-list > :nth-child(4n+4)::before{background-image:linear-gradient(100deg,rgba(2,34,81,.92),rgba(2,34,81,.55)),url("https://nuclearconsulting.co.uk/wp-content/uploads/2025/10/Llyn_Trawsfynydd_looking_north_and_disused_power_station.jpg")}
.ncl-list > a,.ncl-list > span{position:relative}
/* Stylised header: navy plate with fine brass orbit rings, offset differently by position. */
.ncl-list > a::before,.ncl-list > span::before{
  height:118px;background-color:var(--navy);background-size:auto;background-repeat:no-repeat;
  background-image:
    radial-gradient(circle at 88% 120%, transparent 54px, rgba(194,161,74,.55) 55px, rgba(194,161,74,.55) 56.5px, transparent 57.5px),
    radial-gradient(circle at 88% 120%, transparent 84px, rgba(194,161,74,.32) 85px, rgba(194,161,74,.32) 86.5px, transparent 87.5px),
    radial-gradient(circle at 88% 120%, transparent 114px, rgba(194,161,74,.16) 115px, rgba(194,161,74,.16) 116.5px, transparent 117.5px),
    linear-gradient(135deg, #062B62 0%, var(--navy) 55%, var(--navy-dk) 100%);
}
.ncl-list > :nth-child(4n+2)::before{background-image:
    radial-gradient(circle at 12% -30%, transparent 64px, rgba(194,161,74,.5) 65px, rgba(194,161,74,.5) 66.5px, transparent 67.5px),
    radial-gradient(circle at 12% -30%, transparent 98px, rgba(194,161,74,.28) 99px, rgba(194,161,74,.28) 100.5px, transparent 101.5px),
    radial-gradient(circle at 12% -30%, transparent 132px, rgba(194,161,74,.14) 133px, rgba(194,161,74,.14) 134.5px, transparent 135.5px),
    linear-gradient(135deg, #062B62 0%, var(--navy) 55%, var(--navy-dk) 100%)}
.ncl-list > :nth-child(4n+3)::before{background-image:
    radial-gradient(circle at 105% 10%, transparent 44px, rgba(194,161,74,.5) 45px, rgba(194,161,74,.5) 46.5px, transparent 47.5px),
    radial-gradient(circle at 105% 10%, transparent 78px, rgba(194,161,74,.28) 79px, rgba(194,161,74,.28) 80.5px, transparent 81.5px),
    radial-gradient(circle at 105% 10%, transparent 112px, rgba(194,161,74,.14) 113px, rgba(194,161,74,.14) 114.5px, transparent 115.5px),
    linear-gradient(135deg, #062B62 0%, var(--navy) 55%, var(--navy-dk) 100%)}
.ncl-list > :nth-child(4n+4)::before{background-image:
    radial-gradient(circle at 70% 140%, transparent 74px, rgba(194,161,74,.5) 75px, rgba(194,161,74,.5) 76.5px, transparent 77.5px),
    radial-gradient(circle at 70% 140%, transparent 108px, rgba(194,161,74,.28) 109px, rgba(194,161,74,.28) 110.5px, transparent 111.5px),
    radial-gradient(circle at 70% 140%, transparent 142px, rgba(194,161,74,.14) 143px, rgba(194,161,74,.14) 144.5px, transparent 145.5px),
    linear-gradient(135deg, #062B62 0%, var(--navy) 55%, var(--navy-dk) 100%)}
.ncl-list-dark > a::before,.ncl-list-dark > span::before{background-color:var(--navy-dk)}
/* Title sits on the photograph; the line and the audience sit beneath. */
.ncl-list b{position:absolute;top:0;left:0;right:0;height:118px;display:flex;align-items:flex-end;padding:0 22px 14px;margin:0;color:var(--white);font-size:19px;line-height:1.2;text-shadow:0 1px 2px rgba(0,0,0,.25)}
.ncl-list > a:hover b{color:var(--brass)}
.ncl-list i{padding:18px 22px 24px;flex:1}
.ncl-list-pop > a small{display:none}
.ncl-list i:last-child{padding-bottom:24px}
.ncl-list-dark b{color:var(--white)}
.ncl-list-dark > a:hover b{color:var(--brass)}
.ncl-list-dark em{color:var(--brass)}
.ncl-list-dark > a:hover em{color:var(--brass-dk)}
.ncl-list > a:hover::before{filter:saturate(1.15)}
.ncl-list-img > a::before,.ncl-list-img > span::before{display:none}
.ncl-list-img b{position:static;height:auto;display:block;align-items:normal;padding:22px 22px 0;margin:0 0 9px;color:var(--navy);font-size:19.5px;line-height:1.28;text-shadow:none}
.ncl-list-img > a:hover b{color:var(--brass-dk)}
.ncl-list-img i{padding:0 22px 24px;flex:none}
.ncl-list-2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:640px){.ncl-list-2{grid-template-columns:minmax(0,1fr)}}
/* Logo cards: a navy plate carrying the organisation's mark in place of the photograph. */
.ncl-list-logo > a::before,.ncl-list-logo > span::before{display:none}
.ncl-list-logo .lg{display:flex;align-items:center;justify-content:center;height:118px;background:var(--navy);padding:22px 28px}
.ncl-list-logo .lg img{max-height:60px;max-width:72%;width:auto;height:auto;object-fit:contain;border-radius:0;filter:brightness(0) invert(1)}
.ncl-list-logo .lg img.asis{filter:none;max-height:54px}
.ncl-content img.ncl-brandmark{display:block;height:44px;width:auto;margin:0 0 22px;border-radius:0}
.ncl-list-logo .lg .wm{font-family:var(--disp);font-weight:700;font-size:30px;letter-spacing:-.03em;color:var(--white)}
.ncl-list-logo b{position:static;height:auto;display:block;align-items:normal;padding:20px 22px 0;margin:0 0 8px;color:var(--navy);font-size:19px;text-shadow:none}
.ncl-list-logo > a:hover b{color:var(--brass-dk)}
/* Home page grids: same strip height as everywhere else. */
.hm-sec .ncl-list > a::before,.hm-sec .ncl-list > span::before{height:118px}
/* Links inside the hero standfirst. */
.ncl-hero-lead a,.hm-hero p a{color:var(--white);text-decoration:underline;text-decoration-color:var(--brass);text-underline-offset:3px;text-decoration-thickness:2px}
.ncl-hero-lead a:hover,.hm-hero p a:hover{color:var(--brass)}
/* Pop-out cards: no numbers; the + sits on the photograph. */
.ncl-list-pop > a{padding-top:0}
.ncl-list-pop > a::before{content:"";position:static;top:auto;left:auto}
.ncl-list-pop > a::after{top:22px;right:18px;border-color:rgba(255,255,255,.75);color:var(--white)}
.ncl-list-pop > a:hover::after{background:var(--brass);border-color:var(--brass);color:var(--on-brass)}
.ncl-list-pop > a small{padding:0 22px 22px;margin-top:-10px}

/* Cards expand in place. The open card is ringed in brass and its detail
   panel spans the grid beneath its row, so a link from the home page lands
   on the card with the detail already open below. */
.ncl-list-pop > a{scroll-margin-top:120px}
.ncl-list-pop > a.is-active{transform:none;box-shadow:0 0 0 3px var(--brass),0 14px 34px rgba(2,34,81,.15)}
.ncl-list-pop > a.is-active::after{content:"\2212";background:var(--brass);border-color:var(--brass);color:var(--on-brass)}
.ncl-list-pop > a.is-active b{color:var(--brass)}
.ncl-expand{grid-column:1/-1;position:relative;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:44px;align-items:start;background:var(--white);border-radius:var(--r);border-left:6px solid var(--brass);padding:40px 84px 40px 44px;box-shadow:0 14px 34px rgba(2,34,81,.10);animation:nclExpand .26s ease}
@keyframes nclExpand{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
.ncl-expand-main > em{display:block;font-style:normal;font-family:var(--disp);font-weight:700;font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--brass-dk);margin-bottom:10px}
.ncl-expand h3{margin:0 0 8px;font-family:var(--disp);font-weight:600;letter-spacing:-.02em;font-size:clamp(22px,2.2vw,28px);color:var(--navy)}
.ncl-expand .ncl-pop-line{margin:0 0 18px;font-size:17px;line-height:1.5;color:var(--grey)}
.ncl-expand p{margin:0 0 14px;font-size:16.5px;line-height:1.65;color:var(--ink);max-width:none}
.ncl-expand p:last-child{margin-bottom:0}
.ncl-expand .ncl-pop-dir{margin:0 0 18px}
.ncl-expand-side p.ncl-eg{margin:0;background:var(--sand);border-radius:var(--r);border-left:0;padding:22px 24px 24px;color:var(--charcoal);font-size:16px;line-height:1.6}
.ncl-expand-side p.ncl-eg strong{font-family:var(--disp);font-weight:700;font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--brass-dk);display:block;margin-bottom:8px}
.ncl-expand > .ncl-pop-close{top:16px;right:16px}
.ncl-on-dark .ncl-expand h3,.ncl-on-dark .ncl-expand p{color:var(--ink)}
.ncl-on-dark .ncl-expand-main > em,.ncl-on-dark .ncl-expand-side p.ncl-eg strong{color:var(--brass-dk)}
.ncl-on-dark .ncl-expand .ncl-pop-line{color:var(--grey)}
@media (max-width:767px){.ncl-expand{grid-template-columns:minmax(0,1fr);gap:20px;padding:30px 24px 26px}.ncl-expand > .ncl-pop-close{top:12px;right:12px;width:34px;height:34px}}
/* Home page Advisory and Consulting: prose and figures on one side, a
   ruled index of links on the other. The inner pages carry the cards. */
.hm-split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:72px;align-items:start;margin-top:48px}
.hm-split-rev > .hm-split-txt{order:2}
.hm-split-txt p{font-size:18px;line-height:1.68;color:var(--ink);max-width:none;margin:0}
.hm-split .ncl-btnrow{margin-top:30px !important}
.hm-split .ncl-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:34px !important}
.hm-split .ncl-stats > span{padding:18px 20px 20px}
.hm-split .ncl-stats b{font-size:clamp(26px,2.4vw,32px)}
.hm-index{margin:0 !important;padding:0;max-width:none !important;border-top:2px solid var(--brass)}
.hm-index > strong{display:block;font-family:var(--disp);font-weight:700;font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--brass-dk);padding:16px 0 4px}
.hm-index a{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:16px;align-items:baseline;padding:13px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--navy)}
.hm-index a b{font-family:var(--disp);font-weight:600;font-size:17px;letter-spacing:-.01em;line-height:1.3}
.hm-index a i{grid-column:1;font-style:normal;font-size:14.5px;line-height:1.45;color:var(--grey);margin-top:3px}
.hm-index a::after{content:"\2192";grid-column:2;grid-row:1;color:var(--brass);font-size:18px;transition:transform .16s ease}
.hm-index a:hover{color:var(--brass-dk)}
.hm-index a:hover::after{transform:translateX(4px)}
.ncl-on-dark .hm-split-txt p{color:rgba(255,255,255,.88)}
.ncl-on-dark .hm-index > strong{color:var(--brass)}
.ncl-on-dark .hm-index a{color:var(--white);border-bottom-color:rgba(255,255,255,.16)}
.ncl-on-dark .hm-index a i{color:rgba(255,255,255,.66)}
.ncl-on-dark .hm-index a:hover{color:var(--brass)}
@media (max-width:860px){.hm-split{grid-template-columns:minmax(0,1fr);gap:36px}.hm-split-rev > .hm-split-txt{order:0}}
@media (max-width:560px){.hm-split .ncl-stats{grid-template-columns:minmax(0,1fr)}}

/* Insights index: all articles are in the markup; those past the first batch
   are folded until Load more is pressed. */
.ncl-list-img > a.ncl-more{display:none}
.ncl-loadmore{justify-content:center;margin-top:36px !important}
.ncl-loadmore button.ncl-btn{font-family:inherit;cursor:pointer;line-height:1.2}
.ncl-loadmore button.ncl-btn span{opacity:.7;font-weight:500}

/* Sectors: a plain ruled grid, not cards. Nothing here is a link, so
   nothing is dressed as one. */
.ncl-sectors{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:36px 28px;margin:40px 0 0 !important;padding:0;max-width:none !important}
.ncl-sectors > span{display:block;padding-top:18px;border-top:2px solid var(--brass)}
.ncl-sectors b{display:block;font-family:var(--disp);font-weight:600;font-size:20px;letter-spacing:-.02em;line-height:1.25;color:var(--navy);margin-bottom:8px}
.ncl-sectors i{display:block;font-style:normal;font-size:15px;line-height:1.5;color:var(--grey)}
.ncl-on-dark .ncl-sectors b{color:var(--white)}
.ncl-on-dark .ncl-sectors i{color:rgba(255,255,255,.72)}
@media (max-width:980px){.ncl-sectors{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.ncl-sectors{grid-template-columns:minmax(0,1fr)}}
/* Home page grids use the same component, same strip height. */

/* Client logo wall: original marks on white tiles, muted until hover. */
.ncl-content p.ncl-logowall{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;margin:36px 0 0;max-width:none}
.ncl-logowall span{display:flex;align-items:center;justify-content:center;height:104px;background:var(--white);border-radius:var(--r);padding:18px 22px;border:1px solid var(--line)}
.ncl-logowall img{max-height:52px;max-width:100%;width:auto;height:auto;object-fit:contain;border-radius:0;filter:grayscale(1);opacity:.75;transition:.2s}
.ncl-logowall span:hover img{filter:none;opacity:1}
@media (max-width:1100px){.ncl-content p.ncl-logowall{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:640px){.ncl-content p.ncl-logowall{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Comparison table: routes as columns, questions as rows. */
.ncl-content table.ncl-compare{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;margin:40px 0 0;font-size:15.5px;line-height:1.5;background:var(--white);border-radius:var(--r-lg);overflow:hidden;box-shadow:0 1px 0 var(--line)}
.ncl-content .ncl-compare thead th:first-child,.ncl-content .ncl-compare tbody th{width:14%}
.ncl-content .ncl-compare tbody tr:last-child td{text-align:center}
.ncl-content .ncl-compare tbody tr:last-child td a.ncl-btn-sm{white-space:nowrap}
.ncl-content .ncl-compare th,.ncl-content .ncl-compare td{padding:18px 20px;vertical-align:top;text-align:left;border-bottom:1px solid var(--line)}
.ncl-content .ncl-compare thead th{background:var(--navy);color:var(--white);font-family:var(--disp);font-weight:700;font-size:17px;letter-spacing:-.01em;border-bottom:0}
.ncl-content .ncl-compare thead th:first-child{background:var(--navy-dk)}
.ncl-content .ncl-compare thead th small{display:block;font-family:var(--sans);font-weight:400;font-size:13px;color:rgba(255,255,255,.7);margin-top:6px;letter-spacing:0}
.ncl-content .ncl-compare tbody th{font-family:var(--disp);font-weight:700;font-size:16px;letter-spacing:-.01em;text-transform:none;color:var(--white);background:var(--navy)}
.ncl-content .ncl-compare tbody tr:last-child th{background:var(--navy)}
.ncl-content .ncl-compare tbody tr:last-child th,.ncl-content .ncl-compare tbody tr:last-child td{border-bottom:0}
.ncl-content .ncl-compare td{color:var(--ink)}
.ncl-content .ncl-compare td a{white-space:nowrap}
.ncl-content a.ncl-btn-sm{padding:10px 18px;font-size:14px;white-space:normal;text-decoration:none;display:inline-block}
.ncl-content .ncl-compare tbody tr:last-child td{padding-top:20px;padding-bottom:22px}
@media (max-width:900px){
  .ncl-content table.ncl-compare,.ncl-content .ncl-compare thead,.ncl-content .ncl-compare tbody,.ncl-content .ncl-compare tr,.ncl-content .ncl-compare th,.ncl-content .ncl-compare td{display:block;width:auto}
  .ncl-content .ncl-compare thead{display:none}
  .ncl-content .ncl-compare td::before{content:attr(data-col);display:block;font-family:var(--disp);font-weight:700;color:var(--navy);margin-bottom:4px}
}

/* Skip link */
.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:12px;top:12px;z-index:100;background:var(--brass);color:var(--on-brass);padding:10px 16px;border-radius:8px}
