
:root{
  --nt-blue:#1565c0;
  --nt-blue-light:#1976d2;
  --paper:#f4f3ef;
  --ivory: #fafaf8;
  --charcoal:#1c1c1a;
  --charcoal2:#252523;
  --charcoal3:#2e2e2b;
  --gold:#b8972e;
  --gold-light:#d4ae4a;
  --gold-pale:rgba(184,151,46,.12);
  --text-dark:#1c1c1a;
  --text-mid:#5a5a52;
  --text-light:#9a9a8e;
  --border-dark:rgba(255,255,255,.09);
  --border-light:rgba(28,28,26,.1);
  --white:#ffffff;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'DM Sans',sans-serif;
  background:var(--ivory);
  color:var(--text-dark);
  overflow-x:hidden;
  cursor:auto;
  font-size:18px;
  line-height:1.72;
  -webkit-font-smoothing:antialiased;
}

/* ── CURSOR (disabled) ── */
#cur{display:none;}
#cur-ring{display:none;}

/* ── NAV ──
   Always white background, never turns charcoal on scroll.
   Logo always visible on white background.
*/
nav{
  position:fixed;top:0;left:0;right:0;z-index:9000;
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 6%;
  background:var(--white);
  border-bottom:1px solid rgba(28,28,26,.09);
  transition:padding .35s,box-shadow .4s;
}
nav.scrolled{
  padding:10px 6%;
  box-shadow:0 2px 20px rgba(28,28,26,.1);
}
.nav-logo img{
  height:64px;
  width:auto;
  object-fit:contain;
  display:block;
  mix-blend-mode:multiply;
  filter:contrast(1.1) saturate(1.1);
  background:transparent;
}
.nav-links{display:flex;gap:28px;list-style:none;align-items:center;}
.nav-links a{
  text-decoration:none;font-size:15px;font-weight:500;
  letter-spacing:.15px;transition:color .25s;position:relative;
  color:var(--charcoal);
}
.nav-links a::after{
  content:'';position:absolute;bottom:-4px;left:0;right:0;
  height:1px;background:var(--gold);
  transform:scaleX(0);transform-origin:left;transition:transform .3s;
}
.nav-links a:hover::after{transform:scaleX(1);}
.nav-links a:hover{color:var(--gold);}
.nav-cta{
  background:var(--gold)!important;
  color:var(--white)!important;
  padding:11px 28px!important;
  border-radius:2px!important;
  font-weight:600!important;
  letter-spacing:.3px!important;
  transition:background .25s!important;
}
.nav-cta::after{display:none!important;}
.nav-cta:hover{background:var(--gold-light)!important;}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:4px;}
.hamburger span{width:24px;height:1.5px;display:block;background:var(--charcoal);transition:background .3s;}

/* ── MOBILE NAV ── */
.mob-nav{
  display:none;position:fixed;inset:0;background:var(--white);
  z-index:8999;padding:100px 6% 48px;flex-direction:column;gap:0;overflow-y:auto;
  box-shadow:4px 0 32px rgba(0,0,0,.12);
}
.mob-nav.open{display:flex;}
.mob-nav a{
  color:var(--charcoal);text-decoration:none;
  font-family:'DM Sans',sans-serif;font-size:20px;font-weight:600;
  border-bottom:1px solid rgba(28,28,26,.08);padding:20px 0;
  transition:color .25s;
}
.mob-nav a:hover{color:var(--nt-blue);}
.mob-nav-close{
  position:absolute;top:22px;right:24px;
  background:none;border:none;font-size:28px;
  cursor:pointer;color:var(--charcoal);line-height:1;
  padding:8px;
}

/* ── HERO — FULL WIDTH GRADIENT ── */
#hero{
  position:relative;min-height:100vh;display:flex;
  align-items:center;overflow:hidden;
  background:linear-gradient(135deg,#f0f4ff 0%,#fafaf8 40%,#e8f0fe 100%);
}
/* Animated floating orbs */
.hero-pattern{
  position:absolute;inset:0;overflow:hidden;pointer-events:none;
}
.hero-pattern::before{
  content:'';position:absolute;
  width:600px;height:600px;border-radius:50%;
  background:radial-gradient(circle,rgba(21,101,192,.08) 0%,transparent 70%);
  top:-100px;right:-100px;
  animation:heroFloat 8s ease-in-out infinite;
}
.hero-pattern::after{
  content:'';position:absolute;
  width:400px;height:400px;border-radius:50%;
  background:radial-gradient(circle,rgba(184,151,46,.07) 0%,transparent 70%);
  bottom:-80px;left:10%;
  animation:heroFloat 10s ease-in-out infinite reverse;
}
@keyframes heroFloat{
  0%,100%{transform:translateY(0px) scale(1);}
  50%{transform:translateY(-30px) scale(1.05);}
}
/* NT Blue accent line top */
.hero-gold-line{
  position:absolute;top:0;left:6%;width:160px;height:3px;
  background:linear-gradient(90deg,var(--nt-blue),transparent);
}
.hero-content{
  position:relative;z-index:5;
  padding:160px 6% 100px;
  max-width:100%;
  width:100%;
}
.hero-pre{
  display:inline-flex;align-items:center;gap:14px;
  margin-bottom:32px;
  animation:fadeUp .8s ease both;
}
.hero-pre-line{width:48px;height:1px;background:var(--nt-blue);opacity:.6;}
.hero-pre-text{
  font-family:'DM Sans',sans-serif;font-size:12px;font-weight:600;
  letter-spacing:4px;text-transform:uppercase;color:var(--nt-blue);
}
h1.ht{
  font-family:'Cormorant',serif;
  font-size:clamp(80px,10vw,148px);
  font-weight:700;line-height:.86;
  letter-spacing:-4px;
  color:var(--charcoal);
  margin-bottom:40px;
  animation:fadeUp .9s ease .1s both;
}
h1.ht em{font-style:italic;color:var(--nt-blue);font-weight:300;}
.hero-desc{
  font-size:20px;line-height:1.8;
  color:var(--text-mid);
  max-width:640px;margin-bottom:52px;
  font-weight:300;
  animation:fadeUp 1s ease .2s both;
}
.hero-btns{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:88px;
  animation:fadeUp 1s ease .3s both;}
