/* Adaptive scale + glass header.

   1. Scale. The theme sizes almost everything in px for a 1440px design, so the
      page only looks "as designed" when the viewport is 1440 CSS px wide. Browser
      zoom, small laptops and phone widths all change that number and the page
      falls out of proportion. public/js/nv-adaptive.js sets `body{zoom}` to
      viewport / design width (clamped) before first paint, so the used sizes
      track the viewport and the design keeps its proportions at any zoom level.
      This CSS is the no-JS fallback (the old fixed 0.8 on phones).

   2. Header. The theme's header is position:absolute and scrolls away. On phones
      and tablets it is now fixed with a frosted-glass background that turns on
      once the user scrolls past the hero top (.nv-at-top toggled by the script).

   3. Nav. The theme hides the desktop menu below 1439px and shows only the
      hamburger. With the body scaled to the viewport, the menu fits down to
      1025px, so it stays visible there. */

@media (max-width: 767px) {
  body { zoom: 0.8; }
}

/* keep the desktop menu on laptops and zoomed-in desktops */
@media (min-width: 1025px) and (max-width: 1439px) {
  .header-menu-wrap .navbar > ul > li:not(.dropdown-menu-item) { display: list-item; }
  .header-menu-wrap .navbar .menu { gap: 44px; }
  .header-menu-wrap .navbar { margin-right: 48px; }
  .header-menu-wrap .custom-container, .home .header-menu-wrap .custom-container { padding-left: 40px; padding-right: 40px; }
}

/* glass header, every viewport: fixed so it follows the scroll, transparent
   over the hero top, frosted once the page moves (.nv-at-top toggled by JS) */
.header-menu-wrap {
  position: fixed;
  top: 0; left: 0; right: 0;
  width: 100%;
  z-index: 1024;
  background: rgba(5, 5, 16, 0.62);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  backdrop-filter: saturate(180%) blur(20px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  transition: background 0.35s ease, border-color 0.35s ease;
}
.header-menu-wrap.nv-at-top {
  background: transparent;
  border-bottom-color: transparent;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.header-sidebar-wrap { z-index: 1030; }
.hamburg-menu { position: fixed; z-index: 1025; }

@media (max-width: 1024px) {
  /* one bar that holds both the logo and the round menu button */
  .header-menu-wrap .custom-container .custom-row { min-height: 88px; align-items: center; }
  .header-menu-wrap .logo img { max-width: 92px; }
  .header-menu-wrap .custom-container { padding-left: 16px; padding-right: 16px; }
  .hamburg-menu { top: 14px; right: 20px; width: 56px; height: 56px; }
}

/* in-copy links: the theme never styled bare anchors, so the browser painted
   them default blue. Match the blog and service pages: white, hairline underline. */
a:not([class]) {
  color: #ffffff;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: rgba(255, 255, 255, 0.4);
  text-underline-offset: 0.18em;
  transition: text-decoration-color 0.2s ease, opacity 0.2s ease;
}
a:not([class]):hover { text-decoration-color: #ffffff; }
.section-title a:not([class]), .hero-top-desc a:not([class]) { color: inherit; }

/* small link line under an animated section title (links cannot live inside split-type headings) */
.nv-lead-link { margin: 44px 0 0; padding-top: 6px; position: relative; z-index: 1; font-size: 16px; line-height: 1.5; color: var(--secondary, #999); }
.nv-lead-link a { color: #fff; }
@media (max-width: 767px) { .nv-lead-link { font-size: 15px; } }
/* when the link line is a direct child of the flex .section-header (no .right wrapper),
   drop it onto its own row under the heading instead of beside it */
.section-header { flex-wrap: wrap; }
.section-header > .nv-lead-link { flex: 0 0 100%; margin-top: 28px; }
/* The WP-era inline CSS zeroes every .custom-container below 1366px (a mobile
   hack from before the proportional scale). Laptops and zoomed desktops now
   render the scaled desktop design, so give them the theme's desktop gutters back. */
@media (min-width: 1025px) and (max-width: 1366px) {
  /* body-prefixed to outrank the per-page inline CSS, which loads after this file */
  body .custom-container { padding-left: 20px !important; padding-right: 20px !important; }
  body .about-sec .custom-container, body .testimonial-sec .section-header { padding-left: 42px !important; padding-right: 42px !important; }
  body .header-menu-wrap .custom-container { padding-left: 40px !important; padding-right: 40px !important; }
  body .hero-sec > .custom-container { padding-left: 52px !important; padding-right: 52px !important; }
}
.nv-footer-address { display: block; margin-top: 6px; font-size: 12px; color: var(--tertiary, #666); letter-spacing: .2px; }
