/* ─── Services Dropdown ─── */
    .ng-nav-links .has-dropdown {
      position: relative;
    }

    .ng-nav-links .has-dropdown>a {
      display: inline-flex;
      align-items: center;
      gap: 5px;
    }

    .dropdown-chevron {
      width: 10px;
      height: 10px;
      transition: transform 0.3s var(--ease-expo);
      flex-shrink: 0;
      color: var(--brand-muted);
    }

    .has-dropdown:hover .dropdown-chevron {
      transform: rotate(180deg);
      color: var(--amber);
    }

    .ng-dropdown {
      position: absolute;
      top: calc(100% + 2px);
      left: 50%;
      transform: translateX(-50%) translateY(-8px);
      width: max-content;
      min-width: 260px;
      max-width: 340px;
      background: #fff;
      border-radius: 14px;
      border: 1px solid var(--brand-line);
      box-shadow: 0 20px 60px rgba(13, 27, 106, 0.13), 0 4px 16px rgba(13, 27, 106, 0.06);
      padding: 10px;
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.25s var(--ease-expo), transform 0.3s var(--ease-expo);
      z-index: 999;
    }

    /* little arrow pointer */
    .ng-dropdown::before {
      content: '';
      position: absolute;
      top: -7px;
      left: 50%;
      transform: translateX(-50%) rotate(45deg);
      width: 13px;
      height: 13px;
      background: #fff;
      border-left: 1px solid var(--brand-line);
      border-top: 1px solid var(--brand-line);
      border-radius: 2px 0 0 0;
    }

    .has-dropdown:hover .ng-dropdown,
    .has-dropdown:focus-within .ng-dropdown {
      opacity: 1;
      pointer-events: auto;
      transform: translateX(-50%) translateY(0);
    }

    .ng-dropdown-item {
      display: flex;
      align-items: center;
      gap: 13px;
      padding: 11px 14px;
      border-radius: 9px;
      text-decoration: none;
      color: var(--navy);
      font-family: var(--font-head);
      font-size: 0.78rem;
      font-weight: 600;
      letter-spacing: 0.03em;
      transition: background 0.2s, color 0.2s, transform 0.2s var(--ease-expo);
      position: relative;
    }

    .ng-dropdown-item::after {
      display: none;
      /* override the underline from .ng-nav-links a */
    }

    .ng-dropdown-item:hover {
      background: var(--brand-soft);
      color: var(--navy-deep);
      transform: translateX(4px);
    }

    .ng-dropdown-item-icon {
      width: 34px;
      height: 34px;
      border-radius: 8px;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      font-size: 1rem;
      transition: transform 0.3s var(--ease-back);
    }

    .ng-dropdown-item:hover .ng-dropdown-item-icon {
      transform: scale(1.15) rotate(-5deg);
    }

    .ng-dropdown-item-icon.media {
      background: rgba(74, 187, 196, 0.12);
      color: var(--teal-dark);
    }

    .ng-dropdown-item-icon.brand {
      background: rgba(232, 166, 61, 0.12);
      color: var(--amber);
    }

    .ng-dropdown-item-icon.influencer {
      background: rgba(143, 51, 23, 0.10);
      color: var(--crimson);
    }

    .ng-dropdown-item-text {
      min-width: 0;
      display: flex;
      flex-direction: column;
      gap: 1px;
    }

    .ng-dropdown-item-label {
      font-weight: 700;
      font-size: 0.78rem;
      color: var(--navy);
      line-height: 1.2;
    }

    .ng-dropdown-item-desc {
      font-family: var(--font-body);
      font-size: 0.68rem;
      font-weight: 400;
      color: var(--brand-muted);
      letter-spacing: 0;
      line-height: 1.4;
      white-space: nowrap;
    }

    .ng-dropdown-divider {
      height: 1px;
      background: var(--brand-line);
      margin: 6px 4px;
    }

    /* Mobile dropdown */
    .ng-mobile-submenu {
      display: none;
      flex-direction: column;
      gap: 4px;
      padding-left: 16px;
      margin-top: 4px;
    }

    .ng-mobile-submenu.open {
      display: flex;
    }

    .ng-mobile-submenu a {
      font-size: 0.82rem;
      color: var(--brand-muted) !important;
      padding: 7px 10px;
      border-radius: 6px;
      display: flex;
      align-items: center;
      gap: 8px;
      font-weight: 600;
    }

    .ng-mobile-submenu a:hover {
      background: var(--brand-soft);
      color: var(--navy) !important;
    }

    .mobile-services-toggle {
      display: flex;
      align-items: center;
      justify-content: space-between;
    }

    .mobile-services-toggle .toggle-chevron {
      width: 14px;
      height: 14px;
      transition: transform 0.3s;
      color: var(--brand-muted);
    }

    .mobile-services-toggle.open .toggle-chevron {
      transform: rotate(180deg);
    }


    /* ─── Mobile Menu Drawer ─── */
    .ng-mobile-menu {
      display: none;
      position: fixed;
      top: 72px;
      left: 0;
      width: 100%;
      background: rgba(250, 251, 255, 0.98);
      backdrop-filter: blur(20px);
      border-bottom: 1px solid var(--brand-line);
      z-index: 999;
      padding: 24px 24px 32px;
      flex-direction: column;
      gap: 0;
      box-shadow: 0 16px 48px rgba(13, 27, 106, 0.10);
      transform: translateY(-8px);
      opacity: 0;
      transition: transform 0.35s var(--ease-expo), opacity 0.3s;
    }

    .ng-mobile-menu.open {
      transform: translateY(0);
      opacity: 1;
    }

    .ng-mobile-menu a:not(.btn-primary-ng) {
      font-family: var(--font-head);
      font-size: 0.9rem;
      font-weight: 700;
      letter-spacing: 0.03em;
      color: var(--navy);
      text-decoration: none;
      padding: 14px 0;
      border-bottom: 1px solid var(--brand-line);
      display: flex;
      align-items: center;
      justify-content: space-between;
      transition: color 0.2s, padding-left 0.2s;
    }

    .ng-mobile-menu a:not(.btn-primary-ng)::after {
      content: '›';
      font-size: 1.1rem;
      color: var(--amber);
      font-weight: 900;
    }

    .ng-mobile-menu a:not(.btn-primary-ng):hover {
      color: var(--amber);
      padding-left: 6px;
    }

    .ng-mobile-menu a.active:not(.btn-primary-ng) {
      color: var(--amber);
    }

    .ng-mobile-cta {
      margin-top: 20px;
      width: 100%;
      justify-content: center;
    }

     @media (max-width: 992px) {

      /* Nav */
      .ng-nav {
        padding: 0 24px;
      }

      .ng-nav-links {
        display: none;
      }

      .ng-nav .btn-primary-ng:not(.ng-mobile-cta) {
        display: none;
      }

      .ng-hamburger {
        display: flex;
      }

      .ng-mobile-menu {
        display: flex;
      }
    }

    @media (max-width: 400px) {

      /* Nav */
      .ng-nav {
        padding: 0 12px;
        height: 64px;
      }

      .ng-mobile-menu {
        top: 64px;
      }
    }


     /* ─── Hamburger Button ─── */
    .ng-hamburger {
      display: none;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      gap: 5px;
      width: 42px;
      height: 42px;
      background: transparent;
      border: 1.5px solid var(--brand-line);
      border-radius: 6px;
      cursor: pointer;
      padding: 0;
      flex-shrink: 0;
      transition: border-color 0.2s, background 0.2s;
      z-index: 1001;
    }

    .ng-hamburger:hover {
      border-color: var(--navy);
      background: var(--brand-soft);
    }

    .ng-hamburger .bar {
      width: 20px;
      height: 2px;
      background: var(--navy);
      border-radius: 2px;
      transition: transform 0.35s var(--ease-expo), opacity 0.25s, width 0.3s;
      transform-origin: center;
    }

    .ng-hamburger.open .bar:nth-child(1) {
      transform: translateY(7px) rotate(45deg);
    }

    .ng-hamburger.open .bar:nth-child(2) {
      opacity: 0;
      width: 0;
    }

    .ng-hamburger.open .bar:nth-child(3) {
      transform: translateY(-7px) rotate(-45deg);
    }

