/* ── Shared site navigation ──
   Matches the homepage (index.html) nav exactly so the header doesn't
   change layout when visitors move between pages. Classes are prefixed
   "sn-" so they never clash with the older .nav-* rules in style.css. */

.sn-nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 5%; height: 72px;
  background: rgba(255,255,255,.9);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(36,87,217,.12);
  box-shadow: 0 2px 20px rgba(26,58,143,.07);
  font-family: 'Nunito', sans-serif; line-height: normal;
}
.sn-nav *, .sn-nav *::before, .sn-nav *::after { box-sizing: border-box; margin: 0; padding: 0; }

.sn-logo {
  display: flex; align-items: center; gap: 10px;
  font-family: 'DM Serif Display', serif; font-size: 1.2rem; line-height: 1.2;
  color: #1a3a8f; text-decoration: none;
}
.sn-logo:hover { color: #1a3a8f; }

.sn-links { display: flex; align-items: center; gap: 24px; list-style: none; }
.sn-links a {
  text-decoration: none; color: #4a5880; font-family: 'Nunito', sans-serif;
  font-weight: 600; font-size: .88rem; letter-spacing: normal; text-transform: none;
  transition: color .2s;
}
.sn-links a:hover,
.sn-links a[aria-current="page"] { color: #2457d9; }

.sn-phone { display: flex; align-items: center; gap: 8px; color: #1a3a8f !important; font-weight: 800 !important; font-size: .95rem !important; }
.sn-cta {
  background: #2457d9; color: #fff !important; padding: 10px 22px; border-radius: 50px;
  font-weight: 700 !important; transition: background .2s, transform .15s !important;
}
.sn-cta:hover { background: #1a3a8f !important; transform: translateY(-1px); }

.sn-hamburger { display: none; flex-direction: column; gap: 5px; cursor: pointer; z-index: 1001; background: none; border: 0; }
.sn-hamburger span { display: block; width: 24px; height: 2px; background: #0f1c3f; border-radius: 2px; }
.sn-nav.menu-open .sn-hamburger span { background: #fff; }
/* A blur filter on the bar traps the full-screen menu inside the 72px bar; drop it while the menu is open. */
.sn-nav.menu-open { -webkit-backdrop-filter: none; backdrop-filter: none; }

/* Content offset: the old header was ~110px tall, the new one is 72px. */
.page-hero { padding-top: 110px; }

@media (max-width: 900px) {
  .sn-links { display: none; }
  .sn-hamburger { display: flex; }
  .sn-links.open {
    display: flex; flex-direction: column; position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(15,28,63,.97); justify-content: center; align-items: center;
    gap: 28px; z-index: 999;
  }
  .sn-links.open a { color: rgba(255,255,255,.85) !important; font-size: 1.1rem; }
  .sn-links.open .sn-cta { color: #fff !important; }
}
