:root{
  --navy:#0B1F3A;
  --navy-deep:#071429;
  --gray:#F5F5F5;
  --gold:#D89B2B;
  --gold-bright:#F0B84B;
  --text:#222222;
  --steel:#5B6B85;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter',sans-serif;
  color:var(--text);
  background:#fff;
  margin:0;
  padding:0;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,.font-display{font-family:'Poppins',sans-serif;}
.font-utility{font-family:'Manrope',sans-serif;}
::selection{background:var(--gold);color:#fff;}
a{color:inherit;}
img{max-width:100%;display:block;}

/* Signature: blueprint grid + cut-corner "level line" motif */
.blueprint-bg{
  background-image:
    linear-gradient(rgba(216,155,43,0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(216,155,43,0.08) 1px, transparent 1px);
  background-size: 44px 44px;
}
.cut-corner{ clip-path: polygon(0 0, 100% 0, 100% calc(100% - 22px), calc(100% - 22px) 100%, 0 100%); }
.cut-corner-sm{ clip-path: polygon(0 0, 100% 0, 100% calc(100% - 14px), calc(100% - 14px) 100%, 0 100%); }
.level-line{ position:relative; }
.level-line::before{
  content:''; position:absolute; left:0; top:-14px; width:34px; height:2px; background:var(--gold);
}
.level-line::after{
  content:''; position:absolute; left:0; top:-14px; width:2px; height:14px; background:var(--gold);
}

.reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:translateY(0); }
.reveal-delay-1{transition-delay:.08s;}
.reveal-delay-2{transition-delay:.16s;}
.reveal-delay-3{transition-delay:.24s;}
.reveal-delay-4{transition-delay:.32s;}

@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1!important; transform:none!important; transition:none!important;}
  html{scroll-behavior:auto;}
}

.service-card{ transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease; }
.service-card:hover{ transform: translateY(-6px); box-shadow: 0 20px 40px -14px rgba(11,31,58,0.25); border-color: var(--gold); }

.btn-gold{
  background: var(--gold); color:#fff; transition: background .25s ease, transform .2s ease, box-shadow .25s ease;
  box-shadow: 0 6px 20px -6px rgba(216,155,43,0.55);
}
.btn-gold:hover{ background: var(--gold-bright); transform: translateY(-2px); box-shadow: 0 10px 26px -6px rgba(216,155,43,0.7); color:#fff; }

.btn-outline{ border:1.5px solid rgba(255,255,255,0.5); color:#fff; transition: all .25s ease; }
.btn-outline:hover{ background:#fff; color:var(--navy); border-color:#fff; }

.nav-link{ position:relative; }
.nav-link::after{
  content:''; position:absolute; left:0; bottom:-6px; width:0; height:2px; background:var(--gold);
  transition:width .3s ease;
}
.nav-link:hover::after{ width:100%; }
.nav-link.active{ color:#fff; }
.nav-link.active::after{ width:100%; }

.filter-btn.active{ background:var(--navy); color:#fff; }

.glass{ background: rgba(255,255,255,0.06); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border:1px solid rgba(255,255,255,0.12); }

.faq-panel{ max-height:0; overflow:hidden; transition:max-height .4s ease; }
.accordion.open .faq-panel{ max-height: 400px; }
.accordion.open .faq-chevron{ transform: rotate(45deg); }
.faq-chevron{ transition: transform .3s ease; }

section[id]{ scroll-margin-top: 96px; }

#backToTop{ opacity:0; pointer-events:none; transition:opacity .3s ease, transform .3s ease; }
#backToTop.show{ opacity:1; pointer-events:auto; }

/* Dark mode */
html.dark body{ background:var(--navy-deep); color:#E7ECF5; }
html.dark .dm-surface{ background:#0F2A4D; }
html.dark .dm-surface-2{ background:#132F55; }
html.dark .dm-text-muted{ color:#9FB0CC; }
html.dark .dm-border{ border-color:rgba(255,255,255,0.08); }
html.dark .dm-card-bg{ background:#0F2A4D; }

.component-nav{ position:fixed; top:0; left:0; right:0; z-index:50; transition:background .3s ease; }
.component-nav.solid{
  background:rgba(7,20,41,0.92);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  box-shadow:0 10px 30px -12px rgba(7,20,41,0.5);
}
.component-nav.scrolled{
  background:rgba(7,20,41,0.92);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  box-shadow:0 10px 30px -12px rgba(7,20,41,0.5);
}