.btn-gold{
  background:var(--nt-blue);color:var(--white);
  padding:18px 48px;border:none;border-radius:2px;
  font-family:'DM Sans',sans-serif;font-weight:600;font-size:16px;
  cursor:pointer;transition:all .25s;text-decoration:none;letter-spacing:.3px;
}
.btn-gold:hover{background:var(--nt-blue-light);transform:translateY(-2px);box-shadow:0 12px 40px rgba(21,101,192,.3);}
.btn-ghost{
  background:transparent;color:var(--charcoal);
  padding:18px 48px;border:1.5px solid rgba(28,28,26,.3);border-radius:2px;
  font-family:'DM Sans',sans-serif;font-weight:600;font-size:16px;
  cursor:pointer;transition:all .25s;text-decoration:none;letter-spacing:.3px;
}
.btn-ghost:hover{background:var(--charcoal);color:var(--white);}
/* Hero stats strip */
.hero-stats{
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid rgba(28,28,26,.12);
  padding-top:44px;gap:0;
  animation:fadeUp 1s ease .4s both;
}
.hstat{padding-right:32px;}
.hstat:not(:first-child){padding-left:32px;border-left:1px solid rgba(28,28,26,.1);}
.hstat-num{
  font-family:'Cormorant',serif;font-size:58px;font-weight:700;
  color:var(--nt-blue);line-height:1;
}
.hstat-label{font-size:13px;color:var(--text-light);margin-top:6px;font-weight:500;letter-spacing:.3px;}
/* Remove right image panel - hidden */
.hero-img{display:none;}
.hero-vline{display:none;}
/* Fade up animation */
@keyframes fadeUp{
  from{opacity:0;transform:translateY(28px);}
  to{opacity:1;transform:translateY(0);}
}

/* ── TICKER ── */
.ticker{background:var(--charcoal);padding:17px 0;overflow:hidden;}
.ticker-inner{display:flex;width:max-content;animation:tickerKf 40s linear infinite;}
.ticker-item{
  white-space:nowrap;padding:0 40px;
  font-size:12px;font-weight:600;
  color:rgba(255,255,255,.35);
  letter-spacing:3px;text-transform:uppercase;
}
.ticker-dot{color:var(--gold);margin-right:40px;}

/* ── SECTION COMMON ── */
section{padding:120px 6%;}
.stag{
  display:inline-flex;align-items:center;gap:14px;
  font-size:11px;font-weight:700;letter-spacing:4px;
  text-transform:uppercase;margin-bottom:22px;
}
.stag::before{content:'';width:40px;height:1px;background:currentColor;flex-shrink:0;}
.stag-gold{color:var(--gold);}
.stag-muted{color:var(--text-light);}
.stag-white{color:rgba(255,255,255,.35);}
h2.sh{
  font-family:'Cormorant',serif;
  font-size:clamp(48px,5.5vw,80px);
  font-weight:600;line-height:.96;
  letter-spacing:-2px;margin-bottom:24px;
}
h2.sh em{font-style:italic;font-weight:300;}
.ssub{font-size:19px;line-height:1.8;font-weight:300;max-width:660px;}

/* ── ABOUT — IVORY ── */
#about{background:var(--ivory);}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:110px;align-items:center;}
.about-body{color:var(--text-mid);}
.about-quote{
  font-family:'Cormorant',serif;font-size:26px;font-style:italic;
  color:var(--charcoal);font-weight:400;
  border-left:2px solid var(--gold);padding-left:28px;
  margin:40px 0;line-height:1.55;
}
.cert-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;}
.ctag{
  padding:8px 18px;border:1px solid rgba(28,28,26,.2);border-radius:2px;
  font-size:12px;font-weight:600;letter-spacing:1.5px;
  color:var(--text-dark);text-transform:uppercase;
  transition:all .25s;cursor:default;
}
.ctag:hover{background:var(--charcoal);color:var(--white);border-color:var(--charcoal);}
.about-stats{display:grid;grid-template-columns:1fr 1fr;gap:3px;}
.astat{
  padding:42px 36px;
  background:var(--charcoal);color:var(--white);
  position:relative;overflow:hidden;
}
.astat:nth-child(even){background:var(--charcoal2);}
.astat::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,var(--gold),transparent);
}
.astat-num{
  font-family:'Cormorant',serif;font-size:66px;font-weight:600;
  line-height:1;color:var(--white);
}
.astat-lbl{font-size:14px;color:rgba(255,255,255,.45);margin-top:8px;letter-spacing:.3px;}

