/* ============================================================
   Grim Systems — shared site styles
   Common to every page: reset, tokens, nav, hamburger/mobile
   drawer, footer, and the shared "eyebrow / h2 / section" text
   scaffolding. Page-specific styles (hero, forms, etc.) stay in
   each page's own <style> block.
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --dark:#060b14;
  --dark2:#0b1220;
  --dark3:#0f1829;
  --panel:#131f35;
  --panel2:#182540;
  --blue:#2563eb;
  --blue-light:#3b82f6;
  --blue-glow:rgba(37,99,235,0.18);
  --indigo:#4f46e5;
  --text:#e2e8f8;
  --muted:#7a90b8;
  --dim:#3d5070;
  --border:rgba(255,255,255,0.06);
  --border-blue:rgba(59,130,246,0.3);
  --font-h:'Rajdhani',sans-serif;
  --font-b:'Inter',sans-serif;
}
html{scroll-behavior:smooth;scroll-padding-top:var(--nav-h,110px)}
body{background:var(--dark);color:var(--text);font-family:var(--font-b);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}

/* ── NAV ── */
nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:0.9rem 3.5rem;
  background:rgba(6,11,20,0.92);
  backdrop-filter:blur(16px);
  border-bottom:1px solid var(--border);
}
.nav-logo img{height:52px;width:auto;display:block}
nav > a{text-decoration:none}
nav h1{font-family:var(--font-h);font-size:clamp(3rem,5.5vw,4.5rem);font-weight:700;line-height:1.05;letter-spacing:0.02em;text-transform:uppercase;color:var(--text);margin:0}
nav h1 span{color:var(--blue-light)}
.nav-links{display:flex;align-items:center;gap:2rem}
.nav-links a{color:var(--muted);text-decoration:none;font-size:1.25rem;font-weight:400;letter-spacing:0.04em;text-transform:uppercase;transition:color 0.2s}
.nav-links a:hover,.nav-links a.active{color:var(--text)}
.btn-nav{
  border:1px solid var(--blue-light) !important;
  color:var(--blue-light) !important;
  padding:0.5rem 1.4rem;border-radius:4px;font-weight:500 !important;
  transition:background 0.2s !important;font-size:1.25rem !important;
  letter-spacing:0.08em !important;
}
.btn-nav:hover{background:var(--blue-glow) !important}
.nav-links a.nav-phone,
.mobile-nav a.nav-phone{display:inline-flex;align-items:center;gap:0.4rem}
.nav-phone svg{width:15px;height:15px;flex-shrink:0}

/* ── HAMBURGER ── */
.hamburger{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  background:none;border:none;cursor:pointer;padding:6px;
}
.hamburger span{
  display:block;width:24px;height:2px;background:var(--text);border-radius:2px;
  transition:transform 0.25s,opacity 0.25s;
}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ── MOBILE DRAWER ── */
.mobile-nav{
  display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:99;
  background:rgba(6,11,20,0.97);backdrop-filter:blur(16px);
  flex-direction:column;align-items:center;justify-content:center;gap:2rem;
}
.mobile-nav.open{display:flex}
.mobile-nav a{
  color:var(--muted);text-decoration:none;font-family:var(--font-h);
  font-size:1.6rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;
  transition:color 0.2s;
}
.mobile-nav a:hover{color:var(--text)}
.mobile-nav .btn-nav{
  border:1px solid var(--blue-light) !important;
  color:var(--blue-light) !important;
  padding:0.6rem 2rem;border-radius:4px;font-weight:600 !important;
  margin-top:1rem;
}

/* ── SHARED TEXT SCAFFOLDING ── */
section{padding:5.5rem 3.5rem}
.inner{max-width:1200px;margin:0 auto}
.eyebrow{
  font-family:var(--font-h);font-size:1.5rem;font-weight:700;
  letter-spacing:0.2em;text-transform:uppercase;color:var(--blue-light);
  margin-bottom:0.85rem;
}
h2{
  font-family:var(--font-h);font-size:clamp(1.8rem,3vw,2.6rem);
  font-weight:700;letter-spacing:0.04em;text-transform:uppercase;
  line-height:1.1;color:var(--text);margin-bottom:1rem;
}

/* ── FOOTER ── */
footer{
  padding:2rem 3.5rem;display:grid;grid-template-columns:1fr auto 1fr;
  align-items:center;gap:1.5rem;color:var(--dim);font-size:0.8rem;
  border-top:1px solid var(--border);
}
footer img{height:36px;width:auto;justify-self:start}
footer span{justify-self:center;text-align:center}
footer a{color:var(--dim);text-decoration:none;transition:color 0.2s}
footer a:hover{color:var(--blue-light)}
.footer-links{display:flex;align-items:center;gap:1.5rem;justify-self:end}
.footer-social{display:flex;align-items:center;gap:1rem}
.footer-social a{display:flex}
.footer-social svg{width:18px;height:18px}

/* ── COOKIE CONSENT ── */
.cookie-banner{
  position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:200;
  max-width:640px;margin:0 auto;
  background:var(--dark2);border:1px solid var(--border-blue);border-radius:8px;
  padding:1.25rem 1.5rem;
  display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;
  box-shadow:0 10px 40px rgba(0,0,0,0.45);
}
.cookie-banner-text{flex:1 1 260px;font-size:0.85rem;color:var(--muted);line-height:1.6;font-weight:300;margin:0}
.cookie-banner-text a{color:var(--blue-light)}
.cookie-banner-actions{display:flex;gap:0.75rem;flex-shrink:0;margin-left:auto}
.cookie-btn{
  font-family:var(--font-h);font-weight:600;font-size:0.75rem;letter-spacing:0.08em;text-transform:uppercase;
  padding:0.6rem 1.25rem;border-radius:4px;cursor:pointer;transition:background 0.2s,border-color 0.2s,color 0.2s;
}
.cookie-btn-reject{background:transparent;border:1px solid var(--dim);color:var(--muted)}
.cookie-btn-reject:hover{border-color:var(--border-blue);color:var(--blue-light)}
.cookie-btn-accept{background:var(--blue);border:1px solid var(--blue);color:#fff}
.cookie-btn-accept:hover{background:var(--blue-light);border-color:var(--blue-light)}
@media(max-width:640px){
  .cookie-banner{left:0.6rem;right:0.6rem;bottom:0.6rem;padding:1rem}
  .cookie-banner-actions{margin-left:0;width:100%}
  .cookie-btn{flex:1}
}

/* ── RESPONSIVE (nav/hamburger/footer only — page-specific
   breakpoints live in each page's own <style>) ── */
@media(max-width:900px){
  nav{padding:0.9rem 1.5rem}
  .nav-links{display:none}
  .hamburger{display:flex}
  footer{grid-template-columns:1fr;justify-items:center;gap:1rem;text-align:center}
  footer img{justify-self:center}
  .footer-links{justify-content:center;justify-self:center}
}
@media(max-width:640px){
  footer{padding:1.5rem 1.25rem}
}
