/* socialnorms.org — styles for sn-widgets.js (replacement Elementor/Jet behaviour). */

/* Search filters */
.sn-hidden { display: none !important; }
.sn-no-results { margin: 1.5em 0; text-align: center; }

/* Accordion: keyboard focus */
.jet-toggle__control:focus-visible { outline: 2px solid #8dc63f; outline-offset: 2px; }

/* Desktop dropdowns (the theme hides .elementor-nav-menu ul until a script opens it) */
.elementor-nav-menu--main li.sn-open > ul.sub-menu { display: block !important; z-index: 1000; }
.elementor-nav-menu--main li.menu-item-has-children > a { cursor: pointer; }

/* Mobile menu button (inside the jet-mobile-menu widget, which the theme shows only below desktop) */
.sn-menu-button {
  display: inline-flex; flex-direction: column; justify-content: center; gap: 5px;
  width: 44px; height: 44px; padding: 10px; border: 0; border-radius: 4px;
  background: transparent; cursor: pointer;
}
.sn-menu-button span { display: block; height: 3px; width: 100%; background: #0f1c1a; border-radius: 2px; }
.sn-menu-button:focus-visible, .sn-menu-close:focus-visible { outline: 2px solid #8dc63f; outline-offset: 2px; }

/* Mobile menu panel */
.sn-menu-panel {
  position: fixed; inset: 0; z-index: 100000; overflow-y: auto;
  background: #0f1c1a; color: #fff; padding: 64px 24px 32px;
}
.sn-menu-panel[hidden] { display: none; }
.sn-menu-close {
  position: absolute; top: 12px; right: 16px; width: 44px; height: 44px;
  border: 0; background: transparent; color: #fff; font-size: 34px; line-height: 1; cursor: pointer;
}
.sn-menu-panel ul { list-style: none; margin: 0; padding: 0; }
.sn-menu-panel li { margin: 0; }
.sn-menu-panel ul ul { padding-left: 16px; margin-bottom: 8px; }
.sn-menu-panel a, .sn-menu-panel .sn-menu-group {
  display: block; padding: 10px 0; color: #fff; font-size: 18px; text-decoration: none;
}
.sn-menu-panel .sn-menu-group { color: #8dc63f; font-weight: 600; }
.sn-menu-panel ul ul a { font-size: 16px; }
html.sn-menu-open, html.sn-menu-open body { overflow: hidden; }