/* ── COMPANIES — CHARCOAL ── */
#companies{background:var(--charcoal);color:var(--white);}
.co-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin-top:72px;}
.co-card{
  background:var(--charcoal2);
  border:1px solid var(--border-dark);
  padding:52px 42px;
  transition:all .35s;cursor:pointer;
  position:relative;overflow:hidden;
}
.co-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,var(--gold),transparent);
  transform:scaleX(0);transform-origin:left;transition:transform .4s;
}
.co-card:hover{background:var(--charcoal3);border-color:rgba(255,255,255,.14);transform:translateY(-5px);}
.co-card:hover::before{transform:scaleX(1);}
.co-num{
  font-family:'Cormorant',serif;font-size:96px;font-weight:300;
  color:rgba(255,255,255,.05);line-height:1;margin-bottom:24px;
  letter-spacing:-4px;
}
.co-card h3{
  font-family:'Cormorant',serif;font-size:30px;font-weight:600;
  margin-bottom:18px;color:var(--white);letter-spacing:-.5px;
}
.co-card p{color:rgba(255,255,255,.45);font-size:16px;line-height:1.8;margin-bottom:28px;font-weight:300;}
.co-ul{list-style:none;display:flex;flex-direction:column;gap:11px;}
.co-ul li{
  font-size:15px;color:rgba(255,255,255,.58);
  display:flex;align-items:center;gap:14px;
}
.co-ul li::before{
  content:'';width:20px;height:1px;
  background:var(--gold);opacity:.6;flex-shrink:0;
}

/* ── SERVICES — PAPER ── */
#services{background:var(--paper);}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin-top:72px;}
.svc-card{
  background:var(--white);
  border:1px solid rgba(28,28,26,.08);
  overflow:hidden;transition:border-color .3s,box-shadow .3s;
  cursor:pointer;
}
.svc-card.open{border-color:var(--gold);box-shadow:0 8px 40px rgba(184,151,46,.1);}
.svc-card:hover:not(.open){border-color:rgba(28,28,26,.2);}
.svc-head{padding:38px 34px;position:relative;}
.svc-svg{width:64px;height:64px;color:#1565c0;margin-bottom:24px;flex-shrink:0;}
.svc-title{
  font-family:'Cormorant',serif;font-size:24px;font-weight:600;
  margin-bottom:12px;color:var(--charcoal);letter-spacing:-.3px;
}
.svc-short{color:var(--text-mid);font-size:16px;line-height:1.7;font-weight:300;padding-right:44px;}
.svc-tog{
  position:absolute;right:26px;top:34px;
  width:36px;height:36px;border-radius:50%;
  border:1.5px solid var(--charcoal);background:transparent;
  color:var(--charcoal);font-size:24px;cursor:pointer;
  transition:all .3s;display:flex;align-items:center;justify-content:center;
  line-height:1;font-family:'DM Sans',sans-serif;font-weight:300;
}
.svc-card.open .svc-tog{background:var(--gold);border-color:var(--gold);color:var(--white);transform:rotate(45deg);}
.svc-body{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.16,1,.3,1);}
.svc-card.open .svc-body{max-height:560px;}
.svc-list{
  padding:0 34px 36px;
  border-top:1px solid rgba(28,28,26,.07);
  padding-top:22px;list-style:none;
}
.svc-list li{
  font-size:16px;color:var(--text-mid);
  padding:7px 0;display:flex;align-items:flex-start;gap:14px;line-height:1.65;
  border-bottom:1px solid rgba(28,28,26,.05);
}
.svc-list li:last-child{border-bottom:none;}
.svc-list li::before{
  content:'—';color:var(--gold);font-size:14px;
  flex-shrink:0;margin-top:2px;font-weight:300;
}

/* ── NUMBERS — CHARCOAL ── */
#numbers{background:var(--charcoal);padding:0;}
.num-grid{display:grid;grid-template-columns:repeat(4,1fr);}
.num-cell{
  padding:72px 52px;
  border-right:1px solid var(--border-dark);
  border-bottom:1px solid var(--border-dark);
  position:relative;
}
.num-cell:last-child{border-right:none;}
.num-cell::after{
  content:'';position:absolute;bottom:0;left:52px;width:40px;height:2px;
  background:var(--gold);opacity:.6;
}
.num-big{
  font-family:'Cormorant',serif;font-size:82px;font-weight:600;
  color:var(--white);line-height:1;
}
.num-suf{
  font-family:'Cormorant',serif;font-size:56px;font-weight:300;
  color:rgba(255,255,255,.25);
}
.num-lbl{
  color:rgba(255,255,255,.38);font-size:13px;
  letter-spacing:2.5px;text-transform:uppercase;
  margin-top:16px;font-weight:600;
}

