/* =========================================================================
   NOVACREST AGENCIES LTD — Design tokens
   Palette and type pulled directly from the company capability profile:
   ink navy cover, gold signature accent, Montserrat (display) + Inter (body)
   ========================================================================= */
:root{
  --ink-900:#0C1827;
  --ink-800:#162B46;
  --ink-700:#1E3A5F;
  --ink-600:#244774;
  --gold-500:#C1904B;
  --gold-400:#CDA66F;
  --gold-300:#D9BB91;
  --paper-000:#FBFAF7;
  --paper-100:#F4F2EC;
  --slate-500:#6B7280;
  --slate-300:#A8ADB4;
  --line-soft:rgba(198,161,91,0.25);
  --line-dark:rgba(255,255,255,0.09);

  --font-display:'Montserrat', sans-serif;
  --font-body:'Inter', sans-serif;

  --radius-sm:2px;
  --radius-md:4px;
  --ease:cubic-bezier(.16,.84,.44,1);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink-800);
  background:var(--paper-000);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,.font-display{
  font-family:var(--font-display);
  font-weight:300;
  letter-spacing:-0.01em;
  color:var(--ink-800);
  margin:0;
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
::selection{background:var(--gold-500); color:var(--ink-900);}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
}

.container-nc{
  width:100%;
  max-width:1320px;
  margin:0 auto;
  padding:0 clamp(20px,4vw,64px);
}

.eyebrow{
  font-family:var(--font-body);
  font-size:12px;
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--gold-500);
  display:inline-flex;
  align-items:center;
  gap:12px;
}
.eyebrow::before{
  content:"";
  width:32px;
  height:1px;
  background:var(--gold-500);
  display:inline-block;
}

.btn-nc{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:15px 32px;
  font-family:var(--font-body);
  font-size:13px;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  border-radius:var(--radius-sm);
  border:1px solid transparent;
  cursor:pointer;
  transition:all .35s var(--ease);
  white-space:nowrap;
}
.btn-nc-gold{
  background:var(--gold-500);
  color:var(--ink-900);
}
.btn-nc-gold:hover{ background:var(--gold-400); transform:translateY(-2px); box-shadow:0 12px 30px -10px rgba(198,161,91,.55);}
.btn-nc-outline{
  background:transparent;
  border-color:rgba(255,255,255,.35);
  color:#fff;
}
.btn-nc-outline:hover{ border-color:var(--gold-500); color:var(--gold-300); }
.btn-nc-outline-dark{
  background:transparent;
  border-color:rgba(10,26,47,.25);
  color:var(--ink-800);
}
.btn-nc-outline-dark:hover{ border-color:var(--gold-500); color:var(--ink-800); background:var(--paper-100);}

