:root{
  --navy:#001480;
  --navy-2:#0a2da8;
  --sky:#4a9fe8;
  --sky-light:#7FCCF8;
  --ink:#0c1220;
  --ink-soft:#3a4358;
  --line:#e3e8f0;
  --paper:#ffffff;
  --paper-2:#f5f8fc;
  --paper-3:#eef3f9;
  --grad:linear-gradient(160deg,#001480 0%,#1a47c4 48%,#7FCCF8 100%);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Source Sans 3',system-ui,sans-serif;color:var(--ink);background:var(--paper);line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:'Archivo',sans-serif;line-height:1.1;letter-spacing:-0.02em}
.mono{font-family:'IBM Plex Mono',monospace;letter-spacing:0.02em}
img{max-width:100%;display:block}
a{color:inherit}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:16px 48px;background:rgba(255,255,255,0.85);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.logo-wrap{display:flex;align-items:center;gap:12px;text-decoration:none}
.logo-img{height:38px;width:auto}
.logo-text{font-family:'Archivo';font-weight:700;font-size:20px;letter-spacing:-0.01em;color:var(--ink)}
.logo-text span{color:var(--navy)}
.nav-links{display:flex;gap:30px;align-items:center}
.nav-links a{text-decoration:none;color:var(--ink-soft);font-weight:500;font-size:15px;transition:color .2s}
.nav-links a:hover,.nav-links a.active{color:var(--navy)}
.nav-cta{background:var(--navy);color:#fff!important;padding:10px 22px;border-radius:6px;font-weight:600;font-size:14px;transition:background .2s,transform .2s}
.nav-cta:hover{background:var(--navy-2);transform:translateY(-1px)}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px;padding:6px}
.nav-toggle span{width:24px;height:2px;background:var(--ink);transition:.3s}

/* SECTION SHELL */
section{padding:92px 48px}
.container{max-width:1240px;margin:0 auto}
.sec-eyebrow{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--sky);text-transform:uppercase;letter-spacing:0.14em;margin-bottom:14px}
.sec-title{font-size:clamp(28px,3.4vw,42px);font-weight:700;max-width:20ch;margin-bottom:18px}
.sec-intro{font-size:18px;color:var(--ink-soft);max-width:62ch;margin-bottom:50px}

/* BUTTONS */
.btn-primary{background:#fff;color:var(--navy);padding:15px 30px;border-radius:7px;font-weight:700;font-size:16px;text-decoration:none;display:inline-block;transition:transform .2s,box-shadow .2s;box-shadow:0 6px 24px rgba(127,204,248,0.2)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 32px rgba(127,204,248,0.35)}
.btn-ghost{border:1px solid rgba(255,255,255,0.25);color:#fff;padding:15px 30px;border-radius:7px;font-weight:600;font-size:16px;text-decoration:none;display:inline-block;transition:background .2s,border-color .2s}
.btn-ghost:hover{background:rgba(255,255,255,0.08);border-color:rgba(255,255,255,0.5)}
.btn-navy{background:var(--navy);color:#fff;padding:15px 30px;border-radius:7px;font-weight:700;font-size:16px;text-decoration:none;display:inline-block;transition:background .2s,transform .2s}
.btn-navy:hover{background:var(--navy-2);transform:translateY(-2px)}

/* PAGE HERO (inner pages) */
.page-hero{padding:150px 48px 70px;background:var(--ink);color:#fff;position:relative;overflow:hidden}
.page-hero-bg{position:absolute;inset:0;background:radial-gradient(circle at 80% 30%,rgba(74,159,232,0.3),transparent 45%),linear-gradient(135deg,#04081c,#0a2266)}
.page-hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(127,204,248,0.06) 1px,transparent 1px),linear-gradient(90deg,rgba(127,204,248,0.06) 1px,transparent 1px);background-size:52px 52px;mask-image:radial-gradient(ellipse 70% 80% at 75% 50%,#000 30%,transparent 75%)}
.page-hero-inner{position:relative;z-index:2;max-width:1240px;margin:0 auto}
.page-hero .crumb{font-family:'IBM Plex Mono';font-size:13px;color:var(--sky-light);margin-bottom:18px;letter-spacing:0.05em}
.page-hero h1{font-size:clamp(34px,4.6vw,58px);font-weight:800;max-width:18ch;margin-bottom:18px}
.page-hero p{font-size:19px;color:#aebdd8;max-width:58ch}

/* FLOATING CONTACT */
.float-contact{position:fixed;right:22px;bottom:22px;z-index:200;display:flex;flex-direction:column;gap:12px}
.float-btn{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px rgba(0,0,0,0.18);transition:transform .2s;cursor:pointer;text-decoration:none}
.float-btn:hover{transform:scale(1.08)}
.float-btn.wa{background:#25D366}
.float-btn.mail{background:var(--navy)}
.float-btn svg{width:27px;height:27px}
.float-label{position:absolute;right:64px;top:50%;transform:translateY(-50%);background:var(--ink);color:#fff;padding:7px 13px;border-radius:6px;font-size:13px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s}
.float-btn-wrap{position:relative;display:flex}
.float-btn-wrap:hover .float-label{opacity:1}

/* FOOTER */
footer{background:var(--ink);color:#8294b8;padding:62px 48px 38px}
.foot-grid{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1.4fr;gap:48px;padding-bottom:38px;border-bottom:1px solid rgba(255,255,255,0.08)}
.foot-brand .logo-text{color:#fff}
.foot-brand p{margin-top:16px;font-size:14.5px;max-width:34ch}
.foot-col h5{color:#fff;font-size:14px;font-weight:600;margin-bottom:16px;font-family:'Archivo'}
.foot-col a{display:block;color:#8294b8;text-decoration:none;font-size:14.5px;margin-bottom:10px;transition:color .2s}
.foot-col a:hover{color:var(--sky-light)}
.foot-bottom{max-width:1240px;margin:22px auto 0;display:flex;justify-content:space-between;font-size:13px;flex-wrap:wrap;gap:10px}

@media(max-width:900px){
  nav{padding:13px 20px}
  .nav-links{position:fixed;top:62px;left:0;right:0;background:#fff;flex-direction:column;gap:0;padding:0;border-bottom:1px solid var(--line);max-height:0;overflow:hidden;transition:max-height .3s}
  .nav-links.open{max-height:400px}
  .nav-links a{width:100%;padding:16px 20px;border-bottom:1px solid var(--line)}
  .nav-links a.nav-cta{border-radius:0;text-align:center}
  .nav-toggle{display:flex}
  section{padding:60px 20px}
  .page-hero{padding:120px 20px 56px}
  .foot-grid{grid-template-columns:1fr;gap:30px}
}