/* ── SECTORS — CHARCOAL ── */
#sectors{background:var(--charcoal3);color:var(--white);}
.sec-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;margin-top:72px;}
.sec-card{
  background:rgba(255,255,255,.03);
  border:1px solid var(--border-dark);
  overflow:hidden;cursor:pointer;transition:all .3s;
}
.sec-card:hover,.sec-card.open{
  background:rgba(255,255,255,.065);
  border-color:rgba(184,151,46,.4);
}
.sec-head{padding:32px 28px;display:flex;flex-direction:column;gap:18px;position:relative;}
.sec-icon-svg{width:52px;height:52px;color:rgba(255,255,255,.55);transition:color .3s;}
.sec-card:hover .sec-icon-svg,.sec-card.open .sec-icon-svg{color:var(--gold-light);}
.sec-title{
  font-family:'Cormorant',serif;font-size:20px;font-weight:600;
  color:var(--white);line-height:1.25;padding-right:36px;
}
.sec-tog{
  position:absolute;right:20px;top:26px;
  width:30px;height:30px;border-radius:50%;
  border:1px solid rgba(255,255,255,.2);background:transparent;
  color:rgba(255,255,255,.4);font-size:20px;cursor:pointer;
  transition:all .3s;display:flex;align-items:center;justify-content:center;line-height:1;
}
.sec-card.open .sec-tog{background:var(--gold);border-color:var(--gold);color:var(--white);transform:rotate(45deg);}
.sec-body{max-height:0;overflow:hidden;transition:max-height .4s cubic-bezier(.16,1,.3,1);}
.sec-card.open .sec-body{max-height:300px;}
.sec-detail{
  padding:0 28px 28px;
  border-top:1px solid rgba(255,255,255,.05);
  padding-top:18px;font-size:15px;color:rgba(255,255,255,.48);line-height:1.75;font-weight:300;
}

/* ── IN-HOUSE — PAPER ── */
#inhouse{background:var(--paper);}
.ih-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin-top:72px;}
.ih-card{
  background:var(--white);border:1px solid rgba(28,28,26,.08);
  overflow:hidden;transition:border-color .3s;cursor:pointer;
}
.ih-card.open{border-color:var(--gold);}
.ih-card:hover:not(.open){border-color:rgba(28,28,26,.2);}
.ih-head{padding:32px 30px;display:flex;align-items:flex-start;gap:18px;position:relative;}
.ih-num{
  font-family:'Cormorant',serif;font-size:42px;font-weight:300;
  color:rgba(28,28,26,.1);line-height:1;flex-shrink:0;
}
.ih-title{
  font-family:'Cormorant',serif;font-size:20px;font-weight:600;
  color:var(--charcoal);line-height:1.3;padding-right:44px;margin-top:4px;
}
.ih-tog{
  position:absolute;right:22px;top:28px;
  width:32px;height:32px;border-radius:50%;
  border:1.5px solid var(--charcoal);background:transparent;
  color:var(--charcoal);font-size:20px;cursor:pointer;
  transition:all .3s;display:flex;align-items:center;justify-content:center;line-height:1;
}
.ih-card.open .ih-tog{background:var(--gold);border-color:var(--gold);color:var(--white);transform:rotate(45deg);}
.ih-body{max-height:0;overflow:hidden;transition:max-height .4s cubic-bezier(.16,1,.3,1);}
.ih-card.open .ih-body{max-height:180px;}
.ih-detail{
  padding:0 30px 30px;border-top:1px solid rgba(28,28,26,.07);
  padding-top:18px;font-size:16px;color:var(--text-mid);line-height:1.75;font-weight:300;
}

/* ── PROJECTS — CHARCOAL ── */
#projects{background:var(--charcoal);color:var(--white);}
.proj-filters{display:flex;gap:10px;flex-wrap:wrap;margin:52px 0;}
.flt{
  padding:11px 26px;border:1px solid rgba(255,255,255,.16);border-radius:2px;
  background:transparent;color:rgba(255,255,255,.44);
  font-size:14px;cursor:pointer;transition:all .25s;
  font-family:'DM Sans',sans-serif;font-weight:500;letter-spacing:.3px;
}
.flt.active{background:var(--gold);border-color:var(--gold);color:var(--white);font-weight:700;}
.flt:hover:not(.active){border-color:var(--gold);color:rgba(255,255,255,.85);}
.proj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;}
.proj-card{
  background:var(--charcoal2);border:1px solid var(--border-dark);
  overflow:hidden;transition:all .3s;cursor:pointer;
}
.proj-card:hover{background:var(--charcoal3);border-color:rgba(184,151,46,.3);transform:translateY(-4px);}
.proj-top{
  padding:34px;
  border-bottom:1px solid var(--border-dark);
  position:relative;
}
.proj-top::after{
  content:'';position:absolute;bottom:-1px;left:34px;width:36px;height:2px;background:var(--gold);
}
.proj-top h3{
  font-family:'Cormorant',serif;font-size:24px;font-weight:600;
  margin-bottom:6px;color:var(--white);letter-spacing:-.3px;
}
.proj-cat{font-size:12px;color:rgba(255,255,255,.3);letter-spacing:2.5px;text-transform:uppercase;font-weight:600;}
.proj-body{padding:26px 34px;}
.proj-body p{color:rgba(255,255,255,.5);font-size:16px;line-height:1.75;font-weight:300;}
.proj-meta{display:flex;gap:20px;margin-top:18px;}
.proj-meta span{font-size:13px;color:rgba(255,255,255,.25);}
.proj-meta strong{color:rgba(255,255,255,.6);}
.proj-card.hidden{display:none;}

