.services-menu-trigger, .studio-menu-trigger { border: 0; background: none; padding: 0; margin: 0; font-family: inherit; font-weight: 600; font-size: 16px; line-height: 24px; color: inherit; cursor: pointer; }
.services-menu-trigger:focus-visible, .studio-menu-trigger:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
.has-mega-menu:focus-within .mega-menu-dropdown,
.has-mega-menu.menu-open .mega-menu-dropdown { opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(-50%) translateY(0); }
/* Bridge the visual gap so the pointer can reach the menu. */
.mega-menu-dropdown::before { content: ''; position: absolute; inset: -14px 0 auto; height: 14px; }

.menu-item.has-child:focus-within > .sub-menu,
.menu-item.menu-open > .sub-menu { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }

/* Tablet / small laptop (992-1200px): keep stacked mega-menu groups apart and use the panel width. */
@media (min-width: 992px) and (max-width: 1200px) {
  .mega-menu-inner { margin-bottom: -28px; }
  .mega-menu-inner--services { column-count: 3; }
  .mega-menu-col { margin-bottom: 28px; }
}

/* Mobile menu: grouped sub-links mirroring the desktop mega menu. */
.offcanvas-menu { background-color: rgba(9, 9, 11, 0.9); backdrop-filter: blur(12px); }
.offcanvas-menu .canvas_center { justify-content: flex-start; }
.offcanvas-menu .nav-ul-mb { margin: auto 0; }
.nav-ul-mb .has-sub-menu > .mb-menu-link .text::before { content: ''; display: inline-block; width: 0.24em; height: 0.24em; margin-right: 0.35em; border-right: 3px solid currentColor; border-bottom: 3px solid currentColor; transform: translateY(-0.3em) rotate(45deg); transition: transform 0.3s ease; }
.nav-ul-mb .has-sub-menu > .mb-menu-link:not(.collapsed) .text::before { transform: translateY(-0.12em) rotate(-135deg); }
.nav-ul-mb .sub-nav-groups { display: grid; gap: 22px; min-width: 240px; padding: 10px 0 26px; }
.nav-ul-mb .collapse > .sub-nav-menu, .nav-ul-mb .collapsing > .sub-nav-menu { padding: 10px 0 26px; }
.nav-ul-mb .sub-nav-group { display: grid; gap: 8px; }
.nav-ul-mb .sub-nav-heading { font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(255, 255, 255, 0.55); padding-bottom: 6px; border-bottom: 1px solid rgba(255, 255, 255, 0.16); }
.nav-ul-mb .sub-nav-link { display: inline-block; font-size: 17px; line-height: 26px; padding: 3px 0; }
.nav-ul-mb .sub-nav-all { font-weight: 600; }
