:root {
  --black:     #050607;
  --black2:    #0a0c10;
  --black3:    #0f1218;
  --blue-dark: #16213e;
  --blue-mid:  #1a3a6b;
  --blue:      #2563a8;
  --blue-light:#4a8fd4;
  --blue-pale: #7db8e8;
  --white:     #ffffff;
  --off-white: #e8edf5;
  --grey:      #7a8599;
  --grey-light:#b0bacf;
  --line:      rgba(74,143,212,0.15);
  --line-white:rgba(255,255,255,0.08);
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body { background:var(--black); color:var(--white); font-family:'DM Sans',sans-serif; font-weight:300; overflow-x:hidden; }

/* SCROLLBAR */
::-webkit-scrollbar { width:4px; }
::-webkit-scrollbar-track { background:var(--black); }
::-webkit-scrollbar-thumb { background:var(--blue-mid); }

/* CURSOR — hidden */
.cursor, .cursor-ring { display:none; }

/* NAV — always white */
nav { position:fixed; top:0; left:0; right:0; z-index:500; padding:20px 64px; display:flex; align-items:center; justify-content:space-between; transition:all 0.4s; background:#ffffff; border-bottom:1px solid rgba(0,0,0,0.08); }
nav.scrolled { padding:14px 64px; box-shadow:0 2px 24px rgba(0,0,0,0.08); }
.nav-logo { display:flex; align-items:center; gap:12px; text-decoration:none; }
.nav-logo img { height:72px; }
.nav-logo-text { font-family:'Playfair Display',serif; font-size:15px; font-weight:400; letter-spacing:3px; text-transform:uppercase; color:#16213e; }
.nav-logo-text span { color:var(--blue); }
.nav-links { display:flex; gap:44px; list-style:none; }
.nav-links a { font-size:11px; letter-spacing:2.5px; text-transform:uppercase; color:#4a5568; text-decoration:none; transition:color 0.3s; font-weight:400; position:relative; }
.nav-links a::after { content:''; position:absolute; bottom:-4px; left:0; width:0; height:1px; background:var(--blue); transition:width 0.3s; }
.nav-links a:hover, .nav-links a.active { color:var(--blue); }
.nav-links a:hover::after, .nav-links a.active::after { width:100%; }
.nav-cta { font-size:11px; letter-spacing:2px; text-transform:uppercase; color:#16213e; border:1px solid var(--blue); padding:11px 28px; text-decoration:none; transition:all 0.3s; font-weight:500; }
.nav-cta:hover { background:var(--blue); color:#fff; }

/* MOBILE NAV TOGGLE */
.nav-hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:4px; }
.nav-hamburger span { width:22px; height:1.5px; background:#16213e; transition:all 0.3s; display:block; }
.nav-mobile { display:none; position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(5,6,7,0.98); z-index:499; flex-direction:column; align-items:center; justify-content:center; gap:32px; }
.nav-mobile.open { display:flex; }
.nav-mobile a { font-size:14px; letter-spacing:3px; text-transform:uppercase; color:var(--grey); text-decoration:none; transition:color 0.3s; }
.nav-mobile a:hover { color:var(--blue-pale); }
.nav-mobile-close { position:absolute; top:32px; right:32px; font-size:20px; cursor:pointer; color:var(--grey); }

/* PAGE HERO (for sub-pages) */
.page-hero { padding:160px 64px 80px; background:var(--black); position:relative; overflow:hidden; }
.page-hero::before { content:''; position:absolute; top:0; left:0; right:0; bottom:0; background:radial-gradient(ellipse 60% 70% at 80% 50%, rgba(26,58,107,0.2) 0%, transparent 70%); pointer-events:none; }
.page-hero-inner { max-width:1100px; margin:0 auto; position:relative; z-index:1; }
.page-hero .section-tag { font-size:10px; letter-spacing:3.5px; text-transform:uppercase; color:var(--blue-pale); margin-bottom:20px; display:flex; align-items:center; gap:12px; }
.page-hero .section-tag::before { content:''; width:24px; height:1px; background:var(--blue-pale); }
.page-hero h1 { font-family:'Playfair Display',serif; font-size:clamp(42px,5vw,72px); font-weight:400; line-height:1.1; letter-spacing:-0.5px; }
.page-hero h1 em { font-style:italic; color:var(--blue-pale); }

/* SECTION */
section.content-section { padding:100px 64px; }
section.content-section.bg2 { background:var(--black2); }
section.content-section.bg3 { background:var(--black3); }
.max { max-width:1100px; margin:0 auto; }

/* SECTION TAG */
.section-tag { font-size:10px; letter-spacing:3.5px; text-transform:uppercase; color:var(--blue-pale); margin-bottom:20px; display:flex; align-items:center; gap:12px; }
.section-tag::before { content:''; width:24px; height:1px; background:var(--blue-pale); }

/* HEADINGS */
h2.display { font-family:'Playfair Display',serif; font-size:clamp(34px,3.5vw,54px); font-weight:400; line-height:1.15; margin-bottom:48px; }
h2.display em { font-style:italic; color:var(--blue-pale); }

/* BUTTONS */
.btn-fill { background:var(--blue); color:var(--white); font-size:12px; letter-spacing:2px; text-transform:uppercase; font-family:'DM Sans',sans-serif; font-weight:500; padding:16px 38px; border:none; cursor:pointer; text-decoration:none; display:inline-block; transition:all 0.3s; }
.btn-fill:hover { background:var(--blue-light); transform:translateY(-2px); }
.btn-line { color:var(--grey-light); font-size:12px; letter-spacing:2px; text-transform:uppercase; text-decoration:none; display:inline-flex; align-items:center; gap:10px; transition:color 0.3s; }
.btn-line:hover { color:var(--blue-pale); }

/* DIVIDER */
.divider-line { height:1px; background:var(--line-white); }

/* FOOTER */
footer { background:var(--black); border-top:1px solid var(--line); padding:44px 64px; display:flex; justify-content:space-between; align-items:center; }
footer img { height:36px; opacity:0.7; }
.ft { font-size:11px; color:var(--grey); text-align:center; line-height:1.8; }
.ft-r { font-size:11px; color:var(--grey); text-align:right; line-height:1.8; }
.ft-r a { color:var(--grey); text-decoration:none; transition:color 0.3s; }
.ft-r a:hover { color:var(--blue-pale); }

/* REVEAL ANIMATION */
.reveal { opacity:0; transform:translateY(24px); transition:opacity 0.9s ease, transform 0.9s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }
.reveal.d1 { transition-delay:0.1s; }
.reveal.d2 { transition-delay:0.2s; }
.reveal.d3 { transition-delay:0.3s; }
.reveal.d4 { transition-delay:0.4s; }
.reveal.d5 { transition-delay:0.5s; }

/* CARD / BLOCK */
.solution-block { background:linear-gradient(135deg,rgba(37,99,168,0.12),rgba(26,58,107,0.06)); border:1px solid var(--line); padding:52px; }
.solution-block blockquote { font-family:'Playfair Display',serif; font-size:22px; font-style:italic; line-height:1.6; color:var(--off-white); margin-bottom:28px; }
.solution-block p { font-size:14px; line-height:1.9; color:var(--grey-light); }

/* FORM */
form { display:flex; flex-direction:column; gap:16px; }
input, textarea { background:rgba(255,255,255,0.03); border:1px solid var(--line-white); color:var(--white); padding:16px 20px; font-family:'DM Sans',sans-serif; font-size:13px; font-weight:300; outline:none; transition:border-color 0.3s; width:100%; }
input::placeholder, textarea::placeholder { color:var(--grey); }
input:focus, textarea:focus { border-color:var(--blue); }
textarea { height:110px; resize:vertical; }
.form-btn { background:transparent; border:1px solid var(--blue-light); color:var(--blue-pale); font-family:'DM Sans',sans-serif; font-size:11px; letter-spacing:2.5px; text-transform:uppercase; padding:16px 36px; cursor:pointer; align-self:flex-start; transition:all 0.3s; font-weight:400; }
.form-btn:hover { background:var(--blue); border-color:var(--blue); color:var(--white); }

/* ANIMATIONS */
@keyframes slideUp { from{opacity:0;transform:translateY(28px);}to{opacity:1;transform:translateY(0);} }
@keyframes scrollPulse { 0%,100%{opacity:0.3;transform:scaleY(0.6);}50%{opacity:1;transform:scaleY(1);} }
@keyframes float { 0%,100%{transform:translateY(0);}50%{transform:translateY(-12px);} }
@keyframes rotateSlow { from{transform:rotate(0deg);}to{transform:rotate(360deg);} }
@keyframes pulse { 0%,100%{opacity:0.4;transform:scale(1);}50%{opacity:0.8;transform:scale(1.05);} }

/* RESPONSIVE */
@media(max-width:960px) {
  nav { padding:20px 24px; }
  nav.scrolled { padding:16px 24px; }
  .nav-links, .nav-cta { display:none; }
  .nav-hamburger { display:flex; }
  .page-hero { padding:120px 24px 60px; }
  section.content-section { padding:70px 24px; }
  footer { padding:32px 24px; flex-direction:column; gap:20px; text-align:center; }
  .ft-r { text-align:center; }
  h2.display { margin-bottom:32px; }
}