/* ── CLIENTS — IVORY ── */
#clients{background:var(--ivory);padding:110px 0;overflow:hidden;}
.cl-head{text-align:center;padding:0 6%;margin-bottom:72px;}
.cl-head .stag{justify-content:center;}
.mq-wrap{overflow:hidden;}
.mq-row{display:flex;width:max-content;gap:3px;}
.mq-row.r1{animation:mq1 44s linear infinite;}
.mq-row.r2{animation:mq2 52s linear infinite;margin-top:3px;}
.brand-logo{
  background:var(--white);
  border:1px solid rgba(28,28,26,.09);
  padding:26px 44px;
  display:flex;align-items:center;justify-content:center;
  min-width:220px;height:116px;flex-shrink:0;transition:all .35s;
}
/* BRAND LOGOS: full colour, not greyed out */
.brand-logo img{
  max-height:72px;max-width:160px;
  object-fit:contain;
  /* No grayscale — show full colour */
  filter:none;
  transition:transform .35s;
}
.brand-logo:hover{background:var(--paper);border-color:rgba(28,28,26,.2);box-shadow:0 8px 32px rgba(0,0,0,.08);cursor:pointer;}
.brand-logo:hover img{transform:scale(1.06);filter:none;}

/* ── LOGO LIGHTBOX ── */
.logo-lightbox{
  position:fixed;inset:0;background:rgba(28,28,26,.75);
  z-index:10001;display:none;align-items:center;justify-content:center;
  backdrop-filter:blur(8px);
  cursor:pointer;
}
.logo-lightbox.show{display:flex;}
.logo-lightbox-inner{
  background:var(--white);border-radius:4px;
  padding:52px 64px;
  display:flex;flex-direction:column;align-items:center;gap:20px;
  box-shadow:0 24px 80px rgba(0,0,0,.22);
  position:relative;
  cursor:default;
  animation:popIn .28s ease;
  max-width:420px;width:90%;
}
.logo-lightbox-inner img{
  max-width:260px;max-height:140px;object-fit:contain;
}
.logo-lightbox-name{
  font-family:'DM Sans',sans-serif;font-size:15px;font-weight:600;
  color:var(--text-mid);letter-spacing:.5px;text-transform:uppercase;
}
.logo-lightbox-close{
  position:absolute;top:14px;right:18px;
  background:none;border:none;font-size:24px;
  color:var(--text-light);cursor:pointer;line-height:1;
  transition:color .2s;
}
.logo-lightbox-close:hover{color:var(--charcoal);}

/* ── TESTIMONIALS — CHARCOAL ── */
#testimonials{background:var(--charcoal2);color:var(--white);}
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin-top:72px;}
.testi-card{
  background:var(--charcoal3);border:1px solid var(--border-dark);
  padding:44px;position:relative;overflow:hidden;transition:all .3s;
}
.testi-card:hover{background:rgba(255,255,255,.04);border-color:rgba(184,151,46,.3);}
.testi-card::before{
  content:'"';position:absolute;top:-30px;right:28px;
  font-family:'Cormorant',serif;font-size:200px;font-weight:300;
  color:rgba(255,255,255,.03);line-height:1;
}
.t-stars{
  display:flex;gap:4px;margin-bottom:22px;
}
.t-star{
  width:14px;height:14px;background:var(--gold);clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);
}
.t-text{
  color:rgba(255,255,255,.62);font-size:17px;line-height:1.85;
  margin-bottom:32px;font-style:italic;font-weight:300;font-family:'Cormorant',serif;
}
.t-author{display:flex;align-items:center;gap:18px;}
.t-av{
  width:52px;height:52px;border-radius:50%;
  background:linear-gradient(135deg,var(--gold),var(--gold-light));
  display:flex;align-items:center;justify-content:center;
  font-family:'Cormorant',serif;font-weight:700;font-size:20px;
  color:var(--white);flex-shrink:0;
}
.t-name{
  font-family:'Cormorant',serif;font-size:20px;font-weight:600;color:var(--white);
}
.t-role{font-size:13px;color:rgba(255,255,255,.35);margin-top:3px;}