/* ─── Global Accessibility, Contrast & Interaction Utilities ─── */
:focus-visible {
  outline: 2px solid #E8A63D !important;
  outline-offset: 3px !important;
}

/* Fix 11: High-Contrast CTA Button (Navy on Amber) */
.btn-primary-ng {
  color: #0D1B6A !important;
  font-weight: 800 !important;
}

.btn-primary-ng:hover {
  color: #091452 !important;
}

.btn-primary-ng .btn-arrow {
  color: #0D1B6A !important;
}

/* Fix 12: High-Contrast Tagline for Light Backgrounds */
.ng-logo .logo-tagline {
  color: #0E7F89 !important;
}

/* Fix 16: Hide Custom Cursor on Touchscreens and Coarse Pointers */
@media (hover: none) or (pointer: coarse) {
  .cursor-dot,
  .cursor-ring {
    display: none !important;
  }
}

/* Fix 17: Accessible Motion Preference */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* Fix 18: Mobile Drawer Backdrop Blur Overlay */
.ng-mobile-overlay {
  position: fixed;
  inset: 0;
  top: 72px;
  background: rgba(9, 20, 82, 0.45);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 998;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.ng-mobile-overlay.open {
  opacity: 1;
  pointer-events: auto;
}

@media (max-width: 400px) {
  .ng-mobile-overlay {
    top: 64px;
  }
}

.ng-dropdown-item.active {
  background: var(--brand-soft);
  color: var(--navy-deep);
  border-left: 3px solid var(--amber);
}

.ng-dropdown-item.active .ng-dropdown-item-label {
  color: var(--navy-deep);
  font-weight: 800;
}

/* ─── Shared Sticky Column for Side-by-Side Scrolling Sections ─── */
.sticky-col {
  position: -webkit-sticky !important;
  position: sticky !important;
  top: 100px !important;
  align-self: flex-start !important;
  z-index: 5;
}

@media (max-width: 991px) {
  .sticky-col {
    position: relative !important;
    top: auto !important;
  }
}