/* =========================== NAVIGATION =========================== */
.nc-nav{
  position:fixed; top:0; left:0; right:0; z-index:1000;
  padding:22px 0;
  transition:all .4s var(--ease);
  background:transparent;
}
.nc-nav.is-scrolled{
  background:rgba(8,20,34,.92);
  backdrop-filter:blur(10px);
  padding:14px 0;
  box-shadow:0 8px 30px -12px rgba(0,0,0,.5);
}
.nc-nav .container-nc{ display:flex; align-items:center; justify-content:space-between; gap:24px;}
.nc-logo-link{ display:inline-flex; align-items:center; }
.nc-logo-img{ height:34px; width:auto; display:block; }
.nc-footer .nc-logo-img{ height:30px; }
.nc-menu{ display:flex; align-items:center; gap:34px; list-style:none; margin:0; padding:0; }
.nc-menu a{
  font-size:13.5px; font-weight:500; color:rgba(255,255,255,.86);
  letter-spacing:.02em; position:relative; padding:6px 0;
}
.nc-menu a::after{
  content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--gold-500);
  transition:width .3s var(--ease);
}
.nc-menu a:hover::after, .nc-menu a.active::after{ width:100%; }
.nc-menu .dropdown-panel{
  position:absolute; top:calc(100% + 18px); left:50%; transform:translateX(-50%);
  background:var(--ink-800); border:1px solid var(--line-dark); border-radius:var(--radius-md);
  min-width:260px; padding:10px; opacity:0; visibility:hidden; translate:0 8px;
  transition:all .25s var(--ease); box-shadow:0 30px 60px -20px rgba(0,0,0,.6);
}
.nc-menu li:hover .dropdown-panel{ opacity:1; visibility:visible; translate:0 0; }
.nc-menu .dropdown-panel a{ display:block; padding:11px 14px; border-radius:var(--radius-sm); font-size:13px; }
.nc-menu .dropdown-panel a:hover{ background:rgba(255,255,255,.05); }
.nc-menu .dropdown-panel a::after{ display:none; }
.nc-burger{ display:none; background:none; border:0; color:#fff; font-size:22px; cursor:pointer; padding:8px; margin:-8px; }
.nc-burger-bar{ display:block; width:24px; height:2px; background:#fff; margin:5px 0; transition:all .3s var(--ease); }
.nc-burger.is-active .nc-burger-bar:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nc-burger.is-active .nc-burger-bar:nth-child(2){ opacity:0; }
.nc-burger.is-active .nc-burger-bar:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

@media (max-width: 991px){
  .nc-menu{
    position:fixed;
    top:0; left:0; right:0; bottom:0;
    background:var(--ink-900);
    display:flex;
    flex-direction:column; justify-content:center;
    padding:80px 40px 40px; gap:20px;
    overflow-y:auto;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-16px);
    transition:opacity .3s var(--ease), transform .3s var(--ease), visibility 0s linear .3s;
    z-index:1100;
  }
  .nc-menu.open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateY(0);
    transition:opacity .3s var(--ease), transform .3s var(--ease);
  }
  .nc-menu .dropdown-panel{ position:static; transform:none; opacity:1; visibility:visible; background:transparent; border:0; box-shadow:none; padding-left:12px; margin-top:8px;}
  .nc-burger{ display:block; z-index:1200; position:relative; }
  .nc-nav-cta{ display:none; }
}

/* =========================== HERO =========================== */
.hero{
  position:relative; min-height:100vh; display:flex; align-items:center;
  background:linear-gradient(160deg, var(--ink-900) 0%, var(--ink-800) 55%, var(--ink-700) 100%);
  overflow:hidden;
  color:#fff;
}
.hero-watermark{
  position:absolute;
  top:50%; right:-6%;
  transform:translateY(-50%);
  width:58%;
  max-width:760px;
  min-width:340px;
  opacity:.08;
  z-index:1;
  pointer-events:none;
  user-select:none;
}
.hero::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(ellipse at 20% 15%, rgba(198,161,91,.14), transparent 55%);
  pointer-events:none;
}
.hero-inner{ position:relative; z-index:2; padding-top:140px; padding-bottom:90px; }
.hero-eyebrow{ color:var(--gold-400); }
.hero h1{
  color:#fff; font-size:clamp(2.6rem, 6vw, 5.2rem); font-weight:200; line-height:1.06; margin:26px 0 30px;
}
.hero h1 .accent{ color:var(--gold-400); font-weight:400; }
.hero-sub{ max-width:620px; font-size:1.08rem; color:rgba(255,255,255,.78); margin-bottom:44px; }
.hero-cta{ display:flex; gap:18px; flex-wrap:wrap; }
.hero-scroll{
  position:absolute; bottom:36px; left:50%; transform:translateX(-50%); z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:10px; color:rgba(255,255,255,.6); font-size:11px;
  letter-spacing:.18em; text-transform:uppercase;
}
.hero-scroll .line{ width:1px; height:44px; background:linear-gradient(var(--gold-500), transparent); animation:scrollpulse 2.4s infinite;}
@keyframes scrollpulse{ 0%{opacity:.2;} 50%{opacity:1;} 100%{opacity:.2;} }