/* ── CERTIFICATIONS — IVORY ── */
#certifications{
  background:var(--ivory);text-align:center;
  border-top:1px solid rgba(28,28,26,.08);
  border-bottom:1px solid rgba(28,28,26,.08);
}
.cert-grid{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:64px;}
.cbadge{
  background:var(--white);border:1px solid rgba(28,28,26,.1);border-radius:2px;
  padding:20px 32px;display:flex;align-items:center;gap:0;
  transition:all .3s;cursor:pointer;
  position:relative;overflow:hidden;
}
.cbadge::before{
  content:'';position:absolute;bottom:0;left:0;right:0;height:2px;
  background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .3s;
}
.cbadge:hover{background:var(--charcoal);box-shadow:0 8px 32px rgba(0,0,0,.1);}
.cbadge:hover .cbadge-text{color:var(--white);}
.cbadge:hover::before{transform:scaleX(1);}
.cbadge-text{
  font-family:'DM Sans',sans-serif;font-size:15px;font-weight:600;
  color:var(--text-dark);letter-spacing:.3px;transition:color .3s;
}

/* ── GLOBAL — CHARCOAL ── */
#global{background:var(--charcoal);color:var(--white);}
.loc-group{margin-bottom:44px;}
.loc-label{
  font-size:11px;letter-spacing:4px;text-transform:uppercase;
  color:rgba(255,255,255,.3);margin-bottom:22px;font-weight:700;
  display:flex;align-items:center;gap:14px;
}
.loc-label::before{content:'';width:28px;height:1px;background:var(--gold);opacity:.6;}
.pills{display:flex;flex-wrap:wrap;gap:10px;}
.pill{
  padding:10px 24px;background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.09);border-radius:2px;
  font-size:15px;color:rgba(255,255,255,.65);transition:all .3s;font-weight:400;
}
.pill:hover{background:var(--gold);border-color:var(--gold);color:var(--white);}
.pill-intl{background:rgba(184,151,46,.06);border-color:rgba(184,151,46,.2);color:rgba(255,255,255,.7);}
.pill-intl:hover{background:var(--gold);border-color:var(--gold);color:var(--white);}

/* ── CONTACT — IVORY ── */
#contact{background:var(--ivory);}
.cg{display:grid;grid-template-columns:1fr 1.15fr;gap:100px;align-items:start;margin-top:76px;}
.ci-h3{
  font-family:'Cormorant',serif;font-size:40px;font-weight:600;
  margin-bottom:44px;letter-spacing:-1px;color:var(--charcoal);
}
.c-items{display:flex;flex-direction:column;gap:28px;}
.c-item{display:flex;gap:22px;align-items:flex-start;}
.c-ico{
  width:52px;height:52px;background:var(--charcoal);color:var(--white);
  border-radius:2px;display:flex;align-items:center;justify-content:center;
  font-size:20px;flex-shrink:0;
}
.c-lbl{font-size:11px;color:var(--text-light);letter-spacing:2.5px;text-transform:uppercase;font-weight:700;}
.c-val{font-size:17px;color:var(--text-dark);margin-top:5px;font-weight:500;line-height:1.6;}
.why-box{
  margin-top:48px;padding:36px 40px;
  background:var(--charcoal);color:var(--white);border-radius:2px;
  border-left:3px solid var(--gold);
}
.why-box h4{
  font-family:'Cormorant',serif;font-size:24px;font-weight:600;
  margin-bottom:14px;
}
.why-box p{color:rgba(255,255,255,.5);font-size:16px;line-height:1.8;font-weight:300;}
.c-form{background:var(--white);border:1px solid rgba(28,28,26,.1);padding:52px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.fg{margin-bottom:24px;}
.fg label{
  display:block;font-size:11px;letter-spacing:2.5px;
  text-transform:uppercase;color:var(--text-light);
  margin-bottom:10px;font-weight:700;
}
.fg input,.fg textarea,.fg select{
  width:100%;background:var(--ivory);border:1.5px solid rgba(28,28,26,.12);
  border-radius:2px;padding:15px 20px;color:var(--text-dark);
  font-family:'DM Sans',sans-serif;font-size:17px;outline:none;
  transition:border-color .25s,background .25s;
}
.fg input:focus,.fg textarea:focus,.fg select:focus{
  border-color:var(--gold);background:var(--white);
}
.fg select option{background:var(--white);}
.fg textarea{height:140px;resize:vertical;}
.c-submit{
  width:100%;background:var(--gold);color:var(--white);
  padding:18px;border:none;border-radius:2px;
  font-family:'DM Sans',sans-serif;font-weight:700;font-size:17px;
  cursor:pointer;transition:all .25s;letter-spacing:.3px;
}
.c-submit:hover{background:var(--gold-light);transform:translateY(-2px);box-shadow:0 12px 40px rgba(184,151,46,.25);}

/* ── POPUP ── */
.popup-ov{
  position:fixed;inset:0;background:rgba(28,28,26,.92);
  z-index:10000;display:none;align-items:center;justify-content:center;
  backdrop-filter:blur(12px);
}
.popup-ov.show{display:flex;}
.popup-box{
  background:var(--ivory);padding:60px;text-align:center;
  max-width:520px;width:92%;border-radius:2px;
  border-top:3px solid var(--gold);
  animation:popIn .35s ease;
}
.popup-icon{
  width:68px;height:68px;margin:0 auto 24px;
  background:var(--gold);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
}
.popup-icon svg{width:32px;height:32px;color:var(--white);}
.popup-box h3{
  font-family:'Cormorant',serif;font-size:36px;font-weight:600;
  color:var(--charcoal);margin-bottom:14px;letter-spacing:-.5px;
}
.popup-box p{color:var(--text-mid);font-size:17px;line-height:1.75;font-weight:300;}
.popup-close{
  margin-top:32px;padding:15px 44px;background:var(--charcoal);
  color:var(--white);border:none;border-radius:2px;
  font-family:'DM Sans',sans-serif;font-weight:700;cursor:pointer;font-size:16px;
  transition:background .25s;
}
.popup-close:hover{background:var(--gold);}

/* ── GALLERY / TEAM SECTION ── */
#gallery{background:var(--ivory);border-top:1px solid rgba(28,28,26,.07);}
.gallery-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:52px 0 40px;}
.gtab{
  padding:10px 26px;border:1px solid rgba(28,28,26,.18);border-radius:2px;
  background:transparent;color:var(--text-mid);
  font-size:14px;cursor:pointer;transition:all .25s;
  font-family:'DM Sans',sans-serif;font-weight:500;letter-spacing:.3px;
}
.gtab.active{background:var(--nt-blue);border-color:var(--nt-blue);color:var(--white);font-weight:700;}
.gtab:hover:not(.active){border-color:var(--nt-blue);color:var(--nt-blue);}
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:4px;
}
.gallery-item{
  position:relative;overflow:hidden;
  aspect-ratio:4/3;
  background:var(--paper);
  cursor:pointer;
}
.gallery-item img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .5s cubic-bezier(.25,.46,.45,.94);
  display:block;
}
.gallery-item:hover img{transform:scale(1.06);}
.gallery-overlay{
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(21,101,192,.82) 0%,transparent 55%);
  opacity:0;transition:opacity .35s;
  display:flex;align-items:flex-end;padding:22px;
}
.gallery-item:hover .gallery-overlay{opacity:1;}
.gallery-caption{
  color:var(--white);font-size:14px;font-weight:600;
  letter-spacing:.3px;line-height:1.4;
}
/* Placeholder card shown before images are added */
.gallery-placeholder{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:14px;background:var(--paper);border:2px dashed rgba(28,28,26,.15);
  aspect-ratio:4/3;
}
.gallery-placeholder svg{width:44px;height:44px;color:rgba(28,28,26,.2);}
.gallery-placeholder p{font-size:13px;color:var(--text-light);text-align:center;line-height:1.5;padding:0 16px;}

