/* TECHGURU — Glass floating nav (loads AFTER layout-v2). Hides on scroll-down, returns on scroll-up. */
:root { --tg-nav-h: 84px; --nav-gap: 14px; }
html { scroll-padding-top: 96px; }
main > section { scroll-margin-top: 96px; }

.navbar {
  top: var(--nav-gap); left: 0; right: 0; margin-inline: auto;
  width: min(1240px, calc(100% - 2 * var(--tg-gutter, 1.5rem)));
  height: 64px; padding: 0 10px 0 16px; flex-wrap: nowrap;
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; column-gap: clamp(.75rem, 2vw, 2rem);
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(255,255,255,.11), rgba(255,255,255,.035)), rgba(10,12,26,.5);
  backdrop-filter: blur(24px) saturate(180%); -webkit-backdrop-filter: blur(24px) saturate(180%);
  border: 1px solid rgba(255,255,255,.14);
  box-shadow: 0 12px 40px -14px rgba(0,0,0,.75), inset 0 1px 0 rgba(255,255,255,.18);
  transition: transform .5s cubic-bezier(.2,.7,.2,1), background-color .3s, box-shadow .3s, opacity .3s;
}
.navbar.is-scrolled, .navbar.navbar-scrolled {
  background: linear-gradient(135deg, rgba(255,255,255,.09), rgba(255,255,255,.03)), rgba(8,10,22,.68);
  box-shadow: 0 18px 50px -16px rgba(0,0,0,.9), inset 0 1px 0 rgba(255,255,255,.16);
}
.navbar.navbar-hidden { transform: translateY(calc(-100% - 32px)); opacity: 0; pointer-events: none; }

.nav-logo-icon { width: 38px; height: 38px; border-radius: 11px; }
.nav-menu { margin: 0; justify-self: center; min-width: 0; }
.nav-menu ul { gap: .15rem; }
.nav-menu ul li a { padding: .5rem .95rem; border-radius: 999px; font-size: .9rem; color: var(--tg-muted, rgba(242,244,250,.7)); transition: background .25s, color .25s; }
.nav-menu ul li a::after { display: none; }
.nav-menu ul li a:hover { background: rgba(255,255,255,.07); color: #fff; }
.nav-menu ul li a.is-active { background: rgba(255,255,255,.12); color: #fff; box-shadow: inset 0 0 0 1px rgba(255,255,255,.1); }

.navbar-actions { margin: 0; gap: .5rem; flex-wrap: nowrap; }
.nav-phone-link { width: 42px; height: 42px; justify-content: center; border-radius: 50%; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12); transition: background .25s, transform .25s; }
.nav-phone-link:hover { background: rgba(100,222,223,.16); transform: translateY(-1px); }
.nav-cta-btn { padding: .65rem 1.15rem; border-radius: 999px; font-size: .88rem; white-space: nowrap; }

@media (max-width: 1280px) { .nav-hide-md { display: none; } }

@media (max-width: 992px) {
  .navbar { display: flex; justify-content: space-between; height: 60px; border-radius: 22px; }
  .navbar-actions { margin-left: auto; }
  .nav-toggle { order: 3; }
  .nav-menu { position: absolute; top: calc(100% + 10px); left: 0; right: 0; margin: 0; padding: .9rem; border-radius: 22px; max-height: calc(100vh - 110px);
    background: rgba(10,12,26,.82); border: 1px solid rgba(255,255,255,.14); backdrop-filter: blur(24px) saturate(180%); -webkit-backdrop-filter: blur(24px) saturate(180%); }
  .nav-menu ul li a { display: block; padding: .8rem 1rem; border-radius: 14px; }
  .nav-hide-md { display: list-item; }
}
body.light-theme .navbar { background: linear-gradient(135deg, rgba(255,255,255,.7), rgba(255,255,255,.4)), rgba(244,246,251,.5); border-color: rgba(10,12,26,.1); }
@media (prefers-reduced-motion: reduce) { .navbar { transition-duration: .001ms !important; } }

/* ---- Layout fixes found in audit ---- */
main > section { overflow-x: clip; }                                 /* tg-orb glows no longer create sideways page scroll */
.about-grid, .lead-magnet-content, .contact-wrapper { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 993px) { .about-grid, .lead-magnet-content, .contact-wrapper { grid-template-columns: revert-layer; } }
.about-grid > *, .lead-magnet-content > *, .contact-wrapper > * { min-width: 0; max-width: 100%; }

/* mobile panel: full pill width + solid enough to read over hero copy (nested backdrop-filter doesn't blur) */
@media (max-width: 992px) {
  .nav-menu { width: 100%; box-sizing: border-box; justify-self: stretch; background: rgba(10,12,26,.95); }
}
/* hero location badge: was wrapping into a cramped 4-line pill */
.hero-location-badge { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .3rem .7rem; padding: .6rem 1.1rem; border-radius: 18px; line-height: 1.35; }
.hero-location-badge > svg { flex: none; }

/* the [hidden] attribute lost to .social-link's display rule */
.social-link[hidden] { display: none !important; }

/* trust strip: absolute-positioned bullets orphaned themselves at the start of a wrapped line; chips are already separated by icons */
.trust-chip + .trust-chip::before { display: none; }

/* ============================================================================
   TECHGURU — desktop navbar overlap guard
   Prevents oversized menu from overflowing columns on desktop viewports.
   ========================================================================== */
@media (min-width: 993px) {
  /* 1 — menu box == its grid column, always */
  .navbar .nav-menu {
    justify-self: stretch;
    width: auto;
    min-width: 0;
    max-width: 100%;
    overflow-x: hidden;
    overflow-x: clip;
    overflow-y: visible;
  }

  /* 2 — link row centers in the space that exists, and may shrink */
  .navbar .nav-menu ul {
    min-width: 0;
    flex-wrap: nowrap;
    justify-content: center;
  }

  /* 3 — links give back padding before anything can collide */
  .navbar .nav-menu ul li a {
    white-space: nowrap;
    padding-inline: clamp(.45rem, .85vw, .95rem);
  }

  /* 4 — tight band (993-1180): shave type a touch and drop the logo wordmark
         to the icon so all six links AND the full CTA label keep fitting. */
  @media (max-width: 1180px) {
    .navbar { width: calc(100% - 1.5rem); }
    .navbar .nav-menu ul li a {
      font-size: .85rem;
      padding-inline: .5rem;
    }
    .navbar .nav-logo-link { font-size: 0; }
    .navbar .nav-logo-link .nav-logo-icon { width: 40px; height: 40px; }
  }
  @media (max-width: 1060px) {
    .navbar .nav-menu ul li a { font-size: .8rem; padding-inline: .45rem; }
  }
}
