/* Shared mechanics. Site-specific presentation belongs in the child theme. */
.beanstalk-mega-item { position: relative; display: flex; align-items: center; flex-wrap: wrap; }
.beanstalk-mega-item > .beanstalk-mega-toggle { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; min-width: 44px; min-height: 44px; padding: 10px; border: 0; border-radius: 4px; color: inherit; background: transparent; cursor: pointer; }
.beanstalk-mega-toggle svg { pointer-events: none; }
.beanstalk-mega-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.beanstalk-mega-item > [hidden] { display: none !important; }
.beanstalk-mega-panel { display: none; box-sizing: border-box; width: 100%; min-width: 0; padding: 24px; color: #171717; background: #fff; border: 1px solid #ddd; text-align: left; }
.beanstalk-mega-item.is-mega-open > .beanstalk-mega-panel:not([hidden]) { display: block; }
.beanstalk-mega-panel .beanstalk-mega-content { width: 100%; min-width: 0; }
.beanstalk-mega-panel :where(ul, ol) { display: block; }
.beanstalk-mega-panel :where(a) { white-space: normal; }
.beanstalk-mega-item :is(a, button):focus-visible { outline: 3px solid #9f2450; outline-offset: 3px; }
@media (min-width: 1025px) {
	.beanstalk-mega-item.is-mega-ready > .beanstalk-mega-panel { position: absolute; z-index: 100; inset-block-start: 100%; inset-inline-start: 0; width: min(72rem, calc(100vw - 40px)); max-height: calc(100dvh - 160px); overflow: auto; box-shadow: 0 16px 32px #00000014; }
}
@media (max-width: 1024px) {
	.beanstalk-mega-item { width: 100%; }
	.beanstalk-mega-item > a { flex: 1 1 0; }
	.beanstalk-mega-item > .beanstalk-mega-panel { flex-basis: 100%; position: static; box-shadow: none; }
}
@media (prefers-reduced-motion: reduce) {
	.beanstalk-mega-item *, .beanstalk-mega-item *::before, .beanstalk-mega-item *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