/* Lightbox for gallery */
.glb-ov{
  position:fixed;inset:0;background:rgba(10,10,10,.93);
  z-index:10002;display:none;align-items:center;justify-content:center;
  backdrop-filter:blur(6px);
}
.glb-ov.show{display:flex;}
.glb-inner{position:relative;max-width:90vw;max-height:88vh;display:flex;flex-direction:column;align-items:center;gap:16px;}
.glb-inner img{max-width:100%;max-height:80vh;object-fit:contain;border-radius:2px;}
.glb-cap{color:rgba(255,255,255,.7);font-size:14px;letter-spacing:.5px;}
.glb-close{
  position:absolute;top:-44px;right:0;
  background:none;border:none;color:rgba(255,255,255,.6);
  font-size:32px;cursor:pointer;line-height:1;transition:color .2s;
}
.glb-close:hover{color:var(--white);}
.glb-nav{
  position:absolute;top:50%;transform:translateY(-50%);
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);
  color:var(--white);font-size:22px;width:48px;height:48px;border-radius:50%;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background .2s;
}
.glb-nav:hover{background:rgba(21,101,192,.7);}
.glb-prev{left:-64px;}
.glb-next{right:-64px;}

/* ── COMPLAINT BOX ── */
.complaint-wrap{
  margin-top:60px;padding:0;
}
.complaint-toggle-btn{
  display:flex;align-items:center;gap:14px;
  background:none;border:1.5px solid rgba(28,28,26,.18);border-radius:2px;
  padding:18px 28px;cursor:pointer;font-family:'DM Sans',sans-serif;
  font-size:16px;font-weight:600;color:var(--text-dark);
  transition:all .3s;width:100%;text-align:left;
}
.complaint-toggle-btn:hover{border-color:var(--nt-blue);color:var(--nt-blue);}
.complaint-toggle-btn svg{flex-shrink:0;color:var(--nt-blue);}
.complaint-toggle-btn .ctb-arrow{margin-left:auto;transition:transform .3s;color:var(--text-light);}
.complaint-toggle-btn.open .ctb-arrow{transform:rotate(180deg);}
.complaint-form-wrap{
  max-height:0;overflow:hidden;
  transition:max-height .45s cubic-bezier(.16,1,.3,1);
}
.complaint-form-wrap.open{max-height:800px;}
.complaint-form{
  background:var(--white);border:1.5px solid rgba(28,28,26,.1);border-top:none;
  padding:36px 40px 40px;
  border-bottom-left-radius:2px;border-bottom-right-radius:2px;
}
.complaint-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.complaint-form .fg{margin-bottom:18px;}
.complaint-badge{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(21,101,192,.08);border:1px solid rgba(21,101,192,.18);
  border-radius:2px;padding:8px 16px;margin-bottom:22px;
  font-size:12px;font-weight:700;color:var(--nt-blue);letter-spacing:1px;text-transform:uppercase;
}
.c-complaint-submit{
  width:100%;background:var(--nt-blue);color:var(--white);
  padding:16px;border:none;border-radius:2px;
  font-family:'DM Sans',sans-serif;font-weight:700;font-size:16px;
  cursor:pointer;transition:all .25s;letter-spacing:.3px;
}
.c-complaint-submit:hover{background:var(--nt-blue-light);transform:translateY(-2px);box-shadow:0 10px 32px rgba(21,101,192,.25);}