/* =========================== SECTIONS =========================== */
.section{ padding:120px 0; }
.section-sm{ padding:80px 0; }
.section-dark{ background:var(--ink-900); color:#fff; }
.section-dark h2, .section-dark h3, .section-dark h4{ color:#fff; }
.section-paper{ background:var(--paper-100); }
.section-head{ max-width:720px; margin-bottom:60px; }
.section-head h2{ font-size:clamp(1.9rem, 3.4vw, 3rem); margin-top:20px; }
.section-head p{ color:var(--slate-500); font-size:1.05rem; margin-top:20px; }
.section-dark .section-head p{ color:rgba(255,255,255,.68); }

.divider-gold{ width:60px; height:2px; background:var(--gold-500); margin:22px 0; }

/* =========================== IDENTITY DIAGRAM (signature element) === */
.identity-diagram{ display:flex; flex-direction:column; align-items:center; gap:0; position:relative; padding:40px 0; }
.identity-node{
  border:1px solid var(--line-soft); background:var(--ink-800); color:#fff;
  padding:26px 40px; border-radius:var(--radius-md); text-align:center; position:relative; z-index:2;
  min-width:280px;
}
.identity-node.parent{ background:linear-gradient(135deg, var(--ink-700), var(--ink-800)); border-color:var(--gold-500); }
.identity-node .label{ font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-400); }
.identity-node .name{ font-family:var(--font-display); font-size:1.3rem; font-weight:400; margin-top:8px; }
.identity-stem{ width:1px; height:52px; background:linear-gradient(var(--gold-500), var(--line-soft)); }
.identity-branches{ display:flex; align-items:flex-start; gap:0; width:100%; max-width:760px; justify-content:space-between; position:relative; margin-top:-1px;}
.identity-branches::before{
  content:""; position:absolute; top:0; left:15%; right:15%; height:1px; background:var(--line-soft);
}
.identity-branch{ display:flex; flex-direction:column; align-items:center; }
.identity-branch .identity-stem{ height:36px; }

/* =========================== CARDS =========================== */
.nc-card{
  background:#fff; border:1px solid rgba(10,26,47,.08); border-radius:var(--radius-md);
  padding:36px 34px; transition:all .4s var(--ease); height:100%;
}
.nc-card:hover{ transform:translateY(-6px); box-shadow:0 30px 60px -25px rgba(10,26,47,.25); border-color:var(--line-soft); }
.nc-card .num{ font-family:var(--font-display); font-size:2rem; font-weight:200; color:var(--gold-500); }
.nc-card h3{ font-size:1.25rem; margin:18px 0 14px; font-weight:500; }
.nc-card p{ color:var(--slate-500); font-size:.95rem; margin:0; }

.nc-card-dark{
  background:var(--ink-800); border:1px solid var(--line-dark); color:#fff;
}
.nc-card-dark p{ color:rgba(255,255,255,.65); }
.nc-card-dark:hover{ border-color:var(--line-soft); }

.division-card{
  position:relative; overflow:hidden; border-radius:var(--radius-md);
  display:flex; flex-direction:column; background:var(--ink-800); color:#fff;
  border:1px solid var(--line-dark);
}
.division-card-figure{
  width:100%; height:220px; background:var(--ink-900);
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.division-card-figure img{ width:100%; height:100%; object-fit:contain; }
.division-card .content{ padding:30px 34px 34px; flex:1; display:flex; flex-direction:column; }
.division-card .tag{ color:var(--gold-400); font-size:11px; letter-spacing:.18em; text-transform:uppercase; }
.division-card h3{ color:#fff; font-size:1.6rem; margin:14px 0; font-weight:400; }
.division-card p{ color:rgba(255,255,255,.72); font-size:.92rem; }
.division-card .link-cta{ margin-top:auto; padding-top:16px; font-size:12.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-400); display:inline-flex; align-items:center; gap:8px;}

.division-showcase{
  width:100%; max-height:65vh; border-radius:var(--radius-md); overflow:hidden;
  background:var(--ink-800); border:1px solid var(--line-dark);
  display:flex; align-items:center; justify-content:center;
}
.division-showcase img{ width:100%; height:100%; max-height:65vh; object-fit:contain; }

/* =========================== STATS =========================== */
.stat-item{ text-align:center; }
.stat-num{ font-family:var(--font-display); font-size:clamp(2.2rem,4vw,3.4rem); font-weight:300; color:var(--gold-500); }
.stat-label{ font-size:.85rem; letter-spacing:.05em; color:rgba(255,255,255,.65); margin-top:6px; }

/* =========================== PROCESS TIMELINE =========================== */
.process-step{ display:flex; gap:26px; padding:32px 0; border-top:1px solid var(--line-dark); }
.process-step:last-child{ border-bottom:1px solid var(--line-dark); }
.process-step .step-no{ font-family:var(--font-display); font-size:2.4rem; font-weight:200; color:var(--gold-500); min-width:80px; }
.process-step h4{ color:#fff; font-size:1.2rem; font-weight:500; margin-bottom:8px; }
.process-step p{ color:rgba(255,255,255,.65); margin:0; max-width:640px; }

/* =========================== FOOTER =========================== */
.nc-footer{ background:var(--ink-900); color:rgba(255,255,255,.7); padding:90px 0 30px; }
.nc-footer h5{ color:#fff; font-size:13px; letter-spacing:.14em; text-transform:uppercase; margin-bottom:22px; font-family:var(--font-body); font-weight:600;}
.nc-footer ul{ list-style:none; padding:0; margin:0; }
.nc-footer li{ margin-bottom:12px; font-size:.92rem; }
.nc-footer a:hover{ color:var(--gold-400); }
.footer-bottom{ border-top:1px solid var(--line-dark); margin-top:60px; padding-top:26px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:.82rem; color:rgba(255,255,255,.45);}
.social-row{ display:flex; gap:14px; }
.social-row a{ width:38px; height:38px; border:1px solid var(--line-dark); border-radius:50%; display:flex; align-items:center; justify-content:center; transition:.3s;}
.social-row a:hover{ border-color:var(--gold-500); color:var(--gold-400); }

/* =========================== BACK TO TOP / PROGRESS =========================== */
.progress-bar-top{ position:fixed; top:0; left:0; height:3px; background:var(--gold-500); z-index:1200; width:0%; }
.back-to-top{
  position:fixed; bottom:28px; right:28px; width:48px; height:48px; border-radius:50%;
  background:var(--ink-800); border:1px solid var(--gold-500); color:var(--gold-400);
  display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden;
  transition:all .35s var(--ease); z-index:900; cursor:pointer;
}
.back-to-top.show{ opacity:1; visibility:visible; }
.back-to-top:hover{ background:var(--gold-500); color:var(--ink-900); }

/* =========================== FORMS =========================== */
.form-control, .form-select{
  background:transparent; border:1px solid rgba(10,26,47,.18); border-radius:var(--radius-sm);
  padding:13px 16px; font-family:var(--font-body); font-size:.94rem; color:var(--ink-800);
}
.form-control:focus, .form-select:focus{
  border-color:var(--gold-500); box-shadow:0 0 0 3px rgba(198,161,91,.15); outline:none;
}
.section-dark .form-control, .section-dark .form-select{ color:#fff; border-color:rgba(255,255,255,.2); }
.section-dark .form-control::placeholder{ color:rgba(255,255,255,.4); }
label.form-label{ font-size:.82rem; letter-spacing:.03em; margin-bottom:8px; display:block; color:var(--slate-500); }
.section-dark label.form-label{ color:rgba(255,255,255,.6); }

/* =========================== MISC =========================== */
.badge-nc{
  display:inline-block; padding:8px 16px; border:1px solid var(--line-soft); border-radius:20px;
  font-size:.78rem; letter-spacing:.04em; margin:4px 6px 4px 0; color:var(--ink-800);
}
.section-dark .badge-nc{ color:rgba(255,255,255,.85); border-color:var(--line-dark); }
.pull-quote{
  font-family:var(--font-display); font-weight:300; font-size:1.4rem; line-height:1.5;
  color:var(--ink-800); border-left:2px solid var(--gold-500); padding-left:26px; margin:36px 0;
}
.section-dark .pull-quote{ color:#fff; }
.breadcrumb-nc{ font-size:.82rem; color:var(--slate-500); }
.breadcrumb-nc a:hover{ color:var(--gold-500); }

[data-aos]{ }
.aos-fade-in{ opacity:0; transform:translateY(24px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.aos-fade-in.aos-animate{ opacity:1; transform:translateY(0); }

.card-img-cover{ width:100%; height:220px; object-fit:cover; border-radius:var(--radius-md); }

@media (max-width: 767px){
  .section{ padding:80px 0; }
  .identity-branches{ flex-direction:column; gap:26px; align-items:center; }
  .identity-branches::before{ display:none; }
  .hero-watermark{
    width:85%;
    opacity:.06;
    right:-15%;
  }
  .hero-inner{ padding-top:120px; }
}

html, body{ overflow-x:hidden; }
