/* ===========================================================================
   NCG — Theme  |  Headings: Lexend Deca  ·  Body: Inter
   Colors sampled from the NCG logo.
   =========================================================================== */
:root{
  --ncg-purple:#7A2E7A; --ncg-violet:#5B3FA0; --ncg-blue:#3B39A8;
  --ncg-charcoal:#3F3F44; --ncg-ink:#24242a; --ncg-muted:#65656f;
  --ncg-line:#eceaf1; --ncg-bg:#ffffff; --ncg-bg-soft:#f7f6fb;
  --ncg-gradient:linear-gradient(135deg,var(--ncg-purple) 0%,var(--ncg-violet) 55%,var(--ncg-blue) 100%);
}
*{scroll-margin-top:90px}
html{scroll-behavior:smooth}
body{font-family:'Inter',system-ui,-apple-system,sans-serif;color:var(--ncg-charcoal);
  background:var(--ncg-bg);font-weight:400;line-height:1.7;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,h6,.display-1,.display-2,.display-3{font-family:'Lexend Deca',sans-serif;
  color:var(--ncg-ink);font-weight:600;letter-spacing:-.01em;line-height:1.2}
p{color:var(--ncg-muted)}
a{text-decoration:none}
.text-grad{background:var(--ncg-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

.section{padding:5.5rem 0;position:relative;overflow:hidden}
.section-soft{background:var(--ncg-bg-soft)}
.eyebrow{font-family:'Lexend Deca',sans-serif;font-size:.76rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ncg-purple);margin-bottom:.75rem}
.lead-max{max-width:760px}
.section-head{margin-bottom:3rem}

/* ---- Section background system (no flat colours) ---- */
/* soft top-to-bottom tint so sections never read as plain white */
.section-soft{background:
  linear-gradient(180deg,#faf9fd 0%,#f5f3fa 100%)}
/* gradient mesh blobs (depth) */
.bg-mesh::before{content:"";position:absolute;width:600px;height:600px;border-radius:50%;
  background:var(--ncg-gradient);opacity:.08;filter:blur(40px);z-index:0;top:-180px;right:-150px;pointer-events:none}
.bg-mesh-l::after{content:"";position:absolute;width:520px;height:520px;border-radius:50%;
  background:var(--ncg-gradient);opacity:.07;filter:blur(40px);z-index:0;bottom:-200px;left:-170px;pointer-events:none}
/* faint brand geometric pattern tile */
.bg-pattern{background-image:url('../img/pattern-grid.svg');background-size:80px 80px}
.bg-pattern-lines{background-image:url('../img/pattern-lines.svg');background-size:60px 60px}
/* dot grid, fading out */
.bg-dots::before{content:"";position:absolute;inset:0;z-index:0;opacity:.5;pointer-events:none;
  background-image:radial-gradient(var(--ncg-violet) 1.2px,transparent 1.2px);background-size:28px 28px;
  -webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(0,0,0,.14),transparent 75%);
  mask-image:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(0,0,0,.14),transparent 75%)}
/* soft gradient overlay wash (very light, tints the section) */
.bg-wash{background:
  radial-gradient(1200px 500px at 15% -10%,rgba(122,46,122,.05),transparent 60%),
  radial-gradient(1000px 500px at 100% 10%,rgba(59,57,168,.05),transparent 55%)}
.bg-wash.section-soft{background:
  radial-gradient(1200px 500px at 15% -10%,rgba(122,46,122,.06),transparent 60%),
  radial-gradient(1000px 500px at 100% 10%,rgba(59,57,168,.06),transparent 55%),
  linear-gradient(180deg,#faf9fd 0%,#f5f3fa 100%)}
.section > .container{position:relative;z-index:1}

/* thin gradient rule */
.grad-rule{height:4px;width:64px;border-radius:4px;background:var(--ncg-gradient);margin-bottom:1.2rem}
.grad-rule.center{margin-left:auto;margin-right:auto}

/* ---- Buttons ---- */
.btn-ncg{background:var(--ncg-gradient);color:#fff;border:none;font-family:'Lexend Deca',sans-serif;
  font-weight:500;padding:.7rem 1.6rem;border-radius:9px;transition:transform .18s,box-shadow .18s}
.btn-ncg:hover{color:#fff;transform:translateY(-2px);box-shadow:0 12px 26px rgba(91,63,160,.30)}
.btn-ncg-outline{background:transparent;color:var(--ncg-purple);border:1.5px solid var(--ncg-purple);
  font-family:'Lexend Deca',sans-serif;font-weight:500;padding:.7rem 1.6rem;border-radius:9px;transition:all .18s}
.btn-ncg-outline:hover{background:var(--ncg-purple);color:#fff;transform:translateY(-2px)}
.btn-link-ncg{font-family:'Lexend Deca',sans-serif;font-weight:500;color:var(--ncg-purple);display:inline-flex;
  align-items:center;gap:.4rem;transition:gap .18s}
.btn-link-ncg:hover{color:var(--ncg-blue);gap:.7rem}
.btn-link-ncg .ncg-ico{width:18px;height:18px}

/* ---- Icons ---- */
.ncg-ico{stroke:currentColor;flex:none}
.ncg-ico-sm{width:18px;height:18px;stroke:var(--ncg-purple);flex:none}
.ncg-ico-tile{width:26px;height:26px;stroke:#fff}

/* ---- Navbar ---- */
.ncg-navbar{background:rgba(255,255,255,.92);backdrop-filter:saturate(150%) blur(10px);
  border-bottom:1px solid var(--ncg-line);padding-top:.5rem;padding-bottom:.5rem}
.ncg-logo{height:42px;width:auto}
.ncg-navbar .nav-link{font-family:'Lexend Deca',sans-serif;font-weight:500;font-size:.94rem;
  color:var(--ncg-charcoal);padding:.4rem .85rem;border-radius:7px;transition:color .15s,background .15s}
.ncg-navbar .nav-link:hover{color:var(--ncg-purple)}
.ncg-navbar .nav-link.active{color:var(--ncg-purple);background:rgba(122,46,122,.08)}
.ncg-dropdown{border:1px solid var(--ncg-line);border-radius:12px;padding:.5rem;margin-top:.5rem!important;
  box-shadow:0 18px 44px rgba(36,36,42,.12);min-width:250px}
.ncg-dropdown .dropdown-item{font-family:'Lexend Deca',sans-serif;font-weight:500;font-size:.9rem;
  border-radius:8px;padding:.55rem .8rem;color:var(--ncg-charcoal)}
/* override Bootstrap's default blue active/hover with brand colours */
.ncg-navbar .ncg-dropdown .dropdown-item:hover,
.ncg-navbar .ncg-dropdown .dropdown-item:focus,
.ncg-navbar .ncg-dropdown .dropdown-item.active,
.ncg-navbar .ncg-dropdown .dropdown-item:active{
  background:rgba(122,46,122,.10)!important;color:var(--ncg-purple)!important}

/* ---- Home hero (full-width background image + overlay) ---- */
.ncg-hero{position:relative;padding:7rem 0 6rem;overflow:hidden;color:#fff;
  background-size:cover;background-position:center;background-repeat:no-repeat}
.ncg-hero::before{content:"";position:absolute;inset:0;z-index:0;
  background:
    linear-gradient(90deg,rgba(35,18,48,.96) 0%,rgba(48,28,86,.90) 38%,rgba(52,42,120,.72) 70%,rgba(52,42,120,.55) 100%),
    linear-gradient(180deg,rgba(30,16,44,.35),rgba(30,16,44,.35))}
.ncg-hero::after{content:"";position:absolute;inset:0;z-index:0;opacity:.5;
  background-image:url('../img/pattern-grid.svg');background-size:80px 80px;
  -webkit-mask-image:linear-gradient(90deg,transparent,rgba(0,0,0,.5));mask-image:linear-gradient(90deg,transparent,rgba(0,0,0,.5))}
.ncg-hero .container{position:relative;z-index:1}
.ncg-hero .eyebrow{color:#e9d7f0}
.ncg-hero h1{font-size:clamp(2.2rem,4.6vw,3.6rem);font-weight:700;color:#fff}
.ncg-hero h1 .text-grad{background:linear-gradient(120deg,#f0c8ff,#b9c0ff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.ncg-hero p{color:rgba(255,255,255,.90)}
.ncg-hero-lead{font-size:1.12rem;max-width:640px}
.ncg-hero .grad-rule{background:linear-gradient(90deg,#f0c8ff,#b9c0ff)}
.ncg-hero .btn-ncg-outline{color:#fff;border-color:rgba(255,255,255,.6)}
.ncg-hero .btn-ncg-outline:hover{background:#fff;color:var(--ncg-purple);border-color:#fff}
/* hero stat pills */
.hero-pills{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2.4rem}
.hero-pill{display:flex;align-items:center;gap:.7rem;color:#fff;
  background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);
  border-radius:12px;padding:.7rem 1.1rem;backdrop-filter:blur(4px)}
.hero-pill .n{font-family:'Lexend Deca';font-weight:700;font-size:1.6rem;line-height:1;color:#fff;
  padding-right:.1rem}
.hero-pill .l{font-size:.82rem;color:rgba(255,255,255,.88);max-width:130px;line-height:1.2;font-weight:500}

/* ---- Inner page hero ---- */
.page-hero{position:relative;overflow:hidden;padding:5rem 0 3.5rem;border-bottom:1px solid var(--ncg-line);
  background:radial-gradient(1200px 500px at 12% -20%,rgba(122,46,122,.08),transparent 60%),
             radial-gradient(1000px 500px at 100% 0%,rgba(59,57,168,.07),transparent 55%),
             linear-gradient(180deg,#faf9fd,#f4f2fa)}
.page-hero::before{content:"";position:absolute;top:-40%;right:-8%;width:520px;height:520px;
  background:var(--ncg-gradient);opacity:.10;border-radius:50%;filter:blur(30px);z-index:0}
.page-hero::after{content:"";position:absolute;inset:0;z-index:0;opacity:.5;pointer-events:none;
  background-image:url('../img/pattern-grid.svg');background-size:80px 80px;
  -webkit-mask-image:radial-gradient(ellipse 70% 100% at 90% 50%,rgba(0,0,0,.35),transparent 70%);
  mask-image:radial-gradient(ellipse 70% 100% at 90% 50%,rgba(0,0,0,.35),transparent 70%)}
.page-hero .container{position:relative;z-index:1}
.page-hero h1{font-size:clamp(1.9rem,3.8vw,2.9rem);font-weight:700}
.page-hero .lead{font-size:1.08rem;color:var(--ncg-charcoal)}
.breadcrumbs{font-size:.82rem;color:var(--ncg-muted);font-family:'Lexend Deca';margin-bottom:1rem}
.breadcrumbs a{color:var(--ncg-purple)}

/* ---- Real-photo media ---- */
.ncg-photo{border-radius:18px;overflow:hidden;position:relative;box-shadow:0 24px 60px rgba(36,36,42,.14)}
.ncg-photo img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:4/3}
.ncg-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(122,46,122,.14),rgba(59,57,168,.06));pointer-events:none}
.ncg-photo-tall img{aspect-ratio:3/4}
.ncg-photo .ncg-badge-float{z-index:2}

/* ---- Cards ---- */
.ncg-card{background:#fff;border:1px solid var(--ncg-line);border-radius:16px;padding:1.9rem 1.7rem;height:100%;
  transition:transform .2s,box-shadow .2s,border-color .2s;position:relative}
.ncg-card:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(36,36,42,.09);border-color:transparent}
.ncg-card h3,.ncg-card h4{font-size:1.16rem;font-weight:600;margin-bottom:.55rem}
.ncg-card p{font-size:.96rem;margin-bottom:0}
.ncg-card-icon{width:48px;height:48px;border-radius:12px;
  background:linear-gradient(135deg,rgba(122,46,122,.10),rgba(59,57,168,.10));
  border:1px solid rgba(122,46,122,.14);
  display:flex;align-items:center;justify-content:center;margin-bottom:1.2rem;transition:transform .25s,background .25s}
.ncg-card:hover .ncg-card-icon{transform:translateY(-2px);background:var(--ncg-gradient)}
.ncg-card:hover .ncg-card-icon .ncg-ico{stroke:#fff}
.ncg-card-icon .ncg-ico{width:23px;height:23px;stroke:var(--ncg-purple);stroke-width:1.8;transition:stroke .25s}

/* capability list inside cards */
.cap-list{list-style:none;padding:0;margin:.8rem 0 0}
.cap-list li{position:relative;padding-left:1.5rem;font-size:.92rem;color:var(--ncg-muted);margin-bottom:.4rem}
.cap-list li::before{content:"";position:absolute;left:0;top:.55em;width:8px;height:8px;border-radius:2px;
  background:var(--ncg-gradient)}

/* ---- Value chips ---- */
.ncg-chip{display:inline-flex;align-items:center;gap:.4rem;font-family:'Lexend Deca',sans-serif;font-weight:500;
  font-size:.88rem;color:var(--ncg-charcoal);background:#fff;border:1px solid var(--ncg-line);
  padding:.5rem 1.05rem;border-radius:30px;margin:.3rem}
.ncg-chip .ncg-ico{width:16px;height:16px;stroke:var(--ncg-purple)}

/* ---- Stats ---- */
.ncg-stat{text-align:center;padding:1rem}
.ncg-stat-num{font-family:'Lexend Deca';font-weight:700;font-size:2.6rem;line-height:1;
  background:var(--ncg-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.ncg-stat-label{font-size:.9rem;color:var(--ncg-muted);margin-top:.4rem}

/* ---- Approach / timeline steps ---- */
.ncg-step{text-align:center;padding:1.2rem .6rem}
.ncg-step-num{font-family:'Lexend Deca';font-weight:700;font-size:1.05rem;width:56px;height:56px;margin:0 auto .9rem;
  display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--ncg-purple);
  border:2px solid rgba(122,46,122,.25);background:#fff}
.ncg-step h4{font-size:1rem;margin-bottom:.3rem}
.ncg-step p{font-size:.88rem}

/* numbered stage cards (Value Delivery) */
.stage-card{background:#fff;border:1px solid var(--ncg-line);border-radius:16px;padding:1.8rem;height:100%;
  position:relative;overflow:hidden;transition:transform .2s,box-shadow .2s}
.stage-card:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(36,36,42,.09)}
.stage-card .stage-no{font-family:'Lexend Deca';font-weight:700;font-size:3rem;line-height:1;
  color:transparent;-webkit-text-stroke:1.5px rgba(91,63,160,.30);margin-bottom:.5rem}
.stage-card h3{font-size:1.15rem;margin-bottom:.5rem}
.stage-card .outcome{margin-top:1rem;padding-top:.9rem;border-top:1px dashed var(--ncg-line);
  font-size:.9rem;color:var(--ncg-charcoal)}
.stage-card .outcome strong{color:var(--ncg-purple);font-family:'Lexend Deca';font-weight:600}

/* ---- Media / illustration ---- */
.ncg-media{border-radius:18px;overflow:hidden;position:relative;background:var(--ncg-bg-soft);
  border:1px solid var(--ncg-line);padding:1.4rem}
.ncg-media img{width:100%;height:auto;display:block}
.ncg-media-plain img{width:100%;height:auto;display:block;filter:drop-shadow(0 24px 50px rgba(91,63,160,.18))}

/* floating badge */
.ncg-badge-float{position:absolute;background:#fff;border-radius:14px;padding:.8rem 1rem;
  box-shadow:0 14px 34px rgba(36,36,42,.16);display:flex;align-items:center;gap:.7rem;animation:floaty 4s ease-in-out infinite}
.ncg-badge-float .dot{width:40px;height:40px;border-radius:11px;background:var(--ncg-gradient);
  display:flex;align-items:center;justify-content:center;color:#fff;font-family:'Lexend Deca';font-weight:700}
.ncg-badge-float .dot .ncg-ico{width:20px;height:20px;stroke:#fff}
.ncg-badge-float .t{font-family:'Lexend Deca';font-weight:600;font-size:.82rem;color:var(--ncg-ink);line-height:1.15}
.ncg-badge-float .s{font-size:.72rem;color:var(--ncg-muted)}
.badge-tl{top:18px;left:-14px}.badge-br{bottom:18px;right:-14px;animation-delay:2s}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}

/* ---- Band / CTA ---- */
.ncg-band{background:var(--ncg-gradient);color:#fff;border-radius:22px;padding:3.4rem 2.5rem;position:relative;overflow:hidden}
.ncg-band::before{content:"";position:absolute;inset:0;opacity:.35;
  background-image:url('../img/pattern-grid.svg');background-size:80px 80px}
.ncg-band::after{content:"";position:absolute;width:320px;height:320px;border-radius:50%;
  background:rgba(255,255,255,.10);top:-130px;right:-90px}
.ncg-band h2{color:#fff}.ncg-band p{color:rgba(255,255,255,.92)}
.ncg-band > *{position:relative;z-index:1}
/* photo-backed band */
.ncg-band-photo{position:relative;overflow:hidden;border-radius:22px;padding:3.6rem 2.5rem;color:#fff;
  background-size:cover;background-position:center}
.ncg-band-photo::before{content:"";position:absolute;inset:0;
  background:linear-gradient(120deg,rgba(58,26,74,.92),rgba(59,57,168,.82))}
.ncg-band-photo > *{position:relative;z-index:1}
.ncg-band-photo h2{color:#fff}.ncg-band-photo p{color:rgba(255,255,255,.92)}

/* ---- Split feature row ---- */
.feature-icon-row{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1.4rem}
.feature-icon-row .fi{width:46px;height:46px;border-radius:12px;background:rgba(122,46,122,.09);
  display:flex;align-items:center;justify-content:center;flex:none}
.feature-icon-row .fi .ncg-ico{width:22px;height:22px;stroke:var(--ncg-purple)}
.feature-icon-row h4{font-size:1.05rem;margin-bottom:.25rem}
.feature-icon-row p{font-size:.93rem;margin:0}

/* ---- Forms ---- */
.form-control,.form-select{border-radius:10px;border:1px solid var(--ncg-line);padding:.7rem .9rem;font-family:'Inter',sans-serif}
.form-control:focus,.form-select:focus{border-color:var(--ncg-violet);box-shadow:0 0 0 .18rem rgba(91,63,160,.15)}
.form-label{font-family:'Lexend Deca';font-weight:500;font-size:.92rem;color:var(--ncg-ink)}
.ncg-alert-success{background:#edf7ee;border:1px solid #cde9d0;color:#256b2c;border-radius:10px;padding:.9rem 1.1rem}
.ncg-alert-error{background:#fdeceb;border:1px solid #f6cdca;color:#9b2c26;border-radius:10px;padding:.9rem 1.1rem}

/* ---- Footer ---- */
.ncg-footer{background:#fff;border-top:1px solid var(--ncg-line);padding:3.6rem 0 1.8rem;position:relative;overflow:hidden}
.ncg-footer-glow{position:absolute;width:420px;height:420px;border-radius:50%;background:var(--ncg-gradient);
  opacity:.05;filter:blur(30px);bottom:-200px;right:-120px}
.ncg-footer .container{position:relative;z-index:1}
.ncg-footer-logo{height:40px;width:auto}
.ncg-footer-text{color:var(--ncg-muted);font-size:.94rem;max-width:420px}
.ncg-footer-head{font-family:'Lexend Deca';font-weight:600;font-size:.95rem;color:var(--ncg-ink);margin-bottom:1rem}
.ncg-footer-links{list-style:none;padding:0;margin:0}
.ncg-footer-links li{margin-bottom:.55rem}
.ncg-footer-links a{color:var(--ncg-muted);font-size:.92rem;transition:color .15s}
.ncg-footer-links a:hover{color:var(--ncg-purple)}
.ncg-footer-rule{border-color:var(--ncg-line);margin:2.2rem 0 1.4rem}
.ncg-footer-copy{color:var(--ncg-muted);font-size:.85rem}

/* ---- Reveal / motion ---- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}

@media (max-width:991px){
  .ncg-navbar .navbar-nav{padding-top:.8rem}
  .ncg-band{padding:2.4rem 1.6rem}
  .badge-tl,.badge-br{display:none}
  .ncg-hero{padding:4rem 0 3.5rem}
  .ncg-dropdown{box-shadow:none;border:none;padding-left:1rem}
}
@media (prefers-reduced-motion:reduce){
  .ncg-badge-float{animation:none}
  .reveal{transition:none;opacity:1;transform:none}
  html{scroll-behavior:auto}
}

/* band icon overrides (white on gradient) */
.ncg-band .ncg-ico{stroke:#fff}
/* section that carries a tiled pattern needs relative + subtle */
.bg-pattern,.bg-pattern-lines{position:relative}