/* ── FOOTER — CHARCOAL ── */
footer{
  background:var(--charcoal);color:var(--white);
  border-top:1px solid var(--border-dark);padding:88px 6% 44px;
}
.footer-grid{display:grid;grid-template-columns:2.3fr 1fr 1fr 1fr;gap:64px;margin-bottom:64px;}
.footer-brand img{
  height:60px;object-fit:contain;display:block;margin-bottom:24px;
  /* Logo in footer: white bg is charcoal — use mix-blend to remove white around logo */
  mix-blend-mode:screen;
  filter:brightness(1.1);
}
.footer-brand p{color:rgba(255,255,255,.4);font-size:15px;line-height:1.85;max-width:300px;font-weight:300;}
.f-socials{display:flex;gap:10px;margin-top:28px;}
.f-s{
  width:42px;height:42px;background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);border-radius:2px;
  display:flex;align-items:center;justify-content:center;
  font-size:14px;text-decoration:none;color:rgba(255,255,255,.5);
  transition:all .25s;font-weight:700;
}
.f-s:hover{background:var(--gold);border-color:var(--gold);color:var(--white);}
footer h4{
  font-size:11px;font-weight:700;letter-spacing:3.5px;
  text-transform:uppercase;color:rgba(255,255,255,.28);margin-bottom:26px;
}
.f-links{list-style:none;display:flex;flex-direction:column;gap:14px;}
.f-links a{
  color:rgba(255,255,255,.46);text-decoration:none;font-size:16px;
  transition:color .25s;
}
.f-links a:hover{color:var(--gold-light);}
.f-bot{
  border-top:1px solid rgba(255,255,255,.06);padding-top:32px;
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;
}
.f-bot p{color:rgba(255,255,255,.24);font-size:14px;}
.f-bot span{color:rgba(255,255,255,.5);}

/* ── REVEAL ── */
.reveal{opacity:0;transform:translateY(30px);transition:all .8s cubic-bezier(.16,1,.3,1);}
.reveal.vis{opacity:1;transform:translateY(0);}

/* ── KEYFRAMES ── */
@keyframes tickerKf{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes mq1{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes mq2{from{transform:translateX(-50%)}to{transform:translateX(0)}}
@keyframes popIn{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}

/* ── RESPONSIVE ── */
@media(max-width:1200px){
  .about-grid,.co-grid,.testi-grid,.footer-grid,.cg{grid-template-columns:1fr;gap:52px;}
  .svc-grid,.ih-grid{grid-template-columns:repeat(2,1fr);}
  .num-grid{grid-template-columns:repeat(2,1fr);}
  .sec-grid{grid-template-columns:repeat(2,1fr);}
  .hero-stats{grid-template-columns:repeat(2,1fr);}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:768px){
  nav{padding:12px 5%;}
  nav .nav-links{display:none;}
  .hamburger{display:flex;}
  .proj-grid,.co-grid,.svc-grid,.ih-grid,.testi-grid{grid-template-columns:1fr;}
  .num-grid,.sec-grid{grid-template-columns:repeat(2,1fr);}
  .form-row{grid-template-columns:1fr;}
  .complaint-form .form-row{grid-template-columns:1fr;}
  .hero-stats{grid-template-columns:repeat(2,1fr);gap:0;}
  .hstat:nth-child(3){border-left:none;padding-left:0;}
  .hstat-num{font-size:44px;}
  h1.ht{font-size:clamp(62px,15vw,100px);letter-spacing:-2px;}
  .hero-content{padding:130px 5% 80px;}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  .gallery-tabs{gap:8px;}
  .gtab{padding:8px 16px;font-size:13px;}
  .glb-prev{left:-16px;}
  .glb-next{right:-16px;}
  .complaint-form{padding:24px 20px 28px;}
  .c-form{padding:32px 20px;}
}
@media(max-width:480px){
  h1.ht{font-size:clamp(52px,17vw,80px);}
  .hero-stats{grid-template-columns:1fr 1fr;}
  .gallery-grid{grid-template-columns:1fr;}
  .num-grid{grid-template-columns:1fr 1fr;}
  .sec-grid{grid-template-columns:1fr 1fr;}
  .footer-grid{grid-template-columns:1fr;}
}
